From owner-p4-projects@FreeBSD.ORG  Sun Jul 17 01:15:37 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 5F83E16A445; Sun, 17 Jul 2005 01:15:36 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 34B2516A442
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 01:15:36 +0000 (GMT)
	(envelope-from wsalamon@computer.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id E9E3043D49
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 01:15:35 +0000 (GMT)
	(envelope-from wsalamon@computer.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6H1FZB0060074
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 01:15:35 GMT
	(envelope-from wsalamon@computer.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6H1FZh6060071
	for perforce@freebsd.org; Sun, 17 Jul 2005 01:15:35 GMT
	(envelope-from wsalamon@computer.org)
Date: Sun, 17 Jul 2005 01:15:35 GMT
Message-Id: <200507170115.j6H1FZh6060071@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	wsalamon@computer.org using -f
From: Wayne Salamon <wsalamon@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80366 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 17 Jul 2005 01:15:37 -0000

http://perforce.freebsd.org/chv.cgi?CH=80366

Change 80366 by wsalamon@gretsch on 2005/07/17 01:15:19

	Change the audit system calls to MSTD from MNOSTD in syscalls.master,
	and update generated files.

Affected files ...

.. //depot/projects/trustedbsd/audit3/sys/kern/init_sysent.c#16 edit
.. //depot/projects/trustedbsd/audit3/sys/kern/syscalls.c#10 edit
.. //depot/projects/trustedbsd/audit3/sys/kern/syscalls.master#19 edit
.. //depot/projects/trustedbsd/audit3/sys/sys/syscall.h#10 edit
.. //depot/projects/trustedbsd/audit3/sys/sys/syscall.mk#11 edit

Differences ...

==== //depot/projects/trustedbsd/audit3/sys/kern/init_sysent.c#16 (text+ko) ====

@@ -365,7 +365,7 @@
 	{ SYF_MPSAFE | AS(sched_get_priority_min_args), (sy_call_t *)sched_get_priority_min, AUE_NULL },	/* 333 = sched_get_priority_min */
 	{ SYF_MPSAFE | AS(sched_rr_get_interval_args), (sy_call_t *)sched_rr_get_interval, AUE_NULL },	/* 334 = sched_rr_get_interval */
 	{ SYF_MPSAFE | AS(utrace_args), (sy_call_t *)utrace, AUE_NULL },	/* 335 = utrace */
-	{ compat4(SYF_MPSAFE | AS(freebsd4_sendfile_args),sendfile), AUE_NULL },	/* 336 = old sendfile */
+	{ compat4(SYF_MPSAFE | AS(freebsd4_sendfile_args),sendfile), AUE_SENDFILE },	/* 336 = old sendfile */
 	{ SYF_MPSAFE | AS(kldsym_args), (sy_call_t *)kldsym, AUE_NULL },	/* 337 = kldsym */
 	{ SYF_MPSAFE | AS(jail_args), (sy_call_t *)jail, AUE_NULL },	/* 338 = jail */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 339 = pioctl */
@@ -422,7 +422,7 @@
 	{ SYF_MPSAFE | AS(kenv_args), (sy_call_t *)kenv, AUE_NULL },	/* 390 = kenv */
 	{ SYF_MPSAFE | AS(lchflags_args), (sy_call_t *)lchflags, AUE_LCHFLAGS },	/* 391 = lchflags */
 	{ SYF_MPSAFE | AS(uuidgen_args), (sy_call_t *)uuidgen, AUE_NULL },	/* 392 = uuidgen */
-	{ SYF_MPSAFE | AS(sendfile_args), (sy_call_t *)sendfile, AUE_NULL },	/* 393 = sendfile */
+	{ SYF_MPSAFE | AS(sendfile_args), (sy_call_t *)sendfile, AUE_SENDFILE },	/* 393 = sendfile */
 	{ SYF_MPSAFE | AS(mac_syscall_args), (sy_call_t *)mac_syscall, AUE_NULL },	/* 394 = mac_syscall */
 	{ SYF_MPSAFE | AS(getfsstat_args), (sy_call_t *)getfsstat, AUE_GETFSSTAT },	/* 395 = getfsstat */
 	{ SYF_MPSAFE | AS(statfs_args), (sy_call_t *)statfs, AUE_STATFS },	/* 396 = statfs */
@@ -474,15 +474,15 @@
 	{ SYF_MPSAFE | AS(thr_suspend_args), (sy_call_t *)thr_suspend, AUE_NULL },	/* 442 = thr_suspend */
 	{ SYF_MPSAFE | AS(thr_wake_args), (sy_call_t *)thr_wake, AUE_NULL },	/* 443 = thr_wake */
 	{ SYF_MPSAFE | AS(kldunloadf_args), (sy_call_t *)kldunloadf, AUE_NULL },	/* 444 = kldunloadf */
-	{ SYF_MPSAFE | AS(audit_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 445 = audit */
-	{ SYF_MPSAFE | AS(auditon_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 446 = auditon */
-	{ SYF_MPSAFE | AS(getauid_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 447 = getauid */
-	{ SYF_MPSAFE | AS(setauid_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 448 = setauid */
-	{ SYF_MPSAFE | AS(getaudit_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 449 = getaudit */
-	{ SYF_MPSAFE | AS(setaudit_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 450 = setaudit */
-	{ SYF_MPSAFE | AS(getaudit_addr_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 451 = getaudit_addr */
-	{ SYF_MPSAFE | AS(setaudit_addr_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 452 = setaudit_addr */
-	{ SYF_MPSAFE | AS(auditctl_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 453 = auditctl */
+	{ SYF_MPSAFE | AS(audit_args), (sy_call_t *)audit, AUE_AUDIT },	/* 445 = audit */
+	{ SYF_MPSAFE | AS(auditon_args), (sy_call_t *)auditon, AUE_AUDITON },	/* 446 = auditon */
+	{ SYF_MPSAFE | AS(getauid_args), (sy_call_t *)getauid, AUE_GETAUID },	/* 447 = getauid */
+	{ SYF_MPSAFE | AS(setauid_args), (sy_call_t *)setauid, AUE_SETAUID },	/* 448 = setauid */
+	{ SYF_MPSAFE | AS(getaudit_args), (sy_call_t *)getaudit, AUE_GETAUDIT },	/* 449 = getaudit */
+	{ SYF_MPSAFE | AS(setaudit_args), (sy_call_t *)setaudit, AUE_SETAUDIT },	/* 450 = setaudit */
+	{ SYF_MPSAFE | AS(getaudit_addr_args), (sy_call_t *)getaudit_addr, AUE_GETAUDIT_ADDR },	/* 451 = getaudit_addr */
+	{ SYF_MPSAFE | AS(setaudit_addr_args), (sy_call_t *)setaudit_addr, AUE_SETAUDIT_ADDR },	/* 452 = setaudit_addr */
+	{ SYF_MPSAFE | AS(auditctl_args), (sy_call_t *)auditctl, AUE_AUDITCTL },	/* 453 = auditctl */
 	{ SYF_MPSAFE | AS(_umtx_op_args), (sy_call_t *)_umtx_op, AUE_NULL },	/* 454 = _umtx_op */
 	{ SYF_MPSAFE | AS(thr_new_args), (sy_call_t *)thr_new, AUE_NULL },	/* 455 = thr_new */
 };

==== //depot/projects/trustedbsd/audit3/sys/kern/syscalls.c#10 (text+ko) ====

@@ -2,7 +2,7 @@
  * System call names.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/kern/syscalls.c,v 1.179 2005/05/30 15:20:20 rwatson Exp $
+ * $FreeBSD$
  * created from FreeBSD: src/sys/kern/syscalls.master,v 1.196 2005/05/30 15:09:18 rwatson Exp 
  */
 

==== //depot/projects/trustedbsd/audit3/sys/kern/syscalls.master#19 (text+ko) ====

@@ -770,21 +770,21 @@
 				    const struct timespec *timeout); }
 443	AUE_NULL	MSTD	{ int thr_wake(long id); }
 444	AUE_NULL	MSTD	{ int kldunloadf(int fileid, int flags); }
-445	AUE_AUDIT	MNOSTD	{ int audit(const void *record, \
+445	AUE_AUDIT	MSTD	{ int audit(const void *record, \
 				    u_int length); }
-446	AUE_AUDITON	MNOSTD	{ int auditon(int cmd, void *data, \
+446	AUE_AUDITON	MSTD	{ int auditon(int cmd, void *data, \
 				    u_int length); }
-447	AUE_GETAUID	MNOSTD	{ int getauid(uid_t *auid); }
-448	AUE_SETAUID	MNOSTD	{ int setauid(uid_t *auid); }
-449	AUE_GETAUDIT	MNOSTD	{ int getaudit(struct auditinfo *auditinfo); }
-450	AUE_SETAUDIT	MNOSTD	{ int setaudit(struct auditinfo *auditinfo); }
-451	AUE_GETAUDIT_ADDR	MNOSTD	{ int getaudit_addr( \
+447	AUE_GETAUID	MSTD	{ int getauid(uid_t *auid); }
+448	AUE_SETAUID	MSTD	{ int setauid(uid_t *auid); }
+449	AUE_GETAUDIT	MSTD	{ int getaudit(struct auditinfo *auditinfo); }
+450	AUE_SETAUDIT	MSTD	{ int setaudit(struct auditinfo *auditinfo); }
+451	AUE_GETAUDIT_ADDR	MSTD	{ int getaudit_addr( \
 				    struct auditinfo_addr *auditinfo_addr, \
 				    u_int length); }
-452	AUE_SETAUDIT_ADDR	MNOSTD	{ int setaudit_addr( \
+452	AUE_SETAUDIT_ADDR	MSTD	{ int setaudit_addr( \
 				    struct auditinfo_addr *auditinfo_addr, \
 				    u_int length); }
-453	AUE_AUDITCTL	MNOSTD	{ int auditctl(char *path); }
+453	AUE_AUDITCTL	MSTD	{ int auditctl(char *path); }
 454	AUE_NULL	MSTD	{ int _umtx_op(struct umtx *umtx, int op, \
 				    long id, void *uaddr, void *uaddr2); }
 455	AUE_NULL	MSTD	{ int thr_new(struct thr_param *param, \

==== //depot/projects/trustedbsd/audit3/sys/sys/syscall.h#10 (text+ko) ====

@@ -2,7 +2,7 @@
  * System call numbers.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/sys/syscall.h,v 1.176 2005/05/30 15:20:21 rwatson Exp $
+ * $FreeBSD$
  * created from FreeBSD: src/sys/kern/syscalls.master,v 1.196 2005/05/30 15:09:18 rwatson Exp 
  */
 

==== //depot/projects/trustedbsd/audit3/sys/sys/syscall.mk#11 (text+ko) ====

@@ -1,6 +1,6 @@
 # FreeBSD system call names.
 # DO NOT EDIT-- this file is automatically generated.
-# $FreeBSD: src/sys/sys/syscall.mk,v 1.131 2005/05/30 15:20:21 rwatson Exp $
+# $FreeBSD$
 # created from FreeBSD: src/sys/kern/syscalls.master,v 1.196 2005/05/30 15:09:18 rwatson Exp 
 MIASM =  \
 	syscall.o \

From owner-p4-projects@FreeBSD.ORG  Sun Jul 17 09:36:50 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 4133416A420; Sun, 17 Jul 2005 09:36:50 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 1268D16A41C
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 09:36:50 +0000 (GMT)
	(envelope-from soc-andrew@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id AA43743D45
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 09:36:49 +0000 (GMT)
	(envelope-from soc-andrew@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6H9anXR001363
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 09:36:49 GMT
	(envelope-from soc-andrew@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6H9anHx001360
	for perforce@freebsd.org; Sun, 17 Jul 2005 09:36:49 GMT
	(envelope-from soc-andrew@freebsd.org)
Date: Sun, 17 Jul 2005 09:36:49 GMT
Message-Id: <200507170936.j6H9anHx001360@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-andrew@freebsd.org using -f
From: soc-andrew <soc-andrew@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80382 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 17 Jul 2005 09:36:51 -0000

http://perforce.freebsd.org/chv.cgi?CH=80382

Change 80382 by soc-andrew@soc-andrew_serv on 2005/07/17 09:36:24

	Catchup with libmemstat + new release docs

Affected files ...

.. //depot/projects/soc2005/bsdinstaller/src/contrib/bsdinstaller/backend/installer/flow.c#2 edit
.. //depot/projects/soc2005/bsdinstaller/src/lib/Makefile#3 integrate
.. //depot/projects/soc2005/bsdinstaller/src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#4 integrate
.. //depot/projects/soc2005/bsdinstaller/src/release/doc/share/sgml/release.ent#2 integrate
.. //depot/projects/soc2005/bsdinstaller/src/usr.sbin/bsdinstaller/backend/Makefile#5 edit

Differences ...

==== //depot/projects/soc2005/bsdinstaller/src/contrib/bsdinstaller/backend/installer/flow.c#2 (text+ko) ====

@@ -73,6 +73,8 @@
 #include "fn.h"
 #include "pathnames.h"
 
+#include "extra_flow.h"
+
 /*** GLOBALS ***/
 
 void (*state)(struct i_fn_args *) = NULL;
@@ -1160,7 +1162,8 @@
 
 	fn_create_subpartitions(a);
 	if (a->result) {
-		state = state_install_os;
+		/* state = state_install_os; */
+		state = state_select_distros;
 	} else {
 		state = disk_get_formatted(storage_get_selected_disk(a->s)) ?
 		    state_select_disk : state_select_slice;

==== //depot/projects/soc2005/bsdinstaller/src/lib/Makefile#3 (text+ko) ====

@@ -1,5 +1,5 @@
 #	@(#)Makefile	8.1 (Berkeley) 6/4/93
-# $FreeBSD: src/lib/Makefile,v 1.205 2005/04/20 20:50:32 marcel Exp $
+# $FreeBSD: src/lib/Makefile,v 1.206 2005/07/14 17:59:50 rwatson Exp $
 
 # To satisfy shared library or ELF linkage when only the libraries being
 # built are visible:
@@ -29,7 +29,7 @@
 	libcalendar libcam libcompat libdevinfo libdevstat ${_libdisk} \
 	libedit libexpat libfetch libform libftpio libgeom ${_libgpib} \
 	${_libio} libipsec \
-	libipx libkiconv libmagic libmenu ${_libmilter} ${_libmp} \
+	libipx libkiconv libmagic libmemstat libmenu ${_libmilter} ${_libmp} \
 	${_libncp} ${_libngatm} libopie libpam libpanel libpcap \
 	libpmc ${_libpthread} ${_libsdp} ${_libsm} ${_libsmb} ${_libsmdb} \
 	${_libsmutil} libstand libtelnet ${_libthr} ${_libthread_db} libufs \

==== //depot/projects/soc2005/bsdinstaller/src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#4 (text+ko) ====

@@ -3,7 +3,7 @@
 
   <corpauthor>The &os; Project</corpauthor>
 
-  <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.883 2005/07/10 03:47:00 hrs Exp $</pubdate>
+  <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.885 2005/07/15 16:38:52 hrs Exp $</pubdate>
 
   <copyright>
     <year>2000</year>
@@ -113,323 +113,25 @@
   <sect2 id="security">
     <title>Security Advisories</title>
 
-    <para>A bug in the &man.fetch.1; utility, which allows
-      a malicious HTTP server to cause arbitrary portions of the client's
-      memory to be overwritten, has been fixed.
-      For more information, see security advisory
-      <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-04:16.fetch.asc">FreeBSD-SA-04:16.fetch</ulink>.
-      &merged;</para>
-
-    <para>A bug in &man.procfs.5; and &man.linprocfs.5;
-      which could allow a malicious local user to read parts of kernel
-      memory or perform a local
-      denial of service attack by causing a system panic,
-      has been fixed.
-      For more information, see security advisory
-      <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-04:17.procfs.asc">FreeBSD-SA-04:17.procfs</ulink>.
-      &merged;</para>
-
-    <para>Two buffer overflows in the TELNET client program have been
-      corrected.  They could have allowed a malicious TELNET server or
-      an active network attacker to cause &man.telnet.1; to execute
-      arbitrary code with the privileges of the user running it.
-      More information can be found in security advisory
-      <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:01.telnet.asc">FreeBSD-SA-05:01.telnet</ulink>.
-      &merged;</para>
-
-    <para>An information disclosure vulnerability in the
-      &man.sendfile.2; system call, which could permit it to transmit
-      random parts of kernel memory, has been fixed.  More details are
-      in security advisory
-      <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:02.sendfile.asc">FreeBSD-SA-05:02.sendfile</ulink>.
-      &merged;</para>
-
-    <para arch="amd64">A possible privilege escalation vulnerability on &os;/amd64
-      has been fixed.  This allows unprivileged users to gain direct
-      access to some hardware which cannot be accessed
-      without the elevated privilege level.  More details are in security advisory
-      <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:03.amd64.asc">FreeBSD-SA-05:03.amd64</ulink>.
-      &merged;</para>
-
-    <para>An information leak vulnerability in the
-      <literal>SIOCGIFCONF</literal> &man.ioctl.2;, which leaked 12
-      bytes of kernel memory, has been fixed.  More details are in security advisory
-      <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:04.ifconf.asc">FreeBSD-SA-05:04.ifconf</ulink>.
-      &merged;</para>
-
-    <para>Several programming errors in &man.cvs.1;, which could
-      potentially cause arbitrary code to be executed on CVS servers,
-      have been corrected.  Further information can be found in
-      security advisory
-      <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:05.cvs.asc">FreeBSD-SA-05:05.cvs</ulink>.
-      &merged;</para>
-
-    <para>An error in the default permissions on the <filename
-	class="devicefile">/dev/iir</filename> device node, which
-      allowed unprivileged local users can send commands to the
-      hardware supported by the &man.iir.4; driver, has been fixed.
-      For more information, see security advisory
-      <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:06.iir.asc">FreeBSD-SA-05:06.iir</ulink>.
-      &merged;</para>
-
-   <para>A bug in the validation of &man.i386.get.ldt.2; system call
-     input arguments, which may allow kernel memory to be disclosed
-     to a user process, has been fixed.  For more information, see
-      security advisory
-     <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:07.ldt.asc">FreeBSD-SA-05:07.ldt</ulink>.
-     &merged;</para>
-
-    <para>Several information disclosure vulnerabilities in various
-      parts of the kernel have been fixed.  For more information, see
-      security advisory
-      <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:08.kmem.asc">FreeBSD-SA-05:08.kmem</ulink>.
-      &merged;</para>
-
-    <para arch="i386,amd64">Because of an information disclosure vulnerability on
-      processors using Hyper-Threading Technology (HTT), the
-      <varname>machdep.hyperthreading_allowed</varname> sysctl
-      variable has been added.  It defaults to <literal>1</literal>
-      (HTT enabled) on &os; CURRENT, and <literal>0</literal> (HTT
-      disabled) on the 4-STABLE and 5-STABLE development branches and
-      supported security fix branches.  More information can be found
-      in security advisory
-      <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:09.htt.asc">FreeBSD-SA-05:09.htt</ulink>.
-      &merged;</para>
-
-    <para>A bug in the &man.tcpdump.1; utility which allows
-      a malicious remote user to cause a denial-of-service
-      by using specially crafted packets, has been fixed.
-      For more information, see security advisory
-      <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:10.tcpdump.asc">FreeBSD-SA-05:10.tcpdump</ulink>.
-      &merged;</para>
-
-    <para>Two problems in the &man.gzip.1; utility have been fixed.
-      These may allow a local user to modify permissions
-      of arbitrary files and overwrite arbitrary local
-      files when uncompressing a file.
-      For more information, see security advisory
-      <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:11.gzip.asc">FreeBSD-SA-05:11.gzip</ulink>.
-      &merged;</para>
-
-    <para>A bug in <application>BIND 9</application> DNSSEC has been fixed.
-      When DNSSEC is enabled, this bug may allow a remote attacker to inject
-      a specially crafted packet which will cause &man.named.8; to terminate.
-      For more information, see security advisory
-      <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:12.bind9.asc">FreeBSD-SA-05:12.bind9</ulink>.
-      &merged;</para>
-
-    <para>A bug has been fixed in &man.ipfw.4; that could cause
-      packets to be matched incorrectly against a lookup table.  This
-      bug only affects SMP machines or UP machines that have the
-      <literal>PREEMPTION</literal> kernel option enabled.  More
-      information is contained in security advisory
-      <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:13.ipfw.asc">FreeBSD-SA-05:13.ipfw</ulink>.
-      &merged;</para>
-
-    <para>Two security-related problems have been fixed in
-      &man.bzip2.1;.  These include a potential denial of service and
-      unauthorized manipulation of file permissions.  For more
-      information, see security advisory
-      <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:14.bzip2.asc">FreeBSD-SA-05:14.bzip2</ulink>.
-      &merged;</para>
-
-    <para>Two problems in &os;'s TCP stack have been fixed.  They
-      could allow attackers to stall existing TCP connections,
-      creating a denial-of-service situation.  More information is
-      contained in security advisory
-      <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:15.tcp.asc">FreeBSD-SA-05:15.tcp</ulink>.
-      &merged;</para>
-
+    <para></para>
   </sect2>
 
   <sect2 id="kernel">
     <title>Kernel Changes</title>
 
-    <para arch="i386">Support for 80386 processors (the
-      <literal>I386_CPU</literal> kernel configuration option) has
-      been removed.  Users running this class of CPU should use &os;
-      5.<replaceable>X</replaceable> or earlier.</para>
+    <para>A new sysctl variable <varname>kern.malloc_stats</varname>
+      has been added.  This allows to export kernel malloc
+      statistics via a binary structure stream.</para>
 
-    <para>The kernel debugger &man.ddb.4; now supports a
-      <command>show alllocks</command> command, which dumps a list of processes
-      and threads currently holding sleep mutexes (and spin mutexes for
-      the current thread).  &merged;</para>
-
-    <para arch="amd64,i386,pc98">The kernel crash dump format has been changed to
-      ELF to support large memory (more than 4GB) environment.</para>
-
-    <para>The &man.ichsmb.4; driver is now available as a loadable
-      kernel module.</para>
-
-    <para>The &man.jail.8; feature now supports a new sysctl
-      <varname>security.jail.chflags_allowed</varname>, which controls the
-      behavior of &man.chflags.1; within a jail.
-      If set to <literal>0</literal> (the default), then a jailed <username>root</username> user is
-      treated as an unprivileged user; if set to <literal>1</literal>, then
-      a jailed root user is treated the same as an unjailed <username>root</username> user.  &merged;</para>
-
-    <para>A sysctl <varname>security.jail.getfsstatroot_only</varname> has been
-      renamed to <varname>security.jail.enforce_statfs</varname> and
-      now supports the following policies:</para>
-
-    <informaltable frame="none">
-      <tgroup cols="2">
-	<colspec colwidth="1*">
-	<colspec colwidth="3*">
-	<thead>
-	  <row>
-	    <entry>Value</entry>
-	    <entry>Policy</entry>
-	  </row>
-	</thead>
-
-	<tbody>
-	  <row>
-	    <entry>0</entry>
-	    <entry>Show all mount-points without any restrictions.</entry>
-	  </row>
-
-	  <row>
-	    <entry>1</entry>
-	    <entry>Show only mount-points below jail's chroot and show only part of the
-	      mount-point's path (for example, if the jail's chroot directory is
-	      <filename>/jails/foo</filename> and
-	      mount-point is
-	      <filename>/jails/foo/usr/home</filename>,
-	      only <filename>/usr/home</filename> will be shown).</entry>
-	  </row>
+    <para>A new sysctl variable <varname>vm.zone_stats</varname>
+      has been added.  This allows to export &man.uma.9; allocator
+      statistics via a binary structure stream.</para>
 
-	  <row>
-	    <entry>2</entry>
-	    <entry>Show only mount-point where jail's chroot directory is placed.</entry>
-	  </row>
-	</tbody>
-      </tgroup>
-    </informaltable>
-
-    <para arch="alpha,amd64,i386,sparc64">The loader tunable <varname>debug.mpsafevm</varname>
-      has been enabled by default.  &merged;</para>
-
-    <para>&man.memguard.9;, a kernel memory allocator designed to help detect
-      <quote>tamper-after-free</quote> scenarios, has been added.
-      This must be explicitly enabled via <literal>options
-      DEBUG_MEMGUARD</literal>, plus small kernel modifications.  It
-      is generally intended for use by kernel developers.</para>
-
-    <para><varname>struct ifnet</varname> and network interface API
-      have been changed.  Due to ABI incompatibility, all drivers
-      not in the &os; base system need to be updated to use
-      the new API and recompiled.</para>
-
-    <para>A number of bugs have been fixed in the ULE
-      scheduler. &merged;</para>
-
-    <para>Fine-grained locking to allow much of the VFS stack to run
-      without the Giant lock has been added.  This is enabled by default
-      on the alpha, amd64, and i386 architectures, and can be disabled
-      by setting the loader tunable (and sysctl variable)
-      <varname>debug.mpsafevfs</varname> to
-      <literal>0</literal>.</para>
-
-    <para arch="i386">A bug in Inter-Processor Interrupt (IPI)
-      handling, which could cause SMP systems to crash under heavy
-      load, has been fixed.  More details are contained in errata note
-      <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ERRATA/notices/FreeBSD-EN-05:03.ipi.asc">FreeBSD-EN-05:03.ipi</ulink>.
-      &merged;</para>
-
-    <para>System V IPC objects (message queues, semaphores, and shared
-      memory) now have support for Mandatory Access Control policies,
-      notably &man.mac.biba.4;, &man.mac.mls.4;, &man.mac.stub.4;, and
-      &man.mac.test.4;.</para>
-
-    <para arch="i386">Memory allocation for legacy PCI bridges has
-      been limited to the top 32MB of RAM.  Many older, legacy bridges
-      only allow allocation from this range.  This change only applies
-      to devices which do not have their memory assigned by the BIOS.
-      This change fixes the <quote>bad Vcc</quote> error of CardBus
-      bridges (&man.pccbb.4;). &merged;</para>
-
-    <para>The &man.sysctl.3; MIBs beginning with <quote>debug</quote>
-      now require the kernel option <literal>options SYSCTL_DEBUG</literal>.
-      This option is disabled by default.</para>
-
-    <para>The generic &man.tty.4; driver interface has been added
-      and many device drivers including
-      &man.cx.4; (<literal>{tty,cua}x</literal>),
-      &man.cy.4; (<literal>{tty,cua}c</literal>),
-      &man.digi.4; (<literal>{tty,cua}D</literal>),
-      &man.rc.4; (<literal>{tty,cua}m</literal>),
-      &man.rp.4; (<literal>{tty,cua}R</literal>),
-      &man.sab.4; (<literal>{tty,cua}z</literal>),
-      &man.si.4; (<literal>{tty,cua}A</literal>),
-      &man.sio.4; (<literal>{tty,cua}d</literal>),
-      sx (<literal>{tty,cua}G</literal>),
-      &man.uart.4; (<literal>{tty,cua}u</literal>),
-      &man.ubser.4; (<literal>{tty,cua}y</literal>),
-      &man.ucom.4; (<literal>{tty,cua}U</literal>), and
-      &man.ucycom.4; (<literal>{tty,cua}y</literal>)
-      have been rewritten to use it.  Note that <filename>/etc/remote</filename>
-      and <filename>/etc/ttys</filename> have been updated as well.</para>
-
-    <para>The &man.vkbd.4; driver has been added.  This driver
-      provides a software loopback mechanism that can implement
-      a virtual AT keyboard similar to what the &man.pty.4; driver
-      does for terminals.</para>
-
-    <!-- Above this line, sort kernel changes by manpage/keyword-->
-
-    <para arch="i386,amd64">&os; always uses the local APIC timer
-      even on uni-processor systems now.</para>
-
-    <para arch="i386,amd64,ia64">The default <varname>HZ</varname>
-      parameter (which controls various kernel timers) has been
-      increased from <literal>100</literal> to <literal>1000</literal>
-      on the i386 and ia64.  It has been reduced from
-      <literal>1024</literal> to <literal>1000</literal> on the amd64
-      to reduce synchronization effects with other system
-      clocks.</para>
-
-    <para>The maximum length of shell commands has changed from 128
-      bytes to <varname>PAGE_SIZE</varname>.  By default, this value
-      is either 4KB (i386, pc98, amd64, and powerpc) or 8KB (sparc64
-      and ia64).  As a result, compatibility modules need to be
-      rebuilt to stay synchronized with data structure changes in the
-      kernel.</para>
-
-    <para>A new tunable <varname>vm.blacklist</varname> has been added.
-      This can hold a space or comma separated list of physical addresses.
-      The pages containing these physical addresses will
-      not be added to the free list and thus will effectively
-      be ignored by the &os; VM system.  The physical addresses
-      of any ignored pages are listed in the message buffer as well.</para>
-
     <sect3 id="boot">
       <title>Boot Loader Changes</title>
 
-      <para arch="i386">A serial console-capable version of
-	<filename>boot0</filename> has been added.  It can be written
-	to a disk using &man.boot0cfg.8; and specifying
-	<filename>/boot/boot0sio</filename> as the argument to the
-	<option>-b</option> option.</para>
-
-      <para arch="i386"><filename>cdboot</filename> now works around a
-	BIOS problem observed on some systems when booting from USB
-	CDROM drives.</para>
-
-      <para>The <command>autoboot</command> loader command
-	now supports the prompt parameter.</para>
+      <para></para>
 
-      <para>The <command>autoboot</command> loader command will now prevent the user
-	from interrupting the boot process at all if the
-	<varname>autoboot_delay</varname> variable is set to
-	<literal>-1</literal>. &merged;</para>
-
-      <para>A loader menu option to set <varname>hint.atkbd.0.flags=0x1</varname>
-	has been added.  This setting allows USB keyboards to work
-	if no PS/2 keyboard is attached.</para>
-
-      <para>The beastie boot menu has been disabled by default.</para>
-
       <!-- Above this line, order boot loader changes by keyword-->
 
     </sect3>
@@ -437,1228 +139,106 @@
     <sect3 id="proc">
       <title>Hardware Support</title>
 
-      <para arch="i386,amd64">The &man.acpi.4; driver now turns
-	the ACPI and PCI devices off or to a lower power state
-	when suspending, and back on again when resuming.
-	This behavior can be disabled by
-	setting the <varname>debug.acpi.do_powerstate</varname> and
-	<varname>hw.pci.do_powerstate</varname> sysctls to <literal>0</literal>.</para>
-
-      <para arch="i386,amd64">The &man.acpi.ibm.4; driver for IBM laptops
-	has been added.  It provides support for the various
-	hotkeys and reading fan status and thermal
-	sensors.</para>
-
-      <para arch="i386,amd64">The &man.acpi.fujitsu.4; driver for handling
-        &man.acpi.4;-controlled buttons Fujitsu laptops has been added.</para>
-
-      <para arch="i386,amd64">The acpi_sony driver,
-	which supports the Sony Notebook Controller on various
-	Sony laptops has been added.</para>
-
-      <para>The &man.atkbdc.4;, &man.atkbd.4;, and &man.psm.4;
-	drivers have been rewritten in more bus-independent way,
-	and now support the EBus found on the sparc64 platform.</para>
-
-      <para arch="sparc64">The following device drivers have been
-	added and enabled by default in the
-	<filename>GENERIC</filename> kernel:
-	&man.atkbdc.4;,
-	&man.atkbd.4;,
-	creator(4),
-	machfb(4),
-	&man.syscons.4;,
-	&man.ohci.4;,
-	&man.psm.4;,
-	&man.ukbd.4;,
-	&man.ums.4;,
-	and &man.usb.4;.</para>
-
-      <para arch="sparc64">The &man.auxio.4; driver has been added; it supports
-	some auxiliary I/O functions found on various SBus/EBus
-	&ultrasparc; models. &merged;</para>
-
-      <para arch="sparc64">The clkbrd driver has been added to support
-	the <literal>clock-board</literal> device frequently found on
-	Sun E<replaceable>xx</replaceable>00 servers.</para>
-
-      <para>A framework for flexible processor speed control has been
-	added.  It provides methods for various drivers to control CPU
-	power utilization by adjusting the processor speed.  More
-	details can be found in the &man.cpufreq.4; manual page. &merged;
-	Currently supported drivers include ichss (Intel SpeedStep for ICH),
-	acpi_perf (ACPI CPU performance states), and acpi_throttle
-	(ACPI CPU throttling).  The latter two drivers are contained
-	in the &man.acpi.4; driver.  These can individually be disabled by setting device
-	hints such as <varname>hint.<replaceable>ichss</replaceable>.0.disabled="1"</varname>.</para>
-
-      <para>The &man.hwpmc.4; hardware performance
-	monitoring counter driver has been added.
-	This driver virtualizes the hardware performance monitoring
-	facilities in modern CPUs and provides support for using
-	these facilities from user level processes.  For more details,
-	see manual pages of &man.hwpmc.4;, associated libraries,
-	and associated userland utilities.</para>
-
-      <para arch="i386">Support for the OLDCARD subsystem has
-	been removed.  The NEWCARD system is now used for all PCCARD
-	device support.</para>
-
-      <para>The pcii driver has been added to support GPIB-PCIIA IEEE-488
-	cards. &merged;</para>
-
-      <para>The &man.atkbd.4; driver now supports a <literal>0x8</literal>
-	(bit 3) flag to disable testing the keyboard port during
-	the device probe as this can cause hangs on some machines,
-	specifically Compaq R3000Z series amd64 laptops.</para>
-
-      <para arch="i386">The &man.pbio.4; driver,
-	which supports direct access to
-	the Intel 8255A programmable peripheral interface (PPI)
-	chip running in mode 0 (simple I/O) has been added.</para>
-
-      <para>The &man.psm.4; driver now has improved support for
-	Synaptics Touchpad users.  It now has better tracking of
-	slow-speed movement and support for various extra
-	buttons and dials.  These features can be tuned with the
-	<varname>hw.psm.synaptics.<replaceable>*</replaceable></varname>
-	hierarchy of sysctl variables.</para>
-
-      <para arch="sparc64">The rtc driver has been added to support
-	the MC146818-compatible clock found on some &ultrasparc; II
-	and III models. &merged;</para>
-
-      <para arch="i386">The &man.syscons.4; driver now supports VESA
-	(15, 16, 24, and 32 bit) modes.  To enable this feature, two
-	kernel options <literal>SC_PIXEL_MODE</literal> and
-	<literal>VESA</literal> (or corresponding kernel module)
-	are needed.</para>
-
-      <para arch="sparc64">The &man.uart.4; driver is now enabled in
-	the <filename>GENERIC</filename> kernel, and is now the
-	default driver for serial ports.  The &man.ofw.console.4; and
-	&man.sab.4; drivers are now disabled in the
-	<filename>GENERIC</filename> kernel. &merged;</para>
-
-      <para>The &man.uftdi.4; driver now supports the FTDI FT2232C
-	chip.</para>
+      <para></para>
 
-      <para>The &man.uplcom.4; driver now supports handling of the
-	<literal>CTS</literal> signal.</para>
-
-      <para>The &man.ehci.4; driver has been improved.</para>
-
-      <para arch="sparc64">The zs driver has been removed
-	in favor of the &man.uart.4; driver.</para>
-
       <sect4 id="mm">
 	<title>Multimedia Support</title>
 
-	<para arch="sparc64">The &man.snd.audiocs.4; driver has been
-	  added to support the Crystal Semiconductor CS4231 audio
-	  controller found on &ultrasparc;
-	  workstations. &merged;</para>
-
-	<para>The &man.snd.csa.4; driver now supports
-	  suspend and resume operation.</para>
-
-	<para>The &man.uaudio.4; driver now has some added
-	  functionality, including volume control on more inputs and
-	  recording capability on some devices. &merged;</para>
-
+	<para></para>
       </sect4>
 
       <sect4 id="net-if">
 	<title>Network Interface Support</title>
 
-	<para>The &man.ath.4; driver has been updated to split the
-	  transmit rate control algorithm into a separate module.
-	  One of <literal>device ath_rate_onoe</literal>,
-	  <literal>device ath_rate_amrr</literal>, or
-	  <literal>device ath_rate_sample</literal> must be included in
-	  the kernel configuration when using the &man.ath.4;
-	  driver.</para>
-
-	<para>The &man.bge.4; driver now supports the &man.altq.4;
-	  framework, as well as the BCM5714, 5721, 5750, 5751, 5751M and 5789
-	  chips. &merged;</para>
-
-	<para>The &man.cdce.4; USB Communication Device Class Ethernet
-	  driver has been added. &merged;</para>
-
-	<para>The &man.cp.4; driver is now MPSAFE. &merged;</para>
-
-	<para>The &man.ctau.4; driver is now MPSAFE. &merged;</para>
-
-	<para>The &man.cx.4; driver is now MPSAFE. &merged;</para>
-
-	<para>The &man.dc.4; driver now supports the &man.altq.4;
-	  framework. &merged;</para>
-
-	<para>The &man.ed.4; driver now supports the &man.altq.4;
-	  framework.  &merged;</para>
-
-	<para>In the &man.em.4; driver, hardware support for VLAN
-	  tagging is now disabled by default due to some interactions
-	  between this feature and promiscuous mode. &merged;</para>
-
-	<para>Ethernet flow control is now disabled by default in the
-	  &man.fxp.4; driver, to prevent problems on a subnet when a system panics
-	  or is left in the kernel debugger. &merged;</para>
-
-	<para>The gx(4) driver has been removed because
-	  it is no longer maintained actively and
-	  the &man.em.4; driver supports all of the supported hardware.</para>
-
-	<para>The &man.hme.4; driver is now MPSAFE. &merged;</para>
-
-	<para>The &man.ipw.4; (for Intel PRO/Wireless 2100),
-	  &man.iwi.4; (for Intel PRO/Wireless 2200BG/2225BG/2915ABG),
-	  &man.ral.4; (for Ralink Technology RT2500),
-	  and &man.ural.4; (for Ralink Technology RT2500USB)
-	  drivers have been added.</para>
-
-	<para>The &man.ixgb.4; driver is now MPSAFE. &merged;</para>
-
-	<para>The musycc driver, for the LanMedia LMC1504 T1/E1
-	  network interface card, has been removed due to
-	  disuse.</para>
-
-	<para arch="i386,amd64">Drivers using the &man.ndis.4; device
-	  driver wrapper mechanism are now built and loaded
-	  differently.  The &man.ndis.4; driver can now be pre-built
-	  as module or statically compiled into a kernel.  Individual
-	  drivers can now be built with the &man.ndisgen.8; utility;
-	  the result is a kernel module that can be loaded into a
-	  running kernel using &man.kldload.8;. &merged;</para>
-
-	<para arch="amd64">The &man.ndis.4; device driver wrapper now
-	  supports &windows;/x86-64 binaries on amd64
-	  systems. &merged;</para>
-
-	<para arch="i386,amd64">The &man.nve.4; driver, which supports the
-	  nVidia nForce MCP Networking Adapter, has been added.</para>
-
-	<para>The &man.re.4; driver now supports the &man.altq.4;
-	  framework.  &merged;</para>
-
-	<para>The &man.sf.4; driver now has support for device polling
-	  and &man.altq.4;. &merged;</para>
-
-	<para>Several programming errors in the &man.sk.4; driver have
-	  been corrected.  These bugs were particular to SMP systems, and
-	  could cause panics, page faults, aborted SSH connections, or
-	  corrupted file transfers.  More details can be found in
-	  errata note
-	  <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ERRATA/notices/FreeBSD-EN-05:02.sk.asc">FreeBSD-EN-05:02.sk</ulink>.
-	  &merged;</para>
-
-	<para>The &man.sk.4; driver now has support for &man.altq.4;.
-	  This driver also now supports jumbo frames on Yukon-based
-	  interfaces. &merged;</para>
-
-	<para>The &man.ste.4; driver now has support for &man.altq.4;.</para>
-
-	<para>The &man.vge.4; driver now has support for device polling
-	  (&man.polling.4;).</para>
-
-	<para>Support for 802.11 devices in the &man.wlan.4; framework has been
-	  greatly overhauled.  In addition to architectural changes,
-	  it includes completed 802.11g, WPA, 802.11i, 802.1x,
-	  WME/WMM, AP-side power-saving, and plugin frameworks for
-	  cryptography modules, authenticators, and access control.
-	  Note in particular that WEP now requires the
-	  <filename>wlan_wep</filename> module to be loaded (or
-	  compiled) into the kernel.</para>
-
-	<para>The &man.xl.4; driver now supports
-	  &man.polling.4;. &merged;</para>
-
+	<para></para>
       </sect4>
     </sect3>
 
     <sect3 id="net-proto">
       <title>Network Protocols</title>
 
-      <para>The MTU feedback in IPv6 has been disabled when the sender writes
-	data that must be fragmented.  &merged;</para>
-
-      <para>The Common Address Redundancy Protocol (CARP) has
-	been implemented.  CARP comes from OpenBSD and allows
-	multiple hosts to share an IP address, providing
-	high availability and load balancing.
-	For more information, see the &man.carp.4; manual page.  &merged;</para>
-
-      <para>The &man.if.bridge.4; network bridging implementation,
-	originally from NetBSD, has been added.  It supports the IEEE
-	802.1D Spanning Tree Protocol, individual interface devices
-	for each bridge, and filtering of bridged packets.
-	The &man.ifconfig.8; utility now supports to configure
-	&man.if.bridge.4;.</para>
-
-      <para>The &man.ipfw.4; <literal>IPDIVERT</literal> option is now
-	available as a kernel loadable module.
-	If this module is not loaded, &man.ipfw.4; will refuse to
-	install <literal>divert</literal> rules and &man.natd.8;
-	will return the error message <quote>protocol not supported</quote>.</para>
-
-      <para>The &man.ipfw.4; system can work with
-	<varname>debug.mpsafenet</varname>=<literal>1</literal>
-	(this tunable is <literal>1</literal> by default)
-	when the <literal>gid</literal>, <literal>jail</literal>,
-	and/or <literal>uid</literal> rule options are used.  &merged;</para>
-
-      <para>The &man.ipfw.4; and &man.dummynet.4; systems now
-	support IPv6.</para>
-
-      <para>&man.ipfw.8; now supports classification and tagging
-	of &man.altq.4; packets via a divert socket.  It is also
-	possible to specify rules that match TCP packets with specific
-	payload sizes.</para>
-
-      <para>The &man.ipfw.8; <literal>ipfw fwd</literal> rule now supports
-	the full packet destination manipulation when the kernel option
-	<literal>options IPFIREWALL_FORWARD_EXTENDED</literal> is specified
-	in addition to <literal>options IPFIRWALL_FORWARD</literal>.
-	This kernel option disables all restrictions to ensure proper
-	behavior for locally generated packets and allows redirection of
-	packets destined to locally configured IP addresses.
-	Note that &man.ipfw.8; rules have to be carefully crafted to
-	make sure that things like PMTU discovery do not break. &merged;</para>
-
-      <para>The &man.ipfw.8; system now supports IPv4 only rules.</para>
-
-      <para>&man.ipnat.8; now allows redirect rules to
-	work for non-TCP/UDP packets.  &merged;</para>
-
-      <para>Ongoing work is reducing the use of the Giant lock by the
-	network protocol stack and improving the locking
-	strategies.</para>
-
-      <para>The <filename>libalias</filename> library can now be built
-        as a kernel module.</para>
-
-      <para>The link state change notifications of network interfaces
-	are sent to <filename>/dev/devctl</filename> now.</para>
-
-      <para>A new &man.ng.ipfw.4; NetGraph node provides
-	a simple interface between the &man.ipfw.4; and &man.netgraph.4;
-	facilities.</para>
-
-      <para>A new &man.ng.nat.4; NetGraph node has been added to
-	perform NAT functions.</para>
-
-      <para>A new &man.ng.netflow.4; NetGraph node allows a router
-	running &os; to do NetFlow version 5 exports. &merged;</para>
-
-      <para>A new &man.ng.tcpmss.4; NetGraph node has been added.
-	This supports altering MSS options of TCP packets.</para>
-
-      <para>The &man.sppp.4; driver now includes Frame Relay
-	support. &merged;</para>
-
-      <para>The &man.sppp.4; driver is now MPSAFE.</para>
-
-      <para>The &os; routing table now requires gateways for routes
-	to be of the same address family as the route itself.
-	The &man.route.8; utility now rejects a combination of different
-	address families.  For example:</para>
-
-      <screen>&prompt.root; route add 10.1.1.1 -inet6 fe80::1%fxp0</screen>
-
-      <para>The new sysctl <varname>net.link.tap.user_open</varname>
-	has been implemented.  This allows unprivileged access to
-	&man.tap.4; device nodes based on file system permissions.</para>
-
-      <para>A bug in TCP that sometimes caused RST packets to
-	be ignored if the receive window was zero bytes has been
-	fixed. &merged;</para>
-
-      <para>The <literal>RST</literal>
-	handling of the &os; TCP stack has been improved
-	to make reset attacks as difficult as possible while
-	maintaining compatibility with the widest range of TCP stacks.
-	The algorithm is as follows:  For connections in the
-	<literal>ESTABLISHED</literal>
-	state, only resets with sequence numbers exactly matching
-	<varname>last_ack_sent</varname> will cause a reset;
-	all other segments will
-	be silently dropped. For connections in all other states,
-	a reset anywhere in the window will cause the connection
-	to be reset.  All other segments will be silently dropped.
-	Note that this behavior technically violates the RFC 793 specification;
-	the conventional (but less secure) behavior can be restored
-	by setting a new sysctl <varname>net.inet.tcp.insecure_rst</varname>
-	to <literal>1</literal>.  &merged;</para>
-
-      <para>Several bugs in the TCP SACK implementation have been
-	fixed. &merged;</para>
-
-      <para>RFC 1644 T/TCP support has been removed.  This is because
-	the design is based on a weak security model that can easily
-	permit denial-of-service attacks.  This TCP
-	extension has been considered a defective one in
-	a recent Internet Draft.</para>
-
-      <para>The KAME IPv4 IPsec implementation integrated
-	in &os; now supports TCP-MD5.  &merged;</para>
-
-      <para>Random ephemeral port number allocation has led to some
-        problems with port reuse at high connection rates.  This
-        feature is now disabled during periods of high connection
-        rates; whenever new connections are created faster than
-        <varname>net.inet.ip.portrange.randomcps</varname> per second,
-        port number randomization is disabled for the next
-        <varname>net.inet.ip.portrange.randomtime</varname>
-        seconds.  The default values for these two sysctl variables
-        are <literal>10</literal> and <literal>45</literal>,
-        respectively. &merged;</para>
-
-      <para>Fine-grained locking has been applied to many of the data
-	structures in the IPX/SPX protocol stack.  While not fully
-	MPSAFE at this point, it is generally safe to use IPX/SPX
-	without the Giant lock (in other words, the
-	<varname>debug.mpsafenet</varname> sysctl variable may be set
-	to <literal>1</literal>).</para>
-
-      <para>Unix domain sockets now support the
-	<literal>LOCAL_CREDS</literal> and
-	<literal>LOCAL_CONNWAIT</literal> options.
-	The <literal>LOCAL_CREDS</literal> option provides
-	a mechanism for the receiver to receive the credentials
-	of the process as a &man.recvmsg.2; control message.
-	The <literal>LOCAL_CONNWAIT</literal>
-	option causes the &man.connect.2; function to block
-	until &man.accept.2; has been called on the listening socket.
-	For more details, see the &man.unix.4; manual page.</para>
+      <para></para>
     </sect3>
 
     <sect3 id="disks">
       <title>Disks and Storage</title>
 
-      <para>The &man.amr.4; driver is now safe for use on systems
-	using &man.pae.4;. &merged;</para>
-
-      <para arch="i386,ia64">The &man.arcmsr.4; driver has been added.
-	It supports the Areca ARC-11<replaceable>xx</replaceable> and
-	ARC-12<replaceable>xx</replaceable> series of SATA RAID
-	controllers.  &merged;</para>
-
-      <para>The &man.ata.4; family of drivers has been overhauled and
-	updated.  It has been split into modules that can be loaded
-	and unloaded independently (the <filename>atapci</filename>
-	and <filename>ata</filename> modules are prerequesites for the
-	device subdrivers, which are <filename>atadisk</filename>,
-	<filename>atapicd</filename>, <filename>atapifd</filename>,
-	<filename>atapist</filename>, and
-	<filename>ataraid</filename>).  On supported SATA controllers,
-	devices can be hot inserted/removed.  ATA RAID support has
-	been rewritten and supports a number of new metadata formats.
-	The <filename>atapicd</filename> driver no longer supports CD
-	changers.  This update has been referred to as <quote>ATA
-	mkIII</quote>.</para>
-
-      <para>The SHSEC GEOM class has been added.  It provides for the
-	sharing of a secret between multiple GEOM providers.  All of
-	these providers must be present in order to reveal the
-	secret.  This feature is controlled by the &man.gshsec.8;
-	utility. &merged;</para>
-
-      <para>The &man.hptmv.4; driver, which supports the HighPoint
-	RocketRAID 182x series, has been added. &merged;</para>
-
-      <para>The &man.ips.4; driver now support kernel crash dumps
-	on some modern ServeRAID models.  &merged;</para>
-
-      <para>The &man.matcd.4; driver has been removed. &merged;</para>
-
-      <para>The default SCSI boot-time probe delay in the
-	<filename>GENERIC</filename> kernel has been reduced from
-	fifteen seconds to five seconds.</para>
-
-      <para>The old vinum(4) subsystem has been removed
-	in favor of the new &man.geom.4;-based version.</para>
-
-      <para>The &man.twa.4; driver has been updated to
-	the 9.2 release (for &os; 5.2.1) distributed from
-	the 3ware website.</para>
-
-      <para arch="pc98">The &man.wd.4; driver has been removed.  The
-	&man.ata.4; driver has been found to work well enough on the
-	pc98 platform that there is no need for the older &man.wd.4;
-	driver.</para>
-
-      <para>Information about newly-mounted cd9660 file systems (such
-	as the presence of RockRidge extensions) is now only printed
-	if the kernel was booted in verbose mode.  This change was
-	made to reduce the amount of (generally unnecessary) kernel
-	log messages. &merged;</para>
-
+      <para>The &man.mpt.4; driver has been updated to support
+	various new features such as RAID volume and RAID member
+	state/settings reporting, periodic volume re-synchronization
+	status reporting, and sysctl variables for volume
+	re-synchronization rate, volume member write cache status,
+	and volume transaction queue depth.</para>
     </sect3>
 
     <sect3 id="fs">
       <title>File Systems</title>
 
-      <para>Recomputing the summary information for
-	<quote>dirty</quote> UFS and UFS2 file systems is no longer
-	done at mount time, but is now done by background
-	&man.fsck.8;.  This change improves the startup speed when
-	mounting large file systems after a crash.  The prior behavior
-	can be restored by setting the
-	<varname>vfs.ffs.compute_summary_at_mount</varname> sysctl
-	variable to a non-zero value.  &merged;</para>
-
-      <para>A kernel panic in the NFS server has been fixed.  More
-	details can be found in errata note
-	<ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ERRATA/notices/FreeBSD-EN-05:01.nfs.asc">FreeBSD-EN-05:01.nfs</ulink>.
-	&merged;</para>
-
-      <para arch="i386,pc98">Read-only support for ReiserFS version 3 has been
-	added.  See &man.mount.reiserfs.8; for details.</para>
-
+      <para></para>
     </sect3>
 
     <sect3>
       <title>Contributed Software</title>
 
-      <para><application>ACPI-CA</application> has been updated from
-	20040527 to 20041119. &merged;</para>
-
+      <para></para>
     </sect3>
   </sect2>
 
   <sect2 id="userland">
     <title>Userland Changes</title>
 
-    <para>The &man.burncd.8; utility now allows commands (such as
-      <command>eject</command>) to take place after fixating a
-      disk.</para>
+    <para>The &man.ifconfig.8; utility now supports
+      a <option>-k</option> flag to allow printing
+      potentially sensitive keying material to standard output.
+      This sensitive information will not be printed by default.</para>
 
-    <para arch="amd64">Machine-specific optimized versions of
-      &man.bcmp.3;, &man.bcopy.3;, &man.bzero.3;, &man.memcmp.3;,
-      &man.memcpy.3;, &man.memmove.3;, &man.memset.3;, &man.strcat.3;
-      and &man.strcpy.3; have been implemented.  Several mathematics
-      functions such as &man.ceill.3; and &man.sqrtf.3; are also
-      replaced with the optimized versions.</para>
-
-    <para>The &man.chflags.1; utility now supports the
-      <option>-h</option> flag, which supports changing flags on
-      symbolic links.</para>
-
-    <para>The &man.env.1; program now supports a <option>-v</option>
-      flag to write the command to standard error before it is executed.</para>
-
-    <para>The &man.env.1; program now supports a <option>-S
-	<replaceable>string</replaceable></option>
-      option to split the <replaceable>string</replaceable> and pass them to
-      the command as the command-line arguments.</para>
-
-    <para>The &man.env.1; program now supports a <option>-P
-	<replaceable>altpath</replaceable></option>
-      option to set the command search path used to look for
-      the command.</para>
-
-    <para>The &man.ftpd.8; program now uses the <literal>212</literal>
-      and <literal>213</literal> status codes for directory
-      and file status correctly (<literal>211</literal> was used in
-      the previous versions).  This behavior is described in RFC 959.
-      &merged;</para>
-
-    <para>The <literal>create</literal> command of the &man.gpt.8;
-      utility now supports a <option>-f</option> command-line flag to
-      force creation of a GPT even when there is an MBR record on a
-      disk. &merged;</para>
-
-    <para>The &man.getaddrinfo.3; function now queries <literal>A</literal>
-      DNS resource records before <literal>AAAA</literal> records
-      when <literal>AF_UNSPEC</literal> is specified.
-      Some broken DNS servers return <literal>NXDOMAIN</literal>
-      against non-existent <literal>AAAA</literal> queries,
-      even when it should return <literal>NOERROR</literal>
-      with empty return records.  This is a problem for an IPv4/IPv6 dual
-      stack node because the <literal>NXDOMAIN</literal> returned
-      by the first query of an <literal>AAAA</literal> record makes
-      the querying server stop attempting to resolve the <literal>A</literal>
-      record if any.  Also, this behavior has been recognized as a potential
-      denial-of-service attack (see <ulink url="http://www.kb.cert.org/vuls/id/714121"></ulink>
-      for more details).
-      Note that although the query order has been changed,
-      the returned result still includes
-      <literal>AF_INET6</literal> records before
-      <literal>AF_INET</literal> records.  &merged;</para>
-
-    <para>The &man.gethostbyname.3;, &man.gethostbyname2.3;, and
-      &man.gethostbyaddr.3; functions are now thread-safe. &merged;</para>
-
-    <para>The &man.getnetent.3;, &man.getnetbyname.3;, and
-      &man.getnetbyaddr.3; functions are now thread-safe. &merged;</para>
-
-    <para>The &man.getprotoent.3;, &man.getprotobyname.3;, and
-      &man.getprotobynumber.3; functions are now thread-safe. &merged;</para>
-
-    <para>The &man.getservent.3;, &man.getservbyname.3;, and
-      &man.getservbyport.3; functions are now thread-safe. &merged;</para>
-
-    <para>For conformation to IEEE Std 1003.1-2001
-      (also known as POSIX 2001), the <varname>n_net</varname> member
-      of <varname>struct netent</varname> and the first argument
-      of &man.getnetbyaddr.3; has been changed to an <literal>uint32_t</literal>.
-      Due to these changes, the ABI on 64-bit platforms is
-      incompatible with previous releases of &os; and
-      the major version number of the <filename>libpcap</filename>
-      shared library has been bumped.
-      On 64-bit platforms being upgraded from older &os; versions, all
-      userland programs that use &man.getnetbyaddr.3;,
-      &man.getnetbyname.3;, &man.getnetent.3;, and/or
-      <filename>libpcap</filename> have to be recompiled.</para>
-
-    <para>The gvinum(8) utility now supports the
-      <command>checkparity</command>,
-      <command>rebuildparity</command>, and
-      <command>setstate</command>
-      subcommands.  &merged;</para>
-
-    <para>The &man.ifconfig.8; utility has been restructured.  It is

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

From owner-p4-projects@FreeBSD.ORG  Sun Jul 17 13:51:59 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 7898416A420; Sun, 17 Jul 2005 13:51:59 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 4EA1116A41C
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 13:51:59 +0000 (GMT)
	(envelope-from soc-tyler@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 1E40943D48
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 13:51:59 +0000 (GMT)
	(envelope-from soc-tyler@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6HDpxcB017798
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 13:51:59 GMT
	(envelope-from soc-tyler@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6HDpwwc017795
	for perforce@freebsd.org; Sun, 17 Jul 2005 13:51:58 GMT
	(envelope-from soc-tyler@freebsd.org)
Date: Sun, 17 Jul 2005 13:51:58 GMT
Message-Id: <200507171351.j6HDpwwc017795@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-tyler@freebsd.org using -f
From: soc-tyler <soc-tyler@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80388 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 17 Jul 2005 13:52:00 -0000

http://perforce.freebsd.org/chv.cgi?CH=80388

Change 80388 by soc-tyler@soc-tyler_launchd on 2005/07/17 13:51:29

	Add more bits of launchd(8) code (on the next submit I'll remove those two accidentally added files :-!)

Affected files ...

.. //depot/projects/soc2005/launchd/includes/launch.h#4 edit
.. //depot/projects/soc2005/launchd/includes/launchd.h#5 edit
.. //depot/projects/soc2005/launchd/launchproxy.8#1 add
.. //depot/projects/soc2005/launchd/launchproxy.c#1 add
.. //depot/projects/soc2005/launchd/launchproxy.c~#1 add
.. //depot/projects/soc2005/launchd/launchproxy.o#1 add
.. //depot/projects/soc2005/launchd/pathnames.h#1 add

Differences ...

==== //depot/projects/soc2005/launchd/includes/launch.h#4 (text+ko) ====

@@ -58,6 +58,10 @@
 #define _BUILD_DARWIN_
 #endif
 
+#ifdef _BUILD_DARWIN_
+// on Darwin-based systems, LOG_LAUNCHD is defined for syslog()
+#define LOG_LAUNCHD LOG_DAEMON
+#endif
 
 #define LAUNCH_KEY_SUBMITJOB			"SubmitJob"
 #define LAUNCH_KEY_REMOVEJOB			"RemoveJob"

==== //depot/projects/soc2005/launchd/includes/launchd.h#5 (text+ko) ====

@@ -52,8 +52,6 @@
 #endif
 
 #ifndef _BUILD_DARWIN_
-// on Darwin-based systems, LOG_LAUNCHD is defined for syslog()
-#define LOG_LAUNCHD LOG_DAEMON
 
 /* on Darwin-based systems, O_EVTONLY helps us track changes to a certain file descriptor
  * as outlined here:

From owner-p4-projects@FreeBSD.ORG  Sun Jul 17 13:53:01 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 46A6316A420; Sun, 17 Jul 2005 13:53:01 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 205F616A41C
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 13:53:01 +0000 (GMT)
	(envelope-from soc-tyler@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id D056643D45
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 13:53:00 +0000 (GMT)
	(envelope-from soc-tyler@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6HDr0DI017847
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 13:53:00 GMT
	(envelope-from soc-tyler@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6HDr0cp017842
	for perforce@freebsd.org; Sun, 17 Jul 2005 13:53:00 GMT
	(envelope-from soc-tyler@freebsd.org)
Date: Sun, 17 Jul 2005 13:53:00 GMT
Message-Id: <200507171353.j6HDr0cp017842@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-tyler@freebsd.org using -f
From: soc-tyler <soc-tyler@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80389 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 17 Jul 2005 13:53:02 -0000

http://perforce.freebsd.org/chv.cgi?CH=80389

Change 80389 by soc-tyler@soc-tyler_launchd on 2005/07/17 13:51:59

	Oops

Affected files ...

.. //depot/projects/soc2005/launchd/launchproxy.c~#2 delete
.. //depot/projects/soc2005/launchd/launchproxy.o#2 delete

Differences ...

From owner-p4-projects@FreeBSD.ORG  Sun Jul 17 14:03:14 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id E260816A420; Sun, 17 Jul 2005 14:03:13 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 BCAFC16A41C
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 14:03:13 +0000 (GMT)
	(envelope-from soc-tyler@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 8AEB843D45
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 14:03:13 +0000 (GMT)
	(envelope-from soc-tyler@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6HE3D5p018274
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 14:03:13 GMT
	(envelope-from soc-tyler@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6HE3DiM018271
	for perforce@freebsd.org; Sun, 17 Jul 2005 14:03:13 GMT
	(envelope-from soc-tyler@freebsd.org)
Date: Sun, 17 Jul 2005 14:03:13 GMT
Message-Id: <200507171403.j6HE3DiM018271@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-tyler@freebsd.org using -f
From: soc-tyler <soc-tyler@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80390 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 17 Jul 2005 14:03:14 -0000

http://perforce.freebsd.org/chv.cgi?CH=80390

Change 80390 by soc-tyler@soc-tyler_launchd on 2005/07/17 14:02:56

	Start merging FreeBSD-CURRENT init(8) code in a manner similar to that used by zarzycki@ with 10.3's init(8) code to 10.4's launchd(8) release.
	Oh, and add some other stuff

Affected files ...

.. //depot/projects/soc2005/launchd/Makefile#5 edit
.. //depot/projects/soc2005/launchd/includes/launch.h#5 edit
.. //depot/projects/soc2005/launchd/init.8#3 add
.. //depot/projects/soc2005/launchd/init.c#4 add
.. //depot/projects/soc2005/launchd/launchd.8#1 add
.. //depot/projects/soc2005/launchd/launchd_debugd.8#1 add

Differences ...

==== //depot/projects/soc2005/launchd/Makefile#5 (text+ko) ====

@@ -2,7 +2,8 @@
 # $FreeBSD$
 
 PROG=	launchd
-SRCS=	launchd.c liblaunch.c launchdebugd.c launchproxy.c init.c
+SRCS=	launchd.c liblaunch.c init.c
+#launchdebugd.c launchproxy.c
 MAN=	launchd.conf.5 launchd.plist.5 init.8 launchd.8 \
 	launchd_debug.8 launchproxy.8 rc.8 service.8 
 	

==== //depot/projects/soc2005/launchd/includes/launch.h#5 (text+ko) ====

@@ -58,7 +58,7 @@
 #define _BUILD_DARWIN_
 #endif
 
-#ifdef _BUILD_DARWIN_
+#ifndef _BUILD_DARWIN_
 // on Darwin-based systems, LOG_LAUNCHD is defined for syslog()
 #define LOG_LAUNCHD LOG_DAEMON
 #endif

From owner-p4-projects@FreeBSD.ORG  Sun Jul 17 15:22:54 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 6EBAD16A420; Sun, 17 Jul 2005 15:22:54 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 475AA16A41C
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 15:22:54 +0000 (GMT)
	(envelope-from wsalamon@computer.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 1910643D46
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 15:22:54 +0000 (GMT)
	(envelope-from wsalamon@computer.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6HFMrEs023283
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 15:22:54 GMT
	(envelope-from wsalamon@computer.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6HFMr7P023280
	for perforce@freebsd.org; Sun, 17 Jul 2005 15:22:53 GMT
	(envelope-from wsalamon@computer.org)
Date: Sun, 17 Jul 2005 15:22:53 GMT
Message-Id: <200507171522.j6HFMr7P023280@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	wsalamon@computer.org using -f
From: Wayne Salamon <wsalamon@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80398 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 17 Jul 2005 15:22:55 -0000

http://perforce.freebsd.org/chv.cgi?CH=80398

Change 80398 by wsalamon@gretsch on 2005/07/17 15:22:39

	Audit the stat/ostat/nstat, fstat/ofstat/nfstat, and statfs system
	calls. In the fd-related system calls, we still attempt to audit the
	pathname. This attempt will probably go away in the future, for these
	and other calls.

Affected files ...

.. //depot/projects/trustedbsd/audit3/sys/kern/kern_descrip.c#6 edit
.. //depot/projects/trustedbsd/audit3/sys/kern/vfs_syscalls.c#9 edit

Differences ...

==== //depot/projects/trustedbsd/audit3/sys/kern/kern_descrip.c#6 (text+ko) ====

@@ -1085,8 +1085,14 @@
 	struct file *fp;
 	int error;
 
+	AUDIT_ARG(fd, fd);
+
 	if ((error = fget(td, fd, &fp)) != 0)
 		return (error);
+
+	//XXX Grab the vnode lock?
+	AUDIT_ARG(vnpath, fp->f_vnode, ARG_VNODE1);
+
 	error = fo_stat(fp, sbp, td->td_ucred, td);
 	fdrop(fp, td);
 	return (error);

==== //depot/projects/trustedbsd/audit3/sys/kern/vfs_syscalls.c#9 (text+ko) ====

@@ -250,7 +250,7 @@
 	struct nameidata nd;
 
 	mtx_lock(&Giant);
-	NDINIT(&nd, LOOKUP, FOLLOW, pathseg, path, td);
+	NDINIT(&nd, LOOKUP, FOLLOW | AUDITVNPATH1, pathseg, path, td);
 	error = namei(&nd);
 	if (error) {
 		mtx_unlock(&Giant);
@@ -2078,7 +2078,8 @@
 	struct stat sb;
 	int error, vfslocked;
 
-	NDINIT(&nd, LOOKUP, FOLLOW | LOCKSHARED | LOCKLEAF | MPSAFE,
+	NDINIT(&nd, LOOKUP,
+	    FOLLOW | LOCKSHARED | LOCKLEAF | MPSAFE | AUDITVNPATH1,
 	    pathseg, path, td);
 	if ((error = namei(&nd)) != 0)
 		return (error);

From owner-p4-projects@FreeBSD.ORG  Sun Jul 17 16:07:49 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id EDEF616A420; Sun, 17 Jul 2005 16:07:48 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 C1C6B16A41C
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 16:07:48 +0000 (GMT)
	(envelope-from wsalamon@computer.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 973E943D46
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 16:07:48 +0000 (GMT)
	(envelope-from wsalamon@computer.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6HG7mu2024776
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 16:07:48 GMT
	(envelope-from wsalamon@computer.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6HG7mhS024773
	for perforce@freebsd.org; Sun, 17 Jul 2005 16:07:48 GMT
	(envelope-from wsalamon@computer.org)
Date: Sun, 17 Jul 2005 16:07:48 GMT
Message-Id: <200507171607.j6HG7mhS024773@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	wsalamon@computer.org using -f
From: Wayne Salamon <wsalamon@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80399 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 17 Jul 2005 16:07:50 -0000

http://perforce.freebsd.org/chv.cgi?CH=80399

Change 80399 by wsalamon@gretsch on 2005/07/17 16:07:14

	Start of  audit of lstat/olstat/nlstat calls. 'Still need to associate
	events with some of the stat-related system calls.

Affected files ...

.. //depot/projects/trustedbsd/audit3/sys/kern/vfs_syscalls.c#10 edit

Differences ...

==== //depot/projects/trustedbsd/audit3/sys/kern/vfs_syscalls.c#10 (text+ko) ====

@@ -2128,7 +2128,8 @@
 	struct nameidata nd;
 	int error, vfslocked;
 
-	NDINIT(&nd, LOOKUP, NOFOLLOW | LOCKLEAF | LOCKSHARED | MPSAFE,
+	NDINIT(&nd, LOOKUP,
+	    NOFOLLOW | LOCKLEAF | LOCKSHARED | MPSAFE | AUDITVNPATH1,
 	    pathseg, path, td);
 	if ((error = namei(&nd)) != 0)
 		return (error);

From owner-p4-projects@FreeBSD.ORG  Sun Jul 17 18:20:32 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 29A3816A420; Sun, 17 Jul 2005 18:20:32 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 F189716A41C
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 18:20:31 +0000 (GMT)
	(envelope-from soc-tyler@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id AAB8543D46
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 18:20:31 +0000 (GMT)
	(envelope-from soc-tyler@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6HIKVmD038431
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 18:20:31 GMT
	(envelope-from soc-tyler@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6HIKVcB038428
	for perforce@freebsd.org; Sun, 17 Jul 2005 18:20:31 GMT
	(envelope-from soc-tyler@freebsd.org)
Date: Sun, 17 Jul 2005 18:20:31 GMT
Message-Id: <200507171820.j6HIKVcB038428@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-tyler@freebsd.org using -f
From: soc-tyler <soc-tyler@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80402 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 17 Jul 2005 18:20:33 -0000

http://perforce.freebsd.org/chv.cgi?CH=80402

Change 80402 by soc-tyler@soc-tyler_launchd on 2005/07/17 18:19:44

	Linkage errors still, release edit locks so I can sync on a RELENG_5 machine. Still working on init(8) and launchd(8) synergy ;)

Affected files ...

.. //depot/projects/soc2005/launchd/Makefile#6 edit
.. //depot/projects/soc2005/launchd/init.c#5 edit
.. //depot/projects/soc2005/launchd/launchd.c#5 edit

Differences ...

==== //depot/projects/soc2005/launchd/Makefile#6 (text+ko) ====

@@ -9,7 +9,9 @@
 	
 MAINTAINER= tyler@tamu.edu
 
-CFLAGS+= -g -Wall -W -Wshadow -Wpadded -Iincludes/
+CFLAGS+= -g -Wall -W -Wshadow -Wpadded -Iincludes -D_LAUNCHD_
+## init.c related CFLAGS
+CFLAGS+=-DDEBUGSHELL -DSECURE -DLOGIN_CAP -DCOMPAT_SYSV_INIT
 LDADD+=	-lutil
 NO_SHARED?=	YES
 

==== //depot/projects/soc2005/launchd/init.c#5 (text+ko) ====

@@ -1,3 +1,8 @@
+/* 
+ * Modifications to this code are my fault (R. Tyler Ballance <tyler@tamu.edu>)
+ * Taken from src/sbin/init/ (init.c rev. 1.60)
+ */
+ 
 /*-
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
@@ -181,6 +186,7 @@
 session_t *find_session(pid_t);
 DB *session_db;
 
+#ifndef _LAUNCHD_
 /*
  * The mother of all processes.
  */
@@ -349,6 +355,7 @@
 	 */
 	return 1;
 }
+#endif
 
 /*
  * Associate a function with a signal handler.

==== //depot/projects/soc2005/launchd/launchd.c#5 (text+ko) ====

@@ -384,7 +384,6 @@
 
 static void pid1_magic_init(bool sflag, bool vflag, bool xflag)
 {
-	pthread_attr_t attr;
 	int memmib[2] = { CTL_HW, HW_PHYSMEM };
 	int mvnmib[2] = { CTL_KERN, KERN_MAXVNODES };
 	int hnmib[2] = { CTL_KERN, KERN_HOSTNAME };
@@ -392,6 +391,7 @@
 	uint32_t mvn;
 	size_t memsz = sizeof(mem);
 #ifdef _BUILD_DARWIN_
+	pthread_attr_t attr;
 	int pthr_r;
 #endif
 
@@ -440,20 +440,19 @@
 	launchd_bootstrap_port = mach_init_init();
 	task_set_bootstrap_port(mach_task_self(), launchd_bootstrap_port);
 	bootstrap_port = MACH_PORT_NULL;
-#endif
 
 	pthread_attr_init(&attr);
 	pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
-#ifdef _BUILD_DARWIN_
+	
 	pthr_r = pthread_create(&mach_server_loop_thread, &attr, mach_server_loop, NULL);
 	if (pthr_r != 0) {
 		syslog(LOG_ERR, "pthread_create(mach_server_loop): %s", strerror(pthr_r));
 		exit(EXIT_FAILURE);
 	}
+	
+	pthread_attr_destroy(&attr);
 #endif
 
-	pthread_attr_destroy(&attr);
-
 	init_boot(sflag, vflag, xflag);
 }
 

From owner-p4-projects@FreeBSD.ORG  Sun Jul 17 22:32:40 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id F3C7716A420; Sun, 17 Jul 2005 22:32:39 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 C67F216A41C
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 22:32:39 +0000 (GMT)
	(envelope-from soc-saturnero@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 7BA9243D45
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 22:32:39 +0000 (GMT)
	(envelope-from soc-saturnero@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6HMWd9g057386
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 22:32:39 GMT
	(envelope-from soc-saturnero@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6HMWdgb057382
	for perforce@freebsd.org; Sun, 17 Jul 2005 22:32:39 GMT
	(envelope-from soc-saturnero@freebsd.org)
Date: Sun, 17 Jul 2005 22:32:39 GMT
Message-Id: <200507172232.j6HMWdgb057382@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-saturnero@freebsd.org using -f
From: soc-saturnero <soc-saturnero@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80413 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 17 Jul 2005 22:32:40 -0000

http://perforce.freebsd.org/chv.cgi?CH=80413

Change 80413 by soc-saturnero@soc-saturnero_sberta on 2005/07/17 22:32:26

	Adding buildkernel

Affected files ...

.. //depot/projects/soc2005/freesbie/Makefile#3 edit
.. //depot/projects/soc2005/freesbie/conf/freesbie.defaults.conf#4 edit
.. //depot/projects/soc2005/freesbie/scripts/buildkernel.sh#1 add
.. //depot/projects/soc2005/freesbie/scripts/buildworld.sh#2 edit
.. //depot/projects/soc2005/freesbie/scripts/launch.sh#3 edit

Differences ...

==== //depot/projects/soc2005/freesbie/Makefile#3 (text+ko) ====

@@ -5,7 +5,7 @@
 #
 # $FreeBSD$
 
-all: buildworld
+all: buildworld buildkernel
 
 buildworld: .done_buildworld
 .done_buildworld:
@@ -14,5 +14,13 @@
 	@sh ./scripts/launch.sh buildworld .tmp_buildworld
 	@mv .tmp_buildworld .done_buildworld
 
+buildkernel: .done_buildworld .done_buildkernel
+.done_buildkernel:
+	@-rm -f .tmp_buildkernel
+	@touch .tmp_buildkernel
+	@sh ./scripts/launch.sh buildkernel .tmp_buildkernel
+	@mv .tmp_buildkernel .done_buildkernel
+
+
 clean:
-	@-rm -rf .tmp* .done* > /dev/null 2>&1
+	@-rm -f .tmp* .done* > /dev/null 2>&1

==== //depot/projects/soc2005/freesbie/conf/freesbie.defaults.conf#4 (text+ko) ====

@@ -52,9 +52,9 @@
 #
 #NO_BUILDWORLD=YES
 
-# Define NO_BUILDKERNEL to avoid rebuilding kernel. If
-# ${MAKEOBJDIRPREFIX}/src/ssys/${KERNCONF} doesn't exist, the kernel
-# is built anyway.
+# Define NO_BUILDKERNEL to avoid rebuilding kernel. Be sure you know
+# what you're doing, you should have an already compiled kernel 
+#
 #NO_BUILDKERNEL=YES
 
 

==== //depot/projects/soc2005/freesbie/scripts/buildworld.sh#2 (text+ko) ====

@@ -29,8 +29,7 @@
 fi
 
 cd $SRCDIR
-{ 
-script -aq $LOGFILE make ${MAKEOPT:-} buildworld __MAKE_CONF=${MAKE_CONF} || print_error; 
-} | grep '^>>>'
+ 
+(script -aq $LOGFILE make ${MAKEOPT:-} buildworld __MAKE_CONF=${MAKE_CONF} TARGET_ARCH=${ARCH} || print_error;) | grep '^>>>'
 
 cd $LOCALDIR

==== //depot/projects/soc2005/freesbie/scripts/launch.sh#3 (text+ko) ====

@@ -46,8 +46,7 @@
     echo "Something went wrong, check errors!" >&2
     [ -n "${LOGFILE:-}" ] && \
 	echo "Log saved on ${LOGFILE}" >&2
-#    kill $$ # XXX exit 1 won't work.
-    exit 1
+    kill $$ # XXX exit 1 won't work.
 }
 
 if [ -f "${LOCALDIR}/scripts/${ARCH}/${TARGET}.sh" ]; then

From owner-p4-projects@FreeBSD.ORG  Sun Jul 17 22:36:45 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 3EB8416A420; Sun, 17 Jul 2005 22:36:45 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 1973016A41C
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 22:36:45 +0000 (GMT)
	(envelope-from soc-saturnero@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id DFCC443D48
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 22:36:44 +0000 (GMT)
	(envelope-from soc-saturnero@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6HMaiIq057667
	for <perforce@freebsd.org>; Sun, 17 Jul 2005 22:36:44 GMT
	(envelope-from soc-saturnero@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6HMai7Z057664
	for perforce@freebsd.org; Sun, 17 Jul 2005 22:36:44 GMT
	(envelope-from soc-saturnero@freebsd.org)
Date: Sun, 17 Jul 2005 22:36:44 GMT
Message-Id: <200507172236.j6HMai7Z057664@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-saturnero@freebsd.org using -f
From: soc-saturnero <soc-saturnero@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80414 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 17 Jul 2005 22:36:46 -0000

http://perforce.freebsd.org/chv.cgi?CH=80414

Change 80414 by soc-saturnero@soc-saturnero_sberta on 2005/07/17 22:36:08

	Echoed information about the built architecture

Affected files ...

.. //depot/projects/soc2005/freesbie/scripts/buildkernel.sh#2 edit
.. //depot/projects/soc2005/freesbie/scripts/buildworld.sh#3 edit

Differences ...

==== //depot/projects/soc2005/freesbie/scripts/buildkernel.sh#2 (text+ko) ====

@@ -12,7 +12,7 @@
     exit 1
 fi
 
-echo "#### Building kernel ####"
+echo "#### Building kernel for ${ARCH} architecture ####"
 
 if [ -n "${NO_BUILDKERNEL:-}" ]; then
     echo "NO_BUILDKERNEL set, skipping build" | tee -a ${LOGFILE}

==== //depot/projects/soc2005/freesbie/scripts/buildworld.sh#3 (text+ko) ====

@@ -12,7 +12,7 @@
     exit 1
 fi
 
-echo "#### Building world ####"
+echo "#### Building world for ${ARCH} architecture ####"
 
 if [ -n "${NO_BUILDWORLD:-}" ]; then
     echo "NO_BUILDWORLD set, skipping build" | tee -a ${LOGFILE}

From owner-p4-projects@FreeBSD.ORG  Mon Jul 18 11:48:19 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 3833316A421; Mon, 18 Jul 2005 11:48:19 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 0AFCF16A41C
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 11:48:19 +0000 (GMT)
	(envelope-from soc-bushman@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 1C1F343D49
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 11:48:18 +0000 (GMT)
	(envelope-from soc-bushman@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6IBmI9G035877
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 11:48:18 GMT
	(envelope-from soc-bushman@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6IBmH9v035874
	for perforce@freebsd.org; Mon, 18 Jul 2005 11:48:17 GMT
	(envelope-from soc-bushman@freebsd.org)
Date: Mon, 18 Jul 2005 11:48:17 GMT
Message-Id: <200507181148.j6IBmH9v035874@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-bushman@freebsd.org using -f
From: soc-bushman <soc-bushman@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80435 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Jul 2005 11:48:20 -0000

http://perforce.freebsd.org/chv.cgi?CH=80435

Change 80435 by soc-bushman@soc-bushman_stinger on 2005/07/18 11:47:36

	openssh patch finished - port submitted

Affected files ...

.. //depot/projects/soc2005/nsswitch_cached/src/include/nsswitch.h#4 edit
.. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getproto.c#2 edit
.. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getprotoent.c#2 edit
.. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getprotoname.c#2 edit
.. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/netdb_private.h#6 edit
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/auth-rh-rsa.c#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/auth.c#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/auth.h#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/auth2-hostbased.c#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/auth2.c#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/config.h.in#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/configure#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/configure.ac#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/hostfile.c#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/hostfile.h#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/initial_copy.sh#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/key.h#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/make.sh#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-auth-rh.rsa.c#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-auth.c#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-auth.h#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-auth2-hostbased.c#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-config.h.in#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-configure#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-configure.ac#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-hostfile.c#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-hostfile.h#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-sshconnect.c#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/Makefile#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/distinfo#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/batch.patch#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/gss-serv.c.patch#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-auth-pam.c#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-auth-rh.rsa.c#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-auth.c#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-auth.h#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-auth1.c#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-auth2-hostbased.c#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-auth2.c#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-clientloop.c#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-config.h.in#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-configure#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-configure.ac#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-fake-rfc2553.h#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-hostfile.c#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-hostfile.h#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-loginrec.c#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-regress-test-exec.sh#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-session.c#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-sshconnect.c#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-sshd.c#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-sshd_config#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-sshpty.c#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/servconf.c.patch#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/sshd.sh#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/pkg-descr#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/pkg-message#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/pkg-plist#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/result_copy.sh#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/sshconnect.c#1 add
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_keys/auth.c#3 delete
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_keys/auth.h#3 delete
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_keys/auth2-hostbased.c#3 delete
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_keys/auth2.c#3 delete
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_keys/hostfile.c#3 delete
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_keys/hostfile.h#3 delete
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_keys/key.h#3 delete
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_keys/make.sh#2 delete
.. //depot/projects/soc2005/nsswitch_cached/tests/ssh_keys/sshconnect.c#3 delete

Differences ...

==== //depot/projects/soc2005/nsswitch_cached/src/include/nsswitch.h#4 (text+ko) ====

@@ -83,6 +83,8 @@
 #define NSDB_SERVICES	"services"
 #define NSDB_SERVICES_COMPAT	"services_compat"
 #define NSDB_SSH_HOSTKEYS	"ssh_hostkeys"
+#define NSDB_PROTOCOLS		"protocols"
+#define NSDB_RPC		"rpc"
 
 /*
  * suggested databases to implement
@@ -96,9 +98,7 @@
 #define NSDB_NETMASKS		"netmasks"
 #define NSDB_PHONES		"phones"
 #define NSDB_PRINTCAP		"printcap"
-#define NSDB_PROTOCOLS		"protocols"
 #define NSDB_REMOTE		"remote"
-#define NSDB_RPC		"rpc"
 #define NSDB_SENDMAILVARS	"sendmailvars"
 #define NSDB_TERMCAP		"termcap"
 #define NSDB_TTYS		"ttys"

==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getproto.c#2 (text+ko) ====

@@ -37,31 +37,6 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD: src/lib/libc/net/getproto.c,v 1.4 2005/04/19 14:41:13 ume Exp $");
 
-#include <netdb.h>
-#include "netdb_private.h"
-
-int
-getprotobynumber_r(int proto, struct protoent *pe, struct protoent_data *ped)
-{
-	int error;
-
-	setprotoent_r(ped->stayopen, ped);
-	while ((error = getprotoent_r(pe, ped)) == 0)
-		if (pe->p_proto == proto)
-			break;
-	if (!ped->stayopen)
-		endprotoent_r(ped);
-	return (error);
-}
-
-struct protoent *
-getprotobynumber(int proto)
-{
-	struct protodata *pd;
-
-	if ((pd = __protodata_init()) == NULL)
-		return (NULL);
-	if (getprotobynumber_r(proto, &pd->proto, &pd->data) != 0)
-		return (NULL);
-	return (&pd->proto);
-}
+/* This file is obsolete. The getproto* functions are currently implemented via the
+ * nsswitch subsystem. The functionality of all getserv*_r functions is currently
+ * incapsulated in the files_protoent functions in the getprotoent.c file */

==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getprotoent.c#2 (text+ko) ====

@@ -39,108 +39,83 @@
 
 #include <sys/types.h>
 #include <sys/socket.h>
+#include <errno.h>
 #include <netdb.h>
+#include <nsswitch.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include "namespace.h"
+#include "nss_tls.h"
 #include "reentrant.h"
 #include "un-namespace.h"
 #include "netdb_private.h"
 
-static struct protodata protodata;
-static thread_key_t protodata_key;
-static once_t protodata_init_once = ONCE_INITIALIZER;
-static int protodata_thr_keycreated = 0;
-
-static void
-protoent_data_clear(struct protoent_data *ped)
+/* nsswitch declarations */
+enum constants
 {
-	if (ped->fp) {
-		fclose(ped->fp);
-		ped->fp = NULL;
-	}
-}
+	SETPROTOENT = 1,
+	ENDPROTOENT = 2,
+	PROTOENT_STORAGE_INITIAL	= 1 << 10, /* 1 KByte */
+	PROTOENT_STORAGE_MAX		= 1 << 20, /* 1 MByte */	
+};
 
-static void
-protodata_free(void *ptr)
-{
-	struct protodata *pd = ptr;
+static const ns_src defaultsrc[] = {
+	{ NSSRC_FILES, NS_SUCCESS },
+	{ NULL, 0 }
+};
 
-	if (pd == NULL)
-		return;
-	protoent_data_clear(&pd->data);
-	free(pd);
-}
-
-static void
-protodata_keycreate(void)
+/* files backend declarations */
+struct files_state
 {
-	protodata_thr_keycreated =
-	    (thr_keycreate(&protodata_key, protodata_free) == 0);
-}
+	FILE	*fp;
+	int	stayopen;
+};
+static	void	files_endstate(void *);
+NSS_TLS_HANDLING(files);
 
-struct protodata *
-__protodata_init(void)
-{
-	struct protodata *pd;
+static	int	files_protoent(void *, void *, va_list);
+static	int	files_setprotoent(void *, void *, va_list);
 
-	if (thr_main() != 0)
-		return (&protodata);
-	if (thr_once(&protodata_init_once, protodata_keycreate) != 0 ||
-	    !protodata_thr_keycreated)
-		return (NULL);
-	if ((pd = thr_getspecific(protodata_key)) != NULL)
-		return (pd);
-	if ((pd = calloc(1, sizeof(*pd))) == NULL)
-		return (NULL);
-	if (thr_setspecific(protodata_key, pd) == 0)
-		return (pd);
-	free(pd);
-	return (NULL);
-}
+/* get** wrappers for get**_r functions declarations */
+struct protoent_state {
+	struct protoent pe;
+	char		*buffer;
+	size_t	bufsize;
+};
+static	void	protoent_endstate(void *);
+NSS_TLS_HANDLING(protoent);
 
-void
-setprotoent_r(int f, struct protoent_data *ped)
-{
-	if (ped->fp == NULL)
-		ped->fp = fopen(_PATH_PROTOCOLS, "r");
-	else
-		rewind(ped->fp);
-	ped->stayopen |= f;
-}
+union key {
+	const char *name;
+	int	proto;
+};
 
-void
-endprotoent_r(struct protoent_data *ped)
-{
-	if (ped->fp) {
-		fclose(ped->fp);
-		ped->fp = NULL;
-	}
-	ped->stayopen = 0;
-}
+static	int	wrap_getprotobyname_r(union key, struct protoent *, char *, 
+			size_t, struct protoent **);
+static	int	wrap_getprotobynumber_r(union key, struct protoent *, char *, 
+			size_t, struct protoent **);
+static	int	wrap_getprotoent_r(union key, struct protoent *, char *, 
+			size_t, struct protoent **);
+static	struct protoent *getpe(int (*fn)(union key, struct protoent *, char *, 
+			size_t, struct protoent **), union key);				
 
-int
-getprotoent_r(struct protoent *pe, struct protoent_data *ped)
+static int
+protoent_unpack(char *p, struct protoent *pe, char **aliases,
+	size_t aliases_size, int *errnop)
 {
-	char *p;
 	char *cp, **q, *endp;
 	long l;
-
-	if (ped->fp == NULL && (ped->fp = fopen(_PATH_PROTOCOLS, "r")) == NULL)
+	
+	if (*p == '#')
 		return (-1);
-again:
-	if ((p = fgets(ped->line, sizeof ped->line, ped->fp)) == NULL)
-		return (-1);
-	if (*p == '#')
-		goto again;
 	cp = strpbrk(p, "#\n");
 	if (cp != NULL)
 		*cp = '\0';
 	pe->p_name = p;
 	cp = strpbrk(p, " \t");
 	if (cp == NULL)
-		goto again;
+		return (-1);
 	*cp++ = '\0';
 	while (*cp == ' ' || *cp == '\t')
 		cp++;
@@ -149,9 +124,9 @@
 		*p++ = '\0';
 	l = strtol(cp, &endp, 10);
 	if (endp == cp || *endp != '\0' || l < 0 || l > USHRT_MAX)
-		goto again;
+		return -1;
 	pe->p_proto = l;
-	q = pe->p_aliases = ped->aliases;
+	q = pe->p_aliases = aliases;
 	if (p != NULL) {
 		cp = p;
 		while (cp && *cp) {
@@ -159,45 +134,386 @@
 				cp++;
 				continue;
 			}
-			if (q < &ped->aliases[_MAXALIASES - 1])
+			if (q < &(aliases[aliases_size - 1]))
 				*q++ = cp;
+			else {
+				*errnop = ERANGE;
+				return -1;
+			}
 			cp = strpbrk(cp, " \t");
 			if (cp != NULL)
 				*cp++ = '\0';
 		}
 	}
 	*q = NULL;
-	return (0);
+	return (0);	
+}
+			
+/* files backend implementation */
+static	void
+files_endstate(void *p)
+{
+	FILE * f;
+	
+	if (p == NULL)
+		return;
+	
+	f = ((struct files_state *)p)->fp;
+	if (f != NULL)
+		fclose(f);
+	
+	free(p);
+}
+
+static int
+files_protoent(void *retval, void *mdata, va_list ap)
+{
+	char		*name;
+	int		number;
+	struct protoent	*pe;
+	char		*buffer;
+	size_t	bufsize;
+	int		*errnop;
+	
+	char		*line;
+	size_t	linesize;
+	char		**aliases;
+	int		aliases_size;
+	char		**rp;
+	
+	struct files_state	*st;
+	int		rv;
+	int		stayopen;
+	enum nss_lookup_type	how;
+	
+	how = (enum nss_lookup_type)mdata;
+	switch (how)
+	{
+	case nss_lt_name:
+		name = va_arg(ap, char *);
+		break;
+	case nss_lt_id:
+		number = va_arg(ap, int);
+		break;
+	case nss_lt_all:
+		break;
+	default:
+		return (NS_NOTFOUND);
+	}
+		
+	pe = va_arg(ap, struct protoent *);
+	buffer = va_arg(ap, char *);
+	bufsize = va_arg(ap, size_t);
+	errnop = va_arg(ap, int *);
+	
+	*errnop = files_getstate(&st);
+	if (*errnop != 0)
+		return (NS_UNAVAIL);
+	
+	if (st->fp == NULL && (st->fp = fopen(_PATH_PROTOCOLS, "r")) == NULL) {
+		*errnop = errno;
+		return (NS_UNAVAIL);	
+	}
+	
+	if (how == nss_lt_all)
+		stayopen = 1;
+	else {
+		rewind(st->fp);
+		stayopen = st->stayopen;
+	}
+	
+	do {
+		if ((line = fgetln(st->fp, &linesize)) == NULL) {
+			*errnop = errno;
+			rv = NS_RETURN;
+			break;
+		}
+			
+		if (bufsize <= linesize + _ALIGNBYTES + sizeof(char *)) {
+			*errnop = ERANGE;
+			rv = NS_RETURN;
+			break;
+		}
+
+		aliases = (char **)_ALIGN(&buffer[linesize+1]);
+		aliases_size = (buffer + bufsize - (char *)aliases)/sizeof(char *);
+		if (aliases_size < 1) {
+			*errnop = ERANGE;
+			rv = NS_RETURN;
+			break;
+		}
+				
+		memcpy(buffer, line, linesize);
+		buffer[linesize] = '\0';
+
+		rv = protoent_unpack(buffer, pe, aliases, aliases_size, errnop);
+		if (rv != 0) {
+			if (*errnop == 0) {
+				rv = NS_NOTFOUND;
+				continue;
+			}
+			else {
+				rv = NS_RETURN;
+				break;
+			}
+		}
+		
+		switch (how)
+		{
+		case nss_lt_name:
+			if (strcmp(pe->p_name, name) == 0)
+				goto done;
+			for (rp = pe->p_aliases; *rp != NULL; rp++) {
+				if (strcmp(*rp, name) == 0)
+					goto done;
+			}
+			rv = NS_NOTFOUND;
+			continue;			
+done:
+			rv = NS_SUCCESS;
+			break;
+		case nss_lt_id:
+			rv = (pe->p_proto == number) ? NS_SUCCESS : NS_NOTFOUND;
+			break;
+		case nss_lt_all:
+			rv = NS_SUCCESS;
+			break;
+		}
+		
+	} while (!(rv & NS_TERMINATE));
+
+	if (!stayopen && st->fp!=NULL) {
+		fclose(st->fp);
+		st->fp = NULL;
+	}
+	
+	if ((rv == NS_SUCCESS) && (retval != NULL))
+		*((struct protoent **)retval) = pe;
+			
+	return (rv);
+}
+
+static int
+files_setprotoent(void *retval, void *mdata, va_list ap)
+{
+	struct files_state	*st;
+	int	rv;
+	int	f;
+	
+	rv = files_getstate(&st);
+	if (rv != 0)
+		return (NS_UNAVAIL);
+	
+	switch ((enum constants)mdata)
+	{
+	case SETPROTOENT:
+		f = va_arg(ap,int);
+		if (st->fp == NULL)
+			st->fp = fopen(_PATH_PROTOCOLS, "r");
+		else
+			rewind(st->fp);
+		st->stayopen |= f;
+		break;
+	case ENDPROTOENT:
+		if (st->fp != NULL) {
+			fclose(st->fp);
+			st->fp = NULL;
+		}		
+		st->stayopen = 0;		
+		break;
+	default:
+		break;	
+	}
+	
+	return (NS_UNAVAIL);
+}
+
+/* get**_r functions implementation */
+int
+getprotobyname_r(const char *name, struct protoent *pe, char *buffer, 
+	size_t bufsize, struct protoent **result)
+{
+	static const ns_dtab dtab[] = {
+		{ NSSRC_FILES, files_protoent, (void *)nss_lt_name },
+		{ NULL, NULL, NULL }
+	};
+	
+	int	rv, ret_errno;
+
+	ret_errno = 0;
+	*result = NULL;
+	rv = nsdispatch(result, dtab, NSDB_PROTOCOLS, "getprotobyname_r", defaultsrc,
+	    name, pe, buffer, bufsize, &ret_errno);
+	
+	if (rv == NS_SUCCESS)
+		return (0);
+	else
+		return (ret_errno);	
+}
+
+int 
+getprotobynumber_r(int number, struct protoent *pe, char *buffer, 
+	size_t bufsize, struct protoent **result)
+{
+	static const ns_dtab dtab[] = {
+		{ NSSRC_FILES, files_protoent, (void *)nss_lt_id },
+		{ NULL, NULL, NULL }
+	};
+	int	rv, ret_errno;
+
+	ret_errno = 0;
+	*result = NULL;
+	rv = nsdispatch(result, dtab, NSDB_PROTOCOLS, "getprotobynumber_r", defaultsrc,
+	    number, pe, buffer, bufsize, &ret_errno);
+	
+	if (rv == NS_SUCCESS)
+		return (0);
+	else
+		return (ret_errno);		
+}
+
+int
+getprotoent_r(struct protoent *pe, char *buffer, size_t bufsize,
+	struct protoent **result)
+{
+	static const ns_dtab dtab[] = {
+		{ NSSRC_FILES, files_protoent, (void *)nss_lt_all },
+		{ NULL, NULL, NULL }
+	};
+	int	rv, ret_errno;
+
+	ret_errno = 0;
+	*result = NULL;
+	rv = nsdispatch(result, dtab, NSDB_PROTOCOLS, "getprotoent_r", defaultsrc,
+	    pe, buffer, bufsize, &ret_errno);
+
+	if (rv == NS_SUCCESS)
+		return (0);
+	else
+		return (ret_errno);		
+}
+
+void 
+setprotoent(int stayopen)
+{
+	static const ns_dtab dtab[] = {
+		{ NSSRC_FILES, files_setprotoent, (void *)SETPROTOENT },
+		{ NULL, NULL, NULL }
+	};
+
+	(void)nsdispatch(NULL, dtab, NSDB_PROTOCOLS, "setprotoent", defaultsrc, stayopen);
 }
 
-void
-setprotoent(int f)
+void 
+endprotoent()
 {
-	struct protodata *pd;
+	static const ns_dtab dtab[] = {
+		{ NSSRC_FILES, files_setprotoent, (void *)ENDPROTOENT },
+		{ NULL, NULL, NULL }
+	};
+
+	(void)nsdispatch(NULL, dtab, NSDB_PROTOCOLS, "endprotoent", defaultsrc);
+}
 
-	if ((pd = __protodata_init()) == NULL)
+/* get** wrappers for get**_r functions implementation */
+static 	void
+protoent_endstate(void *p)
+{
+	if (p == NULL)
 		return;
-	setprotoent_r(f, &pd->data);
+
+	free(((struct protoent_state *)p)->buffer);	
+	free(p);
+}
+
+static	int
+wrap_getprotobyname_r(union key key, struct protoent *pe, char *buffer, size_t bufsize,
+    struct protoent **res)
+{
+	return (getprotobyname_r(key.name, pe, buffer, bufsize, res));
+}
+
+static	int
+wrap_getprotobynumber_r(union key key, struct protoent *pe, char *buffer, size_t bufsize,
+    struct protoent **res)
+{
+	return (getprotobynumber_r(key.proto, pe, buffer, bufsize, res));
+}
+
+static	int
+wrap_getprotoent_r(union key key, struct protoent *pe, char *buffer, size_t bufsize,
+    struct protoent **res)
+{
+	return (getprotoent_r(pe, buffer, bufsize, res));
+}
+
+static struct protoent *
+getpe(int (*fn)(union key, struct protoent *, char *, size_t, struct protoent **),
+    union key key)
+{
+	int		 rv;
+	struct protoent	*res;
+	struct protoent_state * st;
+		
+	rv=protoent_getstate(&st);
+	if (rv != 0) {
+		errno = rv;
+		return NULL;
+	}
+
+	if (st->buffer == NULL) {
+		st->buffer = malloc(PROTOENT_STORAGE_INITIAL);
+		if (st->buffer == NULL)
+			return (NULL);
+		st->bufsize = PROTOENT_STORAGE_INITIAL;
+	}
+	do {
+		rv = fn(key, &st->pe, st->buffer, st->bufsize, &res);
+		if (res == NULL && rv == ERANGE) {
+			free(st->buffer);
+			if ((st->bufsize << 1) > PROTOENT_STORAGE_MAX) {
+				st->buffer = NULL;
+				errno = ERANGE;
+				return (NULL);
+			}
+			st->bufsize <<= 1;
+			st->buffer = malloc(st->bufsize);
+			if (st->buffer == NULL)
+				return (NULL);
+		}
+	} while (res == NULL && rv == ERANGE);
+	if (rv != 0)
+		errno = rv;
+	
+	return (res);
 }
 
-void
-endprotoent(void)
+struct protoent *
+getprotobyname(const char *name)
 {
-	struct protodata *pd;
+	union key key;
 
-	if ((pd = __protodata_init()) == NULL)
-		return;
-	endprotoent_r(&pd->data);
+	key.name = name;
+	
+	return (getpe(wrap_getprotobyname_r, key));
 }
 
 struct protoent *
-getprotoent(void)
+getprotobynumber(int number)
 {
-	struct protodata *pd;
+	union key key;
+		
+	key.proto = number;
+	
+	return (getpe(wrap_getprotobynumber_r, key));
+}
 
-	if ((pd = __protodata_init()) == NULL)
-		return (NULL);
-	if (getprotoent_r(&pd->proto, &pd->data) != 0)
-		return (NULL);
-	return (&pd->proto);
+struct protoent *
+getprotoent()
+{
+	union key key;
+	 
+	key.proto = 0;	/* not used */
+	
+	return (getpe(wrap_getprotoent_r, key));
 }

==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getprotoname.c#2 (text+ko) ====

@@ -37,39 +37,6 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD: src/lib/libc/net/getprotoname.c,v 1.4 2005/04/19 14:41:13 ume Exp $");
 
-#include <netdb.h>
-#include <string.h>
-#include "netdb_private.h"
-
-int
-getprotobyname_r(const char *name, struct protoent *pe,
-    struct protoent_data *ped)
-{
-	char **cp;
-	int error;
-
-	setprotoent_r(ped->stayopen, ped);
-	while ((error = getprotoent_r(pe, ped)) == 0) {
-		if (strcmp(pe->p_name, name) == 0)
-			break;
-		for (cp = pe->p_aliases; *cp != 0; cp++)
-			if (strcmp(*cp, name) == 0)
-				goto found;
-	}
-found:
-	if (!ped->stayopen)
-		endprotoent_r(ped);
-	return (error);
-}
-
-struct protoent *
-getprotobyname(const char *name)
-{
-	struct protodata *pd;
-
-	if ((pd = __protodata_init()) == NULL)
-		return (NULL);
-	if (getprotobyname_r(name, &pd->proto, &pd->data) != 0)
-		return (NULL);
-	return (&pd->proto);
-}
+/* This file is obsolete. The getproto* functions are currently implemented via the
+ * nsswitch subsystem. The functionality of all getserv*_r functions is currently
+ * incapsulated in the files_protoent functions in the getprotoent.c file */

==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/netdb_private.h#6 (text+ko) ====

@@ -58,13 +58,6 @@
 #endif
 };
 
-struct protoent_data {
-	FILE *fp;
-	char *aliases[_MAXALIASES];
-	int stayopen;
-	char line[_MAXLINELEN + 1];
-};
-
 struct hostdata {
 	struct hostent host;
 	struct hostent_data data;
@@ -75,11 +68,6 @@
 	struct netent_data data;
 };
 
-struct protodata {
-	struct protoent proto;
-	struct protoent_data data;
-};
-
 #define	endhostent_r		__endhostent_r
 #define	endnetent_r		__endnetent_r
 #define	endprotoent_r		__endprotoent_r
@@ -131,9 +119,12 @@
 	struct netent_data *);
 int getnetbyname_r(const char *, struct netent *, struct netent_data *);
 int getnetent_r(struct netent *, struct netent_data *);
-int getprotobyname_r(const char *, struct protoent *, struct protoent_data *);
-int getprotobynumber_r(int, struct protoent *, struct protoent_data *);
-int getprotoent_r(struct protoent *, struct protoent_data *);
+int getprotobyname_r(const char *, struct protoent *, char *, size_t, 
+	struct protoent **);
+int getprotobynumber_r(int, struct protoent *, char *, size_t, 
+	struct protoent **);
+int getprotoent_r(struct protoent *, char *, size_t, 
+	struct protoent **);
 int getservbyname_r(const char *, const char *, struct servent *,
 	char *, size_t, struct servent **);
 int getservbyport_r(int, const char *, struct servent *,

From owner-p4-projects@FreeBSD.ORG  Mon Jul 18 12:37:18 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id E7BC216A420; Mon, 18 Jul 2005 12:37:17 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 9F9CD16A41C
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 12:37:17 +0000 (GMT)
	(envelope-from soc-tyler@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 5A7F743D4C
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 12:37:17 +0000 (GMT)
	(envelope-from soc-tyler@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6ICbHaV038588
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 12:37:17 GMT
	(envelope-from soc-tyler@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6ICbHxt038585
	for perforce@freebsd.org; Mon, 18 Jul 2005 12:37:17 GMT
	(envelope-from soc-tyler@freebsd.org)
Date: Mon, 18 Jul 2005 12:37:17 GMT
Message-Id: <200507181237.j6ICbHxt038585@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-tyler@freebsd.org using -f
From: soc-tyler <soc-tyler@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80436 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Jul 2005 12:37:18 -0000

http://perforce.freebsd.org/chv.cgi?CH=80436

Change 80436 by soc-tyler@soc-tyler_launchd on 2005/07/18 12:37:02

	Fix Makefile

Affected files ...

.. //depot/projects/soc2005/launchd/Makefile#7 edit

Differences ...

==== //depot/projects/soc2005/launchd/Makefile#7 (text+ko) ====

@@ -6,13 +6,18 @@
 #launchdebugd.c launchproxy.c
 MAN=	launchd.conf.5 launchd.plist.5 init.8 launchd.8 \
 	launchd_debug.8 launchproxy.8 rc.8 service.8 
-	
-MAINTAINER= tyler@tamu.edu
+
+BINMODE=500
+INSTALLFLAGS=-b -B.bak
+NO_SHARED?=	YES
 
 CFLAGS+= -g -Wall -W -Wshadow -Wpadded -Iincludes -D_LAUNCHD_
 ## init.c related CFLAGS
-CFLAGS+=-DDEBUGSHELL -DSECURE -DLOGIN_CAP -DCOMPAT_SYSV_INIT
-LDADD+=	-lutil
-NO_SHARED?=	YES
+CFLAGS+= -DDEBUGSHELL -DSECURE -DLOGIN_CAP -DCOMPAT_SYSV_INIT
+
+# -lcrypt needed by original FreeBSD init(8) code
+DPADD=	${LIBUTIL} ${LIBCRYPT}
+LDADD+=	-lutil -lcrypt
+
 
 .include <bsd.prog.mk>

From owner-p4-projects@FreeBSD.ORG  Mon Jul 18 15:44:08 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 99BC416A421; Mon, 18 Jul 2005 15:44:07 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 6A85E16A41C
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 15:44:07 +0000 (GMT)
	(envelope-from jhb@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 8163443D45
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 15:44:06 +0000 (GMT)
	(envelope-from jhb@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6IFi6HC053555
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 15:44:06 GMT
	(envelope-from jhb@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6IFi64S053552
	for perforce@freebsd.org; Mon, 18 Jul 2005 15:44:06 GMT
	(envelope-from jhb@freebsd.org)
Date: Mon, 18 Jul 2005 15:44:06 GMT
Message-Id: <200507181544.j6IFi64S053552@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	jhb@freebsd.org using -f
From: John Baldwin <jhb@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80445 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Jul 2005 15:44:08 -0000

http://perforce.freebsd.org/chv.cgi?CH=80445

Change 80445 by jhb@jhb_slimer on 2005/07/18 15:43:37

	IFC @80443.

Affected files ...

.. //depot/projects/smpng/sys/alpha/conf/GENERIC#49 integrate
.. //depot/projects/smpng/sys/alpha/include/atomic.h#28 integrate
.. //depot/projects/smpng/sys/alpha/osf1/Makefile#2 integrate
.. //depot/projects/smpng/sys/amd64/conf/GENERIC#34 integrate
.. //depot/projects/smpng/sys/amd64/include/atomic.h#22 integrate
.. //depot/projects/smpng/sys/arm/include/atomic.h#15 integrate
.. //depot/projects/smpng/sys/boot/ficl/Makefile#12 integrate
.. //depot/projects/smpng/sys/boot/i386/Makefile.inc#7 integrate
.. //depot/projects/smpng/sys/boot/i386/boot2/Makefile#18 integrate
.. //depot/projects/smpng/sys/boot/i386/libi386/Makefile#13 integrate
.. //depot/projects/smpng/sys/boot/i386/libi386/libi386.h#8 integrate
.. //depot/projects/smpng/sys/boot/i386/libi386/smbios.c#1 branch
.. //depot/projects/smpng/sys/boot/i386/loader/main.c#10 integrate
.. //depot/projects/smpng/sys/conf/NOTES#100 integrate
.. //depot/projects/smpng/sys/conf/files#144 integrate
.. //depot/projects/smpng/sys/conf/kern.mk#15 integrate
.. //depot/projects/smpng/sys/conf/options#103 integrate
.. //depot/projects/smpng/sys/contrib/pf/net/if_pfsync.c#14 integrate
.. //depot/projects/smpng/sys/dev/aac/aac_pci.c#38 integrate
.. //depot/projects/smpng/sys/dev/ed/if_ed_pccard.c#31 integrate
.. //depot/projects/smpng/sys/dev/ex/if_ex_pccard.c#11 integrate
.. //depot/projects/smpng/sys/dev/firewire/fwohci_pci.c#35 integrate
.. //depot/projects/smpng/sys/dev/hatm/if_hatm_intr.c#14 integrate
.. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_mod.c#7 integrate
.. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_ppro.c#4 integrate
.. //depot/projects/smpng/sys/dev/kbd/kbd.c#16 integrate
.. //depot/projects/smpng/sys/dev/kbd/kbdreg.h#5 integrate
.. //depot/projects/smpng/sys/dev/kbdmux/kbdmux.c#1 branch
.. //depot/projects/smpng/sys/dev/pccard/pccard.c#37 integrate
.. //depot/projects/smpng/sys/dev/pccard/pccard_cis.c#21 integrate
.. //depot/projects/smpng/sys/dev/pccard/pccarddevs#48 integrate
.. //depot/projects/smpng/sys/dev/pccbb/pccbb.c#49 integrate
.. //depot/projects/smpng/sys/dev/pccbb/pccbb_pci.c#8 integrate
.. //depot/projects/smpng/sys/dev/pccbb/pccbbreg.h#11 integrate
.. //depot/projects/smpng/sys/dev/pccbb/pccbbvar.h#16 integrate
.. //depot/projects/smpng/sys/dev/syscons/syscons.c#49 integrate
.. //depot/projects/smpng/sys/dev/usb/sl811hs.c#1 branch
.. //depot/projects/smpng/sys/dev/usb/sl811hsreg.h#1 branch
.. //depot/projects/smpng/sys/dev/usb/sl811hsvar.h#1 branch
.. //depot/projects/smpng/sys/dev/usb/slhci_pccard.c#1 branch
.. //depot/projects/smpng/sys/dev/usb/ulpt.c#21 integrate
.. //depot/projects/smpng/sys/dev/usb/usb.c#32 integrate
.. //depot/projects/smpng/sys/dev/xe/if_xe.c#23 integrate
.. //depot/projects/smpng/sys/dev/xe/if_xe_pccard.c#20 integrate
.. //depot/projects/smpng/sys/fs/devfs/devfs_devs.c#17 integrate
.. //depot/projects/smpng/sys/fs/devfs/devfs_vnops.c#47 integrate
.. //depot/projects/smpng/sys/fs/msdosfs/msdosfs_conv.c#13 integrate
.. //depot/projects/smpng/sys/geom/concat/g_concat.c#13 integrate
.. //depot/projects/smpng/sys/geom/geom_mbr.c#31 integrate
.. //depot/projects/smpng/sys/geom/geom_pc98.c#28 integrate
.. //depot/projects/smpng/sys/geom/stripe/g_stripe.c#12 integrate
.. //depot/projects/smpng/sys/geom/vinum/geom_vinum_var.h#8 integrate
.. //depot/projects/smpng/sys/geom/vinum/geom_vinum_volume.c#7 integrate
.. //depot/projects/smpng/sys/i386/conf/GENERIC#64 integrate
.. //depot/projects/smpng/sys/i386/include/atomic.h#41 integrate
.. //depot/projects/smpng/sys/ia64/conf/GENERIC#44 integrate
.. //depot/projects/smpng/sys/ia64/include/atomic.h#11 integrate
.. //depot/projects/smpng/sys/kern/Makefile#4 integrate
.. //depot/projects/smpng/sys/kern/kern_conf.c#38 integrate
.. //depot/projects/smpng/sys/kern/kern_mac.c#41 integrate
.. //depot/projects/smpng/sys/kern/kern_malloc.c#37 integrate
.. //depot/projects/smpng/sys/kern/kern_mbuf.c#8 integrate
.. //depot/projects/smpng/sys/kern/kern_mutex.c#101 integrate
.. //depot/projects/smpng/sys/kern/tty_pty.c#40 integrate
.. //depot/projects/smpng/sys/kern/uipc_mbuf2.c#20 integrate
.. //depot/projects/smpng/sys/modules/Makefile#101 integrate
.. //depot/projects/smpng/sys/modules/kbdmux/Makefile#1 branch
.. //depot/projects/smpng/sys/modules/slhci/Makefile#1 branch
.. //depot/projects/smpng/sys/modules/ukbd/Makefile#7 integrate
.. //depot/projects/smpng/sys/net/if.c#69 integrate
.. //depot/projects/smpng/sys/net/rtsock.c#46 integrate
.. //depot/projects/smpng/sys/netgraph/netflow/ng_netflow.c#6 integrate
.. //depot/projects/smpng/sys/netinet/in_proto.c#20 integrate
.. //depot/projects/smpng/sys/nfs/nfs_common.c#13 integrate
.. //depot/projects/smpng/sys/nfs/nfs_common.h#8 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_socket.c#35 integrate
.. //depot/projects/smpng/sys/pc98/conf/GENERIC#56 integrate
.. //depot/projects/smpng/sys/powerpc/conf/GENERIC#28 integrate
.. //depot/projects/smpng/sys/powerpc/include/atomic.h#14 integrate
.. //depot/projects/smpng/sys/security/mac/mac_vfs.c#9 integrate
.. //depot/projects/smpng/sys/security/mac_biba/mac_biba.c#36 integrate
.. //depot/projects/smpng/sys/security/mac_lomac/mac_lomac.c#27 integrate
.. //depot/projects/smpng/sys/security/mac_mls/mac_mls.c#34 integrate
.. //depot/projects/smpng/sys/security/mac_stub/mac_stub.c#14 integrate
.. //depot/projects/smpng/sys/security/mac_test/mac_test.c#32 integrate
.. //depot/projects/smpng/sys/sparc64/conf/GENERIC#57 integrate
.. //depot/projects/smpng/sys/sparc64/include/atomic.h#14 integrate
.. //depot/projects/smpng/sys/sys/cdefs.h#30 integrate
.. //depot/projects/smpng/sys/sys/conf.h#41 integrate
.. //depot/projects/smpng/sys/sys/kbio.h#2 integrate
.. //depot/projects/smpng/sys/sys/mac.h#33 integrate
.. //depot/projects/smpng/sys/sys/mac_policy.h#32 integrate
.. //depot/projects/smpng/sys/sys/malloc.h#22 integrate
.. //depot/projects/smpng/sys/sys/mbuf.h#51 integrate
.. //depot/projects/smpng/sys/sys/mutex.h#59 integrate
.. //depot/projects/smpng/sys/vm/uma.h#16 integrate
.. //depot/projects/smpng/sys/vm/uma_core.c#56 integrate
.. //depot/projects/smpng/sys/vm/uma_dbg.c#15 integrate
.. //depot/projects/smpng/sys/vm/uma_dbg.h#7 integrate
.. //depot/projects/smpng/sys/vm/uma_int.h#28 integrate
.. //depot/projects/smpng/sys/vm/vm_fault.c#49 integrate

Differences ...

==== //depot/projects/smpng/sys/alpha/conf/GENERIC#49 (text+ko) ====

@@ -18,7 +18,7 @@
 #
 # For hardware specific information check HARDWARE.TXT
 #
-# $FreeBSD: src/sys/alpha/conf/GENERIC,v 1.186 2005/06/06 10:53:10 wilko Exp $
+# $FreeBSD: src/sys/alpha/conf/GENERIC,v 1.187 2005/07/14 15:39:04 kensmith Exp $
 
 machine		alpha
 cpu		EV4
@@ -63,6 +63,7 @@
 options 	GEOM_GPT		# GUID Partition Tables.
 options 	COMPAT_43		# Compatible with BSD 4.3 [KEEP THIS!]
 options 	COMPAT_FREEBSD4		# Compatible with FreeBSD4
+options 	COMPAT_FREEBSD5		# Compatible with FreeBSD5
 options 	SCSI_DELAY=5000		# Delay (in ms) before probing SCSI
 options 	KTRACE			# ktrace(1) support
 options 	SYSVSHM			# SYSV-style shared memory

==== //depot/projects/smpng/sys/alpha/include/atomic.h#28 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/alpha/include/atomic.h,v 1.21 2005/07/09 12:38:53 jhb Exp $
+ * $FreeBSD: src/sys/alpha/include/atomic.h,v 1.22 2005/07/15 18:17:57 jhb Exp $
  */
 
 #ifndef _MACHINE_ATOMIC_H_

==== //depot/projects/smpng/sys/alpha/osf1/Makefile#2 (text+ko) ====

@@ -1,9 +1,11 @@
-# $FreeBSD: src/sys/alpha/osf1/Makefile,v 1.2 2000/01/15 19:40:08 bde Exp $
+# $FreeBSD: src/sys/alpha/osf1/Makefile,v 1.3 2005/07/13 20:50:17 jhb Exp $
 
 # Makefile for syscall tables.
 
 all:
-	@echo "make osf1_sysent.c only"
+	@echo "make sysent only"
+
+sysent:  osf1_sysent.c osf1_syscall.h osf1_proto.h
 
 osf1_sysent.c osf1_syscall.h osf1_proto.h: ../../kern/makesyscalls.sh \
     syscalls.master syscalls.conf

==== //depot/projects/smpng/sys/amd64/conf/GENERIC#34 (text+ko) ====

@@ -16,7 +16,7 @@
 # If you are in doubt as to the purpose or necessity of a line, check first
 # in NOTES.
 #
-# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.439 2005/05/24 16:48:06 damien Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.440 2005/07/14 15:39:04 kensmith Exp $
 
 machine		amd64
 cpu		HAMMER
@@ -49,6 +49,7 @@
 options 	COMPAT_43		# Needed by COMPAT_LINUX32
 options 	COMPAT_IA32		# Compatible with i386 binaries
 options 	COMPAT_FREEBSD4		# Compatible with FreeBSD4
+options 	COMPAT_FREEBSD5		# Compatible with FreeBSD5
 options 	COMPAT_LINUX32		# Compatible with i386 linux binaries 
 options 	SCSI_DELAY=5000		# Delay (in ms) before probing SCSI
 options 	KTRACE			# ktrace(1) support

==== //depot/projects/smpng/sys/amd64/include/atomic.h#22 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/include/atomic.h,v 1.34 2005/07/09 12:38:53 jhb Exp $
+ * $FreeBSD: src/sys/amd64/include/atomic.h,v 1.35 2005/07/15 18:17:57 jhb Exp $
  */
 #ifndef _MACHINE_ATOMIC_H_
 #define	_MACHINE_ATOMIC_H_

==== //depot/projects/smpng/sys/arm/include/atomic.h#15 (text+ko) ====

@@ -33,7 +33,7 @@
  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/arm/include/atomic.h,v 1.8 2005/06/23 21:54:17 jhb Exp $
+ * $FreeBSD: src/sys/arm/include/atomic.h,v 1.9 2005/07/15 18:17:57 jhb Exp $
  */
 
 #ifndef	_MACHINE_ATOMIC_H_

==== //depot/projects/smpng/sys/boot/ficl/Makefile#12 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/boot/ficl/Makefile,v 1.41 2005/05/31 18:13:29 obrien Exp $
+# $FreeBSD: src/sys/boot/ficl/Makefile,v 1.42 2005/07/15 12:22:14 ache Exp $
 #
 .PATH: ${.CURDIR}/${MACHINE_ARCH:S/amd64/i386/}
 BASE_SRCS=	dict.c ficl.c fileaccess.c float.c loader.c math64.c \
@@ -14,6 +14,9 @@
 CFLAGS+=	-mpreferred-stack-boundary=2
 CFLAGS+=	-mno-mmx -mno-3dnow -mno-sse -mno-sse2
 .endif
+.if ${MACHINE_ARCH} == "i386"
+CFLAGS+=	-mno-sse3
+.endif
 .if ${MACHINE_ARCH} == "powerpc"
 CFLAGS+=	-msoft-float
 .endif

==== //depot/projects/smpng/sys/boot/i386/Makefile.inc#7 (text+ko) ====

@@ -1,12 +1,12 @@
 # Common defines for all of /sys/boot/i386/
 #
-# $FreeBSD: src/sys/boot/i386/Makefile.inc,v 1.10 2005/03/15 18:43:36 obrien Exp $
+# $FreeBSD: src/sys/boot/i386/Makefile.inc,v 1.11 2005/07/15 12:22:14 ache Exp $
 
 BINDIR?=	/boot
 
 LOADER_ADDRESS?=0x200000
 CFLAGS+=	-ffreestanding -mpreferred-stack-boundary=2 \
-		-mno-mmx -mno-3dnow -mno-sse -mno-sse2
+		-mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3
 LDFLAGS+=	-nostdlib
 
 .if ${MACHINE_ARCH} == "amd64"

==== //depot/projects/smpng/sys/boot/i386/boot2/Makefile#18 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/boot/i386/boot2/Makefile,v 1.58 2005/03/15 18:43:36 obrien Exp $
+# $FreeBSD: src/sys/boot/i386/boot2/Makefile,v 1.59 2005/07/15 12:22:14 ache Exp $
 
 FILES=		boot boot1 boot2
 
@@ -26,7 +26,7 @@
 	-fno-unit-at-a-time \
 	-mno-align-long-strings \
 	-mrtd \
-	-mno-mmx -mno-3dnow -mno-sse -mno-sse2 \
+	-mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 \
 	-D${BOOT2_UFS} \
 	-DFLAGS=${BOOT_BOOT1_FLAGS} \
 	-DSIOPRT=${BOOT_COMCONSOLE_PORT} \

==== //depot/projects/smpng/sys/boot/i386/libi386/Makefile#13 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/boot/i386/libi386/Makefile,v 1.37 2004/10/24 15:32:49 ru Exp $
+# $FreeBSD: src/sys/boot/i386/libi386/Makefile,v 1.38 2005/07/14 19:52:22 jkim Exp $
 #
 LIB=			i386
 INTERNALLIB=
@@ -8,7 +8,7 @@
 	comconsole.c devicename.c elf32_freebsd.c \
 	elf64_freebsd.c gatea20.c \
 	i386_copy.c i386_module.c nullconsole.c pxe.c pxetramp.s \
-	time.c vidconsole.c amd64_tramp.S
+	smbios.c time.c vidconsole.c amd64_tramp.S
 
 BOOT_COMCONSOLE_PORT?= 0x3f8
 CFLAGS+=	-DCOMPORT=${BOOT_COMCONSOLE_PORT}

==== //depot/projects/smpng/sys/boot/i386/libi386/libi386.h#8 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/boot/i386/libi386/libi386.h,v 1.20 2005/05/27 19:28:04 jhb Exp $
+ * $FreeBSD: src/sys/boot/i386/libi386/libi386.h,v 1.21 2005/07/14 19:52:22 jkim Exp $
  */
 
 
@@ -99,6 +99,8 @@
 
 void	biosacpi_detect();
 
+void	smbios_detect();
+
 void	gateA20(void);
 
 int	i386_autoload(void);

==== //depot/projects/smpng/sys/boot/i386/loader/main.c#10 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/i386/loader/main.c,v 1.31 2005/05/27 19:31:00 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/i386/loader/main.c,v 1.32 2005/07/14 19:52:22 jkim Exp $");
 
 /*
  * MD bootstrap main() and assorted miscellaneous
@@ -144,6 +144,9 @@
     /* detect ACPI for future reference */
     biosacpi_detect();
 
+    /* detect SMBIOS for future reference */
+    smbios_detect();
+
     printf("\n");
     printf("%s, Revision %s\n", bootprog_name, bootprog_rev);
     printf("(%s, %s)\n", bootprog_maker, bootprog_date);

==== //depot/projects/smpng/sys/conf/NOTES#100 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/NOTES,v 1.1325 2005/06/21 10:17:54 dumbbell Exp $
+# $FreeBSD: src/sys/conf/NOTES,v 1.1326 2005/07/14 15:57:00 takawata Exp $
 #
 # NOTES -- Lines that can be cut/pasted into kernel and hints configs.
 #
@@ -2309,6 +2309,8 @@
 device		ohci
 # EHCI controller
 device		ehci
+# SL811 Controller
+device 		slhci
 # General USB code (mandatory for USB)
 device		usb
 #

==== //depot/projects/smpng/sys/conf/files#144 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1031 2005/07/10 15:07:57 scottl Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1034 2005/07/17 03:27:36 obrien Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -627,6 +627,7 @@
 dev/joy/joy.c			optional joy
 dev/joy/joy_isa.c		optional joy isa
 dev/joy/joy_pccard.c		optional joy pccard
+dev/kbdmux/kbdmux.c		optional kbdmux
 dev/led/led.c			standard
 dev/lge/if_lge.c		optional lge
 dev/lnc/if_lnc.c		optional lnc
@@ -789,16 +790,19 @@
 #dev/sound/pci/au88x0.c		optional snd_au88x0 pci
 dev/sound/pci/cmi.c		optional snd_cmi pci
 dev/sound/pci/cs4281.c		optional snd_cs4281 pci
-dev/sound/pci/csa.c		optional snd_csa pci
+dev/sound/pci/csa.c		optional snd_csa pci \
+	warning "kernel contains GPL contaminated csaimg.h header"
 dev/sound/pci/csapcm.c		optional snd_csa pci
 dev/sound/pci/ds1.c		optional snd_ds1 pci
 dev/sound/pci/emu10k1.c		optional snd_emu10k1 pci \
-	dependency "emu10k1-alsa%diked.h"
+	dependency "emu10k1-alsa%diked.h" \
+	warning "kernel contains GPL contaminated emu10k1 headers"
 dev/sound/pci/es137x.c		optional snd_es137x pci
 dev/sound/pci/fm801.c		optional snd_fm801 pci
 dev/sound/pci/ich.c		optional snd_ich pci
 dev/sound/pci/maestro.c 	optional snd_maestro pci
-dev/sound/pci/maestro3.c	optional snd_maestro3 pci
+dev/sound/pci/maestro3.c	optional snd_maestro3 pci \
+	warning "kernel contains GPL contaminated maestro3 headers"
 dev/sound/pci/neomagic.c	optional snd_neomagic pci
 dev/sound/pci/solo.c		optional snd_solo pci
 dev/sound/pci/t4dwave.c		optional snd_t4dwave pci
@@ -896,6 +900,8 @@
 dev/usb/if_udav.c		optional udav
 dev/usb/ohci.c			optional ohci
 dev/usb/ohci_pci.c		optional ohci pci
+dev/usb/sl811hs.c		optional slhci
+dev/usb/slhci_pccard.c		optional slhci pccard
 dev/usb/ubsa.c			optional ubsa ucom
 dev/usb/ubser.c			optional ubser
 dev/usb/ucom.c			optional ucom

==== //depot/projects/smpng/sys/conf/kern.mk#15 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/kern.mk,v 1.45 2005/03/31 22:53:58 peter Exp $
+# $FreeBSD: src/sys/conf/kern.mk,v 1.46 2005/07/15 11:45:30 ache Exp $
 
 #
 # Warning flags for compiling the kernel and components of the kernel.
@@ -31,7 +31,7 @@
 #
 .if ${MACHINE_ARCH} == "i386" && ${CC} != "icc"
 CFLAGS+=	-mno-align-long-strings -mpreferred-stack-boundary=2 \
-		-mno-mmx -mno-3dnow -mno-sse -mno-sse2
+		-mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3
 INLINE_LIMIT?=	8000
 .endif
 

==== //depot/projects/smpng/sys/conf/options#103 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options,v 1.510 2005/06/30 00:09:18 peter Exp $
+# $FreeBSD: src/sys/conf/options,v 1.511 2005/07/15 05:12:49 takawata Exp $
 #
 #        On the handling of kernel options
 #
@@ -124,6 +124,7 @@
 SCHED_ULE	opt_sched.h
 SHOW_BUSYBUFS
 SLEEPQUEUE_PROFILING
+SLHCI_DEBUG	opt_slhci.h
 SPX_HACK
 SUIDDIR		opt_suiddir.h
 MSGMNB		opt_sysvipc.h

==== //depot/projects/smpng/sys/contrib/pf/net/if_pfsync.c#14 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/contrib/pf/net/if_pfsync.c,v 1.19 2005/06/26 21:00:52 mlaier Exp $	*/
+/*	$FreeBSD: src/sys/contrib/pf/net/if_pfsync.c,v 1.20 2005/07/14 22:22:51 mlaier Exp $	*/
 /*	$OpenBSD: if_pfsync.c,v 1.46 2005/02/20 15:58:38 mcbride Exp $	*/
 
 /*
@@ -56,6 +56,7 @@
 #include <sys/sockio.h>
 #include <sys/lock.h>
 #include <sys/mutex.h>
+#include <sys/sysctl.h>
 #else
 #include <sys/ioctl.h>
 #include <sys/timeout.h>
@@ -119,8 +120,11 @@
 struct pfsync_softc	pfsyncif;
 #endif
 struct pfsyncstats	pfsyncstats;
-
 #ifdef __FreeBSD__
+SYSCTL_DECL(_net_inet_pfsync);
+SYSCTL_STRUCT(_net_inet_pfsync, 0, stats, CTLFLAG_RW,
+    &pfsyncstats, pfsyncstats,
+    "PFSYNC statistics (struct pfsyncstats, net/if_pfsync.h)");
 
 /*
  * Locking notes:

==== //depot/projects/smpng/sys/dev/aac/aac_pci.c#38 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/aac/aac_pci.c,v 1.54 2005/05/29 04:42:16 nyan Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/aac/aac_pci.c,v 1.55 2005/07/14 17:43:00 scottl Exp $");
 
 /*
  * PCI bus interface and resource allocation.
@@ -356,8 +356,8 @@
 aacch_probe(device_t dev)
 {
 
-	if ((pci_get_subvendor(dev) != 0x9005) ||
-	    (pci_get_subdevice(dev) != 0x00c5))
+	if ((pci_get_vendor(dev) != 0x9005) ||
+	    (pci_get_device(dev) != 0x00c5))
 		return (ENXIO);
 
 	device_set_desc(dev, "AAC RAID Channel");

==== //depot/projects/smpng/sys/dev/ed/if_ed_pccard.c#31 (text+ko) ====

@@ -24,7 +24,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/ed/if_ed_pccard.c,v 1.84 2005/07/10 02:00:34 imp Exp $
+ * $FreeBSD: src/sys/dev/ed/if_ed_pccard.c,v 1.85 2005/07/15 01:54:59 imp Exp $
  */
 
 #include "opt_ed.h"
@@ -105,7 +105,11 @@
 #define	NE2000DVF_DL100XX	0x0001		/* chip is D-Link DL10019/22 */
 #define	NE2000DVF_AX88X90	0x0002		/* chip is ASIX AX88[17]90 */
 #define NE2000DVF_ENADDR	0x0004		/* Get MAC from attr mem */
+#define NE2000DVF_ANYFUNC	0x0008		/* Allow any function type */
+#define NE2000DVF_MODEM		0x0010		/* Has a modem/serial */
 	int enoff;
+	int edrid;
+	int siorid;
 } ed_pccard_products[] = {
 	{ PCMCIA_CARD(ACCTON, EN2212), 0},
 	{ PCMCIA_CARD(ACCTON, EN2216), 0},
@@ -142,7 +146,8 @@
 	{ PCMCIA_CARD(EPSON, EEN10B), 0},
 	{ PCMCIA_CARD(EXP, THINLANCOMBO), 0},
 	{ PCMCIA_CARD(GREY_CELL, TDK3000), 0},
-	{ PCMCIA_CARD(GREY_CELL, DMF650TX), 0},
+	{ PCMCIA_CARD(GREY_CELL, DMF650TX),
+	    NE2000DVF_ANYFUNC | NE2000DVF_DL100XX | NE2000DVF_MODEM, -1, 1, 0},
 	{ PCMCIA_CARD(IBM, HOME_AND_AWAY), 0},
 	{ PCMCIA_CARD(IBM, INFOMOVER), NE2000DVF_ENADDR, 0xff0},
 	{ PCMCIA_CARD(IODATA3, PCLAT), 0},
@@ -203,14 +208,19 @@
 	error = pccard_get_function(dev, &fcn);
 	if (error != 0)
 		return (error);
-	if (fcn != PCCARD_FUNCTION_NETWORK)
-		return (ENXIO);
 
 	if ((pp = (const struct ed_product *) pccard_product_lookup(dev, 
 	    (const struct pccard_product *) ed_pccard_products,
 	    sizeof(ed_pccard_products[0]), NULL)) != NULL) {
 		if (pp->prod.pp_name != NULL)
 			device_set_desc(dev, pp->prod.pp_name);
+		/*
+		 * Some devices don't ID themselves as network, but
+		 * that's OK if the flags say so.
+		 */
+		if (!(pp->flags & NE2000DVF_ANYFUNC) &&
+		    fcn != PCCARD_FUNCTION_NETWORK)
+			return (ENXIO);
 		return (0);
 	}
 	return (ENXIO);
@@ -226,13 +236,15 @@
 {
 	const struct ed_product *pp;
 	int	error;
+	struct ed_softc *sc = device_get_softc(dev);
 
 	if ((pp = (const struct ed_product *) pccard_product_lookup(dev, 
 	    (const struct pccard_product *) ed_pccard_products,
 	    sizeof(ed_pccard_products[0]), NULL)) == NULL)
 		return (ENXIO);
+	sc->port_rid = pp->edrid;
 	if (pp->flags & NE2000DVF_DL100XX) {
-		error = ed_probe_Novell(dev, 0, 0);
+		error = ed_probe_Novell(dev, sc->port_rid, 0);
 		if (error == 0)
 			error = ed_pccard_Linksys(dev);
 		ed_release_resources(dev);
@@ -244,7 +256,7 @@
 		if (error == 0)
 			goto end2;
 	}
-	error = ed_probe_Novell(dev, 0, 0);
+	error = ed_probe_Novell(dev, sc->port_rid, 0);
 end2:
 	if (error == 0)
 		error = ed_alloc_irq(dev, 0, 0);
@@ -279,6 +291,13 @@
 }
 
 static int
+ed_pccard_add_modem(device_t dev, int rid)
+{
+	device_printf(dev, "Need to write this code: modem rid is %d\n", rid);
+	return 0;
+}
+
+static int
 ed_pccard_attach(device_t dev)
 {
 	int error, i;
@@ -291,6 +310,7 @@
 	    (const struct pccard_product *) ed_pccard_products,
 	    sizeof(ed_pccard_products[0]), NULL)) == NULL)
 		return (ENXIO);
+	sc->port_rid = pp->edrid;
 	if (sc->port_used > 0)
 		ed_alloc_port(dev, sc->port_rid, sc->port_used);
 	if (sc->mem_used)
@@ -367,6 +387,8 @@
 		    ed_ifmedia_sts);
 	}
 #endif
+	if (pp->flags & NE2000DVF_MODEM)
+		ed_pccard_add_modem(dev, pp->siorid);
 	return (error);
 }
 
@@ -514,7 +536,7 @@
 	struct	ed_softc *sc = device_get_softc(dev);
 
 	/* Allocate the port resource during setup. */
-	error = ed_alloc_port(dev, 0, ED_NOVELL_IO_PORTS);
+	error = ed_alloc_port(dev, sc->port_rid, ED_NOVELL_IO_PORTS);
 	if (error)
 		return (error);
 

==== //depot/projects/smpng/sys/dev/ex/if_ex_pccard.c#11 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ex/if_ex_pccard.c,v 1.14 2005/06/24 14:36:52 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ex/if_ex_pccard.c,v 1.15 2005/07/15 01:48:38 imp Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -146,55 +146,28 @@
 	return (sum != 0);
 }
 
-#if 0
-#ifdef NETBSD_LIKE
 static int
-ex_pccard_silicom_cb(struct pccard_tuple *tuple, void *arg)
+ex_pccard_silicom_cb(const struct pccard_tuple *tuple, void *arg)
 {
 	u_char *enaddr = arg;
+	int i;
 
-	if (tuple->code != PCMCIA_CISTPL_FUNCE)
+	if (tuple->code != CISTPL_FUNCE)
 		return (0);
 	if (tuple->length != 15)
 		return (0);
-	if (CARD_CIS_READ_1(tuple->dev, tuple, 6) != 6)
+	if (pccard_tuple_read_1(tuple, 6) != 6)
 		return (0);
 	for (i = 0; i < 6; i++)
-		enaddr[i] = CARD_CIS_READ_1(tuple->dev, tuple, 7 + i);
+		enaddr[i] = pccard_tuple_read_1(tuple, 7 + i);
 	return (1);
 }
-#endif
-#endif
 
 static void
 ex_pccard_get_silicom_mac(device_t dev, u_char *ether_addr)
 {
-#if 0
-#ifdef	NETBSD_LIKE
-	CARD_CIS_SCAN(dev, ex_pccard_silicom_cb, ether_addr);
-#endif
-#ifdef	CS_LIKE
-	uint8_t buffer[64];
-	tuple_t tuple;
-	int i;
-	
-	tuple.TupleData = buffer;
-	tuple.TupleDataMax = sizeof(buffer);
-	tuple.TupleOffset = 0;
-	tuple.DesiredTuple = CISTPL_FUNCE;
-	tuple.Attributes = TUPLE_RETURN_COMMON;
-	if (CARD_SERVICE(dev, GetFirstTuple, &tuple) != CS_SUCCESS)
-		return;
-	if (CARD_SERVICES(dev, GetTupleData, &tuple) != CS_SUCCESS)
-		return;
-	if (tuple.TupleLength != 15)
-		return;
-	if (buffer[6] != 6)
-		return;
-	for (i = 0; i < 6; i++)
-		ether_addr[i] = buffer[7 + i);
-#endif
-#endif
+	CARD_CIS_SCAN(device_get_parent(dev), ex_pccard_silicom_cb,
+	    ether_addr);
 }
 
 static int

==== //depot/projects/smpng/sys/dev/firewire/fwohci_pci.c#35 (text+ko) ====

@@ -31,7 +31,7 @@
  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  * 
- * $FreeBSD: src/sys/dev/firewire/fwohci_pci.c,v 1.52 2005/05/20 12:37:16 marius Exp $
+ * $FreeBSD: src/sys/dev/firewire/fwohci_pci.c,v 1.53 2005/07/17 19:59:07 imp Exp $
  */
 
 #define BOUNCE_BUFFER_TEST	0
@@ -169,8 +169,8 @@
 		return BUS_PROBE_DEFAULT;
 	}
 	if (id == (FW_VENDORID_SONY | FW_DEVICE_CXD1947)) {
-		device_set_desc(dev, "Sony i.LINK (CXD1947)");
-		return BUS_PROBE_DEFAULT;
+		device_printf(dev, "Sony i.LINK (CXD1947) not supported");
+		return ENXIO;
 	}
 	if (id == (FW_VENDORID_SONY | FW_DEVICE_CXD3222)) {
 		device_set_desc(dev, "Sony i.LINK (CXD3222)");

==== //depot/projects/smpng/sys/dev/hatm/if_hatm_intr.c#14 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/hatm/if_hatm_intr.c,v 1.18 2005/06/10 16:49:09 brooks Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/hatm/if_hatm_intr.c,v 1.19 2005/07/15 18:17:57 jhb Exp $");
 
 /*
  * ForeHE driver.

==== //depot/projects/smpng/sys/dev/hwpmc/hwpmc_mod.c#7 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_mod.c,v 1.10 2005/07/09 17:29:36 jkoshy Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_mod.c,v 1.12 2005/07/17 04:18:06 jkoshy Exp $");
 
 #include <sys/param.h>
 #include <sys/eventhandler.h>
@@ -668,7 +668,7 @@
 	td = curthread;
 	*fullpath = "unknown";
 	*freepath = NULL;
-	vn_lock(v, LK_EXCLUSIVE | LK_RETRY, td);
+	vn_lock(v, LK_CANRECURSE | LK_EXCLUSIVE | LK_RETRY, td);
 	vn_fullpath(td, v, fullpath, freepath);
 	VOP_UNLOCK(v, 0, td);
 }

==== //depot/projects/smpng/sys/dev/hwpmc/hwpmc_ppro.c#4 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_ppro.c,v 1.8 2005/07/09 17:29:36 jkoshy Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_ppro.c,v 1.9 2005/07/14 15:09:14 jkoshy Exp $");
 
 #include <sys/param.h>
 #include <sys/lock.h>
@@ -294,9 +294,9 @@
 
 struct p6_cpu {
 	struct pmc_cpu	pc_common;
-	uint32_t	pc_state;
 	struct pmc_hw	*pc_hwpmcs[P6_NPMCS];
 	struct pmc_hw	pc_p6pmcs[P6_NPMCS];
+	uint32_t	pc_state;
 };
 
 /*

==== //depot/projects/smpng/sys/dev/kbd/kbd.c#16 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/kbd/kbd.c,v 1.43 2004/12/22 17:29:02 phk Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/kbd/kbd.c,v 1.44 2005/07/13 23:58:57 emax Exp $");
 
 #include "opt_kbd.h"
 
@@ -282,13 +282,19 @@
  * exclusive use.
  */
 
-/* find the keyboard specified by a driver name and a unit number */
+/*
+ * find the keyboard specified by a driver name and a unit number
+ * starting at given index
+ */
 int
-kbd_find_keyboard(char *driver, int unit)
+kbd_find_keyboard2(char *driver, int unit, int index)
 {
 	int i;
 
-	for (i = 0; i < keyboards; ++i) {
+	if ((index < 0) || (index >= keyboards))
+		return (-1);
+
+	for (i = index; i < keyboards; ++i) {
 		if (keyboard[i] == NULL)
 			continue;
 		if (!KBD_IS_VALID(keyboard[i]))
@@ -299,9 +305,17 @@
 			continue;
 		return (i);
 	}
+
 	return (-1);
 }
 
+/* find the keyboard specified by a driver name and a unit number */
+int
+kbd_find_keyboard(char *driver, int unit)
+{
+	return (kbd_find_keyboard2(driver, unit, 0));
+}
+
 /* allocate a keyboard */
 int
 kbd_allocate(char *driver, int unit, void *id, kbd_callback_func_t *func,

==== //depot/projects/smpng/sys/dev/kbd/kbdreg.h#5 (text+ko) ====

@@ -23,7 +23,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/kbd/kbdreg.h,v 1.17 2004/06/16 09:46:48 phk Exp $
+ * $FreeBSD: src/sys/dev/kbd/kbdreg.h,v 1.18 2005/07/13 23:58:57 emax Exp $
  */
 
 #ifndef _DEV_KBD_KBDREG_H_
@@ -196,6 +196,7 @@
 int			kbd_change_callback(keyboard_t *kbd, void *id,
 				     kbd_callback_func_t *func, void *arg);
 int			kbd_find_keyboard(char *driver, int unit);
+int			kbd_find_keyboard2(char *driver, int unit, int index);
 keyboard_t 		*kbd_get_keyboard(int index);
 
 /* a back door for the console driver to tickle the keyboard driver XXX */

==== //depot/projects/smpng/sys/dev/pccard/pccard.c#37 (text+ko) ====

@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/pccard/pccard.c,v 1.106 2005/07/13 15:00:59 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/pccard/pccard.c,v 1.108 2005/07/15 01:43:08 imp Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -967,12 +967,16 @@
 	struct pccard_ivar *devi = PCCARD_IVAR(child);
 	struct pccard_function *pf = devi->pf;
 	struct pccard_softc *sc = PCCARD_SOFTC(bus);
+	int i;
 
 	device_printf(bus, "<unknown card>");
-	printf(" (manufacturer=0x%04x, product=0x%04x) at function %d\n",
-	  sc->card.manufacturer, sc->card.product, pf->number);
-	device_printf(bus, "   CIS info: %s, %s, %s\n", sc->card.cis1_info[0],
-	  sc->card.cis1_info[1], sc->card.cis1_info[2]);
+	printf(" (manufacturer=0x%04x, product=0x%04x, function_type=%d) "
+	    "at function %d\n", sc->card.manufacturer, sc->card.product,
+	    pf->function, pf->number);
+	device_printf(bus, "   CIS info: ");
+	for (i = 0; sc->card.cis1_info[i] != NULL && i < 4; i++)
+		printf("%s%s", i > 0 ? ", " : "", sc->card.cis1_info[i]);
+	printf("\n");
 	return;
 }
 

==== //depot/projects/smpng/sys/dev/pccard/pccard_cis.c#21 (text+ko) ====

@@ -1,5 +1,5 @@
 /* $NetBSD: pcmcia_cis.c,v 1.17 2000/02/10 09:01:52 chopps Exp $ */
-/* $FreeBSD: src/sys/dev/pccard/pccard_cis.c,v 1.35 2005/07/13 14:59:06 imp Exp $ */
+/* $FreeBSD: src/sys/dev/pccard/pccard_cis.c,v 1.36 2005/07/17 20:16:22 imp Exp $ */
 
 /*-
  * Copyright (c) 1997 Marc Horowitz.  All rights reserved.
@@ -93,9 +93,7 @@
 	STAILQ_INIT(&state.card->pf_head);
 	state.pf = NULL;
 
-	tsleep(&state, 0, "pccard", hz);
-	if (pccard_scan_cis(sc->dev, pccard_parse_cis_tuple,
-	    &state) == -1)
+	if (pccard_scan_cis(sc->dev, pccard_parse_cis_tuple, &state) == -1)
 		state.card->error++;
 }
 

==== //depot/projects/smpng/sys/dev/pccard/pccarddevs#48 (text+ko) ====

@@ -1,4 +1,4 @@
-$FreeBSD: src/sys/dev/pccard/pccarddevs,v 1.110 2005/07/13 14:50:47 imp Exp $
+$FreeBSD: src/sys/dev/pccard/pccarddevs,v 1.111 2005/07/14 14:53:38 takawata Exp $
 /* $NetBSD: pcmciadevs,v 1.186 2003/09/16 08:26:37 onoe Exp $ */
 /* $OpenBSD: pcmciadevs,v 1.93 2002/06/21 08:31:10 henning Exp $ */
 
@@ -486,7 +486,7 @@
 
 /* RATOC System Inc. Products */
 /* Don't use because both cards have same product id */
-product RATOC REX_R280_9530	0x0001	RATOC REX-R280/REX-9530
+product RATOC REX_R280_9530	0x0001	RATOC REX-R280/REX-9530/CFU01
 
 /* Racore Computer Products */
 product RACORE ACCTON_EN2226	0x010a Accton Fast EtherCard
@@ -699,6 +699,7 @@
 product RATOC REX5536M		{ "PCMCIA&spSCSI2&spCARD", "01", NULL, NULL } RATOC REX-5536M
 product RATOC REX5572		{ "RATOC&spSystem&spInc.", "SOUND/SCSI2&spCARD", NULL, NULL } RATOC REX-5572
 product RATOC REX9530		{ "RATOC&spSystem&spInc.", "SCSI2&spCARD&sp37", NULL, NULL } RATOC REX-9530
+product RATOC REX_CFU1		{ "RATOC", "USB&spHOST&spCF+&spCard", NULL, NULL } RATOC REX-CFU1
 product SIMPLETECH SPECTRUM24_ALT	{ "Symbol&spTechnologies", "LA4111&spSpectrum24&spWireless&spLAN&spPC&spCard", NULL, NULL } LA4111 Spectrum24 Wireless LAN PC Card
 product SMC 2632W		{ "SMC", "SMC2632W", "Version&sp01.02", NULL } SMC 2632 EZ Connect Wireless PC Card
 product SMC 8000		{ "SMC8000", "DEV1", NULL, NULL }

==== //depot/projects/smpng/sys/dev/pccbb/pccbb.c#49 (text+ko) ====

@@ -75,7 +75,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/pccbb/pccbb.c,v 1.121 2005/01/13 19:05:25 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/pccbb/pccbb.c,v 1.126 2005/07/17 19:40:05 imp Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -157,7 +157,7 @@
 
 static void	cbb_insert(struct cbb_softc *sc);
 static void	cbb_removal(struct cbb_softc *sc);
-static int	cbb_detect_voltage(device_t brdev);
+static uint32_t	cbb_detect_voltage(device_t brdev);
 static void	cbb_cardbus_reset(device_t brdev);
 static int	cbb_cardbus_io_open(device_t brdev, int win, uint32_t start,
 		    uint32_t end);
@@ -318,6 +318,7 @@
 	    sc->base_res);
 	mtx_destroy(&sc->mtx);
 	cv_destroy(&sc->cv);
+	cv_destroy(&sc->powercv);
 	return (0);
 }
 
@@ -535,6 +536,9 @@
 		if (sc->exca[0].pccarddev) {
 			sc->flags |= CBB_16BIT_CARD;
 			exca_insert(&sc->exca[0]);
+		} else {
+			device_printf(sc->dev,
+			    "16-bit card inserted, but no pccard bus.\n");
 		}
 	} else if (sockstate & CBB_STATE_CB_CARD) {
 		if (sc->cbdev != NULL) {
@@ -620,13 +624,10 @@
 	struct cbb_softc *sc = arg;
 	uint32_t sockevent;
 
-	/*
-	 * This ISR needs work XXX
-	 */
 	sockevent = cbb_get(sc, CBB_SOCKET_EVENT);
 	if (sockevent != 0) {
 		/* ack the interrupt */
-		cbb_setb(sc, CBB_SOCKET_EVENT, sockevent);
+		cbb_set(sc, CBB_SOCKET_EVENT, sockevent);
 
 		/*
 		 * If anything has happened to the socket, we assume that
@@ -643,12 +644,22 @@
 		 */
 		if (sockevent & CBB_SOCKET_EVENT_CD) {
 			mtx_lock(&sc->mtx);
-			cbb_setb(sc, CBB_SOCKET_MASK, CBB_SOCKET_MASK_CD);
+			cbb_clrb(sc, CBB_SOCKET_MASK, CBB_SOCKET_MASK_CD);
 			sc->flags &= ~CBB_CARD_OK;
 			cbb_disable_func_intr(sc);
 			cv_signal(&sc->cv);
 			mtx_unlock(&sc->mtx);
 		}
+		/*
+		 * If we get a power interrupt, wakeup anybody that might
+		 * be waiting for one.
+		 */
+		if (sockevent & CBB_SOCKET_EVENT_POWER) {
+			mtx_lock(&sc->mtx);
+			sc->powerintr++;
+			cv_signal(&sc->powercv);
+			mtx_unlock(&sc->mtx);
+		}
 	}
 	/*
 	 * Some chips also require us to read the old ExCA registe for
@@ -669,12 +680,12 @@
 /* Generic Power functions						*/
 /************************************************************************/
 
-static int
+static uint32_t
 cbb_detect_voltage(device_t brdev)
 {
 	struct cbb_softc *sc = device_get_softc(brdev);
 	uint32_t psr;
-	int vol = CARD_UKN_CARD;
+	uint32_t vol = CARD_UKN_CARD;
 
 	psr = cbb_get(sc, CBB_SOCKET_STATE);
 
@@ -718,6 +729,11 @@
 	 * Selecting IRQ1 will result in INT# NOT being asserted
 	 * (because IRQ1 is selected), and IRQ1 won't be asserted
 	 * because our controllers don't generate IRQ1.
+	 *

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

From owner-p4-projects@FreeBSD.ORG  Mon Jul 18 15:57:24 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 880EE16A420; Mon, 18 Jul 2005 15:57:23 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 5F24916A41C
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 15:57:23 +0000 (GMT)
	(envelope-from soc-victor@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 13FA643D46
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 15:57:23 +0000 (GMT)
	(envelope-from soc-victor@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6IFvMMv054037
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 15:57:22 GMT
	(envelope-from soc-victor@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6IFvMvo054034
	for perforce@freebsd.org; Mon, 18 Jul 2005 15:57:22 GMT
	(envelope-from soc-victor@freebsd.org)
Date: Mon, 18 Jul 2005 15:57:22 GMT
Message-Id: <200507181557.j6IFvMvo054034@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-victor@freebsd.org using -f
From: soc-victor <soc-victor@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80446 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Jul 2005 15:57:24 -0000

http://perforce.freebsd.org/chv.cgi?CH=80446

Change 80446 by soc-victor@soc-victor_82.76.158.176 on 2005/07/18 15:56:49

	Added the SNMP instrumentation  for hrFSTable table from HOST-RESOURCES-MIB

Affected files ...

.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile#6 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_fs_tbl.c#1 add
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.c#7 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.h#8 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_storage_tbl.c#5 edit

Differences ...

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile#6 (text+ko) ====

@@ -7,7 +7,7 @@
 
 MOD=	hostres
 SRCS=	hostres_snmp.c hostres_scalars.c \
-	hostres_storage_tbl.c 
+	hostres_storage_tbl.c hostres_fs_tbl.c
 WARNS?=	6
 #Not having NDEBUG defined will enable assertions and a lot of output on stderr
 #CFLAGS+=	-DNDEBUG

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.c#7 (text+ko) ====

@@ -87,9 +87,28 @@
 	}
 	
 
-	hrState_g.hr_tick = 0;
-			
+	hrState_g.next_hrStorage_index  = 1;
+	
+	STAILQ_INIT(&hrState_g.storage_name_map);
+	
+	TAILQ_INIT(&hrState_g.hr_storage_tbl);
+
+
+	hrState_g.next_hrFS_index  = 1;
+	
+	STAILQ_INIT(&hrState_g.fs_name_map);
+	
+	TAILQ_INIT(&hrState_g.hr_fs_tbl);
+
+
+	hrState_g.hr_storage_tick = 0;
+	hrState_g.hr_fs_tick = 0;
+
+	hrState_g.hrStorage_tbl_age = 0;		
+	hrState_g.hrFS_tbl_age = 0;		
+	
 	init_hrStorage_tbl_v();
+	init_hrFS_tbl_v();
 		
         HR_DPRINTF((stderr, "[%s] done.\n", __func__));		
 
@@ -132,6 +151,7 @@
 	hrState_g.phys_mem_size = 0;		
 
 	fini_hrStorage_tbl_v();
+	fini_hrFS_tbl_v();
 			
 	if( host_registration_id > 0){
 		or_unregister(host_registration_id);
@@ -151,7 +171,11 @@
 		refresh_hrStorage_tbl_v();
 	}
 
-	/*nothing iteresting here for the time being*/
+	if ( (time(NULL) - hrState_g.hrFS_tbl_age) > HR_FS_TBL_REFRESH ) {
+		HR_DPRINTF((stderr, "%s: hrFSTable needs refresh\n ", __func__));
+		refresh_hrFS_tbl_v();
+	}
+
         HR_DPRINTF((stderr, "[%s] done.\n ", __func__));		
 }
 
@@ -281,14 +305,6 @@
 }
 
 
-int op_hrFSTable(struct snmp_context *ctx __unused, 
-                struct snmp_value *value __unused, 
-		u_int sub __unused, 
-		u_int iidx __unused, 
-		enum snmp_op curr_op __unused)
-{
-	return  (SNMP_ERR_NOSUCHNAME);
-}
 
 
 int op_hrSWRun(struct snmp_context *ctx __unused, 

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.h#8 (text+ko) ====

@@ -62,7 +62,7 @@
  * This structure is used to hold on SNMP table entry
  * for HOST-RESOURCES-MIB's hrStorageTable
  */
-#define HR_STORAGE_FOUND 0x001
+
 struct hrStorageTblEntry {
 	int32_t		index;
 	struct asn_oid	type;
@@ -71,6 +71,7 @@
 	int32_t		size;
 	int32_t		used;	 
 	uint32_t	allocationFailures;	 
+#define HR_STORAGE_FOUND 0x001	
 	uint32_t	flags;	/*not from the SNMP mib table, only to be used internally*/
 	TAILQ_ENTRY(hrStorageTblEntry) link;	
 };
@@ -89,42 +90,106 @@
 	int32_t		hrIndex;		/*used for hrStorageTblEntry::index*/
 	u_char		a_name[255+1];		/*map key, also used for hrStorageTblEntry::descr*/
 	
-	/*next may be NULL if the respective hrStorageTblEntry is (temporally) gone*/
+	/*
+	 * next may be NULL if the respective hrStorageTblEntry 
+	 * is (temporally) gone
+	 */
 	struct hrStorageTblEntry		*entry_p; 
 	STAILQ_ENTRY(storageNameMapEntry) 	link;
 };
 
 STAILQ_HEAD(storage_map_list, storageNameMapEntry);
 
+enum hrFSAccess {
+	FS_READ_WRITE = 1,
+	FS_READ_ONLY  = 2
+};
+
+enum snmpTCTruthValue {
+	SNMP_TRUE = 1,
+	SNMP_FALSE= 2
+};
+
+struct hrFSTblEntry {
+	int32_t		index;
+	u_char		mountPoint[128];
+	u_char		remoteMountPoint[128];
+	struct asn_oid	type;
+	int32_t		access;			/* enum hrFSAccess, see above */
+	int32_t		bootable;		/* enum snmpTCTruthValue, see above */
+	int32_t		storageIndex;		/* hrStorageTblEntry::index */
+	u_char		lastFullBackupDate[11];
+	u_char		lastPartialBackupDate[11];	
+#define HR_FS_FOUND 0x001
+	uint32_t	flags;			/*not from the SNMP mib table, only to be used internally*/	
+	TAILQ_ENTRY(hrFSTblEntry) link;		
+};
+
+TAILQ_HEAD(fs_tbl, hrFSTblEntry);
+
+
+/*
+ * Next structure is used to keep o list of mappings from a specific
+ * name (a_name) to an entry in the hrFSTblEntry;
+ * We are trying to keep the same index for a specific name at least
+ * for the duration of one SNMP agent run
+ */
+struct FSNameMapEntry {
+	int32_t		hrIndex;		/*used for hrFSTblEntry::index*/
+	u_char		a_name[255+1];		/*map key*/
+	
+	/*
+	 * next may be NULL if the respective hrFSTblEntry 
+	 * is (temporally) gone
+	 */
+	struct 
+	hrFSTblEntry	*entry_p; 
+	STAILQ_ENTRY(FSNameMapEntry) 	link;
+};
+
+STAILQ_HEAD(fs_map_list, FSNameMapEntry);
 
 
 struct hostres_state {
-	FILE		*utmp_fp;	 /*file pointer to keep an open instance of utmp*/
-	kvm_t		*kd;		 /*kernel descriptor*/
-	uint32_t	kernel_boot;	 /*boot timestamp in centi-seconds*/
-	char 	 	k_boot_line[128];/*kernel boot line*/
-	int 		max_proc;	 /*maximum number of processes */
-	uint32_t	phys_mem_size;	 /*physical memory size in Kb*/
+	FILE		*utmp_fp;		/*file pointer to keep an open instance of utmp*/
+	kvm_t		*kd;			/*kernel descriptor*/
+	uint32_t	kernel_boot;		/*boot timestamp in centi-seconds*/
+	char 	 	k_boot_line[128];	/*kernel boot line*/
+	int 		max_proc;		/*maximum number of processes */
+	uint32_t	phys_mem_size;		/*physical memory size in Kb*/
 	
-	u_char 		*time_to_set;    /*for setting hrSystemDate*/
-	struct timeval	timeval_to_set;	 /*for setting hrSystemDate*/	
+	u_char 		*time_to_set;		/*for setting hrSystemDate*/
+	struct timeval	timeval_to_set;		/*for setting hrSystemDate*/	
 	
-	/* next items are used for hrStorageTable */
+	/* 
+	 * next items are used for hrStorageTable 
+	 */
 	struct 
-	storage_map_list storage_name_map; /*for consistent table indexing*/
+	storage_map_list storage_name_map;	/*for consistent table indexing*/
 	
 	struct 
-	storage_tbl	hr_storage_tbl;	   /*the head of the list with table's entries */
-	uint64_t 	hr_tick;
-	struct kvm_swap *swap_devs;	   /*for kvm_getswapinfo, malloc'd*/
-	size_t		swap_devs_len;     /*idem */ 
-	struct statfs	*fs_buf;	   /*for getfsstat, malloc'd*/
-	size_t		fs_buf_count;	   /*idem*/	
+	storage_tbl	hr_storage_tbl;		/*the head of the list with table's entries */
+	uint64_t 	hr_storage_tick;	/*last (agent) tick when hrStorageTable was updated */
+	struct kvm_swap *swap_devs;		/*for kvm_getswapinfo, malloc'd*/
+	size_t		swap_devs_len;		/*idem */ 
+	struct statfs	*fs_buf;		/*for getfsstat, malloc'd*/
+	size_t		fs_buf_count;		/*idem*/	
 	struct vmtotal	mem_stats;
-	uint32_t 	next_hrStorage_index; /*next int availabe for indexing the hrStorageTable*/
+	uint32_t 	next_hrStorage_index;	/*next int available for indexing the hrStorageTable*/
 	time_t		hrStorage_tbl_age; 
 	
+	/* 
+	 * next items are used for hrFSTable 
+	 */
+	struct 
+	fs_map_list	fs_name_map;		/*for consistent table indexing*/
+	
+	struct fs_tbl	hr_fs_tbl;		/*the head of the list with hrFSTable's entries */	
+	uint32_t 	next_hrFS_index;	/*next int available for indexing the hrFSTable*/
+	time_t		hrFS_tbl_age; 
+	uint64_t 	hr_fs_tick;		/*last (agent) tick when hrFSTable was updated */
 	
+	
 };
 
 /*
@@ -133,7 +198,14 @@
  */
 extern struct hostres_state hrState_g;
 
+
 /*
+ * Query the underlaying OS for the mounted file systems
+ * anf fill in the respective lists (for hrStorageTable and for hrFSTable)
+ */
+void hrStorage_OS_get_fs_v(void); 
+
+/*
  * Init the things for hrStorageTable.
  */
 void init_hrStorage_tbl_v(void);
@@ -151,5 +223,30 @@
  */
 void refresh_hrStorage_tbl_v(void);
 
+
+
+
+void 
+FS_tbl_process_statfs_entry_v(const struct statfs *fs_p, int32_t storage_idx);
+
+/*
+ * Init the things for hrFSTable.
+ */
+void init_hrFS_tbl_v(void);
+
+/*
+ * Finalization routine for hrFSTable.
+ * It destroys the lists and frees any allocated heap memory
+ */
+void fini_hrFS_tbl_v(void);
+
+#define HR_FS_TBL_REFRESH	7
+/*
+ * Refresh routine for hrFSTable.
+ * Usable for polling the system for any changes.
+ */
+void refresh_hrFS_tbl_v(void);
+
+
 #endif /*__HOSTRES_SNMP_H_INCLUDED__ */
 

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_storage_tbl.c#5 (text+ko) ====

@@ -143,7 +143,7 @@
  */
 
 static
-void hrStorage_get_vm_v(void) {
+void hrStorage_OS_get_vm_v(void) {
 	/*FIX ME*/
 	int mib[2] = { CTL_VM, VM_TOTAL };
 	int len = sizeof(hrState_g.mem_stats);
@@ -195,7 +195,7 @@
 
 
 static
-void hrStorage_get_swap_v(void) {
+void hrStorage_OS_get_swap_v(void) {
         int nswapdev = 0;
 	int len  = sizeof(nswapdev);
 	struct hrStorageTblEntry *entry;
@@ -309,8 +309,8 @@
 	
 }
 
-static
-void hrStorage_get_fs_v(void) {
+
+void hrStorage_OS_get_fs_v(void) {
 	int mounted_fs_count = 0;
 	int i = 0;
 	struct hrStorageTblEntry *entry;
@@ -343,6 +343,7 @@
 	HR_DPRINTF((stderr, "%s: Got %d mounted FS\n ", __func__, mounted_fs_count));
 	for(i = 0; i < mounted_fs_count; i++ ) {
 		
+		
 		memset(&fs_string[0], '\0', sizeof(fs_string) );
 		snprintf(fs_string, 255, "%s, type: %s, dev: %s", hrState_g.fs_buf[i].f_mntonname, 
 			hrState_g.fs_buf[i].f_fstypename,
@@ -368,7 +369,11 @@
 					INT_MAX : 
 					used_blocks_count ); /*may overflow the SNMP type*/
 					
-			entry->allocationFailures = 0;						
+			entry->allocationFailures = 0;	
+			
+			/*take care of hrFSTable*/
+			FS_tbl_process_statfs_entry_v(&hrState_g.fs_buf[i], entry->index);
+					
 			continue;
 		}
 		if ((entry = hrStorageTblEntry_create(fs_string)) != NULL) {
@@ -392,6 +397,10 @@
 					
 			entry->allocationFailures = 0;						
 			
+			/*take care of hrFSTable*/
+			FS_tbl_process_statfs_entry_v(&hrState_g.fs_buf[i], entry->index);
+
+			
 		}
 		
 	}/*end for*/
@@ -408,18 +417,9 @@
 
 	memset( &hrState_g.mem_stats, 0, sizeof(hrState_g.mem_stats) );
 			
-	hrState_g.next_hrStorage_index  = 1;
 	
-	STAILQ_INIT(&hrState_g.storage_name_map);
-	
-	TAILQ_INIT(&hrState_g.hr_storage_tbl);
+	refresh_hrStorage_tbl_v();
 	
-	hrStorage_get_vm_v();
-	
-	hrStorage_get_swap_v();
-	
-	hrStorage_get_fs_v();
-	
 }
 
 void fini_hrStorage_tbl_v(void) {
@@ -450,8 +450,6 @@
              n1 = n2;
      	}
      	STAILQ_INIT(&hrState_g.storage_name_map);
-	
-	
 
 }
 
@@ -460,7 +458,7 @@
 
 	struct hrStorageTblEntry *entry = NULL, *entry_tmp = NULL;
 	
-	if ( this_tick <= hrState_g.hr_tick) {
+	if ( this_tick <= hrState_g.hr_storage_tick) {
 		HR_DPRINTF((stderr, "%s: no refresh needed\n ",__func__));
 		return;
 	}
@@ -469,11 +467,11 @@
 		entry->flags &= ~HR_STORAGE_FOUND;
 	
 	
-	hrStorage_get_vm_v();
+	hrStorage_OS_get_vm_v();
 	
-	hrStorage_get_swap_v();
+	hrStorage_OS_get_swap_v();
 	
-	hrStorage_get_fs_v();
+	hrStorage_OS_get_fs_v();
 	
 	/*
 	 * Purge items items that disappeared
@@ -486,7 +484,7 @@
 		entry = entry_tmp;
 	}
 	
-	hrState_g.hr_tick = this_tick;			
+	hrState_g.hr_storage_tick = this_tick;			
 			
 	hrState_g.hrStorage_tbl_age = time(NULL);	
 	

From owner-p4-projects@FreeBSD.ORG  Mon Jul 18 16:11:47 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 85A9516A421; Mon, 18 Jul 2005 16:11:46 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 5DFD516A41F
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 16:11:46 +0000 (GMT)
	(envelope-from soc-saturnero@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id C3D0643D6A
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 16:11:41 +0000 (GMT)
	(envelope-from soc-saturnero@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6IGBfg3054869
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 16:11:41 GMT
	(envelope-from soc-saturnero@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6IGBfAl054866
	for perforce@freebsd.org; Mon, 18 Jul 2005 16:11:41 GMT
	(envelope-from soc-saturnero@freebsd.org)
Date: Mon, 18 Jul 2005 16:11:41 GMT
Message-Id: <200507181611.j6IGBfAl054866@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-saturnero@freebsd.org using -f
From: soc-saturnero <soc-saturnero@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80449 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Jul 2005 16:11:47 -0000

http://perforce.freebsd.org/chv.cgi?CH=80449

Change 80449 by soc-saturnero@soc-saturnero_sberta on 2005/07/18 16:11:30

	Added installkernel and installworld target.
	Added cleandir target.

Affected files ...

.. //depot/projects/soc2005/freesbie/Makefile#4 edit
.. //depot/projects/soc2005/freesbie/scripts/cleandir.sh#1 add
.. //depot/projects/soc2005/freesbie/scripts/installkernel.sh#1 add
.. //depot/projects/soc2005/freesbie/scripts/installworld.sh#1 add
.. //depot/projects/soc2005/freesbie/scripts/launch.sh#4 edit

Differences ...

==== //depot/projects/soc2005/freesbie/Makefile#4 (text+ko) ====

@@ -5,7 +5,9 @@
 #
 # $FreeBSD$
 
-all: buildworld buildkernel
+all: freesbie
+
+freesbie: buildworld buildkernel installworld installkernel
 
 buildworld: .done_buildworld
 .done_buildworld:
@@ -14,13 +16,29 @@
 	@sh ./scripts/launch.sh buildworld .tmp_buildworld
 	@mv .tmp_buildworld .done_buildworld
 
-buildkernel: .done_buildworld .done_buildkernel
+installworld: .done_installworld
+.done_installworld: .done_buildworld
+	@-rm -f .tmp_installworld
+	@touch .tmp_installworld
+	@sh ./scripts/launch.sh installworld .tmp_installworld
+	@mv .tmp_installworld .done_installworld
+
+buildkernel: .done_buildkernel
 .done_buildkernel:
 	@-rm -f .tmp_buildkernel
 	@touch .tmp_buildkernel
 	@sh ./scripts/launch.sh buildkernel .tmp_buildkernel
 	@mv .tmp_buildkernel .done_buildkernel
 
+installkernel: .done_installkernel
+.done_installkernel: .done_buildkernel .done_installworld
+	@-rm -f .tmp_installkernel
+	@touch .tmp_installkernel
+	@sh ./scripts/launch.sh installkernel .tmp_installkernel
+	@mv .tmp_installkernel .done_installkernel
 
 clean:
 	@-rm -f .tmp* .done* > /dev/null 2>&1
+
+cleandir: clean
+	@sh ./scripts/launch.sh cleandir
==== //depot/projects/soc2005/freesbie/scripts/launch.sh#4 (text+ko) ====

@@ -25,7 +25,7 @@
 
 TARGET=$1;
 shift;
-if [ -n "$1" ]; then
+if [ -n "${1:-}" ]; then
     LOGFILE=${LOCALDIR}/$1
 else
     LOGFILE=$(mktemp -q /tmp/freesbie.XXXXXX)

From owner-p4-projects@FreeBSD.ORG  Mon Jul 18 16:36:12 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 1360916A421; Mon, 18 Jul 2005 16:36:12 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 E156116A41F
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 16:36:11 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id B203A43D45
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 16:36:11 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6IGaBpv056273
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 16:36:11 GMT
	(envelope-from sam@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6IGaBiW056270
	for perforce@freebsd.org; Mon, 18 Jul 2005 16:36:11 GMT
	(envelope-from sam@freebsd.org)
Date: Mon, 18 Jul 2005 16:36:11 GMT
Message-Id: <200507181636.j6IGaBiW056270@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	sam@freebsd.org using -f
From: Sam Leffler <sam@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80451 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Jul 2005 16:36:12 -0000

http://perforce.freebsd.org/chv.cgi?CH=80451

Change 80451 by sam@sam_ebb on 2005/07/18 16:36:10

	add recent stuff

Affected files ...

.. //depot/projects/wifi/tools/tools/ath/80211debug.c#6 edit

Differences ...

==== //depot/projects/wifi/tools/tools/ath/80211debug.c#6 (text+ko) ====

@@ -73,6 +73,9 @@
 #define	IEEE80211_MSG_ACL	0x00000800	/* ACL handling */
 #define	IEEE80211_MSG_WME	0x00000400	/* WME protocol */
 #define	IEEE80211_MSG_SUPERG	0x00000200	/* Atheros SuperG protocol */
+#define	IEEE80211_MSG_DOTH	0x00000100	/* 802.11h support */
+#define	IEEE80211_MSG_INACT	0x00000080	/* inactivity handling */
+#define	IEEE80211_MSG_ROAM	0x00000040	/* sta-mode roaming */
 
 static struct {
 	const char	*name;
@@ -100,6 +103,9 @@
 	{ "acl",	IEEE80211_MSG_ACL },
 	{ "wme",	IEEE80211_MSG_WME },
 	{ "superg",	IEEE80211_MSG_SUPERG },
+	{ "doth",	IEEE80211_MSG_DOTH },
+	{ "inact",	IEEE80211_MSG_INACT },
+	{ "roam",	IEEE80211_MSG_ROAM },
 };
 
 static u_int

From owner-p4-projects@FreeBSD.ORG  Mon Jul 18 16:38:15 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 3781416A420; Mon, 18 Jul 2005 16:38:15 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 104B516A41C
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 16:38:15 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id C806D43D45
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 16:38:14 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6IGcESI056361
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 16:38:14 GMT
	(envelope-from sam@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6IGcEqs056354
	for perforce@freebsd.org; Mon, 18 Jul 2005 16:38:14 GMT
	(envelope-from sam@freebsd.org)
Date: Mon, 18 Jul 2005 16:38:14 GMT
Message-Id: <200507181638.j6IGcEqs056354@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	sam@freebsd.org using -f
From: Sam Leffler <sam@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80452 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Jul 2005 16:38:16 -0000

http://perforce.freebsd.org/chv.cgi?CH=80452

Change 80452 by sam@sam_ebb on 2005/07/18 16:37:22

	add bgscan+roaming controls

Affected files ...

.. //depot/projects/wifi/sbin/ifconfig/ifieee80211.c#41 edit

Differences ...

==== //depot/projects/wifi/sbin/ifconfig/ifieee80211.c#41 (text+ko) ====

@@ -636,6 +636,66 @@
 	set80211(s, IEEE80211_IOC_PUREG, d, 0, NULL);
 }
 
+static void
+set80211bgscan(const char *val, int d, int s, const struct afswtch *rafp)
+{
+	set80211(s, IEEE80211_IOC_BGSCAN, d, 0, NULL);
+}
+
+static
+DECL_CMD_FUNC(set80211bgscanidle, val, d)
+{
+	set80211(s, IEEE80211_IOC_BGSCAN_IDLE, atoi(val), 0, NULL);
+}
+
+static
+DECL_CMD_FUNC(set80211bgscanintvl, val, d)
+{
+	set80211(s, IEEE80211_IOC_BGSCAN_INTERVAL, atoi(val), 0, NULL);
+}
+
+static
+DECL_CMD_FUNC(set80211scanvalid, val, d)
+{
+	set80211(s, IEEE80211_IOC_SCANVALID, atoi(val), 0, NULL);
+}
+
+static
+DECL_CMD_FUNC(set80211roamrssi11a, val, d)
+{
+	set80211(s, IEEE80211_IOC_ROAM_RSSI_11A, atoi(val), 0, NULL);
+}
+
+static
+DECL_CMD_FUNC(set80211roamrssi11b, val, d)
+{
+	set80211(s, IEEE80211_IOC_ROAM_RSSI_11B, atoi(val), 0, NULL);
+}
+
+static
+DECL_CMD_FUNC(set80211roamrssi11g, val, d)
+{
+	set80211(s, IEEE80211_IOC_ROAM_RSSI_11G, atoi(val), 0, NULL);
+}
+
+static
+DECL_CMD_FUNC(set80211roamrate11a, val, d)
+{
+	set80211(s, IEEE80211_IOC_ROAM_RATE_11A, 2*atoi(val), 0, NULL);
+}
+
+static
+DECL_CMD_FUNC(set80211roamrate11b, val, d)
+{
+	set80211(s, IEEE80211_IOC_ROAM_RATE_11B, 2*atoi(val), 0, NULL);
+}
+
+static
+DECL_CMD_FUNC(set80211roamrate11g, val, d)
+{
+	set80211(s, IEEE80211_IOC_ROAM_RATE_11G, 2*atoi(val), 0, NULL);
+}
+
 static int
 getmaxrate(uint8_t rates[15], uint8_t nrates)
 {
@@ -961,12 +1021,11 @@
 	if (IEEE80211_IS_CHAN_A(c))
 		strlcat(buf, " 11a", sizeof(buf));
 	/* XXX 11g schizophrenia */
-	if (IEEE80211_IS_CHAN_G(c) ||
-	    IEEE80211_IS_CHAN_PUREG(c))
+	if (IEEE80211_IS_CHAN_ANYG(c))
 		strlcat(buf, " 11g", sizeof(buf));
 	else if (IEEE80211_IS_CHAN_B(c))
 		strlcat(buf, " 11b", sizeof(buf));
-	if (IEEE80211_IS_CHAN_T(c))
+	if (IEEE80211_IS_CHAN_TURBO(c))
 		strlcat(buf, " Turbo", sizeof(buf));
 	printf("Channel %3u : %u%c Mhz%-14.14s",
 		ieee80211_mhz2ieee(c->ic_freq), c->ic_freq,
@@ -1028,7 +1087,7 @@
 #define	IEEE80211_C_BITS \
 "\020\1WEP\2TKIP\3AES\4AES_CCM\6CKIP\11IBSS\12PMGT\13HOSTAP\14AHDEMO" \
 "\15SWRETRY\16TXPMGT\17SHSLOT\20SHPREAMBLE\21MONITOR\22TKIPMIC\30WPA1" \
-"\31WPA2\32BURST\33WME"
+"\31WPA2\32BURST\33WME\34WDS\36BGSCAN"
 
 static void
 list_capabilities(int s)
@@ -1306,7 +1365,7 @@
 {
 	static const uint8_t zerobssid[IEEE80211_ADDR_LEN];
 	enum ieee80211_opmode opmode = get80211opmode(s);
-	int i, num, wpa, wme;
+	int i, num, wpa, wme, bgscan;
 	struct ieee80211req ireq;
 	u_int8_t data[32];
 	const struct ieee80211_channel *c;
@@ -1316,6 +1375,7 @@
 	ireq.i_data = &data;
 
 	wpa = 0;		/* unknown/not set */
+	bgscan = 0;		/* unknown/not set */
 
 	ireq.i_type = IEEE80211_IOC_SSID;
 	ireq.i_val = -1;
@@ -1521,7 +1581,54 @@
 			LINE_CHECK("%crtsthreshold %d", spacer, ireq.i_val);
 	}
 
-	if (IEEE80211_IS_CHAN_G(c) || IEEE80211_IS_CHAN_PUREG(c) || verbose) {
+	ireq.i_type = IEEE80211_IOC_BGSCAN;
+	if (ioctl(s, SIOCG80211, &ireq) != -1) {
+		bgscan = ireq.i_val;
+		if (ireq.i_val)
+			LINE_CHECK("%cbgscan", spacer);
+		else if (verbose)
+			LINE_CHECK("%c-bgscan", spacer);
+	}
+	if (bgscan || verbose) {
+		ireq.i_type = IEEE80211_IOC_BGSCAN_INTERVAL;
+		if (ioctl(s, SIOCG80211, &ireq) != -1)
+			LINE_CHECK("%cbgscanintvl %u", spacer, ireq.i_val);
+		ireq.i_type = IEEE80211_IOC_BGSCAN_IDLE;
+		if (ioctl(s, SIOCG80211, &ireq) != -1)
+			LINE_CHECK("%cbgscanidle %u", spacer, ireq.i_val);
+		if (IEEE80211_IS_CHAN_A(c) || verbose) {
+			ireq.i_type = IEEE80211_IOC_ROAM_RSSI_11A;
+			if (ioctl(s, SIOCG80211, &ireq) != -1)
+				LINE_CHECK("%croam:rssi11a %d",
+					spacer, ireq.i_val);
+			ireq.i_type = IEEE80211_IOC_ROAM_RATE_11A;
+			if (ioctl(s, SIOCG80211, &ireq) != -1)
+				LINE_CHECK("%croam:rate11a %u",
+					spacer, ireq.i_val/2);
+		}
+		if (IEEE80211_IS_CHAN_B(c) || verbose) {
+			ireq.i_type = IEEE80211_IOC_ROAM_RSSI_11B;
+			if (ioctl(s, SIOCG80211, &ireq) != -1)
+				LINE_CHECK("%croam:rssi11b %d",
+					spacer, ireq.i_val);
+			ireq.i_type = IEEE80211_IOC_ROAM_RATE_11B;
+			if (ioctl(s, SIOCG80211, &ireq) != -1)
+				LINE_CHECK("%croam:rate11b %u",
+					spacer, ireq.i_val/2);
+		}
+		if (IEEE80211_IS_CHAN_ANYG(c) || verbose) {
+			ireq.i_type = IEEE80211_IOC_ROAM_RSSI_11G;
+			if (ioctl(s, SIOCG80211, &ireq) != -1)
+				LINE_CHECK("%croam:rssi11g %d",
+					spacer, ireq.i_val);
+			ireq.i_type = IEEE80211_IOC_ROAM_RATE_11G;
+			if (ioctl(s, SIOCG80211, &ireq) != -1)
+				LINE_CHECK("%croam:rate11g %u",
+					spacer, ireq.i_val/2);
+		}
+	}
+
+	if (IEEE80211_IS_CHAN_ANYG(c) || verbose) {
 		ireq.i_type = IEEE80211_IOC_PUREG;
 		if (ioctl(s, SIOCG80211, &ireq) != -1) {
 			if (ireq.i_val)
@@ -1836,6 +1943,17 @@
 	DEF_CMD("-ff",		0,	set80211fastframes),
 	DEF_CMD("dturbo",	1,	set80211dturbo),
 	DEF_CMD("-dturbo",	0,	set80211dturbo),
+	DEF_CMD("bgscan",	1,	set80211bgscan),
+	DEF_CMD("-bgscan",	0,	set80211bgscan),
+	DEF_CMD_ARG("bgscanidle",	set80211bgscanidle),
+	DEF_CMD_ARG("bgscanintvl",	set80211bgscanintvl),
+	DEF_CMD_ARG("scanvalid",	set80211scanvalid),
+	DEF_CMD_ARG("roam:rssi11a",	set80211roamrssi11a),
+	DEF_CMD_ARG("roam:rssi11b",	set80211roamrssi11b),
+	DEF_CMD_ARG("roam:rssi11g",	set80211roamrssi11g),
+	DEF_CMD_ARG("roam:rate11a",	set80211roamrate11a),
+	DEF_CMD_ARG("roam:rate11b",	set80211roamrate11b),
+	DEF_CMD_ARG("roam:rate11g",	set80211roamrate11g),
 };
 static struct afswtch af_ieee80211 = {
 	.af_name	= "af_ieee80211",

From owner-p4-projects@FreeBSD.ORG  Mon Jul 18 16:56:39 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id CB96A16A420; Mon, 18 Jul 2005 16:56:38 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 9A3FC16A41C
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 16:56:38 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 00CEB43D4C
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 16:56:38 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6IGub07064242
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 16:56:37 GMT
	(envelope-from sam@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6IGubhj064239
	for perforce@freebsd.org; Mon, 18 Jul 2005 16:56:37 GMT
	(envelope-from sam@freebsd.org)
Date: Mon, 18 Jul 2005 16:56:37 GMT
Message-Id: <200507181656.j6IGubhj064239@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	sam@freebsd.org using -f
From: Sam Leffler <sam@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80453 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Jul 2005 16:56:39 -0000

http://perforce.freebsd.org/chv.cgi?CH=80453

Change 80453 by sam@sam_ebb on 2005/07/18 16:56:28

	Checkpoint backmerge of new scanning+roaming+power save support.
	While here nuke wiconfig compatbility ioctls and update some api's
	to conform to vap work.  Still more things to cleanup/fix but
	bg scan+roam works.

Affected files ...

.. //depot/projects/wifi/sys/net80211/_ieee80211.h#7 edit
.. //depot/projects/wifi/sys/net80211/ieee80211.c#24 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_freebsd.h#17 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_input.c#53 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#40 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_ioctl.h#25 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_node.c#54 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_node.h#25 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_output.c#44 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_power.c#1 add
.. //depot/projects/wifi/sys/net80211/ieee80211_power.h#1 add
.. //depot/projects/wifi/sys/net80211/ieee80211_proto.c#28 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_proto.h#18 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_scan.c#1 add
.. //depot/projects/wifi/sys/net80211/ieee80211_scan.h#1 add
.. //depot/projects/wifi/sys/net80211/ieee80211_scan_ap.c#1 add
.. //depot/projects/wifi/sys/net80211/ieee80211_scan_sta.c#1 add
.. //depot/projects/wifi/sys/net80211/ieee80211_var.h#28 edit

Differences ...

==== //depot/projects/wifi/sys/net80211/_ieee80211.h#7 (text+ko) ====

@@ -216,4 +216,14 @@
 	u_int8_t		rs_rates[IEEE80211_RATE_MAXSIZE];
 };
 
+struct ieee80211_roam {
+	int8_t			rssi11a;	/* rssi thresh for 11a bss */
+	int8_t			rssi11b;	/* for 11g sta in 11b bss */
+	int8_t			rssi11bOnly;	/* for 11b sta */
+	u_int8_t		pad1;
+	u_int8_t		rate11a;	/* rate thresh for 11a bss */
+	u_int8_t		rate11b;	/* for 11g sta in 11b bss */
+	u_int8_t		rate11bOnly;	/* for 11b sta */
+	u_int8_t		pad2;
+};
 #endif /* _NET80211__IEEE80211_H_ */

==== //depot/projects/wifi/sys/net80211/ieee80211.c#24 (text+ko) ====

@@ -129,8 +129,6 @@
 	bpfattach2(ifp, DLT_IEEE802_11,
 	    sizeof(struct ieee80211_frame_addr4), &ic->ic_rawbpf);
 
-	ieee80211_crypto_attach(ic);
-
 	/*
 	 * Fill in 802.11 available channel set, mark
 	 * all available channels as active, and pick
@@ -187,12 +185,16 @@
 		ic->ic_lintval = IEEE80211_BINTVAL_DEFAULT;
 	ic->ic_bmisstimeout = 7*ic->ic_lintval;	/* default 7 beacons */
 	ic->ic_dtim_period = IEEE80211_DTIM_DEFAULT;
+	IEEE80211_LOCK_INIT(ic, "ieee80211com");
 	IEEE80211_BEACON_LOCK_INIT(ic, "beacon");
 
 	ic->ic_txpowlimit = IEEE80211_TXPOWER_MAX;
 
+	ieee80211_crypto_attach(ic);
 	ieee80211_node_attach(ic);
+	ieee80211_power_attach(ic);
 	ieee80211_proto_attach(ic);
+	ieee80211_scan_attach(ic);
 
 	ieee80211_add_vap(ic);
 
@@ -214,11 +216,14 @@
 	ieee80211_remove_vap(ic);
 
 	ieee80211_sysctl_detach(ic);
+	ieee80211_scan_detach(ic);
 	ieee80211_proto_detach(ic);
 	ieee80211_crypto_detach(ic);
+	ieee80211_power_detach(ic);
 	ieee80211_node_detach(ic);
 	ifmedia_removeall(&ic->ic_media);
 
+	IEEE80211_LOCK_DESTROY(ic);
 	IEEE80211_BEACON_LOCK_DESTROY(ic);
 
 	bpfdetach(ifp);
@@ -339,6 +344,7 @@
 	 * (i.e. driver) work such as overriding methods.
 	 */
 	ieee80211_node_lateattach(ic);
+	ieee80211_power_lateattach(ic);
 
 	/*
 	 * Fill in media characteristics.
@@ -483,19 +489,6 @@
 	}
 }
 
-static int
-findrate(struct ieee80211com *ic, enum ieee80211_phymode mode, int rate)
-{
-#define	IEEERATE(_ic,_m,_i) \
-	((_ic)->ic_sup_rates[_m].rs_rates[_i] & IEEE80211_RATE_VAL)
-	int i, nrates = ic->ic_sup_rates[mode].rs_nrates;
-	for (i = 0; i < nrates; i++)
-		if (IEEERATE(ic, mode, i) == rate)
-			return i;
-	return -1;
-#undef IEEERATE
-}
-
 /*
  * Find an instance by it's mac address.
  */
@@ -524,7 +517,51 @@
 	return NULL;
 }
 
+static int
+findrate(struct ieee80211com *ic, enum ieee80211_phymode mode, int rate)
+{
+#define	IEEERATE(_ic,_m,_i) \
+	((_ic)->ic_sup_rates[_m].rs_rates[_i] & IEEE80211_RATE_VAL)
+	int i, nrates = ic->ic_sup_rates[mode].rs_nrates;
+	for (i = 0; i < nrates; i++)
+		if (IEEERATE(ic, mode, i) == rate)
+			return i;
+	return -1;
+#undef IEEERATE
+}
+
 /*
+ * Convert a media specification to a rate index and possibly a mode
+ * (if the rate is fixed and the mode is specified as ``auto'' then
+ * we need to lock down the mode so the index is meanginful).
+ */
+static int
+checkrate(struct ieee80211com *ic, enum ieee80211_phymode mode, int rate)
+{
+
+	/*
+	 * Check the rate table for the specified/current phy.
+	 */
+	if (mode == IEEE80211_MODE_AUTO) {
+		int i;
+		/*
+		 * In autoselect mode search for the rate.
+		 */
+		for (i = IEEE80211_MODE_11A; i < IEEE80211_MODE_MAX; i++) {
+			if ((ic->ic_modecaps & (1<<i)) &&
+			    findrate(ic, i, rate) != -1)
+				return 1;
+		}
+		return 0;
+	} else {
+		/*
+		 * Mode is fixed, check for rate.
+		 */
+		return (findrate(ic, mode, rate) != -1);
+	}
+}
+
+/*
  * Handle a media change request.
  */
 int
@@ -534,7 +571,7 @@
 	struct ifmedia_entry *ime;
 	enum ieee80211_opmode newopmode;
 	enum ieee80211_phymode newphymode;
-	int i, j, newrate, error = 0;
+	int j, newrate, error = 0;
 
 	ic = ieee80211_find_instance(ifp);
 	if (!ic) {
@@ -579,40 +616,16 @@
 	/*
 	 * Next, the fixed/variable rate.
 	 */
-	i = -1;
 	newrate = ic->ic_fixed_rate;
 	if (IFM_SUBTYPE(ime->ifm_media) != IFM_AUTO) {
 		/*
 		 * Convert media subtype to rate.
 		 */
 		newrate = ieee80211_media2rate(ime->ifm_media);
-		if (newrate == 0)
+		if (newrate == 0 || !checkrate(ic, newphymode, newrate))
 			return EINVAL;
-		/*
-		 * Check the rate table for the specified/current phy.
-		 */
-		if (newphymode == IEEE80211_MODE_AUTO) {
-			/*
-			 * In autoselect mode search for the rate.
-			 */
-			for (j = IEEE80211_MODE_11A;
-			     j < IEEE80211_MODE_MAX; j++) {
-				if ((ic->ic_modecaps & (1<<j)) == 0)
-					continue;
-				i = findrate(ic, j, newrate);
-				if (i != -1) {
-					/* lock mode too */
-					newphymode = j;
-					break;
-				}
-			}
-		} else {
-			i = findrate(ic, newphymode, newrate);
-		}
-		if (i == -1)			/* mode/rate mismatch */
-			return EINVAL;
-	}
-	/* NB: defer rate setting to later */
+	} else
+		newrate = IEEE80211_FIXED_RATE_NONE;
 
 	/*
 	 * Deduce new operating mode but don't install it just yet.
@@ -647,10 +660,8 @@
 	/*
 	 * Handle phy mode change.
 	 */
-	if (ic->ic_curmode != newphymode) {		/* change phy mode */
-		error = ieee80211_setmode(ic, newphymode);
-		if (error != 0)
-			return error;
+	if (ic->ic_des_mode != newphymode) {		/* change phy mode */
+		ic->ic_des_mode = newphymode;
 		error = ENETRESET;
 	}
 
@@ -787,26 +798,12 @@
 void
 ieee80211_watchdog(struct ieee80211com *ic)
 {
-	struct ieee80211_node_table *nt;
-	int need_inact_timer = 0;
 
 	if (ic->ic_state != IEEE80211_S_INIT) {
 		if (ic->ic_mgt_timer && --ic->ic_mgt_timer == 0)
 			ieee80211_new_state(ic, IEEE80211_S_SCAN, 0);
-		nt = &ic->ic_scan;
-		if (nt->nt_inact_timer) {
-			if (--nt->nt_inact_timer == 0)
-				nt->nt_timeout(nt);
-			need_inact_timer += nt->nt_inact_timer;
-		}
-		nt = &ic->ic_sta;
-		if (nt->nt_inact_timer) {
-			if (--nt->nt_inact_timer == 0)
-				nt->nt_timeout(nt);
-			need_inact_timer += nt->nt_inact_timer;
-		}
 	}
-	if (ic->ic_mgt_timer != 0 || need_inact_timer)
+	if (ic->ic_mgt_timer != 0)
 		ic->ic_ifp->if_timer = 1;
 }
 

==== //depot/projects/wifi/sys/net80211/ieee80211_freebsd.h#17 (text+ko) ====

@@ -30,6 +30,18 @@
 #define _NET80211_IEEE80211_FREEBSD_H_
 
 /*
+ * Common state locking definitions.
+ */
+typedef struct mtx ieee80211_com_lock_t;
+#define	IEEE80211_LOCK_INIT(_ic, _name) \
+	mtx_init(&(_ic)->ic_comlock, _name, "802.11 com lock", MTX_DEF)
+#define	IEEE80211_LOCK_DESTROY(_ic) mtx_destroy(&(_ic)->ic_comlock)
+#define	IEEE80211_LOCK(_ic)	   mtx_lock(&(_ic)->ic_comlock)
+#define	IEEE80211_UNLOCK(_ic)	   mtx_unlock(&(_ic)->ic_comlock)
+#define	IEEE80211_LOCK_ASSERT(_ic) \
+	mtx_assert(&(_ic)->ic_comlock, MA_OWNED)
+
+/*
  * Beacon locking definitions.
  */
 typedef struct mtx ieee80211_beacon_lock_t;
@@ -58,7 +70,7 @@
  */
 typedef struct mtx ieee80211_scan_lock_t;
 #define	IEEE80211_SCAN_LOCK_INIT(_nt, _name) \
-	mtx_init(&(_nt)->nt_scanlock, _name, "802.11 scangen", MTX_DEF)
+	mtx_init(&(_nt)->nt_scanlock, _name, "802.11 node scangen", MTX_DEF)
 #define	IEEE80211_SCAN_LOCK_DESTROY(_nt)	mtx_destroy(&(_nt)->nt_scanlock)
 #define	IEEE80211_SCAN_LOCK(_nt)		mtx_lock(&(_nt)->nt_scanlock)
 #define	IEEE80211_SCAN_UNLOCK(_nt)		mtx_unlock(&(_nt)->nt_scanlock)
@@ -145,6 +157,12 @@
 int	ieee80211_node_dectestref(struct ieee80211_node *ni);
 #define	ieee80211_node_refcnt(_ni)	(_ni)->ni_refcnt
 
+#define	msecs_to_ticks(ms)	((ms)*1000/hz)
+#define time_after(a,b) 	((long)(b) - (long)(a) < 0)
+#define time_before(a,b)	time_after(b,a)
+#define time_after_eq(a,b)	((long)(a) - (long)(b) >= 0)
+#define time_before_eq(a,b)	time_after_eq(b,a)
+
 struct mbuf *ieee80211_getmgtframe(u_int8_t **frm, u_int pktlen);
 #define	M_LINK0		M_PROTO1		/* WEP requested */
 #define	M_PWR_SAV	M_PROTO4		/* bypass PS handling */

==== //depot/projects/wifi/sys/net80211/ieee80211_input.c#53 (text+ko) ====

@@ -116,7 +116,6 @@
 	struct ieee80211_node *, struct mbuf *);
 static struct mbuf *ieee80211_decap_fastframe(struct ieee80211com *,
 	struct ieee80211_node *, struct mbuf *);
-static void ieee80211_node_pwrsave(struct ieee80211_node *, int enable);
 static void ieee80211_recv_pspoll(struct ieee80211com *,
 	struct ieee80211_node *, struct mbuf *);
 
@@ -938,10 +937,11 @@
 /*
  * Install received rate set information in the node's state block.
  */
-static int
-ieee80211_setup_rates(struct ieee80211com *ic, struct ieee80211_node *ni,
-	u_int8_t *rates, u_int8_t *xrates, int flags)
+int
+ieee80211_setup_rates(struct ieee80211_node *ni,
+	const u_int8_t *rates, const u_int8_t *xrates, int flags)
 {
+	struct ieee80211com *ic = ni->ni_ic;
 	struct ieee80211_rateset *rs = &ni->ni_rates;
 
 	memset(rs, 0, sizeof(*rs));
@@ -964,7 +964,7 @@
 		memcpy(rs->rs_rates + rs->rs_nrates, xrates+2, nxrates);
 		rs->rs_nrates += nxrates;
 	}
-	return ieee80211_fix_rate(ic, ni, flags);
+	return ieee80211_fix_rate(ni, flags);
 }
 
 static void
@@ -1027,7 +1027,7 @@
 		 * authorized at this point so traffic can flow.
 		 */
 		if (ni->ni_authmode != IEEE80211_AUTH_8021X)
-			ieee80211_node_authorize(ic, ni);
+			ieee80211_node_authorize(ni);
 		break;
 
 	case IEEE80211_M_STA:
@@ -1251,7 +1251,7 @@
 			    IEEE80211_MSG_DEBUG | IEEE80211_MSG_AUTH,
 			    "[%s] station authenticated (shared key)\n",
 			    ether_sprintf(ni->ni_macaddr));
-			ieee80211_node_authorize(ic, ni);
+			ieee80211_node_authorize(ni);
 			break;
 		default:
 			IEEE80211_DISCARD_MAC(ic, IEEE80211_MSG_AUTH,
@@ -1832,7 +1832,7 @@
 		return 0;			/* NB: no change */
 }
 
-static void
+void
 ieee80211_saveie(u_int8_t **iep, const u_int8_t *ie)
 {
 	u_int ielen = ie[1]+2;
@@ -1849,37 +1849,33 @@
 	/* XXX note failure */
 }
 
-#ifdef IEEE80211_DEBUG
-static void
-dump_probe_beacon(u_int8_t subtype, int isnew,
-	const u_int8_t mac[IEEE80211_ADDR_LEN],
-	u_int8_t chan, u_int8_t bchan, u_int16_t capinfo, u_int16_t bintval,
-	u_int8_t erp, u_int8_t *ssid, u_int8_t *country)
+void
+ieee80211_saveath(struct ieee80211_node *ni, u_int8_t *ie)
 {
-	printf("[%s] %s%s on chan %u (bss chan %u) ",
-	    ether_sprintf(mac), isnew ? "new " : "",
-	    ieee80211_mgt_subtype_name[subtype >> IEEE80211_FC0_SUBTYPE_SHIFT],
-	    chan, bchan);
-	ieee80211_print_essid(ssid + 2, ssid[1]);
-	printf("\n");
+#if 0
+	const struct ieee80211_ath_ie *ath =
+		(const struct ieee80211_ath_ie *) ie;
 
-	if (isnew) {
-		printf("[%s] caps 0x%x bintval %u erp 0x%x", 
-			ether_sprintf(mac), capinfo, bintval, erp);
-		if (country) {
-#ifdef __FreeBSD__
-			printf(" country info %*D", country[1], country+2, " ");
-#else
-			int i;
-			printf(" country info");
-			for (i = 0; i < country[1]; i++)
-				printf(" %02x", country[i+2]);
+	ni->ni_ath_flags = ath->ath_capability;
 #endif
-		}
-		printf("\n");
-	}
+	ieee80211_saveie(&ni->ni_ath_ie, ie);
+}
+
+static __inline int
+contbgscan(struct ieee80211com *ic)
+{
+	return ((ic->ic_flags_ext & IEEE80211_FEXT_BGSCAN) &&
+	    time_after(ticks, ic->ic_lastdata + ic->ic_bgscanidle));
+}
+
+static __inline int
+startbgscan(struct ieee80211com *ic)
+{
+	return ((ic->ic_flags & IEEE80211_F_BGSCAN) &&
+	    !IEEE80211_IS_CHAN_DTURBO(ic->ic_curchan) &&
+	    time_after(ticks, ic->ic_lastscan + ic->ic_bgscanintvl) &&
+	    time_after(ticks, ic->ic_lastdata + ic->ic_bgscanidle));
 }
-#endif /* IEEE80211_DEBUG */
 
 void
 ieee80211_recv_mgmt(struct ieee80211com *ic, struct mbuf *m0,
@@ -1900,10 +1896,7 @@
 	switch (subtype) {
 	case IEEE80211_FC0_SUBTYPE_PROBE_RESP:
 	case IEEE80211_FC0_SUBTYPE_BEACON: {
-		u_int8_t *tstamp, *country, *tim;
-		u_int8_t chan, bchan, fhindex, erp;
-		u_int16_t capinfo, bintval, timoff;
-		u_int16_t fhdwell;
+		struct ieee80211_scanparams scan;
 
 		/*
 		 * We process beacon/probe response frames:
@@ -1935,32 +1928,29 @@
 		 *	[tlv] Atheros capabilities
 		 */
 		IEEE80211_VERIFY_LENGTH(efrm - frm, 12);
-		tstamp  = frm;				frm += 8;
-		bintval = le16toh(*(u_int16_t *)frm);	frm += 2;
-		capinfo = le16toh(*(u_int16_t *)frm);	frm += 2;
-		ssid = rates = xrates = country = wpa = wme = tim = ath = NULL;
-		bchan = ieee80211_chan2ieee(ic, ic->ic_curchan);
-		chan = bchan;
-		fhdwell = 0;
-		fhindex = 0;
-		erp = 0;
-		timoff = 0;
+		memset(&scan, 0, sizeof(scan));
+		scan.tstamp  = frm;				frm += 8;
+		scan.bintval = le16toh(*(u_int16_t *)frm);	frm += 2;
+		scan.capinfo = le16toh(*(u_int16_t *)frm);	frm += 2;
+		scan.bchan = ieee80211_chan2ieee(ic, ic->ic_curchan);
+		scan.chan = scan.bchan;
+
 		while (frm < efrm) {
 			switch (*frm) {
 			case IEEE80211_ELEMID_SSID:
-				ssid = frm;
+				scan.ssid = frm;
 				break;
 			case IEEE80211_ELEMID_RATES:
-				rates = frm;
+				scan.rates = frm;
 				break;
 			case IEEE80211_ELEMID_COUNTRY:
-				country = frm;
+				scan.country = frm;
 				break;
 			case IEEE80211_ELEMID_FHPARMS:
 				if (ic->ic_phytype == IEEE80211_T_FH) {
-					fhdwell = LE_READ_2(&frm[2]);
-					chan = IEEE80211_FH_CHAN(frm[4], frm[5]);
-					fhindex = frm[6];
+					scan.fhdwell = LE_READ_2(&frm[2]);
+					scan.chan = IEEE80211_FH_CHAN(frm[4], frm[5]);
+					scan.fhindex = frm[6];
 				}
 				break;
 			case IEEE80211_ELEMID_DSPARMS:
@@ -1969,17 +1959,17 @@
 				 * is problematic for multi-mode devices.
 				 */
 				if (ic->ic_phytype != IEEE80211_T_FH)
-					chan = frm[2];
+					scan.chan = frm[2];
 				break;
 			case IEEE80211_ELEMID_TIM:
 				/* XXX ATIM? */
-				tim = frm;
-				timoff = frm - mtod(m0, u_int8_t *);
+				scan.tim = frm;
+				scan.timoff = frm - mtod(m0, u_int8_t *);
 				break;
 			case IEEE80211_ELEMID_IBSSPARMS:
 				break;
 			case IEEE80211_ELEMID_XRATES:
-				xrates = frm;
+				scan.xrates = frm;
 				break;
 			case IEEE80211_ELEMID_ERP:
 				if (frm[1] != 1) {
@@ -1989,18 +1979,18 @@
 					ic->ic_stats.is_rx_elem_toobig++;
 					break;
 				}
-				erp = frm[2];
+				scan.erp = frm[2];
 				break;
 			case IEEE80211_ELEMID_RSN:
-				wpa = frm;
+				scan.wpa = frm;
 				break;
 			case IEEE80211_ELEMID_VENDOR:
 				if (iswpaoui(frm))
-					wpa = frm;
+					scan.wpa = frm;
 				else if (iswmeparam(frm) || iswmeinfo(frm))
-					wme = frm;
+					scan.wme = frm;
 				else if (isatherosoui(frm))
-					ath = frm;
+					scan.ath = frm;
 				break;
 			default:
 				IEEE80211_DISCARD_IE(ic, IEEE80211_MSG_ELEMID,
@@ -2011,10 +2001,10 @@
 			}
 			frm += frm[1] + 2;
 		}
-		IEEE80211_VERIFY_ELEMENT(rates, IEEE80211_RATE_MAXSIZE);
-		IEEE80211_VERIFY_ELEMENT(ssid, IEEE80211_NWID_LEN);
+		IEEE80211_VERIFY_ELEMENT(scan.rates, IEEE80211_RATE_MAXSIZE);
+		IEEE80211_VERIFY_ELEMENT(scan.ssid, IEEE80211_NWID_LEN);
 #if IEEE80211_CHAN_MAX < 255
-		if (chan > IEEE80211_CHAN_MAX) {
+		if (scan.chan > IEEE80211_CHAN_MAX) {
 			IEEE80211_DISCARD(ic, IEEE80211_MSG_ELEMID,
 			    wh, ieee80211_mgt_subtype_name[subtype >>
 				IEEE80211_FC0_SUBTYPE_SHIFT],
@@ -2023,7 +2013,8 @@
 			return;
 		}
 #endif
-		if (chan != bchan && ic->ic_phytype != IEEE80211_T_FH) {
+		if (scan.chan != scan.bchan &&
+		    ic->ic_phytype != IEEE80211_T_FH) {
 			/*
 			 * Frame was received on a channel different from the
 			 * one indicated in the DS params element id;
@@ -2037,7 +2028,7 @@
 			IEEE80211_DISCARD(ic, IEEE80211_MSG_ELEMID,
 			    wh, ieee80211_mgt_subtype_name[subtype >>
 				IEEE80211_FC0_SUBTYPE_SHIFT],
-			    "for off-channel %u", chan);
+			    "for off-channel %u", scan.chan);
 			ic->ic_stats.is_rx_chanmismatch++;
 			return;
 		}
@@ -2061,27 +2052,27 @@
 		    ((ic->ic_flags & IEEE80211_F_SCAN) == 0 ||
 		     IEEE80211_ADDR_EQ(wh->i_addr2, ni->ni_bssid))) {
 			/* record tsf of last beacon */
-			memcpy(ni->ni_tstamp.data, tstamp,
+			memcpy(ni->ni_tstamp.data, scan.tstamp,
 				sizeof(ni->ni_tstamp));
-			if (ni->ni_erp != erp) {
+			if (ni->ni_erp != scan.erp) {
 				IEEE80211_DPRINTF(ic, IEEE80211_MSG_ASSOC,
 				    "[%s] erp change: was 0x%x, now 0x%x\n",
 				    ether_sprintf(wh->i_addr2),
-				    ni->ni_erp, erp);
+				    ni->ni_erp, scan.erp);
 				if (IEEE80211_IS_CHAN_ANYG(ic->ic_curchan) &&
 				    (ni->ni_erp & IEEE80211_ERP_USE_PROTECTION))
 					ic->ic_flags |= IEEE80211_F_USEPROT;
 				else
 					ic->ic_flags &= ~IEEE80211_F_USEPROT;
-				ni->ni_erp = erp;
+				ni->ni_erp = scan.erp;
 				/* XXX statistic */
 			}
-			if ((ni->ni_capinfo ^ capinfo) & IEEE80211_CAPINFO_SHORT_SLOTTIME) {
+			if ((ni->ni_capinfo ^ scan.capinfo) & IEEE80211_CAPINFO_SHORT_SLOTTIME) {
 				IEEE80211_DPRINTF(ic, IEEE80211_MSG_ASSOC,
 				    "[%s] capabilities change: before 0x%x,"
 				     " now 0x%x\n",
 				     ether_sprintf(wh->i_addr2),
-				     ni->ni_capinfo, capinfo);
+				     ni->ni_capinfo, scan.capinfo);
 				/*
 				 * NB: we assume short preamble doesn't
 				 *     change dynamically
@@ -2089,111 +2080,78 @@
 				ieee80211_set_shortslottime(ic,
 					IEEE80211_IS_CHAN_A(ic->ic_bsschan) ||
 					(ni->ni_capinfo & IEEE80211_CAPINFO_SHORT_SLOTTIME));
-				ni->ni_capinfo = capinfo;
+				ni->ni_capinfo = scan.capinfo;
 				/* XXX statistic */
 			}
-			if (wme != NULL &&
+			if (scan.wme != NULL &&
 			    (ni->ni_flags & IEEE80211_NODE_QOS) &&
-			    ieee80211_parse_wmeparams(ic, wme, wh) > 0)
+			    ieee80211_parse_wmeparams(ic, scan.wme, wh) > 0)
 				ieee80211_wme_updateparams(ic);
-			if (tim != NULL) {
-				struct ieee80211_tim_ie *ie =
-				    (struct ieee80211_tim_ie *) tim;
-
-				ni->ni_dtim_count = ie->tim_count;
-				ni->ni_dtim_period = ie->tim_period;
+			if (scan.ath != NULL)
+				ieee80211_parse_athparams(ni, scan.ath, wh);
+			if (scan.tim != NULL) {
+				struct ieee80211_tim_ie *tim =
+				    (struct ieee80211_tim_ie *) scan.tim;
+#if 0
+				int aid = IEEE80211_AID(ni->ni_associd);
+				int ix = aid / NBBY;
+				int min = tim->tim_bitctl &~ 1;
+				int max = tim->tim_len + min - 4;
+				if ((tim->tim_bitctl&1) ||
+				    (min <= ix && ix <= max &&
+				     isset(tim->tim_bitmap - min, aid)))
+					ieee80211_sta_pwrsave(ic, 0);
+#endif
+				ni->ni_dtim_count = tim->tim_count;
+				ni->ni_dtim_period = tim->tim_period;
 			}
-			if (ath != NULL)
-				ieee80211_parse_athparams(ni, ath, wh);
-			/* NB: don't need the rest of this */
-			if ((ic->ic_flags & IEEE80211_F_SCAN) == 0)
-				return;
-		}
-
-		if (ni == ic->ic_bss &&
-		    !IEEE80211_ADDR_EQ(wh->i_addr2, ni->ni_bssid)) {
-#ifdef IEEE80211_DEBUG
-			if (ieee80211_msg_scan(ic))
-				dump_probe_beacon(subtype, 1,
-				    wh->i_addr2, chan, bchan, capinfo,
-				    bintval, erp, ssid, country);
-#endif
 			/*
-			 * Create a new entry.  If scanning the entry goes
-			 * in the scan cache.  Otherwise, be particular when
-			 * operating in adhoc mode--only take nodes marked
-			 * as ibss participants so we don't populate our
-			 * neighbor table with unintersting sta's.
+			 * If scanning, pass the info to the scan module.
+			 * Otherwise, check if it's the right time to do
+			 * a background scan.  Background scanning must
+			 * be enabled and we must not be operating in the
+			 * turbo phase of dynamic turbo mode.  Then,
+			 * it's been a while since the last background
+			 * scan and if no data frames have come through
+			 * recently, kick off a scan.  Note that this
+			 * is the mechanism by which a background scan
+			 * is started _and_ continued each time we
+			 * return on-channel to receive a beacon from
+			 * our ap.
 			 */
-			if ((ic->ic_flags & IEEE80211_F_SCAN) == 0) {
-				if ((capinfo & IEEE80211_CAPINFO_IBSS) == 0)
-					return;
-				ni = ieee80211_fakeup_adhoc_node(&ic->ic_sta,
-						wh->i_addr2);
-			} else
-				ni = ieee80211_dup_bss(&ic->ic_scan, wh->i_addr2);
-			if (ni == NULL)
-				return;
-			ni->ni_esslen = ssid[1];
-			memset(ni->ni_essid, 0, sizeof(ni->ni_essid));
-			memcpy(ni->ni_essid, ssid + 2, ssid[1]);
-		} else if (ssid[1] != 0 &&
-		    (ISPROBE(subtype) || ni->ni_esslen == 0)) {
-			/*
-			 * Update ESSID at probe response to adopt
-			 * hidden AP by Lucent/Cisco, which announces
-			 * null ESSID in beacon.
-			 */
-#ifdef IEEE80211_DEBUG
-			if (ieee80211_msg_scan(ic) ||
-			    ieee80211_msg_debug(ic))
-				dump_probe_beacon(subtype, 0,
-				    wh->i_addr2, chan, bchan, capinfo,
-				    bintval, erp, ssid, country);
-#endif
-			ni->ni_esslen = ssid[1];
-			memset(ni->ni_essid, 0, sizeof(ni->ni_essid));
-			memcpy(ni->ni_essid, ssid + 2, ssid[1]);
-		}
-		ni->ni_scangen = ic->ic_scan.nt_scangen;
-		IEEE80211_ADDR_COPY(ni->ni_bssid, wh->i_addr3);
-		ni->ni_rssi = rssi;
-		ni->ni_rstamp = rstamp;
-		memcpy(ni->ni_tstamp.data, tstamp, sizeof(ni->ni_tstamp));
-		ni->ni_intval = bintval;
-		ni->ni_capinfo = capinfo;
-		ni->ni_chan = ic->ic_curchan;
-		ni->ni_fhdwell = fhdwell;
-		ni->ni_fhindex = fhindex;
-		ni->ni_erp = erp;
-		if (tim != NULL) {
-			struct ieee80211_tim_ie *ie =
-			    (struct ieee80211_tim_ie *) tim;
-
-			ni->ni_dtim_count = ie->tim_count;
-			ni->ni_dtim_period = ie->tim_period;
+			if (ic->ic_flags & IEEE80211_F_SCAN)
+				ieee80211_add_scan(ic, &scan, wh,
+					subtype, rssi, rstamp);
+			else if (contbgscan(ic) || startbgscan(ic))
+				ieee80211_bg_scan(ic);
+			return;
 		}
 		/*
-		 * Record the byte offset from the mac header to
-		 * the start of the TIM information element for
-		 * use by hardware and/or to speedup software
-		 * processing of beacon frames.
+		 * If scanning, just pass information to the scan module.
 		 */
-		ni->ni_timoff = timoff;
-		/*
-		 * Record optional information elements that might be
-		 * used by applications or drivers.
-		 */
-		if (wme != NULL)
-			ieee80211_saveie(&ni->ni_wme_ie, wme);
-		if (wpa != NULL)
-			ieee80211_saveie(&ni->ni_wpa_ie, wpa);
-		if (ath != NULL) {
-			ieee80211_saveie(&ni->ni_ath_ie, ath);
-			(void) ieee80211_parse_athparams(ni, ath, wh);
+		if (ic->ic_flags & IEEE80211_F_SCAN) {
+			ieee80211_add_scan(ic, &scan, wh,
+				subtype, rssi, rstamp);
+			return;
+		}
+		if (scan.capinfo & IEEE80211_CAPINFO_IBSS) {
+			if (!IEEE80211_ADDR_EQ(wh->i_addr2, ni->ni_macaddr)) {
+				/*
+				 * Create a new entry in the neighbor table.
+				 */
+				ni = ieee80211_add_neighbor(ic, wh, &scan);
+			} else {
+				/*
+				 * Record tsf for potential resync.
+				 */
+				memcpy(ni->ni_tstamp.data, scan.tstamp,
+					sizeof(ni->ni_tstamp));
+			}
+			if (ni != NULL) {
+				ni->ni_rssi = rssi;
+				ni->ni_rstamp = rstamp;
+			}
 		}
-		/* NB: must be after ni_chan is setup */
-		ieee80211_setup_rates(ic, ni, rates, xrates, IEEE80211_F_DOSORT);
 		break;
 	}
 
@@ -2272,7 +2230,7 @@
 			ieee80211_saveie(&ni->ni_ath_ie, ath);
 			(void) ieee80211_parse_athparams(ni, ath, wh);
 		}
-		rate = ieee80211_setup_rates(ic, ni, rates, xrates,
+		rate = ieee80211_setup_rates(ni, rates, xrates,
 			  IEEE80211_F_DOSORT | IEEE80211_F_DOFRATE
 			| IEEE80211_F_DONEGO | IEEE80211_F_DODEL);
 		if (rate & IEEE80211_RATE_BASIC) {
@@ -2496,7 +2454,7 @@
 			ic->ic_stats.is_rx_assoc_capmismatch++;
 			return;
 		}
-		rate = ieee80211_setup_rates(ic, ni, rates, xrates,
+		rate = ieee80211_setup_rates(ni, rates, xrates,
 				IEEE80211_F_DOSORT | IEEE80211_F_DOFRATE |
 				IEEE80211_F_DONEGO | IEEE80211_F_DODEL);
 		/*
@@ -2634,7 +2592,7 @@
 		}
 
 		IEEE80211_VERIFY_ELEMENT(rates, IEEE80211_RATE_MAXSIZE);
-		rate = ieee80211_setup_rates(ic, ni, rates, xrates,
+		rate = ieee80211_setup_rates(ni, rates, xrates,
 				IEEE80211_F_DOSORT | IEEE80211_F_DOFRATE |
 				IEEE80211_F_DONEGO | IEEE80211_F_DODEL);
 		if (rate & IEEE80211_RATE_BASIC) {
@@ -2782,66 +2740,6 @@
 #undef IEEE80211_VERIFY_ELEMENT
 
 /*
- * Handle station power-save state change.
- */
-static void
-ieee80211_node_pwrsave(struct ieee80211_node *ni, int enable)
-{
-	struct ieee80211com *ic = ni->ni_ic;
-	struct mbuf *m;
-
-	if (enable) {
-		if ((ni->ni_flags & IEEE80211_NODE_PWR_MGT) == 0)
-			ic->ic_ps_sta++;
-		ni->ni_flags |= IEEE80211_NODE_PWR_MGT;
-		IEEE80211_DPRINTF(ic, IEEE80211_MSG_POWER,
-		    "[%s] power save mode on, %u sta's in ps mode\n",
-		    ether_sprintf(ni->ni_macaddr), ic->ic_ps_sta);
-		return;
-	}
-
-	if (ni->ni_flags & IEEE80211_NODE_PWR_MGT)
-		ic->ic_ps_sta--;
-	ni->ni_flags &= ~IEEE80211_NODE_PWR_MGT;
-	IEEE80211_DPRINTF(ic, IEEE80211_MSG_POWER,
-	    "[%s] power save mode off, %u sta's in ps mode\n",
-	    ether_sprintf(ni->ni_macaddr), ic->ic_ps_sta);
-	/* XXX if no stations in ps mode, flush mc frames */
-
-	/*
-	 * Flush queued unicast frames.
-	 */
-	if (IEEE80211_NODE_SAVEQ_QLEN(ni) == 0) {
-		if (ic->ic_set_tim != NULL)
-			ic->ic_set_tim(ic, ni, 0);	/* just in case */
-		return;
-	}
-	IEEE80211_DPRINTF(ic, IEEE80211_MSG_POWER,
-	    "[%s] flush ps queue, %u packets queued\n",
-	    ether_sprintf(ni->ni_macaddr), IEEE80211_NODE_SAVEQ_QLEN(ni));
-	for (;;) {
-		int qlen;
-
-		IEEE80211_NODE_SAVEQ_DEQUEUE(ni, m, qlen);
-		if (m == NULL)
-			break;
-		/* 
-		 * If this is the last packet, turn off the TIM bit.
-		 * If there are more packets, set the more packets bit
-		 * in the mbuf so ieee80211_encap will mark the 802.11
-		 * head to indicate more data frames will follow.
-		 */
-		if (qlen != 0)
-			m->m_flags |= M_MORE_DATA;
-		/* XXX need different driver interface */
-		/* XXX bypasses q max */
-		IF_ENQUEUE(&ic->ic_ifp->if_snd, m);
-	}
-	if (ic->ic_set_tim != NULL)
-		ic->ic_set_tim(ic, ni, 0);
-}
-
-/*
  * Process a received ps-poll frame.
  */
 static void
@@ -2882,10 +2780,10 @@
 		IEEE80211_DPRINTF(ic, IEEE80211_MSG_POWER,
 		    "[%s] recv ps-poll, but queue empty\n",
 		    ether_sprintf(wh->i_addr2));
-		ieee80211_send_nulldata(ic, ni);
+		ieee80211_send_nulldata(ni);
 		ic->ic_stats.is_ps_qempty++;	/* XXX node stat */
 		if (ic->ic_set_tim != NULL)
-			ic->ic_set_tim(ic, ni, 0);	/* just in case */
+			ic->ic_set_tim(ni, 0);		/* just in case */
 		return;
 	}
 	/* 
@@ -2903,7 +2801,7 @@
 		    "[%s] recv ps-poll, send packet, queue empty\n",
 		    ether_sprintf(ni->ni_macaddr));
 		if (ic->ic_set_tim != NULL)
-			ic->ic_set_tim(ic, ni, 0);
+			ic->ic_set_tim(ni, 0);
 	}
 	m->m_flags |= M_PWR_SAV;		/* bypass PS handling */
 	IF_ENQUEUE(&ic->ic_ifp->if_snd, m);
@@ -2929,6 +2827,48 @@
 	return wh->i_addr3;
 }
 
+void
+ieee80211_note(struct ieee80211com *ic, const char *fmt, ...)
+{
+	char buf[128];		/* XXX */
+	va_list ap;
+
+	va_start(ap, fmt);
+	vsnprintf(buf, sizeof(buf), fmt, ap);
+	va_end(ap);
+
+	if_printf(ic->ic_ifp, "%s", buf);	/* NB: no \n */
+}
+
+void
+ieee80211_note_frame(struct ieee80211com *ic,
+	const struct ieee80211_frame *wh,
+	const char *fmt, ...)
+{
+	char buf[128];		/* XXX */
+	va_list ap;
+
+	va_start(ap, fmt);
+	vsnprintf(buf, sizeof(buf), fmt, ap);
+	va_end(ap);
+	if_printf(ic->ic_ifp, "[%s] %s\n",
+		ether_sprintf(ieee80211_getbssid(ic, wh)), buf);
+}
+
+void
+ieee80211_note_mac(struct ieee80211com *ic,
+	const u_int8_t mac[IEEE80211_ADDR_LEN],
+	const char *fmt, ...)
+{
+	char buf[128];		/* XXX */
+	va_list ap;
+
+	va_start(ap, fmt);
+	vsnprintf(buf, sizeof(buf), fmt, ap);
+	va_end(ap);
+	if_printf(ic->ic_ifp, "[%s] %s\n", ether_sprintf(mac), buf);
+}
+
 static void
 ieee80211_discard_frame(struct ieee80211com *ic,
 	const struct ieee80211_frame *wh,
@@ -2936,7 +2876,8 @@
 {
 	va_list ap;
 
-	printf("[%s] discard ", ether_sprintf(ieee80211_getbssid(ic, wh)));
+	printf("[%s:%s] discard ", ic->ic_ifp->if_xname,
+		ether_sprintf(ieee80211_getbssid(ic, wh)));
 	if (type != NULL)
 		printf(" %s frame, ", type);
 	else
@@ -2954,7 +2895,8 @@
 {
 	va_list ap;
 
-	printf("[%s] discard ", ether_sprintf(ieee80211_getbssid(ic, wh)));
+	printf("[%s:%s] discard ", ic->ic_ifp->if_xname,
+		ether_sprintf(ieee80211_getbssid(ic, wh)));
 	if (type != NULL)
 		printf(" %s information element, ", type);
 	else
@@ -2972,7 +2914,7 @@
 {
 	va_list ap;
 
-	printf("[%s] discard ", ether_sprintf(mac));
+	printf("[%s:%s] discard ", ic->ic_ifp->if_xname, ether_sprintf(mac));
 	if (type != NULL)
 		printf(" %s frame, ", type);
 	else

==== //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#40 (text+ko) ====

@@ -65,8 +65,6 @@
 #include <net80211/ieee80211_var.h>
 #include <net80211/ieee80211_ioctl.h>
 
-#include <dev/wi/if_wavelan_ieee.h>
-
 #define	IS_UP(_ic) \
 	(((_ic)->ic_ifp->if_flags & (IFF_RUNNING|IFF_UP)) == (IFF_RUNNING|IFF_UP))
 #define	IS_UP_AUTO(_ic) \
@@ -76,370 +74,6 @@
 		int ieee, int mode);
 
 /*
- * XXX
- * Wireless LAN specific configuration interface, which is compatible
- * with wicontrol(8).
- */
-
-struct wi_read_ap_args {
-	int	i;		/* result count */
-	struct wi_apinfo *ap;	/* current entry in result buffer */
-	caddr_t	max;		/* result buffer bound */
-};
-
-static void
-wi_read_ap_result(void *arg, struct ieee80211_node *ni)
-{

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

From owner-p4-projects@FreeBSD.ORG  Mon Jul 18 16:59:43 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id B7F6416A421; Mon, 18 Jul 2005 16:59:42 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 7A71816A41C
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 16:59:42 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 2EF1B43D45
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 16:59:42 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6IGxgoA064370
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 16:59:42 GMT
	(envelope-from sam@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6IGxfmu064367
	for perforce@freebsd.org; Mon, 18 Jul 2005 16:59:41 GMT
	(envelope-from sam@freebsd.org)
Date: Mon, 18 Jul 2005 16:59:41 GMT
Message-Id: <200507181659.j6IGxfmu064367@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	sam@freebsd.org using -f
From: Sam Leffler <sam@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80454 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Jul 2005 16:59:43 -0000

http://perforce.freebsd.org/chv.cgi?CH=80454

Change 80454 by sam@sam_ebb on 2005/07/18 16:58:57

	o update for new scan api
	o more of the 11j support
	o track revised api's from vap work
	o separate min rate index for mgt/ctl frames
	o purge defrag test glop

Affected files ...

.. //depot/projects/wifi/sys/dev/ath/if_ath.c#87 edit
.. //depot/projects/wifi/sys/dev/ath/if_athvar.h#37 edit

Differences ...

==== //depot/projects/wifi/sys/dev/ath/if_ath.c#87 (text+ko) ====

@@ -159,18 +159,20 @@
 static void	ath_stoprecv(struct ath_softc *);
 static int	ath_startrecv(struct ath_softc *);
 static void	ath_chan_change(struct ath_softc *, struct ieee80211_channel *);
-static void	ath_next_scan(void *);
+static void	ath_scan_start(struct ieee80211com *);
+static void	ath_scan_end(struct ieee80211com *);
+static void	ath_set_channel(struct ieee80211com *);
 static void	ath_calibrate(void *);
 static int	ath_newstate(struct ieee80211com *, enum ieee80211_state, int);
 static void	ath_setup_stationkey(struct ieee80211_node *);
-static void	ath_newassoc(struct ieee80211com *,
-			struct ieee80211_node *, int);
+static void	ath_newassoc(struct ieee80211_node *, int);
 static int	ath_getchannels(struct ath_softc *, u_int cc,
 			HAL_BOOL outdoor, HAL_BOOL xchanmode);
 static void	ath_led_event(struct ath_softc *, int);
 static void	ath_update_txpow(struct ath_softc *);
 
 static int	ath_rate_setup(struct ath_softc *, u_int mode);
+static void	ath_setup_subrates(struct ath_softc *);
 static void	ath_setcurmode(struct ath_softc *, enum ieee80211_phymode);
 
 static void	ath_sysctlattach(struct ath_softc *);
@@ -180,9 +182,6 @@
 SYSCTL_DECL(_hw_ath);
 
 /* XXX validate sysctl values */
-static	int ath_dwelltime = 200;		/* 5 channels/second */
-SYSCTL_INT(_hw_ath, OID_AUTO, dwell, CTLFLAG_RW, &ath_dwelltime,
-	    0, "channel dwell time (ms) for AP/station scanning");
 static	int ath_calinterval = 30;		/* calibrate every 30 secs */
 SYSCTL_INT(_hw_ath, OID_AUTO, calibrate, CTLFLAG_RW, &ath_calinterval,
 	    0, "chip calibration interval (secs)");
@@ -360,6 +359,7 @@
 	ath_rate_setup(sc, IEEE80211_MODE_11G);
 	ath_rate_setup(sc, IEEE80211_MODE_TURBO_A);
 	ath_rate_setup(sc, IEEE80211_MODE_TURBO_G);
+	ath_setup_subrates(sc);		/* half/quarter rates */
 	/* NB: setup here so ath_rate_update is happy */
 	ath_setcurmode(sc, IEEE80211_MODE_11A);
 
@@ -371,7 +371,6 @@
 		if_printf(ifp, "failed to allocate descriptors: %d\n", error);
 		goto bad;
 	}
-	callout_init(&sc->sc_scan_ch, debug_mpsafenet ? CALLOUT_MPSAFE : 0);
 	callout_init(&sc->sc_cal_ch, CALLOUT_MPSAFE);
 
 	ATH_TXBUF_LOCK_INIT(sc);
@@ -503,6 +502,7 @@
 		| IEEE80211_C_SHPREAMBLE	/* short preamble supported */
 		| IEEE80211_C_SHSLOT		/* short slot time supported */
 		| IEEE80211_C_WPA		/* capable of WPA1+WPA2 */
+		| IEEE80211_C_BGSCAN		/* capable of bg scanning */
 		;
 	/*
 	 * Query the hal to figure out h/w crypto support.
@@ -592,6 +592,9 @@
 	ic->ic_recv_mgmt = ath_recv_mgmt;
 	sc->sc_newstate = ic->ic_newstate;
 	ic->ic_newstate = ath_newstate;
+	ic->ic_scan_start = ath_scan_start;
+	ic->ic_scan_end = ath_scan_end;
+	ic->ic_set_channel = ath_set_channel;
 	ic->ic_crypto.cs_key_alloc = ath_key_alloc;
 	ic->ic_crypto.cs_key_delete = ath_key_delete;
 	ic->ic_crypto.cs_key_set = ath_key_set;
@@ -843,14 +846,20 @@
 		CHANNEL_B,		/* IEEE80211_MODE_11B */
 		CHANNEL_PUREG,		/* IEEE80211_MODE_11G */
 		0,			/* IEEE80211_MODE_FH */
-		CHANNEL_T,		/* IEEE80211_MODE_TURBO_A */
+		CHANNEL_108A,		/* IEEE80211_MODE_TURBO_A */
 		CHANNEL_108G		/* IEEE80211_MODE_TURBO_G */
 	};
 	enum ieee80211_phymode mode = ieee80211_chan2mode(chan);
+	int flags;
 
 	KASSERT(mode < N(modeflags), ("unexpected phy mode %u", mode));
 	KASSERT(modeflags[mode] != 0, ("mode %u undefined", mode));
-	return modeflags[mode];
+	flags = modeflags[mode];
+	if (IEEE80211_IS_CHAN_HALF(chan))
+		flags |= CHANNEL_HALF;
+	else if (IEEE80211_IS_CHAN_QUARTER(chan))
+		flags |= CHANNEL_QUARTER;
+	return flags;
 #undef N
 }
 
@@ -1449,7 +1458,7 @@
 				 * to the 802.11 layer and continue.  We'll get
 				 * the frame back when the time is right.
 				 */
-				ieee80211_pwrsave(ic, ni, m);
+				ieee80211_pwrsave(ni, m);
 				goto reclaim;
 			}
 			/* calculate priority so we can find the tx queue */
@@ -1960,14 +1969,15 @@
  *   - when scanning
  */
 static u_int32_t
-ath_calcrxfilter(struct ath_softc *sc, enum ieee80211_state state)
+ath_calcrxfilter(struct ath_softc *sc)
 {
+#define	RX_FILTER_PRESERVE	(HAL_RX_FILTER_PHYERR | HAL_RX_FILTER_PHYRADAR)
 	struct ieee80211com *ic = &sc->sc_ic;
 	struct ath_hal *ah = sc->sc_ah;
 	struct ifnet *ifp = sc->sc_ifp;
 	u_int32_t rfilt;
 
-	rfilt = (ath_hal_getrxfilter(ah) & HAL_RX_FILTER_PHYERR)
+	rfilt = (ath_hal_getrxfilter(ah) & RX_FILTER_PRESERVE)
 	      | HAL_RX_FILTER_UCAST | HAL_RX_FILTER_BCAST | HAL_RX_FILTER_MCAST;
 	if (ic->ic_opmode != IEEE80211_M_STA)
 		rfilt |= HAL_RX_FILTER_PROBEREQ;
@@ -1976,9 +1986,10 @@
 		rfilt |= HAL_RX_FILTER_PROM;
 	if (ic->ic_opmode == IEEE80211_M_STA ||
 	    ic->ic_opmode == IEEE80211_M_IBSS ||
-	    state == IEEE80211_S_SCAN)
+	    sc->sc_scanning)
 		rfilt |= HAL_RX_FILTER_BEACON;
 	return rfilt;
+#undef RX_FILTER_PRESERVE
 }
 
 static void
@@ -1992,7 +2003,7 @@
 	struct ifmultiaddr *ifma;
 
 	/* configure rx filter */
-	rfilt = ath_calcrxfilter(sc, ic->ic_state);
+	rfilt = ath_calcrxfilter(sc);
 	ath_hal_setrxfilter(ah, rfilt);
 
 	/* configure operational mode */
@@ -2181,10 +2192,10 @@
 	struct ieee80211com *ic = ni->ni_ic;
 	struct mbuf *m = bf->bf_m;
 	struct ath_hal *ah = sc->sc_ah;
-	struct ath_node *an = ATH_NODE(ni);
 	struct ath_desc *ds;
 	int flags, antenna;
-	u_int8_t rate;
+	const HAL_RATE_TABLE *rt;
+	u_int8_t rix, rate;
 
 	DPRINTF(sc, ATH_DEBUG_BEACON, "%s: m %p len %u\n",
 		__func__, m, m->m_len);
@@ -2216,10 +2227,11 @@
 	 * Calculate rate code.
 	 * XXX everything at min xmit rate
 	 */
+	rix = sc->sc_minrateix;
+	rt = sc->sc_currates;
+	rate = rt->info[rix].rateCode;
 	if (USE_SHPREAMBLE(ic))
-		rate = an->an_tx_mgtratesp;
-	else
-		rate = an->an_tx_mgtrate;
+		rate |= rt->info[rix].shortPreamble;
 	ath_hal_setuptxdesc(ah, ds
 		, m->m_len + IEEE80211_CRC_LEN	/* frame length */
 		, sizeof(struct ieee80211_frame)/* header length */
@@ -2575,6 +2587,7 @@
 		if (ic->ic_opmode == IEEE80211_M_IBSS && sc->sc_hasveol)
 			ath_beacon_proc(sc, 0);
 	}
+	sc->sc_syncbeacon = 0;
 #undef TSF_TO_TU
 }
 
@@ -2931,6 +2944,14 @@
 	case IEEE80211_FC0_SUBTYPE_BEACON:
 		/* update rssi statistics for use by the hal */
 		ATH_RSSI_LPF(ATH_NODE(ni)->an_halstats.ns_avgbrssi, rssi);
+		if (sc->sc_syncbeacon &&
+		    ni == ic->ic_bss && ic->ic_state == IEEE80211_S_RUN) {
+			/*
+			 * Resync beacon timers using the tsf of the beacon
+			 * frame we just received.
+			 */
+			ath_beacon_config(sc);
+		}
 		/* fall thru... */
 	case IEEE80211_FC0_SUBTYPE_PROBE_RESP:
 		if (ic->ic_opmode == IEEE80211_M_IBSS &&
@@ -2951,7 +2972,7 @@
 				    "ibss merge, rstamp %u tsf %ju "
 				    "tstamp %ju\n", rstamp, (uintmax_t)tsf,
 				    (uintmax_t)ni->ni_tstamp.tsf);
-				(void) ieee80211_ibss_merge(ic, ni);
+				(void) ieee80211_ibss_merge(ni);
 			}
 		}
 		break;
@@ -3202,7 +3223,8 @@
 		 * frame; it'll be dropped where it's not wanted.
 		 */
 		if (ds->ds_rxstat.rs_keyix != HAL_RXKEYIX_INVALID &&
-		    (ni = sc->sc_keyixmap[ds->ds_rxstat.rs_keyix]) != NULL) {
+		    (ni = sc->sc_keyixmap[ds->ds_rxstat.rs_keyix]) != NULL &&
+		    ieee80211_node_refcnt(ni) > 1) {
 			/*
 			 * Fast path: node is present in the key map;
 			 * grab a reference for processing the frame.
@@ -3443,18 +3465,6 @@
 			ath_tx_cleanupq(sc, &sc->sc_txq[i]);
 }
 
-SYSCTL_NODE(_hw_ath, OID_AUTO, defrag, CTLFLAG_RD, 0, "defrag testing");
-static int ath_maxfrags = 4;
-SYSCTL_INT(_hw_ath_defrag, OID_AUTO, max, CTLFLAG_RW, &ath_maxfrags, 0, "");
-static int ath_defrags;
-SYSCTL_INT(_hw_ath_defrag, OID_AUTO, calls, CTLFLAG_RW, &ath_defrags, 0, "");
-static int ath_collectedfrags;
-SYSCTL_INT(_hw_ath_defrag, OID_AUTO, combined, CTLFLAG_RW, &ath_collectedfrags, 0, "");
-static int ath_replacedfrags;
-SYSCTL_INT(_hw_ath_defrag, OID_AUTO, replaced, CTLFLAG_RW, &ath_replacedfrags, 0, "");
-static int ath_defragsfail;
-SYSCTL_INT(_hw_ath_defrag, OID_AUTO, fail, CTLFLAG_RW, &ath_defragsfail, 0, "");
-
 /*
  * Defragment an mbuf chain, returning at most maxfrags separate
  * mbufs+clusters.  If this is not possible NULL is returned and
@@ -3468,14 +3478,12 @@
 	struct mbuf *m, *n, *n2, **prev;
 	u_int curfrags;
 
-ath_defrags++;/*XXX*/
 	/*
 	 * Calculate the current number of frags.
 	 */
 	curfrags = 0;
 	for (m = m0; m != NULL; m = m->m_next)
 		curfrags++;
-if (curfrags <= maxfrags) return m0; /* XXX for testing */
 	/*
 	 * First, try to collapse mbufs.  Note that we always collapse
 	 * towards the front so we don't need to deal with moving the
@@ -3495,7 +3503,6 @@
 			m->m_len += n->m_len;
 			m->m_next = n->m_next;
 			m_free(n);
-ath_collectedfrags++;/*XXX*/
 			if (--curfrags <= maxfrags)
 				return m0;
 		} else
@@ -3521,7 +3528,6 @@
 			*prev = m;
 			m_free(n);
 			m_free(n2);
-ath_replacedfrags++;/*XXX*/
 			if (--curfrags <= maxfrags)	/* +1 cl -2 mbufs */
 				return m0;
 			/*
@@ -3540,7 +3546,6 @@
 	 * packet header).
 	 */
 bad:
-ath_defragsfail++;/*XXX*/
 	return NULL;
 }
 
@@ -3632,8 +3637,6 @@
 
 	pktlen += IEEE80211_CRC_LEN;
 
-m = ath_defrag(m0, M_DONTWAIT, ath_maxfrags); if (m != NULL) m0 = m;	/*XXX*/
-
 	/*
 	 * Load the DMA map so any coalescing is done.  This
 	 * also calculates the number of descriptors we need.
@@ -3718,12 +3721,11 @@
 			atype = HAL_PKT_TYPE_ATIM;
 		else
 			atype = HAL_PKT_TYPE_NORMAL;	/* XXX */
-		rix = 0;			/* XXX lowest rate */
+		rix = sc->sc_minrateix;
+		txrate = rt->info[rix].rateCode;
+		if (shortPreamble)
+			txrate |= rt->info[rix].shortPreamble;
 		try0 = ATH_TXMAXTRY;
-		if (shortPreamble)
-			txrate = an->an_tx_mgtratesp;
-		else
-			txrate = an->an_tx_mgtrate;
 		/* NB: force all management frames to highest queue */
 		if (ni->ni_flags & IEEE80211_NODE_QOS) {
 			/* NB: force all management frames to highest queue */
@@ -3734,12 +3736,11 @@
 		break;
 	case IEEE80211_FC0_TYPE_CTL:
 		atype = HAL_PKT_TYPE_PSPOLL;	/* stop setting of duration */
-		rix = 0;			/* XXX lowest rate */
+		rix = sc->sc_minrateix;
+		txrate = rt->info[rix].rateCode;
+		if (shortPreamble)
+			txrate |= rt->info[rix].shortPreamble;
 		try0 = ATH_TXMAXTRY;
-		if (shortPreamble)
-			txrate = an->an_tx_mgtratesp;
-		else
-			txrate = an->an_tx_mgtrate;
 		/* NB: force all ctl frames to highest queue */
 		if (ni->ni_flags & IEEE80211_NODE_QOS) {
 			/* NB: force all ctl frames to highest queue */
@@ -4491,16 +4492,6 @@
 	return 0;
 }
 
-static void
-ath_next_scan(void *arg)
-{
-	struct ath_softc *sc = arg;
-	struct ieee80211com *ic = &sc->sc_ic;
-
-	if (ic->ic_state == IEEE80211_S_SCAN)
-		ieee80211_next_scan(ic);
-}
-
 /*
  * Periodically recalibrate the PHY to account
  * for temperature/environment changes.
@@ -4533,6 +4524,61 @@
 	callout_reset(&sc->sc_cal_ch, ath_calinterval * hz, ath_calibrate, sc);
 }
 
+static void
+ath_scan_start(struct ieee80211com *ic)
+{
+	struct ifnet *ifp = ic->ic_ifp;
+	struct ath_softc *sc = ifp->if_softc;
+	struct ath_hal *ah = sc->sc_ah;
+	u_int32_t rfilt;
+
+	/* XXX calibration timer? */
+
+	sc->sc_scanning = 1;
+	sc->sc_syncbeacon = 0;
+	rfilt = ath_calcrxfilter(sc);
+	ath_hal_setrxfilter(ah, rfilt);
+	ath_hal_setassocid(ah, ifp->if_broadcastaddr, 0);
+
+	DPRINTF(sc, ATH_DEBUG_STATE, "%s: RX filter 0x%x bssid %s aid 0\n",
+		 __func__, rfilt, ether_sprintf(ifp->if_broadcastaddr));
+}
+
+static void
+ath_scan_end(struct ieee80211com *ic)
+{
+	struct ifnet *ifp = ic->ic_ifp;
+	struct ath_softc *sc = ifp->if_softc;
+	struct ath_hal *ah = sc->sc_ah;
+	u_int32_t rfilt;
+
+	sc->sc_scanning = 0;
+	rfilt = ath_calcrxfilter(sc);
+	ath_hal_setrxfilter(ah, rfilt);
+	ath_hal_setassocid(ah, sc->sc_curbssid, sc->sc_curaid);
+
+	DPRINTF(sc, ATH_DEBUG_STATE, "%s: RX filter 0x%x bssid %s aid 0x%x\n",
+		 __func__, rfilt, ether_sprintf(sc->sc_curbssid),
+		 sc->sc_curaid);
+}
+
+static void
+ath_set_channel(struct ieee80211com *ic)
+{
+	struct ifnet *ifp = ic->ic_ifp;
+	struct ath_softc *sc = ifp->if_softc;
+
+	(void) ath_chan_set(sc, ic->ic_curchan);
+	/*
+	 * If we are returning to our bss channel then mark state
+	 * so the next recv'd beacon's tsf will be used to sync the
+	 * beacon timers.  Note that since we only hear beacons in
+	 * sta/ibss mode this has no effect in other operating modes.
+	 */
+	if (!sc->sc_scanning && ic->ic_curchan == ic->ic_bsschan)
+		sc->sc_syncbeacon = 1;
+}
+
 static int
 ath_newstate(struct ieee80211com *ic, enum ieee80211_state nstate, int arg)
 {
@@ -4540,8 +4586,7 @@
 	struct ath_softc *sc = ifp->if_softc;
 	struct ath_hal *ah = sc->sc_ah;
 	struct ieee80211_node *ni;
-	int i, error;
-	const u_int8_t *bssid;
+	int i, error, stamode;
 	u_int32_t rfilt;
 	static const HAL_LED_STATE leds[] = {
 	    HAL_LED_INIT,	/* IEEE80211_S_INIT */
@@ -4555,7 +4600,6 @@
 		ieee80211_state_name[ic->ic_state],
 		ieee80211_state_name[nstate]);
 
-	callout_stop(&sc->sc_scan_ch);
 	callout_stop(&sc->sc_cal_ch);
 	ath_hal_setledstate(ah, leds[nstate]);	/* set LED */
 
@@ -4572,26 +4616,30 @@
 		goto done;
 	}
 	ni = ic->ic_bss;
-	error = ath_chan_set(sc, ic->ic_curchan);
-	if (error != 0)
-		goto bad;
-	rfilt = ath_calcrxfilter(sc, nstate);
-	if (nstate == IEEE80211_S_SCAN)
-		bssid = ifp->if_broadcastaddr;
-	else
-		bssid = ni->ni_bssid;
+
+	rfilt = ath_calcrxfilter(sc);
+	stamode = (ic->ic_opmode == IEEE80211_M_STA ||
+		   ic->ic_opmode == IEEE80211_M_IBSS ||
+		   ic->ic_opmode == IEEE80211_M_AHDEMO);
+	if (stamode && nstate == IEEE80211_S_RUN) {
+		sc->sc_curaid = ni->ni_associd;
+		IEEE80211_ADDR_COPY(sc->sc_curbssid, ni->ni_bssid);
+	} else
+		sc->sc_curaid = 0;
+
+	DPRINTF(sc, ATH_DEBUG_STATE, "%s: RX filter 0x%x bssid %s aid 0x%x\n",
+		 __func__, rfilt, ether_sprintf(sc->sc_curbssid),
+		 sc->sc_curaid);
+
 	ath_hal_setrxfilter(ah, rfilt);
-	DPRINTF(sc, ATH_DEBUG_STATE, "%s: RX filter 0x%x bssid %s\n",
-		 __func__, rfilt, ether_sprintf(bssid));
+	if (stamode)
+		ath_hal_setassocid(ah, sc->sc_curbssid, ni->ni_associd);
 
-	if (nstate == IEEE80211_S_RUN && ic->ic_opmode == IEEE80211_M_STA)
-		ath_hal_setassocid(ah, bssid, ni->ni_associd);
-	else
-		ath_hal_setassocid(ah, bssid, 0);
-	if (ic->ic_flags & IEEE80211_F_PRIVACY) {
+	if (ic->ic_opmode != IEEE80211_M_STA &&
+	    (ic->ic_flags & IEEE80211_F_PRIVACY)) {
 		for (i = 0; i < IEEE80211_WEP_NKID; i++)
 			if (ath_hal_keyisvalid(ah, i))
-				ath_hal_keysetmac(ah, i, bssid);
+				ath_hal_keysetmac(ah, i, ni->ni_bssid);
 	}
 
 	/*
@@ -4672,10 +4720,6 @@
 		/* start periodic recalibration timer */
 		callout_reset(&sc->sc_cal_ch, ath_calinterval * hz,
 			ath_calibrate, sc);
-	} else if (nstate == IEEE80211_S_SCAN) {
-		/* start ap/neighbor scan timer */
-		callout_reset(&sc->sc_scan_ch, (ath_dwelltime * hz) / 1000,
-			ath_next_scan, sc);
 	}
 bad:
 	return error;
@@ -4717,8 +4761,9 @@
  * param tells us if this is the first time or not.
  */
 static void
-ath_newassoc(struct ieee80211com *ic, struct ieee80211_node *ni, int isnew)
+ath_newassoc(struct ieee80211_node *ni, int isnew)
 {
+	struct ieee80211com *ic = ni->ni_ic;
 	struct ath_softc *sc = ic->ic_ifp->if_softc;
 
 	ath_rate_newassoc(sc, ATH_NODE(ni), isnew);
@@ -4855,51 +4900,74 @@
 	ic->ic_bss->ni_txpower = txpow;
 }
 
+static void
+rate_setup(struct ath_softc *sc,
+	const HAL_RATE_TABLE *rt, struct ieee80211_rateset *rs)
+{
+	int i, maxrates;
+
+	if (rt->rateCount > IEEE80211_RATE_MAXSIZE) {
+		DPRINTF(sc, ATH_DEBUG_ANY,
+			"%s: rate table too small (%u > %u)\n",
+		       __func__, rt->rateCount, IEEE80211_RATE_MAXSIZE);
+		maxrates = IEEE80211_RATE_MAXSIZE;
+	} else
+		maxrates = rt->rateCount;
+	for (i = 0; i < maxrates; i++)
+		rs->rs_rates[i] = rt->info[i].dot11Rate;
+	rs->rs_nrates = maxrates;
+}
+
 static int
 ath_rate_setup(struct ath_softc *sc, u_int mode)
 {
 	struct ath_hal *ah = sc->sc_ah;
 	struct ieee80211com *ic = &sc->sc_ic;
 	const HAL_RATE_TABLE *rt;
-	struct ieee80211_rateset *rs;
-	int i, maxrates;
 
 	switch (mode) {
 	case IEEE80211_MODE_11A:
-		sc->sc_rates[mode] = ath_hal_getratetable(ah, HAL_MODE_11A);
+		rt = ath_hal_getratetable(ah, HAL_MODE_11A);
 		break;
 	case IEEE80211_MODE_11B:
-		sc->sc_rates[mode] = ath_hal_getratetable(ah, HAL_MODE_11B);
+		rt = ath_hal_getratetable(ah, HAL_MODE_11B);
 		break;
 	case IEEE80211_MODE_11G:
-		sc->sc_rates[mode] = ath_hal_getratetable(ah, HAL_MODE_11G);
+		rt = ath_hal_getratetable(ah, HAL_MODE_11G);
 		break;
 	case IEEE80211_MODE_TURBO_A:
-		sc->sc_rates[mode] = ath_hal_getratetable(ah, HAL_MODE_TURBO);
+		rt = ath_hal_getratetable(ah, HAL_MODE_TURBO);
 		break;
 	case IEEE80211_MODE_TURBO_G:
-		sc->sc_rates[mode] = ath_hal_getratetable(ah, HAL_MODE_108G);
+		rt = ath_hal_getratetable(ah, HAL_MODE_108G);
 		break;
 	default:
 		DPRINTF(sc, ATH_DEBUG_ANY, "%s: invalid mode %u\n",
 			__func__, mode);
 		return 0;
 	}
-	rt = sc->sc_rates[mode];
-	if (rt == NULL)
+	sc->sc_rates[mode] = rt;
+	if (rt != NULL) {
+		rate_setup(sc, rt, &ic->ic_sup_rates[mode]);
+		return 1;
+	} else
 		return 0;
-	if (rt->rateCount > IEEE80211_RATE_MAXSIZE) {
-		DPRINTF(sc, ATH_DEBUG_ANY,
-			"%s: rate table too small (%u > %u)\n",
-			__func__, rt->rateCount, IEEE80211_RATE_MAXSIZE);
-		maxrates = IEEE80211_RATE_MAXSIZE;
-	} else
-		maxrates = rt->rateCount;
-	rs = &ic->ic_sup_rates[mode];
-	for (i = 0; i < maxrates; i++)
-		rs->rs_rates[i] = rt->info[i].dot11Rate;
-	rs->rs_nrates = maxrates;
-	return 1;
+}
+
+static void
+ath_setup_subrates(struct ath_softc *sc)
+{
+	struct ath_hal *ah = sc->sc_ah;
+	struct ieee80211com *ic = &sc->sc_ic;
+
+	sc->sc_half_rates = ath_hal_getratetable(ah, HAL_MODE_11A_HALF_RATE);
+	if (sc->sc_half_rates != NULL)
+		rate_setup(sc, sc->sc_half_rates, &ic->ic_sup_half_rates);
+
+	sc->sc_quarter_rates =
+		ath_hal_getratetable(ah, HAL_MODE_11A_QUARTER_RATE);
+	if (sc->sc_quarter_rates != NULL)
+		rate_setup(sc, sc->sc_quarter_rates, &ic->ic_sup_quarter_rates);
 }
 
 static void
@@ -4970,6 +5038,8 @@
 	 */
 	sc->sc_protrix = (mode == IEEE80211_MODE_11G ? 1 : 0);
 	/* NB: caller is responsible for reseting rate control state */
+	/* rate index used to send management frames */
+	sc->sc_minrateix = 0;
 #undef N
 }
 

==== //depot/projects/wifi/sys/dev/ath/if_athvar.h#37 (text+ko) ====

@@ -226,13 +226,19 @@
 				sc_ledstate: 1,	/* LED on/off state */
 				sc_blinking: 1,	/* LED blink operation active */
 				sc_mcastkey: 1,	/* mcast key cache search */
+				sc_scanning: 1,	/* scanning active */
+				sc_syncbeacon:1,/* sync/resync beacon timers */
 				sc_hasclrkey:1;	/* CLR key supported */
 						/* rate tables */
 	const HAL_RATE_TABLE	*sc_rates[IEEE80211_MODE_MAX];
+	const HAL_RATE_TABLE	*sc_half_rates;	/* half rate table */
+	const HAL_RATE_TABLE	*sc_quarter_rates;/* quarter rate table */
 	const HAL_RATE_TABLE	*sc_currates;	/* current rate table */
 	enum ieee80211_phymode	sc_curmode;	/* current phy mode */
 	u_int16_t		sc_curtxpow;	/* current tx power limit */
+	u_int16_t		sc_curaid;	/* current association id */
 	HAL_CHANNEL		sc_curchan;	/* current h/w channel */
+	u_int8_t		sc_curbssid[IEEE80211_ADDR_LEN];
 	u_int8_t		sc_rixmap[256];	/* IEEE to h/w rate table ix */
 	struct {
 		u_int8_t	ieeerate;	/* IEEE rate */
@@ -241,6 +247,7 @@
 		u_int16_t	ledon;		/* softled on time */
 		u_int16_t	ledoff;		/* softled off time */
 	} sc_hwmap[32];				/* h/w rate ix mappings */
+	u_int8_t		sc_minrateix;	/* min h/w rate index */
 	u_int8_t		sc_protrix;	/* protection rate index */
 	u_int8_t		sc_lastdatarix;	/* last data frame rate index */
 	u_int			sc_fftxqmin;	/* min frames before staging */
@@ -309,7 +316,6 @@
 	} sc_updateslot;			/* slot time update fsm */
 
 	struct callout		sc_cal_ch;	/* callout handle for cals */
-	struct callout		sc_scan_ch;	/* callout handle for scan */
 	HAL_NODE_STATS		sc_halstats;	/* station-mode rssi stats */
 };
 #define	sc_tx_th		u_tx_rt.th

From owner-p4-projects@FreeBSD.ORG  Mon Jul 18 16:59:44 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 8C0B416A466; Mon, 18 Jul 2005 16:59:43 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 AED1516A41F
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 16:59:42 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 7E79443D4C
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 16:59:42 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6IGxgGx064376
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 16:59:42 GMT
	(envelope-from sam@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6IGxgl9064373
	for perforce@freebsd.org; Mon, 18 Jul 2005 16:59:42 GMT
	(envelope-from sam@freebsd.org)
Date: Mon, 18 Jul 2005 16:59:42 GMT
Message-Id: <200507181659.j6IGxgl9064373@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	sam@freebsd.org using -f
From: Sam Leffler <sam@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80455 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Jul 2005 16:59:44 -0000

http://perforce.freebsd.org/chv.cgi?CH=80455

Change 80455 by sam@sam_ebb on 2005/07/18 16:59:32

	802.11 scan+roam+power save stuff

Affected files ...

.. //depot/projects/wifi/sys/conf/files#27 edit

Differences ...

==== //depot/projects/wifi/sys/conf/files#27 (text+ko) ====

@@ -1399,7 +1399,11 @@
 net80211/ieee80211_ioctl.c	optional wlan
 net80211/ieee80211_node.c	optional wlan
 net80211/ieee80211_output.c	optional wlan
+net80211/ieee80211_power.c	optional wlan
 net80211/ieee80211_proto.c	optional wlan
+net80211/ieee80211_scan.c	optional wlan
+net80211/ieee80211_scan_ap.c	optional wlan_scan_ap
+net80211/ieee80211_scan_sta.c	optional wlan_scan_sta
 net80211/ieee80211_xauth.c	optional wlan_xauth
 netatalk/aarp.c			optional netatalk
 netatalk/at_control.c		optional netatalk

From owner-p4-projects@FreeBSD.ORG  Mon Jul 18 17:21:24 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 846B416A420; Mon, 18 Jul 2005 17:21:23 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 479F416A41C
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 17:21:23 +0000 (GMT)
	(envelope-from jhb@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 1518143D45
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 17:21:23 +0000 (GMT)
	(envelope-from jhb@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6IHLMNG065541
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 17:21:22 GMT
	(envelope-from jhb@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6IHLMIB065538
	for perforce@freebsd.org; Mon, 18 Jul 2005 17:21:22 GMT
	(envelope-from jhb@freebsd.org)
Date: Mon, 18 Jul 2005 17:21:22 GMT
Message-Id: <200507181721.j6IHLMIB065538@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	jhb@freebsd.org using -f
From: John Baldwin <jhb@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80465 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Jul 2005 17:21:24 -0000

http://perforce.freebsd.org/chv.cgi?CH=80465

Change 80465 by jhb@jhb_slimer on 2005/07/18 17:20:49

	Merge in some fixes made possible by atomic_foo_ptr().

Affected files ...

.. //depot/projects/smpng/sys/arm/include/atomic.h#16 edit
.. //depot/projects/smpng/sys/arm/include/endian.h#12 edit
.. //depot/projects/smpng/sys/sparc64/include/cpufunc.h#25 edit

Differences ...

==== //depot/projects/smpng/sys/arm/include/atomic.h#16 (text+ko) ====

@@ -77,8 +77,10 @@
 static __inline uint32_t
 __swp(uint32_t val, volatile uint32_t *ptr)
 {
-	__asm __volatile("swp	%0, %1, [%2]"
-	    : "=&r" (val) : "r" (val) , "r" (ptr) : "memory");
+	__asm __volatile("swp	%0, %2, [%3]"
+	    : "=&r" (val), "=m" (*ptr)
+	    : "r" (val) , "r" (ptr), "m" (*ptr)
+	    : "memory");
 	return (val);
 }
 

==== //depot/projects/smpng/sys/arm/include/endian.h#12 (text+ko) ====

@@ -100,11 +100,10 @@
 __bswap16_var(__uint16_t v)
 {
 	__asm __volatile(
-	    "mov    %0, %1, ror #8\n"
+	    "mov    %0, %0, ror #8\n"
 	    "orr    %0, %0, %0, lsr #16\n"
 	    "bic    %0, %0, %0, lsl #16"
-	    : "=r" (v)
-	    : "0" (v));
+	    : "+r" (v));
 	
 	return (v);
 }		

==== //depot/projects/smpng/sys/sparc64/include/cpufunc.h#25 (text+ko) ====

@@ -62,15 +62,17 @@
 
 #define	casa(rs1, rs2, rd, asi) ({					\
 	u_int __rd = (uint32_t)(rd);					\
-	__asm __volatile("casa [%1] %2, %3, %0"				\
-	    : "+r" (__rd) : "r" (rs1), "n" (asi), "r" (rs2));		\
+	__asm __volatile("casa [%2] %3, %4, %0"				\
+	    : "+r" (__rd), "=m" (*rs1)					\
+	    : "r" (rs1), "n" (asi), "r" (rs2), "m" (*rs1));		\
 	__rd;								\
 })
 
 #define	casxa(rs1, rs2, rd, asi) ({					\
 	u_long __rd = (uint64_t)(rd);					\
-	__asm __volatile("casxa [%1] %2, %3, %0"			\
-	    : "+r" (__rd) : "r" (rs1), "n" (asi), "r" (rs2));		\
+	__asm __volatile("casxa [%2] %3, %4, %0"			\
+	    : "+r" (__rd), "=m" (*rs1)					\
+	    : "r" (rs1), "n" (asi), "r" (rs2), "m" (*rs1));		\
 	__rd;								\
 })
 

From owner-p4-projects@FreeBSD.ORG  Mon Jul 18 17:47:35 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 8233316A420; Mon, 18 Jul 2005 17:47:35 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 08AA216A41C;
	Mon, 18 Jul 2005 17:47:35 +0000 (GMT)
	(envelope-from brdavis@odin.ac.hmc.edu)
Received: from odin.ac.hmc.edu (Odin.AC.HMC.Edu [134.173.32.75])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 9046443D46;
	Mon, 18 Jul 2005 17:47:34 +0000 (GMT)
	(envelope-from brdavis@odin.ac.hmc.edu)
Received: from odin.ac.hmc.edu (localhost.localdomain [127.0.0.1])
	by odin.ac.hmc.edu (8.13.0/8.13.0) with ESMTP id j6IHlYfG021564;
	Mon, 18 Jul 2005 10:47:34 -0700
Received: (from brdavis@localhost)
	by odin.ac.hmc.edu (8.13.0/8.13.0/Submit) id j6IHlY9M021563;
	Mon, 18 Jul 2005 10:47:34 -0700
Date: Mon, 18 Jul 2005 10:47:34 -0700
From: Brooks Davis <brooks@one-eyed-alien.net>
To: soc-tyler <soc-tyler@freebsd.org>
Message-ID: <20050718174734.GA20979@odin.ac.hmc.edu>
References: <200507171351.j6HDpwwc017795@repoman.freebsd.org>
Mime-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1;
	protocol="application/pgp-signature"; boundary="a8Wt8u1KmwUX3Y2C"
Content-Disposition: inline
In-Reply-To: <200507171351.j6HDpwwc017795@repoman.freebsd.org>
User-Agent: Mutt/1.4.1i
X-Virus-Scanned: by amavisd-new
X-Spam-Status: No, hits=0.0 required=8.0 tests=none autolearn=no version=2.63
X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on odin.ac.hmc.edu
Cc: Perforce Change Reviews <perforce@freebsd.org>
Subject: Re: PERFORCE change 80388 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Jul 2005 17:47:36 -0000


--a8Wt8u1KmwUX3Y2C
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sun, Jul 17, 2005 at 01:51:58PM +0000, soc-tyler wrote:
> http://perforce.freebsd.org/chv.cgi?CH=3D80388
>=20
> Change 80388 by soc-tyler@soc-tyler_launchd on 2005/07/17 13:51:29
>=20
> 	Add more bits of launchd(8) code (on the next submit I'll remove those t=
wo accidentally added files :-!)

FYI, you can remove files from a submit by simply deleting the refrences
to them in the messages.  Also, you can abort a submit by deleting your
change description entierly or exiting without saving.  Perforce will
complain and throw you back in, but will abort the second time.

-- Brooks

--a8Wt8u1KmwUX3Y2C
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQFC2+s1XY6L6fI4GtQRAgn6AJ9b7NkQXbyji2N1z4FOWbYHp0lffgCg4olE
dxeO7SOdxHPpLyomQoPEhKI=
=A2sQ
-----END PGP SIGNATURE-----

--a8Wt8u1KmwUX3Y2C--

From owner-p4-projects@FreeBSD.ORG  Mon Jul 18 18:26:55 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id AE7CA16A420; Mon, 18 Jul 2005 18:26:54 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 845F416A41C
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 18:26:54 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 2FBAB43D53
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 18:26:54 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6IIQsQE069444
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 18:26:54 GMT
	(envelope-from sam@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6IIQrjN069441
	for perforce@freebsd.org; Mon, 18 Jul 2005 18:26:53 GMT
	(envelope-from sam@freebsd.org)
Date: Mon, 18 Jul 2005 18:26:53 GMT
Message-Id: <200507181826.j6IIQrjN069441@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	sam@freebsd.org using -f
From: Sam Leffler <sam@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80471 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Jul 2005 18:26:55 -0000

http://perforce.freebsd.org/chv.cgi?CH=80471

Change 80471 by sam@sam_ebb on 2005/07/18 18:25:53

	add separate tx rate for mcast traffic

Affected files ...

.. //depot/projects/wifi/sbin/ifconfig/ifieee80211.c#42 edit
.. //depot/projects/wifi/sys/dev/ath/if_ath.c#88 edit
.. //depot/projects/wifi/sys/dev/ath/if_athvar.h#38 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#41 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_ioctl.h#26 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_proto.c#29 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_var.h#29 edit

Differences ...

==== //depot/projects/wifi/sbin/ifconfig/ifieee80211.c#42 (text+ko) ====

@@ -696,6 +696,12 @@
 	set80211(s, IEEE80211_IOC_ROAM_RATE_11G, 2*atoi(val), 0, NULL);
 }
 
+static
+DECL_CMD_FUNC(set80211mcastrate, val, d)
+{
+	set80211(s, IEEE80211_IOC_MCAST_RATE, 2*atoi(val), 0, NULL);
+}
+
 static int
 getmaxrate(uint8_t rates[15], uint8_t nrates)
 {
@@ -1581,6 +1587,12 @@
 			LINE_CHECK("%crtsthreshold %d", spacer, ireq.i_val);
 	}
 
+	ireq.i_type = IEEE80211_IOC_MCAST_RATE;
+	if (ioctl(s, SIOCG80211, &ireq) != -1) {
+		if (ireq.i_val != 2*1 || verbose)
+			LINE_CHECK("%cmcastrate %d", spacer, ireq.i_val/2);
+	}
+
 	ireq.i_type = IEEE80211_IOC_BGSCAN;
 	if (ioctl(s, SIOCG80211, &ireq) != -1) {
 		bgscan = ireq.i_val;
@@ -1954,6 +1966,7 @@
 	DEF_CMD_ARG("roam:rate11a",	set80211roamrate11a),
 	DEF_CMD_ARG("roam:rate11b",	set80211roamrate11b),
 	DEF_CMD_ARG("roam:rate11g",	set80211roamrate11g),
+	DEF_CMD_ARG("mcastrate",	set80211mcastrate),
 };
 static struct afswtch af_ieee80211 = {
 	.af_name	= "af_ieee80211",

==== //depot/projects/wifi/sys/dev/ath/if_ath.c#88 (text+ko) ====

@@ -3549,6 +3549,20 @@
 	return NULL;
 }
 
+/*
+ * Return h/w rate index for an IEEE rate (w/o basic rate bit).
+ */
+static int
+ath_tx_findrix(const HAL_RATE_TABLE *rt, int rate)
+{
+	int i;
+
+	for (i = 0; i < rt->rateCount; i++)
+		if ((rt->info[i].dot11Rate & IEEE80211_RATE_VAL) == rate)
+			return i;
+	return 0;		/* NB: lowest rate */
+}
+
 static int
 ath_tx_start(struct ath_softc *sc, struct ieee80211_node *ni, struct ath_buf *bf,
     struct mbuf *m0)
@@ -3752,12 +3766,29 @@
 	case IEEE80211_FC0_TYPE_DATA:
 		atype = HAL_PKT_TYPE_NORMAL;		/* default */
 		/*
-		 * Data frames; consult the rate control module.
+		 * Data frames: multicast frames go out at a fixed rate,
+		 * otherwise consult the rate control module for the
+		 * rate to use.
 		 */
-		ath_rate_findrate(sc, an, shortPreamble, pktlen,
-			&rix, &try0, &txrate);
-		sc->sc_txrate = txrate;			/* for LED blinking */
-		sc->sc_lastdatarix = rix;		/* for fast frames */
+		if (ismcast) {
+			/*
+			 * Check mcast rate setting in case it changed.
+			 * XXX move out of fastpath
+			 */
+			if (ic->ic_mcast_rate != sc->sc_mcastrate) {
+				sc->sc_mcastrix =
+					ath_tx_findrix(rt, ic->ic_mcast_rate);
+				sc->sc_mcastrate = ic->ic_mcast_rate;
+			}
+			rix = sc->sc_mcastrix;
+			txrate = rt->info[rix].rateCode;
+			try0 = ATH_TXMAXTRY;
+		} else {
+			ath_rate_findrate(sc, an, shortPreamble, pktlen,
+				&rix, &try0, &txrate);
+			sc->sc_txrate = txrate;		/* for LED blinking */
+			sc->sc_lastdatarix = rix;	/* for fast frames */
+		}
 		/*
 		 * Default all non-QoS traffic to the best-effort queue.
 		 */
@@ -5034,12 +5065,20 @@
 	/*
 	 * All protection frames are transmited at 2Mb/s for
 	 * 11g, otherwise at 1Mb/s.
-	 * XXX select protection rate index from rate table.
 	 */
-	sc->sc_protrix = (mode == IEEE80211_MODE_11G ? 1 : 0);
-	/* NB: caller is responsible for reseting rate control state */
+	if (mode == IEEE80211_MODE_11G)
+		sc->sc_protrix = ath_tx_findrix(rt, 2*2);
+	else
+		sc->sc_protrix = ath_tx_findrix(rt, 2*1);
 	/* rate index used to send management frames */
 	sc->sc_minrateix = 0;
+	/*
+	 * Setup multicast rate state.
+	 */
+	/* XXX layering violation */
+	sc->sc_mcastrix = ath_tx_findrix(rt, sc->sc_ic.ic_mcast_rate);
+	sc->sc_mcastrate = sc->sc_ic.ic_mcast_rate;
+	/* NB: caller is responsible for reseting rate control state */
 #undef N
 }
 

==== //depot/projects/wifi/sys/dev/ath/if_athvar.h#38 (text+ko) ====

@@ -248,8 +248,10 @@
 		u_int16_t	ledoff;		/* softled off time */
 	} sc_hwmap[32];				/* h/w rate ix mappings */
 	u_int8_t		sc_minrateix;	/* min h/w rate index */
+	u_int8_t		sc_mcastrix;	/* mcast h/w rate index */
 	u_int8_t		sc_protrix;	/* protection rate index */
 	u_int8_t		sc_lastdatarix;	/* last data frame rate index */
+	u_int			sc_mcastrate;	/* ieee rate for mcastrateix */
 	u_int			sc_fftxqmin;	/* min frames before staging */
 	u_int			sc_fftxqmax;	/* max frames before drop */
 	u_int			sc_txantenna;	/* tx antenna (fixed or auto) */

==== //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#41 (text+ko) ====

@@ -797,6 +797,9 @@
 	case IEEE80211_IOC_ROAM_RATE_11G:
 		ireq->i_val = ic->ic_roam.rate11b;
 		break;
+	case IEEE80211_IOC_MCAST_RATE:
+		ireq->i_val = ic->ic_mcast_rate;
+		break;
 	default:
 		error = EINVAL;
 		break;
@@ -1850,13 +1853,16 @@
 		ic->ic_roam.rssi11b = ireq->i_val;
 		break;
 	case IEEE80211_IOC_ROAM_RATE_11A:
-		ic->ic_roam.rate11a = ireq->i_val;
+		ic->ic_roam.rate11a = ireq->i_val & IEEE80211_RATE_VAL;
 		break;
 	case IEEE80211_IOC_ROAM_RATE_11B:
-		ic->ic_roam.rate11bOnly = ireq->i_val;
+		ic->ic_roam.rate11bOnly = ireq->i_val & IEEE80211_RATE_VAL;
 		break;
 	case IEEE80211_IOC_ROAM_RATE_11G:
-		ic->ic_roam.rate11b = ireq->i_val;
+		ic->ic_roam.rate11b = ireq->i_val & IEEE80211_RATE_VAL;
+		break;
+	case IEEE80211_IOC_MCAST_RATE:
+		ic->ic_mcast_rate = ireq->i_val & IEEE80211_RATE_VAL;
 		break;
 	default:
 		error = EINVAL;

==== //depot/projects/wifi/sys/net80211/ieee80211_ioctl.h#26 (text+ko) ====

@@ -445,6 +445,7 @@
 #define	IEEE80211_IOC_ROAM_RATE_11A	69	/* tx rate threshold in 11a */
 #define	IEEE80211_IOC_ROAM_RATE_11B	70	/* tx rate threshold in 11b */
 #define	IEEE80211_IOC_ROAM_RATE_11G	71	/* tx rate threshold in 11g */
+#define	IEEE80211_IOC_MCAST_RATE	72	/* tx rate for mcast frames */
 
 /*
  * Scan result data returned for IEEE80211_IOC_SCAN_RESULTS.

==== //depot/projects/wifi/sys/net80211/ieee80211_proto.c#29 (text+ko) ====

@@ -101,6 +101,7 @@
 #endif
 	ic->ic_fragthreshold = 2346;		/* XXX not used yet */
 	ic->ic_fixed_rate = IEEE80211_FIXED_RATE_NONE;
+	ic->ic_mcast_rate = IEEE80211_MCAST_RATE_DEFAULT;
 	ic->ic_protmode = IEEE80211_PROT_CTSONLY;
 	ic->ic_roaming = IEEE80211_ROAMING_AUTO;
 

==== //depot/projects/wifi/sys/net80211/ieee80211_var.h#29 (text+ko) ====

@@ -81,6 +81,7 @@
 #define	IEEE80211_PS_MAX_QUEUE	50	/* maximum saved packets */
 
 #define	IEEE80211_FIXED_RATE_NONE	-1
+#define	IEEE80211_MCAST_RATE_DEFAULT	(2*1)	/* default mcast rate (1M) */
 
 #define	IEEE80211_MS_TO_TU(x)	(((x) * 1000) / 1024)
 #define	IEEE80211_TU_TO_MS(x)	(((x) * 1024) / 1000)

From owner-p4-projects@FreeBSD.ORG  Mon Jul 18 19:10:48 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id C2A8416A420; Mon, 18 Jul 2005 19:10:47 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 95E9F16A41C
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 19:10:47 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 564EC43D45
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 19:10:47 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6IJAl95071744
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 19:10:47 GMT
	(envelope-from sam@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6IJAkKh071741
	for perforce@freebsd.org; Mon, 18 Jul 2005 19:10:46 GMT
	(envelope-from sam@freebsd.org)
Date: Mon, 18 Jul 2005 19:10:46 GMT
Message-Id: <200507181910.j6IJAkKh071741@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	sam@freebsd.org using -f
From: Sam Leffler <sam@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80472 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Jul 2005 19:10:48 -0000

http://perforce.freebsd.org/chv.cgi?CH=80472

Change 80472 by sam@sam_ebb on 2005/07/18 19:10:11

	o fixup get scan results
	o convert get sta table to use an interator
	o change M_WAITOK usage to M_NOWAIT since it appears that
	  it'll be a while before we resolve the issue with drivers
	  holding their lock over ioctl requests

Affected files ...

.. //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#42 edit

Differences ...

==== //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#42 (text+ko) ====

@@ -349,7 +349,7 @@
 	int error;
 
 	if (ireq->i_len < sizeof(struct scanreq))
-		return -EFAULT;
+		return EFAULT;
 
 	error = 0;
 	req.space = 0;
@@ -361,13 +361,14 @@
 		void *p;
 
 		space = req.space;
-		MALLOC(p, void *, space, M_TEMP, M_WAITOK);
+		/* XXX M_WAITOK after driver lock released */
+		MALLOC(p, void *, space, M_TEMP, M_NOWAIT);
 		if (p == NULL)
-			return -ENOMEM;
+			return ENOMEM;
 		req.sr = p;
 		ieee80211_scan_iterate(ic, get_scan_result, &req);
 		ireq->i_len = space - req.space;
-		error = copyout(ireq->i_data, p, ireq->i_len);
+		error = copyout(p, ireq->i_data, ireq->i_len);
 		FREE(p, M_TEMP);
 	} else
 		ireq->i_len = 0;
@@ -375,20 +376,59 @@
 	return error;
 }
 
+struct stainforeq {
+	struct ieee80211com *ic;
+	struct ieee80211req_sta_info *si;
+	size_t	space;
+};
+
+static size_t
+sta_space(const struct ieee80211_node *ni, size_t *ielen)
+{
+	*ielen = 0;
+	if (ni->ni_wpa_ie != NULL)
+		*ielen += 2+ni->ni_wpa_ie[1];
+	if (ni->ni_wme_ie != NULL)
+		*ielen += 2+ni->ni_wme_ie[1];
+	if (ni->ni_ath_ie != NULL)
+		*ielen += 2+ni->ni_ath_ie[1];
+	return roundup(sizeof(struct ieee80211req_sta_info) + *ielen,
+		      sizeof(u_int32_t));
+}
+
+static void
+get_sta_space(void *arg, struct ieee80211_node *ni)
+{
+	struct stainforeq *req = arg;
+	struct ieee80211com *ic = ni->ni_ic;
+	size_t ielen;
+
+	if (ic->ic_opmode == IEEE80211_M_HOSTAP &&
+	    ni->ni_associd == 0)	/* only associated stations */
+		return;
+	req->space += sta_space(ni, &ielen);
+}
+
 static void
-get_sta_info(struct ieee80211req_sta_info *si, const struct ieee80211_node *ni)
+get_sta_info(void *arg, struct ieee80211_node *ni)
 {
+	struct stainforeq *req = arg;
 	struct ieee80211com *ic = ni->ni_ic;
+	struct ieee80211req_sta_info *si;
+	size_t ielen, len;
+	u_int8_t *cp;
 
-	si->isi_ie_len = 0;
-	if (ni->ni_wpa_ie != NULL)
-		si->isi_ie_len += 2+ni->ni_wpa_ie[1];
-	if (ni->ni_wme_ie != NULL)
-		si->isi_ie_len += 2+ni->ni_wme_ie[1];
-	if (ni->ni_ath_ie != NULL)
-		si->isi_ie_len += 2+ni->ni_ath_ie[1];
-	si->isi_len = sizeof(*si) + si->isi_ie_len, sizeof(u_int32_t);
-	si->isi_len = roundup(si->isi_len, sizeof(u_int32_t));
+	if (ic->ic_opmode == IEEE80211_M_HOSTAP &&
+	    ni->ni_associd == 0)	/* only associated stations */
+		return;
+	if (ni->ni_chan == IEEE80211_CHAN_ANYC)	/* XXX bogus entry */
+		return;
+	len = sta_space(ni, &ielen);
+	if (len > req->space)
+		return;
+	si = req->si;
+	si->isi_len = len;
+	si->isi_ie_len = ielen;
 	si->isi_freq = ni->ni_chan->ic_freq;
 	si->isi_flags = ni->ni_chan->ic_flags;
 	si->isi_state = ni->ni_flags;
@@ -402,6 +442,7 @@
 		si->isi_nrates = 15;
 	memcpy(si->isi_rates, ni->ni_rates.rs_rates, si->isi_nrates);
 	si->isi_txrate = ni->ni_txrate;
+	si->isi_ie_len = ielen;
 	si->isi_associd = ni->ni_associd;
 	si->isi_txpower = ni->ni_txpower;
 	si->isi_vlan = ni->ni_vlan;
@@ -412,59 +453,64 @@
 		si->isi_txseqs[0] = ni->ni_txseqs[0];
 		si->isi_rxseqs[0] = ni->ni_rxseqs[0];
 	}
-	if (ic->ic_opmode == IEEE80211_M_IBSS || ni->ni_associd != 0)
+	/* NB: leave all cases in case we relax ni_associd == 0 check */
+	if (ieee80211_node_is_authorized(ni))
 		si->isi_inact = ic->ic_inact_run;
-	else if (ieee80211_node_is_authorized(ni))
+	else if (ni->ni_associd != 0)
 		si->isi_inact = ic->ic_inact_auth;
 	else
 		si->isi_inact = ic->ic_inact_init;
 	si->isi_inact = (si->isi_inact - ni->ni_inact) * IEEE80211_INACT_WAIT;
+
+	cp = (u_int8_t *)(si+1);
+	if (ni->ni_wpa_ie != NULL) {
+		memcpy(cp, ni->ni_wpa_ie, 2+ni->ni_wpa_ie[1]);
+		cp += 2+ni->ni_wpa_ie[1];
+	}
+	if (ni->ni_wme_ie != NULL) {
+		memcpy(cp, ni->ni_wme_ie, 2+ni->ni_wme_ie[1]);
+		cp += 2+ni->ni_wme_ie[1];
+	}
+	if (ni->ni_ath_ie != NULL) {
+		memcpy(cp, ni->ni_ath_ie, 2+ni->ni_ath_ie[1]);
+		cp += 2+ni->ni_ath_ie[1];
+	}
+
+	req->si = (struct ieee80211req_sta_info *)(((u_int8_t *)si) + len);
+	req->space -= len;
 }
 
 static int
 ieee80211_ioctl_getstainfo(struct ieee80211com *ic, struct ieee80211req *ireq)
 {
-	union {
-		struct ieee80211req_sta_info info;
-		char data[512];		/* XXX shrink? */
-	} u;
-	struct ieee80211req_sta_info *si = &u.info;
-	struct ieee80211_node_table *nt;
-	struct ieee80211_node *ni;
-	int error, space;
-	u_int8_t *p, *cp;
+	struct stainforeq req;
+	int error;
+
+	if (ireq->i_len < sizeof(struct stainforeq))
+		return EFAULT;
 
-	nt = &ic->ic_sta;
-	p = ireq->i_data;
-	space = ireq->i_len;
 	error = 0;
-	/* XXX locking */
-	TAILQ_FOREACH(ni, &nt->nt_node, ni_list) {
-		get_sta_info(si, ni);
-		if (si->isi_len > sizeof(u))
-			continue;		/* XXX */
-		if (space < si->isi_len)
-			break;
-		cp = (u_int8_t *)(si+1);
-		if (ni->ni_wpa_ie != NULL) {
-			memcpy(cp, ni->ni_wpa_ie, 2+ni->ni_wpa_ie[1]);
-			cp += 2+ni->ni_wpa_ie[1];
-		}
-		if (ni->ni_wme_ie != NULL) {
-			memcpy(cp, ni->ni_wme_ie, 2+ni->ni_wme_ie[1]);
-			cp += 2+ni->ni_wme_ie[1];
-		}
-		if (ni->ni_ath_ie != NULL) {
-			memcpy(cp, ni->ni_ath_ie, 2+ni->ni_ath_ie[1]);
-			cp += 2+ni->ni_ath_ie[1];
-		}
-		error = copyout(si, p, si->isi_len);
-		if (error)
-			break;
-		p += si->isi_len;
-		space -= si->isi_len;
-	}
-	ireq->i_len -= space;
+	req.space = 0;
+	ieee80211_iterate_nodes(&ic->ic_sta, get_sta_space, &req);
+	if (req.space > ireq->i_len)
+		req.space = ireq->i_len;
+	if (req.space > 0) {
+		size_t space;
+		void *p;
+
+		space = req.space;
+		/* XXX M_WAITOK after driver lock released */
+		MALLOC(p, void *, space, M_TEMP, M_NOWAIT);
+		if (p == NULL)
+			return ENOMEM;
+		req.si = p;
+		ieee80211_iterate_nodes(&ic->ic_sta, get_sta_info, &req);
+		ireq->i_len = space - req.space;
+		error = copyout(p, ireq->i_data, ireq->i_len);
+		FREE(p, M_TEMP);
+	} else
+		ireq->i_len = 0;
+
 	return error;
 }
 
@@ -824,7 +870,8 @@
 	if (ireq->i_len > IEEE80211_MAX_OPT_IE)
 		return EINVAL;
 	/* NB: data.length is validated by the wireless extensions code */
-	MALLOC(ie, void *, ireq->i_len, M_DEVBUF, M_WAITOK);
+	/* XXX M_WAITOK after driver lock released */
+	MALLOC(ie, void *, ireq->i_len, M_DEVBUF, M_NOWAIT);
 	if (ie == NULL)
 		return ENOMEM;
 	error = copyin(ireq->i_data, ie, ireq->i_len);

From owner-p4-projects@FreeBSD.ORG  Mon Jul 18 21:57:00 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id E474A16A420; Mon, 18 Jul 2005 21:56:59 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 A673016A41C
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 21:56:59 +0000 (GMT)
	(envelope-from soc-victor@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 5DAE243D48
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 21:56:59 +0000 (GMT)
	(envelope-from soc-victor@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6ILux0S090170
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 21:56:59 GMT
	(envelope-from soc-victor@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6ILuwGx090167
	for perforce@freebsd.org; Mon, 18 Jul 2005 21:56:59 GMT
	(envelope-from soc-victor@freebsd.org)
Date: Mon, 18 Jul 2005 21:56:59 GMT
Message-Id: <200507182156.j6ILuwGx090167@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-victor@freebsd.org using -f
From: soc-victor <soc-victor@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80480 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Jul 2005 21:57:00 -0000

http://perforce.freebsd.org/chv.cgi?CH=80480

Change 80480 by soc-victor@soc-victor_82.76.158.176 on 2005/07/18 21:56:19

	hrFSTable step #2: some  optimizations and some improvements.

Affected files ...

.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile#7 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_fs_tbl.c#2 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.h#9 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_storage_tbl.c#6 edit

Differences ...

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile#7 (text+ko) ====

@@ -10,7 +10,7 @@
 	hostres_storage_tbl.c hostres_fs_tbl.c
 WARNS?=	6
 #Not having NDEBUG defined will enable assertions and a lot of output on stderr
-#CFLAGS+=	-DNDEBUG
+CFLAGS+=	-DNDEBUG
 XSYM=	host hrStorageOther hrStorageRam hrStorageVirtualMemory \
 	hrStorageFixedDisk hrStorageRemovableDisk hrStorageFloppyDisk \
 	hrStorageCompactDisc hrStorageRamDisk hrStorageFlashMemory \

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_fs_tbl.c#2 (text+ko) ====

@@ -75,12 +75,15 @@
 			return (NULL);
 		}
 		map->hrIndex = hrState_g.next_hrFS_index ++;
-		strncpy(map->a_name, entry->mountPoint, 255);
+		map->a_name[sizeof(map->a_name)-1]='\0';
+		strncpy(map->a_name, entry->mountPoint, sizeof(map->a_name)-1);
 		map->entry_p = entry;
 		STAILQ_INSERT_TAIL(&hrState_g.fs_name_map, map, link);
-		HR_DPRINTF((stderr, "%s  added into hrFSMap at index=%d\n ",name, map->hrIndex));
+		HR_DPRINTF((stderr, "%s  added into hrFSMap at index=%d\n ", 
+				name, map->hrIndex));
 	} else {
-		HR_DPRINTF((stderr, "%s  exists in hrFSMap index=%d\n ",name, map->hrIndex));
+		HR_DPRINTF((stderr, "%s  exists in hrFSMap index=%d\n ", 
+				name, map->hrIndex));
 	}
 	
 	entry->index = map->hrIndex;
@@ -158,20 +161,20 @@
 
 }
 
+void
+FS_tbl_pre_refresh_v(void) {
+	struct hrFSTblEntry *entry = NULL;
 
-void refresh_hrFS_tbl_v(void) {
-	struct hrFSTblEntry *entry = NULL, *entry_tmp = NULL;
-	
-	if ( this_tick <= hrState_g.hr_fs_tick) {
-		HR_DPRINTF((stderr, "%s: no refresh needed\n ",__func__));
-		return;
-	}
-	
 	/*mark each entry as missisng*/
 	TAILQ_FOREACH(entry, &hrState_g.hr_fs_tbl, link)
 		entry->flags &= ~HR_FS_FOUND;
 
-	hrStorage_OS_get_fs_v();
+}
+
+
+void
+FS_tbl_post_refresh_v(void) {
+	struct hrFSTblEntry *entry = NULL, *entry_tmp = NULL;
 
 	/*
 	 * Purge items items that disappeared
@@ -187,7 +190,17 @@
 	hrState_g.hr_fs_tick = this_tick;			
 			
 	hrState_g.hrFS_tbl_age = time(NULL);	
+}
+
+void refresh_hrFS_tbl_v(void) {
 	
+	if ( this_tick <= hrState_g.hr_fs_tick) {
+		HR_DPRINTF((stderr, "%s: no refresh needed\n ",__func__));
+		return;
+	}
+	
+	refresh_hrStorage_tbl_v();	
+	
 	HR_DPRINTF((stderr, "%s: refresh DONE\n ",__func__));
 		
 }
@@ -292,17 +305,24 @@
 			entry->access = FS_READ_WRITE;		
 		}
 		
-		entry->bootable = SNMP_FALSE; /*FIX ME*/
+		/*FIX ME - bootable fs ?! */
+		if( ( fs_p->f_flags &  MNT_ROOTFS ) == MNT_ROOTFS ) {
+			entry->bootable = SNMP_TRUE; 
+		} else {
+			entry->bootable = SNMP_FALSE; 
+		}
 		
 		entry->storageIndex = storage_idx;
 		
 		memset(&entry->lastFullBackupDate[0], 0, 
 			sizeof(entry->lastFullBackupDate)); /*Info not available*/
 
+		
+		
 		memset(&entry->lastPartialBackupDate[0], 0, 
 			sizeof(entry->lastPartialBackupDate)); /*Info not available*/
+
 			
-			
 		return;
 	}
 	if ((entry = hrFSTblEntry_create(fs_p->f_mntonname)) != NULL) {
@@ -324,13 +344,21 @@
 		
 		get_FS_type_v(fs_p, &entry->type);
 		
-		if( (fs_p->f_flags &  MNT_RDONLY) == MNT_RDONLY ) {
+		if( ( fs_p->f_flags &  MNT_RDONLY ) == MNT_RDONLY ) {
 			entry->access = FS_READ_ONLY;
 		} else {
 			entry->access = FS_READ_WRITE;		
 		}
+
+		/*FIX ME - bootable fs ?! */
+		if( ( fs_p->f_flags &  MNT_ROOTFS ) == MNT_ROOTFS ) {
+			entry->bootable = SNMP_TRUE; 
+		} else {
+			entry->bootable = SNMP_FALSE; 
+		}
+				
 		
-		entry->bootable = SNMP_FALSE; /*FIX ME*/
+
 		
 		entry->storageIndex = storage_idx;
 		
@@ -339,7 +367,8 @@
 
 		memset(&entry->lastPartialBackupDate[0], 0, 
 			sizeof(entry->lastPartialBackupDate)); /*Info not available*/
-		
+
+				
 	}
 	return;
 }
@@ -418,10 +447,10 @@
 	  	value->v.integer = entry->storageIndex;
 		break;
 	  case LEAF_hrFSLastFullBackupDate:
-		ret = string_get(value, entry->lastFullBackupDate, 11);
+		ret = string_get(value, entry->lastFullBackupDate, 8);
 		break;
 	  case LEAF_hrFSLastPartialBackupDate:
-		ret = string_get(value, entry->lastPartialBackupDate, 11);
+		ret = string_get(value, entry->lastPartialBackupDate, 8);
 		break;
 	  default:
 	  	assert(0);

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.h#9 (text+ko) ====

@@ -136,7 +136,7 @@
  */
 struct FSNameMapEntry {
 	int32_t		hrIndex;		/*used for hrFSTblEntry::index*/
-	u_char		a_name[255+1];		/*map key*/
+	u_char		a_name[128];		/*map key*/
 	
 	/*
 	 * next may be NULL if the respective hrFSTblEntry 
@@ -200,12 +200,6 @@
 
 
 /*
- * Query the underlaying OS for the mounted file systems
- * anf fill in the respective lists (for hrStorageTable and for hrFSTable)
- */
-void hrStorage_OS_get_fs_v(void); 
-
-/*
  * Init the things for hrStorageTable.
  */
 void init_hrStorage_tbl_v(void);
@@ -216,6 +210,11 @@
  */
 void fini_hrStorage_tbl_v(void);
 
+/*
+ * Next macro represents the number of seconds
+ * between two consecutive queries to the OS for getting the new data
+ * for hrStorageTable
+ */
 #define HR_STORAGE_TBL_REFRESH	7
 /*
  * Refresh routine for hrStorageTable.
@@ -224,12 +223,28 @@
 void refresh_hrStorage_tbl_v(void);
 
 
+/*
+ * Because hrFSTable depends to hrStorageTable we are 
+ * refreshing hrFSTable by refreshing hrStorageTable.
+ * When one entry "of type" fs from hrStorageTable is refreshed
+ * then the corresponding entry from hrFSTable is refreshed
+ * FS_tbl_pre_refresh_v() is called  before refeshing fs part of hrStorageTable
+ */
+void
+FS_tbl_pre_refresh_v(void);
 
 
 void 
 FS_tbl_process_statfs_entry_v(const struct statfs *fs_p, int32_t storage_idx);
 
 /*
+ * FS_tbl_pre_refresh_v() is called after refeshing fs part of hrStorageTable
+ */
+void
+FS_tbl_post_refresh_v(void);
+
+
+/*
  * Init the things for hrFSTable.
  */
 void init_hrFS_tbl_v(void);
@@ -240,7 +255,12 @@
  */
 void fini_hrFS_tbl_v(void);
 
-#define HR_FS_TBL_REFRESH	7
+/*
+ * Next macro represents the number of seconds
+ * between two consecutive queries to the OS for getting the new data
+ * for hrFSTable
+ */
+#define HR_FS_TBL_REFRESH	HR_STORAGE_TBL_REFRESH
 /*
  * Refresh routine for hrFSTable.
  * Usable for polling the system for any changes.

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_storage_tbl.c#6 (text+ko) ====

@@ -309,7 +309,11 @@
 	
 }
 
-
+/*
+ * Query the underlaying OS for the mounted file systems
+ * anf fill in the respective lists (for hrStorageTable and for hrFSTable)
+ */
+static
 void hrStorage_OS_get_fs_v(void) {
 	int mounted_fs_count = 0;
 	int i = 0;
@@ -341,6 +345,9 @@
 	}
 	
 	HR_DPRINTF((stderr, "%s: Got %d mounted FS\n ", __func__, mounted_fs_count));
+	
+	FS_tbl_pre_refresh_v();	
+	
 	for(i = 0; i < mounted_fs_count; i++ ) {
 		
 		
@@ -405,6 +412,7 @@
 		
 	}/*end for*/
 	
+	FS_tbl_post_refresh_v();
 
 }
 

From owner-p4-projects@FreeBSD.ORG  Mon Jul 18 22:46:01 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id D233016A420; Mon, 18 Jul 2005 22:46:00 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 AAD0416A41C
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 22:46:00 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 6DFCB43D45
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 22:46:00 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6IMk0Rq092409
	for <perforce@freebsd.org>; Mon, 18 Jul 2005 22:46:00 GMT
	(envelope-from soc-anders@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6IMk0d1092404
	for perforce@freebsd.org; Mon, 18 Jul 2005 22:46:00 GMT
	(envelope-from soc-anders@freebsd.org)
Date: Mon, 18 Jul 2005 22:46:00 GMT
Message-Id: <200507182246.j6IMk0d1092404@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-anders@freebsd.org using -f
From: soc-anders <soc-anders@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80485 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Jul 2005 22:46:01 -0000

http://perforce.freebsd.org/chv.cgi?CH=80485

Change 80485 by soc-anders@soc-anders_gimli on 2005/07/18 22:45:43

	When listing interfaces, the '-I' flag did not work correctly, now it should :)
	Parsing of messages is done in a safer manner.  

Affected files ...

.. //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/if.c#5 edit

Differences ...

==== //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/if.c#5 (text+ko) ====

@@ -60,6 +60,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include <err.h>
 
 #define IFCLEANUP
 
@@ -174,7 +175,7 @@
 	struct ifa_msghdr *ifam;
 	struct sockaddr *addr, *mask, *brd;
 	u_long if_mtu;
-	int if_index;
+	int if_index = -1;
 
 	if (_interval) {
 		sidewaysintpr((unsigned)_interval, ifnetaddr);
@@ -232,48 +233,69 @@
 		if (ifm->ifm_type == RTM_IFINFO) {
 			struct sockaddr_dl *sdl;
 			if (!(ifm->ifm_addrs & RTA_IFP)) {
-				printf("Missing IFP\n");
-				exit(1);
+				errx(1, "Interface information missing");
 			}
 			sa = (struct sockaddr *)(cur + sizeof(*ifm));
 			addr = sa;
 			sdl = (struct sockaddr_dl *)sa;
 			strlcpy(name, sdl->sdl_data, sdl->sdl_nlen+1);
 			cur += ifm->ifm_msglen;		      
-			if (interface != 0 && (strcmp(name, interface) != 0)) 
-				continue;			
+			if (interface != 0 && (strcmp(name, interface) != 0)) {
+				if_index = -1;
+				continue;	
+			}		
+			
+			if (pfunc) {
+				(*pfunc)(name);
+				continue;
+			}
+
 			if ((ifm->ifm_flags & IFF_UP) == 0) {
 				cp = index(name, '\0');
 				*cp++ = '*';
 				*cp = '\0';
-			}
+			}			
 			if_mtu = ifm->ifm_data.ifi_mtu;
 			if_index = ifm->ifm_index;
 
 		} else if (ifm->ifm_type == RTM_NEWADDR) {
 			int addrs = ifm->ifm_addrs;
+			char *msgend;
+			int i;
+
+			if (if_index < 0) {
+				cur += ifm->ifm_msglen;
+				continue;
+			}
 			ifam = (struct ifa_msghdr *)cur;
+			msgend = cur + ifm->ifm_msglen;
 			cur += sizeof(*ifam);
-
-			while (addrs != 0) {
+			for (i = 0; addrs != 0 && i < RTAX_MAX && cur < msgend; 
+			     addrs &= ~(1<<i), i++) {
+				if (!(addrs & 1<<i))
+					continue;
 				sa = (struct sockaddr *)cur;
 				cur += SA_SIZE(sa);
 				if (sa->sa_len == 0) 
 					continue;
 				
-				if (addrs & RTA_NETMASK) {
+				switch (1<<i) {
+				case RTA_NETMASK:
 					mask = sa;
-					addrs &= ~RTA_NETMASK;
-				} else if (addrs & RTA_IFA) {
+				break;
+				case RTA_IFA:
 					addr = sa;
-					addrs &= ~RTA_IFA;
-				} else if (addrs & RTA_BRD) {
+					break;
+				case RTA_BRD:
 					brd = sa;
-					addrs &= ~RTA_BRD;
+					break;
+				default:
+					break;
 				}
 			}
+			cur = msgend;
 		} else {
-			printf("Unknown message type: %d\n", ifm->ifm_type);
+			warnx("Unexpected message type: %d\n", ifm->ifm_type);
 			cur += ifm->ifm_msglen;
 			continue;
 		}
@@ -299,7 +321,7 @@
 			drops = ifm->ifm_data.ifi_iqdrops;
 		}
 
-		if (af != AF_UNSPEC && sa->sa_family != af)
+		if (af != AF_UNSPEC && addr->sa_family != af)
 			continue;
 		
 		if (Wflag)
@@ -362,8 +384,8 @@
 			break;
 
 		case AF_APPLETALK:
-			printf("atalk:%-12.12s ",atalk_print(sa,0x10) );
-			printf("%-11.11s  ",atalk_print(sa,0x0b) );
+			printf("atalk:%-12.12s ",atalk_print(addr,0x10) );
+			printf("%-11.11s  ",atalk_print(addr,0x0b) );
 			break;
 		case AF_LINK:
 			{
@@ -377,11 +399,11 @@
 			}
 			goto hexprint;
 		default:
-			m = printf("(%d)", sa->sa_family);
-			for (cp = sa->sa_len + (char *)sa;
-			     --cp > sa->sa_data && (*cp == 0);) {}
-			n = cp - sa->sa_data + 1;
-			cp = sa->sa_data;
+			m = printf("(%d)", addr->sa_family);
+			for (cp = addr->sa_len + (char *)addr;
+			     --cp > addr->sa_data && (*cp == 0);) {}
+			n = cp - addr->sa_data + 1;
+			cp = addr->sa_data;
 		hexprint:
 			while (--n >= 0)
 				m += printf("%02x%c", *cp++ & 0xff,
@@ -469,10 +491,9 @@
 			mib[5] = if_index; 
 			if (sysctl(mib, 6, NULL, &mlen, NULL, 0) < 0)
 				continue;
-			if ((mbuf = malloc(mlen)) == NULL) {
-				printf("malloc\n");
-				exit(1);
-			}
+			if ((mbuf = malloc(mlen)) == NULL) 
+				err(1, NULL);
+
 			if (sysctl(mib, 6, mbuf, &mlen, NULL, 0) < 0) {
 				free(mbuf);
 				continue;
@@ -482,24 +503,33 @@
 			mend = mcur + mlen;
 			while (mcur < mend) {
 				ifmam = (struct ifma_msghdr *)mcur;
+				if (ifmam->ifmam_type != RTM_NEWMADDR) {
+					warnx("Unexpected message type: %d", ifmam->ifmam_type);
+					mcur += ifmam->ifmam_msglen;
+					continue;
+				}
+
 				int addrs = ifmam->ifmam_addrs;
+				int i;
+				char *msgend = mcur + ifmam->ifmam_msglen;
+				
 				mcur += sizeof(*ifmam);
-				while (addrs != 0) {
-					struct sockaddr *tmp = 
-						(struct sockaddr *)mcur;
-					mcur += SA_SIZE(tmp);
-					if (addrs & RTA_GATEWAY)
-						addrs &= ~RTA_GATEWAY;
-					else if (addrs & RTA_IFP) 
-						addrs &= ~RTA_IFP;
-					else if (addrs & RTA_IFA) {
-						bcopy(tmp, &msa, tmp->sa_len);
-						addrs &= ~RTA_IFA;
-					} else {
-						printf("UNEXPECTED: %x\n", addrs);
+
+				for (i = 0; addrs != 0 && i < RTAX_MAX && mcur < msgend;
+				     addrs &= ~(1<<i), i++) {
+					if (!(addrs & 1<<i))
+						continue;
+					sa = (struct sockaddr *)mcur;				       
+					mcur += SA_SIZE(sa);
+
+					if (sa->sa_len == 0)
 						continue;
-					}
+
+					if (1<<i == RTA_IFA)
+						bcopy(sa, &msa, sa->sa_len);					
 				}
+				mcur = msgend;
+
 				fmt = 0;
 				switch (msa.sa.sa_family) {
 				case AF_INET:

From owner-p4-projects@FreeBSD.ORG  Tue Jul 19 02:16:19 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id D938916A420; Tue, 19 Jul 2005 02:16:18 +0000 (GMT)
X-Original-To: perforce@FreeBSD.org
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 65CFA16A41C
	for <perforce@FreeBSD.org>; Tue, 19 Jul 2005 02:16:18 +0000 (GMT)
	(envelope-from samy@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 3795D43D45
	for <perforce@FreeBSD.org>; Tue, 19 Jul 2005 02:16:18 +0000 (GMT)
	(envelope-from samy@FreeBSD.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6J2GIIJ007944
	for <perforce@FreeBSD.org>; Tue, 19 Jul 2005 02:16:18 GMT
	(envelope-from samy@FreeBSD.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6J2GHED007941
	for perforce@freebsd.org; Tue, 19 Jul 2005 02:16:17 GMT
	(envelope-from samy@FreeBSD.org)
Date: Tue, 19 Jul 2005 02:16:17 GMT
Message-Id: <200507190216.j6J2GHED007941@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	samy@FreeBSD.org using -f
From: Samy Al Bahra <samy@FreeBSD.org>
To: Perforce Change Reviews <perforce@FreeBSD.org>
Cc: 
Subject: PERFORCE change 80496 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 19 Jul 2005 02:16:19 -0000

http://perforce.freebsd.org/chv.cgi?CH=80496

Change 80496 by samy@samy_home on 2005/07/19 02:15:25

	These changes introduce the __MAC_version define that was
	introduced to improve third-party security policy support
	as well as introduce the security.mac.version sysctl that
	will allow the ports system proper integration of our new
	MAC versioning scheme.

Affected files ...

.. //depot/projects/trustedbsd/mac/sys/kern/kern_mac.c#445 edit
.. //depot/projects/trustedbsd/mac/sys/sys/mac.h#279 edit

Differences ...

==== //depot/projects/trustedbsd/mac/sys/kern/kern_mac.c#445 (text+ko) ====

@@ -102,6 +102,13 @@
 SYSCTL_NODE(_security, OID_AUTO, mac, CTLFLAG_RW, 0,
     "TrustedBSD MAC policy controls");
 
+/*
+ * Export the MAC API version counter.
+ */
+static int mac_version = __MAC_version;
+SYSCTL_INT(_security_mac, OID_AUTO, version, CTLFLAG_RD,
+    &mac_version, 0, "MAC version");
+
 #if MAC_MAX_SLOTS > 32
 #error "MAC_MAX_SLOTS too large"
 #endif

==== //depot/projects/trustedbsd/mac/sys/sys/mac.h#279 (text+ko) ====

@@ -54,6 +54,21 @@
 #endif
 
 /*
+ * __MAC_version must be incremented with every API or
+ * ABI change to the MAC framework. Once in a branch,
+ * changes may not break existing ABI in a forward
+ * compatible way.
+ *
+ * The scheme is:
+ *   <major>XXXX
+ *
+ * The major of 99 is reserved as a linear counter for
+ * MAC changes in -HEAD.
+ */
+#undef	__MAC_version
+#define	__MAC_version	990000
+
+/*
  * MAC framework-related constants and limits.
  */
 #define	MAC_MAX_POLICY_NAME		32

From owner-p4-projects@FreeBSD.ORG  Tue Jul 19 03:51:14 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 02D3216A420; Tue, 19 Jul 2005 03:51:13 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 B7FF916A41C
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 03:51:13 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 885D343D48
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 03:51:13 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6J3pDbT012923
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 03:51:13 GMT
	(envelope-from soc-anders@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6J3pDgo012920
	for perforce@freebsd.org; Tue, 19 Jul 2005 03:51:13 GMT
	(envelope-from soc-anders@freebsd.org)
Date: Tue, 19 Jul 2005 03:51:13 GMT
Message-Id: <200507190351.j6J3pDgo012920@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-anders@freebsd.org using -f
From: soc-anders <soc-anders@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80499 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 19 Jul 2005 03:51:14 -0000

http://perforce.freebsd.org/chv.cgi?CH=80499

Change 80499 by soc-anders@soc-anders_gimli on 2005/07/19 03:50:53

	'-rs' mode now uses sysctl to obtain rtstat and rttrash info

Affected files ...

.. //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/route.c#3 edit

Differences ...

==== //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/route.c#3 (text+ko) ====

@@ -755,22 +755,21 @@
 {
 	struct rtstat rtstat;
 	int rttrash;
+	size_t len;
 
-	/* IFCLEANUP 
-	 * rtstat should be accessible via sysctl.. until then skip this
-	 */
-	return; 
-
-	if (rtsaddr == 0) {
-		printf("rtstat: symbol not in namelist\n");
+	len = sizeof(rtstat);
+	if (sysctlbyname("net.route.rtstat", &rtstat, &len, 
+		NULL, 0) < 0) {
+		warn("sysctl: net.route.rtstat");
 		return;
 	}
-	if (rttaddr == 0) {
-		printf("rttrash: symbol not in namelist\n");
+	len = sizeof(rttrash);
+	if (sysctlbyname("net.route.rttrash", &rttrash, &len, 
+		NULL, 0) < 0) {
+		warn("sysctl: net.route.rttrash");
 		return;
 	}
-	kread(rtsaddr, (char *)&rtstat, sizeof (rtstat));
-	kread(rttaddr, (char *)&rttrash, sizeof (rttrash));
+
 	printf("routing:\n");
 
 #define	p(f, m) if (rtstat.f || sflag <= 1) \

From owner-p4-projects@FreeBSD.ORG  Tue Jul 19 03:54:18 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 2723D16A420; Tue, 19 Jul 2005 03:54:18 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 01FBF16A41C
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 03:54:18 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id BAEC643D46
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 03:54:17 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6J3sHek013024
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 03:54:17 GMT
	(envelope-from soc-anders@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6J3sHnv013021
	for perforce@freebsd.org; Tue, 19 Jul 2005 03:54:17 GMT
	(envelope-from soc-anders@freebsd.org)
Date: Tue, 19 Jul 2005 03:54:17 GMT
Message-Id: <200507190354.j6J3sHnv013021@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-anders@freebsd.org using -f
From: soc-anders <soc-anders@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80500 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 19 Jul 2005 03:54:19 -0000

http://perforce.freebsd.org/chv.cgi?CH=80500

Change 80500 by soc-anders@soc-anders_gimli on 2005/07/19 03:53:41

	Added sysctl variables net.route.rtstat and net.route.rttrash.

Affected files ...

.. //depot/projects/soc2005/ifcleanup/src/src/sys/net/route.c#2 edit

Differences ...

==== //depot/projects/soc2005/ifcleanup/src/src/sys/net/route.c#2 (text+ko) ====

@@ -40,6 +40,7 @@
 #include <sys/socket.h>
 #include <sys/domain.h>
 #include <sys/kernel.h>
+#include <sys/sysctl.h>
 
 #include <net/if.h>
 #include <net/route.h>
@@ -54,6 +55,12 @@
 
 static int	rttrash;		/* routes not in table but not freed */
 
+SYSCTL_DECL(_net_route);
+SYSCTL_STRUCT(_net_route, OID_AUTO, rtstat, CTLFLAG_RD, 
+  &rtstat, rtstat, "Routing Statistics (struct rtstat, net/route.h)");
+SYSCTL_INT(_net_route, OID_AUTO, rttrash, CTLFLAG_RD,
+	  &rttrash, 0, "Routes not in table but not freed");
+
 static void rt_maskedcopy(struct sockaddr *,
 	    struct sockaddr *, struct sockaddr *);
 static void rtable_init(void **);

From owner-p4-projects@FreeBSD.ORG  Tue Jul 19 11:26:34 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 8BFEA16A420; Tue, 19 Jul 2005 11:26:33 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 57DB516A41C
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 11:26:33 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id A438343D49
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 11:26:32 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6JBQWiV043902
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 11:26:32 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6JBQVgg043899
	for perforce@freebsd.org; Tue, 19 Jul 2005 11:26:31 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Tue, 19 Jul 2005 11:26:31 GMT
Message-Id: <200507191126.j6JBQVgg043899@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson <rwatson@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80517 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 19 Jul 2005 11:26:34 -0000

http://perforce.freebsd.org/chv.cgi?CH=80517

Change 80517 by rwatson@rwatson_zoo on 2005/07/19 11:26:04

	Integrate netperf_socket.  Netperf-relevant changes include:
	
	- system call table and emulation MPSAFEty cleanup
	- NET_LOCK_GIANT() in Linux socket-related code
	- if_cnw, if_sbsh become IFF_NEEDSGIANT
	- if_cx locking
	- UMA(9), malloc(9) statistics stream and libmemstat(3) support.
	- Mbuf zone naming consistency.
	- MAC checks for socket creation.
	- mac_copy_mbuf()
	- NATM locking.

Affected files ...

.. //depot/projects/netperf_socket/sys/alpha/alpha/vm_machdep.c#10 integrate
.. //depot/projects/netperf_socket/sys/alpha/conf/GENERIC#18 integrate
.. //depot/projects/netperf_socket/sys/alpha/include/atomic.h#4 integrate
.. //depot/projects/netperf_socket/sys/alpha/linux/linux_proto.h#10 integrate
.. //depot/projects/netperf_socket/sys/alpha/linux/linux_syscall.h#10 integrate
.. //depot/projects/netperf_socket/sys/alpha/linux/linux_sysent.c#10 integrate
.. //depot/projects/netperf_socket/sys/alpha/linux/syscalls.master#11 integrate
.. //depot/projects/netperf_socket/sys/alpha/osf1/Makefile#2 integrate
.. //depot/projects/netperf_socket/sys/alpha/osf1/osf1_misc.c#11 integrate
.. //depot/projects/netperf_socket/sys/alpha/osf1/osf1_proto.h#6 integrate
.. //depot/projects/netperf_socket/sys/alpha/osf1/osf1_syscall.h#6 integrate
.. //depot/projects/netperf_socket/sys/alpha/osf1/osf1_sysent.c#6 integrate
.. //depot/projects/netperf_socket/sys/alpha/osf1/syscalls.master#6 integrate
.. //depot/projects/netperf_socket/sys/amd64/amd64/sys_machdep.c#4 integrate
.. //depot/projects/netperf_socket/sys/amd64/amd64/vm_machdep.c#18 integrate
.. //depot/projects/netperf_socket/sys/amd64/conf/GENERIC#24 integrate
.. //depot/projects/netperf_socket/sys/amd64/include/atomic.h#3 integrate
.. //depot/projects/netperf_socket/sys/amd64/isa/clock.c#11 integrate
.. //depot/projects/netperf_socket/sys/amd64/linux32/linux32_proto.h#5 integrate
.. //depot/projects/netperf_socket/sys/amd64/linux32/linux32_syscall.h#5 integrate
.. //depot/projects/netperf_socket/sys/amd64/linux32/linux32_sysent.c#5 integrate
.. //depot/projects/netperf_socket/sys/amd64/linux32/syscalls.master#5 integrate
.. //depot/projects/netperf_socket/sys/arm/arm/vm_machdep.c#12 integrate
.. //depot/projects/netperf_socket/sys/arm/include/atomic.h#7 integrate
.. //depot/projects/netperf_socket/sys/boot/ficl/Makefile#7 integrate
.. //depot/projects/netperf_socket/sys/boot/i386/Makefile.inc#4 integrate
.. //depot/projects/netperf_socket/sys/boot/i386/boot2/Makefile#6 integrate
.. //depot/projects/netperf_socket/sys/boot/i386/libi386/Makefile#4 integrate
.. //depot/projects/netperf_socket/sys/boot/i386/libi386/libi386.h#5 integrate
.. //depot/projects/netperf_socket/sys/boot/i386/libi386/smbios.c#1 branch
.. //depot/projects/netperf_socket/sys/boot/i386/loader/main.c#5 integrate
.. //depot/projects/netperf_socket/sys/compat/freebsd32/freebsd32_misc.c#14 integrate
.. //depot/projects/netperf_socket/sys/compat/freebsd32/freebsd32_proto.h#14 integrate
.. //depot/projects/netperf_socket/sys/compat/freebsd32/freebsd32_syscall.h#14 integrate
.. //depot/projects/netperf_socket/sys/compat/freebsd32/freebsd32_syscalls.c#14 integrate
.. //depot/projects/netperf_socket/sys/compat/freebsd32/freebsd32_sysent.c#14 integrate
.. //depot/projects/netperf_socket/sys/compat/freebsd32/syscalls.master#13 integrate
.. //depot/projects/netperf_socket/sys/compat/linux/linux_getcwd.c#5 integrate
.. //depot/projects/netperf_socket/sys/compat/linux/linux_misc.c#13 integrate
.. //depot/projects/netperf_socket/sys/compat/linux/linux_socket.c#10 integrate
.. //depot/projects/netperf_socket/sys/compat/ndis/subr_ntoskrnl.c#23 integrate
.. //depot/projects/netperf_socket/sys/compat/svr4/svr4.h#3 integrate
.. //depot/projects/netperf_socket/sys/compat/svr4/svr4_ipc.c#3 integrate
.. //depot/projects/netperf_socket/sys/compat/svr4/svr4_misc.c#8 integrate
.. //depot/projects/netperf_socket/sys/compat/svr4/svr4_proto.h#5 integrate
.. //depot/projects/netperf_socket/sys/compat/svr4/svr4_socket.c#4 integrate
.. //depot/projects/netperf_socket/sys/compat/svr4/svr4_stream.c#8 integrate
.. //depot/projects/netperf_socket/sys/compat/svr4/svr4_syscall.h#5 integrate
.. //depot/projects/netperf_socket/sys/compat/svr4/svr4_syscallnames.c#5 integrate
.. //depot/projects/netperf_socket/sys/compat/svr4/svr4_sysent.c#5 integrate
.. //depot/projects/netperf_socket/sys/compat/svr4/syscalls.master#5 integrate
.. //depot/projects/netperf_socket/sys/conf/NOTES#53 integrate
.. //depot/projects/netperf_socket/sys/conf/files#65 integrate
.. //depot/projects/netperf_socket/sys/conf/files.amd64#24 integrate
.. //depot/projects/netperf_socket/sys/conf/kern.mk#7 integrate
.. //depot/projects/netperf_socket/sys/conf/newvers.sh#8 integrate
.. //depot/projects/netperf_socket/sys/conf/options#40 integrate
.. //depot/projects/netperf_socket/sys/contrib/pf/net/if_pfsync.c#16 integrate
.. //depot/projects/netperf_socket/sys/dev/aac/aac_pci.c#13 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/acpi_thermal.c#16 integrate
.. //depot/projects/netperf_socket/sys/dev/advansys/adv_isa.c#6 integrate
.. //depot/projects/netperf_socket/sys/dev/ath/if_ath.c#15 integrate
.. //depot/projects/netperf_socket/sys/dev/ath/if_athvar.h#8 integrate
.. //depot/projects/netperf_socket/sys/dev/auxio/auxio.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/cnw/if_cnw.c#7 integrate
.. //depot/projects/netperf_socket/sys/dev/cp/if_cp.c#15 integrate
.. //depot/projects/netperf_socket/sys/dev/ctau/if_ct.c#17 integrate
.. //depot/projects/netperf_socket/sys/dev/cx/if_cx.c#23 integrate
.. //depot/projects/netperf_socket/sys/dev/ed/if_ed_pccard.c#8 integrate
.. //depot/projects/netperf_socket/sys/dev/em/README#3 integrate
.. //depot/projects/netperf_socket/sys/dev/ep/if_epvar.h#4 integrate
.. //depot/projects/netperf_socket/sys/dev/ex/if_ex_pccard.c#6 integrate
.. //depot/projects/netperf_socket/sys/dev/fb/creator.c#6 integrate
.. //depot/projects/netperf_socket/sys/dev/fb/machfb.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/firewire/fwohci_pci.c#13 integrate
.. //depot/projects/netperf_socket/sys/dev/hatm/if_hatm_intr.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/hme/if_hme_pci.c#11 integrate
.. //depot/projects/netperf_socket/sys/dev/hwpmc/hwpmc_amd.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/hwpmc/hwpmc_logging.c#2 integrate
.. //depot/projects/netperf_socket/sys/dev/hwpmc/hwpmc_mod.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/hwpmc/hwpmc_piv.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/hwpmc/hwpmc_ppro.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/ipw/if_ipw.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/iwi/if_iwi.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/kbd/kbd.c#6 integrate
.. //depot/projects/netperf_socket/sys/dev/kbd/kbdreg.h#3 integrate
.. //depot/projects/netperf_socket/sys/dev/kbdmux/kbdmux.c#1 branch
.. //depot/projects/netperf_socket/sys/dev/mpt/mpilib/fc_log.h#3 integrate
.. //depot/projects/netperf_socket/sys/dev/mpt/mpilib/mpi.h#3 integrate
.. //depot/projects/netperf_socket/sys/dev/mpt/mpilib/mpi_cnfg.h#3 integrate
.. //depot/projects/netperf_socket/sys/dev/mpt/mpilib/mpi_fc.h#3 integrate
.. //depot/projects/netperf_socket/sys/dev/mpt/mpilib/mpi_init.h#3 integrate
.. //depot/projects/netperf_socket/sys/dev/mpt/mpilib/mpi_ioc.h#3 integrate
.. //depot/projects/netperf_socket/sys/dev/mpt/mpilib/mpi_lan.h#3 integrate
.. //depot/projects/netperf_socket/sys/dev/mpt/mpilib/mpi_raid.h#3 integrate
.. //depot/projects/netperf_socket/sys/dev/mpt/mpilib/mpi_targ.h#3 integrate
.. //depot/projects/netperf_socket/sys/dev/mpt/mpilib/mpi_type.h#5 integrate
.. //depot/projects/netperf_socket/sys/dev/mpt/mpt.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/mpt/mpt.h#3 integrate
.. //depot/projects/netperf_socket/sys/dev/mpt/mpt_cam.c#1 branch
.. //depot/projects/netperf_socket/sys/dev/mpt/mpt_cam.h#1 branch
.. //depot/projects/netperf_socket/sys/dev/mpt/mpt_debug.c#5 integrate
.. //depot/projects/netperf_socket/sys/dev/mpt/mpt_freebsd.c#5 delete
.. //depot/projects/netperf_socket/sys/dev/mpt/mpt_freebsd.h#4 delete
.. //depot/projects/netperf_socket/sys/dev/mpt/mpt_pci.c#6 integrate
.. //depot/projects/netperf_socket/sys/dev/mpt/mpt_raid.c#1 branch
.. //depot/projects/netperf_socket/sys/dev/mpt/mpt_raid.h#1 branch
.. //depot/projects/netperf_socket/sys/dev/mpt/mpt_reg.h#1 branch
.. //depot/projects/netperf_socket/sys/dev/pccard/pccard.c#7 integrate
.. //depot/projects/netperf_socket/sys/dev/pccard/pccard_cis.c#6 integrate
.. //depot/projects/netperf_socket/sys/dev/pccard/pccard_cis.h#3 integrate
.. //depot/projects/netperf_socket/sys/dev/pccard/pccarddevs#10 integrate
.. //depot/projects/netperf_socket/sys/dev/pccard/pccardvar.h#6 integrate
.. //depot/projects/netperf_socket/sys/dev/pccbb/pccbb.c#15 integrate
.. //depot/projects/netperf_socket/sys/dev/pccbb/pccbb_pci.c#8 integrate
.. //depot/projects/netperf_socket/sys/dev/pccbb/pccbbreg.h#3 integrate
.. //depot/projects/netperf_socket/sys/dev/pccbb/pccbbvar.h#5 integrate
.. //depot/projects/netperf_socket/sys/dev/ral/if_ral.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/sbsh/if_sbsh.c#7 integrate
.. //depot/projects/netperf_socket/sys/dev/sn/if_sn.c#9 integrate
.. //depot/projects/netperf_socket/sys/dev/sn/if_sn_isa.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/sn/if_sn_pccard.c#6 integrate
.. //depot/projects/netperf_socket/sys/dev/sn/if_snvar.h#4 integrate
.. //depot/projects/netperf_socket/sys/dev/sn/ositech.h#1 branch
.. //depot/projects/netperf_socket/sys/dev/sound/isa/mss.c#9 integrate
.. //depot/projects/netperf_socket/sys/dev/syscons/syscons.c#18 integrate
.. //depot/projects/netperf_socket/sys/dev/usb/if_ural.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/usb/if_uralvar.h#3 integrate
.. //depot/projects/netperf_socket/sys/dev/usb/sl811hs.c#1 branch
.. //depot/projects/netperf_socket/sys/dev/usb/sl811hsreg.h#1 branch
.. //depot/projects/netperf_socket/sys/dev/usb/sl811hsvar.h#1 branch
.. //depot/projects/netperf_socket/sys/dev/usb/slhci_pccard.c#1 branch
.. //depot/projects/netperf_socket/sys/dev/usb/ulpt.c#8 integrate
.. //depot/projects/netperf_socket/sys/dev/usb/umass.c#17 integrate
.. //depot/projects/netperf_socket/sys/dev/usb/usb.c#9 integrate
.. //depot/projects/netperf_socket/sys/dev/usb/usbdevs#34 integrate
.. //depot/projects/netperf_socket/sys/dev/wi/if_wi_pccard.c#9 integrate
.. //depot/projects/netperf_socket/sys/dev/xe/if_xe.c#10 integrate
.. //depot/projects/netperf_socket/sys/dev/xe/if_xe_pccard.c#8 integrate
.. //depot/projects/netperf_socket/sys/fs/devfs/devfs_devs.c#8 integrate
.. //depot/projects/netperf_socket/sys/fs/devfs/devfs_vnops.c#17 integrate
.. //depot/projects/netperf_socket/sys/fs/msdosfs/msdosfs_conv.c#6 integrate
.. //depot/projects/netperf_socket/sys/fs/pseudofs/pseudofs_vncache.c#8 integrate
.. //depot/projects/netperf_socket/sys/fs/udf/udf_vnops.c#13 integrate
.. //depot/projects/netperf_socket/sys/geom/concat/g_concat.c#18 integrate
.. //depot/projects/netperf_socket/sys/geom/gate/g_gate.c#12 integrate
.. //depot/projects/netperf_socket/sys/geom/gate/g_gate.h#3 integrate
.. //depot/projects/netperf_socket/sys/geom/geom_mbr.c#10 integrate
.. //depot/projects/netperf_socket/sys/geom/geom_pc98.c#8 integrate
.. //depot/projects/netperf_socket/sys/geom/stripe/g_stripe.c#17 integrate
.. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_var.h#6 integrate
.. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_volume.c#8 integrate
.. //depot/projects/netperf_socket/sys/gnu/fs/ext2fs/ext2_vnops.c#2 integrate
.. //depot/projects/netperf_socket/sys/i386/conf/GENERIC#21 integrate
.. //depot/projects/netperf_socket/sys/i386/i386/exception.s#8 integrate
.. //depot/projects/netperf_socket/sys/i386/i386/machdep.c#21 integrate
.. //depot/projects/netperf_socket/sys/i386/i386/trap.c#11 integrate
.. //depot/projects/netperf_socket/sys/i386/i386/vm_machdep.c#23 integrate
.. //depot/projects/netperf_socket/sys/i386/ibcs2/ibcs2_isc.c#2 integrate
.. //depot/projects/netperf_socket/sys/i386/ibcs2/ibcs2_isc_syscall.h#4 integrate
.. //depot/projects/netperf_socket/sys/i386/ibcs2/ibcs2_isc_sysent.c#4 integrate
.. //depot/projects/netperf_socket/sys/i386/ibcs2/ibcs2_misc.c#8 integrate
.. //depot/projects/netperf_socket/sys/i386/ibcs2/ibcs2_proto.h#6 integrate
.. //depot/projects/netperf_socket/sys/i386/ibcs2/ibcs2_syscall.h#6 integrate
.. //depot/projects/netperf_socket/sys/i386/ibcs2/ibcs2_sysent.c#7 integrate
.. //depot/projects/netperf_socket/sys/i386/ibcs2/ibcs2_sysi86.c#3 integrate
.. //depot/projects/netperf_socket/sys/i386/ibcs2/ibcs2_xenix.c#3 integrate
.. //depot/projects/netperf_socket/sys/i386/ibcs2/ibcs2_xenix.h#4 integrate
.. //depot/projects/netperf_socket/sys/i386/ibcs2/ibcs2_xenix_syscall.h#4 integrate
.. //depot/projects/netperf_socket/sys/i386/ibcs2/ibcs2_xenix_sysent.c#4 integrate
.. //depot/projects/netperf_socket/sys/i386/ibcs2/syscalls.isc#4 integrate
.. //depot/projects/netperf_socket/sys/i386/ibcs2/syscalls.master#6 integrate
.. //depot/projects/netperf_socket/sys/i386/ibcs2/syscalls.xenix#4 integrate
.. //depot/projects/netperf_socket/sys/i386/include/atomic.h#6 integrate
.. //depot/projects/netperf_socket/sys/i386/isa/clock.c#11 integrate
.. //depot/projects/netperf_socket/sys/i386/linux/linux_proto.h#10 integrate
.. //depot/projects/netperf_socket/sys/i386/linux/linux_syscall.h#10 integrate
.. //depot/projects/netperf_socket/sys/i386/linux/linux_sysent.c#10 integrate
.. //depot/projects/netperf_socket/sys/i386/linux/syscalls.master#10 integrate
.. //depot/projects/netperf_socket/sys/i386/pci/pci_pir.c#9 integrate
.. //depot/projects/netperf_socket/sys/ia64/conf/GENERIC#13 integrate
.. //depot/projects/netperf_socket/sys/ia64/ia64/machdep.c#19 integrate
.. //depot/projects/netperf_socket/sys/ia64/ia64/vm_machdep.c#10 integrate
.. //depot/projects/netperf_socket/sys/ia64/include/atomic.h#3 integrate
.. //depot/projects/netperf_socket/sys/ia64/include/md_var.h#8 integrate
.. //depot/projects/netperf_socket/sys/kern/Makefile#2 integrate
.. //depot/projects/netperf_socket/sys/kern/init_sysent.c#20 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_conf.c#15 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_exit.c#26 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_mac.c#8 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_malloc.c#11 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_mbuf.c#7 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_mutex.c#16 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_thr.c#19 integrate
.. //depot/projects/netperf_socket/sys/kern/sys_generic.c#11 integrate
.. //depot/projects/netperf_socket/sys/kern/syscalls.c#20 integrate
.. //depot/projects/netperf_socket/sys/kern/syscalls.master#20 integrate
.. //depot/projects/netperf_socket/sys/kern/tty_pty.c#18 integrate
.. //depot/projects/netperf_socket/sys/kern/uipc_mbuf2.c#9 integrate
.. //depot/projects/netperf_socket/sys/kern/uipc_syscalls.c#34 integrate
.. //depot/projects/netperf_socket/sys/kern/vfs_subr.c#35 integrate
.. //depot/projects/netperf_socket/sys/modules/Makefile#30 integrate
.. //depot/projects/netperf_socket/sys/modules/ed/Makefile#4 integrate
.. //depot/projects/netperf_socket/sys/modules/ep/Makefile#5 integrate
.. //depot/projects/netperf_socket/sys/modules/kbdmux/Makefile#1 branch
.. //depot/projects/netperf_socket/sys/modules/mpt/Makefile#2 integrate
.. //depot/projects/netperf_socket/sys/modules/slhci/Makefile#1 branch
.. //depot/projects/netperf_socket/sys/modules/sound/sound/Makefile#3 integrate
.. //depot/projects/netperf_socket/sys/modules/syscons/Makefile#3 integrate
.. //depot/projects/netperf_socket/sys/modules/ukbd/Makefile#5 integrate
.. //depot/projects/netperf_socket/sys/net/bpf.h#8 integrate
.. //depot/projects/netperf_socket/sys/net/bridgestp.c#2 integrate
.. //depot/projects/netperf_socket/sys/net/bsd_comp.c#4 integrate
.. //depot/projects/netperf_socket/sys/net/if.c#31 integrate
.. //depot/projects/netperf_socket/sys/net/if_atmsubr.c#5 integrate
.. //depot/projects/netperf_socket/sys/net/if_bridge.c#2 integrate
.. //depot/projects/netperf_socket/sys/net/if_bridgevar.h#2 integrate
.. //depot/projects/netperf_socket/sys/net/if_ppp.c#12 integrate
.. //depot/projects/netperf_socket/sys/net/rtsock.c#20 integrate
.. //depot/projects/netperf_socket/sys/net80211/ieee80211_crypto.c#5 integrate
.. //depot/projects/netperf_socket/sys/net80211/ieee80211_crypto_ccmp.c#3 integrate
.. //depot/projects/netperf_socket/sys/net80211/ieee80211_freebsd.h#3 integrate
.. //depot/projects/netperf_socket/sys/net80211/ieee80211_input.c#8 integrate
.. //depot/projects/netperf_socket/sys/net80211/ieee80211_ioctl.c#9 integrate
.. //depot/projects/netperf_socket/sys/net80211/ieee80211_ioctl.h#5 integrate
.. //depot/projects/netperf_socket/sys/net80211/ieee80211_node.c#11 integrate
.. //depot/projects/netperf_socket/sys/net80211/ieee80211_node.h#8 integrate
.. //depot/projects/netperf_socket/sys/net80211/ieee80211_output.c#8 integrate
.. //depot/projects/netperf_socket/sys/net80211/ieee80211_var.h#8 integrate
.. //depot/projects/netperf_socket/sys/netatalk/ddp_output.c#7 integrate
.. //depot/projects/netperf_socket/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c#12 integrate
.. //depot/projects/netperf_socket/sys/netgraph/netflow/ng_netflow.c#5 integrate
.. //depot/projects/netperf_socket/sys/netgraph/netgraph.h#14 integrate
.. //depot/projects/netperf_socket/sys/netgraph/ng_base.c#19 integrate
.. //depot/projects/netperf_socket/sys/netgraph/ng_pppoe.c#11 integrate
.. //depot/projects/netperf_socket/sys/netgraph/ng_socket.c#12 integrate
.. //depot/projects/netperf_socket/sys/netgraph/ng_socketvar.h#3 integrate
.. //depot/projects/netperf_socket/sys/netinet/in_proto.c#10 integrate
.. //depot/projects/netperf_socket/sys/netinet/ip_output.c#26 integrate
.. //depot/projects/netperf_socket/sys/netinet/tcp_input.c#30 integrate
.. //depot/projects/netperf_socket/sys/netnatm/natm.c#9 integrate
.. //depot/projects/netperf_socket/sys/netnatm/natm.h#3 integrate
.. //depot/projects/netperf_socket/sys/netnatm/natm_pcb.c#3 integrate
.. //depot/projects/netperf_socket/sys/netnatm/natm_proto.c#3 integrate
.. //depot/projects/netperf_socket/sys/nfs/nfs_common.c#5 integrate
.. //depot/projects/netperf_socket/sys/nfs/nfs_common.h#5 integrate
.. //depot/projects/netperf_socket/sys/nfsclient/nfs_socket.c#16 integrate
.. //depot/projects/netperf_socket/sys/pc98/cbus/clock.c#3 integrate
.. //depot/projects/netperf_socket/sys/pc98/conf/GENERIC#22 integrate
.. //depot/projects/netperf_socket/sys/pc98/pc98/machdep.c#3 integrate
.. //depot/projects/netperf_socket/sys/pci/if_ste.c#21 integrate
.. //depot/projects/netperf_socket/sys/pci/if_ti.c#14 integrate
.. //depot/projects/netperf_socket/sys/pci/if_xl.c#17 integrate
.. //depot/projects/netperf_socket/sys/powerpc/conf/GENERIC#14 integrate
.. //depot/projects/netperf_socket/sys/powerpc/include/atomic.h#4 integrate
.. //depot/projects/netperf_socket/sys/powerpc/powerpc/busdma_machdep.c#7 integrate
.. //depot/projects/netperf_socket/sys/powerpc/powerpc/vm_machdep.c#13 integrate
.. //depot/projects/netperf_socket/sys/security/mac/mac_net.c#6 integrate
.. //depot/projects/netperf_socket/sys/security/mac/mac_socket.c#4 integrate
.. //depot/projects/netperf_socket/sys/security/mac/mac_vfs.c#6 integrate
.. //depot/projects/netperf_socket/sys/security/mac_biba/mac_biba.c#11 integrate
.. //depot/projects/netperf_socket/sys/security/mac_lomac/mac_lomac.c#8 integrate
.. //depot/projects/netperf_socket/sys/security/mac_mls/mac_mls.c#10 integrate
.. //depot/projects/netperf_socket/sys/security/mac_stub/mac_stub.c#8 integrate
.. //depot/projects/netperf_socket/sys/security/mac_test/mac_test.c#11 integrate
.. //depot/projects/netperf_socket/sys/sparc64/conf/GENERIC#22 integrate
.. //depot/projects/netperf_socket/sys/sparc64/creator/creator.h#5 integrate
.. //depot/projects/netperf_socket/sys/sparc64/creator/creator_upa.c#8 integrate
.. //depot/projects/netperf_socket/sys/sparc64/include/atomic.h#3 integrate
.. //depot/projects/netperf_socket/sys/sparc64/sparc64/vm_machdep.c#14 integrate
.. //depot/projects/netperf_socket/sys/sys/cdefs.h#10 integrate
.. //depot/projects/netperf_socket/sys/sys/conf.h#16 integrate
.. //depot/projects/netperf_socket/sys/sys/kbio.h#2 integrate
.. //depot/projects/netperf_socket/sys/sys/mac.h#8 integrate
.. //depot/projects/netperf_socket/sys/sys/mac_policy.h#11 integrate
.. //depot/projects/netperf_socket/sys/sys/malloc.h#6 integrate
.. //depot/projects/netperf_socket/sys/sys/mbuf.h#24 integrate
.. //depot/projects/netperf_socket/sys/sys/mutex.h#12 integrate
.. //depot/projects/netperf_socket/sys/sys/param.h#38 integrate
.. //depot/projects/netperf_socket/sys/sys/pmc.h#3 integrate
.. //depot/projects/netperf_socket/sys/sys/proc.h#36 integrate
.. //depot/projects/netperf_socket/sys/sys/socketvar.h#27 integrate
.. //depot/projects/netperf_socket/sys/sys/syscall.h#19 integrate
.. //depot/projects/netperf_socket/sys/sys/syscall.mk#19 integrate
.. //depot/projects/netperf_socket/sys/sys/syscallsubr.h#8 integrate
.. //depot/projects/netperf_socket/sys/sys/sysproto.h#19 integrate
.. //depot/projects/netperf_socket/sys/sys/uio.h#8 integrate
.. //depot/projects/netperf_socket/sys/vm/uma.h#7 integrate
.. //depot/projects/netperf_socket/sys/vm/uma_core.c#20 integrate
.. //depot/projects/netperf_socket/sys/vm/uma_dbg.c#8 integrate
.. //depot/projects/netperf_socket/sys/vm/uma_dbg.h#5 integrate
.. //depot/projects/netperf_socket/sys/vm/uma_int.h#9 integrate
.. //depot/projects/netperf_socket/sys/vm/vm_fault.c#16 integrate

Differences ...

==== //depot/projects/netperf_socket/sys/alpha/alpha/vm_machdep.c#10 (text+ko) ====

@@ -67,7 +67,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/vm_machdep.c,v 1.109 2005/04/23 02:32:30 davidxu Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/vm_machdep.c,v 1.110 2005/07/10 23:31:09 davidxu Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -360,7 +360,7 @@
 	tf->tf_regs[FRAME_FLAGS] = 0;			/* full restore */
 }
 
-void
+int
 cpu_set_user_tls(struct thread *td, void *tls_base)
 {
 
@@ -368,6 +368,7 @@
 		td->td_pcb->pcb_hw.apcb_unique = (unsigned long)tls_base;
 	else
 		alpha_pal_wrunique((uintptr_t)tls_base);
+	return (0);
 }
 
 /*

==== //depot/projects/netperf_socket/sys/alpha/conf/GENERIC#18 (text+ko) ====

@@ -18,7 +18,7 @@
 #
 # For hardware specific information check HARDWARE.TXT
 #
-# $FreeBSD: src/sys/alpha/conf/GENERIC,v 1.186 2005/06/06 10:53:10 wilko Exp $
+# $FreeBSD: src/sys/alpha/conf/GENERIC,v 1.187 2005/07/14 15:39:04 kensmith Exp $
 
 machine		alpha
 cpu		EV4
@@ -63,6 +63,7 @@
 options 	GEOM_GPT		# GUID Partition Tables.
 options 	COMPAT_43		# Compatible with BSD 4.3 [KEEP THIS!]
 options 	COMPAT_FREEBSD4		# Compatible with FreeBSD4
+options 	COMPAT_FREEBSD5		# Compatible with FreeBSD5
 options 	SCSI_DELAY=5000		# Delay (in ms) before probing SCSI
 options 	KTRACE			# ktrace(1) support
 options 	SYSVSHM			# SYSV-style shared memory

==== //depot/projects/netperf_socket/sys/alpha/include/atomic.h#4 (text+ko) ====

@@ -23,11 +23,11 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/alpha/include/atomic.h,v 1.20 2005/03/02 21:33:20 joerg Exp $
+ * $FreeBSD: src/sys/alpha/include/atomic.h,v 1.22 2005/07/15 18:17:57 jhb Exp $
  */
 
 #ifndef _MACHINE_ATOMIC_H_
-#define _MACHINE_ATOMIC_H_
+#define	_MACHINE_ATOMIC_H_
 
 #ifndef _SYS_CDEFS_H_
 #error this file needs sys/cdefs.h as a prerequisite
@@ -216,29 +216,7 @@
 	return result;
 }
 
-#define atomic_set_char		atomic_set_8
-#define atomic_clear_char	atomic_clear_8
-#define atomic_add_char		atomic_add_8
-#define atomic_subtract_char	atomic_subtract_8
-
-#define atomic_set_short	atomic_set_16
-#define atomic_clear_short	atomic_clear_16
-#define atomic_add_short	atomic_add_16
-#define atomic_subtract_short	atomic_subtract_16
-
-#define atomic_set_int		atomic_set_32
-#define atomic_clear_int	atomic_clear_32
-#define atomic_add_int		atomic_add_32
-#define atomic_subtract_int	atomic_subtract_32
-#define atomic_readandclear_int	atomic_readandclear_32
-
-#define atomic_set_long		atomic_set_64
-#define atomic_clear_long	atomic_clear_64
-#define atomic_add_long		atomic_add_64
-#define atomic_subtract_long	atomic_subtract_64
-#define atomic_readandclear_long	atomic_readandclear_64
-
-#define ATOMIC_ACQ_REL(NAME, WIDTH, TYPE)				\
+#define	ATOMIC_ACQ_REL(NAME, WIDTH)					\
 static __inline void							\
 atomic_##NAME##_acq_##WIDTH(volatile u_int##WIDTH##_t *p, u_int##WIDTH##_t v)\
 {									\
@@ -251,49 +229,36 @@
 {									\
 	alpha_mb();							\
 	atomic_##NAME##_##WIDTH(p, v);					\
-}									\
-									\
-static __inline void							\
-atomic_##NAME##_acq_##TYPE(volatile u_int##WIDTH##_t *p, u_int##WIDTH##_t v)\
-{									\
-	atomic_##NAME##_##WIDTH(p, v);					\
-	alpha_mb();							\
-}									\
-									\
-static __inline void							\
-atomic_##NAME##_rel_##TYPE(volatile u_int##WIDTH##_t *p, u_int##WIDTH##_t v)\
-{									\
-	alpha_mb();							\
-	atomic_##NAME##_##WIDTH(p, v);					\
 }
 
-ATOMIC_ACQ_REL(set, 8, char)
-ATOMIC_ACQ_REL(clear, 8, char)
-ATOMIC_ACQ_REL(add, 8, char)
-ATOMIC_ACQ_REL(subtract, 8, char)
-ATOMIC_ACQ_REL(set, 16, short)
-ATOMIC_ACQ_REL(clear, 16, short)
-ATOMIC_ACQ_REL(add, 16, short)
-ATOMIC_ACQ_REL(subtract, 16, short)
-ATOMIC_ACQ_REL(set, 32, int)
-ATOMIC_ACQ_REL(clear, 32, int)
-ATOMIC_ACQ_REL(add, 32, int)
-ATOMIC_ACQ_REL(subtract, 32, int)
-ATOMIC_ACQ_REL(set, 64, long)
-ATOMIC_ACQ_REL(clear, 64, long)
-ATOMIC_ACQ_REL(add, 64, long)
-ATOMIC_ACQ_REL(subtract, 64, long)
+/* Variants of simple arithmetic with memory barriers. */
+ATOMIC_ACQ_REL(set, 8)
+ATOMIC_ACQ_REL(clear, 8)
+ATOMIC_ACQ_REL(add, 8)
+ATOMIC_ACQ_REL(subtract, 8)
+ATOMIC_ACQ_REL(set, 16)
+ATOMIC_ACQ_REL(clear, 16)
+ATOMIC_ACQ_REL(add, 16)
+ATOMIC_ACQ_REL(subtract, 16)
+ATOMIC_ACQ_REL(set, 32)
+ATOMIC_ACQ_REL(clear, 32)
+ATOMIC_ACQ_REL(add, 32)
+ATOMIC_ACQ_REL(subtract, 32)
+ATOMIC_ACQ_REL(set, 64)
+ATOMIC_ACQ_REL(clear, 64)
+ATOMIC_ACQ_REL(add, 64)
+ATOMIC_ACQ_REL(subtract, 64)
 
 #undef ATOMIC_ACQ_REL
 
 /*
  * We assume that a = b will do atomic loads and stores.
  */
-#define ATOMIC_STORE_LOAD(TYPE, WIDTH)			\
-static __inline u_##TYPE				\
-atomic_load_acq_##WIDTH(volatile u_##TYPE *p)		\
+#define	ATOMIC_STORE_LOAD(WIDTH)			\
+static __inline u_int##WIDTH##_t			\
+atomic_load_acq_##WIDTH(volatile u_int##WIDTH##_t *p)	\
 {							\
-	u_##TYPE v;					\
+	u_int##WIDTH##_t v;				\
 							\
 	v = *p;						\
 	alpha_mb();					\
@@ -301,32 +266,14 @@
 }							\
 							\
 static __inline void					\
-atomic_store_rel_##WIDTH(volatile u_##TYPE *p, u_##TYPE v)\
+atomic_store_rel_##WIDTH(volatile u_int##WIDTH##_t *p, u_int##WIDTH##_t v)\
 {							\
 	alpha_mb();					\
 	*p = v;						\
-}							\
-static __inline u_##TYPE				\
-atomic_load_acq_##TYPE(volatile u_##TYPE *p)		\
-{							\
-	u_##TYPE v;					\
-							\
-	v = *p;						\
-	alpha_mb();					\
-	return (v);					\
-}							\
-							\
-static __inline void					\
-atomic_store_rel_##TYPE(volatile u_##TYPE *p, u_##TYPE v)\
-{							\
-	alpha_mb();					\
-	*p = v;						\
 }
 
-ATOMIC_STORE_LOAD(char,		8)
-ATOMIC_STORE_LOAD(short,	16)
-ATOMIC_STORE_LOAD(int,		32)
-ATOMIC_STORE_LOAD(long,		64)
+ATOMIC_STORE_LOAD(32)
+ATOMIC_STORE_LOAD(64)
 
 #undef ATOMIC_STORE_LOAD
 
@@ -384,17 +331,6 @@
 	return ret;
 }
 
-#define	atomic_cmpset_int	atomic_cmpset_32
-#define	atomic_cmpset_long	atomic_cmpset_64
-
-static __inline int
-atomic_cmpset_ptr(volatile void *dst, void *exp, void *src)
-{
-
-        return (atomic_cmpset_long((volatile u_long *)dst, (u_long)exp,
-            (u_long)src));
-}
-
 static __inline u_int32_t
 atomic_cmpset_acq_32(volatile u_int32_t *p, u_int32_t cmpval, u_int32_t newval)
 {
@@ -429,63 +365,92 @@
 	return (atomic_cmpset_64(p, cmpval, newval));
 }
 
+/* Operations on chars. */
+#define	atomic_set_char		atomic_set_8
+#define	atomic_set_acq_char	atomic_set_acq_8
+#define	atomic_set_rel_char	atomic_set_rel_8
+#define	atomic_clear_char	atomic_clear_8
+#define	atomic_clear_acq_char	atomic_clear_acq_8
+#define	atomic_clear_rel_char	atomic_clear_rel_8
+#define	atomic_add_char		atomic_add_8
+#define	atomic_add_acq_char	atomic_add_acq_8
+#define	atomic_add_rel_char	atomic_add_rel_8
+#define	atomic_subtract_char	atomic_subtract_8
+#define	atomic_subtract_acq_char	atomic_subtract_acq_8
+#define	atomic_subtract_rel_char	atomic_subtract_rel_8
+
+/* Operations on shorts. */
+#define	atomic_set_short	atomic_set_16
+#define	atomic_set_acq_short	atomic_set_acq_16
+#define	atomic_set_rel_short	atomic_set_rel_16
+#define	atomic_clear_short	atomic_clear_16
+#define	atomic_clear_acq_short	atomic_clear_acq_16
+#define	atomic_clear_rel_short	atomic_clear_rel_16
+#define	atomic_add_short	atomic_add_16
+#define	atomic_add_acq_short	atomic_add_acq_16
+#define	atomic_add_rel_short	atomic_add_rel_16
+#define	atomic_subtract_short	atomic_subtract_16
+#define	atomic_subtract_acq_short	atomic_subtract_acq_16
+#define	atomic_subtract_rel_short	atomic_subtract_rel_16
+
+/* Operations on ints. */
+#define	atomic_set_int		atomic_set_32
+#define	atomic_set_acq_int	atomic_set_acq_32
+#define	atomic_set_rel_int	atomic_set_rel_32
+#define	atomic_clear_int	atomic_clear_32
+#define	atomic_clear_acq_int	atomic_clear_acq_32
+#define	atomic_clear_rel_int	atomic_clear_rel_32
+#define	atomic_add_int		atomic_add_32
+#define	atomic_add_acq_int	atomic_add_acq_32
+#define	atomic_add_rel_int	atomic_add_rel_32
+#define	atomic_subtract_int	atomic_subtract_32
+#define	atomic_subtract_acq_int	atomic_subtract_acq_32
+#define	atomic_subtract_rel_int	atomic_subtract_rel_32
+#define	atomic_cmpset_int	atomic_cmpset_32
 #define	atomic_cmpset_acq_int	atomic_cmpset_acq_32
 #define	atomic_cmpset_rel_int	atomic_cmpset_rel_32
+#define	atomic_load_acq_int	atomic_load_acq_32
+#define	atomic_store_rel_int	atomic_store_rel_32
+#define	atomic_readandclear_int	atomic_readandclear_32
+
+/* Operations on longs. */
+#define	atomic_set_long		atomic_set_64
+#define	atomic_set_acq_long	atomic_set_acq_64
+#define	atomic_set_rel_long	atomic_set_rel_64
+#define	atomic_clear_long	atomic_clear_64
+#define	atomic_clear_acq_long	atomic_clear_acq_64
+#define	atomic_clear_rel_long	atomic_clear_rel_64
+#define	atomic_add_long		atomic_add_64
+#define	atomic_add_acq_long	atomic_add_acq_64
+#define	atomic_add_rel_long	atomic_add_rel_64
+#define	atomic_subtract_long	atomic_subtract_64
+#define	atomic_subtract_acq_long	atomic_subtract_acq_64
+#define	atomic_subtract_rel_long	atomic_subtract_rel_64
+#define	atomic_cmpset_long	atomic_cmpset_64
 #define	atomic_cmpset_acq_long	atomic_cmpset_acq_64
 #define	atomic_cmpset_rel_long	atomic_cmpset_rel_64
+#define	atomic_load_acq_long	atomic_load_acq_64
+#define	atomic_store_rel_long	atomic_store_rel_64
+#define	atomic_readandclear_long	atomic_readandclear_64
 
-static __inline int
-atomic_cmpset_acq_ptr(volatile void *dst, void *exp, void *src)
-{
-
-        return (atomic_cmpset_acq_long((volatile u_long *)dst, (u_long)exp,
-	    (u_long)src));
-}
-
-static __inline int
-atomic_cmpset_rel_ptr(volatile void *dst, void *exp, void *src)
-{
-
-        return (atomic_cmpset_rel_long((volatile u_long *)dst, (u_long)exp,
-            (u_long)src));
-}
-
-static __inline void *
-atomic_load_acq_ptr(volatile void *p)
-{
-	return (void *)atomic_load_acq_long((volatile u_long *)p);
-}
-
-static __inline void
-atomic_store_rel_ptr(volatile void *p, void *v)
-{
-	atomic_store_rel_long((volatile u_long *)p, (u_long)v);
-}
-
-#define ATOMIC_PTR(NAME)				\
-static __inline void					\
-atomic_##NAME##_ptr(volatile void *p, uintptr_t v)	\
-{							\
-	atomic_##NAME##_long((volatile u_long *)p, v);	\
-}							\
-							\
-static __inline void					\
-atomic_##NAME##_acq_ptr(volatile void *p, uintptr_t v)	\
-{							\
-	atomic_##NAME##_acq_long((volatile u_long *)p, v);\
-}							\
-							\
-static __inline void					\
-atomic_##NAME##_rel_ptr(volatile void *p, uintptr_t v)	\
-{							\
-	atomic_##NAME##_rel_long((volatile u_long *)p, v);\
-}
-
-ATOMIC_PTR(set)
-ATOMIC_PTR(clear)
-ATOMIC_PTR(add)
-ATOMIC_PTR(subtract)
-
-#undef ATOMIC_PTR
+/* Operations on pointers. */
+#define	atomic_set_ptr		atomic_set_64
+#define	atomic_set_acq_ptr	atomic_set_acq_64
+#define	atomic_set_rel_ptr	atomic_set_rel_64
+#define	atomic_clear_ptr	atomic_clear_64
+#define	atomic_clear_acq_ptr	atomic_clear_acq_64
+#define	atomic_clear_rel_ptr	atomic_clear_rel_64
+#define	atomic_add_ptr		atomic_add_64
+#define	atomic_add_acq_ptr	atomic_add_acq_64
+#define	atomic_add_rel_ptr	atomic_add_rel_64
+#define	atomic_subtract_ptr	atomic_subtract_64
+#define	atomic_subtract_acq_ptr	atomic_subtract_acq_64
+#define	atomic_subtract_rel_ptr	atomic_subtract_rel_64
+#define	atomic_cmpset_ptr	atomic_cmpset_64
+#define	atomic_cmpset_acq_ptr	atomic_cmpset_acq_64
+#define	atomic_cmpset_rel_ptr	atomic_cmpset_rel_64
+#define	atomic_load_acq_ptr	atomic_load_acq_64
+#define	atomic_store_rel_ptr	atomic_store_rel_64
+#define	atomic_readandclear_ptr	atomic_readandclear_64
 
 #endif /* ! _MACHINE_ATOMIC_H_ */

==== //depot/projects/netperf_socket/sys/alpha/linux/linux_proto.h#10 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call prototypes.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/alpha/linux/linux_proto.h,v 1.22 2005/06/08 20:47:30 sobomax Exp $
- * created from FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.63 2005/06/08 20:41:27 sobomax Exp 
+ * $FreeBSD: src/sys/alpha/linux/linux_proto.h,v 1.23 2005/07/13 20:35:07 jhb Exp $
+ * created from FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.64 2005/07/13 20:32:41 jhb Exp 
  */
 
 #ifndef _LINUX_SYSPROTO_H_

==== //depot/projects/netperf_socket/sys/alpha/linux/linux_syscall.h#10 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call numbers.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/alpha/linux/linux_syscall.h,v 1.20 2005/06/08 20:47:30 sobomax Exp $
- * created from FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.63 2005/06/08 20:41:27 sobomax Exp 
+ * $FreeBSD: src/sys/alpha/linux/linux_syscall.h,v 1.21 2005/07/13 20:35:07 jhb Exp $
+ * created from FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.64 2005/07/13 20:32:41 jhb Exp 
  */
 
 #define	LINUX_SYS_exit	1

==== //depot/projects/netperf_socket/sys/alpha/linux/linux_sysent.c#10 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call switch table.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/alpha/linux/linux_sysent.c,v 1.20 2005/06/08 20:47:30 sobomax Exp $
- * created from FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.63 2005/06/08 20:41:27 sobomax Exp 
+ * $FreeBSD: src/sys/alpha/linux/linux_sysent.c,v 1.21 2005/07/13 20:35:07 jhb Exp $
+ * created from FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.64 2005/07/13 20:32:41 jhb Exp 
  */
 
 #include <bsm/audit_kevents.h>
@@ -29,18 +29,18 @@
 	{ SYF_MPSAFE | AS(close_args), (sy_call_t *)close, AUE_NULL },	/* 6 = close */
 	{ SYF_MPSAFE | AS(osf1_wait4_args), (sy_call_t *)osf1_wait4, AUE_NULL },	/* 7 = osf1_wait4 */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 8 =  */
-	{ AS(linux_link_args), (sy_call_t *)linux_link, AUE_NULL },	/* 9 = linux_link */
-	{ AS(linux_unlink_args), (sy_call_t *)linux_unlink, AUE_NULL },	/* 10 = linux_unlink */
+	{ SYF_MPSAFE | AS(linux_link_args), (sy_call_t *)linux_link, AUE_NULL },	/* 9 = linux_link */
+	{ SYF_MPSAFE | AS(linux_unlink_args), (sy_call_t *)linux_unlink, AUE_NULL },	/* 10 = linux_unlink */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 11 =  */
-	{ AS(linux_chdir_args), (sy_call_t *)linux_chdir, AUE_NULL },	/* 12 = linux_chdir */
-	{ AS(fchdir_args), (sy_call_t *)fchdir, AUE_NULL },	/* 13 = fchdir */
-	{ AS(linux_mknod_args), (sy_call_t *)linux_mknod, AUE_NULL },	/* 14 = linux_mknod */
-	{ AS(linux_chmod_args), (sy_call_t *)linux_chmod, AUE_NULL },	/* 15 = linux_chmod */
-	{ AS(linux_chown_args), (sy_call_t *)linux_chown, AUE_NULL },	/* 16 = linux_chown */
+	{ SYF_MPSAFE | AS(linux_chdir_args), (sy_call_t *)linux_chdir, AUE_NULL },	/* 12 = linux_chdir */
+	{ SYF_MPSAFE | AS(fchdir_args), (sy_call_t *)fchdir, AUE_NULL },	/* 13 = fchdir */
+	{ SYF_MPSAFE | AS(linux_mknod_args), (sy_call_t *)linux_mknod, AUE_NULL },	/* 14 = linux_mknod */
+	{ SYF_MPSAFE | AS(linux_chmod_args), (sy_call_t *)linux_chmod, AUE_NULL },	/* 15 = linux_chmod */
+	{ SYF_MPSAFE | AS(linux_chown_args), (sy_call_t *)linux_chown, AUE_NULL },	/* 16 = linux_chown */
 	{ AS(linux_brk_args), (sy_call_t *)linux_brk, AUE_NULL },	/* 17 = linux_brk */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 18 =  */
-	{ AS(linux_lseek_args), (sy_call_t *)linux_lseek, AUE_NULL },	/* 19 = linux_lseek */
-	{ 0, (sy_call_t *)getpid, AUE_NULL },		/* 20 = getpid */
+	{ SYF_MPSAFE | AS(linux_lseek_args), (sy_call_t *)linux_lseek, AUE_NULL },	/* 19 = linux_lseek */
+	{ SYF_MPSAFE | 0, (sy_call_t *)getpid, AUE_NULL },	/* 20 = getpid */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 21 = osf1_mount */
 	{ AS(linux_umount_args), (sy_call_t *)linux_umount, AUE_NULL },	/* 22 = linux_umount */
 	{ SYF_MPSAFE | AS(setuid_args), (sy_call_t *)setuid, AUE_NULL },	/* 23 = setuid */
@@ -53,10 +53,10 @@
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 30 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 31 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 32 =  */
-	{ AS(linux_access_args), (sy_call_t *)linux_access, AUE_NULL },	/* 33 = linux_access */
+	{ SYF_MPSAFE | AS(linux_access_args), (sy_call_t *)linux_access, AUE_NULL },	/* 33 = linux_access */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 34 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 35 =  */
-	{ 0, (sy_call_t *)sync, AUE_NULL },		/* 36 = sync */
+	{ SYF_MPSAFE | 0, (sy_call_t *)sync, AUE_NULL },	/* 36 = sync */
 	{ SYF_MPSAFE | AS(linux_kill_args), (sy_call_t *)linux_kill, AUE_NULL },	/* 37 = linux_kill */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 38 =  */
 	{ SYF_MPSAFE | AS(setpgid_args), (sy_call_t *)setpgid, AUE_NULL },	/* 39 = setpgid */
@@ -65,112 +65,112 @@
 	{ SYF_MPSAFE | 0, (sy_call_t *)pipe, AUE_NULL },	/* 42 = pipe */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 43 = osf_set_program_attributes */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 44 =  */
-	{ AS(linux_open_args), (sy_call_t *)linux_open, AUE_NULL },	/* 45 = linux_open */
+	{ SYF_MPSAFE | AS(linux_open_args), (sy_call_t *)linux_open, AUE_NULL },	/* 45 = linux_open */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 46 =  */
 	{ SYF_MPSAFE | 0, (sy_call_t *)getgid, AUE_NULL },	/* 47 = getgid */
 	{ SYF_MPSAFE | AS(osf1_sigprocmask_args), (sy_call_t *)osf1_sigprocmask, AUE_NULL },	/* 48 = osf1_sigprocmask */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 49 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 50 =  */
-	{ AS(acct_args), (sy_call_t *)acct, AUE_NULL },	/* 51 = acct */
+	{ SYF_MPSAFE | AS(acct_args), (sy_call_t *)acct, AUE_NULL },	/* 51 = acct */
 	{ SYF_MPSAFE | 0, (sy_call_t *)linux_sigpending, AUE_NULL },	/* 52 = linux_sigpending */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 53 =  */
 	{ AS(linux_ioctl_args), (sy_call_t *)linux_ioctl, AUE_NULL },	/* 54 = linux_ioctl */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 55 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 56 =  */
-	{ AS(linux_symlink_args), (sy_call_t *)linux_symlink, AUE_NULL },	/* 57 = linux_symlink */
-	{ AS(linux_readlink_args), (sy_call_t *)linux_readlink, AUE_NULL },	/* 58 = linux_readlink */
-	{ AS(linux_execve_args), (sy_call_t *)linux_execve, AUE_NULL },	/* 59 = linux_execve */
+	{ SYF_MPSAFE | AS(linux_symlink_args), (sy_call_t *)linux_symlink, AUE_NULL },	/* 57 = linux_symlink */
+	{ SYF_MPSAFE | AS(linux_readlink_args), (sy_call_t *)linux_readlink, AUE_NULL },	/* 58 = linux_readlink */
+	{ SYF_MPSAFE | AS(linux_execve_args), (sy_call_t *)linux_execve, AUE_NULL },	/* 59 = linux_execve */
 	{ SYF_MPSAFE | AS(umask_args), (sy_call_t *)umask, AUE_NULL },	/* 60 = umask */
-	{ AS(chroot_args), (sy_call_t *)chroot, AUE_NULL },	/* 61 = chroot */
+	{ SYF_MPSAFE | AS(chroot_args), (sy_call_t *)chroot, AUE_NULL },	/* 61 = chroot */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 62 =  */
 	{ SYF_MPSAFE | 0, (sy_call_t *)getpgrp, AUE_NULL },	/* 63 = getpgrp */
-	{ 0, (sy_call_t *)linux_getpagesize, AUE_NULL },	/* 64 = linux_getpagesize */
+	{ SYF_MPSAFE | 0, (sy_call_t *)linux_getpagesize, AUE_NULL },	/* 64 = linux_getpagesize */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 65 =  */
 	{ SYF_MPSAFE | 0, (sy_call_t *)linux_vfork, AUE_NULL },	/* 66 = linux_vfork */
-	{ AS(linux_newstat_args), (sy_call_t *)linux_newstat, AUE_NULL },	/* 67 = linux_newstat */
-	{ AS(linux_newlstat_args), (sy_call_t *)linux_newlstat, AUE_NULL },	/* 68 = linux_newlstat */
+	{ SYF_MPSAFE | AS(linux_newstat_args), (sy_call_t *)linux_newstat, AUE_NULL },	/* 67 = linux_newstat */
+	{ SYF_MPSAFE | AS(linux_newlstat_args), (sy_call_t *)linux_newlstat, AUE_NULL },	/* 68 = linux_newlstat */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 69 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 70 =  */
-	{ AS(linux_mmap_args), (sy_call_t *)linux_mmap, AUE_NULL },	/* 71 = linux_mmap */
+	{ SYF_MPSAFE | AS(linux_mmap_args), (sy_call_t *)linux_mmap, AUE_NULL },	/* 71 = linux_mmap */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 72 =  */
-	{ AS(linux_munmap_args), (sy_call_t *)linux_munmap, AUE_NULL },	/* 73 = linux_munmap */
-	{ AS(linux_mprotect_args), (sy_call_t *)linux_mprotect, AUE_NULL },	/* 74 = linux_mprotect */
+	{ SYF_MPSAFE | AS(linux_munmap_args), (sy_call_t *)linux_munmap, AUE_NULL },	/* 73 = linux_munmap */
+	{ SYF_MPSAFE | AS(linux_mprotect_args), (sy_call_t *)linux_mprotect, AUE_NULL },	/* 74 = linux_mprotect */
 	{ SYF_MPSAFE | AS(madvise_args), (sy_call_t *)madvise, AUE_NULL },	/* 75 = madvise */
-	{ 0, (sy_call_t *)linux_vhangup, AUE_NULL },	/* 76 = linux_vhangup */
+	{ SYF_MPSAFE | 0, (sy_call_t *)linux_vhangup, AUE_NULL },	/* 76 = linux_vhangup */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 77 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 78 =  */
 	{ SYF_MPSAFE | AS(linux_setgroups_args), (sy_call_t *)linux_setgroups, AUE_NULL },	/* 79 = linux_setgroups */
 	{ SYF_MPSAFE | AS(linux_getgroups_args), (sy_call_t *)linux_getgroups, AUE_NULL },	/* 80 = linux_getgroups */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 81 =  */
 	{ SYF_MPSAFE | AS(setpgid_args), (sy_call_t *)setpgid, AUE_NULL },	/* 82 = setpgid */
-	{ AS(osf1_setitimer_args), (sy_call_t *)osf1_setitimer, AUE_NULL },	/* 83 = osf1_setitimer */
+	{ SYF_MPSAFE | AS(osf1_setitimer_args), (sy_call_t *)osf1_setitimer, AUE_NULL },	/* 83 = osf1_setitimer */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 84 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 85 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 86 = osf_getitimer */
-	{ 0, (sy_call_t *)linux_gethostname, AUE_NULL },	/* 87 = linux_gethostname */
+	{ SYF_MPSAFE | 0, (sy_call_t *)linux_gethostname, AUE_NULL },	/* 87 = linux_gethostname */
 	{ SYF_MPSAFE | AS(sethostname_args), (sy_call_t *)osethostname, AUE_NULL },	/* 88 = osethostname */
-	{ 0, (sy_call_t *)linux_getdtablesize, AUE_NULL },	/* 89 = linux_getdtablesize */
+	{ SYF_MPSAFE | 0, (sy_call_t *)linux_getdtablesize, AUE_NULL },	/* 89 = linux_getdtablesize */
 	{ SYF_MPSAFE | AS(dup2_args), (sy_call_t *)dup2, AUE_NULL },	/* 90 = dup2 */
-	{ AS(linux_newfstat_args), (sy_call_t *)linux_newfstat, AUE_NULL },	/* 91 = linux_newfstat */
+	{ SYF_MPSAFE | AS(linux_newfstat_args), (sy_call_t *)linux_newfstat, AUE_NULL },	/* 91 = linux_newfstat */
 	{ SYF_MPSAFE | AS(linux_fcntl_args), (sy_call_t *)linux_fcntl, AUE_NULL },	/* 92 = linux_fcntl */
-	{ AS(osf1_select_args), (sy_call_t *)osf1_select, AUE_NULL },	/* 93 = osf1_select */
-	{ AS(poll_args), (sy_call_t *)poll, AUE_NULL },	/* 94 = poll */
-	{ AS(fsync_args), (sy_call_t *)fsync, AUE_NULL },	/* 95 = fsync */
+	{ SYF_MPSAFE | AS(osf1_select_args), (sy_call_t *)osf1_select, AUE_NULL },	/* 93 = osf1_select */
+	{ SYF_MPSAFE | AS(poll_args), (sy_call_t *)poll, AUE_NULL },	/* 94 = poll */
+	{ SYF_MPSAFE | AS(fsync_args), (sy_call_t *)fsync, AUE_NULL },	/* 95 = fsync */
 	{ SYF_MPSAFE | AS(setpriority_args), (sy_call_t *)setpriority, AUE_NULL },	/* 96 = setpriority */
-	{ AS(osf1_socket_args), (sy_call_t *)osf1_socket, AUE_NULL },	/* 97 = osf1_socket */
-	{ AS(linux_connect_args), (sy_call_t *)linux_connect, AUE_NULL },	/* 98 = linux_connect */
-	{ AS(accept_args), (sy_call_t *)oaccept, AUE_NULL },	/* 99 = accept */
+	{ SYF_MPSAFE | AS(osf1_socket_args), (sy_call_t *)osf1_socket, AUE_NULL },	/* 97 = osf1_socket */
+	{ SYF_MPSAFE | AS(linux_connect_args), (sy_call_t *)linux_connect, AUE_NULL },	/* 98 = linux_connect */
+	{ SYF_MPSAFE | AS(accept_args), (sy_call_t *)oaccept, AUE_NULL },	/* 99 = accept */
 	{ SYF_MPSAFE | AS(linux_getpriority_args), (sy_call_t *)linux_getpriority, AUE_NULL },	/* 100 = linux_getpriority */
-	{ AS(osend_args), (sy_call_t *)osend, AUE_NULL },	/* 101 = osend */
-	{ AS(orecv_args), (sy_call_t *)orecv, AUE_NULL },	/* 102 = orecv */
+	{ SYF_MPSAFE | AS(osend_args), (sy_call_t *)osend, AUE_NULL },	/* 101 = osend */
+	{ SYF_MPSAFE | AS(orecv_args), (sy_call_t *)orecv, AUE_NULL },	/* 102 = orecv */
 	{ SYF_MPSAFE | AS(osf1_sigreturn_args), (sy_call_t *)osf1_sigreturn, AUE_NULL },	/* 103 = osf1_sigreturn */
-	{ AS(bind_args), (sy_call_t *)bind, AUE_NULL },	/* 104 = bind */
-	{ AS(setsockopt_args), (sy_call_t *)setsockopt, AUE_NULL },	/* 105 = setsockopt */
-	{ AS(listen_args), (sy_call_t *)listen, AUE_NULL },	/* 106 = listen */
+	{ SYF_MPSAFE | AS(bind_args), (sy_call_t *)bind, AUE_NULL },	/* 104 = bind */
+	{ SYF_MPSAFE | AS(setsockopt_args), (sy_call_t *)setsockopt, AUE_NULL },	/* 105 = setsockopt */
+	{ SYF_MPSAFE | AS(listen_args), (sy_call_t *)listen, AUE_NULL },	/* 106 = listen */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 107 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 108 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 109 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 110 =  */
 	{ SYF_MPSAFE | AS(osf1_sigsuspend_args), (sy_call_t *)osf1_sigsuspend, AUE_NULL },	/* 111 = osf1_sigsuspend */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 112 = osf_sigstack */
-	{ 0, (sy_call_t *)linux_recvmsg, AUE_NULL },	/* 113 = linux_recvmsg */
-	{ 0, (sy_call_t *)linux_sendmsg, AUE_NULL },	/* 114 = linux_sendmsg */
+	{ SYF_MPSAFE | 0, (sy_call_t *)linux_recvmsg, AUE_NULL },	/* 113 = linux_recvmsg */
+	{ SYF_MPSAFE | 0, (sy_call_t *)linux_sendmsg, AUE_NULL },	/* 114 = linux_sendmsg */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 115 =  */
 	{ SYF_MPSAFE | AS(osf1_gettimeofday_args), (sy_call_t *)osf1_gettimeofday, AUE_NULL },	/* 116 = osf1_gettimeofday */
-	{ AS(osf1_getrusage_args), (sy_call_t *)osf1_getrusage, AUE_NULL },	/* 117 = osf1_getrusage */
-	{ AS(getsockopt_args), (sy_call_t *)getsockopt, AUE_NULL },	/* 118 = getsockopt */
+	{ SYF_MPSAFE | AS(osf1_getrusage_args), (sy_call_t *)osf1_getrusage, AUE_NULL },	/* 117 = osf1_getrusage */
+	{ SYF_MPSAFE | AS(getsockopt_args), (sy_call_t *)getsockopt, AUE_NULL },	/* 118 = getsockopt */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 119 =  */
-	{ AS(readv_args), (sy_call_t *)readv, AUE_NULL },	/* 120 = readv */
-	{ AS(writev_args), (sy_call_t *)writev, AUE_NULL },	/* 121 = writev */
+	{ SYF_MPSAFE | AS(readv_args), (sy_call_t *)readv, AUE_NULL },	/* 120 = readv */
+	{ SYF_MPSAFE | AS(writev_args), (sy_call_t *)writev, AUE_NULL },	/* 121 = writev */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 122 = osf_settimeofday */
-	{ AS(fchown_args), (sy_call_t *)fchown, AUE_NULL },	/* 123 = fchown */
-	{ AS(fchmod_args), (sy_call_t *)fchmod, AUE_NULL },	/* 124 = fchmod */
-	{ AS(recvfrom_args), (sy_call_t *)orecvfrom, AUE_NULL },	/* 125 = recvfrom */
+	{ SYF_MPSAFE | AS(fchown_args), (sy_call_t *)fchown, AUE_NULL },	/* 123 = fchown */
+	{ SYF_MPSAFE | AS(fchmod_args), (sy_call_t *)fchmod, AUE_NULL },	/* 124 = fchmod */
+	{ SYF_MPSAFE | AS(recvfrom_args), (sy_call_t *)orecvfrom, AUE_NULL },	/* 125 = recvfrom */
 	{ SYF_MPSAFE | AS(setreuid_args), (sy_call_t *)setreuid, AUE_NULL },	/* 126 = setreuid */
 	{ SYF_MPSAFE | AS(setregid_args), (sy_call_t *)setregid, AUE_NULL },	/* 127 = setregid */
-	{ AS(linux_rename_args), (sy_call_t *)linux_rename, AUE_NULL },	/* 128 = linux_rename */
-	{ AS(linux_truncate_args), (sy_call_t *)linux_truncate, AUE_NULL },	/* 129 = linux_truncate */
-	{ AS(oftruncate_args), (sy_call_t *)oftruncate, AUE_NULL },	/* 130 = oftruncate */
-	{ AS(flock_args), (sy_call_t *)flock, AUE_NULL },	/* 131 = flock */
+	{ SYF_MPSAFE | AS(linux_rename_args), (sy_call_t *)linux_rename, AUE_NULL },	/* 128 = linux_rename */
+	{ SYF_MPSAFE | AS(linux_truncate_args), (sy_call_t *)linux_truncate, AUE_NULL },	/* 129 = linux_truncate */
+	{ SYF_MPSAFE | AS(oftruncate_args), (sy_call_t *)oftruncate, AUE_NULL },	/* 130 = oftruncate */
+	{ SYF_MPSAFE | AS(flock_args), (sy_call_t *)flock, AUE_NULL },	/* 131 = flock */
 	{ SYF_MPSAFE | AS(setgid_args), (sy_call_t *)setgid, AUE_NULL },	/* 132 = setgid */
-	{ AS(osf1_sendto_args), (sy_call_t *)osf1_sendto, AUE_NULL },	/* 133 = osf1_sendto */
-	{ AS(shutdown_args), (sy_call_t *)shutdown, AUE_NULL },	/* 134 = shutdown */
-	{ 0, (sy_call_t *)linux_socketpair, AUE_NULL },	/* 135 = linux_socketpair */
-	{ AS(linux_mkdir_args), (sy_call_t *)linux_mkdir, AUE_NULL },	/* 136 = linux_mkdir */
-	{ AS(linux_rmdir_args), (sy_call_t *)linux_rmdir, AUE_NULL },	/* 137 = linux_rmdir */
-	{ AS(utimes_args), (sy_call_t *)utimes, AUE_NULL },	/* 138 = utimes */
+	{ SYF_MPSAFE | AS(osf1_sendto_args), (sy_call_t *)osf1_sendto, AUE_NULL },	/* 133 = osf1_sendto */
+	{ SYF_MPSAFE | AS(shutdown_args), (sy_call_t *)shutdown, AUE_NULL },	/* 134 = shutdown */
+	{ SYF_MPSAFE | 0, (sy_call_t *)linux_socketpair, AUE_NULL },	/* 135 = linux_socketpair */
+	{ SYF_MPSAFE | AS(linux_mkdir_args), (sy_call_t *)linux_mkdir, AUE_NULL },	/* 136 = linux_mkdir */
+	{ SYF_MPSAFE | AS(linux_rmdir_args), (sy_call_t *)linux_rmdir, AUE_NULL },	/* 137 = linux_rmdir */
+	{ SYF_MPSAFE | AS(utimes_args), (sy_call_t *)utimes, AUE_NULL },	/* 138 = utimes */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 139 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 140 =  */
-	{ AS(ogetpeername_args), (sy_call_t *)ogetpeername, AUE_NULL },	/* 141 = ogetpeername */
+	{ SYF_MPSAFE | AS(ogetpeername_args), (sy_call_t *)ogetpeername, AUE_NULL },	/* 141 = ogetpeername */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 142 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 143 =  */
 	{ SYF_MPSAFE | AS(linux_getrlimit_args), (sy_call_t *)linux_getrlimit, AUE_NULL },	/* 144 = linux_getrlimit */
 	{ SYF_MPSAFE | AS(linux_setrlimit_args), (sy_call_t *)linux_setrlimit, AUE_NULL },	/* 145 = linux_setrlimit */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 146 =  */
 	{ SYF_MPSAFE | 0, (sy_call_t *)setsid, AUE_NULL },	/* 147 = setsid */
-	{ 0, (sy_call_t *)linux_quotactl, AUE_NULL },	/* 148 = linux_quotactl */
+	{ SYF_MPSAFE | 0, (sy_call_t *)linux_quotactl, AUE_NULL },	/* 148 = linux_quotactl */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 149 =  */
-	{ AS(getsockname_args), (sy_call_t *)ogetsockname, AUE_NULL },	/* 150 = getsockname */
+	{ SYF_MPSAFE | AS(getsockname_args), (sy_call_t *)ogetsockname, AUE_NULL },	/* 150 = getsockname */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 151 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 152 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 153 =  */
@@ -220,24 +220,24 @@
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 197 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 198 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 199 = osf_swapon */
-	{ AS(linux_msgctl_args), (sy_call_t *)linux_msgctl, AUE_NULL },	/* 200 = linux_msgctl */
-	{ AS(linux_msgget_args), (sy_call_t *)linux_msgget, AUE_NULL },	/* 201 = linux_msgget */
-	{ AS(linux_msgrcv_args), (sy_call_t *)linux_msgrcv, AUE_NULL },	/* 202 = linux_msgrcv */
-	{ AS(linux_msgsnd_args), (sy_call_t *)linux_msgsnd, AUE_NULL },	/* 203 = linux_msgsnd */
+	{ SYF_MPSAFE | AS(linux_msgctl_args), (sy_call_t *)linux_msgctl, AUE_NULL },	/* 200 = linux_msgctl */
+	{ SYF_MPSAFE | AS(linux_msgget_args), (sy_call_t *)linux_msgget, AUE_NULL },	/* 201 = linux_msgget */
+	{ SYF_MPSAFE | AS(linux_msgrcv_args), (sy_call_t *)linux_msgrcv, AUE_NULL },	/* 202 = linux_msgrcv */
+	{ SYF_MPSAFE | AS(linux_msgsnd_args), (sy_call_t *)linux_msgsnd, AUE_NULL },	/* 203 = linux_msgsnd */
 	{ AS(linux_semctl_args), (sy_call_t *)linux_semctl, AUE_NULL },	/* 204 = linux_semctl */
-	{ AS(linux_semget_args), (sy_call_t *)linux_semget, AUE_NULL },	/* 205 = linux_semget */
-	{ AS(linux_semop_args), (sy_call_t *)linux_semop, AUE_NULL },	/* 206 = linux_semop */
+	{ SYF_MPSAFE | AS(linux_semget_args), (sy_call_t *)linux_semget, AUE_NULL },	/* 205 = linux_semget */
+	{ SYF_MPSAFE | AS(linux_semop_args), (sy_call_t *)linux_semop, AUE_NULL },	/* 206 = linux_semop */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 207 = osf_utsname */
-	{ AS(linux_lchown_args), (sy_call_t *)linux_lchown, AUE_NULL },	/* 208 = linux_lchown */
-	{ AS(linux_shmat_args), (sy_call_t *)linux_shmat, AUE_NULL },	/* 209 = linux_shmat */
-	{ AS(linux_shmctl_args), (sy_call_t *)linux_shmctl, AUE_NULL },	/* 210 = linux_shmctl */
-	{ AS(linux_shmdt_args), (sy_call_t *)linux_shmdt, AUE_NULL },	/* 211 = linux_shmdt */
-	{ AS(linux_shmget_args), (sy_call_t *)linux_shmget, AUE_NULL },	/* 212 = linux_shmget */
+	{ SYF_MPSAFE | AS(linux_lchown_args), (sy_call_t *)linux_lchown, AUE_NULL },	/* 208 = linux_lchown */
+	{ SYF_MPSAFE | AS(linux_shmat_args), (sy_call_t *)linux_shmat, AUE_NULL },	/* 209 = linux_shmat */
+	{ SYF_MPSAFE | AS(linux_shmctl_args), (sy_call_t *)linux_shmctl, AUE_NULL },	/* 210 = linux_shmctl */
+	{ SYF_MPSAFE | AS(linux_shmdt_args), (sy_call_t *)linux_shmdt, AUE_NULL },	/* 211 = linux_shmdt */
+	{ SYF_MPSAFE | AS(linux_shmget_args), (sy_call_t *)linux_shmget, AUE_NULL },	/* 212 = linux_shmget */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 213 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 214 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 215 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 216 =  */
-	{ AS(linux_msync_args), (sy_call_t *)linux_msync, AUE_NULL },	/* 217 = linux_msync */
+	{ SYF_MPSAFE | AS(linux_msync_args), (sy_call_t *)linux_msync, AUE_NULL },	/* 217 = linux_msync */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 218 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 219 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 220 =  */
@@ -255,7 +255,7 @@
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 232 =  */
 	{ SYF_MPSAFE | AS(getpgid_args), (sy_call_t *)getpgid, AUE_NULL },	/* 233 = getpgid */
 	{ SYF_MPSAFE | AS(linux_getsid_args), (sy_call_t *)linux_getsid, AUE_NULL },	/* 234 = linux_getsid */
-	{ 0, (sy_call_t *)linux_sigaltstack, AUE_NULL },	/* 235 = linux_sigaltstack */
+	{ SYF_MPSAFE | 0, (sy_call_t *)linux_sigaltstack, AUE_NULL },	/* 235 = linux_sigaltstack */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 236 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 237 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 238 =  */
@@ -274,10 +274,10 @@
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 251 = osf_usleep_thread */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 252 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 253 =  */
-	{ AS(linux_sysfs_args), (sy_call_t *)linux_sysfs, AUE_NULL },	/* 254 = linux_sysfs */
+	{ SYF_MPSAFE | AS(linux_sysfs_args), (sy_call_t *)linux_sysfs, AUE_NULL },	/* 254 = linux_sysfs */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 255 =  */
-	{ AS(osf1_getsysinfo_args), (sy_call_t *)osf1_getsysinfo, AUE_NULL },	/* 256 = osf1_getsysinfo */
-	{ AS(osf1_setsysinfo_args), (sy_call_t *)osf1_setsysinfo, AUE_NULL },	/* 257 = osf1_setsysinfo */
+	{ SYF_MPSAFE | AS(osf1_getsysinfo_args), (sy_call_t *)osf1_getsysinfo, AUE_NULL },	/* 256 = osf1_getsysinfo */
+	{ SYF_MPSAFE | AS(osf1_setsysinfo_args), (sy_call_t *)osf1_setsysinfo, AUE_NULL },	/* 257 = osf1_setsysinfo */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 258 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 259 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 260 =  */
@@ -320,36 +320,36 @@
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 297 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 298 =  */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 299 =  */
-	{ 0, (sy_call_t *)linux_bdflush, AUE_NULL },	/* 300 = linux_bdflush */
-	{ 0, (sy_call_t *)linux_sethae, AUE_NULL },	/* 301 = linux_sethae */
+	{ SYF_MPSAFE | 0, (sy_call_t *)linux_bdflush, AUE_NULL },	/* 300 = linux_bdflush */
+	{ SYF_MPSAFE | 0, (sy_call_t *)linux_sethae, AUE_NULL },	/* 301 = linux_sethae */
 	{ AS(linux_mount_args), (sy_call_t *)linux_mount, AUE_NULL },	/* 302 = linux_mount */
-	{ 0, (sy_call_t *)linux_old_adjtimex, AUE_NULL },	/* 303 = linux_old_adjtimex */
-	{ 0, (sy_call_t *)linux_swapoff, AUE_NULL },	/* 304 = linux_swapoff */
+	{ SYF_MPSAFE | 0, (sy_call_t *)linux_old_adjtimex, AUE_NULL },	/* 303 = linux_old_adjtimex */
+	{ SYF_MPSAFE | 0, (sy_call_t *)linux_swapoff, AUE_NULL },	/* 304 = linux_swapoff */
 	{ AS(linux_getdents_args), (sy_call_t *)linux_getdents, AUE_NULL },	/* 305 = linux_getdents */
-	{ 0, (sy_call_t *)linux_create_module, AUE_NULL },	/* 306 = linux_create_module */

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

From owner-p4-projects@FreeBSD.ORG  Tue Jul 19 14:59:56 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 7866216A421; Tue, 19 Jul 2005 14:59:55 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 4859516A41F
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 14:59:55 +0000 (GMT)
	(envelope-from csjp@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 19E0043D45
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 14:59:55 +0000 (GMT)
	(envelope-from csjp@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6JExtwZ059608
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 14:59:55 GMT
	(envelope-from csjp@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6JExsks059605
	for perforce@freebsd.org; Tue, 19 Jul 2005 14:59:54 GMT
	(envelope-from csjp@freebsd.org)
Date: Tue, 19 Jul 2005 14:59:54 GMT
Message-Id: <200507191459.j6JExsks059605@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	csjp@freebsd.org using -f
From: "Christian S.J. Peron" <csjp@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80527 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 19 Jul 2005 14:59:56 -0000

http://perforce.freebsd.org/chv.cgi?CH=80527

Change 80527 by csjp@csjp_xor on 2005/07/19 14:59:24

	Document -r option

Affected files ...

.. //depot/projects/trustedbsd/mac/usr.sbin/getfhash/setfhash.8#4 edit

Differences ...

==== //depot/projects/trustedbsd/mac/usr.sbin/getfhash/setfhash.8#4 (text+ko) ====

@@ -32,6 +32,7 @@
 .Nd "set checksum hash on system objects"
 .Sh SYNOPSIS
 .Nm
+.Op Fl r
 .Op Fl m
 .Op dependency
 .Ar file
@@ -57,6 +58,8 @@
 colon when entered.
 It should be noted that dependency pathnames
 will be looked up relative to the calling process's root.
+.It Fl r
+Remove any dependencies associated with a filesystem object.
 .El
 .Sh EXAMPLES
 To set the hash on

From owner-p4-projects@FreeBSD.ORG  Tue Jul 19 15:00:57 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 4B1D916A421; Tue, 19 Jul 2005 15:00:57 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 2377A16A41F
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 15:00:57 +0000 (GMT)
	(envelope-from csjp@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id D146443D46
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 15:00:56 +0000 (GMT)
	(envelope-from csjp@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6JF0u2t059696
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 15:00:56 GMT
	(envelope-from csjp@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6JF0uZP059693
	for perforce@freebsd.org; Tue, 19 Jul 2005 15:00:56 GMT
	(envelope-from csjp@freebsd.org)
Date: Tue, 19 Jul 2005 15:00:56 GMT
Message-Id: <200507191500.j6JF0uZP059693@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	csjp@freebsd.org using -f
From: "Christian S.J. Peron" <csjp@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80528 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 19 Jul 2005 15:00:58 -0000

http://perforce.freebsd.org/chv.cgi?CH=80528

Change 80528 by csjp@csjp_xor on 2005/07/19 15:00:00

	Return after removing dependencies

Affected files ...

.. //depot/projects/trustedbsd/mac/usr.sbin/getfhash/getfhash.c#12 edit

Differences ...

==== //depot/projects/trustedbsd/mac/usr.sbin/getfhash/getfhash.c#12 (text+ko) ====

@@ -184,6 +184,7 @@
 		    MAC_CHKEXEC_DEP);
 		if (error < 0)
 			warn("extattr_delete_file failed");
+		return;
 	}
 	if (syscall(SYS_mac_syscall, "mac_chkexec", 0, pathname) < 0)
 		warn("%s", pathname);

From owner-p4-projects@FreeBSD.ORG  Tue Jul 19 19:29:30 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 78BC316A421; Tue, 19 Jul 2005 19:29:30 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 534B216A41F
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 19:29:30 +0000 (GMT)
	(envelope-from soc-tyler@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id E105843D45
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 19:29:29 +0000 (GMT)
	(envelope-from soc-tyler@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6JJTTws078716
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 19:29:29 GMT
	(envelope-from soc-tyler@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6JJTTAu078713
	for perforce@freebsd.org; Tue, 19 Jul 2005 19:29:29 GMT
	(envelope-from soc-tyler@freebsd.org)
Date: Tue, 19 Jul 2005 19:29:29 GMT
Message-Id: <200507191929.j6JJTTAu078713@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-tyler@freebsd.org using -f
From: soc-tyler <soc-tyler@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80544 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 19 Jul 2005 19:29:31 -0000

http://perforce.freebsd.org/chv.cgi?CH=80544

Change 80544 by soc-tyler@soc-tyler_launchd on 2005/07/19 19:28:37

	Merge changes from 10.4.1 -> 10.4.2

Affected files ...

.. //depot/projects/soc2005/launchd/includes/launch.h#6 edit
.. //depot/projects/soc2005/launchd/launchd.8#2 edit
.. //depot/projects/soc2005/launchd/launchd.c#6 edit

Differences ...

==== //depot/projects/soc2005/launchd/includes/launch.h#6 (text+ko) ====

@@ -137,8 +137,7 @@
 #define LAUNCH_JOBSOCKETKEY_SERVICENAME		"SockServiceName"
 #define LAUNCH_JOBSOCKETKEY_FAMILY		"SockFamily"
 #define LAUNCH_JOBSOCKETKEY_PROTOCOL		"SockProtocol"
-#define LAUNCH_JOBSOCKETKEY_FD			"SockFD"
-#define LAUNCH_JOBSOCKETKEY_ADDRINFORESULTS	"AddrinfoResults"
+#define LAUNCH_JOBSOCKETKEY_MULTICASTGROUP	"MulticastGroup"
 
 typedef struct _launch_data *launch_data_t;
 

==== //depot/projects/soc2005/launchd/launchd.8#2 (text+ko) ====

@@ -6,6 +6,7 @@
 .Nd System wide and per-user daemon/agent manager
 .Sh SYNOPSIS
 .Nm
+.Op Fl d
 .Op Fl v
 .Op Fl s
 .Op Fl x
@@ -31,6 +32,8 @@
 is invoked by the kernel to run as the first process on the system and to further bootstrap the rest of the system.
 .Sh OPTIONS WHEN RUN AS PID 1
 .Bl -tag -width -indent
+.It Fl d
+Daemonize. Useful when passing a command to launchd on the command line.
 .It Fl v
 Verbose boot.
 .It Fl s
@@ -40,6 +43,11 @@
 .It Fl x
 Safe mode boot. Instructs the system to boot conservatively.
 .El
+.Sh ENVIRONMENTAL VARIABLES
+.Bl -tag -width -indent
+.It Pa LAUNCHD_SOCKET
+This variable is exported when invoking a command via the launchd command line. It informs launchctl how to find the correct launchd to talk to.
+.El
 .Sh NOTES
 In Darwin it is preferable to have your daemon launch via launchd instead of modifying
 .Nm rc

==== //depot/projects/soc2005/launchd/launchd.c#6 (text+ko) ====

@@ -212,6 +212,7 @@
 
 static size_t total_children = 0;
 static pid_t readcfg_pid = 0;
+static pid_t launchd_proper_pid = 0;
 static bool launchd_inited = false;
 static bool shutdown_in_progress = false;
 
@@ -553,9 +554,13 @@
 			goto out_bad;
 		}
 	}
+
 	if (chown(ourdir, getuid(), getgid()) == -1)
 		syslog(LOG_WARNING, "chown(\"%s\"): %m", ourdir);
 
+	setegid(getgid());
+	seteuid(getuid());
+
 	ourdirfd = _fd(open(ourdir, O_RDONLY));
 	if (ourdirfd == -1) {
 		syslog(LOG_ERR, "open(\"%s\"): %m", ourdir);
@@ -588,8 +593,6 @@
 			syslog(LOG_ERR, "bind(\"thesocket\"): %m");
 		goto out_bad;
 	}
-	if (chown(sun.sun_path, getuid(), getgid()) == -1)
-		syslog(LOG_WARNING, "chown(\"thesocket\"): %m");
 
 	if (listen(fd, SOMAXCONN) == -1) {
 		syslog(LOG_ERR, "listen(\"thesocket\"): %m");
@@ -606,6 +609,7 @@
 	sockdir = strdup(ourdir);
 	sockpath = strdup(sun.sun_path);
 
+	launchd_proper_pid = getpid();
 	atexit(launchd_clean_up);
 
 out_bad:
@@ -871,7 +875,7 @@
 
 		if (-1 == (dcc_r = dir_has_files(thepath))) {
 			job_log_error(j, LOG_ERR, "dir_has_files(\"%s\", ...)", thepath);
-		} else if (dcc_r > 0) {
+		} else if (dcc_r > 0 && !shutdown_in_progress) {
 			job_start(j);
 			break;
 		}
@@ -1129,7 +1133,7 @@
 	launch_data_t tmp, resp;
 	const char *label;
 	struct jobcb *j;
-	bool startnow;
+	bool startnow, hasprog = false, hasprogargs = false;
 
 	if ((label = job_get_string(pload, LAUNCH_JOBKEY_LABEL))) {
 		TAILQ_FOREACH(j, &jobs, tqe) {
@@ -1142,7 +1146,13 @@
 		resp = launch_data_new_errno(EINVAL);
 		goto out;
 	}
-	if (launch_data_dict_lookup(pload, LAUNCH_JOBKEY_PROGRAMARGUMENTS) == NULL) {
+
+	if (launch_data_dict_lookup(pload, LAUNCH_JOBKEY_PROGRAM))
+		hasprog = true;
+	if (launch_data_dict_lookup(pload, LAUNCH_JOBKEY_PROGRAMARGUMENTS))
+		hasprogargs = true;
+
+	if (!hasprog && !hasprogargs) {
 		resp = launch_data_new_errno(EINVAL);
 		goto out;
 	}
@@ -1197,6 +1207,11 @@
 		launch_data_t tmp_k;
 
 		j->start_cal_interval = calloc(1, sizeof(struct tm));
+		j->start_cal_interval->tm_min = -1;
+		j->start_cal_interval->tm_hour = -1;
+		j->start_cal_interval->tm_mday = -1;
+		j->start_cal_interval->tm_wday = -1;
+		j->start_cal_interval->tm_mon = -1;
 
 		if (LAUNCH_DATA_DICTIONARY == launch_data_get_type(tmp)) {
 			if ((tmp_k = launch_data_dict_lookup(tmp, LAUNCH_JOBKEY_CAL_MINUTE)))
@@ -1205,11 +1220,8 @@
 				j->start_cal_interval->tm_hour = launch_data_get_integer(tmp_k);
 			if ((tmp_k = launch_data_dict_lookup(tmp, LAUNCH_JOBKEY_CAL_DAY)))
 				j->start_cal_interval->tm_mday = launch_data_get_integer(tmp_k);
-			if ((tmp_k = launch_data_dict_lookup(tmp, LAUNCH_JOBKEY_CAL_WEEKDAY))) {
+			if ((tmp_k = launch_data_dict_lookup(tmp, LAUNCH_JOBKEY_CAL_WEEKDAY)))
 				j->start_cal_interval->tm_wday = launch_data_get_integer(tmp_k);
-				if (j->start_cal_interval->tm_wday == 0)
-					j->start_cal_interval->tm_wday = 7;
-			}
 			if ((tmp_k = launch_data_dict_lookup(tmp, LAUNCH_JOBKEY_CAL_MONTH)))
 				j->start_cal_interval->tm_mon = launch_data_get_integer(tmp_k);
 		}
@@ -1489,15 +1501,15 @@
 		job_log(j, LOG_WARNING, "failed to checkin");
 		job_remove(j);
 		return false;
+	} else if (j->failed_exits >= LAUNCHD_FAILED_EXITS_THRESHOLD) {
+		job_log(j, LOG_WARNING, "too many failures in succession");
+		job_remove(j);
+		return false;
 	} else if (od || shutdown_in_progress) {
 		if (!od && shutdown_in_progress)
 			job_log(j, LOG_NOTICE, "exited while shutdown is in progress, will not restart unless demand requires it");
 		job_watch(j);
 		return false;
-	} else if (j->failed_exits >= LAUNCHD_FAILED_EXITS_THRESHOLD) {
-		job_log(j, LOG_WARNING, "too many failures in a row for a job that should be alive all the time");
-		job_remove(j);
-		return false;
 	}
 
 	return true;
@@ -1625,6 +1637,7 @@
 	socketpair(AF_UNIX, SOCK_STREAM, 0, execspair);
 
 	time(&j->start_time);
+
 #ifdef _BUILD_DARWIN_
 	// This function can be found in the vendor source in bootstrap.c
 	switch (c = fork_with_bootstrap_port(launchd_bootstrap_port)) {
@@ -1692,14 +1705,25 @@
 	bool inetcompat = job_get_bool(j->ldj, LAUNCH_JOBKEY_INETDCOMPATIBILITY);
 	size_t i, argv_cnt;
 	const char **argv, *file2exec = "/usr/libexec/launchproxy";
+	int r;
+	bool hasprog = false;
 
 	job_setup_attributes(j);
 
-	argv_cnt = launch_data_array_get_count(ldpa);
-	argv = alloca((argv_cnt + 2) * sizeof(char *));
-	for (i = 0; i < argv_cnt; i++)
-		argv[i + 1] = launch_data_get_string(launch_data_array_get_index(ldpa, i));
-	argv[argv_cnt + 1] = NULL;
+	if (ldpa) {
+		argv_cnt = launch_data_array_get_count(ldpa);
+		argv = alloca((argv_cnt + 2) * sizeof(char *));
+		for (i = 0; i < argv_cnt; i++)
+			argv[i + 1] = launch_data_get_string(launch_data_array_get_index(ldpa, i));
+		argv[argv_cnt + 1] = NULL;
+	} else {
+		argv = alloca(3 * sizeof(char *));
+		argv[1] = job_get_string(j->ldj, LAUNCH_JOBKEY_PROGRAM);
+		argv[2] = NULL;
+	}
+
+	if (job_get_string(j->ldj, LAUNCH_JOBKEY_PROGRAM))
+		hasprog = true;
 
 	if (inetcompat) {
 		argv[0] = file2exec;
@@ -1708,12 +1732,17 @@
 		file2exec = job_get_file2exec(j->ldj);
 	}
 
-	if (-1 == execvp(file2exec, (char *const*)argv)) {
-		int e = errno; /* errno is a macro that expands, best not to take the address of it */
-		write(execfd, &e, sizeof(e));
-		job_log_error(j, LOG_ERR, "execvp(\"%s\", ...)", file2exec);
+	if (hasprog) {
+		r = execv(file2exec, (char *const*)argv);
+	} else {
+		r = execvp(file2exec, (char *const*)argv);
+	}
+
+	if (-1 == r) {
+		write(execfd, &errno, sizeof(errno));
+		job_log_error(j, LOG_ERR, "execv%s(\"%s\", ...)", hasprog ? "" : "p", file2exec);
 	}
-	_exit(EXIT_FAILURE);
+	exit(EXIT_FAILURE);
 }
 
 static void job_setup_attributes(struct jobcb *j)
@@ -2354,20 +2383,20 @@
 	latertm.tm_isdst = -1;
 
 
-	if (j->start_cal_interval->tm_min)
+	if (-1 != j->start_cal_interval->tm_min)
 		latertm.tm_min = j->start_cal_interval->tm_min;
-	if (j->start_cal_interval->tm_hour)
+	if (-1 != j->start_cal_interval->tm_hour)
 		latertm.tm_hour = j->start_cal_interval->tm_hour;
 
 	otherlatertm = latertm;
 
-	if (j->start_cal_interval->tm_mday)
+	if (-1 != j->start_cal_interval->tm_mday)
 		latertm.tm_mday = j->start_cal_interval->tm_mday;
-	if (j->start_cal_interval->tm_mon)
+	if (-1 != j->start_cal_interval->tm_mon)
 		latertm.tm_mon = j->start_cal_interval->tm_mon;
 
 	/* cron semantics are fun */
-	if (j->start_cal_interval->tm_wday) {
+	if (-1 != j->start_cal_interval->tm_wday) {
 		int delta, realwday = j->start_cal_interval->tm_wday;
 
 		if (realwday == 7)
@@ -2385,9 +2414,9 @@
 			otherlatertm.tm_mday += delta;
 		else if (delta < 0)
 			otherlatertm.tm_mday += 7 + delta;
-		else if (otherlatertm.tm_hour < nowtm->tm_hour)
+		else if (-1 != j->start_cal_interval->tm_hour && otherlatertm.tm_hour <= nowtm->tm_hour)
 			otherlatertm.tm_mday += 7;
-		else if (otherlatertm.tm_min < nowtm->tm_min)
+		else if (-1 != j->start_cal_interval->tm_min && otherlatertm.tm_min <= nowtm->tm_min)
 			otherlatertm.tm_hour++;
 		else
 			otherlatertm.tm_min++;
@@ -2395,13 +2424,13 @@
 		otherlater = mktime(&otherlatertm);
 	}
 
-	if (latertm.tm_mon < nowtm->tm_mon) {
+	if (-1 != j->start_cal_interval->tm_mon && latertm.tm_mon <= nowtm->tm_mon) {
 		latertm.tm_year++;
-	} else if (latertm.tm_mday < nowtm->tm_mday) {
+	} else if (-1 != j->start_cal_interval->tm_mday && latertm.tm_mday <= nowtm->tm_mday) {
 		latertm.tm_mon++;
-	} else if (latertm.tm_hour < nowtm->tm_hour) {
+	} else if (-1 != j->start_cal_interval->tm_hour && latertm.tm_hour <= nowtm->tm_hour) {
 		latertm.tm_mday++;
-	} else if (latertm.tm_min < nowtm->tm_min) {
+	} else if (-1 != j->start_cal_interval->tm_min && latertm.tm_min <= nowtm->tm_min) {
 		latertm.tm_hour++;
 	} else {
 		latertm.tm_min++;
@@ -2410,7 +2439,7 @@
 	later = mktime(&latertm);
 
 	if (otherlater) {
-		if (j->start_cal_interval->tm_mday)
+		if (-1 != j->start_cal_interval->tm_mday)
 			later = later < otherlater ? later : otherlater;
 		else
 			later = otherlater;

From owner-p4-projects@FreeBSD.ORG  Tue Jul 19 21:00:05 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 21F6916A424; Tue, 19 Jul 2005 21:00:05 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 E36AB16A423
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 21:00:04 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 6D8CD43D46
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 21:00:04 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6JL04Yr089682
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 21:00:04 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6JL04rR089678
	for perforce@freebsd.org; Tue, 19 Jul 2005 21:00:04 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Tue, 19 Jul 2005 21:00:04 GMT
Message-Id: <200507192100.j6JL04rR089678@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson <rwatson@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80550 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 19 Jul 2005 21:00:05 -0000

http://perforce.freebsd.org/chv.cgi?CH=80550

Change 80550 by rwatson@rwatson_zoo on 2005/07/19 20:58:58

	Integrate netsmp branch to hold on-going network stack locking and SMP
	optimization.  New home for contents of rwatson_netperf.

Affected files ...

.. //depot/projects/netsmp/src/sys/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/alpha/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/api_up1000.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/atomic.s#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/autoconf.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/busdma_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/busspace.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/clock.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/clock_if.m#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/cpuconf.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/db_disasm.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/db_instruction.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/db_interface.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/db_trace.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/dec_1000a.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/dec_2100_a50.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/dec_2100_a500.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/dec_3000_300.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/dec_3000_500.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/dec_axppci_33.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/dec_eb164.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/dec_eb64plus.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/dec_kn20aa.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/dec_kn300.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/dec_kn8ae.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/dec_st550.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/dec_st6600.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/divrem.m4#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/dump_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/elf_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/exception.s#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/fp_emulate.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/gdb_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/genassym.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/ieee_float.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/ieee_float.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/in_cksum.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/interrupt.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/locore.s#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/mem.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/mp_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/pal.s#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/pmap.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/prom.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/prom_disp.s#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/promcons.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/sgmap.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/support.s#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/swtch.s#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/sys_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/trap.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/uio_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/uma_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/alpha/vm_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/compile/.cvsignore#1 branch
.. //depot/projects/netsmp/src/sys/alpha/conf/.cvsignore#1 branch
.. //depot/projects/netsmp/src/sys/alpha/conf/GENERIC#1 branch
.. //depot/projects/netsmp/src/sys/alpha/conf/GENERIC.hints#1 branch
.. //depot/projects/netsmp/src/sys/alpha/conf/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/alpha/conf/NOTES#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/_bus.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/_inttypes.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/_limits.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/_stdint.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/_types.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/alpha_cpu.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/asm.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/atomic.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/bootinfo.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/bus.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/bus_dma.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/bwx.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/chipset.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/clock.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/clockvar.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/cpu.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/cpuconf.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/cpufunc.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/db_machdep.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/elf.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/endian.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/exec.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/float.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/floatingpoint.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/fpu.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/frame.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/gdb_machdep.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/ieee.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/ieeefp.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/in_cksum.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/inst.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/intr.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/intrcnt.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/ioctl_bt848.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/ioctl_meteor.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/kdb.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/limits.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/md_var.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/memdev.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/mutex.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/pal.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/param.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/pc/bios.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/pc/display.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/pc/vesa.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/pcb.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/pcpu.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/pmap.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/pmc_mdep.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/ppireg.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/proc.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/profile.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/prom.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/pte.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/ptrace.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/reg.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/reloc.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/resource.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/rpb.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/runq.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/setjmp.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/sf_buf.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/sgmap.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/sigframe.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/signal.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/smp.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/stdarg.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/swiz.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/sysarch.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/timerreg.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/ucontext.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/varargs.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/include/vmparam.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/isa/isa.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/isa/isa_dma.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/isa/isavar.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/isa/mcclock_isa.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/linux/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/alpha/linux/linux.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/linux/linux_dummy.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/linux/linux_genassym.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/linux/linux_ipc64.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/linux/linux_locore.s#1 branch
.. //depot/projects/netsmp/src/sys/alpha/linux/linux_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/linux/linux_proto.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/linux/linux_syscall.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/linux/linux_sysent.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/linux/linux_sysvec.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/linux/syscalls.conf#1 branch
.. //depot/projects/netsmp/src/sys/alpha/linux/syscalls.master#1 branch
.. //depot/projects/netsmp/src/sys/alpha/mcbus/mcbus.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/mcbus/mcbusreg.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/mcbus/mcbusvar.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/mcbus/mcmem.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/mcbus/mcpcia.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/mcbus/mcpciareg.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/mcbus/mcpciavar.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/osf1/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/alpha/osf1/README.mach-traps#1 branch
.. //depot/projects/netsmp/src/sys/alpha/osf1/exec_ecoff.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/osf1/imgact_osf1.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/osf1/osf1.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/osf1/osf1_ioctl.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/osf1/osf1_misc.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/osf1/osf1_mount.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/osf1/osf1_proto.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/osf1/osf1_signal.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/osf1/osf1_signal.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/osf1/osf1_syscall.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/osf1/osf1_sysent.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/osf1/osf1_sysvec.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/osf1/osf1_util.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/osf1/syscalls.conf#1 branch
.. //depot/projects/netsmp/src/sys/alpha/osf1/syscalls.master#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/alphapci_if.m#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/apecs.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/apecs_pci.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/apecsreg.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/apecsvar.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/bwx.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/cia.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/cia_pci.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/ciareg.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/ciavar.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/irongate.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/irongate_pci.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/irongatereg.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/irongatevar.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/lca.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/lca_pci.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/lcareg.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/lcavar.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/pci_eb164_intr.s#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/pci_eb64plus_intr.s#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/pcibus.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/pcibus.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/swiz.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/t2.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/t2_pci.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/t2reg.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/t2var.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/tsunami.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/tsunami_pci.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/tsunamireg.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/pci/tsunamivar.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/tlsb/dwlpx.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/tlsb/dwlpxreg.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/tlsb/dwlpxvar.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/tlsb/gbus.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/tlsb/gbusreg.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/tlsb/gbusvar.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/tlsb/kftxx.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/tlsb/kftxxreg.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/tlsb/kftxxvar.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/tlsb/mcclock_tlsb.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/tlsb/tlsb.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/tlsb/tlsbcpu.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/tlsb/tlsbmem.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/tlsb/tlsbreg.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/tlsb/tlsbvar.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/tlsb/zs_tlsb.c#1 branch
.. //depot/projects/netsmp/src/sys/alpha/tlsb/zsreg.h#1 branch
.. //depot/projects/netsmp/src/sys/alpha/tlsb/zsvar.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/amd64/acpica/OsdEnvironment.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/acpica/acpi_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/acpica/acpi_wakeup.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/acpica/madt.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/amd64_mem.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/apic_vector.S#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/atomic.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/autoconf.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/bios.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/busdma_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/cpu_switch.S#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/db_disasm.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/db_interface.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/db_trace.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/dump_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/elf_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/exception.S#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/fpu.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/gdb_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/genassym.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/identcpu.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/in_cksum.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/initcpu.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/intr_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/io.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/io_apic.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/legacy.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/local_apic.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/locore.S#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/mem.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/mp_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/mp_watchdog.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/mpboot.S#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/mptable.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/mptable_pci.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/nexus.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/pmap.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/prof_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/sigtramp.S#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/support.S#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/sys_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/trap.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/tsc.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/uio_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/uma_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/amd64/vm_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/compile/.cvsignore#1 branch
.. //depot/projects/netsmp/src/sys/amd64/conf/.cvsignore#1 branch
.. //depot/projects/netsmp/src/sys/amd64/conf/GENERIC#1 branch
.. //depot/projects/netsmp/src/sys/amd64/conf/GENERIC.hints#1 branch
.. //depot/projects/netsmp/src/sys/amd64/conf/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/amd64/conf/NOTES#1 branch
.. //depot/projects/netsmp/src/sys/amd64/ia32/ia32_exception.S#1 branch
.. //depot/projects/netsmp/src/sys/amd64/ia32/ia32_reg.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/ia32/ia32_signal.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/ia32/ia32_sigtramp.S#1 branch
.. //depot/projects/netsmp/src/sys/amd64/ia32/ia32_syscall.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/_bus.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/_inttypes.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/_limits.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/_stdint.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/_types.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/acpica_machdep.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/apicreg.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/apicvar.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/asm.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/asmacros.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/atomic.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/bus.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/bus_dma.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/clock.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/cpu.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/cpufunc.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/cputypes.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/db_machdep.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/elf.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/endian.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/exec.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/float.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/floatingpoint.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/fpu.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/frame.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/gdb_machdep.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/ieeefp.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/in_cksum.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/intr_machdep.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/iodev.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/kdb.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/legacyvar.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/limits.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/md_var.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/memdev.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/metadata.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/mp_watchdog.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/mptable.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/mutex.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/param.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/pc/bios.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/pc/display.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/pcb.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/pcb_ext.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/pci_cfgreg.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/pcpu.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/pmap.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/pmc_mdep.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/ppireg.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/proc.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/profile.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/psl.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/ptrace.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/reg.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/reloc.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/resource.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/runq.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/segments.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/setjmp.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/sf_buf.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/sigframe.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/signal.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/smp.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/specialreg.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/stdarg.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/sysarch.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/timerreg.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/trap.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/tss.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/ucontext.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/varargs.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/include/vmparam.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/isa/atpic.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/isa/atpic_vector.S#1 branch
.. //depot/projects/netsmp/src/sys/amd64/isa/clock.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/isa/elcr.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/isa/icu.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/isa/isa.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/isa/isa.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/isa/isa_dma.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/isa/nmi.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/linux32/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/amd64/linux32/linux.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/linux32/linux32_dummy.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/linux32/linux32_genassym.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/linux32/linux32_ipc64.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/linux32/linux32_locore.s#1 branch
.. //depot/projects/netsmp/src/sys/amd64/linux32/linux32_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/linux32/linux32_proto.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/linux32/linux32_syscall.h#1 branch
.. //depot/projects/netsmp/src/sys/amd64/linux32/linux32_sysent.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/linux32/linux32_sysvec.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/linux32/syscalls.conf#1 branch
.. //depot/projects/netsmp/src/sys/amd64/linux32/syscalls.master#1 branch
.. //depot/projects/netsmp/src/sys/amd64/pci/pci_bus.c#1 branch
.. //depot/projects/netsmp/src/sys/amd64/pci/pci_cfgreg.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/autoconf.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/bcopy_page.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/bcopyinout.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/bcopyinout_xscale.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/blockio.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/bootconfig.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/bus_space_asm_generic.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/busdma_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/copystr.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/cpufunc.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/cpufunc_asm.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/cpufunc_asm_arm10.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/cpufunc_asm_arm7tdmi.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/cpufunc_asm_arm8.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/cpufunc_asm_arm9.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/cpufunc_asm_armv4.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/cpufunc_asm_ixp12x0.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/cpufunc_asm_sa1.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/cpufunc_asm_sa11x0.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/cpufunc_asm_xscale.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/db_disasm.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/db_interface.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/db_trace.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/disassem.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/dump_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/elf_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/exception.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/fiq.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/fiq_subr.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/fusu.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/genassym.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/identcpu.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/in_cksum.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/in_cksum_arm.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/intr.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/irq_dispatch.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/locore.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/mem.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/nexus.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/nexus_io.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/nexus_io_asm.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/pmap.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/setcpsr.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/setstack.s#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/support.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/swtch.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/sys_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/trap.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/uio_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/undefined.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/vectors.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/arm/vm_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/compile/.cvsignore#1 branch
.. //depot/projects/netsmp/src/sys/arm/conf/.cvsignore#1 branch
.. //depot/projects/netsmp/src/sys/arm/conf/IQ31244#1 branch
.. //depot/projects/netsmp/src/sys/arm/conf/SIMICS#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/_bus.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/_inttypes.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/_limits.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/_stdint.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/_types.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/armreg.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/asm.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/asmacros.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/atomic.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/blockio.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/bootconfig.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/bus.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/bus_dma.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/clock.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/cpu.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/cpuconf.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/cpufunc.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/db_machdep.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/disassem.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/elf.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/endian.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/exec.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/fiq.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/float.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/floatingpoint.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/fp.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/frame.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/ieee.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/ieeefp.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/in_cksum.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/intr.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/katelib.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/kdb.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/limits.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/machdep.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/md_var.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/memdev.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/metadata.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/mutex.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/param.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/pcb.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/pcpu.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/pmap.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/pmc_mdep.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/proc.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/profile.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/psl.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/pte.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/ptrace.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/reg.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/reloc.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/resource.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/runq.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/setjmp.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/sf_buf.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/sigframe.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/signal.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/smp.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/stdarg.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/swi.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/sysarch.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/trap.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/ucontext.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/undefined.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/utrap.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/include/vmparam.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/sa11x0/assabet_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/sa11x0/files.sa11x0#1 branch
.. //depot/projects/netsmp/src/sys/arm/sa11x0/sa11x0.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/sa11x0/sa11x0_dmacreg.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/sa11x0/sa11x0_gpioreg.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/sa11x0/sa11x0_io.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/sa11x0/sa11x0_io_asm.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/sa11x0/sa11x0_irq.S#1 branch
.. //depot/projects/netsmp/src/sys/arm/sa11x0/sa11x0_irqhandler.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/sa11x0/sa11x0_ost.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/sa11x0/sa11x0_ostreg.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/sa11x0/sa11x0_ppcreg.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/sa11x0/sa11x0_reg.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/sa11x0/sa11x0_var.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/sa11x0/std.sa11x0#1 branch
.. //depot/projects/netsmp/src/sys/arm/sa11x0/uart_bus_sa1110.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/sa11x0/uart_cpu_sa1110.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/sa11x0/uart_dev_sa1110.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/sa11x0/uart_dev_sa1110.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/i80321/files.i80321#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/i80321/files.iq31244#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/i80321/i80321.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/i80321/i80321_intr.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/i80321/i80321_mcu.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/i80321/i80321_pci.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/i80321/i80321_space.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/i80321/i80321_timer.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/i80321/i80321_wdog.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/i80321/i80321reg.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/i80321/i80321var.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/i80321/iq31244_7seg.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/i80321/iq31244_machdep.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/i80321/iq80321.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/i80321/iq80321reg.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/i80321/iq80321var.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/i80321/obio.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/i80321/obio_space.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/i80321/obiovar.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/i80321/std.i80321#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/i80321/std.iq31244#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/i80321/uart_bus_i80321.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/i80321/uart_cpu_i80321.c#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/std.xscale#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/xscalereg.h#1 branch
.. //depot/projects/netsmp/src/sys/arm/xscale/xscalevar.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/README#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/Makefile.inc#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/boot1/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/boot1/boot1.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/cdboot/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/cdboot/version#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/common/Makefile.common#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/common/conf.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/common/help.alpha#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/common/ldscript#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/common/main.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/libalpha/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/libalpha/OSFpal.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/libalpha/alpha_copy.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/libalpha/alpha_module.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/libalpha/bbinfo.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/libalpha/bootinfo.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/libalpha/common.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/libalpha/delay.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/libalpha/devicename.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/libalpha/elf_freebsd.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/libalpha/getsecs.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/libalpha/libalpha.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/libalpha/pal.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/libalpha/prom.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/libalpha/prom_disp.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/libalpha/prom_swpal.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/libalpha/reboot.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/libalpha/srmdisk.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/libalpha/srmnet.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/libalpha/start.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/libalpha/time.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/loader/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/loader/version#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/netboot/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/alpha/netboot/version#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/Makefile.inc#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/include/arcfuncs.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/include/arctypes.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/include/libarc.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/lib/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/lib/abort.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/lib/arcconsole.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/lib/arcdisk.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/lib/arch/alpha/copy.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/lib/arch/alpha/rpb.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/lib/arch/alpha/setjmp.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/lib/arch/alpha/start.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/lib/bootinfo.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/lib/delay.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/lib/devicename.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/lib/elf_freebsd.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/lib/module.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/lib/prom.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/lib/setjmperr.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/lib/time.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/loader/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/loader/conf.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/loader/help.alpha#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/loader/main.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/arc/loader/version#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/Makefile.inc#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/bcache.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/boot.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/bootstrap.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/commands.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/console.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/dev_net.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/dev_net.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/devopen.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/help.common#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/interp.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/interp_backslash.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/interp_forth.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/interp_parse.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/isapnp.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/isapnp.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/load.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/load_elf.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/load_elf32.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/load_elf32_obj.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/load_elf64.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/load_elf64_obj.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/load_elf_obj.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/loader.8#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/ls.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/merge_help.awk#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/misc.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/module.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/newvers.sh#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/panic.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/pnp.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/pnpdata#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/reloc_elf.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/reloc_elf32.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/reloc_elf64.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/common/ufsread.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/Makefile.inc#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/include/README#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/include/efi.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/include/efi_nii.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/include/efiapi.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/include/eficon.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/include/efidebug.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/include/efidef.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/include/efidevp.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/include/efierr.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/include/efifpswa.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/include/efifs.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/include/efilib.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/include/efinet.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/include/efipart.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/include/efiprot.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/include/efipxebc.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/include/efiser.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/include/efistdarg.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/include/i386/efibind.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/include/i386/pe.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/include/ia64/efibind.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/include/ia64/pe.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/libefi/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/libefi/bootinfo.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/libefi/copy.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/libefi/delay.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/libefi/devicename.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/libefi/efi_console.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/libefi/efiboot.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/libefi/efifpswa.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/libefi/efifs.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/libefi/efinet.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/libefi/elf_freebsd.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/libefi/libefi.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/libefi/module.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/efi/libefi/time.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/alpha/sysdep.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/alpha/sysdep.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/dict.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/ficl.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/ficl.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/fileaccess.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/float.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/i386/sysdep.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/i386/sysdep.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/ia64/sysdep.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/ia64/sysdep.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/loader.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/math64.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/math64.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/powerpc/sysdep.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/powerpc/sysdep.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/prefix.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/search.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/softwords/classes.fr#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/softwords/ficlclass.fr#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/softwords/ficllocal.fr#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/softwords/fileaccess.fr#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/softwords/forml.fr#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/softwords/freebsd.fr#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/softwords/ifbrack.fr#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/softwords/jhlocal.fr#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/softwords/marker.fr#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/softwords/oo.fr#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/softwords/prefix.fr#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/softwords/softcore.awk#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/softwords/softcore.fr#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/softwords/string.fr#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/sparc64/sysdep.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/sparc64/sysdep.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/stack.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/testmain.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/tools.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/unix.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/vm.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ficl/words.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/forth/beastie.4th#1 branch
.. //depot/projects/netsmp/src/sys/boot/forth/frames.4th#1 branch
.. //depot/projects/netsmp/src/sys/boot/forth/loader.4th#1 branch
.. //depot/projects/netsmp/src/sys/boot/forth/loader.4th.8#1 branch
.. //depot/projects/netsmp/src/sys/boot/forth/loader.conf#1 branch
.. //depot/projects/netsmp/src/sys/boot/forth/loader.conf.5#1 branch
.. //depot/projects/netsmp/src/sys/boot/forth/loader.rc#1 branch
.. //depot/projects/netsmp/src/sys/boot/forth/pnp.4th#1 branch
.. //depot/projects/netsmp/src/sys/boot/forth/screen.4th#1 branch
.. //depot/projects/netsmp/src/sys/boot/forth/support.4th#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/Makefile.inc#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/boot0/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/boot0/boot0.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/boot0/boot0ext.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/boot0ext/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/boot0sio/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/boot2/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/boot2/boot1.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/boot2/boot2.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/boot2/lib.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/boot2/sio.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/btx/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/btx/Makefile.inc#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/btx/btx/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/btx/btx/btx.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/btx/btxldr/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/btx/btxldr/btxldr.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/btx/lib/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/btx/lib/btxcsu.s#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/btx/lib/btxsys.s#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/btx/lib/btxv86.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/btx/lib/btxv86.s#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/cdboot/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/cdboot/cdboot.s#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/kgzldr/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/kgzldr/boot.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/kgzldr/crt.s#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/kgzldr/kgzldr.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/kgzldr/lib.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/kgzldr/sio.s#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/kgzldr/start.s#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/amd64_tramp.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/biosacpi.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/bioscd.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/biosdisk.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/biosmem.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/biospci.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/biospnp.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/biossmap.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/bootinfo.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/bootinfo32.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/bootinfo64.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/comconsole.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/devicename.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/elf32_freebsd.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/elf64_freebsd.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/gatea20.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/i386_copy.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/i386_module.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/libi386.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/nullconsole.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/pread.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/pxe.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/pxe.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/pxetramp.s#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/smbios.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/time.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/libi386/vidconsole.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/loader/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/loader/conf.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/loader/help.i386#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/loader/main.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/loader/version#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/mbr/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/mbr/mbr.s#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/pxeldr/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/pxeldr/pxeboot.8#1 branch
.. //depot/projects/netsmp/src/sys/boot/i386/pxeldr/pxeldr.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/Makefile.inc#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/efi/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/efi/conf.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/efi/efimd.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/efi/ldscript.ia64#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/efi/main.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/efi/start.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/efi/version#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/ski/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/ski/acpi_stub.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/ski/bootinfo.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/ski/conf.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/ski/copy.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/ski/delay.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/ski/devicename.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/ski/efi_stub.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/ski/elf_freebsd.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/ski/exit.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/ski/ldscript.ia64#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/ski/libski.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/ski/main.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/ski/pal_stub.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/ski/sal_stub.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/ski/skiconsole.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/ski/skifs.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/ski/skiload.cmd#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/ski/ssc.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/ski/start.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/ski/time.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ia64/ski/version#1 branch
.. //depot/projects/netsmp/src/sys/boot/ofw/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/ofw/common/Makefile.inc#1 branch
.. //depot/projects/netsmp/src/sys/boot/ofw/common/main.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ofw/libofw/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/ofw/libofw/devicename.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ofw/libofw/elf_freebsd.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ofw/libofw/libofw.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/ofw/libofw/ofw_console.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ofw/libofw/ofw_copy.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ofw/libofw/ofw_disk.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ofw/libofw/ofw_memory.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ofw/libofw/ofw_module.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ofw/libofw/ofw_net.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ofw/libofw/ofw_reboot.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ofw/libofw/ofw_time.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ofw/libofw/openfirm.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/ofw/libofw/openfirm.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/Makefile.inc#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot0.5/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot0.5/boot.s#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot0.5/boot0.5.s#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot0.5/disk.s#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot0.5/selector.s#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot0.5/start.s#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot0.5/support.s#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot0.5/syscons.s#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot0/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot0/boot0.s#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot2/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot2/README.serial.98#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot2/asm.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot2/asm.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot2/bios.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot2/boot.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot2/boot.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot2/boot2.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot2/dinode.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot2/disk.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot2/fs.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot2/inode.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot2/io.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot2/probe_keyboard.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot2/quota.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot2/serial.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot2/serial_16550.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot2/serial_8251.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot2/start.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot2/sys.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/boot2/table.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/btx/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/btx/Makefile.inc#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/btx/btx/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/btx/btx/btx.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/btx/btxldr/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/btx/btxldr/btxldr.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/btx/lib/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/btx/lib/btxcsu.s#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/btx/lib/btxsys.s#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/btx/lib/btxv86.h#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/btx/lib/btxv86.s#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/kgzldr/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/kgzldr/crt.s#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/libpc98/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/libpc98/biosdisk.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/libpc98/biosmem.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/libpc98/comconsole.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/libpc98/gatea20.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/libpc98/i386_module.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/libpc98/time.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/libpc98/vidconsole.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/loader/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/loader/conf.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/loader/help.pc98#1 branch
.. //depot/projects/netsmp/src/sys/boot/pc98/loader/main.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/powerpc/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/powerpc/loader/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/powerpc/loader/conf.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/powerpc/loader/help.ofw#1 branch
.. //depot/projects/netsmp/src/sys/boot/powerpc/loader/ldscript.powerpc#1 branch
.. //depot/projects/netsmp/src/sys/boot/powerpc/loader/metadata.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/powerpc/loader/start.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/powerpc/loader/version#1 branch
.. //depot/projects/netsmp/src/sys/boot/sparc64/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/sparc64/Makefile.inc#1 branch
.. //depot/projects/netsmp/src/sys/boot/sparc64/boot1/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/sparc64/boot1/_start.s#1 branch
.. //depot/projects/netsmp/src/sys/boot/sparc64/boot1/boot1.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/sparc64/loader/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/boot/sparc64/loader/help.sparc64#1 branch
.. //depot/projects/netsmp/src/sys/boot/sparc64/loader/locore.S#1 branch
.. //depot/projects/netsmp/src/sys/boot/sparc64/loader/main.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/sparc64/loader/metadata.c#1 branch
.. //depot/projects/netsmp/src/sys/boot/sparc64/loader/version#1 branch
.. //depot/projects/netsmp/src/sys/bsm/audit.h#1 branch
.. //depot/projects/netsmp/src/sys/bsm/audit_kevents.h#1 branch
.. //depot/projects/netsmp/src/sys/cam/cam.c#1 branch
.. //depot/projects/netsmp/src/sys/cam/cam.h#1 branch
.. //depot/projects/netsmp/src/sys/cam/cam_ccb.h#1 branch
.. //depot/projects/netsmp/src/sys/cam/cam_debug.h#1 branch
.. //depot/projects/netsmp/src/sys/cam/cam_periph.c#1 branch
.. //depot/projects/netsmp/src/sys/cam/cam_periph.h#1 branch
.. //depot/projects/netsmp/src/sys/cam/cam_queue.c#1 branch
.. //depot/projects/netsmp/src/sys/cam/cam_queue.h#1 branch
.. //depot/projects/netsmp/src/sys/cam/cam_sim.c#1 branch
.. //depot/projects/netsmp/src/sys/cam/cam_sim.h#1 branch
.. //depot/projects/netsmp/src/sys/cam/cam_xpt.c#1 branch
.. //depot/projects/netsmp/src/sys/cam/cam_xpt.h#1 branch
.. //depot/projects/netsmp/src/sys/cam/cam_xpt_periph.h#1 branch
.. //depot/projects/netsmp/src/sys/cam/cam_xpt_sim.h#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_all.c#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_all.h#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_cd.c#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_cd.h#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_ch.c#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_ch.h#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_da.c#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_da.h#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_dvcfg.h#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_iu.h#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_low.c#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_low.h#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_low_pisa.c#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_low_pisa.h#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_message.h#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_pass.c#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_pass.h#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_pt.c#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_pt.h#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_sa.c#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_sa.h#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_ses.c#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_ses.h#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_targ_bh.c#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_target.c#1 branch
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_targetio.h#1 branch
.. //depot/projects/netsmp/src/sys/coda/00READ#1 branch
.. //depot/projects/netsmp/src/sys/coda/README#1 branch
.. //depot/projects/netsmp/src/sys/coda/TODO#1 branch
.. //depot/projects/netsmp/src/sys/coda/cnode.h#1 branch
.. //depot/projects/netsmp/src/sys/coda/coda.h#1 branch
.. //depot/projects/netsmp/src/sys/coda/coda_fbsd.c#1 branch
.. //depot/projects/netsmp/src/sys/coda/coda_io.h#1 branch
.. //depot/projects/netsmp/src/sys/coda/coda_kernel.h#1 branch
.. //depot/projects/netsmp/src/sys/coda/coda_namecache.c#1 branch
.. //depot/projects/netsmp/src/sys/coda/coda_namecache.h#1 branch
.. //depot/projects/netsmp/src/sys/coda/coda_opstats.h#1 branch
.. //depot/projects/netsmp/src/sys/coda/coda_pioctl.h#1 branch
.. //depot/projects/netsmp/src/sys/coda/coda_psdev.c#1 branch
.. //depot/projects/netsmp/src/sys/coda/coda_psdev.h#1 branch
.. //depot/projects/netsmp/src/sys/coda/coda_subr.c#1 branch
.. //depot/projects/netsmp/src/sys/coda/coda_subr.h#1 branch
.. //depot/projects/netsmp/src/sys/coda/coda_venus.c#1 branch
.. //depot/projects/netsmp/src/sys/coda/coda_venus.h#1 branch
.. //depot/projects/netsmp/src/sys/coda/coda_vfsops.c#1 branch
.. //depot/projects/netsmp/src/sys/coda/coda_vfsops.h#1 branch

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

From owner-p4-projects@FreeBSD.ORG  Tue Jul 19 21:18:28 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 4BE4816A41F; Tue, 19 Jul 2005 21:18:28 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 E669216A41F
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 21:18:27 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 9BC0D43D46
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 21:18:27 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6JLIR83090488
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 21:18:27 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6JLIRtB090485
	for perforce@freebsd.org; Tue, 19 Jul 2005 21:18:27 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Tue, 19 Jul 2005 21:18:27 GMT
Message-Id: <200507192118.j6JLIRtB090485@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson <rwatson@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80552 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 19 Jul 2005 21:18:29 -0000

http://perforce.freebsd.org/chv.cgi?CH=80552

Change 80552 by rwatson@rwatson_zoo on 2005/07/19 21:17:57

	Merge 80535 from rwatson_netperf to netsmp:
	
	Initial cut at locking multicast address list frobbing at the
	link layer.

Affected files ...

.. //depot/projects/netsmp/src/sys/net/if.c#2 edit
.. //depot/projects/netsmp/src/sys/net/if_var.h#2 edit

Differences ...

==== //depot/projects/netsmp/src/sys/net/if.c#2 (text+ko) ====

@@ -417,6 +417,8 @@
 {
 
 	if_free_type(ifp, ifp->if_type);
+
+	IF_ADDR_LOCK_DESTROY(ifp);
 }
 
 void
@@ -460,6 +462,7 @@
 	TASK_INIT(&ifp->if_starttask, 0, if_start_deferred, ifp);
 	TASK_INIT(&ifp->if_linktask, 0, do_link_state_change, ifp);
 	IF_AFDATA_LOCK_INIT(ifp);
+	IF_ADDR_LOCK_INIT(ifp);
 	ifp->if_afdata_initialized = 0;
 	IFNET_WLOCK();
 	TAILQ_INSERT_TAIL(&ifnet, ifp, if_link);
@@ -1824,99 +1827,219 @@
 	return (if_setflag(ifp, IFF_ALLMULTI, 0, &ifp->if_amcount, onswitch));
 }
 
+struct ifmultiaddr *
+ifmaof_ifpforaddr(struct sockaddr *sa, struct ifnet *ifp)
+{
+	struct ifmultiaddr *ifma;
+
+	IF_ADDR_LOCK_ASSERT(ifp);
+
+	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link)
+		if (sa_equal(ifma->ifma_addr, sa))
+			break;
+
+	return ifma;
+}
+
+/*
+ * XXXRW: ifmaof_ifpforaddr() is an unsensible name, and appears not to be
+ * used, so use my more sensibly named version here.
+ */
+static struct ifmultiaddr *
+if_findmulti(struct ifnet *ifp, struct sockaddr *sa)
+{
+
+	IF_ADDR_LOCK_ASSERT(ifp);
+
+	return (ifmaof_ifpforaddr(sa, ifp));
+}
+
+/*
+ * Allocate a new ifmultiaddr and initialize based on passed arguments.  We
+ * make copies of passed sockaddrs.  The ifmultiaddr will not be added to
+ * the ifnet multicast address list here, so the caller must do that and
+ * other setup work (such as notifying the device driver).  The reference
+ * count is initialized to 1.
+ */
+static struct ifmultiaddr *
+if_allocmulti(struct ifnet *ifp, struct sockaddr *sa, struct sockaddr *llsa,
+    int mflags)
+{
+	struct ifmultiaddr *ifma;
+	struct sockaddr *dupsa;
+
+	KASSERT(ifp != NULL, ("if_allocmulti: NULL ifp"));
+	KASSERT(sa != NULL, ("if_allocmulti: NULL sa"));
+
+	MALLOC(ifma, struct ifmultiaddr *, sizeof *ifma, M_IFMADDR, mflags);
+	if (ifma == NULL)
+		return (NULL);
+
+	MALLOC(dupsa, struct sockaddr *, sa->sa_len, M_IFMADDR, mflags);
+	if (dupsa == NULL) {
+		FREE(ifma, M_IFMADDR);
+		return (NULL);
+	}
+	bcopy(sa, dupsa, sa->sa_len);
+	ifma->ifma_addr = dupsa;
+
+	if (llsa != NULL) {
+		MALLOC(dupsa, struct sockaddr *, llsa->sa_len, M_IFMADDR,
+		    mflags);
+		if (dupsa == NULL) {
+			FREE(ifma->ifma_addr, M_IFMADDR);
+			FREE(ifma, M_IFMADDR);
+			return (NULL);
+		}
+		bcopy(llsa, dupsa, llsa->sa_len);
+		ifma->ifma_lladdr = llsa;
+	} else
+		ifma->ifma_lladdr = NULL;
+
+	ifma->ifma_ifp = ifp;
+	ifma->ifma_refcount = 1;
+	ifma->ifma_protospec = NULL;
+
+	return (ifma);
+}
+
+/*
+ * if_freemulti: free ifmultiaddr structure and possibly attached related
+ * addresses.  The caller is responsible for implementing reference
+ * counting, notifying the driver, handling routing messages, and releasing
+ * any dependent link layer state.
+ */
+static void
+if_freemulti(struct ifmultiaddr *ifma)
+{
+
+	KASSERT(ifma->ifma_refcount == 1, ("if_freemulti: refcount %d",
+	    ifma->ifma_refcount));
+	KASSERT(ifma->ifma_protospec == NULL,
+	    ("if_freemulti: protospec not NULL"));
+
+	if (ifma->ifma_lladdr != NULL)
+		FREE(ifma->ifma_lladdr, M_IFMADDR);
+	FREE(ifma->ifma_addr, M_IFMADDR);
+	FREE(ifma, M_IFMADDR);
+}
+
 /*
- * Add a multicast listenership to the interface in question.
- * The link layer provides a routine which converts
+ * Register an additional multicast address with a network interface.
+ *
+ * - If the address is already present, bump the reference count on the
+ *   address and return.
+ * - If the address is not link-layer, look up a link layer address.
+ * - Allocate address structures for one or both addresses, and attach to the
+ *   multicast address list on the interface.  If automatically adding a link
+ *   layer address, the protocol address will own a reference to the link
+ *   layer address, to be freed when it is freed.
+ * - Notify the network device driver of an addition to the multicast address
+ *   list.
+ *
+ * 'sa' points to caller-owned memory with the desired multicast address.
+ *
+ * 'retifma' will be used to return a pointer to the resulting multicast
+ * address reference, if desired.
  */
 int
-if_addmulti(struct ifnet *ifp, struct sockaddr *sa, struct ifmultiaddr **retifma)
+if_addmulti(struct ifnet *ifp, struct sockaddr *sa,
+    struct ifmultiaddr **retifma)
 {
-	struct sockaddr *llsa, *dupsa;
-	int error, s;
-	struct ifmultiaddr *ifma;
+	struct ifmultiaddr *ifma, *ll_ifma, *new_ifma, *new_ll_ifma;
+	struct sockaddr *llsa;
+	int error;
 
 	/*
-	 * If the matching multicast address already exists
-	 * then don't add a new one, just add a reference
+	 * If the address is already present, return a new reference to it;
+	 * otherwise, allocate storage and set up a new address.  Since we
+	 * release the interface lock, we have to check for races in which
+	 * another thread may also have set up the same address.
 	 */
-	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
-		if (sa_equal(sa, ifma->ifma_addr)) {
-			ifma->ifma_refcount++;
-			if (retifma)
-				*retifma = ifma;
-			return 0;
-		}
+	IF_ADDR_LOCK(ifp);
+	ifma = if_findmulti(ifp, sa);
+	if (ifma != NULL) {
+		ifma->ifma_refcount++;
+		if (retifma != NULL)
+			*retifma = ifma;
+		IF_ADDR_UNLOCK(ifp);
+		return (0);
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	/*
-	 * Give the link layer a chance to accept/reject it, and also
-	 * find out which AF_LINK address this maps to, if it isn't one
-	 * already.
+	 * The address isn't already present; perform a link layer
+	 * resolution if it's not already a link layer address, and allocate
+	 * and set up the address.  As of this point, if llsa is non-NULL,
+	 * we must free the sockaddr if we don't need it.
 	 */
 	if (ifp->if_resolvemulti != NULL) {
 		error = ifp->if_resolvemulti(ifp, &llsa, sa);
-		if (error) return error;
-	} else {
+		if (error)
+		    return error;
+	} else
 		llsa = NULL;
-	}
 
-	MALLOC(ifma, struct ifmultiaddr *, sizeof *ifma, M_IFMADDR, M_WAITOK);
-	MALLOC(dupsa, struct sockaddr *, sa->sa_len, M_IFMADDR, M_WAITOK);
-	bcopy(sa, dupsa, sa->sa_len);
-
-	ifma->ifma_addr = dupsa;
-	ifma->ifma_lladdr = llsa;
-	ifma->ifma_ifp = ifp;
-	ifma->ifma_refcount = 1;
-	ifma->ifma_protospec = NULL;
-	rt_newmaddrmsg(RTM_NEWMADDR, ifma);
+	new_ifma = if_allocmulti(ifp, sa, llsa, M_WAITOK);
+	if (llsa != NULL)
+		new_ll_ifma = if_allocmulti(ifp, llsa, NULL, M_WAITOK);
+	else
+		new_ll_ifma = NULL;	/* gcc */
 
 	/*
-	 * Some network interfaces can scan the address list at
-	 * interrupt time; lock them out.
+	 * Now check to see if we lost the race, and continue inserting if
+	 * not.  Note that we need to separately consider the link layer
+	 * and protocol layer multicast addresses.
 	 */
-	s = splimp();
-	TAILQ_INSERT_HEAD(&ifp->if_multiaddrs, ifma, ifma_link);
-	splx(s);
-	if (retifma != NULL)
-		*retifma = ifma;
+	IF_ADDR_LOCK(ifp);
+	ifma = if_findmulti(ifp, sa);
+	if (llsa != NULL)
+		ll_ifma = if_findmulti(ifp, llsa);
+	else
+		ll_ifma = NULL;	/* gcc */
+
+	if (ifma != NULL) {
+		if_freemulti(new_ifma);
+		ifma->ifma_refcount++;
+	} else {
+		ifma = new_ifma;
+		TAILQ_INSERT_HEAD(&ifp->if_multiaddrs, ifma, ifma_link);
+	}
 
 	if (llsa != NULL) {
-		TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
-			if (sa_equal(ifma->ifma_addr, llsa))
-				break;
-		}
-		if (ifma) {
-			ifma->ifma_refcount++;
+		if (ll_ifma != NULL) {
+			if_freemulti(new_ll_ifma);
+			ll_ifma->ifma_refcount++;
 		} else {
-			MALLOC(ifma, struct ifmultiaddr *, sizeof *ifma,
-			       M_IFMADDR, M_WAITOK);
-			MALLOC(dupsa, struct sockaddr *, llsa->sa_len,
-			       M_IFMADDR, M_WAITOK);
-			bcopy(llsa, dupsa, llsa->sa_len);
-			ifma->ifma_addr = dupsa;
-			ifma->ifma_lladdr = NULL;
-			ifma->ifma_ifp = ifp;
-			ifma->ifma_refcount = 1;
-			ifma->ifma_protospec = NULL;
-			s = splimp();
-			TAILQ_INSERT_HEAD(&ifp->if_multiaddrs, ifma, ifma_link);
-			splx(s);
+			ll_ifma = new_ll_ifma;
+			TAILQ_INSERT_HEAD(&ifp->if_multiaddrs, ll_ifma,
+			    ifma_link);
 		}
 	}
+
+	if (retifma != NULL)
+		*retifma = ifma;
+
+	/*
+	 * Must generate the message while holding the lock so that 'ifma'
+	 * pointer is still valid.
+	 */
+	rt_newmaddrmsg(RTM_NEWMADDR, ifma);
+	IF_ADDR_UNLOCK(ifp);
+
 	/*
 	 * We are certain we have added something, so call down to the
 	 * interface to let them know about it.
 	 */
 	if (ifp->if_ioctl != NULL) {
-		s = splimp();
 		IFF_LOCKGIANT(ifp);
 		(void) (*ifp->if_ioctl)(ifp, SIOCADDMULTI, 0);
 		IFF_UNLOCKGIANT(ifp);
-		splx(s);
 	}
 
-	return 0;
+	if (llsa != NULL)
+		FREE(llsa, M_IFMADDR);
+	return (0);
 }
 
 /*
@@ -2070,18 +2193,6 @@
 	return (0);
 }
 
-struct ifmultiaddr *
-ifmaof_ifpforaddr(struct sockaddr *sa, struct ifnet *ifp)
-{
-	struct ifmultiaddr *ifma;
-
-	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link)
-		if (sa_equal(ifma->ifma_addr, sa))
-			break;
-
-	return ifma;
-}
-
 /*
  * The name argument must be a pointer to storage which will last as
  * long as the interface does.  For physical devices, the result of

==== //depot/projects/netsmp/src/sys/net/if_var.h#2 (text+ko) ====

@@ -177,6 +177,7 @@
 	void	*if_afdata[AF_MAX];
 	int	if_afdata_initialized;
 	struct	mtx if_afdata_mtx;
+	struct	mtx if_addr_mtx;	/* mutex to protect address lists */
 	struct	task if_starttask;	/* task for IFF_NEEDSGIANT */
 	struct	task if_linktask;	/* task for link change events */
 };
@@ -217,6 +218,16 @@
 #define	if_list		if_link
 
 /*
+ * Locks for address lists on the network interface.
+ */
+#define	IF_ADDR_LOCK_INIT(if)	mtx_init(&(if)->if_addr_mtx,		\
+				    "if_addr_mtx", NULL, MTX_DEF)
+#define	IF_ADDR_LOCK_DESTROY(if)	mtx_destroy(&(if)->if_addr_mtx)
+#define	IF_ADDR_LOCK(if)	mtx_lock(&(if)->if_addr_mtx)
+#define	IF_ADDR_UNLOCK(if)	mtx_unlock(&(if)->if_addr_mtx)
+#define	IF_ADDR_LOCK_ASSERT(if)	mtx_assert(&(if)->if_addr_mtx, MA_OWNED)
+
+/*
  * Output queues (ifp->if_snd) and slow device input queues (*ifp->if_slowq)
  * are queues of messages stored on ifqueue structures
  * (defined above).  Entries are added to and deleted from these structures

From owner-p4-projects@FreeBSD.ORG  Tue Jul 19 21:23:35 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id B410916A421; Tue, 19 Jul 2005 21:23:34 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 77AF216A41F
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 21:23:34 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 3FAFD43D46
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 21:23:34 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6JLNYHf090770
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 21:23:34 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6JLNXiL090767
	for perforce@freebsd.org; Tue, 19 Jul 2005 21:23:34 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Tue, 19 Jul 2005 21:23:34 GMT
Message-Id: <200507192123.j6JLNXiL090767@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson <rwatson@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80553 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 19 Jul 2005 21:23:35 -0000

http://perforce.freebsd.org/chv.cgi?CH=80553

Change 80553 by rwatson@rwatson_zoo on 2005/07/19 21:22:39

	Merge change 80537 from rwatson_netperf to netsmp:
	
	Re-formulate and lock down if_delmulti().
	
	Comment on an inconsistency or two in the implementation.

Affected files ...

.. //depot/projects/netsmp/src/sys/net/if.c#3 edit

Differences ...

==== //depot/projects/netsmp/src/sys/net/if.c#3 (text+ko) ====

@@ -2023,6 +2023,8 @@
 	/*
 	 * Must generate the message while holding the lock so that 'ifma'
 	 * pointer is still valid.
+	 *
+	 * XXXRW: How come we don't announce ll_ifma?
 	 */
 	rt_newmaddrmsg(RTM_NEWMADDR, ifma);
 	IF_ADDR_UNLOCK(ifp);
@@ -2049,72 +2051,50 @@
 int
 if_delmulti(struct ifnet *ifp, struct sockaddr *sa)
 {
-	struct ifmultiaddr *ifma;
-	int s;
+	struct ifmultiaddr *ifma, *ll_ifma;
 
-	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link)
-		if (sa_equal(sa, ifma->ifma_addr))
-			break;
-	if (ifma == NULL)
+	IF_ADDR_LOCK(ifp);
+	ifma = if_findmulti(ifp, sa);
+	if (ifma == NULL) {
+		IF_ADDR_UNLOCK(ifp);
 		return ENOENT;
+	}
 
 	if (ifma->ifma_refcount > 1) {
 		ifma->ifma_refcount--;
+		IF_ADDR_UNLOCK(ifp);
 		return 0;
 	}
 
-	rt_newmaddrmsg(RTM_DELMADDR, ifma);
 	sa = ifma->ifma_lladdr;
-	s = splimp();
-	TAILQ_REMOVE(&ifp->if_multiaddrs, ifma, ifma_link);
+	ll_ifma = if_findmulti(ifp, sa);
+
 	/*
-	 * Make sure the interface driver is notified
-	 * in the case of a link layer mcast group being left.
+	 * XXXRW: How come we don't announce ll_ifma?
 	 */
-	if (ifp->if_ioctl && ifma->ifma_addr->sa_family == AF_LINK && sa == 0) {
-		IFF_LOCKGIANT(ifp);
-		(void) (*ifp->if_ioctl)(ifp, SIOCDELMULTI, 0);
-		IFF_UNLOCKGIANT(ifp);
+	rt_newmaddrmsg(RTM_DELMADDR, ifma);
+
+	TAILQ_REMOVE(&ifp->if_multiaddrs, ifma, ifma_link);
+	if_freemulti(ifma);
+
+	if (ll_ifma != NULL) {
+		if (ll_ifma->ifma_refcount == 1) {
+			TAILQ_REMOVE(&ifp->if_multiaddrs, ll_ifma, ifma_link);
+			if_freemulti(ll_ifma);
+		} else
+			ll_ifma->ifma_refcount--;
 	}
-	splx(s);
-	free(ifma->ifma_addr, M_IFMADDR);
-	free(ifma, M_IFMADDR);
-	if (sa == NULL)
-		return 0;
+	IF_ADDR_UNLOCK(ifp);
 
 	/*
-	 * Now look for the link-layer address which corresponds to
-	 * this network address.  It had been squirreled away in
-	 * ifma->ifma_lladdr for this purpose (so we don't have
-	 * to call ifp->if_resolvemulti() again), and we saved that
-	 * value in sa above.  If some nasty deleted the
-	 * link-layer address out from underneath us, we can deal because
-	 * the address we stored was is not the same as the one which was
-	 * in the record for the link-layer address.  (So we don't complain
-	 * in that case.)
+	 * Make sure the interface driver is notified
+	 * in the case of a link layer mcast group being left.
 	 */
-	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link)
-		if (sa_equal(sa, ifma->ifma_addr))
-			break;
-	if (ifma == NULL)
-		return 0;
-
-	if (ifma->ifma_refcount > 1) {
-		ifma->ifma_refcount--;
-		return 0;
-	}
-
-	s = splimp();
-	TAILQ_REMOVE(&ifp->if_multiaddrs, ifma, ifma_link);
-	if (ifp->if_ioctl != NULL) {
+	if (ifp->if_ioctl) {
 		IFF_LOCKGIANT(ifp);
 		(void) (*ifp->if_ioctl)(ifp, SIOCDELMULTI, 0);
 		IFF_UNLOCKGIANT(ifp);
 	}
-	splx(s);
-	free(ifma->ifma_addr, M_IFMADDR);
-	free(sa, M_IFMADDR);
-	free(ifma, M_IFMADDR);
 
 	return 0;
 }

From owner-p4-projects@FreeBSD.ORG  Tue Jul 19 21:30:45 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 092EC16A421; Tue, 19 Jul 2005 21:30:45 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 D7D7C16A41F
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 21:30:44 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id B2E3743D4C
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 21:30:43 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6JLUh4X091167
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 21:30:43 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6JLUhIN091164
	for perforce@freebsd.org; Tue, 19 Jul 2005 21:30:43 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Tue, 19 Jul 2005 21:30:43 GMT
Message-Id: <200507192130.j6JLUhIN091164@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson <rwatson@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80554 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 19 Jul 2005 21:30:46 -0000

http://perforce.freebsd.org/chv.cgi?CH=80554

Change 80554 by rwatson@rwatson_zoo on 2005/07/19 21:29:46

	Merge change 80541 from rwatson_netperf to netsmp:
	
	Lock device driver use of multicast address lists on network
	interfaces.

Affected files ...

.. //depot/projects/netsmp/src/sys/dev/ath/if_ath.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/awi/awi.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/bfe/if_bfe.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/bge/if_bge.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/ed/if_ed.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/em/if_em.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/ex/if_ex.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/fe/if_fe.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/fxp/if_fxp.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/gem/if_gem.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/hme/if_hme.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/ie/if_ie.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/if_ndis/if_ndis.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/ixgb/if_ixgb.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/lge/if_lge.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/lnc/if_lnc.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/my/if_my.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/nge/if_nge.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/nve/if_nve.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/owi/if_owi.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/pdq/pdq_ifsubr.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/ray/if_ray.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/re/if_re.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/sn/if_sn.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/snc/dp83932.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/tx/if_tx.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/txp/if_txp.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/usb/if_aue.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/usb/if_axe.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/usb/if_cue.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/usb/if_kue.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/usb/if_rue.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/usb/if_udav.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/vge/if_vge.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/wi/if_wi.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/wl/if_wl.c#2 edit
.. //depot/projects/netsmp/src/sys/dev/xe/if_xe.c#2 edit
.. //depot/projects/netsmp/src/sys/net/if_vlan.c#2 edit
.. //depot/projects/netsmp/src/sys/net/rtsock.c#2 edit
.. //depot/projects/netsmp/src/sys/netinet/in_var.h#2 edit
.. //depot/projects/netsmp/src/sys/netinet6/in6_var.h#2 edit
.. //depot/projects/netsmp/src/sys/netinet6/mld6.c#2 edit
.. //depot/projects/netsmp/src/sys/pci/if_dc.c#2 edit
.. //depot/projects/netsmp/src/sys/pci/if_de.c#2 edit
.. //depot/projects/netsmp/src/sys/pci/if_pcn.c#2 edit
.. //depot/projects/netsmp/src/sys/pci/if_rl.c#2 edit
.. //depot/projects/netsmp/src/sys/pci/if_sf.c#2 edit
.. //depot/projects/netsmp/src/sys/pci/if_sis.c#2 edit
.. //depot/projects/netsmp/src/sys/pci/if_sk.c#2 edit
.. //depot/projects/netsmp/src/sys/pci/if_ste.c#2 edit
.. //depot/projects/netsmp/src/sys/pci/if_ti.c#2 edit
.. //depot/projects/netsmp/src/sys/pci/if_tl.c#2 edit
.. //depot/projects/netsmp/src/sys/pci/if_vr.c#2 edit
.. //depot/projects/netsmp/src/sys/pci/if_wb.c#2 edit
.. //depot/projects/netsmp/src/sys/pci/if_xl.c#2 edit

Differences ...

==== //depot/projects/netsmp/src/sys/dev/ath/if_ath.c#2 (text+ko) ====

@@ -1662,6 +1662,7 @@
 	/* calculate and install multicast filter */
 	if ((ifp->if_flags & IFF_ALLMULTI) == 0) {
 		mfilt[0] = mfilt[1] = 0;
+		IF_ADDR_LOCK(ifp);
 		TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 			caddr_t dl;
 
@@ -1674,6 +1675,7 @@
 			pos &= 0x3f;
 			mfilt[pos / 32] |= (1 << (pos % 32));
 		}
+		IF_ADDR_UNLOCK(ifp);
 	} else {
 		mfilt[0] = mfilt[1] = ~0;
 	}

==== //depot/projects/netsmp/src/sys/dev/awi/awi.c#2 (text+ko) ====

@@ -1146,15 +1146,19 @@
 #ifdef __FreeBSD__
 	if (ifp->if_flags & IFF_ALLMULTI)
 		goto set_mib;
+	IF_ADDR_LOCK(ifp);
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 		if (ifma->ifma_addr->sa_family != AF_LINK)
 			continue;
-		if (n == AWI_GROUP_ADDR_SIZE)
+		if (n == AWI_GROUP_ADDR_SIZE) {
+			IF_ADDR_UNLOCK(ifp);
 			goto set_mib;
+		}
 		IEEE80211_ADDR_COPY(sc->sc_mib_addr.aGroup_Addresses[n],
 		    LLADDR((struct sockaddr_dl *)ifma->ifma_addr));
 		n++;
 	}
+	IF_ADDR_UNLOCK(ifp);
 #else
 	ETHER_FIRST_MULTI(step, &sc->sc_ic.ic_ec, enm);
 	while (enm != NULL) {

==== //depot/projects/netsmp/src/sys/dev/bfe/if_bfe.c#2 (text+ko) ====

@@ -883,12 +883,14 @@
 		val |= BFE_RXCONF_ALLMULTI;
 	else {
 		val &= ~BFE_RXCONF_ALLMULTI;
+		IF_ADDR_LOCK(ifp);
 		TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 			if (ifma->ifma_addr->sa_family != AF_LINK)
 				continue;
 			bfe_cam_write(sc,
 			    LLADDR((struct sockaddr_dl *)ifma->ifma_addr), i++);
 		}
+		IF_ADDR_UNLOCK(ifp);
 	}
 
 	CSR_WRITE_4(sc, BFE_RXCONF, val);

==== //depot/projects/netsmp/src/sys/dev/bge/if_bge.c#2 (text+ko) ====

@@ -1171,6 +1171,7 @@
 		CSR_WRITE_4(sc, BGE_MAR0 + (i * 4), 0);
 
 	/* Now program new ones. */
+	IF_ADDR_LOCK(ifp);
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 		if (ifma->ifma_addr->sa_family != AF_LINK)
 			continue;
@@ -1178,6 +1179,7 @@
 		    ifma->ifma_addr), ETHER_ADDR_LEN) & 0x7F;
 		hashes[(h & 0x60) >> 5] |= 1 << (h & 0x1F);
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	for (i = 0; i < 4; i++)
 		CSR_WRITE_4(sc, BGE_MAR0 + (i * 4), hashes[i]);

==== //depot/projects/netsmp/src/sys/dev/ed/if_ed.c#2 (text+ko) ====

@@ -1778,6 +1778,7 @@
 	mcaf[0] = 0;
 	mcaf[1] = 0;
 
+	IF_ADDR_LOCK(sc->ifp);
 	TAILQ_FOREACH(ifma, &sc->ifp->if_multiaddrs, ifma_link) {
 		if (ifma->ifma_addr->sa_family != AF_LINK)
 			continue;
@@ -1785,6 +1786,7 @@
 		    ifma->ifma_addr), ETHER_ADDR_LEN) >> 26;
 		af[index >> 3] |= 1 << (index & 7);
 	}
+	IF_ADDR_UNLOCK(sc->ifp);
 }
 
 int

==== //depot/projects/netsmp/src/sys/dev/em/if_em.c#2 (text+ko) ====

@@ -1596,7 +1596,8 @@
                 E1000_WRITE_REG(&adapter->hw, RCTL, reg_rctl);
                 msec_delay(5);
         }
-        
+
+	IF_ADDR_LOCK(ifp);
 #if __FreeBSD_version < 500000
         LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 #else
@@ -1611,6 +1612,7 @@
                       &mta[mcnt*ETH_LENGTH_OF_ADDRESS], ETH_LENGTH_OF_ADDRESS);
                 mcnt++;
         }
+	IF_ADDR_UNLOCK(ifp);
 
         if (mcnt >= MAX_NUM_MULTICAST_ADDRESSES) {
                 reg_rctl = E1000_READ_REG(&adapter->hw, RCTL);

==== //depot/projects/netsmp/src/sys/dev/ex/if_ex.c#2 (text+ko) ====

@@ -840,11 +840,13 @@
 	ifp = sc->ifp;
 
 	count = 0;
+	IF_ADDR_LOCK(ifp);
 	TAILQ_FOREACH(maddr, &ifp->if_multiaddrs, ifma_link) {
 		if (maddr->ifma_addr->sa_family != AF_LINK)
 			continue;
 		count++;
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	if ((ifp->if_flags & IFF_PROMISC) || (ifp->if_flags & IFF_ALLMULTI)
 			|| count > 63) {
@@ -871,7 +873,8 @@
 		CSR_WRITE_2(sc, IO_PORT_REG, 0);
 		CSR_WRITE_2(sc, IO_PORT_REG, 0);
 		CSR_WRITE_2(sc, IO_PORT_REG, (count + 1) * 6);
-		
+
+		IF_ADDR_LOCK(ifp);
 		TAILQ_FOREACH(maddr, &ifp->if_multiaddrs, ifma_link) {
 			if (maddr->ifma_addr->sa_family != AF_LINK)
 				continue;
@@ -882,6 +885,7 @@
 			CSR_WRITE_2(sc, IO_PORT_REG, *addr++);
 			CSR_WRITE_2(sc, IO_PORT_REG, *addr++);
 		}
+		IF_ADDR_UNLOCK(ifp);
 
 		/* Program our MAC address as well */
 		/* XXX: Is this necessary?  The Linux driver does this

==== //depot/projects/netsmp/src/sys/dev/fe/if_fe.c#2 (text+ko) ====

@@ -2060,6 +2060,7 @@
 	struct ifmultiaddr *ifma;
 
 	filter = fe_filter_nothing;
+	IF_ADDR_LOCK(sc->ifp);
 	TAILQ_FOREACH(ifma, &sc->ifp->if_multiaddrs, ifma_link) {
 		if (ifma->ifma_addr->sa_family != AF_LINK)
 			continue;
@@ -2072,6 +2073,7 @@
 
 		filter.data[index >> 3] |= 1 << (index & 7);
 	}
+	IF_ADDR_UNLOCK(sc->ifp);
 	return ( filter );
 }
 

==== //depot/projects/netsmp/src/sys/dev/fxp/if_fxp.c#2 (text+ko) ====

@@ -2484,6 +2484,7 @@
 
 	nmcasts = 0;
 	if ((sc->flags & FXP_FLAG_ALL_MCAST) == 0) {
+		IF_ADDR_LOCK(ifp);
 #if __FreeBSD_version < 500000
 		LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 #else
@@ -2500,6 +2501,7 @@
 			    &sc->mcsp->mc_addr[nmcasts][0], ETHER_ADDR_LEN);
 			nmcasts++;
 		}
+		IF_ADDR_UNLOCK(ifp);
 	}
 	mcsp->mc_cnt = htole16(nmcasts * ETHER_ADDR_LEN);
 	return (nmcasts);

==== //depot/projects/netsmp/src/sys/dev/gem/if_gem.c#2 (text+ko) ====

@@ -1894,6 +1894,7 @@
 	/* Clear hash table */
 	memset(hash, 0, sizeof(hash));
 
+	IF_ADDR_LOCK(ifp);
 	TAILQ_FOREACH(inm, &ifp->if_multiaddrs, ifma_link) {
 		if (inm->ifma_addr->sa_family != AF_LINK)
 			continue;
@@ -1906,6 +1907,7 @@
 		/* Set the corresponding bit in the filter. */
 		hash[crc >> 4] |= 1 << (15 - (crc & 15));
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	v |= GEM_MAC_RX_HASH_FILTER;
 	ifp->if_flags &= ~IFF_ALLMULTI;

==== //depot/projects/netsmp/src/sys/dev/hme/if_hme.c#2 (text+ko) ====

@@ -1679,6 +1679,7 @@
 	 * the word.
 	 */
 
+	IF_ADDR_LOCK(sc->sc_ifp);
 	TAILQ_FOREACH(inm, &sc->sc_ifp->if_multiaddrs, ifma_link) {
 		if (inm->ifma_addr->sa_family != AF_LINK)
 			continue;
@@ -1691,6 +1692,7 @@
 		/* Set the corresponding bit in the filter. */
 		hash[crc >> 4] |= 1 << (crc & 0xf);
 	}
+	IF_ADDR_UNLOCK(sc->sc_ifp);
 
 	ifp->if_flags &= ~IFF_ALLMULTI;
 

==== //depot/projects/netsmp/src/sys/dev/ie/if_ie.c#2 (text+ko) ====

@@ -1676,6 +1676,7 @@
 	 * Step through the list of addresses.
 	 */
 	sc->mcast_count = 0;
+	IF_ADDR_LOCK(sc->ifp);
 	TAILQ_FOREACH(ifma, &sc->ifp->if_multiaddrs, ifma_link) {
 		if (ifma->ifma_addr->sa_family != AF_LINK)
 			continue;
@@ -1690,6 +1691,7 @@
 		      &(sc->mcast_addrs[sc->mcast_count]), 6);
 		sc->mcast_count++;
 	}
+	IF_ADDR_UNLOCK(sc->ifp);
 
 setflag:
 	sc->want_mcsetup = 1;

==== //depot/projects/netsmp/src/sys/dev/if_ndis/if_ndis.c#2 (text+ko) ====

@@ -265,6 +265,7 @@
 	sc->ndis_filter |= NDIS_PACKET_TYPE_MULTICAST;
 
 	len = 0;
+	IF_ADDR_LOCK(ifp);
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 		if (ifma->ifma_addr->sa_family != AF_LINK)
 			continue;
@@ -272,11 +273,13 @@
 		    mclist + (ETHER_ADDR_LEN * len), ETHER_ADDR_LEN);
 		len++;
 		if (len > mclistsz) {
+			IF_ADDR_UNLOCK(ifp);
 			sc->ndis_filter |= NDIS_PACKET_TYPE_ALL_MULTICAST;
 			sc->ndis_filter &= ~NDIS_PACKET_TYPE_MULTICAST;
 			goto out;
 		}
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	len = len * ETHER_ADDR_LEN;
 	error = ndis_set_info(sc, OID_802_3_MULTICAST_LIST, mclist, &len);

==== //depot/projects/netsmp/src/sys/dev/ixgb/if_ixgb.c#2 (text+ko) ====

@@ -1065,6 +1065,7 @@
 
 	IOCTL_DEBUGOUT("ixgb_set_multi: begin");
 
+	IF_ADDR_LOCK(ifp);
 #if __FreeBSD_version < 500000
 	LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 #else
@@ -1077,6 +1078,7 @@
 		      &mta[mcnt * IXGB_ETH_LENGTH_OF_ADDRESS], IXGB_ETH_LENGTH_OF_ADDRESS);
 		mcnt++;
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	if (mcnt > MAX_NUM_MULTICAST_ADDRESSES) {
 		reg_rctl = IXGB_READ_REG(&adapter->hw, RCTL);

==== //depot/projects/netsmp/src/sys/dev/lge/if_lge.c#2 (text+ko) ====

@@ -390,6 +390,7 @@
 	CSR_WRITE_4(sc, LGE_MAR1, 0);
 
 	/* now program new ones */
+	IF_ADDR_LOCK(ifp);
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 		if (ifma->ifma_addr->sa_family != AF_LINK)
 			continue;
@@ -400,6 +401,7 @@
 		else
 			hashes[1] |= (1 << (h - 32));
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	CSR_WRITE_4(sc, LGE_MAR0, hashes[0]);
 	CSR_WRITE_4(sc, LGE_MAR1, hashes[1]);

==== //depot/projects/netsmp/src/sys/dev/lnc/if_lnc.c#2 (text+ko) ====

@@ -239,6 +239,7 @@
 	 */
 
 	bzero(sc->init_block->ladrf, MULTICAST_FILTER_LEN);
+	IF_ADDR_LOCK(ifp);
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 		if (ifma->ifma_addr->sa_family != AF_LINK)
 			continue;
@@ -247,6 +248,7 @@
 		    ifma->ifma_addr), ETHER_ADDR_LEN) >> 26;
 		sc->init_block->ladrf[index >> 3] |= 1 << (index & 7);
 	}
+	IF_ADDR_UNLOCK(ifp);
 }
 
 void

==== //depot/projects/netsmp/src/sys/dev/my/if_my.c#2 (text+ko) ====

@@ -346,6 +346,7 @@
 	CSR_WRITE_4(sc, MY_MAR1, 0);
 
 	/* now program new ones */
+	IF_ADDR_LOCK(ifp);
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 		if (ifma->ifma_addr->sa_family != AF_LINK)
 			continue;
@@ -357,6 +358,7 @@
 			hashes[1] |= (1 << (h - 32));
 		mcnt++;
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	if (mcnt)
 		rxfilt |= MY_AM;

==== //depot/projects/netsmp/src/sys/dev/nge/if_nge.c#2 (text+ko) ====

@@ -705,6 +705,7 @@
 	 * that needs to be updated, and the lower 4 bits represent
 	 * which bit within that byte needs to be set.
 	 */
+	IF_ADDR_LOCK(ifp);
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 		if (ifma->ifma_addr->sa_family != AF_LINK)
 			continue;
@@ -716,6 +717,7 @@
 		    NGE_FILTADDR_MCAST_LO + (index * 2));
 		NGE_SETBIT(sc, NGE_RXFILT_DATA, (1 << bit));
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	CSR_WRITE_4(sc, NGE_RXFILT_CTL, filtsave);
 

==== //depot/projects/netsmp/src/sys/dev/nve/if_nve.c#2 (text+ko) ====

@@ -1074,6 +1074,7 @@
 		return;
 	}
 	/* Setup multicast filter */
+	IF_ADDR_LOCK(ifp);
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 		u_char *addrp;
 
@@ -1087,6 +1088,7 @@
 			oraddr[i] |= mcaddr;
 		}
 	}
+	IF_ADDR_UNLOCK(ifp);
 	for (i = 0; i < 6; i++) {
 		hwfilter.acMulticastAddress[i] = andaddr[i] & oraddr[i];
 		hwfilter.acMulticastMask[i] = andaddr[i] | (~oraddr[i]);

==== //depot/projects/netsmp/src/sys/dev/owi/if_owi.c#2 (text+ko) ====

@@ -1213,6 +1213,7 @@
 		return;
 	}
 
+	IF_ADDR_LOCK(ifp);
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 		if (ifma->ifma_addr->sa_family != AF_LINK)
 			continue;
@@ -1225,6 +1226,7 @@
 			break;
 		}
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	mcast.wi_len = (i * 3) + 1;
 	wi_write_record(sc, (struct wi_ltv_gen *)&mcast);

==== //depot/projects/netsmp/src/sys/dev/pdq/pdq_ifsubr.c#2 (text+ko) ====

@@ -273,6 +273,7 @@
     PDQ_IFNET(sc)->if_flags &= ~IFF_ALLMULTI;
 #endif
 
+    IF_ADDR_LOCK(PDQ_IFNET(sc));
     for (ifma = TAILQ_FIRST(&PDQ_IFNET(sc)->if_multiaddrs); ifma && num_addrs > 0;
 	 ifma = TAILQ_NEXT(ifma, ifma_link)) {
 	    char *mcaddr;
@@ -285,6 +286,7 @@
 	    addr++;
 	    num_addrs--;
     }
+    IF_ADDR_UNLOCK(PDQ_IFNET(sc));
     /*
      * If not all the address fit into the CAM, turn on all-multicast mode.
      */

==== //depot/projects/netsmp/src/sys/dev/ray/if_ray.c#2 (text+ko) ====

@@ -2704,6 +2704,7 @@
 	 * The multicast list is only 16 items long so use promiscuous
 	 * mode and don't bother updating the multicast list.
 	 */
+	IF_ADDR_LOCK(ifp);
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link)
 		count++;
 	if (count == 0) {
@@ -2711,6 +2712,7 @@
 		return;
 	} else if (count > 16) {
 		ifp->if_flags |= IFF_ALLMULTI;
+		IF_ADDR_UNLOCK(ifp);
 		ray_com_runq_done(sc);
 		return;
 	} else if (ifp->if_flags & IFF_ALLMULTI)
@@ -2732,6 +2734,7 @@
 		);
 		bufp += ETHER_ADDR_LEN;
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	ray_com_ecf(sc, com);
 }

==== //depot/projects/netsmp/src/sys/dev/re/if_re.c#2 (text+ko) ====

@@ -601,6 +601,7 @@
 	CSR_WRITE_4(sc, RL_MAR4, 0);
 
 	/* now program new ones */
+	IF_ADDR_LOCK(ifp);
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 		if (ifma->ifma_addr->sa_family != AF_LINK)
 			continue;
@@ -612,6 +613,7 @@
 			hashes[1] |= (1 << (h - 32));
 		mcnt++;
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	if (mcnt)
 		rxfilt |= RL_RXCFG_RX_MULTI;

==== //depot/projects/netsmp/src/sys/dev/sn/if_sn.c#2 (text+ko) ====

@@ -1410,6 +1410,7 @@
 
 	bzero(mcf, MCFSZ);
 
+	IF_ADDR_LOCK(ifp);
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 	    if (ifma->ifma_addr->sa_family != AF_LINK)
 		return 0;
@@ -1423,5 +1424,6 @@
 	    }
 	    af[index2 >> 3] |= 1 << (index2 & 7);
 	}
+	IF_ADDR_UNLOCK(ifp);
 	return 1;  /* use multicast filter */
 }

==== //depot/projects/netsmp/src/sys/dev/snc/dp83932.c#2 (text+ko) ====

@@ -675,6 +675,7 @@
 	ifp->if_flags &= ~IFF_ALLMULTI;
 
 	/* Loop through multicast addresses */
+	IF_ADDR_LOCK(ifp);
         TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
                 if (ifma->ifma_addr->sa_family != AF_LINK)
                         continue;
@@ -688,6 +689,7 @@
 			 LLADDR((struct sockaddr_dl *)ifma->ifma_addr));
 		mcount++;
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	NIC_PUT(sc, SNCR_CDP, LOWER(sc->v_cda));
 	NIC_PUT(sc, SNCR_CDC, MAXCAM);

==== //depot/projects/netsmp/src/sys/dev/tx/if_tx.c#2 (text+ko) ====

@@ -1409,6 +1409,7 @@
 	filter[2] = 0;
 	filter[3] = 0;
 
+	IF_ADDR_LOCK(ifp);
 #if __FreeBSD_version < 500000
 	LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 #else
@@ -1420,6 +1421,7 @@
 		    ifma->ifma_addr), ETHER_ADDR_LEN) >> 26;
 		filter[h >> 4] |= 1 << (h & 0xF);
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	CSR_WRITE_4(sc, MC0, filter[0]);
 	CSR_WRITE_4(sc, MC1, filter[1]);

==== //depot/projects/netsmp/src/sys/dev/txp/if_txp.c#2 (text+ko) ====

@@ -1774,6 +1774,7 @@
 	else {
 		hash[0] = hash[1] = 0;
 
+		IF_ADDR_LOCK(ifp);
 		TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 			if (ifma->ifma_addr->sa_family != AF_LINK)
 				continue;
@@ -1797,6 +1798,7 @@
 			hashbit = (u_int16_t)(crc & (64 - 1));
 			hash[hashbit / 32] |= (1 << hashbit % 32);
 		}
+		IF_ADDR_UNLOCK(ifp);
 
 		if (mcnt > 0) {
 			filter |= TXP_RXFILT_HASHMULTI;

==== //depot/projects/netsmp/src/sys/dev/usb/if_aue.c#2 (text+ko) ====

@@ -539,6 +539,7 @@
 		aue_csr_write_1(sc, AUE_MAR0 + i, 0);
 
 	/* now program new ones */
+	IF_ADDR_LOCK(ifp);
 #if __FreeBSD_version >= 500000
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link)
 #else
@@ -551,6 +552,7 @@
 		    ifma->ifma_addr), ETHER_ADDR_LEN) & ((1 << AUE_BITS) - 1);
 		AUE_SETBIT(sc, AUE_MAR + (h >> 3), 1 << (h & 0x7));
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	return;
 }

==== //depot/projects/netsmp/src/sys/dev/usb/if_axe.c#2 (text+ko) ====

@@ -338,6 +338,7 @@
 	} else
 		rxmode &= ~AXE_RXCMD_ALLMULTI;
 
+	IF_ADDR_LOCK(ifp);
 #if __FreeBSD_version >= 500000
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link)
 #else
@@ -350,6 +351,7 @@
 		    ifma->ifma_addr), ETHER_ADDR_LEN) >> 26;
 		hashtbl[h / 8] |= 1 << (h % 8);
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	axe_cmd(sc, AXE_CMD_WRITE_MCAST, 0, 0, (void *)&hashtbl);
 	axe_cmd(sc, AXE_CMD_RXCTL_WRITE, 0, rxmode, NULL);

==== //depot/projects/netsmp/src/sys/dev/usb/if_cue.c#2 (text+ko) ====

@@ -356,6 +356,7 @@
 		sc->cue_mctab[i] = 0;
 
 	/* now program new ones */
+	IF_ADDR_LOCK(ifp);
 #if __FreeBSD_version >= 500000
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link)
 #else
@@ -367,6 +368,7 @@
 		h = cue_mchash(LLADDR((struct sockaddr_dl *)ifma->ifma_addr));
 		sc->cue_mctab[h >> 3] |= 1 << (h & 0x7);
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	/*
 	 * Also include the broadcast address in the filter

==== //depot/projects/netsmp/src/sys/dev/usb/if_kue.c#2 (text+ko) ====

@@ -327,6 +327,7 @@
 
 	sc->kue_rxfilt &= ~KUE_RXFILT_ALLMULTI;
 
+	IF_ADDR_LOCK(ifp);
 #if __FreeBSD_version >= 500000
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link)
 #else
@@ -345,6 +346,7 @@
 		    KUE_MCFILT(sc, i), ETHER_ADDR_LEN);
 		i++;
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	if (i == KUE_MCFILTCNT(sc))
 		sc->kue_rxfilt |= KUE_RXFILT_ALLMULTI;

==== //depot/projects/netsmp/src/sys/dev/usb/if_rue.c#2 (text+ko) ====

@@ -500,6 +500,7 @@
 	rue_csr_write_4(sc, RUE_MAR4, 0);
 
 	/* now program new ones */
+	IF_ADDR_LLOCK(ifp);
 #if __FreeBSD_version >= 500000
 	TAILQ_FOREACH (ifma, &ifp->if_multiaddrs, ifma_link)
 #else
@@ -516,6 +517,7 @@
 			hashes[1] |= (1 << (h - 32));
 		mcnt++;
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	if (mcnt)
 		rxcfg |= RUE_RCR_AM;

==== //depot/projects/netsmp/src/sys/dev/usb/if_udav.c#2 (text+ko) ====

@@ -1044,6 +1044,7 @@
 		ETHER_NEXT_MULTI(step, enm);
 	}
 #elif defined(__FreeBSD__)
+	IF_ADDR_LOCK(ifp);
 #if __FreeBSD_version >= 500000
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link)
 #else
@@ -1056,6 +1057,7 @@
 		    ifma->ifma_addr));
 		hashes[h>>3] |= 1 << (h & 0x7);
 	}
+	IF_ADDR_UNLOCK(ifp);
 #endif
 
 	/* disable all multicast */

==== //depot/projects/netsmp/src/sys/dev/vge/if_vge.c#2 (text+ko) ====

@@ -594,6 +594,7 @@
 	}
 
 	/* Now program new ones */
+	IF_ADDR_LOCK(ifp);
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 		if (ifma->ifma_addr->sa_family != AF_LINK)
 			continue;
@@ -626,6 +627,7 @@
 		CSR_WRITE_4(sc, VGE_MAR0, hashes[0]);
 		CSR_WRITE_4(sc, VGE_MAR1, hashes[1]);
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	return;
 }

==== //depot/projects/netsmp/src/sys/dev/wi/if_wi.c#2 (text+ko) ====

@@ -1739,6 +1739,7 @@
 	}
 
 	n = 0;
+	IF_ADDR_LOCK(ifp);
 #if __FreeBSD_version < 500000
 	LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 #else
@@ -1752,6 +1753,7 @@
 		    (LLADDR((struct sockaddr_dl *)ifma->ifma_addr)));
 		n++;
 	}
+	IF_ADDR_UNLOCK(ifp);
 	return wi_write_rid(sc, WI_RID_MCAST_LIST, &mlist,
 	    IEEE80211_ADDR_LEN * n);
 }

==== //depot/projects/netsmp/src/sys/dev/wl/if_wl.c#2 (text+ko) ====

@@ -2121,6 +2121,7 @@
     outw(PIOP1(base), 0);				/* ac_status */
     outw(PIOP1(base), AC_MCSETUP|AC_CW_EL);		/* ac_command */
     outw(PIOR1(base), OFFSET_CU + 8);
+    IF_ADDR_LOCK(sc->ifp);
     TAILQ_FOREACH(ifma, &sc->ifp->if_multiaddrs, ifma_link) {
 	if (ifma->ifma_addr->sa_family != AF_LINK)
 	    continue;
@@ -2131,6 +2132,7 @@
         outw(PIOP1(base), addrp[4] + (addrp[5] << 8));
         ++cnt;
     }
+    IF_ADDR_UNLOCK(sc->ifp);
     outw(PIOR1(base), OFFSET_CU + 6);		/* mc-cnt */
     outw(PIOP1(base), cnt * WAVELAN_ADDR_SIZE);
     if (wlcmd(sc, "config()-mcaddress") == 0)

==== //depot/projects/netsmp/src/sys/dev/xe/if_xe.c#2 (text+ko) ====

@@ -1274,6 +1274,7 @@
 
   /* Iterate over multicast address list */
   count = 0;
+  IF_ADDR_LOCK(ifp);
 #if __FreeBSD_version < 500000
   LIST_FOREACH(maddr, &ifp->if_multiaddrs, ifma_link) {
 #else
@@ -1295,6 +1296,7 @@
 	/* Nowhere else to put them on CE2 */
 	break;
   }
+  IF_ADDR_UNLOCK(ifp);
 
   DEVPRINTF(2, (scp->dev, "set_multicast: count = %u\n", count));
 

==== //depot/projects/netsmp/src/sys/net/if_vlan.c#2 (text+ko) ====

@@ -188,21 +188,27 @@
 	}
 
 	/* Now program new ones. */
+	IF_ADDR_LOCK(ifp);
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 		if (ifma->ifma_addr->sa_family != AF_LINK)
 			continue;
 		mc = malloc(sizeof(struct vlan_mc_entry), M_VLAN, M_NOWAIT);
-		if (mc == NULL)
+		if (mc == NULL) {
+			IF_ADDR_UNLOCK(ifp);
 			return (ENOMEM);
+		}
 		bcopy(LLADDR((struct sockaddr_dl *)ifma->ifma_addr),
 		    (char *)&mc->mc_addr, ETHER_ADDR_LEN);
 		SLIST_INSERT_HEAD(&sc->vlan_mc_listhead, mc, mc_entries);
 		bcopy(LLADDR((struct sockaddr_dl *)ifma->ifma_addr),
 		    LLADDR(&sdl), ETHER_ADDR_LEN);
 		error = if_addmulti(ifp_p, (struct sockaddr *)&sdl, &rifma);
-		if (error)
+		if (error) {
+			IF_ADDR_UNLOCK(ifp);
 			return (error);
+		}
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	return (0);
 }

==== //depot/projects/netsmp/src/sys/net/rtsock.c#2 (text+ko) ====

@@ -1178,6 +1178,11 @@
 			continue;
 		ifa = ifaddr_byindex(ifp->if_index);
 		info.rti_info[RTAX_IFP] = ifa ? ifa->ifa_addr : NULL;
+
+		/*
+		 * XXXRW: Can't acquire IF_ADDR_LOCK() due to call
+	 	 * to SYSCTL_OUT().
+		 */
 		TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 			if (af && af != ifma->ifma_addr->sa_family)
 				continue;

==== //depot/projects/netsmp/src/sys/netinet/in_var.h#2 (text+ko) ====

@@ -177,6 +177,8 @@
 /*
  * Macro for looking up the in_multi record for a given IP multicast address
  * on a given interface.  If no matching record is found, "inm" is set null.
+ *
+ * Caller must hold IF_ADDR_LOCK().
  */
 #define IN_LOOKUP_MULTI(addr, ifp, inm) \
 	/* struct in_addr addr; */ \
@@ -185,6 +187,7 @@
 do { \
 	struct ifmultiaddr *ifma; \
 \
+	IF_ADDR_LOCK_ASSERT(ifp);
 	TAILQ_FOREACH(ifma, &((ifp)->if_multiaddrs), ifma_link) { \
 		if (ifma->ifma_addr->sa_family == AF_INET \
 		    && ((struct sockaddr_in *)ifma->ifma_addr)->sin_addr.s_addr == \

==== //depot/projects/netsmp/src/sys/netinet6/in6_var.h#2 (text+ko) ====

@@ -535,6 +535,8 @@
  * Macros for looking up the in6_multi record for a given IP6 multicast
  * address on a given interface. If no matching record is found, "in6m"
  * returns NLL.
+ *
+ * Caller must hold IF_ADDR_LOCK(ifp).
  */
 
 #define IN6_LOOKUP_MULTI(addr, ifp, in6m)			\
@@ -543,6 +545,7 @@
 /* struct in6_multi *in6m; */					\
 do { \
 	struct ifmultiaddr *ifma; \
+	IF_ADDR_LOCK_ASSERT(ifp); \
 	TAILQ_FOREACH(ifma, &(ifp)->if_multiaddrs, ifma_link) { \
 		if (ifma->ifma_addr->sa_family == AF_INET6 \
 		    && IN6_ARE_ADDR_EQUAL(&((struct sockaddr_in6 *)ifma->ifma_addr)->sin6_addr, \

==== //depot/projects/netsmp/src/sys/netinet6/mld6.c#2 (text+ko) ====

@@ -266,6 +266,7 @@
 		mld6_all_nodes_linklocal.s6_addr16[1] =
 			htons(ifp->if_index); /* XXX */
 
+		IF_ADDR_LOCK(ifp);
 		TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 			if (ifma->ifma_addr->sa_family != AF_INET6)
 				continue;
@@ -296,6 +297,7 @@
 				}
 			}
 		}
+		IF_ADDR_UNLOCK(ifp);
 
 		if (IN6_IS_ADDR_MC_LINKLOCAL(&mldh->mld_addr))
 			mldh->mld_addr.s6_addr16[1] = 0; /* XXX */

==== //depot/projects/netsmp/src/sys/pci/if_dc.c#2 (text+ko) ====

@@ -1110,6 +1110,7 @@
 	else
 		DC_CLRBIT(sc, DC_NETCFG, DC_NETCFG_RX_ALLMULTI);
 
+	IF_ADDR_LOCK(ifp);
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 		if (ifma->ifma_addr->sa_family != AF_LINK)
 			continue;
@@ -1117,6 +1118,7 @@
 		    LLADDR((struct sockaddr_dl *)ifma->ifma_addr));
 		sp[h >> 4] |= htole32(1 << (h & 0xF));
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	if (ifp->if_flags & IFF_BROADCAST) {
 		h = dc_mchash_le(sc, ifp->if_broadcastaddr);
@@ -1179,6 +1181,7 @@
 		return;
 
 	/* Now program new ones. */
+	IF_ADDR_LOCK(ifp);
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 		if (ifma->ifma_addr->sa_family != AF_LINK)
 			continue;
@@ -1193,6 +1196,7 @@
 		else
 			hashes[1] |= (1 << (h - 32));
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	CSR_WRITE_4(sc, DC_AL_MAR0, hashes[0]);
 	CSR_WRITE_4(sc, DC_AL_MAR1, hashes[1]);
@@ -1250,6 +1254,7 @@
 		return;
 
 	/* now program new ones */
+	IF_ADDR_LOCK(ifp);
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 		if (ifma->ifma_addr->sa_family != AF_LINK)
 			continue;
@@ -1259,6 +1264,7 @@
 		else
 			hashes[1] |= (1 << (h - 32));
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	CSR_WRITE_4(sc, DC_AX_FILTIDX, DC_AX_FILTIDX_MAR0);
 	CSR_WRITE_4(sc, DC_AX_FILTDATA, hashes[0]);
@@ -1302,6 +1308,7 @@
 	else
 		DC_CLRBIT(sc, DC_NETCFG, DC_NETCFG_RX_ALLMULTI);
 
+	IF_ADDR_LOCK(ifp);
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 		if (ifma->ifma_addr->sa_family != AF_LINK)
 			continue;
@@ -1309,6 +1316,7 @@
 		    LLADDR((struct sockaddr_dl *)ifma->ifma_addr));
 		sp[h >> 4] |= htole32(1 << (h & 0xF));
 	}
+	IF_ADDR_UNLOCK(ifp);
 
 	if (ifp->if_flags & IFF_BROADCAST) {
 		h = dc_mchash_le(sc, ifp->if_broadcastaddr);

==== //depot/projects/netsmp/src/sys/pci/if_de.c#2 (text+ko) ====

@@ -3003,6 +3003,7 @@
 #endif
 
     multicnt = 0;
+    IF_ADDR_LOCK(sc->tulip_ifp);
     TAILQ_FOREACH(ifma, &sc->tulip_ifp->if_multiaddrs, ifma_link) {
 
 	    if (ifma->ifma_addr->sa_family == AF_LINK)
@@ -3125,6 +3126,7 @@
 #endif
 	}
     }
+    IF_ADDR_UNLOCK(sc->tulip_ifp);
 #if defined(IFF_ALLMULTI)
     if (sc->tulip_flags & TULIP_ALLMULTI)
 	sc->tulip_ifp->if_flags |= IFF_ALLMULTI;

==== //depot/projects/netsmp/src/sys/pci/if_pcn.c#2 (text+ko) ====


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

From owner-p4-projects@FreeBSD.ORG  Tue Jul 19 22:02:23 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 13A4416A421; Tue, 19 Jul 2005 22:02:23 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 BECBA16A41F
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 22:02:22 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 7512F43D45
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 22:02:22 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6JM2M1K092964
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 22:02:22 GMT
	(envelope-from sam@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6JM2Mll092960
	for perforce@freebsd.org; Tue, 19 Jul 2005 22:02:22 GMT
	(envelope-from sam@freebsd.org)
Date: Tue, 19 Jul 2005 22:02:22 GMT
Message-Id: <200507192202.j6JM2Mll092960@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	sam@freebsd.org using -f
From: Sam Leffler <sam@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80556 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 19 Jul 2005 22:02:24 -0000

http://perforce.freebsd.org/chv.cgi?CH=80556

Change 80556 by sam@sam_ebb on 2005/07/19 22:02:01

	o add tx fragmentation
	o move rts+txfrag default settings from ieee80211.h
	  to ieee80211_var.h since they are implementation-dependent
	  and not defined by the protocol (well maybe)
	o correct max rts 
	o fix some bounds checking of ioctl parameters to allow the
	  min/max settings
	o allow rts/frag thresholds to be reset with "-"; e.g.
	  ifconfig ath0 fragthreshold -

Affected files ...

.. //depot/projects/wifi/sbin/ifconfig/ifieee80211.c#43 edit
.. //depot/projects/wifi/sys/dev/ath/if_ath.c#89 edit
.. //depot/projects/wifi/sys/net80211/ieee80211.h#10 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#43 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_ioctl.h#27 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_output.c#45 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_proto.c#30 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_var.h#30 edit

Differences ...

==== //depot/projects/wifi/sbin/ifconfig/ifieee80211.c#43 (text+ko) ====

@@ -344,7 +344,8 @@
 static void
 set80211rtsthreshold(const char *val, int d, int s, const struct afswtch *rafp)
 {
-	set80211(s, IEEE80211_IOC_RTSTHRESHOLD, atoi(val), 0, NULL);
+	set80211(s, IEEE80211_IOC_RTSTHRESHOLD,
+		isundefarg(val) ? IEEE80211_RTS_MAX : atoi(val), 0, NULL);
 }
 
 static void
@@ -702,6 +703,13 @@
 	set80211(s, IEEE80211_IOC_MCAST_RATE, 2*atoi(val), 0, NULL);
 }
 
+static
+DECL_CMD_FUNC(set80211fragthreshold, val, d)
+{
+	set80211(s, IEEE80211_IOC_FRAGTHRESHOLD,
+		isundefarg(val) ? IEEE80211_FRAG_MAX : atoi(val), 0, NULL);
+}
+
 static int
 getmaxrate(uint8_t rates[15], uint8_t nrates)
 {
@@ -1093,7 +1101,7 @@
 #define	IEEE80211_C_BITS \
 "\020\1WEP\2TKIP\3AES\4AES_CCM\6CKIP\11IBSS\12PMGT\13HOSTAP\14AHDEMO" \
 "\15SWRETRY\16TXPMGT\17SHSLOT\20SHPREAMBLE\21MONITOR\22TKIPMIC\30WPA1" \
-"\31WPA2\32BURST\33WME\34WDS\36BGSCAN"
+"\31WPA2\32BURST\33WME\34WDS\36BGSCAN\37TXFRAG"
 
 static void
 list_capabilities(int s)
@@ -1587,6 +1595,12 @@
 			LINE_CHECK("%crtsthreshold %d", spacer, ireq.i_val);
 	}
 
+	ireq.i_type = IEEE80211_IOC_FRAGTHRESHOLD;
+	if (ioctl(s, SIOCG80211, &ireq) != -1) {
+		if (ireq.i_val != IEEE80211_FRAG_MAX || verbose)
+			LINE_CHECK("%cfragthreshold %d", spacer, ireq.i_val);
+	}
+
 	ireq.i_type = IEEE80211_IOC_MCAST_RATE;
 	if (ioctl(s, SIOCG80211, &ireq) != -1) {
 		if (ireq.i_val != 2*1 || verbose)
@@ -1967,6 +1981,7 @@
 	DEF_CMD_ARG("roam:rate11b",	set80211roamrate11b),
 	DEF_CMD_ARG("roam:rate11g",	set80211roamrate11g),
 	DEF_CMD_ARG("mcastrate",	set80211mcastrate),
+	DEF_CMD_ARG("fragthreshold",	set80211fragthreshold),
 };
 static struct afswtch af_ieee80211 = {
 	.af_name	= "af_ieee80211",

==== //depot/projects/wifi/sys/dev/ath/if_ath.c#89 (text+ko) ====

@@ -503,6 +503,7 @@
 		| IEEE80211_C_SHSLOT		/* short slot time supported */
 		| IEEE80211_C_WPA		/* capable of WPA1+WPA2 */
 		| IEEE80211_C_BGSCAN		/* capable of bg scanning */
+		| IEEE80211_C_TXFRAG		/* handle tx frags */
 		;
 	/*
 	 * Query the hal to figure out h/w crypto support.
@@ -1376,7 +1377,55 @@
 	return m;
 }
 
+/*
+ * Cleanup driver resources when we run out of buffers
+ * while processing fragments; return the tx buffers
+ * allocated and drop node references.
+ */
 static void
+ath_txfrag_cleanup(struct ath_softc *sc,
+	ath_bufhead *frags, struct ieee80211_node *ni)
+{
+	struct ath_buf *bf, *next;
+
+	ATH_TXBUF_LOCK_ASSERT(sc);
+
+	STAILQ_FOREACH_SAFE(bf, frags, bf_list, next) {
+		STAILQ_REMOVE_HEAD(frags, bf_list);
+		STAILQ_INSERT_TAIL(&sc->sc_txbuf, bf, bf_list);
+		ieee80211_node_decref(ni);
+	}
+}
+
+/*
+ * Setup xmit of a fragmented frame.  Allocate a buffer
+ * for each frag and bump the node reference count to
+ * reflect the held reference to be setup by ath_tx_start.
+ */
+static int
+ath_txfrag_setup(struct ath_softc *sc, ath_bufhead *frags,
+	struct mbuf *m0, struct ieee80211_node *ni)
+{
+	struct mbuf *m;
+	struct ath_buf *bf;
+
+	ATH_TXBUF_LOCK(sc);
+	for (m = m0->m_nextpkt; m != NULL; m = m->m_nextpkt) {
+		bf = STAILQ_FIRST(&sc->sc_txbuf);
+		if (bf == NULL) {	/* out of buffers, cleanup */
+			ath_txfrag_cleanup(sc, frags, ni);
+			break;
+		}
+		STAILQ_REMOVE_HEAD(&sc->sc_txbuf, bf_list);
+		ieee80211_node_incref(ni);
+		STAILQ_INSERT_TAIL(frags, bf, bf_list);
+	}
+	ATH_TXBUF_UNLOCK(sc);
+
+	return !STAILQ_EMPTY(frags);
+}
+
+static void
 ath_start(struct ifnet *ifp)
 {
 	struct ath_softc *sc = ifp->if_softc;
@@ -1384,10 +1433,11 @@
 	struct ieee80211com *ic = &sc->sc_ic;
 	struct ieee80211_node *ni;
 	struct ath_buf *bf;
-	struct mbuf *m;
+	struct mbuf *m, *next;
 	struct ieee80211_frame *wh;
 	struct ether_header *eh;
 	struct ath_txq *txq;
+	ath_bufhead frags;
 	int pri;
 
 	if ((ifp->if_flags & IFF_RUNNING) == 0 || sc->sc_invalid)
@@ -1434,6 +1484,7 @@
 				ATH_TXBUF_UNLOCK(sc);
 				break;
 			}
+			STAILQ_INIT(&frags);
 			/* 
 			 * Find the node for the destination so we can do
 			 * things like power save and fast frames aggregation.
@@ -1504,6 +1555,19 @@
 				sc->sc_stats.ast_tx_encap++;
 				goto bad;
 			}
+			/*
+			 * Check for fragmentation.  If this has frame
+			 * has been broken up verify we have enough
+			 * buffers to send all the fragments so all
+			 * go out or none...
+			 */
+			if ((m->m_flags & M_FRAG) && 
+			    !ath_txfrag_setup(sc, &frags, m, ni)) {
+				DPRINTF(sc, ATH_DEBUG_ANY,
+				    "%s: out of txfrag buffers\n", __func__);
+				ic->ic_stats.is_tx_nobuf++;	/* XXX */
+				goto bad;
+			}
 		} else {
 			/*
 			 * Hack!  The referenced node pointer is in the
@@ -1534,17 +1598,27 @@
 			sc->sc_stats.ast_tx_mgmt++;
 		}
 
+	nextfrag:
+		next = m->m_nextpkt;
 		if (ath_tx_start(sc, ni, bf, m)) {
 	bad:
 			ifp->if_oerrors++;
 	reclaim:
 			ATH_TXBUF_LOCK(sc);
 			STAILQ_INSERT_TAIL(&sc->sc_txbuf, bf, bf_list);
+			ath_txfrag_cleanup(sc, &frags, ni);
 			ATH_TXBUF_UNLOCK(sc);
 			if (ni != NULL)
 				ieee80211_free_node(ni);
 			continue;
 		}
+		if (next != NULL) {
+			m = next;
+			bf = STAILQ_FIRST(&frags);
+			KASSERT(bf != NULL, ("no buf for txfrag"));
+			STAILQ_REMOVE_HEAD(&frags, bf_list);
+			goto nextfrag;
+		}
 
 		sc->sc_tx_timer = 5;
 		ifp->if_timer = 1;
@@ -3563,6 +3637,18 @@
 	return 0;		/* NB: lowest rate */
 }
 
+static void
+ath_freetx(struct mbuf *m)
+{
+	struct mbuf *next;
+
+	do {
+		next = m->m_nextpkt;
+		m->m_nextpkt = NULL;
+		m_freem(m);
+	} while ((m = next) != NULL);
+}
+
 static int
 ath_tx_start(struct ath_softc *sc, struct ieee80211_node *ni, struct ath_buf *bf,
     struct mbuf *m0)
@@ -3578,7 +3664,7 @@
 	struct ath_hal *ah = sc->sc_ah;
 	struct ifnet *ifp = sc->sc_ifp;
 	const struct chanAccParams *cap = &ic->ic_wme.wme_chanParams;
-	int i, error, iswep, ismcast, keyix, hdrlen, pktlen, try0;
+	int i, error, iswep, ismcast, isfrag, keyix, hdrlen, pktlen, try0;
 	u_int8_t rix, txrate, ctsrate;
 	u_int8_t cix = 0xff;		/* NB: silence compiler */
 	struct ath_desc *ds, *ds0;
@@ -3595,6 +3681,7 @@
 	wh = mtod(m0, struct ieee80211_frame *);
 	iswep = wh->i_fc[1] & IEEE80211_FC1_WEP;
 	ismcast = IEEE80211_IS_MULTICAST(wh->i_addr1);
+	isfrag = m0->m_flags & M_FRAG;
 	hdrlen = ieee80211_anyhdrsize(wh);
 	/*
 	 * Packet length must not include any
@@ -3619,21 +3706,22 @@
 			 * 802.11 layer counts failures and provides
 			 * debugging/diagnostics.
 			 */
-			m_freem(m0);
+			ath_freetx(m0);
 			return EIO;
 		}
 		/*
 		 * Adjust the packet + header lengths for the crypto
 		 * additions and calculate the h/w key index.  When
 		 * a s/w mic is done the frame will have had any mic
-		 * added to it prior to entry so skb->len above will
+		 * added to it prior to entry so m0->m_pkthdr.len will
 		 * account for it. Otherwise we need to add it to the
 		 * packet length.
 		 */
 		cip = k->wk_cipher;
 		hdrlen += cip->ic_header;
 		pktlen += cip->ic_header + cip->ic_trailer;
-		if ((k->wk_flags & IEEE80211_KEY_SWMIC) == 0)
+		/* NB: frags always have any TKIP MIC done in s/w */
+		if ((k->wk_flags & IEEE80211_KEY_SWMIC) == 0 && !isfrag)
 			pktlen += cip->ic_miclen;
 		keyix = k->wk_keyix;
 
@@ -3663,7 +3751,7 @@
 		bf->bf_nseg = ATH_TXDESC+1;
 	} else if (error != 0) {
 		sc->sc_stats.ast_tx_busdma++;
-		m_freem(m0);
+		ath_freetx(m0);
 		return error;
 	}
 	/*
@@ -3675,7 +3763,7 @@
 		sc->sc_stats.ast_tx_linear++;
 		m = ath_defrag(m0, M_DONTWAIT, ATH_TXDESC);
 		if (m == NULL) {
-			m_freem(m0);
+			ath_freetx(m0);
 			sc->sc_stats.ast_tx_nombuf++;
 			return ENOMEM;
 		}
@@ -3685,14 +3773,14 @@
 					     BUS_DMA_NOWAIT);
 		if (error != 0) {
 			sc->sc_stats.ast_tx_busdma++;
-			m_freem(m0);
+			ath_freetx(m0);
 			return error;
 		}
 		KASSERT(bf->bf_nseg <= ATH_TXDESC,
 		    ("too many segments after defrag; nseg %u", bf->bf_nseg));
 	} else if (bf->bf_nseg == 0) {		/* null packet, discard */
 		sc->sc_stats.ast_tx_nodata++;
-		m_freem(m0);
+		ath_freetx(m0);
 		return EIO;
 	}
 	DPRINTF(sc, ATH_DEBUG_XMIT, "%s: m %p len %u\n", __func__, m0, pktlen);
@@ -3805,7 +3893,7 @@
 		if_printf(ifp, "bogus frame type 0x%x (%s)\n",
 			wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK, __func__);
 		/* XXX statistic */
-		m_freem(m0);
+		ath_freetx(m0);
 		return EIO;
 	}
 	txq = sc->sc_ac2q[pri];
@@ -3846,7 +3934,17 @@
 			flags |= HAL_TXDESC_RTSENA;
 		else if (ic->ic_protmode == IEEE80211_PROT_CTSONLY)
 			flags |= HAL_TXDESC_CTSENA;
-		cix = rt->info[sc->sc_protrix].controlRate;
+		if (isfrag) {
+			/*
+			 * For frags it would be desirable to use the
+			 * highest CCK rate for RTS/CTS.  But stations
+			 * farther away may detect it at a lower CCK rate
+			 * so use the configured protection rate instead
+			 * (for now).
+			 */
+			cix = rt->info[sc->sc_protrix].controlRate;
+		} else
+			cix = rt->info[sc->sc_protrix].controlRate;
 		sc->sc_stats.ast_tx_protect++;
 	}
 
@@ -3857,13 +3955,30 @@
 	if ((flags & HAL_TXDESC_NOACK) == 0 &&
 	    (wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK) != IEEE80211_FC0_TYPE_CTL) {
 		u_int16_t dur;
-		/*
-		 * XXX not right with fragmentation.
-		 */
 		if (shortPreamble)
 			dur = rt->info[rix].spAckDuration;
 		else
 			dur = rt->info[rix].lpAckDuration;
+		if (wh->i_fc[1] & IEEE80211_FC1_MORE_FRAG) {
+			dur += dur;		/* additional SIFS+ACK */
+			KASSERT(m0->m_nextpkt != NULL, ("no fragment"));
+			/*
+			 * Include the size of next fragment so NAV is
+			 * updated properly.  The last fragment uses only
+			 * the ACK duration
+			 */
+			dur += ath_hal_computetxtime(ah, rt,
+					m0->m_nextpkt->m_pkthdr.len,
+					rix, shortPreamble);
+		}
+		if (isfrag) {
+			/*
+			 * Force hardware to use computed duration for next
+			 * fragment by disabling multi-rate retry which updates
+			 * duration based on the multi-rate duration table.
+			 */
+			try0 = ATH_TXMAXTRY;
+		}
 		*(u_int16_t *)wh->i_dur = htole16(dur);
 	}
 
@@ -3922,6 +4037,8 @@
 		sc->sc_tx_th.wt_flags = sc->sc_hwmap[txrate].txflags;
 		if (iswep)
 			sc->sc_tx_th.wt_flags |= IEEE80211_RADIOTAP_F_WEP;
+		if (isfrag)
+			sc->sc_tx_th.wt_flags |= IEEE80211_RADIOTAP_F_FRAG;
 		sc->sc_tx_th.wt_rate = sc->sc_hwmap[txrate].ieeerate;
 		sc->sc_tx_th.wt_txpower = ni->ni_txpower;
 		sc->sc_tx_th.wt_antenna = sc->sc_txantenna;

==== //depot/projects/wifi/sys/net80211/ieee80211.h#10 (text+ko) ====

@@ -635,11 +635,19 @@
 
 /* 
  * RTS frame length parameters.  The default is specified in
- * the 802.11 spec.  The max may be wrong for jumbo frames.
+ * the 802.11 spec as 5212; we treat it as implementation-dependent
+ * so it's defined in ieee80211_var.h.  The max may be wrong
+ * for jumbo frames.
  */
-#define	IEEE80211_RTS_DEFAULT		512
 #define	IEEE80211_RTS_MIN		1
-#define	IEEE80211_RTS_MAX		IEEE80211_MAX_LEN
+#define	IEEE80211_RTS_MAX		2346
+
+/* 
+ * TX fragmentation parameters.  As above for RTS, we treat
+ * default as implementation-dependent so define it elsewhere.
+ */
+#define	IEEE80211_FRAG_MIN		256
+#define	IEEE80211_FRAG_MAX		2346
 
 /*
  * Atheros fast-frame encapsulation format.

==== //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#43 (text+ko) ====

@@ -846,6 +846,9 @@
 	case IEEE80211_IOC_MCAST_RATE:
 		ireq->i_val = ic->ic_mcast_rate;
 		break;
+	case IEEE80211_IOC_FRAGTHRESHOLD:
+		ireq->i_val = ic->ic_fragthreshold;
+		break;
 	default:
 		error = EINVAL;
 		break;
@@ -1608,8 +1611,8 @@
 		error = IS_UP(ic) ? ic->ic_reset(ic->ic_ifp) : 0;
 		break;
 	case IEEE80211_IOC_RTSTHRESHOLD:
-		if (!(IEEE80211_RTS_MIN < ireq->i_val &&
-		      ireq->i_val < IEEE80211_RTS_MAX))
+		if (!(IEEE80211_RTS_MIN <= ireq->i_val &&
+		      ireq->i_val <= IEEE80211_RTS_MAX))
 			return EINVAL;
 		ic->ic_rtsthreshold = ireq->i_val;
 		error = IS_UP(ic) ? ic->ic_reset(ic->ic_ifp) : 0;
@@ -1626,8 +1629,8 @@
 	case IEEE80211_IOC_TXPOWER:
 		if ((ic->ic_caps & IEEE80211_C_TXPMGT) == 0)
 			return EINVAL;
-		if (!(IEEE80211_TXPOWER_MIN < ireq->i_val &&
-		      ireq->i_val < IEEE80211_TXPOWER_MAX))
+		if (!(IEEE80211_TXPOWER_MIN <= ireq->i_val &&
+		      ireq->i_val <= IEEE80211_TXPOWER_MAX))
 			return EINVAL;
 		ic->ic_txpowlimit = ireq->i_val;
 		error = IS_UP(ic) ? ic->ic_reset(ic->ic_ifp) : 0;
@@ -1911,6 +1914,16 @@
 	case IEEE80211_IOC_MCAST_RATE:
 		ic->ic_mcast_rate = ireq->i_val & IEEE80211_RATE_VAL;
 		break;
+	case IEEE80211_IOC_FRAGTHRESHOLD:
+		if ((ic->ic_caps & IEEE80211_C_TXFRAG) == 0 &&
+		    ireq->i_val != IEEE80211_FRAG_MAX)
+			return EINVAL;
+		if (!(IEEE80211_FRAG_MIN <= ireq->i_val &&
+		      ireq->i_val <= IEEE80211_FRAG_MAX))
+			return EINVAL;
+		ic->ic_fragthreshold = ireq->i_val;
+		error = IS_UP(ic) ? ic->ic_reset(ic->ic_ifp) : 0;
+		break;
 	default:
 		error = EINVAL;
 		break;

==== //depot/projects/wifi/sys/net80211/ieee80211_ioctl.h#27 (text+ko) ====

@@ -149,6 +149,8 @@
 	u_int32_t	is_tx_badcipher;	/* tx failed 'cuz key type */
 	u_int32_t	is_tx_nodefkey;		/* tx failed 'cuz no defkey */
 	u_int32_t	is_tx_noheadroom;	/* tx failed 'cuz no space */
+	u_int32_t	is_tx_fragframes;	/* tx frames fragmented */
+	u_int32_t	is_tx_frags;		/* tx fragments created */
 	u_int32_t	is_scan_active;		/* active scans started */
 	u_int32_t	is_scan_passive;	/* passive scans started */
 	u_int32_t	is_node_timeout;	/* nodes timed out inactivity */
@@ -446,6 +448,7 @@
 #define	IEEE80211_IOC_ROAM_RATE_11B	70	/* tx rate threshold in 11b */
 #define	IEEE80211_IOC_ROAM_RATE_11G	71	/* tx rate threshold in 11g */
 #define	IEEE80211_IOC_MCAST_RATE	72	/* tx rate for mcast frames */
+#define	IEEE80211_IOC_FRAGTHRESHOLD	73	/* tx fragmentation threshold */
 
 /*
  * Scan result data returned for IEEE80211_IOC_SCAN_RESULTS.

==== //depot/projects/wifi/sys/net80211/ieee80211_output.c#45 (text+ko) ====

@@ -62,6 +62,8 @@
 static struct mbuf *ieee80211_encap_fastframe(struct ieee80211com *ic,
 	struct mbuf *m1, const struct ether_header *eh1,
 	struct mbuf *m2, const struct ether_header *eh2);
+static int ieee80211_fragment(struct ieee80211com *, struct mbuf *,
+	u_int hdrsize, u_int ciphdrsize, u_int mtu);
 
 #ifdef IEEE80211_DEBUG
 /*
@@ -484,7 +486,7 @@
 	struct ieee80211_frame *wh;
 	struct ieee80211_key *key;
 	struct llc *llc;
-	int hdrsize, datalen, addqos;
+	int hdrsize, datalen, addqos, txfrag;
 
 	/*
 	 * Copy existing Ethernet header to a safe place.  The
@@ -666,6 +668,10 @@
 		    htole16(ni->ni_txseqs[0] << IEEE80211_SEQ_SEQ_SHIFT);
 		ni->ni_txseqs[0]++;
 	}
+	/* check if xmit fragmentation is required */
+	txfrag = (m->m_pkthdr.len > ic->ic_fragthreshold &&
+	    !IEEE80211_IS_MULTICAST(wh->i_addr1) &&
+	    (m->m_flags & M_FF) == 0);		/* NB: don't fragment ff's */
 	if (key != NULL) {
 		/*
 		 * IEEE 802.1X: send EAPOL frames always in the clear.
@@ -676,8 +682,7 @@
 		     (ic->ic_opmode == IEEE80211_M_STA ?
 		      !KEY_UNDEFINED(*key) : !KEY_UNDEFINED(ni->ni_ucastkey)))) {
 			wh->i_fc[1] |= IEEE80211_FC1_WEP;
-			/* XXX do fragmentation */
-			if (!ieee80211_crypto_enmic(ic, key, m, 0)) {
+			if (!ieee80211_crypto_enmic(ic, key, m, txfrag)) {
 				IEEE80211_DPRINTF(ic, IEEE80211_MSG_OUTPUT,
 				    "[%s] enmic failed, discard frame\n",
 				    ether_sprintf(eh.ether_dhost));
@@ -686,6 +691,9 @@
 			}
 		}
 	}
+	if (txfrag && !ieee80211_fragment(ic, m, hdrsize,
+	    key != NULL ? key->wk_cipher->ic_header : 0, ic->ic_fragthreshold))
+		goto bad;
 
 	IEEE80211_NODE_STAT(ni, tx_data);
 	IEEE80211_NODE_STAT_ADD(ni, tx_bytes, datalen);
@@ -827,6 +835,98 @@
 }
 
 /*
+ * Fragment the frame according to the specified mtu.
+ * The size of the 802.11 header (w/o padding) is provided
+ * so we don't need to recalculate it.  We create a new
+ * mbuf for each fragment and chain it through m_nextpkt;
+ * we might be able to optimize this by reusing the original
+ * packet's mbufs but that is significantly more complicated.
+ */
+static int
+ieee80211_fragment(struct ieee80211com *ic, struct mbuf *m0,
+	u_int hdrsize, u_int ciphdrsize, u_int mtu)
+{
+	struct ieee80211_frame *wh, *whf;
+	struct mbuf *m, *prev, *next;
+	u_int totalhdrsize, fragno, fragsize, off, remainder, payload;
+
+	KASSERT(m0->m_nextpkt == NULL, ("mbuf already chained?"));
+	KASSERT(m0->m_pkthdr.len > mtu,
+		("pktlen %u mtu %u", m0->m_pkthdr.len, mtu));
+
+	wh = mtod(m0, struct ieee80211_frame *);
+	/* NB: mark the first frag; it will be propagated below */
+	wh->i_fc[1] |= IEEE80211_FC1_MORE_FRAG;
+	totalhdrsize = hdrsize + ciphdrsize;
+	fragno = 1;
+	off = mtu - ciphdrsize;
+	remainder = m0->m_pkthdr.len - off;
+	prev = m0;
+	do {
+		fragsize = totalhdrsize + remainder;
+		if (fragsize > mtu)
+			fragsize = mtu;
+		KASSERT(fragsize < MCLBYTES,
+			("fragment size %u too big!", fragsize));
+		if (fragsize > MHLEN)
+			m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR);
+		else
+			m = m_gethdr(M_DONTWAIT, MT_DATA);
+		if (m == NULL)
+			goto bad;
+		/* leave room to prepend any cipher header */
+		m_align(m, fragsize - ciphdrsize);
+
+		/*
+		 * Form the header in the fragment.  Note that since
+		 * we mark the first fragment with the MORE_FRAG bit
+		 * it automatically is propagated to each fragment; we
+		 * need only clear it on the last fragment (done below).
+		 */
+		whf = mtod(m, struct ieee80211_frame *);
+		memcpy(whf, wh, hdrsize);
+		*(u_int16_t *)&whf->i_seq[0] |= htole16(
+			(fragno & IEEE80211_SEQ_FRAG_MASK) <<
+				IEEE80211_SEQ_FRAG_SHIFT);
+		fragno++;
+
+		payload = fragsize - totalhdrsize;
+		/* NB: destination is known to be contiguous */
+		m_copydata(m0, off, payload, mtod(m, u_int8_t *) + hdrsize);
+		m->m_len = hdrsize + payload;
+		m->m_pkthdr.len = hdrsize + payload;
+		m->m_flags |= M_FRAG;
+
+		/* chain up the fragment */
+		prev->m_nextpkt = m;
+		prev = m;
+
+		/* deduct fragment just formed */
+		remainder -= payload;
+		off += payload;
+	} while (remainder != 0);
+	whf->i_fc[1] &= ~IEEE80211_FC1_MORE_FRAG;
+
+	/* strip first mbuf now that everything has been copied */
+	m_adj(m0, -(m0->m_pkthdr.len - (mtu - ciphdrsize)));
+	m0->m_flags |= M_FIRSTFRAG | M_FRAG;
+
+	ic->ic_stats.is_tx_fragframes++;
+	ic->ic_stats.is_tx_frags += fragno-1;
+
+	return 1;
+bad:
+	/* reclaim fragments but leave original frame for caller to free */
+	for (m = m0->m_nextpkt; m != NULL; m = next) {
+		next = m->m_nextpkt;
+		m->m_nextpkt = NULL;		/* XXX paranoid */
+		m_freem(m);
+	}
+	m0->m_nextpkt = NULL;
+	return 0;
+}
+
+/*
  * Add a supported rates element id to a frame.
  */
 static u_int8_t *

==== //depot/projects/wifi/sys/net80211/ieee80211_proto.c#30 (text+ko) ====

@@ -94,12 +94,8 @@
 	/* XXX room for crypto  */
 	ifp->if_hdrlen = sizeof(struct ieee80211_qosframe_addr4);
 
-#ifdef notdef
 	ic->ic_rtsthreshold = IEEE80211_RTS_DEFAULT;
-#else
-	ic->ic_rtsthreshold = IEEE80211_RTS_MAX;
-#endif
-	ic->ic_fragthreshold = 2346;		/* XXX not used yet */
+	ic->ic_fragthreshold = IEEE80211_FRAG_DEFAULT;
 	ic->ic_fixed_rate = IEEE80211_FIXED_RATE_NONE;
 	ic->ic_mcast_rate = IEEE80211_MCAST_RATE_DEFAULT;
 	ic->ic_protmode = IEEE80211_PROT_CTSONLY;

==== //depot/projects/wifi/sys/net80211/ieee80211_var.h#30 (text+ko) ====

@@ -83,6 +83,9 @@
 #define	IEEE80211_FIXED_RATE_NONE	-1
 #define	IEEE80211_MCAST_RATE_DEFAULT	(2*1)	/* default mcast rate (1M) */
 
+#define	IEEE80211_RTS_DEFAULT		IEEE80211_RTS_MAX
+#define	IEEE80211_FRAG_DEFAULT		IEEE80211_FRAG_MAX
+
 #define	IEEE80211_MS_TO_TU(x)	(((x) * 1000) / 1024)
 #define	IEEE80211_TU_TO_MS(x)	(((x) * 1024) / 1000)
 
@@ -306,7 +309,9 @@
 #define	IEEE80211_C_BURST	0x02000000	/* CAPABILITY: frame bursting */
 #define	IEEE80211_C_WME		0x04000000	/* CAPABILITY: WME avail */
 #define	IEEE80211_C_WDS		0x08000000	/* CAPABILITY: 4-addr support */
+/* 0x10000000 reserved */
 #define	IEEE80211_C_BGSCAN	0x20000000	/* CAPABILITY: bg scanning */
+#define	IEEE80211_C_TXFRAG	0x40000000	/* CAPABILITY: tx fragments */
 /* XXX protection/barker? */
 
 #define	IEEE80211_C_CRYPTO	0x0000002f	/* CAPABILITY: crypto alg's */

From owner-p4-projects@FreeBSD.ORG  Tue Jul 19 22:03:24 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 83DA516A421; Tue, 19 Jul 2005 22:03:24 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 6028916A41F
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 22:03:24 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 32AF043D46
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 22:03:24 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6JM3Oi0093027
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 22:03:24 GMT
	(envelope-from sam@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6JM3NaI093024
	for perforce@freebsd.org; Tue, 19 Jul 2005 22:03:23 GMT
	(envelope-from sam@freebsd.org)
Date: Tue, 19 Jul 2005 22:03:23 GMT
Message-Id: <200507192203.j6JM3NaI093024@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	sam@freebsd.org using -f
From: Sam Leffler <sam@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80557 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 19 Jul 2005 22:03:25 -0000

http://perforce.freebsd.org/chv.cgi?CH=80557

Change 80557 by sam@sam_ebb on 2005/07/19 22:03:05

	add m_align; a function that aligns an arbitrary mbuf

Affected files ...

.. //depot/projects/wifi/sys/kern/uipc_mbuf.c#11 edit
.. //depot/projects/wifi/sys/sys/mbuf.h#11 edit

Differences ...

==== //depot/projects/wifi/sys/kern/uipc_mbuf.c#11 (text+ko) ====

@@ -1382,3 +1382,22 @@
 		m_freem(m_final);
 	return (NULL);
 }
+
+/*
+ * Set the m_data pointer of a newly-allocated mbuf
+ * to place an object of the specified size at the
+ * end of the mbuf, longword aligned.
+ */
+void
+m_align(struct mbuf *m, int len)
+{
+	int adjust;
+
+	if (m->m_flags & M_EXT)
+		adjust = m->m_ext.ext_size - len;
+	else if (m->m_flags & M_PKTHDR)
+		adjust = MHLEN - len;
+	else
+		adjust = MLEN - len;
+	m->m_data += adjust &~ (sizeof(long)-1);
+}

==== //depot/projects/wifi/sys/sys/mbuf.h#11 (text+ko) ====

@@ -562,6 +562,7 @@
 
 struct uio;
 
+void		 m_align(struct mbuf *, int);
 void		 m_adj(struct mbuf *, int);
 int		 m_apply(struct mbuf *, int, int,
 		    int (*)(void *, void *, u_int), void *);

From owner-p4-projects@FreeBSD.ORG  Tue Jul 19 22:04:26 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 666E916A421; Tue, 19 Jul 2005 22:04:26 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 41E1616A41F
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 22:04:26 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id F287443D48
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 22:04:25 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6JM4POk093051
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 22:04:25 GMT
	(envelope-from sam@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6JM4PeG093048
	for perforce@freebsd.org; Tue, 19 Jul 2005 22:04:25 GMT
	(envelope-from sam@freebsd.org)
Date: Tue, 19 Jul 2005 22:04:25 GMT
Message-Id: <200507192204.j6JM4PeG093048@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	sam@freebsd.org using -f
From: Sam Leffler <sam@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80558 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 19 Jul 2005 22:04:27 -0000

http://perforce.freebsd.org/chv.cgi?CH=80558

Change 80558 by sam@sam_ebb on 2005/07/19 22:03:30

	treat REASSOC like ASSOC

Affected files ...

.. //depot/projects/wifi/sbin/dhclient/dhclient.c#8 edit

Differences ...

==== //depot/projects/wifi/sbin/dhclient/dhclient.c#8 (text+ko) ====

@@ -249,6 +249,7 @@
 			break;
 		switch (ifan->ifan_what) {
 		case RTM_IEEE80211_ASSOC:
+		case RTM_IEEE80211_REASSOC:
 			state_reboot(ifi);
 			break;
 		case RTM_IEEE80211_DISASSOC:

From owner-p4-projects@FreeBSD.ORG  Tue Jul 19 22:53:29 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id A937116A421; Tue, 19 Jul 2005 22:53:28 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 837B916A41F
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 22:53:28 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 5359243D46
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 22:53:28 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6JMrSxm095102
	for <perforce@freebsd.org>; Tue, 19 Jul 2005 22:53:28 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6JMrSKC095099
	for perforce@freebsd.org; Tue, 19 Jul 2005 22:53:28 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Tue, 19 Jul 2005 22:53:28 GMT
Message-Id: <200507192253.j6JMrSKC095099@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson <rwatson@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80566 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 19 Jul 2005 22:53:29 -0000

http://perforce.freebsd.org/chv.cgi?CH=80566

Change 80566 by rwatson@rwatson_zoo on 2005/07/19 22:53:09

	Correct two typos.

Affected files ...

.. //depot/projects/netsmp/src/sys/dev/usb/if_rue.c#3 edit
.. //depot/projects/netsmp/src/sys/netinet/in_var.h#3 edit

Differences ...

==== //depot/projects/netsmp/src/sys/dev/usb/if_rue.c#3 (text+ko) ====

@@ -500,7 +500,7 @@
 	rue_csr_write_4(sc, RUE_MAR4, 0);
 
 	/* now program new ones */
-	IF_ADDR_LLOCK(ifp);
+	IF_ADDR_LOCK(ifp);
 #if __FreeBSD_version >= 500000
 	TAILQ_FOREACH (ifma, &ifp->if_multiaddrs, ifma_link)
 #else

==== //depot/projects/netsmp/src/sys/netinet/in_var.h#3 (text+ko) ====

@@ -187,7 +187,7 @@
 do { \
 	struct ifmultiaddr *ifma; \
 \
-	IF_ADDR_LOCK_ASSERT(ifp);
+	IF_ADDR_LOCK_ASSERT(ifp); \
 	TAILQ_FOREACH(ifma, &((ifp)->if_multiaddrs), ifma_link) { \
 		if (ifma->ifma_addr->sa_family == AF_INET \
 		    && ((struct sockaddr_in *)ifma->ifma_addr)->sin_addr.s_addr == \

From owner-p4-projects@FreeBSD.ORG  Wed Jul 20 00:52:54 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id DE0E816A421; Wed, 20 Jul 2005 00:52:53 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 9E16C16A41F
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 00:52:53 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 30EB643D45
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 00:52:53 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6K0qrUf008583
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 00:52:53 GMT
	(envelope-from sam@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6K0qqP7008580
	for perforce@freebsd.org; Wed, 20 Jul 2005 00:52:52 GMT
	(envelope-from sam@freebsd.org)
Date: Wed, 20 Jul 2005 00:52:52 GMT
Message-Id: <200507200052.j6K0qqP7008580@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	sam@freebsd.org using -f
From: Sam Leffler <sam@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80569 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jul 2005 00:52:55 -0000

http://perforce.freebsd.org/chv.cgi?CH=80569

Change 80569 by sam@sam_ebb on 2005/07/20 00:52:16

	IFC @ 80560

Affected files ...

.. //depot/projects/wifi/Makefile#9 integrate
.. //depot/projects/wifi/Makefile.inc1#21 integrate
.. //depot/projects/wifi/contrib/ncurses/ncurses/tinfo/lib_baudrate.c#2 integrate
.. //depot/projects/wifi/etc/Makefile#6 integrate
.. //depot/projects/wifi/gnu/usr.bin/groff/tmac/mdoc.local#6 integrate
.. //depot/projects/wifi/gnu/usr.bin/man/apropos/Makefile#2 integrate
.. //depot/projects/wifi/lib/libc/locale/isalnum.3#2 integrate
.. //depot/projects/wifi/lib/libc/locale/isalpha.3#2 integrate
.. //depot/projects/wifi/lib/libc/locale/isblank.3#3 integrate
.. //depot/projects/wifi/lib/libc/locale/iscntrl.3#2 integrate
.. //depot/projects/wifi/lib/libc/locale/isdigit.3#2 integrate
.. //depot/projects/wifi/lib/libc/locale/isgraph.3#2 integrate
.. //depot/projects/wifi/lib/libc/locale/islower.3#2 integrate
.. //depot/projects/wifi/lib/libc/locale/isprint.3#2 integrate
.. //depot/projects/wifi/lib/libc/locale/ispunct.3#2 integrate
.. //depot/projects/wifi/lib/libc/locale/isspace.3#2 integrate
.. //depot/projects/wifi/lib/libc/locale/isupper.3#2 integrate
.. //depot/projects/wifi/lib/libc/locale/isxdigit.3#2 integrate
.. //depot/projects/wifi/lib/libc/locale/tolower.3#2 integrate
.. //depot/projects/wifi/lib/libc/locale/toupper.3#2 integrate
.. //depot/projects/wifi/lib/libc/net/ip6opt.c#2 integrate
.. //depot/projects/wifi/lib/libc/net/rcmd.3#3 integrate
.. //depot/projects/wifi/lib/libc/net/rthdr.c#2 integrate
.. //depot/projects/wifi/lib/libc/nls/ko_KR.UTF-8.msg#2 integrate
.. //depot/projects/wifi/lib/libc/nls/ko_KR.eucKR.msg#2 integrate
.. //depot/projects/wifi/lib/libc/sys/intro.2#4 integrate
.. //depot/projects/wifi/lib/libc/sys/mmap.2#2 integrate
.. //depot/projects/wifi/lib/libdevstat/devstat.3#3 integrate
.. //depot/projects/wifi/lib/libmemstat/libmemstat.3#2 integrate
.. //depot/projects/wifi/lib/libmemstat/memstat.h#2 integrate
.. //depot/projects/wifi/lib/libmemstat/memstat_internal.h#2 integrate
.. //depot/projects/wifi/lib/libmemstat/memstat_malloc.c#2 integrate
.. //depot/projects/wifi/lib/libmemstat/memstat_uma.c#2 integrate
.. //depot/projects/wifi/lib/libstand/Makefile#6 integrate
.. //depot/projects/wifi/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#16 integrate
.. //depot/projects/wifi/release/doc/share/sgml/release.ent#5 integrate
.. //depot/projects/wifi/sbin/fdisk/Makefile#2 integrate
.. //depot/projects/wifi/sbin/fdisk/fdisk.c#5 integrate
.. //depot/projects/wifi/sbin/fdisk_pc98/Makefile#3 integrate
.. //depot/projects/wifi/sbin/fdisk_pc98/fdisk.c#4 integrate
.. //depot/projects/wifi/share/man/man3/fpgetround.3#2 integrate
.. //depot/projects/wifi/share/man/man4/acpi.4#9 integrate
.. //depot/projects/wifi/share/man/man4/acpi_thermal.4#2 integrate
.. //depot/projects/wifi/share/man/man4/acpi_video.4#3 integrate
.. //depot/projects/wifi/share/man/man4/an.4#2 integrate
.. //depot/projects/wifi/share/man/man4/ath.4#10 integrate
.. //depot/projects/wifi/share/man/man4/aue.4#3 integrate
.. //depot/projects/wifi/share/man/man4/awi.4#4 integrate
.. //depot/projects/wifi/share/man/man4/axe.4#3 integrate
.. //depot/projects/wifi/share/man/man4/bfe.4#2 integrate
.. //depot/projects/wifi/share/man/man4/bge.4#4 integrate
.. //depot/projects/wifi/share/man/man4/cdce.4#4 integrate
.. //depot/projects/wifi/share/man/man4/cm.4#3 integrate
.. //depot/projects/wifi/share/man/man4/cpufreq.4#8 integrate
.. //depot/projects/wifi/share/man/man4/cue.4#2 integrate
.. //depot/projects/wifi/share/man/man4/dc.4#5 integrate
.. //depot/projects/wifi/share/man/man4/de.4#3 integrate
.. //depot/projects/wifi/share/man/man4/ed.4#7 integrate
.. //depot/projects/wifi/share/man/man4/em.4#8 integrate
.. //depot/projects/wifi/share/man/man4/en.4#2 integrate
.. //depot/projects/wifi/share/man/man4/fwe.4#4 integrate
.. //depot/projects/wifi/share/man/man4/fwip.4#4 integrate
.. //depot/projects/wifi/share/man/man4/fxp.4#4 integrate
.. //depot/projects/wifi/share/man/man4/hme.4#2 integrate
.. //depot/projects/wifi/share/man/man4/hwpmc.4#4 integrate
.. //depot/projects/wifi/share/man/man4/inet.4#5 integrate
.. //depot/projects/wifi/share/man/man4/ipw.4#3 integrate
.. //depot/projects/wifi/share/man/man4/iwi.4#5 integrate
.. //depot/projects/wifi/share/man/man4/kue.4#2 integrate
.. //depot/projects/wifi/share/man/man4/lge.4#2 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/acpi_asus.4#4 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/acpi_fujitsu.4#3 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/acpi_ibm.4#3 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/acpi_panasonic.4#5 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/acpi_toshiba.4#2 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/arl.4#2 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/cp.4#3 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/cs.4#3 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/cx.4#2 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/el.4#4 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/ep.4#7 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/ex.4#3 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/fe.4#4 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/ie.4#2 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/lnc.4#4 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/mse.4#3 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/pnp.4#4 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/pnpbios.4#2 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/ray.4#5 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/vx.4#3 integrate
.. //depot/projects/wifi/share/man/man4/my.4#2 integrate
.. //depot/projects/wifi/share/man/man4/natm.4#3 integrate
.. //depot/projects/wifi/share/man/man4/ng_ccatm.4#3 integrate
.. //depot/projects/wifi/share/man/man4/nge.4#3 integrate
.. //depot/projects/wifi/share/man/man4/nve.4#3 integrate
.. //depot/projects/wifi/share/man/man4/oldcard.4#3 integrate
.. //depot/projects/wifi/share/man/man4/pcn.4#3 integrate
.. //depot/projects/wifi/share/man/man4/psm.4#5 integrate
.. //depot/projects/wifi/share/man/man4/ral.4#3 integrate
.. //depot/projects/wifi/share/man/man4/re.4#4 integrate
.. //depot/projects/wifi/share/man/man4/rl.4#5 integrate
.. //depot/projects/wifi/share/man/man4/rue.4#2 integrate
.. //depot/projects/wifi/share/man/man4/sf.4#3 integrate
.. //depot/projects/wifi/share/man/man4/sis.4#3 integrate
.. //depot/projects/wifi/share/man/man4/sk.4#5 integrate
.. //depot/projects/wifi/share/man/man4/sn.4#4 integrate
.. //depot/projects/wifi/share/man/man4/snd_ess.4#4 integrate
.. //depot/projects/wifi/share/man/man4/ste.4#5 integrate
.. //depot/projects/wifi/share/man/man4/ti.4#3 integrate
.. //depot/projects/wifi/share/man/man4/tl.4#2 integrate
.. //depot/projects/wifi/share/man/man4/tx.4#3 integrate
.. //depot/projects/wifi/share/man/man4/txp.4#4 integrate
.. //depot/projects/wifi/share/man/man4/udav.4#3 integrate
.. //depot/projects/wifi/share/man/man4/uplcom.4#4 integrate
.. //depot/projects/wifi/share/man/man4/ural.4#3 integrate
.. //depot/projects/wifi/share/man/man4/vge.4#4 integrate
.. //depot/projects/wifi/share/man/man4/vkbd.4#3 integrate
.. //depot/projects/wifi/share/man/man4/vlan.4#6 integrate
.. //depot/projects/wifi/share/man/man4/vr.4#4 integrate
.. //depot/projects/wifi/share/man/man4/wb.4#3 integrate
.. //depot/projects/wifi/share/man/man4/wi.4#5 integrate
.. //depot/projects/wifi/share/man/man4/xe.4#4 integrate
.. //depot/projects/wifi/share/man/man4/xl.4#7 integrate
.. //depot/projects/wifi/share/man/man7/security.7#5 integrate
.. //depot/projects/wifi/share/misc/pci_vendors#3 integrate
.. //depot/projects/wifi/share/mk/bsd.libnames.mk#6 integrate
.. //depot/projects/wifi/sys/alpha/include/atomic.h#4 integrate
.. //depot/projects/wifi/sys/amd64/include/atomic.h#4 integrate
.. //depot/projects/wifi/sys/arm/include/atomic.h#8 integrate
.. //depot/projects/wifi/sys/boot/ficl/Makefile#4 integrate
.. //depot/projects/wifi/sys/boot/i386/Makefile.inc#3 integrate
.. //depot/projects/wifi/sys/boot/i386/boot2/Makefile#3 integrate
.. //depot/projects/wifi/sys/conf/files#28 integrate
.. //depot/projects/wifi/sys/conf/files.amd64#14 integrate
.. //depot/projects/wifi/sys/conf/kern.mk#4 integrate
.. //depot/projects/wifi/sys/conf/options#20 integrate
.. //depot/projects/wifi/sys/dev/acpica/acpi_thermal.c#3 integrate
.. //depot/projects/wifi/sys/dev/cnw/if_cnw.c#3 integrate
.. //depot/projects/wifi/sys/dev/ed/if_ed_pccard.c#8 integrate
.. //depot/projects/wifi/sys/dev/ex/if_ex_pccard.c#4 integrate
.. //depot/projects/wifi/sys/dev/firewire/fwohci_pci.c#5 integrate
.. //depot/projects/wifi/sys/dev/hatm/if_hatm_intr.c#4 integrate
.. //depot/projects/wifi/sys/dev/hwpmc/hwpmc_mod.c#4 integrate
.. //depot/projects/wifi/sys/dev/pccard/pccard_cis.c#7 integrate
.. //depot/projects/wifi/sys/dev/pccard/pccarddevs#9 integrate
.. //depot/projects/wifi/sys/dev/pccbb/pccbb.c#5 integrate
.. //depot/projects/wifi/sys/dev/pccbb/pccbb_pci.c#8 integrate
.. //depot/projects/wifi/sys/dev/pccbb/pccbbreg.h#4 integrate
.. //depot/projects/wifi/sys/dev/sbsh/if_sbsh.c#4 integrate
.. //depot/projects/wifi/sys/dev/sn/if_sn.c#4 integrate
.. //depot/projects/wifi/sys/dev/usb/ulpt.c#3 integrate
.. //depot/projects/wifi/sys/dev/usb/umass.c#7 integrate
.. //depot/projects/wifi/sys/dev/xe/if_xe.c#4 integrate
.. //depot/projects/wifi/sys/dev/xe/if_xe_pccard.c#5 integrate
.. //depot/projects/wifi/sys/fs/msdosfs/msdosfs_conv.c#6 integrate
.. //depot/projects/wifi/sys/geom/concat/g_concat.c#4 integrate
.. //depot/projects/wifi/sys/geom/geom_mbr.c#7 integrate
.. //depot/projects/wifi/sys/geom/geom_pc98.c#5 integrate
.. //depot/projects/wifi/sys/geom/stripe/g_stripe.c#6 integrate
.. //depot/projects/wifi/sys/geom/vinum/geom_vinum_var.h#6 integrate
.. //depot/projects/wifi/sys/geom/vinum/geom_vinum_volume.c#4 integrate
.. //depot/projects/wifi/sys/i386/include/atomic.h#5 integrate
.. //depot/projects/wifi/sys/ia64/include/atomic.h#2 integrate
.. //depot/projects/wifi/sys/kern/kern_exit.c#11 integrate
.. //depot/projects/wifi/sys/kern/kern_mbuf.c#6 integrate
.. //depot/projects/wifi/sys/kern/kern_mutex.c#4 integrate
.. //depot/projects/wifi/sys/kern/uipc_mbuf2.c#4 integrate
.. //depot/projects/wifi/sys/modules/ukbd/Makefile#4 integrate
.. //depot/projects/wifi/sys/net/if.c#16 integrate
.. //depot/projects/wifi/sys/net/if_atmsubr.c#4 integrate
.. //depot/projects/wifi/sys/net/rtsock.c#7 integrate
.. //depot/projects/wifi/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c#5 integrate
.. //depot/projects/wifi/sys/netgraph/netflow/ng_netflow.c#6 integrate
.. //depot/projects/wifi/sys/netinet/in_pcb.c#7 integrate
.. //depot/projects/wifi/sys/netinet/ip_input.c#8 integrate
.. //depot/projects/wifi/sys/netinet/tcp_subr.c#15 integrate
.. //depot/projects/wifi/sys/netinet/tcp_syncache.c#6 integrate
.. //depot/projects/wifi/sys/netinet/tcp_timer.c#8 integrate
.. //depot/projects/wifi/sys/netnatm/natm.c#4 integrate
.. //depot/projects/wifi/sys/netnatm/natm.h#3 integrate
.. //depot/projects/wifi/sys/netnatm/natm_pcb.c#3 integrate
.. //depot/projects/wifi/sys/netnatm/natm_proto.c#4 integrate
.. //depot/projects/wifi/sys/nfsclient/nfs.h#6 integrate
.. //depot/projects/wifi/sys/nfsclient/nfs_socket.c#11 integrate
.. //depot/projects/wifi/sys/nfsclient/nfs_subs.c#6 integrate
.. //depot/projects/wifi/sys/powerpc/include/atomic.h#4 integrate
.. //depot/projects/wifi/sys/sparc64/include/atomic.h#2 integrate
.. //depot/projects/wifi/sys/sys/mbuf.h#12 integrate
.. //depot/projects/wifi/sys/sys/mutex.h#7 integrate
.. //depot/projects/wifi/sys/vm/uma.h#6 integrate
.. //depot/projects/wifi/sys/vm/uma_core.c#11 integrate
.. //depot/projects/wifi/sys/vm/uma_dbg.c#6 integrate
.. //depot/projects/wifi/sys/vm/uma_dbg.h#5 integrate
.. //depot/projects/wifi/sys/vm/uma_int.h#8 integrate
.. //depot/projects/wifi/tools/regression/msdosfs/msdosfstest-4.sh#1 branch
.. //depot/projects/wifi/tools/regression/msdosfs/msdosfstest-5.sh#1 branch
.. //depot/projects/wifi/tools/regression/usr.bin/env/regress-env.rgdata#2 integrate
.. //depot/projects/wifi/usr.bin/calendar/calendars/calendar.freebsd#15 integrate
.. //depot/projects/wifi/usr.bin/calendar/calendars/calendar.history#2 integrate
.. //depot/projects/wifi/usr.bin/env/envopts.c#2 integrate
.. //depot/projects/wifi/usr.bin/locate/Makefile#2 integrate
.. //depot/projects/wifi/usr.bin/lorder/lorder.sh#2 integrate
.. //depot/projects/wifi/usr.bin/make/job.c#18 integrate
.. //depot/projects/wifi/usr.bin/netstat/Makefile#4 integrate
.. //depot/projects/wifi/usr.bin/netstat/mbuf.c#2 integrate
.. //depot/projects/wifi/usr.sbin/boot0cfg/Makefile#2 integrate
.. //depot/projects/wifi/usr.sbin/boot0cfg/boot0cfg.c#3 integrate
.. //depot/projects/wifi/usr.sbin/boot98cfg/Makefile#2 integrate
.. //depot/projects/wifi/usr.sbin/boot98cfg/boot98cfg.c#2 integrate
.. //depot/projects/wifi/usr.sbin/moused/moused.8#6 integrate
.. //depot/projects/wifi/usr.sbin/moused/moused.c#4 integrate
.. //depot/projects/wifi/usr.sbin/pcvt/Makefile#2 integrate
.. //depot/projects/wifi/usr.sbin/powerd/powerd.c#3 integrate
.. //depot/projects/wifi/usr.sbin/sysinstall/sysinstall.8#6 integrate

Differences ...

==== //depot/projects/wifi/Makefile#9 (text+ko) ====

@@ -1,5 +1,5 @@
 #
-# $FreeBSD: src/Makefile,v 1.319 2005/06/16 18:16:12 ru Exp $
+# $FreeBSD: src/Makefile,v 1.321 2005/07/19 11:21:14 ru Exp $
 #
 # The user-driven targets are:
 #
@@ -64,7 +64,7 @@
 #
 TGTS=	all all-man buildenv buildkernel buildworld checkdpadd clean \
 	cleandepend cleandir depend distribute distributeworld \
-	distribution everything \
+	distrib-dirs distribution everything \
 	hierarchy install installcheck installkernel installkernel.debug\
 	reinstallkernel reinstallkernel.debug installworld \
 	kernel-toolchain libraries lint maninstall \
@@ -254,6 +254,7 @@
 # with a reasonable chance of success, regardless of how old your
 # existing system is.
 #
+.if make(universe)
 universe: universe_prologue
 universe_prologue:
 	@echo "--------------------------------------------------------------"
@@ -262,6 +263,9 @@
 .for target in i386 i386:pc98 sparc64 alpha ia64 amd64
 .for arch in ${target:C/:.*$//}
 .for mach in ${target:C/^.*://}
+KERNCONFS!=	cd ${.CURDIR}/sys/${mach}/conf && \
+		find [A-Z]*[A-Z] -type f -maxdepth 0
+KERNCONFS:=	${KERNCONFS:S/^NOTES$/LINT/}
 universe: universe_${mach}
 .ORDER: universe_prologue universe_${mach} universe_epilogue
 universe_${mach}:
@@ -275,7 +279,13 @@
 	-cd ${.CURDIR}/sys/${mach}/conf && ${MAKE} LINT \
 	    > ${.CURDIR}/_.${mach}.makeLINT 2>&1
 .endif
-	cd ${.CURDIR} && ${MAKE} buildkernels TARGET_ARCH=${arch} TARGET=${mach}
+.for kernel in ${KERNCONFS}
+	-cd ${.CURDIR} && ${MAKE} ${JFLAG} buildkernel \
+	    TARGET_ARCH=${arch} TARGET=${mach} \
+	    KERNCONF=${kernel} \
+	    __MAKE_CONF=/dev/null \
+	    > _.${mach}.${kernel} 2>&1
+.endfor
 	@echo ">> ${mach} completed on `LC_ALL=C date`"
 .endfor
 .endfor
@@ -286,15 +296,4 @@
 	@echo ">>> make universe completed on `LC_ALL=C date`"
 	@echo "                      (started ${STARTTIME})"
 	@echo "--------------------------------------------------------------"
-
-.if make(buildkernels)
-KERNCONFS!=	cd ${.CURDIR}/sys/${TARGET}/conf && \
-		find [A-Z]*[A-Z] -type f -maxdepth 0 ! -name NOTES
-buildkernels:
-.for kernel in ${KERNCONFS}
-	-cd ${.CURDIR} && ${MAKE} ${JFLAG} buildkernel \
-	    KERNCONF=${kernel} \
-	    __MAKE_CONF=/dev/null \
-	    > _.${TARGET}.${kernel} 2>&1
-.endfor
 .endif

==== //depot/projects/wifi/Makefile.inc1#21 (text+ko) ====

@@ -1,5 +1,5 @@
 #
-# $FreeBSD: src/Makefile.inc1,v 1.499 2005/07/07 00:58:41 kan Exp $
+# $FreeBSD: src/Makefile.inc1,v 1.500 2005/07/15 14:38:54 ru Exp $
 #
 # Make command line options:
 #	-DNO_DYNAMICROOT do not link /bin and /sbin dynamically
@@ -558,8 +558,8 @@
 	${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 distribute32 DISTRIBUTION=lib32
 .endif
 
-distribution:
-	cd ${.CURDIR}/etc; ${CROSSENV} PATH=${TMPPATH} ${MAKE} distribution
+distrib-dirs distribution:
+	cd ${.CURDIR}/etc; ${CROSSENV} PATH=${TMPPATH} ${MAKE} ${.TARGET}
 
 #
 # buildkernel and installkernel

==== //depot/projects/wifi/contrib/ncurses/ncurses/tinfo/lib_baudrate.c#2 (text+ko) ====

@@ -31,6 +31,8 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
+/* $FreeBSD: src/contrib/ncurses/ncurses/tinfo/lib_baudrate.c,v 1.2 2005/07/15 07:41:26 phk Exp $ */
+
 /*
  *	lib_baudrate.c
  *
@@ -46,7 +48,7 @@
  * of the indices up to B115200 fit nicely in a 'short', allowing us to retain
  * ospeed's type for compatibility.
  */
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+#if defined(__NetBSD__) || defined(__OpenBSD__)
 #undef B0
 #undef B50
 #undef B75

==== //depot/projects/wifi/etc/Makefile#6 (text+ko) ====

@@ -1,5 +1,5 @@
 #	from: @(#)Makefile	5.11 (Berkeley) 5/21/91
-# $FreeBSD: src/etc/Makefile,v 1.343 2005/04/29 23:02:56 brooks Exp $
+# $FreeBSD: src/etc/Makefile,v 1.344 2005/07/15 14:52:29 ru Exp $
 
 .if !defined(NO_SENDMAIL)
 SUBDIR=	sendmail
@@ -94,7 +94,7 @@
 		${BIN2} ${DESTDIR}/etc; \
 	    ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 600 \
 		master.passwd nsmb.conf opieaccess ${DESTDIR}/etc; \
-	    pwd_mkdb ${PWD_MKDB_ENDIAN} -p -d ${DESTDIR}/etc \
+	    pwd_mkdb ${PWD_MKDB_ENDIAN} -i -p -d ${DESTDIR}/etc \
 		${DESTDIR}/etc/master.passwd
 	cd ${.CURDIR}/bluetooth; ${MAKE} install
 	cd ${.CURDIR}/defaults; ${MAKE} install

==== //depot/projects/wifi/gnu/usr.bin/groff/tmac/mdoc.local#6 (text+ko) ====

@@ -22,7 +22,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/gnu/usr.bin/groff/tmac/mdoc.local,v 1.49 2005/07/11 15:48:48 kensmith Exp $
+.\" $FreeBSD: src/gnu/usr.bin/groff/tmac/mdoc.local,v 1.50 2005/07/15 10:27:35 rwatson Exp $
 .\"
 .\"     %beginstrip%
 .
@@ -47,6 +47,7 @@
 .ds doc-str-Lb-libipx      IPX Address Conversion Support Library (libipx, \-lipx)
 .ds doc-str-Lb-libkiconv   Kernel side iconv library (libkiconv, \-lkiconv)
 .ds doc-str-Lb-libmd       Message Digest (MD4, MD5, etc.) Support Library (libmd, \-lmd)
+.ds doc-str-Lb-libmemstat  Kernel Memory Allocator Statistics Library (libmemstat, \-lmemstat)
 .ds doc-str-Lb-libnetgraph Netgraph User Library (libnetgraph, \-lnetgraph)
 .ds doc-str-Lb-libpmc      Performance Monitoring Counters API (libpmc, \-lpmc)
 .ds doc-str-Lb-librpcsvc   RPC Service Library (librpcsvc, \-lrpcsvc)

==== //depot/projects/wifi/gnu/usr.bin/man/apropos/Makefile#2 (text+ko) ====

@@ -1,5 +1,4 @@
-# $FreeBSD: src/gnu/usr.bin/man/apropos/Makefile,v 1.16 2001/04/07 11:21:18 ru Exp $
-MAINTAINER= wosch
+# $FreeBSD: src/gnu/usr.bin/man/apropos/Makefile,v 1.17 2005/07/17 21:18:09 wosch Exp $
 
 SCRIPTS=apropos
 MAN=	apropos.1

==== //depot/projects/wifi/lib/libc/locale/isalnum.3#2 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)isalnum.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/isalnum.3,v 1.19 2004/08/21 07:37:08 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/isalnum.3,v 1.20 2005/07/17 04:11:05 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt ISALNUM 3
 .Os
 .Sh NAME
@@ -56,15 +56,11 @@
 or
 .Xr isdigit 3
 is true.
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The value of the argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
+.Pp
 In the ASCII character set, this includes the following characters
 (with their numeric values shown in octal):
 .Pp
@@ -103,7 +99,6 @@
 .Xr isalpha 3 ,
 .Xr isdigit 3 ,
 .Xr iswalnum 3 ,
-.Xr multibyte 3 ,
 .Xr ascii 7
 .Sh STANDARDS
 The

==== //depot/projects/wifi/lib/libc/locale/isalpha.3#2 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)isalpha.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/isalpha.3,v 1.18 2004/08/21 07:37:08 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/isalpha.3,v 1.19 2005/07/17 04:11:05 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt ISALPHA 3
 .Os
 .Sh NAME
@@ -56,15 +56,11 @@
 or
 .Xr islower 3
 is true.
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The value of the argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
+.Pp
 In the ASCII character set, this includes the following characters
 (with their numeric values shown in octal):
 .Pp
@@ -101,7 +97,6 @@
 .Xr islower 3 ,
 .Xr isupper 3 ,
 .Xr iswalpha 3 ,
-.Xr multibyte 3 ,
 .Xr ascii 7
 .Sh STANDARDS
 The

==== //depot/projects/wifi/lib/libc/locale/isblank.3#3 (text+ko) ====

@@ -30,9 +30,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)isblank.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/isblank.3,v 1.20 2005/01/20 09:17:03 ru Exp $
+.\" $FreeBSD: src/lib/libc/locale/isblank.3,v 1.21 2005/07/17 04:11:05 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt ISBLANK 3
 .Os
 .Sh NAME
@@ -57,13 +57,8 @@
 In the "C" locale
 .Fn isblank
 successful test is limited to this characters only.
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The value of the argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
 .Sh RETURN VALUES
@@ -84,7 +79,6 @@
 .Sh SEE ALSO
 .Xr ctype 3 ,
 .Xr iswblank 3 ,
-.Xr multibyte 3 ,
 .Xr ascii 7
 .Sh STANDARDS
 The

==== //depot/projects/wifi/lib/libc/locale/iscntrl.3#2 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)iscntrl.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/iscntrl.3,v 1.17 2004/08/21 07:37:08 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/iscntrl.3,v 1.18 2005/07/17 04:11:05 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt ISCNTRL 3
 .Os
 .Sh NAME
@@ -52,15 +52,11 @@
 The
 .Fn iscntrl
 function tests for any control character.
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The value of the argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
+.Pp
 In the ASCII character set, this includes the following characters
 (with their numeric values shown in octal):
 .Pp
@@ -91,7 +87,6 @@
 .Sh SEE ALSO
 .Xr ctype 3 ,
 .Xr iswcntrl 3 ,
-.Xr multibyte 3 ,
 .Xr ascii 7
 .Sh STANDARDS
 The

==== //depot/projects/wifi/lib/libc/locale/isdigit.3#2 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)isdigit.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/isdigit.3,v 1.19 2004/08/21 07:37:08 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/isdigit.3,v 1.20 2005/07/17 04:11:05 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt ISDIGIT 3
 .Os
 .Sh NAME
@@ -68,13 +68,8 @@
 but may recognize additional characters, depending on the current locale
 setting.
 .Pp
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The value of the argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
 .Sh RETURN VALUES

==== //depot/projects/wifi/lib/libc/locale/isgraph.3#2 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)isgraph.3	8.2 (Berkeley) 12/11/93
-.\" $FreeBSD: src/lib/libc/locale/isgraph.3,v 1.19 2004/08/21 07:37:08 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/isgraph.3,v 1.20 2005/07/17 04:11:05 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt ISGRAPH 3
 .Os
 .Sh NAME
@@ -55,15 +55,11 @@
 .Pq Ql "\ "
 and other
 locale specific space-like characters.
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The value of the argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
+.Pp
 In the ASCII character set, this includes the following characters
 (with their numeric values shown in octal):
 .Pp
@@ -106,7 +102,6 @@
 .Sh SEE ALSO
 .Xr ctype 3 ,
 .Xr iswgraph 3 ,
-.Xr multibyte 3 ,
 .Xr ascii 7
 .Sh STANDARDS
 The

==== //depot/projects/wifi/lib/libc/locale/islower.3#2 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)islower.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/islower.3,v 1.17 2004/08/21 07:37:08 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/islower.3,v 1.18 2005/07/17 04:11:05 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt ISLOWER 3
 .Os
 .Sh NAME
@@ -52,15 +52,11 @@
 The
 .Fn islower
 function tests for any lower-case letters.
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The value of the argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
+.Pp
 In the ASCII character set, this includes the following characters
 (with their numeric values shown in octal):
 .Pp
@@ -90,7 +86,6 @@
 .Sh SEE ALSO
 .Xr ctype 3 ,
 .Xr iswlower 3 ,
-.Xr multibyte 3 ,
 .Xr tolower 3 ,
 .Xr ascii 7
 .Sh STANDARDS

==== //depot/projects/wifi/lib/libc/locale/isprint.3#2 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)isprint.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/isprint.3,v 1.20 2004/08/21 07:37:08 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/isprint.3,v 1.21 2005/07/17 04:11:05 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt ISPRINT 3
 .Os
 .Sh NAME
@@ -53,15 +53,11 @@
 .Fn isprint
 function tests for any printing character including space
 .Pq Ql "\ " .
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The value of the argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
+.Pp
 In the ASCII character set, this includes the following characters
 (with their numeric values shown in octal):
 .Pp
@@ -104,7 +100,6 @@
 .Sh SEE ALSO
 .Xr ctype 3 ,
 .Xr iswprint 3 ,
-.Xr multibyte 3 ,
 .Xr ascii 7
 .Sh STANDARDS
 The

==== //depot/projects/wifi/lib/libc/locale/ispunct.3#2 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"	@(#)ispunct.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/ispunct.3,v 1.18 2004/08/21 07:37:08 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/ispunct.3,v 1.19 2005/07/17 04:11:05 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt ISPUNCT 3
 .Os
 .Sh NAME
@@ -57,15 +57,11 @@
 character for which
 .Xr isalnum 3
 is true.
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The value of the argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
+.Pp
 In the ASCII character set, this includes the following characters
 (with their numeric values shown in octal):
 .Pp
@@ -96,7 +92,6 @@
 .Sh SEE ALSO
 .Xr ctype 3 ,
 .Xr iswpunct 3 ,
-.Xr multibyte 3 ,
 .Xr ascii 7
 .Sh STANDARDS
 The

==== //depot/projects/wifi/lib/libc/locale/isspace.3#2 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)isspace.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/isspace.3,v 1.17 2004/08/21 07:37:08 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/isspace.3,v 1.18 2005/07/17 04:11:06 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt ISSPACE 3
 .Os
 .Sh NAME
@@ -61,13 +61,8 @@
 In the "C" locale
 .Fn isspace
 successful test is limited to this characters only.
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The value of the argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
 .Sh RETURN VALUES

==== //depot/projects/wifi/lib/libc/locale/isupper.3#2 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)isupper.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/isupper.3,v 1.18 2004/08/21 07:37:08 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/isupper.3,v 1.19 2005/07/17 04:11:06 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt ISUPPER 3
 .Os
 .Sh NAME
@@ -52,15 +52,11 @@
 The
 .Fn isupper
 function tests for any upper-case letter.
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The value of the argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
+.Pp
 In the ASCII character set, this includes the following characters
 (with their numeric values shown in octal):
 .Pp
@@ -90,7 +86,6 @@
 .Sh SEE ALSO
 .Xr ctype 3 ,
 .Xr iswupper 3 ,
-.Xr multibyte 3 ,
 .Xr toupper 3 ,
 .Xr ascii 7
 .Sh STANDARDS

==== //depot/projects/wifi/lib/libc/locale/isxdigit.3#2 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)isxdigit.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/isxdigit.3,v 1.20 2004/08/21 07:37:08 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/isxdigit.3,v 1.21 2005/07/17 04:11:06 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt ISXDIGIT 3
 .Os
 .Sh NAME
@@ -71,13 +71,8 @@
 but may recognize additional characters,
 depending on the current locale setting.
 .Pp
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The value of the argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
 .Sh RETURN VALUES
@@ -98,7 +93,6 @@
 .Sh SEE ALSO
 .Xr ctype 3 ,
 .Xr iswxdigit 3 ,
-.Xr multibyte 3 ,
 .Xr ascii 7
 .Sh STANDARDS
 The

==== //depot/projects/wifi/lib/libc/locale/tolower.3#2 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"	@(#)tolower.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/tolower.3,v 1.16 2004/08/21 07:37:08 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/tolower.3,v 1.17 2005/07/17 03:37:00 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt TOLOWER 3
 .Os
 .Sh NAME
@@ -53,13 +53,8 @@
 .Fn tolower
 function converts an upper-case letter to the corresponding lower-case
 letter.
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
 .Sh RETURN VALUES
@@ -80,7 +75,6 @@
 .Sh SEE ALSO
 .Xr ctype 3 ,
 .Xr islower 3 ,
-.Xr multibyte 3 ,
 .Xr towlower 3
 .Sh STANDARDS
 The

==== //depot/projects/wifi/lib/libc/locale/toupper.3#2 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"	@(#)toupper.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/toupper.3,v 1.16 2004/08/21 07:37:08 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/toupper.3,v 1.17 2005/07/17 03:37:00 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt TOUPPER 3
 .Os
 .Sh NAME
@@ -53,13 +53,8 @@
 .Fn toupper
 function converts a lower-case letter to the corresponding
 upper-case letter.
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
 .Sh RETURN VALUES
@@ -80,7 +75,6 @@
 .Sh SEE ALSO
 .Xr ctype 3 ,
 .Xr isupper 3 ,
-.Xr multibyte 3 ,
 .Xr towupper 3
 .Sh STANDARDS
 The

==== //depot/projects/wifi/lib/libc/net/ip6opt.c#2 (text+ko) ====

@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/net/ip6opt.c,v 1.7 2003/11/14 18:07:50 ume Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/net/ip6opt.c,v 1.8 2005/07/19 18:13:58 ume Exp $");
 
 #include <sys/param.h>
 #include <sys/types.h>
@@ -389,8 +389,8 @@
 }
 
 /*
- * The following functions are defined in a successor of RFC2292, aka
- * rfc2292bis.
+ * The following functions are defined in RFC3542, which is a successor
+ * of RFC2292.
  */
 
 int

==== //depot/projects/wifi/lib/libc/net/rcmd.3#3 (text+ko) ====

@@ -30,7 +30,7 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     From: @(#)rcmd.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/net/rcmd.3,v 1.24 2005/06/10 20:52:35 nectar Exp $
+.\" $FreeBSD: src/lib/libc/net/rcmd.3,v 1.25 2005/07/19 18:13:58 ume Exp $
 .\"
 .Dd March 3, 2000
 .Dt RCMD 3
@@ -278,7 +278,7 @@
 .%A M. Thomas
 .%A E. Nordmark
 .%T "Advanced Socket API for IPv6"
-.%O draft-ietf-ipngwg-rfc2292bis-01.txt
+.%O RFC3542
 .Re
 .Sh HISTORY
 Most of these

==== //depot/projects/wifi/lib/libc/net/rthdr.c#2 (text+ko) ====

@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/net/rthdr.c,v 1.6 2003/10/24 18:26:28 ume Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/net/rthdr.c,v 1.8 2005/07/19 18:13:58 ume Exp $");
 
 #include <sys/param.h>
 #include <sys/types.h>
@@ -284,7 +284,7 @@
 }
 
 /*
- * RFC3542 (2292bis) API
+ * RFC3542 API
  */
 
 socklen_t

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

From owner-p4-projects@FreeBSD.ORG  Wed Jul 20 01:02:05 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 0999016A421; Wed, 20 Jul 2005 01:02:05 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 D90D116A41F
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 01:02:04 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id AAEDF43D49
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 01:02:04 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6K124ek008936
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 01:02:04 GMT
	(envelope-from sam@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6K124Jw008933
	for perforce@freebsd.org; Wed, 20 Jul 2005 01:02:04 GMT
	(envelope-from sam@freebsd.org)
Date: Wed, 20 Jul 2005 01:02:04 GMT
Message-Id: <200507200102.j6K124Jw008933@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	sam@freebsd.org using -f
From: Sam Leffler <sam@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80570 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jul 2005 01:02:05 -0000

http://perforce.freebsd.org/chv.cgi?CH=80570

Change 80570 by sam@sam_ebb on 2005/07/20 01:01:06

	fix short preamble handling for mcast frames

Affected files ...

.. //depot/projects/wifi/sys/dev/ath/if_ath.c#90 edit

Differences ...

==== //depot/projects/wifi/sys/dev/ath/if_ath.c#90 (text+ko) ====

@@ -3860,7 +3860,7 @@
 		 */
 		if (ismcast) {
 			/*
-			 * Check mcast rate setting in case it changed.
+			 * Check mcast rate setting in case it's changed.
 			 * XXX move out of fastpath
 			 */
 			if (ic->ic_mcast_rate != sc->sc_mcastrate) {
@@ -3870,6 +3870,8 @@
 			}
 			rix = sc->sc_mcastrix;
 			txrate = rt->info[rix].rateCode;
+			if (shortPreamble)
+				txrate |= rt->info[rix].shortPreamble;
 			try0 = ATH_TXMAXTRY;
 		} else {
 			ath_rate_findrate(sc, an, shortPreamble, pktlen,

From owner-p4-projects@FreeBSD.ORG  Wed Jul 20 01:32:44 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id B3D3B16A421; Wed, 20 Jul 2005 01:32:43 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 2EE8816A41F
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 01:32:42 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id D605A43D46
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 01:32:41 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6K1WfPK010054
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 01:32:41 GMT
	(envelope-from sam@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6K1WfaQ010051
	for perforce@freebsd.org; Wed, 20 Jul 2005 01:32:41 GMT
	(envelope-from sam@freebsd.org)
Date: Wed, 20 Jul 2005 01:32:41 GMT
Message-Id: <200507200132.j6K1WfaQ010051@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	sam@freebsd.org using -f
From: Sam Leffler <sam@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80571 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jul 2005 01:32:44 -0000

http://perforce.freebsd.org/chv.cgi?CH=80571

Change 80571 by sam@sam_ebb on 2005/07/20 01:31:56

	tx frag stats

Affected files ...

.. //depot/projects/wifi/tools/tools/ath/80211stats.c#10 edit

Differences ...

==== //depot/projects/wifi/tools/tools/ath/80211stats.c#10 (text+ko) ====

@@ -122,6 +122,8 @@
 	STAT(tx_badcipher,	"tx failed 'cuz bad ciper/key type");
 	STAT(tx_nodefkey,	"tx failed 'cuz no defkey");
 	STAT(tx_noheadroom,	"tx failed 'cuz no space for crypto hdrs");
+	STAT(tx_fragframes,	"tx frames fragmented");
+	STAT(tx_frags,		"tx frags generated");
 	STAT(scan_active,	"active scans started");
 	STAT(scan_passive,	"passive scans started");
 	STAT(node_timeout,	"nodes timed out inactivity");

From owner-p4-projects@FreeBSD.ORG  Wed Jul 20 02:52:19 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id A216716A421; Wed, 20 Jul 2005 02:52:18 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 698BE16A41F
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 02:52:18 +0000 (GMT)
	(envelope-from csjp@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 2360543D46
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 02:52:18 +0000 (GMT)
	(envelope-from csjp@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6K2qIuA012945
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 02:52:18 GMT
	(envelope-from csjp@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6K2qHU5012942
	for perforce@freebsd.org; Wed, 20 Jul 2005 02:52:17 GMT
	(envelope-from csjp@freebsd.org)
Date: Wed, 20 Jul 2005 02:52:17 GMT
Message-Id: <200507200252.j6K2qHU5012942@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	csjp@freebsd.org using -f
From: "Christian S.J. Peron" <csjp@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80573 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jul 2005 02:52:19 -0000

http://perforce.freebsd.org/chv.cgi?CH=80573

Change 80573 by csjp@csjp_xor on 2005/07/20 02:51:45

	s/filesystem/file system/

Affected files ...

.. //depot/projects/trustedbsd/mac/usr.sbin/getfhash/setfhash.8#5 edit

Differences ...

==== //depot/projects/trustedbsd/mac/usr.sbin/getfhash/setfhash.8#5 (text+ko) ====

@@ -59,7 +59,7 @@
 It should be noted that dependency pathnames
 will be looked up relative to the calling process's root.
 .It Fl r
-Remove any dependencies associated with a filesystem object.
+Remove any dependencies associated with a file system object.
 .El
 .Sh EXAMPLES
 To set the hash on

From owner-p4-projects@FreeBSD.ORG  Wed Jul 20 04:24:10 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 0E90F16A421; Wed, 20 Jul 2005 04:24:10 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 C7BC616A41F
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 04:24:09 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 957B943D48
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 04:24:09 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6K4O9f7023273
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 04:24:09 GMT
	(envelope-from sam@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6K4O9rH023270
	for perforce@freebsd.org; Wed, 20 Jul 2005 04:24:09 GMT
	(envelope-from sam@freebsd.org)
Date: Wed, 20 Jul 2005 04:24:09 GMT
Message-Id: <200507200424.j6K4O9rH023270@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	sam@freebsd.org using -f
From: Sam Leffler <sam@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80576 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jul 2005 04:24:10 -0000

http://perforce.freebsd.org/chv.cgi?CH=80576

Change 80576 by sam@sam_ebb on 2005/07/20 04:23:15

	correct !ff check for tx fragmentation; can't depend on
	M_FF being set after ff encapsulation is done

Affected files ...

.. //depot/projects/wifi/sys/net80211/ieee80211_output.c#46 edit

Differences ...

==== //depot/projects/wifi/sys/net80211/ieee80211_output.c#46 (text+ko) ====

@@ -486,7 +486,7 @@
 	struct ieee80211_frame *wh;
 	struct ieee80211_key *key;
 	struct llc *llc;
-	int hdrsize, datalen, addqos, txfrag;
+	int hdrsize, datalen, addqos, txfrag, isff;
 
 	/*
 	 * Copy existing Ethernet header to a safe place.  The
@@ -540,7 +540,7 @@
 	if (ic->ic_flags & IEEE80211_F_DATAPAD)
 		hdrsize = roundup(hdrsize, sizeof(u_int32_t));
 
-	if (m->m_flags & M_FF) {
+	if ((isff = m->m_flags & M_FF) != 0) {
 		struct mbuf *m2;
 		struct ether_header eh2;
 
@@ -671,7 +671,7 @@
 	/* check if xmit fragmentation is required */
 	txfrag = (m->m_pkthdr.len > ic->ic_fragthreshold &&
 	    !IEEE80211_IS_MULTICAST(wh->i_addr1) &&
-	    (m->m_flags & M_FF) == 0);		/* NB: don't fragment ff's */
+	    !isff);		/* NB: don't fragment ff's */
 	if (key != NULL) {
 		/*
 		 * IEEE 802.1X: send EAPOL frames always in the clear.

From owner-p4-projects@FreeBSD.ORG  Wed Jul 20 16:16:13 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 0010716A41F; Wed, 20 Jul 2005 16:16:12 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 9B7DB16A41F
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 16:16:12 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 520B743D46
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 16:16:12 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6KGGC7v083122
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 16:16:12 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6KGGCmK083119
	for perforce@freebsd.org; Wed, 20 Jul 2005 16:16:12 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Wed, 20 Jul 2005 16:16:12 GMT
Message-Id: <200507201616.j6KGGCmK083119@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson <rwatson@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80606 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jul 2005 16:16:13 -0000

http://perforce.freebsd.org/chv.cgi?CH=80606

Change 80606 by rwatson@rwatson_paprika on 2005/07/20 16:15:51

	Start putting together an outline of a document discussion the API
	and ABI implications of the MAC Framework and SEDarwin on the Darwin
	operating system.
	
	Sponsored by:	SPAWAR, SPARTA

Affected files ...

.. //depot/projects/trustedbsd/sedarwin7/docs/apiabi.txt#1 add

Differences ...

From owner-p4-projects@FreeBSD.ORG  Wed Jul 20 16:25:24 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 5434916A421; Wed, 20 Jul 2005 16:25:24 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 2E62416A41F
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 16:25:24 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id E118543D46
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 16:25:23 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6KGPNcB083450
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 16:25:23 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6KGPNiQ083447
	for perforce@freebsd.org; Wed, 20 Jul 2005 16:25:23 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Wed, 20 Jul 2005 16:25:23 GMT
Message-Id: <200507201625.j6KGPNiQ083447@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson <rwatson@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80607 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jul 2005 16:25:25 -0000

http://perforce.freebsd.org/chv.cgi?CH=80607

Change 80607 by rwatson@rwatson_paprika on 2005/07/20 16:25:20

	Add brief descriptions of a number of library calls and command
	line utilities.

Affected files ...

.. //depot/projects/trustedbsd/sedarwin7/docs/apiabi.txt#2 edit

Differences ...

==== //depot/projects/trustedbsd/sedarwin7/docs/apiabi.txt#2 (text+ko) ====

@@ -155,47 +155,168 @@
   New System Library Interfaces - libextattr
 
 int extattr_namespace_to_string();
+
+Convert an extended attribute name space identifier to a text string.
+
 int extattr_string_to_namespace();
+
+Convert an extended attribute name space string to a number identifier.
+
 int extattrctl();
+
+Manage extended attributes on a file system.
+
 int extattr_delete_fd();
+
+Delete an extended attribute on a file by file descriptor.
+
 int extattr_delete_file();
+
+Delete an extended attribute on a file by path.
+
 int extattr_delete_link();
+
+Delete an extended attribute on a file by path; do not follow symbolic links.
+
 ssize_t extattr_get_fd();
+
+Retrieve an extended attribute on a file by file descriptor.
+
 ssize_t extattr_get_file();
+
+Retrieve an extended attribute on a file by path.
+
 ssize_t extattr_get_link();
+
+Retrieve an extended attribute on a file by path; do not follow symbolic
+links.
+
 int extattr_set_fd();
+
+Set an extended attribute on a file by file descriptor.
+
 int extattr_set_file();
+
+Set an extended attribute on a file by path.
+
 int extattr_set_link();
+
+Set an extended attribute on a file by path; do not follow symbolic links.
+
 ssize_t extattr_list_file();
+
+List extended attributes on a file by path.
+
 ssize_t extattr_list_link();
+
+List extended attributes on a file by path; do not follow symbolic links.
+
 ssize_t extattr_list_fd();
 
+List extended attributes on a file by file descriptor.
+
   New System Library Interfaces - libmac
 
 int mac_reload()
+
+Cause the user space MAC Framework to reload its label configuration from
+mac.conf.
+
 int mac_free()
+
+Free a user space MAC label.
+
 int mac_from_text()
+
+Convert a text representation label to a user space MAC label.
+
 int mac_to_text()
+
+Convert a user space MAC label to a text representation.
+
 int mac_prepare()
+
+Prepare storage for a user space MAC label.
+
 int mac_prepare_type()
+
+Prepare storage for a user space MAC label intended for use with a particular
+object type.
+
 int mac_prepare_ifnet_label()
+
+Deprecated: prepare storage for a user space MAC label intended for use with
+network interface.
+
 int mac_prepare_file_label()
+
+Deprecated: prepare storage for a user space MAC label intended for use with
+a file.
+
 int mac_prepare_packet_label()
+
+Deprecated: prepare storage for a user space MAC label intended for use with
+a network packet.
+
 int mac_prepare_process_label()
+
+Deprecated: prepare storage for a user space MAC label intenedd for use with
+a process.
+
 int mac_is_present()
+
+Check with MAC support is loaded, and if so, whether a specified policy is
+present.
+
 int mac_syscall()
+
+Multiplexor MAC policy system call.
+
 int mac_execve()
+
+Execute a file and request a specific MAC label transition as part of
+execution.
+
 int mac_get_fd()
+
+Retrieve the MAC label on a file by file descriptor.
+
 int mac_get_file()
+
+Retrieve the MAC label on a file by file path.
+
 int mac_get_link()
+
+Retrieve the MAC label on a file by file path; do not follow symbolic links.
+
 int mac_get_pid()
+
+Retrieve the MAC label on the current process.
+
 int mac_get_proc()
+
+Retrieve the MAC label on another process.
+
 int mac_get_peer()
+
+Retrieve the MAC label of the remote endpoint of a communications socket.
+
 int mac_set_fd()
+
+Set the MAC label on a file by file descriptor.
+
 int mac_set_file()
+
+Set the MAC label on a file by file path.
+
 int mac_set_link()
+
+Set the MAC label on a file by file path; do not follow symbolic links.
+
 int mac_set_proc()
 
+Set the MAC label on the current process.
+
   New System Library Interfaces - SEDarwin
 
 XXX
@@ -203,18 +324,44 @@
   New Command Line Utilities - extattr_cmds
 
 getextattr(8)
+
+Retrieve extended attributes on a file.
+
 lsextattr(8)
+
+List extended attributes on a file.
+
 rmextattr(8)
+
+Remove extended attributes from a file.
+
 setextattr(8)
 
+Set extended attributes on a file.
+
   New Command Line Utilities - mac_cmds
 
 getfmac(8)
+
+Retrieve the MAC label of a file.
+
 getpmac(8)
+
+Retrieve the MAC label of the current process.
+
 mexec(8)
+
+Run a program and transition to the requested MAC label.
+
 setfsmac(8)
+
+Set the MAC label of a file, optionally with using a label specification
+database.
+
 setpmac(8)
 
+Set the MAC label of the current process, then execute a command.
+
   New Command Line Utilities - SEDarwin
 
 checkpolicy(8)
@@ -230,8 +377,13 @@
   Modifications to Existing Command Line Utilities
 
 ls(1)
+
+File list utility; modified to query MAC labels when -Z is used.
+
 ps(1)
 
+Process list utility; modified to query MAC labels when -Z is used.
+
   MAC Framework Policy Entry Points
 
 XXX

From owner-p4-projects@FreeBSD.ORG  Wed Jul 20 19:21:05 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id D360B16A421; Wed, 20 Jul 2005 19:21:04 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 ABC8916A41F
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 19:21:04 +0000 (GMT)
	(envelope-from areisse@nailabs.com)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id CB11343D4C
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 19:21:03 +0000 (GMT)
	(envelope-from areisse@nailabs.com)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6KJL3Sj098931
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 19:21:03 GMT
	(envelope-from areisse@nailabs.com)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6KJL3mI098928
	for perforce@freebsd.org; Wed, 20 Jul 2005 19:21:03 GMT
	(envelope-from areisse@nailabs.com)
Date: Wed, 20 Jul 2005 19:21:03 GMT
Message-Id: <200507201921.j6KJL3mI098928@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	areisse@nailabs.com using -f
From: Andrew Reisse <areisse@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80620 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jul 2005 19:21:05 -0000

http://perforce.freebsd.org/chv.cgi?CH=80620

Change 80620 by areisse@areisse_ibook on 2005/07/20 19:20:45

	Updates to mach security report. Note that this is still very much
	a work in progress.

Affected files ...

.. //depot/projects/trustedbsd/sedarwin7/docs/mach-security.txt#3 edit

Differences ...

==== //depot/projects/trustedbsd/sedarwin7/docs/mach-security.txt#3 (text+ko) ====

@@ -1,57 +1,75 @@
 
 This report summarizes the work on our Mach security extensions.
 
-In securing the Mach operating system, there are two major areas to be
-covered: system primitives and servers. Basically, the only primitive provided is
-message passing: A task sends a message to a port, which may be received
-by another task (including the kernel).
-The Mach operating system provides other services, such as device abstraction,
-virtual memory, scheduling, etc., but those services
-are accessed via messages sent to kernel ports. So, the other services 
-provided by the Mach kernel can be treated as userspace servers (for
-security purposes).
+**** Background
+
+*** Mach
+
+Mach is a message-passing microkernel system. A running Mach system consists of a 
+number of tasks, each with their own address space, which can communicate with one
+another via messages. Tasks also communicate with the kernel with messages. The kernel
+abstraction for messaging is the port right: a handle to a message queue and a set of
+operations (sending or receiving) that the task can perform on that port. A port is only
+a destination for a message; messages have no "sending" port. As ports
+are relatively lightweight, applications often use a port to represent a single higher-level
+object, such as a window or hardware device. Unlike Unix IPC mechanisms, only one
+task at a time (possibly the kernel) may hold a "receive right" for a particular port.
 
 Mach messages contain a variable number of elements, each of which may be
-raw data, port names, or memory ranges. The kernel processes the port name and
-memory range sections specially, allowing the port names to be used by the 
-receiving task. Since multiple kernel objects may be transferred via messages,
-a single (subject,object) form of access control check is insufficient.
+raw data, port rights, or memory ranges. The kernel processes the port right and
+memory range sections specially; the raw data is passed to the recipient unmodified.
+Receiving port rights in messages is the only way for tasks to receive new port rights
+above those that it was given by the parent.
+
+Mach uses a capability model: holding appropriate port right entitles the task to use the
+services of the kernel and other applications. In a pure Mach system, there is no information
+about the sender provided when a message is received; the port rights themselves control
+access to the services, much as file descriptors (once opened) entirely control access to
+the referenced file. Security in a tranditional Mach system is achieved by limited the port
+rights a task has access to, rather than by enforcing access controls on ports once they
+are held.
 
-A security policy may want to attach a security label to
-tasks, messages, and ports. DTOS stores a security identifier in tasks,
-ports, and augments the mach_msg calls to return or provide a security
-identifier. We are following that model, except we use a policy-agnostic
-label structure instead of a security identifier.
-Because the Darwin kernel includes a BSD system as well, the security 
-additions (to both Mach and BSD systems) will need to remain correlated:
-for example, a BSD process and its underlying Mach task should have the
-same subject label(s). This is accomplished by changing the routines in the
-BSD subsystem to update the task labels whenever a process label is changed,
-and provide no user callable interface to directly change a task label, forcing
-them to use the BSD system calls that will change both subject labels (For locking
-reasons, Mach system calls or message handlers cannot acquire BSD-side locks, and
-so are unable to change the BSD process label).
+** Mach and Applications 
 
-Because the MAC framework
-originiated with FreeBSD, there is a desire for the Darwin BSD side of
-the MAC framework to remain compatible with the FreeBSD version.
+A Mach system provides userspace facililities to assist in the development of
+message-based applications. One such tool that is the Mach Interface Generator (MiG),
+providing a remote procedure call interface over Mach messages. 
 
-MiG
+* MiG
 
 MiG (Mach Interface Generator) is similar to rpcgen on unix systems; MiG reads
 a specification of data types and method prototypes, and generates client and
 server stubs which copy the arguments and method ID into a buffer and send it as
 a Mach message (one of the arguments is a port that will receive the message). The
 return value and any reference parameters are sent to the client as another Mach
-message. Because messages can contain port rights, a MiG method call can be used
-to obtain a port right for another service. MiG also supports messages containing
-large memory areas, and arranges for those to be transferred via VM operations rather
-than multiple copies.
+message. In general, the client is not concerned with the semantics of message
+passing and port rights and simply uses the stubs.
+
+Special kinds of message contents are supported by MiG; port rights and shared
+memory can be passed in both directions, large arrays are automatically passed as
+copy-on-write shared memory, etc. Namespace services (mach_init in Darwin) are
+accessed and implemented using MiG.
+
+The model of "one object, one port" works well with MiG, where the first argument
+is used as the destination for the message that the function call produces,
+representing the object on which the function operates.
+For example, a window server may contain a method to resize a window:
+
+    routine window_resize (window : mach_port_t;
+			   width  : int;
+			   height : int);
+
+where the message is sent to the port passed as the first argument. When the window server
+receives the message, the MiG stub can convert the port into an implementation-specific
+pointer through a translation type. This removes the need for application developers
+to implement wire protocols in many cases.
+
 A set of routines
 that will all be sent to the same type of port (e.g. namespace server) are called
 a subsystem. MiG allows a subsystem to contain up to 100 methods; new methods 
 can be added to an existing subsystem without affecting existing clients as long 
 as the new total number of methods is less than 100.
+
 User programs
 linked with client stubs can call those methods "as if" they existed in the task's
 address space. A server task (or part of the kernel) implementing a subsystem uses
@@ -63,7 +81,55 @@
 messaging protocols, especially for kernel servers where the message validity checking
 and cross-address space copying is handled centrally.
 
-Subsystem Access Control
+*** Darwin
+
+Darwin, the open-source base of the Apple MacOS X operating system, is a combination of
+a number of technologies. Here, we are mostly concerned with the kernel and its two primary
+components: Mach and BSD (The iokit device driver framework is not included in this study).
+Unlike other Mach systems, the BSD kernel in Darwin runs in the kernel address space,
+not as a (userspace) task. This is significantly different from Lites-based systems such
+as DTOS: the Unix-oriented objects cannot be protected with Mach messaging controls and
+therefore need their own controls in the kernel. Controls on Unix objects are provided
+by the "original" FreeBSD MAC framework as it was ported to Darwin.
+
+
+**** Security Needs
+
+*** Overview
+
+In securing a Mach operating system, there are two major areas to be
+covered: system primitives and servers. Basically, the only primitive provided is
+message passing. The Mach system provides other services, such as device abstraction,
+virtual memory, scheduling, etc., but those services are accessed via messages.
+As Darwin contains a BSD kernel, BSD primitives such as sockets, files, and processes
+are accessed with BSD system calls and not messages. BSD primitives are mostly outside
+this discussion as there is extensive support and documentation available elsewhere.
+
+*** Kernel
+
+The entry point for kernel services from userspace is the trap, or system call. Mach
+provides very few traps, because services are primarily implemented over messages.
+Darwin contains a small number of traps for performance-sensitive operations, such
+as operating on semaphores or reading timers. However, those services are unlikely to
+need mediation by a policy, and are ignored in our current implementation. The
+remaining services are accessed via messaging, and as such can be treated the same
+as userspace services for security purposes. 
+
+//Since multiple kernel objects (port rights or memory) may be transferred via messages,
+//a single (subject,object) form of access control check is insufficient.
+
+** Labelling
+
+A security policy may want to attach a security label to
+tasks, messages, and ports. DTOS stores a security identifier in tasks,
+ports, and augments the mach_msg calls to return or provide a security
+identifier. We are following that model, except we use a policy-agnostic
+label structure instead of a security identifier. A label structure is added
+to each port (ipc_port_t) and to each task (task).
+The convention of using a port to represent a single object means that labels on
+ports translate well into labels on objects for policy purposes.
+
+** Subsystem Access Control
 
 There are two approaches to protecting servers: Permission checks in the 
 handlers, or using proxy servers. A permission check embedded in a handler
@@ -80,8 +146,34 @@
 bootstrap namespace manager will get the proxy server instead of the "real"
 service port.
 
+** FreeBSD Compatibility
+
+Because the Darwin kernel includes a BSD system as well, the security 
+additions (to both Mach and BSD systems) will need to remain correlated:
+for example, a BSD process and its underlying Mach task should have the
+same subject label(s). This is accomplished by changing the routines in the
+BSD subsystem to update the task labels whenever a process label is changed,
+and provide no user callable interface to directly change a task label, forcing
+them to use the BSD system calls that will change both subject labels (For locking
+reasons, Mach system calls or message handlers cannot acquire BSD-side locks, and
+so are unable to change the BSD process label).
+
+Because the security framework originiated with FreeBSD, there is a desire for the
+Darwin BSD side of the security framework to remain compatible with the FreeBSD version.
+The Mach features of the security framework will not be present on a FreeBSD system,
+but the two systems differ in other ways so policies never would have been fully
+compatible, although they may share much. 
+
+
 ******
 
+Summary of security events
+
+Object creation is straightforward: when a task or port is created, the kernel requests a new label
+from the policies, based on the caller and target task labels. 
+
+
+
 Extensions to MiG
 
 We have extended MiG in a number of ways to take advantage of a central implementation
@@ -101,14 +193,56 @@
 For example, the server can use of the sender's label to label new objects, or
 perform access control based on the routine's arguments.
 
++ MiG Example
+
+The routine specification
+
+    routine print_int (dest  : mach_port_t;
+		       value : int);
+
+produces stubs with the prototype (client and server are the same)
+
+    kern_return_t print_int (mach_port_t dest, int value);
 
+To provide the caller's task label to the server implementation, an additional
+argument is added (in a similar way to how security tokens and audit info trailers
+are requested in Darwin):
+
+    routine print_int (dest		      : mach_port_t;
+		       value		      : int;
+		       servermsglabels labels : msg_labels_t);
+
+As with other MiG argument flags starting with "server", the labels argument is 
+included in server stubs but not client stubs (as it is supplied by the kernel and
+not the client). The server prototype becomes:
+
+    kern_return_t print_int (mach_port_t dest, int value, msg_labels_t labels);
+
+and the server can access the caller's task label (as a label handle) with
+labels.sender. We do not currently provide the option for the client to receive
+remote labels in this way, but it would not be a difficult change.
+
+When the checkaccess flag is specified to enable automated permission checking,
+the prototypes are unchanged for both sides, but the server stub implementation changes
+to request the access decision trailer, and then to return failure (without invoking
+the server implementation) if access was denied. All MiG calls return
+kern_return_t, and a permission denial is one of the standard values (although it rarely
+occurs in an ordinary Mach system).
+
+
 Extensions to FreeBSD MAC Framework
 
+** Framework overview
+
 The FreeBSD MAC framework consists of a kernel interface, a user interface,
 a set of policies, and a kernel-to-policy interface. The kernel interface is 
 used by other parts of the kernel (e.g. filesystems) to label objects and
 request access control decisions. The user interface allows a user program to
-change labels, run programs in other domains, or administer the policy. 
+change labels, run programs in other domains, request policy decisions,
+or administer the policy. Complex policies may export arbitrary additional
+interfaces to userspace, such as assistance for labelling userspace objects
+or handling login sessions.
+
 The kernel interface (called by filesystems and other kernel subsystems) uses
 the kernel-to-policy interface to request labels and access control decisions
 from each configured policy. All policies use the same interface, but many
@@ -129,7 +263,7 @@
 Note that the label represented by the handle is distinct from the label on its port
 that is used for messaging access control. Currently, the system provides no mechanism
 for obtaining the access control label of a label handle port, but it can be changed.
-Initally, label handles were not backed by actual ports, but just used the port
+Initally, label handles were not backed by actual ports, but merely used the port
 namespace (and ipc_right, ipc_entry structures). This was changed when maintaining the
 support for an extra type of ipc_object became unwieldly. It also allows label handle
 ports to be direct recievers of messages.
@@ -145,7 +279,11 @@
 
 Labelling events for tasks and ports are defined. 
 Access control checks for message sending and port right transfers (both sending
-and receiving) are defined.
+and receiving) are defined. All of these checks are based on the model of a
+subject performing an operation on one or more objects. The subject is always
+a task; objects are either tasks, ports, or higher-level services built on ports.
+Note that in userspace all mach kernel objects are accessed via ports.
+
 If requested, the kernel will supply the message sender's task label in a
 mach message trailer (as a label handle). The message recipient can use
 the sender's label in making its own access decisions. For example, the
@@ -169,13 +307,13 @@
 
 Currently,
 the only policy that implements the generic access checks is Flask. However, portions
-of the bsd kernel may use these MAC entry points as well, because of the
+of the kernel may use these entry points as well, because of the
 greater amount of information available to the policies over POSIX capabilities.
 
 
 Changes to Mach Kernel
 
-Kernel changes made to support the MAC framework were fairly noninvasive,
+Kernel changes made to support the security framework were fairly noninvasive,
 only affecting a few of the data structures and a small number of functions.
 Tasks and ports received label storage; creation and deallocation routines
 call labelling event operations. Tasks use label handles, because the built
@@ -185,7 +323,17 @@
 Changes to the BSD kernel are also necessary, for instance the task and
 process label storage needs to be kept synchronized, as there really is
 only one subject and the label needs to be associated with both structures
-for synchronization purposes.
+for synchronization purposes. Another advantage of using a label handle
+reference to store a task label is that the reference can be placed directly
+into the message trailer field for the sender's task label, requiring only
+an ipc right copyout, rather than a full label allocation & copy, plus the
+copyout.
+
+A task always has an associated task port, which has a port label as well. Our
+system changes the task port label whenever the task label is changed, but allows
+the task port label to diverge if desired (and permitted by the policies).
+
+
 
 Mach "security" services
 
@@ -195,6 +343,37 @@
 The security server will also respond to requests for access control decisions, 
 and allow the creation of label handles.
 
+Security events for messaging
+
+As all interaction with the
+kernel (and userspace mach services) is done through messaging, the messaging security must
+be general enough to handle the variety of uses. Security checks on messaging are performed
+at both sending and receiving. At sending, the kernel first calls the "check_port_send"
+security framework entry point to permit or deny sending the entire message. Next, the
+security policies are queried for permission to transfer each port right contained in the
+message. If any port right transfers are denied, the message is not sent. Currently, no
+special check is performed for transferring out-of-line memory. Information flow policies
+need to control this as the memory can be shared between the sender and (eventual) message
+recipient. None of the sending checks refer to the receiving task, as it is not known at
+time of sending (The receive right for the destination port could be in the process of 
+moving to a different task at the same time the message is sent).
+
+Because checks were made on both transferring the port rights out of the sending task,
+and into the receiving task, security policies have control over later information flows
+resulting from port rights in a message.
+
+
+1. Message sent
+2. Check for action of sending (check_port_send)
+3. Checks for port rights (check_port_copy_send, etc)
+4. Port rights and memory copied from sender
+5. Kernel message stored
+....
+6. Remove from queue
+7. Checks for storing port rights (check_port_hold_send, etc)
+8. Port rights and memory copied out to recipient
+9. Message received
+
 Mach message trailers
 
 When a Mach message is sent, the kernel may append information about the
@@ -237,7 +416,7 @@
 automated, still requires rebuilding the affected server from source (Clients do
 not need to be rebuilt or otherwise modified).
 
-Userspace modifications
+*** Userspace modifications
 
 We have selected mach_init as one system service to augment with the extended
 security checks, because mach_init is open source, provides a service that
@@ -258,77 +437,39 @@
 namespace port. Some policies may use different namespace labels for login sessions
 and system processes for additional protection.
 
-Extensions to Flask policy
+*** Extensions to SEDarwin (Flask TE policy)
+
+** Generic access checks
+
+We have extended the Flask subsystem with name-based permission checks, where
+security classes and permissions are referenced by name rather than by an assigned
+number. Name-based checks are useful when there is no kernel knowledge of the object
+or service being protected, as is often the case with userspace services. With this
+support, developing a policy for a new application does not require rebuilding the
+kernel (or policy tools) even if new security classes or permissions are introduced.
+This does not change the binary policy file format, nor does it change how other
+Flask access control checks are implemented. As long as the new classes and permissions
+are added to the Flask definitions correctly (i.e., without re-ordering the built-in
+security classes or permissions), the new policy is compatible with existing systems.
+Named permission checks are used by check_service_access and check_ipc_methods.
+For consistency with other Flask implementations, the numeric permission checks are
+used for all other permission checks.
+
+** Mach access control checks
 
-The Flask subsystem from SELinux has a limitation in that permissions and
-object classes are referenced by numbers, which is not extensible in a 
-convenient and manageable way. We developed an addition to the Flask security
-server to allow permission
-lookups by name, for use with the generic access check introduced to the
-MAC framework. 
-The policy compiler will then store the permission names
-in the policy file; the kernel will use the names when the generic access
-check is attempted. For performance reasons, the numeric permission checks
-are still used for all other permission checks.
+The SEDarwin policy implements the messaging controls in the usual way: security
+classes and permissions are defined for ports; each messaging entry point checks
+the appropriate permissions. The port permissions are relabelfrom, relabelto, send,
+make_send, copy_send, and move_recv.
 
 We have extended MiG to automatically generate security classes and permissions 
 from the specifications. These security classes and permissions can then be
 used in the TE policy to control access to MiG-based services.
 
 The policy also builds a translation table mapping message ids to security classes
-(from subsystems) and permissions (from individual routines). This table is
-loaded separately from the TE policy, so that the TE policy file format is
-preserved across systems.
-
-
-Documentation for new Framework entry points
-
-/**
-  @brief Request label for new (userspace) object
-  @param subj Subject label
-  @param obj Parent or existing object label
-  @param serv Name of service
-  @param out Computed label
-
-  Ask the loaded policies to compute a label based on the two input labels
-  and the service name. There is currently no standard for the service name,
-  or even what the input labels represent (Subject and parent object are only
-  a suggestion). If successful, the computed label is stored in out. All labels
-  must be port (or task) labels. The userspace interfaces to this entry point
-  allow label handles (ports) to be provided.
-
-  @return 0 on success, or an errno value for failure.
-*/
-
-typedef int mpo_request_object_label_t(
-	struct label *subj,
-	struct label *obj,
-	const char *serv,
-	struct label *out
-);
-
-/**
-  @brief Compute access control check for a Mach message-based service
-  @param task Sender's task label
-  @param port Destination port label
-  @param msgid Message id 
-
-  Access control computation for message-based services. This entry point
-  computes permission to the service requested by the specified port and message
-  id, for example a single MiG server routine, and is unrelated to the access
-  check for sending messages to ports (but that check must succeed for the
-  message to be sent to the destination). The result of this access computation
-  is stored in the message trailer field msgh_ad (only if requested by the
-  recipient); it does not actually inhibit the message from being sent or
-  received.
-
-  @return 0 for access granted, nonzero for access denied.
-*/
-
-typedef int mpo_check_ipc_method_t(
-	struct label *task,
-	struct label *port,
-	int msgid
-);
-
+(from subsystems) and permissions (from individual routines). The SEDarwin
+implementation of check_ipc_methods uses the message id to look up a security
+class and permission for that message, then it requests that permission from the AVC.
+The translation table is loaded separately from the TE policy, so that the TE policy
+file format is preserved across systems.
 

From owner-p4-projects@FreeBSD.ORG  Wed Jul 20 20:12:09 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id D0C8816A421; Wed, 20 Jul 2005 20:12:08 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 A7E3D16A41F
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 20:12:08 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 3F35843D48
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 20:12:08 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6KKC8he001474
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 20:12:08 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6KKC7WE001471
	for perforce@freebsd.org; Wed, 20 Jul 2005 20:12:07 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Wed, 20 Jul 2005 20:12:07 GMT
Message-Id: <200507202012.j6KKC7WE001471@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson <rwatson@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80626 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jul 2005 20:12:09 -0000

http://perforce.freebsd.org/chv.cgi?CH=80626

Change 80626 by rwatson@rwatson_zoo on 2005/07/20 20:11:23

	NFS client lockage.
	UMA stats fixage.

Affected files ...

.. //depot/projects/netsmp/src/sys/contrib/pf/net/pf.c#2 integrate
.. //depot/projects/netsmp/src/sys/contrib/pf/net/pf_norm.c#2 integrate
.. //depot/projects/netsmp/src/sys/contrib/pf/net/pfvar.h#2 integrate
.. //depot/projects/netsmp/src/sys/dev/ep/if_ep.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/ep/if_epvar.h#2 integrate
.. //depot/projects/netsmp/src/sys/fs/devfs/devfs_vnops.c#2 integrate
.. //depot/projects/netsmp/src/sys/geom/bde/g_bde_crypt.c#2 integrate
.. //depot/projects/netsmp/src/sys/i386/conf/NOTES#2 integrate
.. //depot/projects/netsmp/src/sys/kern/vfs_aio.c#2 integrate
.. //depot/projects/netsmp/src/sys/kern/vfs_bio.c#2 integrate
.. //depot/projects/netsmp/src/sys/kern/vfs_subr.c#2 integrate
.. //depot/projects/netsmp/src/sys/net/if_bridge.c#2 integrate
.. //depot/projects/netsmp/src/sys/netinet/icmp6.h#2 integrate
.. //depot/projects/netsmp/src/sys/netinet/ip6.h#2 integrate
.. //depot/projects/netsmp/src/sys/netinet6/in6.h#2 integrate
.. //depot/projects/netsmp/src/sys/netinet6/ip6_input.c#2 integrate
.. //depot/projects/netsmp/src/sys/netinet6/ip6_mroute.h#2 integrate
.. //depot/projects/netsmp/src/sys/netinet6/ip6_output.c#2 integrate
.. //depot/projects/netsmp/src/sys/netinet6/nd6.c#2 integrate
.. //depot/projects/netsmp/src/sys/nfsclient/nfs.h#2 integrate
.. //depot/projects/netsmp/src/sys/nfsclient/nfs_socket.c#2 integrate
.. //depot/projects/netsmp/src/sys/nfsclient/nfs_subs.c#2 integrate
.. //depot/projects/netsmp/src/sys/ufs/ffs/ffs_vfsops.c#2 integrate
.. //depot/projects/netsmp/src/sys/vm/swap_pager.c#2 integrate
.. //depot/projects/netsmp/src/sys/vm/uma_core.c#2 integrate
.. //depot/projects/netsmp/src/sys/vm/vm_map.c#2 integrate

Differences ...

==== //depot/projects/netsmp/src/sys/contrib/pf/net/pf.c#2 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/contrib/pf/net/pf.c,v 1.34 2005/05/04 19:51:06 mlaier Exp $	*/
+/*	$FreeBSD: src/sys/contrib/pf/net/pf.c,v 1.35 2005/07/20 18:58:27 mlaier Exp $	*/
 /*	$OpenBSD: pf.c,v 1.483 2005/03/15 17:38:43 dhartmei Exp $ */
 
 /*
@@ -1085,6 +1085,11 @@
 void
 pf_purge_expired_state(struct pf_state *cur)
 {
+#ifdef __FreeBSD__
+	if (cur->sync_flags & PFSTATE_EXPIRING)
+		return;
+	cur->sync_flags |= PFSTATE_EXPIRING;
+#endif
 	if (cur->src.state == PF_TCPS_PROXY_DST)
 		pf_send_tcp(cur->rule.ptr, cur->af,
 		    &cur->ext.addr, &cur->lan.addr,

==== //depot/projects/netsmp/src/sys/contrib/pf/net/pf_norm.c#2 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/contrib/pf/net/pf_norm.c,v 1.11 2005/05/03 16:43:32 mlaier Exp $	*/
+/*	$FreeBSD: src/sys/contrib/pf/net/pf_norm.c,v 1.12 2005/07/20 10:30:52 ume Exp $	*/
 /*	$OpenBSD: pf_norm.c,v 1.97 2004/09/21 16:59:12 aaron Exp $ */
 
 /*
@@ -70,48 +70,6 @@
 
 #include <net/pfvar.h>
 
-#if defined(__FreeBSD__) && defined(INET6)
-/*
- * XXX: This should go to netinet/ip6.h (KAME)
- */
-/* IPv6 options: common part */
-struct ip6_opt {
-	u_int8_t ip6o_type;
-	u_int8_t ip6o_len;
-} __packed;
-
-/* Jumbo Payload Option */
-struct ip6_opt_jumbo {
-	u_int8_t ip6oj_type;
-	u_int8_t ip6oj_len;
-	u_int8_t ip6oj_jumbo_len[4];
-} __packed;
-
-/* NSAP Address Option */
-struct ip6_opt_nsap {
-	u_int8_t ip6on_type;
-	u_int8_t ip6on_len;
-	u_int8_t ip6on_src_nsap_len;
-	u_int8_t ip6on_dst_nsap_len;
-	/* followed by source NSAP */
-	/* followed by destination NSAP */
-} __packed;
-
-/* Tunnel Limit Option */
-struct ip6_opt_tunnel {
-	u_int8_t ip6ot_type;
-	u_int8_t ip6ot_len;
-	u_int8_t ip6ot_encap_limit;
-} __packed;
-
-/* Router Alert Option */
-struct ip6_opt_router {
-	u_int8_t ip6or_type;
-	u_int8_t ip6or_len;
-	u_int8_t ip6or_value[2];
-} __packed;
-#endif /* __FreeBSD__ && INET6 */
-
 #ifndef __FreeBSD__
 struct pf_frent {
 	LIST_ENTRY(pf_frent) fr_next;

==== //depot/projects/netsmp/src/sys/contrib/pf/net/pfvar.h#2 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/contrib/pf/net/pfvar.h,v 1.11 2005/05/03 16:43:32 mlaier Exp $	*/
+/*	$FreeBSD: src/sys/contrib/pf/net/pfvar.h,v 1.12 2005/07/20 18:58:27 mlaier Exp $	*/
 /*	$OpenBSD: pfvar.h,v 1.213 2005/03/03 07:13:39 dhartmei Exp $ */
 
 /*
@@ -790,6 +790,9 @@
 #define	PFSTATE_NOSYNC	 0x01
 #define	PFSTATE_FROMSYNC 0x02
 #define	PFSTATE_STALE	 0x04
+#ifdef __FreeBSD__
+#define	PFSTATE_EXPIRING 0x10
+#endif
 	u_int8_t	 pad;
 };
 

==== //depot/projects/netsmp/src/sys/dev/ep/if_ep.c#2 (text+ko) ====

@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ep/if_ep.c,v 1.140 2005/07/01 05:31:23 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ep/if_ep.c,v 1.141 2005/07/19 22:26:44 imp Exp $");
 
 /*
  *	Modified from the FreeBSD 1.1.5.1 version by:
@@ -281,7 +281,7 @@
 		error = ep_get_macaddr(sc, sc->eaddr);
 		if (error) {
 			device_printf(sc->dev, "Unable to get MAC address!\n");
-			EP_LOCK_DESTORY(sc);
+			EP_LOCK_DESTROY(sc);
 			return (ENXIO);
 		}
 	}
@@ -289,7 +289,7 @@
 	ifp = sc->ifp = if_alloc(IFT_ETHER);
 	if (ifp == NULL) {
 		device_printf(sc->dev, "if_alloc() failed\n");
-		EP_LOCK_DESTORY(sc);
+		EP_LOCK_DESTROY(sc);
 		return (ENOSPC);
 	}
 
@@ -361,7 +361,7 @@
 
 	sc->gone = 1;
 	ep_free(dev);
-	EP_LOCK_DESTORY(sc);
+	EP_LOCK_DESTROY(sc);
 
 	return (0);
 }

==== //depot/projects/netsmp/src/sys/dev/ep/if_epvar.h#2 (text+ko) ====

@@ -19,7 +19,7 @@
  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/ep/if_epvar.h,v 1.19 2005/07/13 14:54:40 imp Exp $
+ * $FreeBSD: src/sys/dev/ep/if_epvar.h,v 1.20 2005/07/19 22:26:44 imp Exp $
  */
 
 struct ep_board {
@@ -103,6 +103,6 @@
 #define EP_LOCK_INIT(_sc) \
 	mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->dev), \
 	    MTX_NETWORK_LOCK, MTX_DEF)
-#define EP_LOCK_DESTORY(_sc)	mtx_destroy(&_sc->sc_mtx);
+#define EP_LOCK_DESTROY(_sc)	mtx_destroy(&_sc->sc_mtx);
 #define EP_ASSERT_LOCKED(_sc)	mtx_assert(&_sc->sc_mtx, MA_OWNED);
 #define EP_ASSERT_UNLOCKED(_sc)	mtx_assert(&_sc->sc_mtx, MA_NOTOWNED);

==== //depot/projects/netsmp/src/sys/fs/devfs/devfs_vnops.c#2 (text+ko) ====

@@ -31,7 +31,7 @@
  *	@(#)kernfs_vnops.c	8.15 (Berkeley) 5/21/95
  * From: FreeBSD: src/sys/miscfs/kernfs/kernfs_vnops.c 1.43
  *
- * $FreeBSD: src/sys/fs/devfs/devfs_vnops.c,v 1.115 2005/07/14 10:22:09 rwatson Exp $
+ * $FreeBSD: src/sys/fs/devfs/devfs_vnops.c,v 1.116 2005/07/20 13:34:16 simon Exp $
  */
 
 /*
@@ -788,6 +788,12 @@
 	struct devfs_mount *dmp;
 	int error;
 
+	/*
+	 * The only type of node we should be creating here is a
+	 * character device, for anything else return EOPNOTSUPP.
+	 */
+	if (ap->a_vap->va_type != VCHR)
+		return (EOPNOTSUPP);
 	dvp = ap->a_dvp;
 	dmp = VFSTODEVFS(dvp->v_mount);
 	lockmgr(&dmp->dm_lock, LK_EXCLUSIVE, 0, curthread);

==== //depot/projects/netsmp/src/sys/geom/bde/g_bde_crypt.c#2 (text+ko) ====

@@ -29,7 +29,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/geom/bde/g_bde_crypt.c,v 1.22 2005/03/11 15:42:51 ume Exp $
+ * $FreeBSD: src/sys/geom/bde/g_bde_crypt.c,v 1.23 2005/07/20 18:08:16 phk Exp $
  */
 /* This source file contains the functions responsible for the crypto, keying
  * and mapping operations on the I/O requests.
@@ -64,7 +64,7 @@
  * from the comparatively small key material in our mkey, in such a way that
  * if one, more or even many of the kkeys are compromised, this does not
  * significantly help an attack on other kkeys and in particular does not
- * weaken or compromised the mkey.
+ * weaken or compromise the mkey.
  *
  * First we MD5 hash the sectornumber with the salt from the lock sector.
  * The salt prevents the precalculation and statistical analysis of the MD5

==== //depot/projects/netsmp/src/sys/i386/conf/NOTES#2 (text+ko) ====

@@ -4,7 +4,7 @@
 # This file contains machine dependent kernel configuration notes.  For
 # machine independent notes, look in /sys/conf/NOTES.
 #
-# $FreeBSD: src/sys/i386/conf/NOTES,v 1.1202 2005/07/02 20:06:42 delphij Exp $
+# $FreeBSD: src/sys/i386/conf/NOTES,v 1.1203 2005/07/20 16:57:53 mdodd Exp $
 #
 
 #
@@ -637,6 +637,9 @@
 #
 # apm: Laptop Advanced Power Management (experimental)
 # pmtimer: Timer device driver for power management events (APM or ACPI)
+# smapi: System Management Application Program Interface driver
+# smbios: DMI/SMBIOS entry point
+# vpd: Vital Product Data kernel interface
 # cy: Cyclades serial driver
 # digi: Digiboard driver
 # spic: Sony Programmable I/O controller (VAIO notebooks)
@@ -665,6 +668,9 @@
 
 device		apm
 hint.apm.0.flags="0x20"
+device		smapi
+device		smbios
+device		vpd
 device		pmtimer			# Adjust system timer at wakeup time
 device		cy
 options 	CY_PCI_FASTINTR		# Use with cy_pci unless irq is shared

==== //depot/projects/netsmp/src/sys/kern/vfs_aio.c#2 (text+ko) ====

@@ -19,7 +19,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/vfs_aio.c,v 1.195 2005/07/01 16:28:30 ssouhlal Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/vfs_aio.c,v 1.196 2005/07/20 19:06:06 alc Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -2107,6 +2107,7 @@
 	struct aio_liojob *lj;
 
 	mtx_lock(&Giant);
+	bp->b_flags |= B_DONE;
 	wakeup(bp);
 
 	aiocbe = (struct aiocblist *)bp->b_caller1;

==== //depot/projects/netsmp/src/sys/kern/vfs_bio.c#2 (text+ko) ====

@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/vfs_bio.c,v 1.491 2005/06/14 20:32:27 jeff Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/vfs_bio.c,v 1.492 2005/07/20 19:06:06 alc Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -3046,7 +3046,6 @@
 	if (bp->b_iodone != NULL) {
 		biodone = bp->b_iodone;
 		bp->b_iodone = NULL;
-		bp->b_flags |= B_DONE;
 		(*biodone) (bp);
 		if (dropobj)
 			bufobj_wdrop(dropobj);

==== //depot/projects/netsmp/src/sys/kern/vfs_subr.c#2 (text+ko) ====

@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/vfs_subr.c,v 1.635 2005/07/05 15:57:55 pjd Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/vfs_subr.c,v 1.636 2005/07/20 01:43:27 jeff Exp $");
 
 #include "opt_ddb.h"
 #include "opt_mac.h"
@@ -582,7 +582,7 @@
 		}
 		MNT_IUNLOCK(mp);
 		vholdl(vp);
-		if (VOP_LOCK(vp, LK_INTERLOCK|LK_EXCLUSIVE|LK_NOWAIT, td)) {
+		if (VOP_LOCK(vp, LK_INTERLOCK|LK_EXCLUSIVE, td)) {
 			vdrop(vp);
 			MNT_ILOCK(mp);
 			continue;
@@ -680,11 +680,19 @@
 		done = 0;
 		mtx_lock(&mountlist_mtx);
 		for (mp = TAILQ_FIRST(&mountlist); mp != NULL; mp = nmp) {
+			int vfsunlocked;
 			if (vfs_busy(mp, LK_NOWAIT, &mountlist_mtx, td)) {
 				nmp = TAILQ_NEXT(mp, mnt_list);
 				continue;
 			}
+			if (!VFS_NEEDSGIANT(mp)) {
+				mtx_unlock(&Giant);
+				vfsunlocked = 1;
+			} else
+				vfsunlocked = 0;
 			done += vlrureclaim(mp);
+			if (vfsunlocked)
+				mtx_lock(&Giant);
 			mtx_lock(&mountlist_mtx);
 			nmp = TAILQ_NEXT(mp, mnt_list);
 			vfs_unbusy(mp, td);
@@ -700,7 +708,8 @@
 #endif
 			vnlru_nowhere++;
 			tsleep(vnlruproc, PPAUSE, "vlrup", hz * 3);
-		}
+		} else 
+			uio_yield();
 	}
 }
 

==== //depot/projects/netsmp/src/sys/net/if_bridge.c#2 (text+ko) ====

@@ -80,7 +80,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/net/if_bridge.c,v 1.12 2005/07/13 20:40:18 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/net/if_bridge.c,v 1.13 2005/07/20 19:42:51 thompsa Exp $");
 
 #include "opt_inet.h"
 #include "opt_inet6.h"
@@ -676,6 +676,7 @@
 
 	switch (ifs->if_type) {
 	case IFT_ETHER:
+	case IFT_L2VLAN:
 		/*
 		 * Take the interface out of promiscuous mode.
 		 */

==== //depot/projects/netsmp/src/sys/netinet/icmp6.h#2 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/netinet/icmp6.h,v 1.16 2005/01/07 01:45:44 imp Exp $	*/
+/*	$FreeBSD: src/sys/netinet/icmp6.h,v 1.18 2005/07/20 09:17:41 ume Exp $	*/
 /*	$KAME: icmp6.h,v 1.46 2001/04/27 15:09:48 itojun Exp $	*/
 
 /*-
@@ -97,6 +97,7 @@
 #define MLD_LISTENER_QUERY		130 	/* multicast listener query */
 #define MLD_LISTENER_REPORT		131	/* multicast listener report */
 #define MLD_LISTENER_DONE		132	/* multicast listener done */
+#define MLD_LISTENER_REDUCTION MLD_LISTENER_DONE /* RFC3542 definition */
 
 /* RFC2292 decls */
 #define ICMP6_MEMBERSHIP_QUERY		130	/* group membership query */
@@ -111,9 +112,9 @@
 #endif
 
 #define ND_ROUTER_SOLICIT		133	/* router solicitation */
-#define ND_ROUTER_ADVERT		134	/* router advertisment */
+#define ND_ROUTER_ADVERT		134	/* router advertisement */
 #define ND_NEIGHBOR_SOLICIT		135	/* neighbor solicitation */
-#define ND_NEIGHBOR_ADVERT		136	/* neighbor advertisment */
+#define ND_NEIGHBOR_ADVERT		136	/* neighbor advertisement */
 #define ND_REDIRECT			137	/* redirect */
 
 #define ICMP6_ROUTER_RENUMBERING	138	/* router renumbering */

==== //depot/projects/netsmp/src/sys/netinet/ip6.h#2 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/netinet/ip6.h,v 1.13 2005/01/07 01:45:44 imp Exp $	*/
+/*	$FreeBSD: src/sys/netinet/ip6.h,v 1.15 2005/07/20 10:30:52 ume Exp $	*/
 /*	$KAME: ip6.h,v 1.18 2001/03/29 05:34:30 itojun Exp $	*/
 
 /*-
@@ -142,7 +142,7 @@
 #ifndef _KERNEL
 #define IP6OPT_RTALERT		0x05	/* 00 0 00101 (KAME definition) */
 #endif
-#define IP6OPT_ROUTER_ALERT	0x05	/* 00 0 00101 (2292bis, recommended) */
+#define IP6OPT_ROUTER_ALERT	0x05	/* 00 0 00101 (RFC3542, recommended) */
 
 #define IP6OPT_RTALERT_LEN	4
 #define IP6OPT_RTALERT_MLD	0	/* Datagram contains an MLD message */
@@ -160,8 +160,56 @@
 
 #define IP6OPT_MUTABLE		0x20
 
+/* IPv6 options: common part */
+struct ip6_opt {
+	u_int8_t ip6o_type;
+	u_int8_t ip6o_len;
+} __packed;
+
+/* Jumbo Payload Option */
+struct ip6_opt_jumbo {
+	u_int8_t ip6oj_type;
+	u_int8_t ip6oj_len;
+	u_int8_t ip6oj_jumbo_len[4];
+} __packed;
 #define IP6OPT_JUMBO_LEN	6
 
+/* NSAP Address Option */
+struct ip6_opt_nsap {
+	u_int8_t ip6on_type;
+	u_int8_t ip6on_len;
+	u_int8_t ip6on_src_nsap_len;
+	u_int8_t ip6on_dst_nsap_len;
+	/* followed by source NSAP */
+	/* followed by destination NSAP */
+} __packed;
+
+/* Tunnel Limit Option */
+struct ip6_opt_tunnel {
+	u_int8_t ip6ot_type;
+	u_int8_t ip6ot_len;
+	u_int8_t ip6ot_encap_limit;
+} __packed;
+
+/* Router Alert Option */
+struct ip6_opt_router {
+	u_int8_t ip6or_type;
+	u_int8_t ip6or_len;
+	u_int8_t ip6or_value[2];
+} __packed;
+/* Router alert values (in network byte order) */
+#if BYTE_ORDER == BIG_ENDIAN
+#define IP6_ALERT_MLD	0x0000
+#define IP6_ALERT_RSVP	0x0001
+#define IP6_ALERT_AN	0x0002
+#else
+#if BYTE_ORDER == LITTLE_ENDIAN
+#define IP6_ALERT_MLD	0x0000
+#define IP6_ALERT_RSVP	0x0100
+#define IP6_ALERT_AN	0x0200
+#endif /* LITTLE_ENDIAN */
+#endif
+
 /* Routing header */
 struct ip6_rthdr {
 	u_int8_t  ip6r_nxt;	/* next header */
@@ -202,10 +250,10 @@
 /*
  * Internet implementation parameters.
  */
-#define IPV6_MAXHLIM	255	/* maximun hoplimit */
+#define IPV6_MAXHLIM	255	/* maximum hoplimit */
 #define IPV6_DEFHLIM	64	/* default hlim */
 #define IPV6_FRAGTTL	120	/* ttl for fragment packets, in slowtimo tick */
-#define IPV6_HLIMDEC	1	/* subtracted when forwaeding */
+#define IPV6_HLIMDEC	1	/* subtracted when forwarding */
 
 #define IPV6_MMTU	1280	/* minimal MTU and reassembly. 1024 + 256 */
 #define IPV6_MAXPACKET	65535	/* ip6 max packet size without Jumbo payload*/

==== //depot/projects/netsmp/src/sys/netinet6/in6.h#2 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/netinet6/in6.h,v 1.36 2005/01/07 02:30:34 imp Exp $	*/
+/*	$FreeBSD: src/sys/netinet6/in6.h,v 1.37 2005/07/20 08:59:44 ume Exp $	*/
 /*	$KAME: in6.h,v 1.89 2001/05/27 13:28:35 itojun Exp $	*/
 
 /*-
@@ -450,7 +450,7 @@
 #define IPV6_FW_GET		34 /* get entire firewall rule chain */
 #endif
 
-/* new socket options introduced in RFC2292bis */
+/* new socket options introduced in RFC3542 */
 #define IPV6_RTHDRDSTOPTS	35 /* ip6_dest; send dst option before rthdr */
 
 #define IPV6_RECVPKTINFO	36 /* bool; recv if, dst addr */
@@ -472,7 +472,7 @@
 				      (cmsg only/not in of RFC3542) */
 #endif
 
-/* more new socket options introduced in RFC2292bis */
+/* more new socket options introduced in RFC3542 */
 #define IPV6_PKTINFO		46 /* in6_pktinfo; send if, src addr */
 #define IPV6_HOPLIMIT		47 /* int; send hop limit */
 #define IPV6_NEXTHOP		48 /* sockaddr; next hop addr */
@@ -481,7 +481,7 @@
 #define IPV6_RTHDR		51 /* ip6_rthdr; send routing header */
 #if 0
 #define IPV6_PKTOPTIONS		52 /* buf/cmsghdr; set/get IPv6 options */
-				   /* obsoleted by 2292bis */
+				   /* obsoleted by RFC3542 */
 #endif
 
 #define IPV6_RECVTCLASS		57 /* bool; recv traffic class values */

==== //depot/projects/netsmp/src/sys/netinet6/ip6_input.c#2 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/netinet6/ip6_input.c,v 1.81 2005/03/16 05:11:11 sam Exp $	*/
+/*	$FreeBSD: src/sys/netinet6/ip6_input.c,v 1.82 2005/07/20 08:59:44 ume Exp $	*/
 /*	$KAME: ip6_input.c,v 1.259 2002/01/21 04:58:09 jinmei Exp $	*/
 
 /*-
@@ -1213,7 +1213,7 @@
 			 * jumbo payload option is included, the option which
 			 * is to be removed before returning according to
 			 * RFC2292.
-			 * Note: this constraint is removed in 2292bis.
+			 * Note: this constraint is removed in RFC3542
 			 */
 			*mp = sbcreatecontrol((caddr_t)hbh, hbhlen,
 			    IS2292(IPV6_2292HOPOPTS, IPV6_HOPOPTS),

==== //depot/projects/netsmp/src/sys/netinet6/ip6_mroute.h#2 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/netinet6/ip6_mroute.h,v 1.6 2005/01/07 02:30:34 imp Exp $	*/
+/*	$FreeBSD: src/sys/netinet6/ip6_mroute.h,v 1.7 2005/07/20 08:59:45 ume Exp $	*/
 /*	$KAME: ip6_mroute.h,v 1.19 2001/06/14 06:12:55 suz Exp $	*/
 
 /*-
@@ -166,7 +166,7 @@
  * like igmpmsg{} used for IPv4 implementation). This is because this
  * structure will be passed via an IPv6 raw socket, on which an application
  * will only receive the payload i.e. the data after the IPv6 header and all
- * the extension headers. (see Section 3 of draft-ietf-ipngwg-2292bis-01)
+ * the extension headers. (see Section 3 of RFC3542)
  */
 struct mrt6msg {
 #define MRT6MSG_NOCACHE		1

==== //depot/projects/netsmp/src/sys/netinet6/ip6_output.c#2 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/netinet6/ip6_output.c,v 1.90 2005/06/10 16:49:22 brooks Exp $	*/
+/*	$FreeBSD: src/sys/netinet6/ip6_output.c,v 1.91 2005/07/20 08:59:45 ume Exp $	*/
 /*	$KAME: ip6_output.c,v 1.279 2002/01/26 06:12:30 jinmei Exp $	*/
 
 /*-
@@ -1701,7 +1701,7 @@
 					/*
 					 * We ignore this option for TCP
 					 * sockets.
-					 * (rfc2292bis leaves this case
+					 * (RFC3542 leaves this case
 					 * unspecified.)
 					 */
 					if (uproto != IPPROTO_TCP)
@@ -1810,7 +1810,7 @@
 			case IPV6_RTHDRDSTOPTS:
 			case IPV6_NEXTHOP:
 			{
-				/* new advanced API (2292bis) */
+				/* new advanced API (RFC3542) */
 				u_char *optbuf;
 				int optlen;
 				struct ip6_pktopts **optp;
@@ -2269,9 +2269,9 @@
 		 * For ICMPv6 sockets, no modification allowed for checksum
 		 * offset, permit "no change" values to help existing apps.
 		 *
-		 * XXX 2292bis says: "An attempt to set IPV6_CHECKSUM
+		 * RFC3542 says: "An attempt to set IPV6_CHECKSUM
 		 * for an ICMPv6 socket will fail."
-		 * The current behavior does not meet 2292bis.
+		 * The current behavior does not meet RFC3542.
 		 */
 		switch (op) {
 		case SOPT_SET:
@@ -3060,8 +3060,8 @@
  * item.  "len" can be 0 only when it's a sticky option.
  * We have 4 cases of combination of "sticky" and "cmsg":
  * "sticky=0, cmsg=0": impossible
- * "sticky=0, cmsg=1": RFC2292 or rfc2292bis ancillary data
- * "sticky=1, cmsg=0": rfc2292bis socket option
+ * "sticky=0, cmsg=1": RFC2292 or RFC3542 ancillary data
+ * "sticky=1, cmsg=0": RFC3542 socket option
  * "sticky=1, cmsg=1": RFC2292 socket option
  */
 static int
@@ -3081,8 +3081,8 @@
 
 	/*
 	 * IPV6_2292xxx is for backward compatibility to RFC2292, and should
-	 * not be specified in the context of rfc2292bis.  Conversely,
-	 * rfc2292bis types should not be specified in the context of RFC2292.
+	 * not be specified in the context of RFC3542.  Conversely,
+	 * RFC3542 types should not be specified in the context of RFC2292.
 	 */
 	if (!cmsg) {
 		switch (optname) {
@@ -3108,7 +3108,7 @@
 		case IPV6_USE_MIN_MTU:
 		case IPV6_DONTFRAG:
 		case IPV6_TCLASS:
-		case IPV6_PREFER_TEMPADDR: /* XXX: not an rfc2292bis option */
+		case IPV6_PREFER_TEMPADDR: /* XXX: not an RFC3542 option */
 			return (ENOPROTOOPT);
 		}
 	}
@@ -3339,7 +3339,7 @@
 			 * part of the destination options header must appear
 			 * before the routing header in the ancillary data,
 			 * too.
-			 * RFC2292bis solved the ambiguity by introducing
+			 * RFC3542 solved the ambiguity by introducing
 			 * separate ancillary data or option types.
 			 */
 			if (opt->ip6po_rthdr == NULL)
@@ -3428,7 +3428,7 @@
 		if (uproto == IPPROTO_TCP || *(int *)buf == 0) {
 			/*
 			 * we ignore this option for TCP sockets.
-			 * (rfc2292bis leaves this case unspecified.)
+			 * (RFC3542 leaves this case unspecified.)
 			 */
 			opt->ip6po_flags &= ~IP6PO_DONTFRAG;
 		} else

==== //depot/projects/netsmp/src/sys/netinet6/nd6.c#2 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/netinet6/nd6.c,v 1.48 2005/02/22 13:04:04 glebius Exp $	*/
+/*	$FreeBSD: src/sys/netinet6/nd6.c,v 1.49 2005/07/20 20:02:28 ume Exp $	*/
 /*	$KAME: nd6.c,v 1.144 2001/05/24 07:44:00 itojun Exp $	*/
 
 /*-
@@ -54,7 +54,6 @@
 #include <net/if_arc.h>
 #include <net/if_dl.h>
 #include <net/if_types.h>
-#include <net/if_atm.h>
 #include <net/iso88025.h>
 #include <net/fddi.h>
 #include <net/route.h>
@@ -203,23 +202,9 @@
 	case IFT_ARCNET:
 		ndi->maxmtu = MIN(ARC_PHDS_MAXMTU, ifp->if_mtu); /* RFC2497 */
 		break;
-	case IFT_ETHER:
-		ndi->maxmtu = MIN(ETHERMTU, ifp->if_mtu);
-		break;
 	case IFT_FDDI:
 		ndi->maxmtu = MIN(FDDIIPMTU, ifp->if_mtu); /* RFC2467 */
 		break;
-	case IFT_ATM:
-		ndi->maxmtu = MIN(ATMMTU, ifp->if_mtu);
-		break;
-	case IFT_IEEE1394:	/* XXX should be IEEE1394MTU(1500) */
-		ndi->maxmtu = MIN(ETHERMTU, ifp->if_mtu);
-		break;
-#ifdef IFT_IEEE80211
-	case IFT_IEEE80211:	/* XXX should be IEEE80211MTU(1500) */
-		ndi->maxmtu = MIN(ETHERMTU, ifp->if_mtu);
-		break;
-#endif
 	 case IFT_ISO88025:
 		 ndi->maxmtu = MIN(ISO88025_MAX_MTU, ifp->if_mtu);
 		 break;

==== //depot/projects/netsmp/src/sys/nfsclient/nfs.h#2 (text+ko) ====

@@ -30,7 +30,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)nfs.h	8.4 (Berkeley) 5/1/95
- * $FreeBSD: src/sys/nfsclient/nfs.h,v 1.90 2005/01/24 12:31:06 phk Exp $
+ * $FreeBSD: src/sys/nfsclient/nfs.h,v 1.91 2005/07/19 21:27:25 ps Exp $
  */
 
 #ifndef _NFSCLIENT_NFS_H_
@@ -194,6 +194,7 @@
 #define	R_TPRINTFMSG	0x20		/* Did a tprintf msg. */
 #define	R_MUSTRESEND	0x40		/* Must resend request */
 #define	R_GETONEREP	0x80		/* Probe for one reply only */
+#define	R_REXMIT_INPROG	0x100		/* Re-transmit in progress */
 
 /*
  * Pointers to ops that differ from v3 to v4

==== //depot/projects/netsmp/src/sys/nfsclient/nfs_socket.c#2 (text+ko) ====

@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/nfsclient/nfs_socket.c,v 1.127 2005/07/18 02:12:17 ps Exp $");
+__FBSDID("$FreeBSD: src/sys/nfsclient/nfs_socket.c,v 1.128 2005/07/19 21:27:25 ps Exp $");
 
 /*
  * Socket operations for use by nfs
@@ -1032,6 +1032,17 @@
 	 */
 	s = splsoftclock();
 	mtx_lock(&nfs_reqq_mtx);
+	/*
+	 * nfs_timer() may be in the process of re-transmitting this request.
+	 * nfs_timer() drops the nfs_reqq_mtx before the pru_send() (to avoid LORs).
+	 * Wait till nfs_timer() completes the re-transmission. When the reply 
+	 * comes back, it will be discarded (since the req struct for it no longer 
+	 * exists).
+	 */
+	while (rep->r_flags & R_REXMIT_INPROG) {
+		msleep((caddr_t)&rep->r_flags, &nfs_reqq_mtx, 
+		       (PZERO - 1), "nfsrxmt", 0);
+	}
 	TAILQ_REMOVE(&nfs_reqq, rep, r_chain);
 	if (TAILQ_EMPTY(&nfs_reqq))
 		callout_stop(&nfs_callout);
@@ -1152,19 +1163,11 @@
  * To avoid retransmission attempts on STREAM sockets (in the future) make
  * sure to set the r_retry field to 0 (implies nm_retry == 0).
  * 
- * XXX - 
- * For now, since we don't register MPSAFE callouts for the NFS client -
- * softclock() acquires Giant before calling us. That prevents req entries
- * from being removed from the list (from nfs_request()). But we still 
- * acquire the nfs reqq mutex to make sure the state of individual req
- * entries is not modified from RPC reply handling (from socket callback)
- * while nfs_timer is walking the list of reqs.
  * The nfs reqq lock cannot be held while we do the pru_send() because of a
  * lock ordering violation. The NFS client socket callback acquires 
  * inp_lock->nfsreq mutex and pru_send acquires inp_lock. So we drop the 
- * reqq mutex (and reacquire it after the pru_send()). This won't work
- * when we move to fine grained locking for NFS. When we get to that point, 
- * a rewrite of nfs_timer() will be needed.
+ * reqq mutex (and reacquire it after the pru_send()). The req structure
+ * (for the rexmit) is prevented from being removed by the R_REXMIT_INPROG flag.
  */
 void
 nfs_timer(void *arg)
@@ -1245,7 +1248,12 @@
 		   ((nmp->nm_flag & NFSMNT_DUMBTIMR) ||
 		    (rep->r_flags & R_SENT) ||
 		    nmp->nm_sent < nmp->nm_cwnd) &&
-		   (m = m_copym(rep->r_mreq, 0, M_COPYALL, M_DONTWAIT))){
+		   (m = m_copym(rep->r_mreq, 0, M_COPYALL, M_DONTWAIT))) {
+			/*
+			 * Mark the request to indicate that a XMIT is in progress
+			 * to prevent the req structure being removed in nfs_request().
+			 */
+			rep->r_flags |= R_REXMIT_INPROG;
 			mtx_unlock(&nfs_reqq_mtx);
 			if ((nmp->nm_flag & NFSMNT_NOCONN) == 0)
 			    error = (*so->so_proto->pr_usrreqs->pru_send)
@@ -1254,6 +1262,8 @@
 			    error = (*so->so_proto->pr_usrreqs->pru_send)
 				    (so, 0, m, nmp->nm_nam, NULL, curthread);
 			mtx_lock(&nfs_reqq_mtx);
+			rep->r_flags &= ~R_REXMIT_INPROG;
+			wakeup((caddr_t)&rep->r_flags);
 			if (error) {
 				if (NFSIGNORE_SOERROR(nmp->nm_soflags, error))
 					so->so_error = 0;

==== //depot/projects/netsmp/src/sys/nfsclient/nfs_subs.c#2 (text+ko) ====

@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/nfsclient/nfs_subs.c,v 1.140 2005/03/13 12:14:56 jeff Exp $");
+__FBSDID("$FreeBSD: src/sys/nfsclient/nfs_subs.c,v 1.141 2005/07/19 21:27:25 ps Exp $");
 
 /*
  * These functions support the macros and help fiddle mbuf chains for
@@ -413,7 +413,7 @@
 	 * Initialize reply list and start timer
 	 */
 	TAILQ_INIT(&nfs_reqq);
-	callout_init(&nfs_callout, 0);
+	callout_init(&nfs_callout, CALLOUT_MPSAFE);
 	mtx_init(&nfs_reqq_mtx, "NFS reqq lock", NULL, MTX_DEF);
 	mtx_init(&nfs_reply_mtx, "Synch NFS reply posting", NULL, MTX_DEF);
 

==== //depot/projects/netsmp/src/sys/ufs/ffs/ffs_vfsops.c#2 (text+ko) ====

@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/ufs/ffs/ffs_vfsops.c,v 1.290 2005/05/30 07:04:15 jeff Exp $");
+__FBSDID("$FreeBSD: src/sys/ufs/ffs/ffs_vfsops.c,v 1.291 2005/07/20 19:06:06 alc Exp $");
 
 #include "opt_mac.h"
 #include "opt_quota.h"
@@ -1534,7 +1534,7 @@
 	 * by biodone it will be tossed.
 	 */
 	bp->b_flags |= B_NOCACHE;
-	bp->b_flags &= ~(B_CACHE | B_DONE);
+	bp->b_flags &= ~B_CACHE;
 	bufdone(bp);
 	BO_LOCK(bufobj);
 	/*

==== //depot/projects/netsmp/src/sys/vm/swap_pager.c#2 (text+ko) ====

@@ -67,7 +67,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/vm/swap_pager.c,v 1.273 2005/05/20 21:26:05 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/vm/swap_pager.c,v 1.274 2005/07/20 19:06:06 alc Exp $");
 
 #include "opt_mac.h"
 #include "opt_swap.h"
@@ -1363,8 +1363,6 @@
 	int i;
 	vm_object_t object = NULL;
 
-	bp->b_flags |= B_DONE;
-
 	/*
 	 * report error
 	 */

==== //depot/projects/netsmp/src/sys/vm/uma_core.c#2 (text+ko) ====

@@ -48,7 +48,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/vm/uma_core.c,v 1.127 2005/07/16 11:03:06 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/vm/uma_core.c,v 1.128 2005/07/20 18:47:42 rwatson Exp $");
 
 /* I should really use ktr.. */
 /*
@@ -197,6 +197,7 @@
 enum zfreeskip { SKIP_NONE, SKIP_DTOR, SKIP_FINI };
 
 #define	ZFREE_STATFAIL	0x00000001	/* Update zone failure statistic. */
+#define	ZFREE_STATFREE	0x00000002	/* Update zone free statistic. */
 
 /* Prototypes.. */
 
@@ -349,7 +350,8 @@
 	struct uma_bucket_zone *ubz;
 
 	ubz = bucket_zone_lookup(bucket->ub_entries);
-	uma_zfree_internal(ubz->ubz_zone, bucket, NULL, SKIP_NONE, 0);
+	uma_zfree_internal(ubz->ubz_zone, bucket, NULL, SKIP_NONE,
+	    ZFREE_STATFREE);
 }
 
 static void
@@ -540,7 +542,7 @@
 		return;
 	if (hash->uh_hashsize == UMA_HASH_SIZE_INIT)
 		uma_zfree_internal(hashzone,
-		    hash->uh_slab_hash, NULL, SKIP_NONE, 0);
+		    hash->uh_slab_hash, NULL, SKIP_NONE, ZFREE_STATFREE);
 	else
 		free(hash->uh_slab_hash, M_UMAHASH);
 }
@@ -756,7 +758,7 @@
 		}
 		if (keg->uk_flags & UMA_ZONE_OFFPAGE)
 			uma_zfree_internal(keg->uk_slabzone, slab, NULL,
-			    SKIP_NONE, 0);
+			    SKIP_NONE, ZFREE_STATFREE);
 #ifdef UMA_DEBUG
 		printf("%s: Returning %d bytes.\n",
 		    zone->uz_name, UMA_SLAB_SIZE * keg->uk_ppera);
@@ -819,7 +821,7 @@
 	if (mem == NULL) {
 		if (keg->uk_flags & UMA_ZONE_OFFPAGE)
 			uma_zfree_internal(keg->uk_slabzone, slab, NULL,
-			    SKIP_NONE, 0);
+			    SKIP_NONE, ZFREE_STATFREE);
 		ZONE_LOCK(zone);
 		return (NULL);
 	}
@@ -876,7 +878,7 @@
 			}
 			if (keg->uk_flags & UMA_ZONE_OFFPAGE)
 				uma_zfree_internal(keg->uk_slabzone, slab,
-				    NULL, SKIP_NONE, 0);
+				    NULL, SKIP_NONE, ZFREE_STATFREE);
 			keg->uk_freef(mem, UMA_SLAB_SIZE * keg->uk_ppera,
 			    flags);
 			ZONE_LOCK(zone);
@@ -1467,7 +1469,8 @@
 		LIST_REMOVE(keg, uk_link);
 		LIST_REMOVE(zone, uz_link);
 		mtx_unlock(&uma_mtx);
-		uma_zfree_internal(kegs, keg, NULL, SKIP_NONE, 0);
+		uma_zfree_internal(kegs, keg, NULL, SKIP_NONE,
+		    ZFREE_STATFREE);
 	}
 	zone->uz_keg = NULL;
 }
@@ -1771,7 +1774,8 @@
 void
 uma_zdestroy(uma_zone_t zone)
 {
-	uma_zfree_internal(zones, zone, NULL, SKIP_NONE, 0);
+
+	uma_zfree_internal(zones, zone, NULL, SKIP_NONE, ZFREE_STATFREE);
 }
 
 /* See uma.h */
@@ -1855,7 +1859,8 @@
 				if (zone->uz_ctor(item, zone->uz_keg->uk_size,
 				    udata, flags) != 0) {
 					uma_zfree_internal(zone, item, udata,
-					    SKIP_DTOR, ZFREE_STATFAIL);
+					    SKIP_DTOR, ZFREE_STATFAIL |
+					    ZFREE_STATFREE);
 					return (NULL);
 				}
 			}
@@ -2235,14 +2240,14 @@
 	if (zone->uz_init != NULL) {
 		if (zone->uz_init(item, keg->uk_size, flags) != 0) {
 			uma_zfree_internal(zone, item, udata, SKIP_FINI,
-			    ZFREE_STATFAIL);
+			    ZFREE_STATFAIL | ZFREE_STATFREE);
 			return (NULL);
 		}
 	}
 	if (zone->uz_ctor != NULL) {
 		if (zone->uz_ctor(item, keg->uk_size, udata, flags) != 0) {
 			uma_zfree_internal(zone, item, udata, SKIP_DTOR,
-			    ZFREE_STATFAIL);
+			    ZFREE_STATFAIL | ZFREE_STATFREE);
 			return (NULL);
 		}
 	}
@@ -2369,6 +2374,12 @@
 		}
 	}
 
+	/* Since we have locked the zone we may as well send back our stats */
+	zone->uz_allocs += cache->uc_allocs;
+	cache->uc_allocs = 0;
+	zone->uz_frees += cache->uc_frees;
+	cache->uc_frees = 0;
+
 	bucket = cache->uc_freebucket;
 	cache->uc_freebucket = NULL;
 
@@ -2415,7 +2426,8 @@
 	 * If nothing else caught this, we'll just do an internal free.
 	 */
 zfree_internal:
-	uma_zfree_internal(zone, item, udata, SKIP_DTOR, ZFREE_STATFAIL);
+	uma_zfree_internal(zone, item, udata, SKIP_DTOR, ZFREE_STATFAIL |
+	    ZFREE_STATFREE);
 
 	return;
 }
@@ -2450,6 +2462,8 @@
 
 	if (flags & ZFREE_STATFAIL)
 		zone->uz_fails++;
+	if (flags & ZFREE_STATFREE)
+		zone->uz_frees++;
 

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

From owner-p4-projects@FreeBSD.ORG  Wed Jul 20 20:29:31 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 5F9A716A421; Wed, 20 Jul 2005 20:29:31 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 2053316A41F
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 20:29:31 +0000 (GMT)
	(envelope-from soc-victor@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id A981643D46
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 20:29:30 +0000 (GMT)
	(envelope-from soc-victor@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6KKTU3Q003088
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 20:29:30 GMT
	(envelope-from soc-victor@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6KKTU0G003085
	for perforce@freebsd.org; Wed, 20 Jul 2005 20:29:30 GMT
	(envelope-from soc-victor@freebsd.org)
Date: Wed, 20 Jul 2005 20:29:30 GMT
Message-Id: <200507202029.j6KKTU0G003085@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-victor@freebsd.org using -f
From: soc-victor <soc-victor@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80629 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jul 2005 20:29:32 -0000

http://perforce.freebsd.org/chv.cgi?CH=80629

Change 80629 by soc-victor@soc-victor_82.76.158.176 on 2005/07/20 20:29:18

	Added the implementation for both hrSWRunTable and hrSWRunPerfTable (which AUGMENTS hrSWRunTable ).
	Both tables need some performance improvements;  also hrSWRunTable needs SNMP SET support.

Affected files ...

.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile#8 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_scalars.c#6 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.c#8 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.h#10 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_swrun_tbl.c#1 add
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_swrunperf_tbl.c#1 add

Differences ...

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile#8 (text+ko) ====

@@ -7,7 +7,8 @@
 
 MOD=	hostres
 SRCS=	hostres_snmp.c hostres_scalars.c \
-	hostres_storage_tbl.c hostres_fs_tbl.c
+	hostres_storage_tbl.c hostres_fs_tbl.c \
+	hostres_swrun_tbl.c hostres_swrunperf_tbl.c
 WARNS?=	6
 #Not having NDEBUG defined will enable assertions and a lot of output on stderr
 CFLAGS+=	-DNDEBUG

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_scalars.c#6 (text+ko) ====

@@ -487,7 +487,7 @@
 		return (-1); /*error*/
    	}
 	
-	if( kvm_getprocs(hrState_g.kd, KERN_PROC_PROC, 0, &proc_count) == NULL ) {
+	if( kvm_getprocs(hrState_g.kd, KERN_PROC_ALL, 0, &proc_count) == NULL ) {
 		syslog(LOG_ERR, "kvm_getprocs failed: %m ");
 		return (-1);/*error*/
 	}
@@ -569,3 +569,31 @@
         }
 	return (-1); /*error*/	
 }
+
+int op_hrSWRun(struct snmp_context *ctx __unused, 
+                struct snmp_value *value, 
+		u_int sub, 
+		u_int iidx __unused, 
+		enum snmp_op curr_op)
+{
+	
+
+        if(curr_op == SNMP_OP_GET) {
+		switch (value->var.subs[sub - 1]) {
+			case LEAF_hrSWOSIndex:
+				value->v.uint32 = hrState_g.hrSWOSIndex;
+				return (SNMP_ERR_NOERROR);
+			default:
+				assert(0);
+				return  (SNMP_ERR_NOSUCHNAME);
+			
+		}/*end switch*/	
+	} else if (curr_op == SNMP_OP_SET) {
+		return (SNMP_ERR_NOT_WRITEABLE);
+	} else {
+		assert(0);
+		return  (SNMP_ERR_GENERR);
+	}
+		
+}
+

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.c#8 (text+ko) ====

@@ -54,14 +54,18 @@
 struct hostres_state hrState_g;
 
 /*
-HOST RESOURCES mib module initialization hook.
-Returns 0 on success, < 0 on error
-*/
+ * HOST RESOURCES mib module initialization hook.
+ * Returns 0 on success, < 0 on error
+ */
 static
 int hostres_init(struct lmodule * mod, int argc __unused, char *argv[] __unused) {
+	
 
 	hostres_module = mod;
 	
+	/*
+	 * NOTE: order of these calls is important here!
+	 */			
 	hrState_g.utmp_fp = (FILE*)NULL;
 	hrState_g.kd      = (kvm_t*)NULL;  
 	hrState_g.kernel_boot = 0;
@@ -86,6 +90,7 @@
 		return (-1); /*error*/
 	}
 	
+	hrState_g.hrSWOSIndex = 0;
 
 	hrState_g.next_hrStorage_index  = 1;
 	
@@ -100,16 +105,21 @@
 	
 	TAILQ_INIT(&hrState_g.hr_fs_tbl);
 
+	TAILQ_INIT(&hrState_g.hr_swrun_tbl);
 
 	hrState_g.hr_storage_tick = 0;
 	hrState_g.hr_fs_tick = 0;
+	hrState_g.hr_swrun_tick = 0;
 
 	hrState_g.hrStorage_tbl_age = 0;		
 	hrState_g.hrFS_tbl_age = 0;		
+	hrState_g.hrSWRun_tbl_age = 0;		
+
 	
 	init_hrStorage_tbl_v();
 	init_hrFS_tbl_v();
-		
+	init_hrSWRun_tbl_v();
+			
         HR_DPRINTF((stderr, "[%s] done.\n", __func__));		
 
 	return (0);    
@@ -152,7 +162,18 @@
 
 	fini_hrStorage_tbl_v();
 	fini_hrFS_tbl_v();
-			
+	fini_hrSWRun_tbl_v();
+
+	hrState_g.hr_storage_tick = 0;
+	hrState_g.hr_fs_tick = 0;
+	hrState_g.hr_swrun_tick = 0;
+
+	hrState_g.hrStorage_tbl_age = 0;		
+	hrState_g.hrFS_tbl_age = 0;		
+	hrState_g.hrSWRun_tbl_age = 0;	
+	
+	hrState_g.hrSWOSIndex = 0;
+																							
 	if( host_registration_id > 0){
 		or_unregister(host_registration_id);
 	}	
@@ -175,6 +196,11 @@
 		HR_DPRINTF((stderr, "%s: hrFSTable needs refresh\n ", __func__));
 		refresh_hrFS_tbl_v();
 	}
+	if ( (time(NULL) - hrState_g.hrSWRun_tbl_age) > HR_SWRUN_TBL_REFRESH ) {
+		HR_DPRINTF((stderr, "%s: hrSWRunTable needs refresh\n ", __func__));
+		refresh_hrStorage_tbl_v();
+	}
+	
 
         HR_DPRINTF((stderr, "[%s] done.\n ", __func__));		
 }
@@ -307,35 +333,11 @@
 
 
 
-int op_hrSWRun(struct snmp_context *ctx __unused, 
-                struct snmp_value *value __unused, 
-		u_int sub __unused, 
-		u_int iidx __unused, 
-		enum snmp_op curr_op __unused)
-{
-	return  (SNMP_ERR_NOSUCHNAME);
-}
 
 
 
-int op_hrSWRunTable(struct snmp_context *ctx __unused, 
-                struct snmp_value *value __unused, 
-		u_int sub __unused, 
-		u_int iidx __unused, 
-		enum snmp_op curr_op __unused)
-{
-	return  (SNMP_ERR_NOSUCHNAME);
-}
 
 
-int op_hrSWRunPerfTable(struct snmp_context *ctx __unused, 
-                struct snmp_value *value __unused, 
-		u_int sub __unused, 
-		u_int iidx __unused, 
-		enum snmp_op curr_op __unused)
-{
-	return  (SNMP_ERR_NOSUCHNAME);
-}
 
 
 int op_hrSWInstalled(struct snmp_context *ctx __unused, 

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.h#10 (text+ko) ====

@@ -59,7 +59,7 @@
 
 
 /*
- * This structure is used to hold on SNMP table entry
+ * This structure is used to hold a SNMP table entry
  * for HOST-RESOURCES-MIB's hrStorageTable
  */
 
@@ -110,10 +110,14 @@
 	SNMP_FALSE= 2
 };
 
+/*
+ * This structure is used to hold a SNMP table entry
+ * for HOST-RESOURCES-MIB's hrFSTable
+ */
 struct hrFSTblEntry {
 	int32_t		index;
-	u_char		mountPoint[128];
-	u_char		remoteMountPoint[128];
+	u_char		mountPoint[128+11];
+	u_char		remoteMountPoint[128+1];
 	struct asn_oid	type;
 	int32_t		access;			/* enum hrFSAccess, see above */
 	int32_t		bootable;		/* enum snmpTCTruthValue, see above */
@@ -150,6 +154,44 @@
 STAILQ_HEAD(fs_map_list, FSNameMapEntry);
 
 
+enum SWRunType {
+	SRT_UNKNOWN		=	1,
+	SRT_OPERATING_SYSTEM	=	2,
+	SRT_DEVICE_DRIVER	=	3,
+	SRT_APPLICATION		=	4
+	
+};
+
+enum SWRunStatus {
+	SRS_RUNNING		=	1,
+	SRS_RUNNABLE		=	2,
+	SRS_NOT_RUNNABLE	=	3,
+	SRS_INVALID		=	4
+};
+
+/*
+ * This structure is used to hold a SNMP table entry
+ * for both hrSWRunTable and hrSWRunPerfTable because
+ * hrSWRunPerfTable AUGMENTS hrSWRunTable
+ */
+struct hrSWRunTblEntry {
+	int32_t		index;
+	u_char		name[64+1];
+	struct asn_oid	id;
+	u_char		path[128+1];
+	u_char		parameters[128+1];
+	int32_t		type;			/* one item from enum SWRunType, see above */
+	int32_t		status;			/* one item from enum SWRunStatus, see above */
+	int32_t		perfCPU;
+	int32_t		perfMemory;	
+#define HR_SWRUN_FOUND 0x001
+	uint32_t	flags;			/*not from the SNMP mib table, only to be used internally*/	
+	TAILQ_ENTRY(hrSWRunTblEntry) link;		
+};
+
+TAILQ_HEAD(swrun_tbl, hrSWRunTblEntry);
+
+
 struct hostres_state {
 	FILE		*utmp_fp;		/*file pointer to keep an open instance of utmp*/
 	kvm_t		*kd;			/*kernel descriptor*/
@@ -171,9 +213,9 @@
 	storage_tbl	hr_storage_tbl;		/*the head of the list with table's entries */
 	uint64_t 	hr_storage_tick;	/*last (agent) tick when hrStorageTable was updated */
 	struct kvm_swap *swap_devs;		/*for kvm_getswapinfo, malloc'd*/
-	size_t		swap_devs_len;		/*idem */ 
+	size_t		swap_devs_len;		/*item count for swap_devs */ 
 	struct statfs	*fs_buf;		/*for getfsstat, malloc'd*/
-	size_t		fs_buf_count;		/*idem*/	
+	size_t		fs_buf_count;		/*item count for fs_buf */	
 	struct vmtotal	mem_stats;
 	uint32_t 	next_hrStorage_index;	/*next int available for indexing the hrStorageTable*/
 	time_t		hrStorage_tbl_age; 
@@ -189,7 +231,17 @@
 	time_t		hrFS_tbl_age; 
 	uint64_t 	hr_fs_tick;		/*last (agent) tick when hrFSTable was updated */
 	
-	
+	/* 
+	 * next items are used for both hrSWRunTable and hrSWRunPerfTable
+	 */
+	struct 
+	swrun_tbl	hr_swrun_tbl;		/*the head of the list with hrSWRunTable's entries */
+
+	time_t		hrSWRun_tbl_age; 
+	uint64_t 	hr_swrun_tick;		/*last (agent) tick when hrSWRunTable and hrSWRunPerTable 
+						  were updated */
+	int32_t		hrSWOSIndex;		/* the value of the MIB objecy with the same name*/						  
+				
 };
 
 /*
@@ -267,6 +319,35 @@
  */
 void refresh_hrFS_tbl_v(void);
 
+/*
+ * Find an entry in hrSWRunTable (or hrSWRunPerfTable)  by its SNMP index
+ * Returns NULL if none found
+ */
+struct hrSWRunTblEntry *
+hrSWRunTblEntry_find_by_index(int32_t idx); 
+
+/*
+ * Init the things for both of hrSWRunTable an hrSWRunPerfTable
+ */
+void init_hrSWRun_tbl_v(void);
+
+/*
+ * Finalization routine for both of hrSWRunTable an hrSWRunPerfTable
+ * It destroys the lists and frees any allocated heap memory
+ */
+void fini_hrSWRun_tbl_v(void);
+
+/*
+ * Next macro represents the number of seconds
+ * between two consecutive queries to the OS for getting the new data
+ * for both of hrSWRunTable and hrSWRunPerfTable
+ */
+#define HR_SWRUN_TBL_REFRESH	3
+/*
+ * Refresh routine for both of hrSWRunTable and hrSWRunPerfTable
+ * Usable for polling the system for any changes.
+ */
+void refresh_hrSWRun_tbl_v(void);
 
 #endif /*__HOSTRES_SNMP_H_INCLUDED__ */
 

From owner-p4-projects@FreeBSD.ORG  Wed Jul 20 21:27:42 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 6EBAA16A421; Wed, 20 Jul 2005 21:27:42 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 48FB616A41F
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 21:27:42 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 06A7D43D46
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 21:27:42 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6KLRfub012604
	for <perforce@freebsd.org>; Wed, 20 Jul 2005 21:27:41 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6KLRfQ6012601
	for perforce@freebsd.org; Wed, 20 Jul 2005 21:27:41 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Wed, 20 Jul 2005 21:27:41 GMT
Message-Id: <200507202127.j6KLRfQ6012601@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson <rwatson@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80632 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jul 2005 21:27:43 -0000

http://perforce.freebsd.org/chv.cgi?CH=80632

Change 80632 by rwatson@rwatson_zoo on 2005/07/20 21:27:06

	While unsatisfactory from the perspective of addressing inter-layer
	and network layer locking for multicast address lists and data,
	acquire the link layer multicast address lock around network layer
	iteration of the link layer multicast address list.  This will
	change when I work on the network layer behavior.

Affected files ...

.. //depot/projects/netsmp/src/sys/netinet/in_var.h#4 edit
.. //depot/projects/netsmp/src/sys/netinet6/in6_var.h#3 edit

Differences ...

==== //depot/projects/netsmp/src/sys/netinet/in_var.h#4 (text+ko) ====

@@ -187,7 +187,7 @@
 do { \
 	struct ifmultiaddr *ifma; \
 \
-	IF_ADDR_LOCK_ASSERT(ifp); \
+	IF_ADDR_LOCK(ifp); \
 	TAILQ_FOREACH(ifma, &((ifp)->if_multiaddrs), ifma_link) { \
 		if (ifma->ifma_addr->sa_family == AF_INET \
 		    && ((struct sockaddr_in *)ifma->ifma_addr)->sin_addr.s_addr == \
@@ -195,6 +195,7 @@
 			break; \
 	} \
 	(inm) = ifma ? ifma->ifma_protospec : 0; \
+	IF_ADDR_UNLOCK(ifp); \
 } while(0)
 
 /*

==== //depot/projects/netsmp/src/sys/netinet6/in6_var.h#3 (text+ko) ====

@@ -545,7 +545,7 @@
 /* struct in6_multi *in6m; */					\
 do { \
 	struct ifmultiaddr *ifma; \
-	IF_ADDR_LOCK_ASSERT(ifp); \
+	IF_ADDR_LOCK(ifp); \
 	TAILQ_FOREACH(ifma, &(ifp)->if_multiaddrs, ifma_link) { \
 		if (ifma->ifma_addr->sa_family == AF_INET6 \
 		    && IN6_ARE_ADDR_EQUAL(&((struct sockaddr_in6 *)ifma->ifma_addr)->sin6_addr, \
@@ -553,6 +553,7 @@
 			break; \
 	} \
 	(in6m) = (struct in6_multi *)(ifma ? ifma->ifma_protospec : 0); \
+	IF_ADDR_UNLOCK(ifp); \
 } while(0)
 
 /*

From owner-p4-projects@FreeBSD.ORG  Thu Jul 21 12:40:36 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id AAC4A16A421; Thu, 21 Jul 2005 12:40:35 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 6AFB316A41F
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 12:40:35 +0000 (GMT)
	(envelope-from soc-andrew@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id A378F43D60
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 12:40:33 +0000 (GMT)
	(envelope-from soc-andrew@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6LCeXqf080108
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 12:40:33 GMT
	(envelope-from soc-andrew@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6LCeXmC080105
	for perforce@freebsd.org; Thu, 21 Jul 2005 12:40:33 GMT
	(envelope-from soc-andrew@freebsd.org)
Date: Thu, 21 Jul 2005 12:40:33 GMT
Message-Id: <200507211240.j6LCeXmC080105@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-andrew@freebsd.org using -f
From: soc-andrew <soc-andrew@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80667 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jul 2005 12:40:36 -0000

http://perforce.freebsd.org/chv.cgi?CH=80667

Change 80667 by soc-andrew@soc-andrew_serv on 2005/07/21 12:40:25

	Add a selector for what dists to install and install them

Affected files ...

.. //depot/projects/soc2005/bsdinstaller/src/contrib/bsdinstaller/backend/installer/flow.c#3 edit
.. //depot/projects/soc2005/bsdinstaller/src/contrib/bsdinstaller/lib/installer/functions.c#3 edit
.. //depot/projects/soc2005/bsdinstaller/src/contrib/bsdinstaller/lib/installer/functions.h#2 edit
.. //depot/projects/soc2005/bsdinstaller/src/usr.sbin/bsdinstaller/backend/extra_flow.c#1 add
.. //depot/projects/soc2005/bsdinstaller/src/usr.sbin/bsdinstaller/backend/extra_flow.h#1 add
.. //depot/projects/soc2005/bsdinstaller/src/usr.sbin/bsdinstaller/backend/fn_install_freebsd.c#4 edit

Differences ...

==== //depot/projects/soc2005/bsdinstaller/src/contrib/bsdinstaller/backend/installer/flow.c#3 (text+ko) ====

@@ -1163,7 +1163,7 @@
 	fn_create_subpartitions(a);
 	if (a->result) {
 		/* state = state_install_os; */
-		state = state_select_distros;
+		state = state_select_dists;
 	} else {
 		state = disk_get_formatted(storage_get_selected_disk(a->s)) ?
 		    state_select_disk : state_select_slice;
@@ -1200,7 +1200,7 @@
 	    "p", "special", "dfinstaller_install_os",
 
 	    "a", "ok", _("Begin Installing Files"), "", "",
-	    "a", "cancel", _("Return to Create Subpartitions"), "", "",
+	    "a", "cancel", _("Return to Select Distributions"), "", "",
 	    "p", "accelerator", "ESC",
 
 	    NULL
@@ -1210,7 +1210,8 @@
 		abort_backend();
 
 	if (strcmp(dfui_response_get_action_id(r), "cancel") == 0) {
-		state = state_create_subpartitions;
+		/* state = state_create_subpartitions; */
+		state = state_select_dists;
 	} else {
 		fn_install_os(a);
 		if (a->result)

==== //depot/projects/soc2005/bsdinstaller/src/contrib/bsdinstaller/lib/installer/functions.c#3 (text+ko) ====

@@ -75,6 +75,7 @@
 	a->tmp = NULL;
 	a->temp_files = NULL;
 	a->cmd_names = NULL;
+	a->dists = NULL;
 
 	asprintf(&filename, "%sinstall.log", def_tmp_dir);
 	a->log = fopen(filename, "w");
@@ -146,6 +147,9 @@
 		if (a->log != NULL) {
 			fclose(a->log);
 		}
+		if (a->dists != NULL) {
+			aura_dict_free(a->dists);
+		}
 		AURA_FREE(a, i_fn_args);
 	}
 }

==== //depot/projects/soc2005/bsdinstaller/src/contrib/bsdinstaller/lib/installer/functions.h#2 (text+ko) ====

@@ -64,6 +64,7 @@
 	int result;			/* result of function */
 	FILE *log;			/* file to log to */
 	struct aura_dict *temp_files;	/* names of files to delete on exit */
+	struct aura_dict *dists;	/* the dists to install */
 	struct config_vars *cmd_names;	/* names (and paths) of commands to use */
 	int booted_from_livecd;		/* system is running from livecd */
 	int upgrade_menu_toggle;	/* toggle the experimental upgrade option */

==== //depot/projects/soc2005/bsdinstaller/src/usr.sbin/bsdinstaller/backend/fn_install_freebsd.c#4 (text+ko) ====

@@ -161,6 +161,10 @@
 do_install(struct i_fn_args *a)
 {
 	char base[PATH_MAX];
+	/* This should be big enough as the largest dist name is ~9 */
+	char dist_name[32];
+	void *rv, *rk;
+	size_t rv_len, rk_len;
 	struct utsname name;
 	uname(&name);
 
@@ -169,7 +173,22 @@
 	i_log(a, "<<< Extracting distrubutions from %s", base);
 	dist_set_base(base);
 	dist_set_location("/mnt");
-	dist_extract(a->c, "base");
+
+	aura_dict_rewind(a->dists);
+	/*
+	 * Install the selected dists
+	 */
+	while (!aura_dict_eof(a->dists)) {
+		aura_dict_get_current_key(a->dists, &rk, &rk_len);
+		strlcpy(dist_name, rk, 32);
+		if (rk_len < 32)
+			dist_name[rk_len] = '\0';
+		
+		printf("+%s\n", dist_name);
+		dist_extract(a->c, dist_name);
+		aura_dict_next(a->dists);
+	}
+
 	i_log(a, ">>> Done");
 	return 1;
 }
@@ -352,12 +371,9 @@
 void
 fn_install_os(struct i_fn_args *a)
 {
-	i_log(a, "1111");
+	/* XXX Check the return value of these */
 	pre_install(a);
-	i_log(a, "2222");
 	do_install(a);
-	i_log(a, "3333");
 	post_install(a);
-	i_log(a, "4444");
 }
 

From owner-p4-projects@FreeBSD.ORG  Thu Jul 21 12:42:41 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id DC5A016A421; Thu, 21 Jul 2005 12:42:40 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 B5E1A16A420
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 12:42:40 +0000 (GMT)
	(envelope-from soc-andrew@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id E965743D72
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 12:42:36 +0000 (GMT)
	(envelope-from soc-andrew@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6LCgaZ4080215
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 12:42:36 GMT
	(envelope-from soc-andrew@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6LCgaiD080212
	for perforce@freebsd.org; Thu, 21 Jul 2005 12:42:36 GMT
	(envelope-from soc-andrew@freebsd.org)
Date: Thu, 21 Jul 2005 12:42:36 GMT
Message-Id: <200507211242.j6LCgaiD080212@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-andrew@freebsd.org using -f
From: soc-andrew <soc-andrew@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80668 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jul 2005 12:42:41 -0000

http://perforce.freebsd.org/chv.cgi?CH=80668

Change 80668 by soc-andrew@soc-andrew_serv on 2005/07/21 12:42:03

	Catchup with head

Affected files ...

.. //depot/projects/soc2005/bsdinstaller/src/usr.sbin/Makefile#3 integrate

Differences ...

==== //depot/projects/soc2005/bsdinstaller/src/usr.sbin/Makefile#3 (text+ko) ====

@@ -1,5 +1,5 @@
 #	From: @(#)Makefile	5.20 (Berkeley) 6/12/93
-# $FreeBSD: src/usr.sbin/Makefile,v 1.332 2005/06/06 03:58:02 sam Exp $
+# $FreeBSD: src/usr.sbin/Makefile,v 1.333 2005/07/20 22:53:57 marks Exp $
 
 # XXX MISSING:		mkproto
 SUBDIR=	ac \
@@ -153,6 +153,7 @@
 	sliplogin \
 	slstat \
 	smbmsg \
+	snapinfo \
 	${_spkrtest} \
 	spray \
 	${_sysinstall} \

From owner-p4-projects@FreeBSD.ORG  Thu Jul 21 18:48:28 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id D98CD16A442; Thu, 21 Jul 2005 18:48:26 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 8791F16A436
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 18:48:26 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 7A81E43DF1
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 18:48:16 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6LIm6xi010156
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 18:48:06 GMT
	(envelope-from soc-anders@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6LIm6Tm010153
	for perforce@freebsd.org; Thu, 21 Jul 2005 18:48:06 GMT
	(envelope-from soc-anders@freebsd.org)
Date: Thu, 21 Jul 2005 18:48:06 GMT
Message-Id: <200507211848.j6LIm6Tm010153@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-anders@freebsd.org using -f
From: soc-anders <soc-anders@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80690 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jul 2005 18:48:28 -0000

http://perforce.freebsd.org/chv.cgi?CH=80690

Change 80690 by soc-anders@soc-anders_gimli on 2005/07/21 18:48:03

	Migrated pim6stat to pim6.h

Affected files ...

.. //depot/projects/soc2005/ifcleanup/src/src/sys/netinet6/pim6_var.h#2 edit

Differences ...

==== //depot/projects/soc2005/ifcleanup/src/src/sys/netinet6/pim6_var.h#2 (text+ko) ====

@@ -41,28 +41,12 @@
  * Modified by Pavlin Ivanov Radoslavov, USC/ISI, May 1998
  */
 
-struct pim6stat {
-	u_quad_t pim6s_rcv_total;	/* total PIM messages received	*/
-	u_quad_t pim6s_rcv_tooshort;	/* received with too few bytes	*/
-	u_quad_t pim6s_rcv_badsum;	/* received with bad checksum	*/
-	u_quad_t pim6s_rcv_badversion;	/* received bad PIM version	*/
-	u_quad_t pim6s_rcv_registers;	/* received registers		*/
-	u_quad_t pim6s_rcv_badregisters; /* received invalid registers	*/
-	u_quad_t pim6s_snd_registers;	/* sent registers		*/
-};
-
 #if (defined(KERNEL)) || (defined(_KERNEL))
 extern struct pim6stat pim6stat;
 
 int pim6_input __P((struct mbuf **, int*, int));
 #endif /* KERNEL */
 
-/*
- * Names for PIM sysctl objects
- */
-#define PIM6CTL_STATS		1	/* statistics (read-only) */
-#define PIM6CTL_MAXID		2
-
 #define PIM6CTL_NAMES { \
 	{ 0, 0 }, \
 	{ 0, 0 }, \

From owner-p4-projects@FreeBSD.ORG  Thu Jul 21 18:48:34 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id C1F7816A42A; Thu, 21 Jul 2005 18:48:29 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 8AA3816A46C
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 18:48:27 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 6BD2343DF0
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 18:48:14 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6LIm6hM010150
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 18:48:06 GMT
	(envelope-from soc-anders@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6LIm6Te010147
	for perforce@freebsd.org; Thu, 21 Jul 2005 18:48:06 GMT
	(envelope-from soc-anders@freebsd.org)
Date: Thu, 21 Jul 2005 18:48:06 GMT
Message-Id: <200507211848.j6LIm6Te010147@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-anders@freebsd.org using -f
From: soc-anders <soc-anders@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80689 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jul 2005 18:48:34 -0000

http://perforce.freebsd.org/chv.cgi?CH=80689

Change 80689 by soc-anders@soc-anders_gimli on 2005/07/21 18:47:35

	Migrated pim6stat from pim6_var.h

Affected files ...

.. //depot/projects/soc2005/ifcleanup/src/src/sys/netinet6/pim6.h#2 edit

Differences ...

==== //depot/projects/soc2005/ifcleanup/src/src/sys/netinet6/pim6.h#2 (text+ko) ====

@@ -67,3 +67,19 @@
 
 /* second bit in reg_head is the null bit */
 #define PIM_NULL_REGISTER 0x40000000
+
+struct pim6stat {
+	u_quad_t pim6s_rcv_total;	/* total PIM messages received	*/
+	u_quad_t pim6s_rcv_tooshort;	/* received with too few bytes	*/
+	u_quad_t pim6s_rcv_badsum;	/* received with bad checksum	*/
+	u_quad_t pim6s_rcv_badversion;	/* received bad PIM version	*/
+	u_quad_t pim6s_rcv_registers;	/* received registers		*/
+	u_quad_t pim6s_rcv_badregisters; /* received invalid registers	*/
+	u_quad_t pim6s_snd_registers;	/* sent registers		*/
+};
+
+/*
+ * Names for PIM sysctl objects
+ */
+#define PIM6CTL_STATS		1	/* statistics (read-only) */
+#define PIM6CTL_MAXID		2

From owner-p4-projects@FreeBSD.ORG  Thu Jul 21 18:49:12 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 4F30B16A426; Thu, 21 Jul 2005 18:49:12 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 114F316A422
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 18:49:12 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id AC4D943D66
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 18:49:08 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6LIn8GV010184
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 18:49:08 GMT
	(envelope-from soc-anders@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6LIn8Hg010181
	for perforce@freebsd.org; Thu, 21 Jul 2005 18:49:08 GMT
	(envelope-from soc-anders@freebsd.org)
Date: Thu, 21 Jul 2005 18:49:08 GMT
Message-Id: <200507211849.j6LIn8Hg010181@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-anders@freebsd.org using -f
From: soc-anders <soc-anders@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80691 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jul 2005 18:49:13 -0000

http://perforce.freebsd.org/chv.cgi?CH=80691

Change 80691 by soc-anders@soc-anders_gimli on 2005/07/21 18:48:37

	Added sysctl node net.inet6.pim6

Affected files ...

.. //depot/projects/soc2005/ifcleanup/src/src/sys/netinet6/in6_proto.c#2 edit

Differences ...

==== //depot/projects/soc2005/ifcleanup/src/src/sys/netinet6/in6_proto.c#2 (text+ko) ====

@@ -355,6 +355,7 @@
 #ifdef IPSEC
 SYSCTL_NODE(_net_inet6,	IPPROTO_ESP,	ipsec6,	CTLFLAG_RW, 0,	"IPSEC6");
 #endif /* IPSEC */
+SYSCTL_NODE(_net_inet6, IPPROTO_PIM,    pim6,   CTLFLAG_RW, 0,  "PIM6");
 
 /* net.inet6.ip6 */
 static int

From owner-p4-projects@FreeBSD.ORG  Thu Jul 21 18:50:21 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id B2B9116A421; Thu, 21 Jul 2005 18:50:20 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 8E12216A41F
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 18:50:20 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 2C55A43D5D
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 18:50:10 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6LIoAQ8010252
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 18:50:10 GMT
	(envelope-from soc-anders@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6LIoA83010249
	for perforce@freebsd.org; Thu, 21 Jul 2005 18:50:10 GMT
	(envelope-from soc-anders@freebsd.org)
Date: Thu, 21 Jul 2005 18:50:10 GMT
Message-Id: <200507211850.j6LIoA83010249@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-anders@freebsd.org using -f
From: soc-anders <soc-anders@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80692 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jul 2005 18:50:21 -0000

http://perforce.freebsd.org/chv.cgi?CH=80692

Change 80692 by soc-anders@soc-anders_gimli on 2005/07/21 18:49:51

	Made pim6stat available via sysctl net.inet6.pim6.stats	

Affected files ...

.. //depot/projects/soc2005/ifcleanup/src/src/sys/netinet6/ip6_mroute.c#2 edit

Differences ...

==== //depot/projects/soc2005/ifcleanup/src/src/sys/netinet6/ip6_mroute.c#2 (text+ko) ====

@@ -99,6 +99,7 @@
 #include <sys/syslog.h>
 #include <sys/systm.h>
 #include <sys/time.h>
+#include <sys/sysctl.h>
 
 #include <net/if.h>
 #include <net/raw_cb.h>
@@ -183,6 +184,10 @@
 static mifi_t reg_mif_num = (mifi_t)-1;
 
 static struct pim6stat pim6stat;
+SYSCTL_DECL(_net_inet6_pim6);
+SYSCTL_STRUCT(_net_inet6_pim6, PIM6CTL_STATS, stats, CTLFLAG_RD,
+	      &pim6stat, pim6stat,
+	      "PIM6 Statistics (struct pim6stat, netinet6/pim.h)");
 static int pim6;
 
 /*

From owner-p4-projects@FreeBSD.ORG  Thu Jul 21 19:41:36 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 6CF7616A421; Thu, 21 Jul 2005 19:41:36 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 2554316A41F
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 19:41:36 +0000 (GMT)
	(envelope-from soc-victor@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 9263243D53
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 19:41:12 +0000 (GMT)
	(envelope-from soc-victor@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6LJfCQJ012277
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 19:41:12 GMT
	(envelope-from soc-victor@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6LJfCfO012274
	for perforce@freebsd.org; Thu, 21 Jul 2005 19:41:12 GMT
	(envelope-from soc-victor@freebsd.org)
Date: Thu, 21 Jul 2005 19:41:12 GMT
Message-Id: <200507211941.j6LJfCfO012274@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-victor@freebsd.org using -f
From: soc-victor <soc-victor@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80694 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jul 2005 19:41:37 -0000

http://perforce.freebsd.org/chv.cgi?CH=80694

Change 80694 by soc-victor@soc-victor_82.76.158.176 on 2005/07/21 19:40:24

	Added SNMP SET support for hrSWRunTable.

Affected files ...

.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile#9 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_scalars.c#7 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.h#11 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_swrun_tbl.c#2 edit

Differences ...

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile#9 (text+ko) ====

@@ -1,5 +1,6 @@
 # 
 # Copyright (c) 2005 The FreeBSD Project 
+# All rights reserved.
 # Author: Victor Cruceru <soc-victor@freebsd.org>
 #
 

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_scalars.c#7 (text+ko) ====

@@ -235,7 +235,7 @@
 			}
 			
 		}
-	} else if (curr_op == SNMP_OP_ROLLBACK )	{
+	} else if (curr_op == SNMP_OP_ROLLBACK ) {
 		switch (value->var.subs[sub - 1]) { 
 			case LEAF_hrSystemDate: {
 				HR_DPRINTF((stderr, "SNMP_OP_ROLLBACK for LEAF_hrSystemDate\n"));
@@ -308,7 +308,7 @@
 		case SNMP_OP_ROLLBACK:
 		case SNMP_OP_COMMIT:
 		case SNMP_OP_GETNEXT:
-	  	default:{
+	  	default: {
 			assert(0);
                 	return  (SNMP_ERR_GENERR);
 		}	
@@ -576,24 +576,30 @@
 		u_int iidx __unused, 
 		enum snmp_op curr_op)
 {
-	
+	/*only SNMP GET is possible*/
+	switch (curr_op) {	
+		case SNMP_OP_GET:
+		break;
+ 		case SNMP_OP_SET:	
+			return (SNMP_ERR_NOT_WRITEABLE);
+		case SNMP_OP_ROLLBACK:
+		case SNMP_OP_COMMIT:
+		case SNMP_OP_GETNEXT:
+	  	default: {
+			assert(0);
+                	return  (SNMP_ERR_GENERR);
+		}	
+	}	
 
-        if(curr_op == SNMP_OP_GET) {
-		switch (value->var.subs[sub - 1]) {
-			case LEAF_hrSWOSIndex:
-				value->v.uint32 = hrState_g.hrSWOSIndex;
-				return (SNMP_ERR_NOERROR);
-			default:
-				assert(0);
-				return  (SNMP_ERR_NOSUCHNAME);
-			
-		}/*end switch*/	
-	} else if (curr_op == SNMP_OP_SET) {
-		return (SNMP_ERR_NOT_WRITEABLE);
-	} else {
-		assert(0);
-		return  (SNMP_ERR_GENERR);
-	}
+	switch (value->var.subs[sub - 1]) {
+		case LEAF_hrSWOSIndex:
+			value->v.uint32 = hrState_g.hrSWOSIndex;
+			return (SNMP_ERR_NOERROR);
+		default:
+			assert(0);
+			return  (SNMP_ERR_NOSUCHNAME);
+		
+	}/*end switch*/	
 		
 }
 

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.h#11 (text+ko) ====

@@ -185,7 +185,8 @@
 	int32_t		perfCPU;
 	int32_t		perfMemory;	
 #define HR_SWRUN_FOUND 0x001
-	uint32_t	flags;			/*not from the SNMP mib table, only to be used internally*/	
+	uint32_t	flags;			/*not from the SNMP mib table, only to be used internally*/
+	uint64_t	r_tick;			/*agent tick when this entry was last time refreshed*/
 	TAILQ_ENTRY(hrSWRunTblEntry) link;		
 };
 

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_swrun_tbl.c#2 (text+ko) ====

@@ -41,6 +41,8 @@
 #include <sys/sysctl.h>
 #include <sys/user.h>
 #include <sys/linker.h>
+#include <sys/types.h>
+#include <signal.h>
 
 
 #define	IS_KERNPROC(kp)	( ((kp)->ki_flag & P_KTHREAD) == P_KTHREAD )
@@ -150,7 +152,7 @@
 
 static
 void 
-kinfo_proc_to_hrSWRunTblEntry(const struct kinfo_proc *kp, struct hrSWRunTblEntry* entry) {
+kinfo_proc_to_hrSWRunTblEntry_v(const struct kinfo_proc *kp, struct hrSWRunTblEntry* entry) {
 	char **argv = NULL;
 	uint64_t cpu_time = 0;
 	
@@ -162,6 +164,9 @@
 	
 	entry->path[0] = '\0';
 	entry->parameters[0] = '\0';
+	
+	assert(hrState_g.kd != NULL);
+	
 	argv = kvm_getargv(hrState_g.kd, kp, sizeof(entry->parameters) - 1);
 	if(argv !=  NULL){
 		memset(&entry->parameters[0], '\0', sizeof(entry->parameters));
@@ -201,12 +206,13 @@
 	entry->perfCPU = (cpu_time > (uint64_t)INT_MAX ? INT_MAX : cpu_time); 
 	
 	entry->perfMemory = kp->ki_size / 1024; /*in kilo-bytes*/
+	entry->r_tick = get_ticks();
 
 }
 
 static 
 void 
-kld_file_stat_to_hrSWRunTblEntry(const struct kld_file_stat* kfs, struct hrSWRunTblEntry* entry) {
+kld_file_stat_to_hrSWRunTblEntry_v(const struct kld_file_stat* kfs, struct hrSWRunTblEntry* entry) {
 	assert(kfs != NULL);
 	assert(entry != NULL);
 	
@@ -230,6 +236,7 @@
 	entry->status = SRS_RUNNING;
 	entry->perfCPU = 0; /*Info not available*/
 	entry->perfMemory = kfs->size / 1024; /*in kilo-bytes*/
+	entry->r_tick = get_ticks();
 }
 
 /*
@@ -262,7 +269,7 @@
 		assert(entry !=  NULL);
 		entry->flags |= HR_SWRUN_FOUND; /*mark it as found*/
 		
-		kinfo_proc_to_hrSWRunTblEntry(kp,entry);		
+		kinfo_proc_to_hrSWRunTblEntry_v(kp,entry);		
 		
 	}
 }
@@ -295,7 +302,7 @@
 		assert(entry !=  NULL);
 		entry->flags |= HR_SWRUN_FOUND; /*mark it as found*/
 		
-		kld_file_stat_to_hrSWRunTblEntry(&stat, entry);
+		kld_file_stat_to_hrSWRunTblEntry_v(&stat, entry);
 	}    
 	
 }
@@ -332,7 +339,140 @@
 	HR_DPRINTF((stderr, "%s: refresh DONE\n ",__func__));
 }
 
+static
+void fetch_hrSWRun_entry_v(struct hrSWRunTblEntry *entry) {
+	int item_found = 0;
+	struct kinfo_proc *plist =  NULL;
+	int nproc =  -1;
+	int fileid = 0;
+	
+	assert(entry !=  NULL);
+	
+	if( entry->index >= NO_PID + 1)	{
+		/* this is a kernel item */
+		item_found = 0;
+		for (fileid = kldnext(0); fileid > 0; fileid = kldnext(fileid)) {
+			struct kld_file_stat stat;
+			stat.version = sizeof(struct kld_file_stat);
+			if (kldstat(fileid, &stat) < 0) {
+				syslog(LOG_ERR, "kldstat() failed: %m");
+				continue;
+			}
+			/*
+			* kernel and kernel files (*.ko) will be indexed starting with
+			* NO_PID + 1; NO_PID is PID_MAX + 1 thus it will be no risk to
+			* overlap with real PIDs which are in range of 1 .. NO_PID
+			*/
+			if( NO_PID + 1 + stat.id == entry->index ) {
+				kld_file_stat_to_hrSWRunTblEntry_v(&stat, entry);
+				item_found = 1;
+				break;
+			}
 
+		} /* end for*/   
+		if (item_found == 0) {
+			/* not found, it's gone. Mark it as invalid for now, it
+			 * will be removed from the list at next global refersh
+			 */  
+			 HR_DPRINTF((stderr, "%s: missing item with kid = %d \n ", __func__, entry->index -  NO_PID - 1));
+			 entry->status = SRS_INVALID;
+			 
+		}
+		
+	} else {
+	
+		/* this is user space visible process*/
+		assert(hrState_g.kd != NULL);
+		plist = kvm_getprocs(hrState_g.kd, KERN_PROC_PID, entry->index - 1, &nproc);
+		if (plist == NULL || nproc != 1) {
+			HR_DPRINTF((stderr, "%s: missing item with PID = %d \n ", __func__, entry->index - 1));
+			entry->status = SRS_INVALID;
+			return; 
+		}
+		kinfo_proc_to_hrSWRunTblEntry_v(plist,entry);
+
+	}
+}
+
+static
+int invalidate_hrSWRun_entry(struct hrSWRunTblEntry *entry) {
+	struct kinfo_proc *plist =  NULL;
+	int nproc =  -1;
+
+	
+	assert(entry !=  NULL);
+	
+	if( entry->index >= NO_PID + 1)	{
+		/* this is a kernel item */
+		int item_found = 0;
+		int fileid = 0;
+
+		HR_DPRINTF((stderr, "%s: atempt to delete a kernel item %d \n ", __func__, entry->index -  NO_PID - 1));
+		
+		if( entry->index == hrState_g.hrSWOSIndex) {
+			/*can't invalidate the kernel itself*/
+			return (SNMP_ERR_NOT_WRITEABLE);/*error*/
+		}
+		
+		for (fileid = kldnext(0); fileid > 0; fileid = kldnext(fileid)) {
+			struct kld_file_stat stat;
+			stat.version = sizeof(struct kld_file_stat);
+			if (kldstat(fileid, &stat) < 0) {
+				syslog(LOG_ERR, "kldstat() failed: %m");
+				continue;
+			}
+			
+			if( NO_PID + 1 + stat.id == entry->index ) {
+				if(kldunload(fileid) < 0) {
+					syslog(LOG_ERR,"kldunload for %s failed: %m", stat.name);
+					return (SNMP_ERR_RES_UNAVAIL); /*error*/
+				}
+				item_found = 1;
+				break;
+			}
+
+		} /* end for*/   
+		if (item_found == 0) {
+			/* not found, it's gone. Mark it as invalid for now, it
+			 * will be removed from the list at next global refersh
+			 */  
+			 HR_DPRINTF((stderr, "%s: missing item with kid = %d \n ", __func__, entry->index -  NO_PID - 1));
+			 entry->status = SRS_INVALID;
+			 return (SNMP_ERR_NOERROR); 
+			 
+		}
+		
+	} else {
+	
+		/* this is user space visible process*/
+		assert(hrState_g.kd != NULL);
+		plist = kvm_getprocs(hrState_g.kd, KERN_PROC_PID, entry->index - 1, &nproc);
+		if (plist == NULL || nproc != 1) {
+			HR_DPRINTF((stderr, "%s: missing item with PID = %d \n ", __func__, entry->index - 1));
+			entry->status = SRS_INVALID;
+			return (SNMP_ERR_NOERROR); 
+		}
+		if(IS_KERNPROC(plist)) {
+			/*you don't want to do this*/
+			return (SNMP_ERR_NOT_WRITEABLE);
+		} else {
+			if(kill(entry->index - 1, SIGKILL) < 0) {
+				syslog(LOG_ERR,"kill (%d, SIGKILL) failed: %m", entry->index - 1);
+				return (SNMP_ERR_GENERR);
+			}
+			return (SNMP_ERR_NOERROR); 
+		}
+		
+
+	}
+	return (SNMP_ERR_NOERROR); 
+	
+}
+
+/*
+ * This is the implmenetaion for a generated function prototype, see hostres_tree.h 
+ * It hanldes the SNMP operations for hrSWRunTable
+ */
 int op_hrSWRunTable(struct snmp_context *ctx __unused, 
                 struct snmp_value *value, 
 		u_int sub, 
@@ -374,14 +514,43 @@
 		break;
 
 	  case SNMP_OP_SET:
-		return (SNMP_ERR_NOT_WRITEABLE);	  
+		if (value->var.len - sub != 1) {
+			return (SNMP_ERR_NOSUCHNAME);
+		}
+			
+		if ((entry = hrSWRunTblEntry_find_by_index(value->var.subs[sub])) == NULL) {
+			return (SNMP_ERR_NOSUCHNAME);
+		}
+		
+		if (entry->r_tick < this_tick) {
+			HR_DPRINTF((stderr, "%s: Specific entry with SNMP INDEX = %d needs refresh\n ",
+					__func__, 
+					entry->index));
+			fetch_hrSWRun_entry_v(entry);
+		}	
+		if(entry->status == SRS_INVALID){
+			return (SNMP_ERR_NOERROR);
+		}
+		
+		switch (value->var.subs[sub - 1]) {
+			case LEAF_hrSWRunStatus: {
+				if( value->v.integer !=  SRS_INVALID) {
+					return (SNMP_ERR_WRONG_VALUE);
+				}
+				return (invalidate_hrSWRun_entry(entry));
+			}	
+			default:
+				return (SNMP_ERR_NOT_WRITEABLE);
+
+		} /* end switch (value->var.subs[sub - 1]) */
+		return (SNMP_ERR_NOERROR);
 
 	  case SNMP_OP_ROLLBACK:
 	  case SNMP_OP_COMMIT:
-	  	assert(0);
 		return (SNMP_ERR_NOERROR);
 	}
 
+
 	ret = SNMP_ERR_NOERROR;
 	switch (value->var.subs[sub - 1]) {
 

From owner-p4-projects@FreeBSD.ORG  Thu Jul 21 19:51:31 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 684AD16A421; Thu, 21 Jul 2005 19:51:30 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 41F6016A41F
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 19:51:30 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 4D25B43D46
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 19:51:25 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6LJpPkN012753
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 19:51:25 GMT
	(envelope-from sam@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6LJpPSt012750
	for perforce@freebsd.org; Thu, 21 Jul 2005 19:51:25 GMT
	(envelope-from sam@freebsd.org)
Date: Thu, 21 Jul 2005 19:51:25 GMT
Message-Id: <200507211951.j6LJpPSt012750@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	sam@freebsd.org using -f
From: Sam Leffler <sam@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80695 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jul 2005 19:51:31 -0000

http://perforce.freebsd.org/chv.cgi?CH=80695

Change 80695 by sam@sam_ebb on 2005/07/21 19:51:10

	correct min data frame size check; fragmented frames may not
	include an 802.3 header so the previous size caused some
	frames to be discarded

Affected files ...

.. //depot/projects/wifi/sys/net80211/ieee80211_crypto.c#13 edit

Differences ...

==== //depot/projects/wifi/sys/net80211/ieee80211_crypto.c#13 (text+ko) ====

@@ -543,7 +543,7 @@
 {
 #define	IEEE80211_WEP_HDRLEN	(IEEE80211_WEP_IVLEN + IEEE80211_WEP_KIDLEN)
 #define	IEEE80211_WEP_MINLEN \
-	(sizeof(struct ieee80211_frame) + ETHER_HDR_LEN + \
+	(sizeof(struct ieee80211_frame) + \
 	IEEE80211_WEP_HDRLEN + IEEE80211_WEP_CRCLEN)
 	struct ieee80211_key *k;
 	struct ieee80211_frame *wh;

From owner-p4-projects@FreeBSD.ORG  Thu Jul 21 20:00:48 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id B046316A42A; Thu, 21 Jul 2005 20:00:47 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 6BB9316A425
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 20:00:47 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 6243D43D9F
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 20:00:37 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6LK0btR013470
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 20:00:37 GMT
	(envelope-from sam@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6LK0bR0013467
	for perforce@freebsd.org; Thu, 21 Jul 2005 20:00:37 GMT
	(envelope-from sam@freebsd.org)
Date: Thu, 21 Jul 2005 20:00:37 GMT
Message-Id: <200507212000.j6LK0bR0013467@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	sam@freebsd.org using -f
From: Sam Leffler <sam@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80697 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jul 2005 20:00:48 -0000

http://perforce.freebsd.org/chv.cgi?CH=80697

Change 80697 by sam@sam_ebb on 2005/07/21 20:00:07

	correct handling for assoc req w/ wpa/rsn ie when wpa is
	not enabled; was previously ignoring the ie (wpa) or assert
	failing (rsn), now we reject the assoc request
	Obtained from:	Atheros

Affected files ...

.. //depot/projects/wifi/sys/net80211/ieee80211_input.c#54 edit

Differences ...

==== //depot/projects/wifi/sys/net80211/ieee80211_input.c#54 (text+ko) ====

@@ -1507,8 +1507,12 @@
 	 * version, mcast cipher, and 2 selector counts.
 	 * Other, variable-length data, must be checked separately.
 	 */
-	KASSERT(ic->ic_flags & IEEE80211_F_WPA1,
-		("not WPA, flags 0x%x", ic->ic_flags));
+	if ((ic->ic_flags & IEEE80211_F_WPA1) == 0) {
+		IEEE80211_DISCARD_IE(ic,
+		    IEEE80211_MSG_ELEMID | IEEE80211_MSG_WPA,
+		    wh, "WPA", "not WPA, flags 0x%x", ic->ic_flags);
+		return IEEE80211_REASON_IE_INVALID;
+	}
 	if (len < 14) {
 		IEEE80211_DISCARD_IE(ic,
 		    IEEE80211_MSG_ELEMID | IEEE80211_MSG_WPA,
@@ -1670,8 +1674,12 @@
 	 * version, mcast cipher, and 2 selector counts.
 	 * Other, variable-length data, must be checked separately.
 	 */
-	KASSERT(ic->ic_flags & IEEE80211_F_WPA2,
-		("not RSN, flags 0x%x", ic->ic_flags));
+	if ((ic->ic_flags & IEEE80211_F_WPA2) == 0) {
+		IEEE80211_DISCARD_IE(ic,
+		    IEEE80211_MSG_ELEMID | IEEE80211_MSG_WPA,
+		    wh, "WPA", "not RSN, flags 0x%x", ic->ic_flags);
+		return IEEE80211_REASON_IE_INVALID;
+	}
 	if (len < 10) {
 		IEEE80211_DISCARD_IE(ic,
 		    IEEE80211_MSG_ELEMID | IEEE80211_MSG_WPA,
@@ -2367,10 +2375,9 @@
 				wpa = frm;
 				break;
 			case IEEE80211_ELEMID_VENDOR:
-				if (iswpaoui(frm)) {
-					if (ic->ic_flags & IEEE80211_F_WPA1)
-						wpa = frm;
-				} else if (iswmeinfo(frm))
+				if (iswpaoui(frm))
+					wpa = frm;
+				else if (iswmeinfo(frm))
 					wme = frm;
 				else if (isatherosoui(frm))
 					ath = frm;

From owner-p4-projects@FreeBSD.ORG  Thu Jul 21 20:07:49 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 607BA16A46A; Thu, 21 Jul 2005 20:07:48 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 70A8016A42B
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 20:07:47 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id AE5E843D4C
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 20:07:46 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6LK7ki6013996
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 20:07:46 GMT
	(envelope-from sam@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6LK7k6D013993
	for perforce@freebsd.org; Thu, 21 Jul 2005 20:07:46 GMT
	(envelope-from sam@freebsd.org)
Date: Thu, 21 Jul 2005 20:07:46 GMT
Message-Id: <200507212007.j6LK7k6D013993@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	sam@freebsd.org using -f
From: Sam Leffler <sam@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80698 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jul 2005 20:07:49 -0000

http://perforce.freebsd.org/chv.cgi?CH=80698

Change 80698 by sam@sam_ebb on 2005/07/21 20:06:53

	checkpoint old mods

Affected files ...

.. //depot/projects/vap/sys/conf/files#4 edit
.. //depot/projects/vap/sys/dev/ath/if_ath.c#17 edit
.. //depot/projects/vap/sys/dev/ath/if_athvar.h#8 edit
.. //depot/projects/vap/sys/dev/iwi/if_iwi.c#5 edit
.. //depot/projects/vap/sys/dev/wi/if_wi.c#6 edit

Differences ...

==== //depot/projects/vap/sys/conf/files#4 (text+ko) ====

@@ -1384,6 +1384,7 @@
 net80211/ieee80211_ioctl.c	optional wlan
 net80211/ieee80211_node.c	optional wlan
 net80211/ieee80211_output.c	optional wlan
+net80211/ieee80211_power.c	optional wlan
 net80211/ieee80211_proto.c	optional wlan
 net80211/ieee80211_regdomain.c	optional wlan
 net80211/ieee80211_scan.c	optional wlan

==== //depot/projects/vap/sys/dev/ath/if_ath.c#17 (text+ko) ====

@@ -516,6 +516,7 @@
 		| IEEE80211_C_WPA		/* capable of WPA1+WPA2 */
 		| IEEE80211_C_BGSCAN		/* capable of bg scanning */
 		| IEEE80211_C_WDS		/* 4-address frames supported */
+		| IEEE80211_C_PMGT		/* power management supported */
 		;
 	/*
 	 * Query the hal to figure out h/w crypto support.
@@ -1284,7 +1285,7 @@
 		 * (and system).  This varies by chip and is mostly an
 		 * issue with newer parts that go to sleep more quickly.
 		 */
-		ath_hal_setpower(sc->sc_ah, HAL_PM_FULL_SLEEP, 0);
+		ath_hal_setpower(sc->sc_ah, HAL_PM_FULL_SLEEP);
 	}
 	ATH_UNLOCK(sc);
 }
@@ -4193,9 +4194,9 @@
 	 * Calculate Atheros packet type from IEEE80211 packet header,
 	 * setup for rate calculations, and select h/w transmit queue.
 	 */
+	subtype = wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_MASK;
 	switch (wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK) {
 	case IEEE80211_FC0_TYPE_MGT:
-		subtype = wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_MASK;
 		if (subtype == IEEE80211_FC0_SUBTYPE_BEACON)
 			atype = HAL_PKT_TYPE_BEACON;
 		else if (subtype == IEEE80211_FC0_SUBTYPE_PROBE_RESP)
@@ -4204,6 +4205,7 @@
 			atype = HAL_PKT_TYPE_ATIM;
 		else
 			atype = HAL_PKT_TYPE_NORMAL;	/* XXX */
+	mgtframe:
 		rix = sc->sc_minrateix;
 		txrate = rt->info[rix].rateCode;
 		if (shortPreamble)
@@ -4221,6 +4223,8 @@
 		break;
 	case IEEE80211_FC0_TYPE_DATA:
 		atype = HAL_PKT_TYPE_NORMAL;		/* default */
+		if (subtype == IEEE80211_FC0_SUBTYPE_NODATA)
+			goto mgtframe;
 		/*
 		 * Data frames; consult the rate control module.
 		 */
@@ -4600,6 +4604,8 @@
 		bus_dmamap_sync(sc->sc_dmat, bf->bf_dmamap,
 		    BUS_DMASYNC_POSTWRITE);
 		bus_dmamap_unload(sc->sc_dmat, bf->bf_dmamap);
+		if (bf->bf_m->m_flags & M_PWR_DOWN)
+			sc->sc_pwrdownrdy = 1;
 		m_freem(bf->bf_m);
 		bf->bf_m = NULL;
 		bf->bf_node = NULL;
@@ -4624,6 +4630,23 @@
 	return (txqs & (1<<qnum));
 }
 
+static void
+tx_proc_finish(struct ath_softc *sc, struct ifnet *ifp)
+{
+	ifp->if_flags &= ~IFF_OACTIVE;
+	ath_start(ifp);
+
+	if (sc->sc_softled)
+		ath_led_event(sc, ATH_LED_TX);
+
+	if (sc->sc_dopwrsav && sc->sc_pwrdownrdy) {
+if_printf(ifp, "%s: power down\n", __func__);/*XXX*/
+		ath_hal_setpower(sc->sc_ah, HAL_PM_NETWORK_SLEEP);
+		sc->sc_pwrdownrdy = 0;
+		sc->sc_dopwrsav = 0;
+	}
+}
+
 /*
  * Deferred processing of transmit interrupt; special-cased
  * for a single hardware transmit queue (e.g. 5210 and 5211).
@@ -4641,11 +4664,7 @@
 	if (txqactive(sc->sc_ah, sc->sc_cabq->axq_qnum))
 		ath_tx_processq(sc, sc->sc_cabq);
 
-	ifp->if_flags &= ~IFF_OACTIVE;
-	ath_start(ifp);
-
-	if (sc->sc_softled)
-		ath_led_event(sc, ATH_LED_TX);
+	tx_proc_finish(sc, ifp);
 }
 
 /*
@@ -4674,11 +4693,7 @@
 	if (txqactive(sc->sc_ah, sc->sc_cabq->axq_qnum))
 		ath_tx_processq(sc, sc->sc_cabq);
 
-	ifp->if_flags &= ~IFF_OACTIVE;
-	ath_start(ifp);
-
-	if (sc->sc_softled)
-		ath_led_event(sc, ATH_LED_TX);
+	tx_proc_finish(sc, ifp);
 }
 
 /*
@@ -4700,11 +4715,7 @@
 		if (ATH_TXQ_SETUP(sc, i) && txqactive(sc->sc_ah, i))
 			ath_tx_processq(sc, &sc->sc_txq[i]);
 
-	ifp->if_flags &= ~IFF_OACTIVE;
-	ath_start(ifp);
-
-	if (sc->sc_softled)
-		ath_led_event(sc, ATH_LED_TX);
+	tx_proc_finish(sc, ifp);
 }
 
 static void
@@ -5074,6 +5085,20 @@
 		ieee80211_state_name[nstate]);
 
 	callout_stop(&sc->sc_cal_ch);
+	if (vap->iv_state == IEEE80211_S_SLEEP) {
+		/*
+		 * We were asleep, wake the chip up before
+		 * touching any hardware.
+		 */
+		sc->sc_dopwrsav = 0;
+		ath_hal_setpower(ah, HAL_PM_AWAKE);
+		/*
+		 * SLEEP -> RUN just involves waking the hardware and
+		 * restarting the calibration timer, so we're done...
+		 */
+		if (nstate == IEEE80211_S_RUN)
+			goto done;
+	}
 	ath_hal_setledstate(ah, leds[nstate]);	/* set LED */
 
 	if (nstate == IEEE80211_S_INIT) {
@@ -5089,6 +5114,10 @@
 		ath_rate_newstate(vap, nstate);
 		goto done;
 	}
+	if (nstate == IEEE80211_S_SLEEP) {
+		sc->sc_dopwrsav = 1;	/* defer to after null data frame */
+		goto done;
+	}
 	ni = vap->iv_bss;
 
 	rfilt = ath_calcrxfilter(sc);

==== //depot/projects/vap/sys/dev/ath/if_athvar.h#8 (text+ko) ====

@@ -252,7 +252,9 @@
 				sc_hasbmask: 1,	/* bssid mask support */
 				sc_hastsfadd:1,	/* tsf adjust support */
 				sc_scanning: 1,	/* scanning active */
-				sc_syncbeacon:1;/* sync/resync beacon timers */
+				sc_syncbeacon:1,/* sync/resync beacon timers */
+				sc_dopwrsav: 1,	/* pwr save switch pending */
+				sc_pwrdownrdy:1;/* ready to power down */
 						/* rate tables */
 	const HAL_RATE_TABLE	*sc_rates[IEEE80211_MODE_MAX];
 	const HAL_RATE_TABLE	*sc_currates;	/* current rate table */
@@ -411,8 +413,8 @@
 	((*(_ah)->ah_getPendingInterrupts)((_ah), (_pmask)))
 #define	ath_hal_updatetxtriglevel(_ah, _inc) \
 	((*(_ah)->ah_updateTxTrigLevel)((_ah), (_inc)))
-#define	ath_hal_setpower(_ah, _mode, _sleepduration) \
-	((*(_ah)->ah_setPowerMode)((_ah), (_mode), AH_TRUE, (_sleepduration)))
+#define	ath_hal_setpower(_ah, _mode) \
+	((*(_ah)->ah_setPowerMode)((_ah), (_mode), AH_TRUE))
 #define	ath_hal_keycachesize(_ah) \
 	((*(_ah)->ah_getKeyCacheSize)((_ah)))
 #define	ath_hal_keyreset(_ah, _ix) \

==== //depot/projects/vap/sys/dev/iwi/if_iwi.c#5 (text+ko) ====

@@ -112,7 +112,8 @@
 	{ 12, { 2, 4, 11, 22, 12, 18, 24, 36, 48, 72, 96, 108 } };
 
 static struct ieee80211vap *iwi_vap_create(struct ieee80211com *, 
-			    const char name[IFNAMSIZ], int unit, int opmode);
+			    const char name[IFNAMSIZ], int unit, int opmode,
+			    int flags);
 static void		iwi_vap_delete(struct ieee80211vap *);
 static int		iwi_dma_alloc(struct iwi_softc *);
 static void		iwi_release(struct iwi_softc *);
@@ -322,7 +323,7 @@
 	}
 
 	/* IBSS channel undefined for now */
-	ic->ic_ibss_chan = &ic->ic_channels[0];
+	ic->ic_bsschan = &ic->ic_channels[0];
 
 	ieee80211_ifattach(ic);
 	ic->ic_vap_create = iwi_vap_create;
@@ -407,7 +408,7 @@
 
 static struct ieee80211vap *
 iwi_vap_create(struct ieee80211com *ic,
-	const char name[IFNAMSIZ], int unit, int opmode)
+	const char name[IFNAMSIZ], int unit, int opmode, int flags)
 {
 	struct ieee80211vap *vap;
 

==== //depot/projects/vap/sys/dev/wi/if_wi.c#6 (text+ko) ====

@@ -2770,6 +2770,7 @@
 	case IEEE80211_S_SCAN:
 	case IEEE80211_S_AUTH:
 	case IEEE80211_S_ASSOC:
+	case IEEE80211_S_SLEEP:		/* XXX? */
 		vap->iv_state = nstate;	/* NB: skip normal ieee80211 handling */
 		break;
 

From owner-p4-projects@FreeBSD.ORG  Thu Jul 21 20:11:18 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 98E3F16A423; Thu, 21 Jul 2005 20:11:17 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 682B216A41F
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 20:11:17 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id C3EA743D48
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 20:10:37 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6LK9oVM014052
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 20:09:50 GMT
	(envelope-from sam@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6LK9ntO014049
	for perforce@freebsd.org; Thu, 21 Jul 2005 20:09:49 GMT
	(envelope-from sam@freebsd.org)
Date: Thu, 21 Jul 2005 20:09:49 GMT
Message-Id: <200507212009.j6LK9ntO014049@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	sam@freebsd.org using -f
From: Sam Leffler <sam@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80699 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jul 2005 20:11:18 -0000

http://perforce.freebsd.org/chv.cgi?CH=80699

Change 80699 by sam@sam_ebb on 2005/07/21 20:09:36

	IFC @ 80698

Affected files ...

.. //depot/projects/wifi/contrib/gcc/config/i386/i386.h#3 integrate
.. //depot/projects/wifi/etc/defaults/rc.conf#16 integrate
.. //depot/projects/wifi/lib/libc/locale/nextwctype.3#3 integrate
.. //depot/projects/wifi/lib/libc/locale/rpmatch.3#3 integrate
.. //depot/projects/wifi/lib/libc/locale/wctype.3#2 integrate
.. //depot/projects/wifi/lib/libmemstat/libmemstat.3#3 integrate
.. //depot/projects/wifi/lib/libmemstat/memstat.c#2 integrate
.. //depot/projects/wifi/lib/libmemstat/memstat.h#3 integrate
.. //depot/projects/wifi/lib/libmemstat/memstat_internal.h#3 integrate
.. //depot/projects/wifi/lib/libmemstat/memstat_uma.c#3 integrate
.. //depot/projects/wifi/lib/libpmc/pmc.3#5 integrate
.. //depot/projects/wifi/lib/libpmc/pmclog.3#2 integrate
.. //depot/projects/wifi/lib/liby/Makefile#4 integrate
.. //depot/projects/wifi/sbin/dhclient/dhclient.8#3 integrate
.. //depot/projects/wifi/sbin/restore/interactive.c#3 integrate
.. //depot/projects/wifi/share/man/man4/an.4#3 integrate
.. //depot/projects/wifi/share/man/man4/ath.4#11 integrate
.. //depot/projects/wifi/share/man/man4/aue.4#4 integrate
.. //depot/projects/wifi/share/man/man4/awi.4#5 integrate
.. //depot/projects/wifi/share/man/man4/axe.4#4 integrate
.. //depot/projects/wifi/share/man/man4/bfe.4#3 integrate
.. //depot/projects/wifi/share/man/man4/bge.4#5 integrate
.. //depot/projects/wifi/share/man/man4/cdce.4#5 integrate
.. //depot/projects/wifi/share/man/man4/cm.4#4 integrate
.. //depot/projects/wifi/share/man/man4/cue.4#3 integrate
.. //depot/projects/wifi/share/man/man4/dc.4#6 integrate
.. //depot/projects/wifi/share/man/man4/de.4#4 integrate
.. //depot/projects/wifi/share/man/man4/ed.4#8 integrate
.. //depot/projects/wifi/share/man/man4/em.4#9 integrate
.. //depot/projects/wifi/share/man/man4/en.4#3 integrate
.. //depot/projects/wifi/share/man/man4/fwe.4#5 integrate
.. //depot/projects/wifi/share/man/man4/fwip.4#5 integrate
.. //depot/projects/wifi/share/man/man4/fxp.4#5 integrate
.. //depot/projects/wifi/share/man/man4/hme.4#3 integrate
.. //depot/projects/wifi/share/man/man4/hwpmc.4#5 integrate
.. //depot/projects/wifi/share/man/man4/ipw.4#4 integrate
.. //depot/projects/wifi/share/man/man4/iwi.4#6 integrate
.. //depot/projects/wifi/share/man/man4/kue.4#3 integrate
.. //depot/projects/wifi/share/man/man4/led.4#5 integrate
.. //depot/projects/wifi/share/man/man4/lge.4#3 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/arl.4#3 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/cp.4#4 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/cs.4#4 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/cx.4#3 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/el.4#5 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/ep.4#8 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/ex.4#4 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/fe.4#5 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/ie.4#3 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/lnc.4#5 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/ray.4#6 integrate
.. //depot/projects/wifi/share/man/man4/man4.i386/vx.4#4 integrate
.. //depot/projects/wifi/share/man/man4/my.4#3 integrate
.. //depot/projects/wifi/share/man/man4/nge.4#4 integrate
.. //depot/projects/wifi/share/man/man4/nve.4#4 integrate
.. //depot/projects/wifi/share/man/man4/pcn.4#4 integrate
.. //depot/projects/wifi/share/man/man4/ral.4#4 integrate
.. //depot/projects/wifi/share/man/man4/re.4#5 integrate
.. //depot/projects/wifi/share/man/man4/rl.4#6 integrate
.. //depot/projects/wifi/share/man/man4/rue.4#3 integrate
.. //depot/projects/wifi/share/man/man4/sf.4#4 integrate
.. //depot/projects/wifi/share/man/man4/sis.4#4 integrate
.. //depot/projects/wifi/share/man/man4/sk.4#6 integrate
.. //depot/projects/wifi/share/man/man4/sn.4#5 integrate
.. //depot/projects/wifi/share/man/man4/ste.4#6 integrate
.. //depot/projects/wifi/share/man/man4/ti.4#4 integrate
.. //depot/projects/wifi/share/man/man4/tl.4#3 integrate
.. //depot/projects/wifi/share/man/man4/tx.4#4 integrate
.. //depot/projects/wifi/share/man/man4/txp.4#5 integrate
.. //depot/projects/wifi/share/man/man4/udav.4#4 integrate
.. //depot/projects/wifi/share/man/man4/ural.4#4 integrate
.. //depot/projects/wifi/share/man/man4/vge.4#5 integrate
.. //depot/projects/wifi/share/man/man4/vlan.4#7 integrate
.. //depot/projects/wifi/share/man/man4/vr.4#5 integrate
.. //depot/projects/wifi/share/man/man4/wb.4#4 integrate
.. //depot/projects/wifi/share/man/man4/wi.4#6 integrate
.. //depot/projects/wifi/share/man/man4/xe.4#5 integrate
.. //depot/projects/wifi/share/man/man4/xl.4#8 integrate
.. //depot/projects/wifi/share/man/man7/ports.7#7 integrate
.. //depot/projects/wifi/share/man/man9/bios.9#2 integrate
.. //depot/projects/wifi/sys/amd64/amd64/bios.c#2 integrate
.. //depot/projects/wifi/sys/amd64/conf/NOTES#12 integrate
.. //depot/projects/wifi/sys/amd64/include/pc/bios.h#2 integrate
.. //depot/projects/wifi/sys/conf/files#29 integrate
.. //depot/projects/wifi/sys/conf/files.amd64#15 integrate
.. //depot/projects/wifi/sys/contrib/pf/net/pf.c#11 integrate
.. //depot/projects/wifi/sys/contrib/pf/net/pf_norm.c#3 integrate
.. //depot/projects/wifi/sys/contrib/pf/net/pfvar.h#3 integrate
.. //depot/projects/wifi/sys/dev/drm/ati_pcigart.c#2 integrate
.. //depot/projects/wifi/sys/dev/drm/drmP.h#4 integrate
.. //depot/projects/wifi/sys/dev/drm/drm_agpsupport.c#2 integrate
.. //depot/projects/wifi/sys/dev/drm/drm_pciids.h#3 integrate
.. //depot/projects/wifi/sys/dev/drm/r128_cce.c#4 integrate
.. //depot/projects/wifi/sys/dev/drm/r300_cmdbuf.c#1 branch
.. //depot/projects/wifi/sys/dev/drm/r300_reg.h#1 branch
.. //depot/projects/wifi/sys/dev/drm/radeon_cp.c#5 integrate
.. //depot/projects/wifi/sys/dev/drm/radeon_drm.h#4 integrate
.. //depot/projects/wifi/sys/dev/drm/radeon_drv.h#4 integrate
.. //depot/projects/wifi/sys/dev/drm/radeon_state.c#5 integrate
.. //depot/projects/wifi/sys/dev/ep/if_ep.c#6 integrate
.. //depot/projects/wifi/sys/dev/ep/if_epvar.h#5 integrate
.. //depot/projects/wifi/sys/dev/vkbd/vkbd.c#7 integrate
.. //depot/projects/wifi/sys/fs/devfs/devfs_vnops.c#23 integrate
.. //depot/projects/wifi/sys/geom/bde/g_bde_crypt.c#4 integrate
.. //depot/projects/wifi/sys/i386/bios/smbios.c#2 integrate
.. //depot/projects/wifi/sys/i386/conf/NOTES#18 integrate
.. //depot/projects/wifi/sys/i386/i386/bios.c#4 integrate
.. //depot/projects/wifi/sys/i386/i386/elan-mmcr.c#2 integrate
.. //depot/projects/wifi/sys/i386/i386/geode.c#2 integrate
.. //depot/projects/wifi/sys/i386/include/pc/bios.h#2 integrate
.. //depot/projects/wifi/sys/kern/vfs_aio.c#10 integrate
.. //depot/projects/wifi/sys/kern/vfs_bio.c#13 integrate
.. //depot/projects/wifi/sys/kern/vfs_subr.c#28 integrate
.. //depot/projects/wifi/sys/modules/de/Makefile#2 integrate
.. //depot/projects/wifi/sys/modules/drm/radeon/Makefile#2 integrate
.. //depot/projects/wifi/sys/net/if_bridge.c#3 integrate
.. //depot/projects/wifi/sys/net/if_ethersubr.c#9 integrate
.. //depot/projects/wifi/sys/netgraph/netgraph.h#9 integrate
.. //depot/projects/wifi/sys/netgraph/ng_base.c#14 integrate
.. //depot/projects/wifi/sys/netinet/icmp6.h#3 integrate
.. //depot/projects/wifi/sys/netinet/ip6.h#3 integrate
.. //depot/projects/wifi/sys/netinet6/in6.h#3 integrate
.. //depot/projects/wifi/sys/netinet6/ip6_input.c#4 integrate
.. //depot/projects/wifi/sys/netinet6/ip6_mroute.h#3 integrate
.. //depot/projects/wifi/sys/netinet6/ip6_output.c#7 integrate
.. //depot/projects/wifi/sys/netinet6/ip6_var.h#4 integrate
.. //depot/projects/wifi/sys/netinet6/mld6.c#4 integrate
.. //depot/projects/wifi/sys/netinet6/nd6.c#4 integrate
.. //depot/projects/wifi/sys/netinet6/raw_ip6.c#6 integrate
.. //depot/projects/wifi/sys/netinet6/udp6_output.c#3 integrate
.. //depot/projects/wifi/sys/pc98/conf/NOTES#13 integrate
.. //depot/projects/wifi/sys/pci/if_de.c#5 integrate
.. //depot/projects/wifi/sys/pci/if_devar.h#3 integrate
.. //depot/projects/wifi/sys/security/mac_stub/mac_stub.c#7 integrate
.. //depot/projects/wifi/sys/ufs/ffs/ffs_vfsops.c#22 integrate
.. //depot/projects/wifi/sys/vm/swap_pager.c#9 integrate
.. //depot/projects/wifi/sys/vm/uma_core.c#12 integrate
.. //depot/projects/wifi/sys/vm/vm_map.c#7 integrate
.. //depot/projects/wifi/tools/tools/ministat/Makefile#4 integrate
.. //depot/projects/wifi/tools/tools/ministat/ministat.c#4 integrate
.. //depot/projects/wifi/tools/tools/tinderbox/etc/Makefile#2 integrate
.. //depot/projects/wifi/tools/tools/tinderbox/etc/current.rc#2 delete
.. //depot/projects/wifi/tools/tools/tinderbox/etc/head.rc#1 branch
.. //depot/projects/wifi/tools/tools/tinderbox/etc/releng_4.rc#3 integrate
.. //depot/projects/wifi/tools/tools/tinderbox/etc/releng_5.rc#3 integrate
.. //depot/projects/wifi/tools/tools/tinderbox/etc/releng_6.rc#1 branch
.. //depot/projects/wifi/tools/tools/tinderbox/etc/stable.rc#2 delete
.. //depot/projects/wifi/tools/tools/tinderbox/etc/update_current.rc#2 delete
.. //depot/projects/wifi/tools/tools/tinderbox/etc/update_head.rc#1 branch
.. //depot/projects/wifi/tools/tools/tinderbox/etc/update_releng_4.rc#3 integrate
.. //depot/projects/wifi/tools/tools/tinderbox/etc/update_releng_5.rc#3 integrate
.. //depot/projects/wifi/tools/tools/tinderbox/etc/update_releng_6.rc#1 branch
.. //depot/projects/wifi/tools/tools/tinderbox/etc/update_stable.rc#2 delete
.. //depot/projects/wifi/tools/tools/tinderbox/tbmaster.1#4 integrate
.. //depot/projects/wifi/tools/tools/tinderbox/tbmaster.pl#3 integrate
.. //depot/projects/wifi/tools/tools/tinderbox/tinderbox.1#2 integrate
.. //depot/projects/wifi/tools/tools/tinderbox/tinderbox.pl#3 integrate
.. //depot/projects/wifi/usr.sbin/Makefile#13 integrate
.. //depot/projects/wifi/usr.sbin/jail/jail.8#9 integrate
.. //depot/projects/wifi/usr.sbin/mergemaster/mergemaster.8#4 integrate
.. //depot/projects/wifi/usr.sbin/pcvt/vttest/Makefile#2 delete
.. //depot/projects/wifi/usr.sbin/pcvt/vttest/README#2 delete
.. //depot/projects/wifi/usr.sbin/pcvt/vttest/esc.c#2 delete
.. //depot/projects/wifi/usr.sbin/pcvt/vttest/header.h#2 delete
.. //depot/projects/wifi/usr.sbin/pcvt/vttest/main.c#2 delete
.. //depot/projects/wifi/usr.sbin/pcvt/vttest/vttest.1#2 delete
.. //depot/projects/wifi/usr.sbin/snapinfo/Makefile#1 branch
.. //depot/projects/wifi/usr.sbin/snapinfo/snapinfo.8#1 branch
.. //depot/projects/wifi/usr.sbin/snapinfo/snapinfo.c#1 branch
.. //depot/projects/wifi/usr.sbin/sysinstall/config.c#7 integrate
.. //depot/projects/wifi/usr.sbin/sysinstall/devices.c#5 integrate
.. //depot/projects/wifi/usr.sbin/ugidfw/ugidfw.c#3 integrate

Differences ...

==== //depot/projects/wifi/contrib/gcc/config/i386/i386.h#3 (text+ko) ====

@@ -614,8 +614,8 @@
       else if (TARGET_ATHLON)					\
 	{							\
 	  builtin_define ("__tune_athlon__");			\
-	  /* Only plain "athlon" lacks SSE.  */			\
-	  if (last_tune_char != 'n')				\
+	  /* Plain "athlon" & "athlon-tbird" lacks SSE.  */	\
+	  if (last_tune_char != 'n' && last_tune_char != 'd')	\
 	    builtin_define ("__tune_athlon_sse__");		\
 	}							\
       else if (TARGET_K8)					\
@@ -679,8 +679,8 @@
 	{							\
 	  builtin_define ("__athlon");				\
 	  builtin_define ("__athlon__");			\
-	  /* Only plain "athlon" lacks SSE.  */			\
-	  if (last_arch_char != 'n')				\
+	  /* Plain "athlon" & "athlon-tbird" lacks SSE.  */	\
+	  if (last_tune_char != 'n' && last_tune_char != 'd')	\
 	    builtin_define ("__athlon_sse__");			\
 	}							\
       else if (ix86_arch == PROCESSOR_K8)			\

==== //depot/projects/wifi/etc/defaults/rc.conf#16 (text+ko) ====

@@ -15,7 +15,7 @@
 # For a more detailed explanation of all the rc.conf variables, please
 # refer to the rc.conf(5) manual page.
 #
-# $FreeBSD: src/etc/defaults/rc.conf,v 1.252 2005/06/26 16:30:20 pjd Exp $
+# $FreeBSD: src/etc/defaults/rc.conf,v 1.253 2005/07/21 15:17:54 pav Exp $
 
 ##############################################################
 ###  Important initial Boot-time options  ####################
@@ -462,6 +462,9 @@
 			# a.out shared library search paths
 kern_securelevel_enable="NO"	# kernel security level (see init(8)),
 kern_securelevel="-1"	# range: -1..3 ; `-1' is the most insecure
+			# Note that setting securelevel to 0 will result
+			# in the system booting with securelevel set to 1, as
+			# init(8) will raise the level when rc(8) completes.
 update_motd="YES"	# update version info in /etc/motd (or NO)
 unaligned_print="YES"	# print unaligned access warnings on the alpha (or NO).
 entropy_file="/entropy"	# Set to NO to disable caching entropy through reboots.

==== //depot/projects/wifi/lib/libc/locale/nextwctype.3#3 (text+ko) ====

@@ -23,9 +23,9 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/lib/libc/locale/nextwctype.3,v 1.2 2005/01/15 11:22:13 ru Exp $
+.\" $FreeBSD: src/lib/libc/locale/nextwctype.3,v 1.3 2005/07/21 10:27:45 tjr Exp $
 .\"
-.Dd July 8, 2004
+.Dd July 21, 2005
 .Dt NEXTWCTYPE 3
 .Os
 .Sh NAME
@@ -51,6 +51,17 @@
 .Sh RETURN VALUES
 The
 .Fn nextwctype
-functions returns the next character, or \-1 if there are no more.
+function returns the next character, or \-1 if there are no more.
+.Sh COMPATIBILITY
+This function is a non-standard
+.Fx
+extension and should not be used where the standard
+.Fn iswctype
+function would suffice.
 .Sh SEE ALSO
 .Xr wctype 3
+.Sh HISTORY
+The
+.Fn nextwctype
+function appeared in
+.Fx 5.4 .

==== //depot/projects/wifi/lib/libc/locale/rpmatch.3#3 (text+ko) ====

@@ -23,9 +23,9 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/lib/libc/locale/rpmatch.3,v 1.2 2005/01/15 11:22:13 ru Exp $
+.\" $FreeBSD: src/lib/libc/locale/rpmatch.3,v 1.3 2005/07/21 10:53:27 tjr Exp $
 .\"
-.Dd January 6, 2005
+.Dd July 21, 2005
 .Dt RPMATCH 3
 .Os
 .Sh NAME
@@ -59,3 +59,8 @@
 .Sh SEE ALSO
 .Xr nl_langinfo 3 ,
 .Xr setlocale 3
+.Sh HISTORY
+The
+.Fn rpmatch
+function appeared in
+.Fx 6.0 .

==== //depot/projects/wifi/lib/libc/locale/wctype.3#2 (text+ko) ====

@@ -22,7 +22,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/lib/libc/locale/wctype.3,v 1.5 2004/03/27 08:59:21 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/wctype.3,v 1.6 2005/07/21 10:32:17 tjr Exp $
 .\"
 .Dd March 27, 2004
 .Dt WCTYPE 3
@@ -94,7 +94,8 @@
 }
 .Ed
 .Sh SEE ALSO
-.Xr ctype 3
+.Xr ctype 3 ,
+.Xr nextwctype 3
 .Sh STANDARDS
 The
 .Fn iswctype

==== //depot/projects/wifi/lib/libmemstat/libmemstat.3#3 (text+ko) ====

@@ -22,7 +22,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/lib/libmemstat/libmemstat.3,v 1.3 2005/07/15 11:28:21 rwatson Exp $
+.\" $FreeBSD: src/lib/libmemstat/libmemstat.3,v 1.4 2005/07/20 09:17:40 rwatson Exp $
 .\"
 .Dd June 27, 2005
 .Os
@@ -93,6 +93,8 @@
 .Ft uint64_t
 .Fn memstat_get_zonefree "const struct memory_type *mtp"
 .Ft uint64_t
+.Fn memstat_get_kegfree "const struct memory_type *mtp"
+.Ft uint64_t
 .Fn memstat_get_percpu_memalloced "const struct memory_type *mtp" "int cpu"
 .Ft uint64_t
 .Fn memstat_get_percpu_memfreed "const struct memory_type *mtp" "int cpu"

==== //depot/projects/wifi/lib/libmemstat/memstat.c#2 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libmemstat/memstat.c,v 1.1 2005/07/14 17:40:02 rwatson Exp $
+ * $FreeBSD: src/lib/libmemstat/memstat.c,v 1.2 2005/07/20 09:17:40 rwatson Exp $
  */
 
 #include <sys/param.h>
@@ -143,6 +143,7 @@
 	mtp->mt_failures = 0;
 
 	mtp->mt_zonefree = 0;
+	mtp->mt_kegfree = 0;
 
 	for (i = 0; i < MEMSTAT_MAXCPU; i++) {
 		mtp->mt_percpu_alloc[i].mtp_memalloced = 0;
@@ -292,6 +293,13 @@
 }
 
 uint64_t
+memstat_get_kegfree(const struct memory_type *mtp)
+{
+
+	return (mtp->mt_kegfree);
+}
+
+uint64_t
 memstat_get_percpu_memalloced(const struct memory_type *mtp, int cpu)
 {
 

==== //depot/projects/wifi/lib/libmemstat/memstat.h#3 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libmemstat/memstat.h,v 1.4 2005/07/18 14:14:17 rwatson Exp $
+ * $FreeBSD: src/lib/libmemstat/memstat.h,v 1.5 2005/07/20 09:17:40 rwatson Exp $
  */
 
 #ifndef _MEMSTAT_H_
@@ -119,6 +119,7 @@
 void		 memstat_set_caller_uint64(struct memory_type *mtp, int index,
 		    uint64_t value);
 uint64_t	 memstat_get_zonefree(const struct memory_type *mtp);
+uint64_t	 memstat_get_kegfree(const struct memory_type *mtp);
 uint64_t	 memstat_get_percpu_memalloced(const struct memory_type *mtp,
 		    int cpu);
 uint64_t	 memstat_get_percpu_memfreed(const struct memory_type *mtp,

==== //depot/projects/wifi/lib/libmemstat/memstat_internal.h#3 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libmemstat/memstat_internal.h,v 1.2 2005/07/15 11:19:55 rwatson Exp $
+ * $FreeBSD: src/lib/libmemstat/memstat_internal.h,v 1.3 2005/07/20 09:17:40 rwatson Exp $
  */
 
 #ifndef _MEMSTAT_INTERNAL_H_
@@ -85,6 +85,7 @@
 	 * global stats above.
 	 */
 	uint64_t	 mt_zonefree;	/* Free items in zone. */
+	uint64_t	 mt_kegfree;	/* Free items in keg. */
 
 	/*
 	 * Per-CPU measurements fall into two categories: per-CPU allocation,

==== //depot/projects/wifi/lib/libmemstat/memstat_uma.c#3 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libmemstat/memstat_uma.c,v 1.4 2005/07/15 23:39:21 rwatson Exp $
+ * $FreeBSD: src/lib/libmemstat/memstat_uma.c,v 1.5 2005/07/20 09:17:40 rwatson Exp $
  */
 
 #include <sys/param.h>
@@ -222,7 +222,8 @@
 		mtp->mt_byteslimit = uthp->uth_limit * uthp->uth_size;
 
 		mtp->mt_count = mtp->mt_numallocs - mtp->mt_numfrees;
-		mtp->mt_zonefree = uthp->uth_zone_free + uthp->uth_keg_free;
+		mtp->mt_zonefree = uthp->uth_zone_free;
+		mtp->mt_kegfree = uthp->uth_keg_free;
 		mtp->mt_free += mtp->mt_zonefree;
 	}
 

==== //depot/projects/wifi/lib/libpmc/pmc.3#5 (text+ko) ====

@@ -21,7 +21,7 @@
 .\" out of the use of this software, even if advised of the possibility of
 .\" such damage.
 .\"
-.\" $FreeBSD: src/lib/libpmc/pmc.3,v 1.6 2005/07/14 20:29:05 brueffer Exp $
+.\" $FreeBSD: src/lib/libpmc/pmc.3,v 1.7 2005/07/21 06:44:54 jkoshy Exp $
 .\"
 .Dd June 24, 2005
 .Os
@@ -3263,6 +3263,23 @@
 is returned and the global variable
 .Va errno
 is set to indicate the error.
+.Sh COMPATIBILITY
+The interface between the
+.Xr pmc 3
+library and the
+.Xr hwpmc 4
+driver is intended to be private to the implementation and may
+change.
+In order to ease forward compatibility with future versions of the
+.Xr hwpmc 4
+driver, applications are urged to dynamically link with the
+.Xr pmc 3
+library.
+.Pp
+The
+.Xr pmc 3
+API is
+.Ud
 .Sh ERRORS
 A call to
 .Fn pmc_init
@@ -3384,6 +3401,11 @@
 .Xr hwpmc 4 ,
 .Xr pmccontrol 8 ,
 .Xr pmcstat 8
+.Sh HISTORY
+The
+.Xr pmc 3
+library first appeared in
+.Fx 6.0 .
 .Sh BUGS
 The information returned by
 .Fn pmc_cpuinfo ,

==== //depot/projects/wifi/lib/libpmc/pmclog.3#2 (text+ko) ====

@@ -21,7 +21,7 @@
 .\" out of the use of this software, even if advised of the possibility of
 .\" such damage.
 .\"
-.\" $FreeBSD: src/lib/libpmc/pmclog.3,v 1.2 2005/06/24 16:13:36 ru Exp $
+.\" $FreeBSD: src/lib/libpmc/pmclog.3,v 1.3 2005/07/21 06:42:30 jkoshy Exp $
 .\"
 .Dd June 1, 2005
 .Os
@@ -139,29 +139,43 @@
 .Fa *ev
 and is one of the following:
 .Bl -tag -width ".Dv PMCLOG_TYPE_PMCALLOCATE"
+.It Dv PMCLOG_TYPE_CLOSELOG
+A marker indicating a successful close of a log file.
+This record will be the last record of a log file.
 .It Dv PMCLOG_TYPE_DROPNOTIFY
-a marker indicating that
+A marker indicating that
 .Xr hwpmc 4
 had to drop data due to a resource constraint.
 .It Dv PMCLOG_TYPE_INITIALIZE
-an initialization record.
-This is usually the first record in a log file.
+An initialization record.
+This is the first record in a log file.
+.It Dv PMCLOG_TYPE_MAPPINGCHANGE
+A record describing an address space change for a process.
 .It Dv PMCLOG_TYPE_PCSAMPLE
 A record containing an instruction pointer sample.
 .It Dv PMCLOG_TYPE_PMCALLOCATE
 A record describing a PMC allocation operation.
 .It Dv PMCLOG_TYPE_PMCATTACH
 A record describing a PMC attach operation.
+.It Dv PMCLOG_TYPE_PMCDETACH
+A record describing a PMC detach operation.
 .It Dv PMCLOG_TYPE_PROCCSW
 A record describing a PMC reading at the time of a process context switch.
+.It Dv PMCLOG_TYPE_PROCEXEC
+A record describing an
+.Xr execve 2
+by a target process.
 .It Dv PMCLOG_TYPE_PROCEXIT
 A record describing the accumulated PMC reading for a process at the
 time of
 .Xr _exit 2 .
-.It Dv PMCLOG_TYPE_PROCEXEC
-A record describing an
-.Xr execve 2
+.It Dv PMCLOG_TYPE_PROCFORK
+A record describing a
+.Xr fork 2
 by a target process.
+.It Dv PMCLOG_TYPE_SYSEXIT
+A record describing a process exit, sent to processes
+owning system-wide sampling PMCs.
 .It Dv PMCLOG_TYPE_USERDATA
 A record containing user data.
 .El
@@ -279,3 +293,10 @@
 .Xr pmc 3 ,
 .Xr hwpmc 4 ,
 .Xr pmcstat 8
+.Sh HISTORY
+The
+.Xr pmclog 3
+API
+.Ud
+It first appeared in
+.Fx 6.0 .

==== //depot/projects/wifi/lib/liby/Makefile#4 (text+ko) ====

@@ -1,10 +1,7 @@
-# $FreeBSD: src/lib/liby/Makefile,v 1.12 2004/12/21 09:33:47 ru Exp $
+# $FreeBSD: src/lib/liby/Makefile,v 1.13 2005/07/20 14:35:26 ru Exp $
 
 LIB=		y
-SHLIB_MAJOR=	2
-
 SRCS=	main.c yyerror.c
-
 NO_PIC=
 
 .include <bsd.lib.mk>

==== //depot/projects/wifi/sbin/dhclient/dhclient.8#3 (text+ko) ====

@@ -36,9 +36,9 @@
 .\" see ``http://www.isc.org/isc''.  To learn more about Vixie
 .\" Enterprises, see ``http://www.vix.com''.
 .\"
-.\" $FreeBSD: src/sbin/dhclient/dhclient.8,v 1.2 2005/06/22 14:55:59 ru Exp $
+.\" $FreeBSD: src/sbin/dhclient/dhclient.8,v 1.4 2005/07/20 23:12:54 marks Exp $
 .\"
-.Dd April 7, 2004
+.Dd July 22, 2005
 .Dt DHCLIENT 8
 .Os
 .Sh NAME
@@ -63,6 +63,10 @@
 .Pp
 The options are as follows:
 .Bl -tag -width ".Fl c Ar file"
+.It Fl b
+Forces
+.Nm
+to immediately move to the background.
 .It Fl c Ar file
 Specify an alternate location,
 .Ar file ,

==== //depot/projects/wifi/sbin/restore/interactive.c#3 (text+ko) ====

@@ -34,7 +34,7 @@
 #endif /* not lint */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sbin/restore/interactive.c,v 1.17 2005/05/29 15:57:00 charnier Exp $");
+__FBSDID("$FreeBSD: src/sbin/restore/interactive.c,v 1.18 2005/07/21 16:12:35 dds Exp $");
 
 #include <sys/param.h>
 #include <sys/stat.h>
@@ -365,8 +365,14 @@
 		snprintf(output, sizeof(output), "%s/%s", curdir, rawname);
 		canon(output, name, size);
 	}
-	if (glob(name, GLOB_ALTDIRFUNC, NULL, &ap->glob) < 0)
+	switch (glob(name, GLOB_ALTDIRFUNC, NULL, &ap->glob)) {
+	case GLOB_NOSPACE:
 		fprintf(stderr, "%s: out of memory\n", ap->cmd);
+		break;
+	case GLOB_NOMATCH:
+		fprintf(stderr, "%s %s: no such file or directory\n", ap->cmd, name);
+		break;
+	}
 	if (ap->glob.gl_pathc == 0)
 		return;
 	ap->freeglob = 1;

==== //depot/projects/wifi/share/man/man4/an.4#3 (text+ko) ====

@@ -28,7 +28,7 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 .\" THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man4/an.4,v 1.22 2005/07/19 00:26:29 trhodes Exp $
+.\" $FreeBSD: src/share/man/man4/an.4,v 1.23 2005/07/21 05:02:38 trhodes Exp $
 .\"
 .Dd July 16, 2005
 .Dt AN 4
@@ -39,7 +39,8 @@
 .Sh SYNOPSIS
 To compile support for the
 .Nm
-driver into your kernel, place the following lines in your kernel configuration file:
+driver into your kernel, place the following lines in your
+kernel configuration file:
 .Bd -ragged -offset indent
 .Cd "device an"
 .Cd "device wlan"

==== //depot/projects/wifi/share/man/man4/ath.4#11 (text+ko) ====

@@ -29,7 +29,7 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 .\" THE POSSIBILITY OF SUCH DAMAGES.
 .\"
-.\" $FreeBSD: src/share/man/man4/ath.4,v 1.32 2005/07/19 00:26:29 trhodes Exp $
+.\" $FreeBSD: src/share/man/man4/ath.4,v 1.33 2005/07/21 05:02:38 trhodes Exp $
 .\"/
 .Dd July 16, 2005
 .Dt ATH 4
@@ -40,7 +40,8 @@
 .Sh SYNOPSIS
 To compile support for the
 .Nm
-driver into your kernel, place the following lines in your kernel configuration file:
+driver into your kernel, place the following lines in your
+kernel configuration file:
 .Bd -ragged -offset indent
 .Cd "device ath"
 .Cd "device ath_hal"

==== //depot/projects/wifi/share/man/man4/aue.4#4 (text+ko) ====

@@ -28,7 +28,7 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 .\" THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man4/aue.4,v 1.22 2005/07/19 00:26:29 trhodes Exp $
+.\" $FreeBSD: src/share/man/man4/aue.4,v 1.23 2005/07/21 05:02:38 trhodes Exp $
 .\"
 .Dd July 16, 2005
 .Dt AUE 4
@@ -39,7 +39,8 @@
 .Sh SYNOPSIS
 To compile support for the
 .Nm
-driver into your kernel, place the following lines in your kernel configuration file:
+driver into your kernel, place the following lines in your
+kernel configuration file:
 .Bd -ragged -offset indent
 .Cd "device uhci"
 .Cd "device ohci"

==== //depot/projects/wifi/share/man/man4/awi.4#5 (text+ko) ====

@@ -1,5 +1,5 @@
 .\"     $NetBSD: awi.4,v 1.6 2000/03/22 11:24:33 onoe Exp $
-.\" $FreeBSD: src/share/man/man4/awi.4,v 1.20 2005/07/19 00:26:29 trhodes Exp $
+.\" $FreeBSD: src/share/man/man4/awi.4,v 1.21 2005/07/21 05:02:38 trhodes Exp $
 .\"
 .Dd July 16, 2005
 .Dt AWI 4
@@ -10,7 +10,8 @@
 .Sh SYNOPSIS
 To compile support for the
 .Nm
-driver into your kernel, place the following lines in your kernel configuration file:
+driver into your kernel, place the following lines in your
+kernel configuration file:
 .Bd -ragged -offset indent
 .Cd "device awi"
 .Cd "device wlan"

==== //depot/projects/wifi/share/man/man4/axe.4#4 (text+ko) ====

@@ -28,7 +28,7 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 .\" THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man4/axe.4,v 1.10 2005/07/19 00:26:29 trhodes Exp $
+.\" $FreeBSD: src/share/man/man4/axe.4,v 1.11 2005/07/21 05:02:38 trhodes Exp $
 .\"
 .Dd July 16, 2005
 .Dt AXE 4
@@ -39,7 +39,8 @@
 .Sh SYNOPSIS
 To compile support for the
 .Nm
-driver into your kernel, place the following lines in your kernel configuration file:
+driver into your kernel, place the following lines in your
+kernel configuration file:
 .Bd -ragged -offset indent
 .Cd "device ehci"
 .Cd "device uhci"

==== //depot/projects/wifi/share/man/man4/bfe.4#3 (text+ko) ====

@@ -23,7 +23,7 @@
 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man4/bfe.4,v 1.4 2005/07/19 00:26:29 trhodes Exp $
+.\" $FreeBSD: src/share/man/man4/bfe.4,v 1.5 2005/07/21 05:02:38 trhodes Exp $
 .\"
 .Dd July 16, 2005
 .Dt BFE 4
@@ -34,7 +34,8 @@
 .Sh SYNOPSIS
 To compile support for the
 .Nm
-driver into your kernel, place the following lines in your kernel configuration file:
+driver into your kernel, place the following lines in your
+kernel configuration file:
 .Bd -ragged -offset indent
 .Cd "device miibus"
 .Cd "device bfe"

==== //depot/projects/wifi/share/man/man4/bge.4#5 (text+ko) ====

@@ -29,7 +29,7 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 .\" THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man4/bge.4,v 1.19 2005/07/19 00:26:29 trhodes Exp $
+.\" $FreeBSD: src/share/man/man4/bge.4,v 1.20 2005/07/21 05:02:38 trhodes Exp $
 .\"
 .Dd July 16, 2005
 .Dt BGE 4
@@ -40,8 +40,8 @@
 .Sh SYNOPSIS
 To compile support for the
 .Nm
-driver into your kernel, place the following lines in your kernel configuration 
-file:
+driver into your kernel, place the following lines in your
+kernel configuration file:
 .Bd -ragged -offset indent
 .Cd "device miibus"
 .Cd "device bge"

==== //depot/projects/wifi/share/man/man4/cdce.4#5 (text+ko) ====

@@ -26,7 +26,7 @@
 .\" POSSIBILITY OF SUCH DAMAGE.
 .\"
 .\" $NetBSD: cdce.4,v 1.4 2004/12/08 18:35:56 peter Exp $
-.\" $FreeBSD: src/share/man/man4/cdce.4,v 1.4 2005/07/19 00:26:29 trhodes Exp $
+.\" $FreeBSD: src/share/man/man4/cdce.4,v 1.5 2005/07/21 05:02:38 trhodes Exp $
 .\"
 .Dd July 16, 2005
 .Dt CDCE 4
@@ -37,8 +37,8 @@
 .Sh SYNOPSIS
 To compile support for the
 .Nm
-driver into your kernel, place the following lines in your kernel configuration 
-file:
+driver into your kernel, place the following lines in your
+kernel configuration file:
 .Bd -ragged -offset indent
 .Cd "device uhci"
 .Cd "device ohci"

==== //depot/projects/wifi/share/man/man4/cm.4#4 (text+ko) ====

@@ -23,7 +23,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man4/cm.4,v 1.7 2005/07/19 00:26:29 trhodes Exp $
+.\" $FreeBSD: src/share/man/man4/cm.4,v 1.8 2005/07/21 05:02:38 trhodes Exp $
 .\"
 .Dd July 16,2005
 .Dt CM 4
@@ -34,8 +34,8 @@
 .Sh SYNOPSIS
 To compile support for the
 .Nm
-driver into your kernel, place the following lines in your kernel configuration 
-file:
+driver into your kernel, place the following lines in
+your kernel configuration file:
 .Bd -ragged -offset indent
 .Cd "device isa"
 .Cd "device cm"

==== //depot/projects/wifi/share/man/man4/cue.4#3 (text+ko) ====

@@ -28,7 +28,7 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 .\" THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man4/cue.4,v 1.20 2005/07/19 00:26:29 trhodes Exp $
+.\" $FreeBSD: src/share/man/man4/cue.4,v 1.21 2005/07/21 05:02:38 trhodes Exp $
 .\"
 .Dd July 16, 2005
 .Dt CUE 4
@@ -39,8 +39,8 @@
 .Sh SYNOPSIS
 To compile support for the
 .Nm
-driver into your kernel, place the following lines in your kernel configuration 
-file:
+driver into your kernel, place the following lines in your
+kernel configuration file:
 .Bd -ragged -offset indent
 .Cd "device uhci"
 .Cd "device ohci"

==== //depot/projects/wifi/share/man/man4/dc.4#6 (text+ko) ====

@@ -28,7 +28,7 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 .\" THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man4/dc.4,v 1.36 2005/07/19 00:26:29 trhodes Exp $
+.\" $FreeBSD: src/share/man/man4/dc.4,v 1.37 2005/07/21 05:02:38 trhodes Exp $
 .\"
 .Dd July 16, 2005
 .Dt DC 4
@@ -39,8 +39,8 @@
 .Sh SYNOPSIS
 To compile support for the
 .Nm
-driver into your kernel, place the following lines in your kernel configuration 
-file:
+driver into your kernel, place the following lines in your
+kernel configuration file:
 .Bd -ragged -offset indent
 .Cd "device miibus"
 .Cd "device dc"

==== //depot/projects/wifi/share/man/man4/de.4#4 (text+ko) ====

@@ -23,7 +23,7 @@
 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man4/de.4,v 1.20 2005/07/19 00:26:29 trhodes Exp $
+.\" $FreeBSD: src/share/man/man4/de.4,v 1.21 2005/07/21 05:02:38 trhodes Exp $
 .\"
 .Dd July 16, 2005
 .Dt DE 4
@@ -34,8 +34,8 @@
 .Sh SYNOPSIS
 To compile support for the
 .Nm
-driver into your kernel, place the following line in your kernel configuration 
-file:
+driver into your kernel, place the following line in your
+kernel configuration file:
 .Bd -ragged -offset indent
 .Cd "device de"
 .Ed

==== //depot/projects/wifi/share/man/man4/ed.4#8 (text+ko) ====

@@ -28,7 +28,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man4/ed.4,v 1.47 2005/07/19 00:26:29 trhodes Exp $
+.\" $FreeBSD: src/share/man/man4/ed.4,v 1.48 2005/07/21 05:02:38 trhodes Exp $
 .\"
 .Dd July 16, 2005
 .Dt ED 4
@@ -39,8 +39,8 @@
 .Sh SYNOPSIS
 To compile support for the
 .Nm
-driver into your kernel, place the following lines in your kernel configuration 
-file:
+driver into your kernel, place the following lines in your
+kernel configuration file:
 .Bd -ragged -offset indent
 .Cd "device miibus"
 .Cd "device ed"

==== //depot/projects/wifi/share/man/man4/em.4#9 (text+ko) ====

@@ -29,7 +29,7 @@
 .\"
 .\" * Other names and brands may be claimed as the property of others.
 .\"
-.\" $FreeBSD: src/share/man/man4/em.4,v 1.21 2005/07/19 00:26:29 trhodes Exp $
+.\" $FreeBSD: src/share/man/man4/em.4,v 1.22 2005/07/21 05:02:38 trhodes Exp $
 .\"
 .Dd July 16, 2005
 .Dt EM 4
@@ -40,8 +40,8 @@
 .Sh SYNOPSIS
 To compile support for the
 .Nm
-driver into your kernel, place the following line in your kernel configuration 
-file:
+driver into your kernel, place the following line in your
+kernel configuration file:
 .Bd -ragged -offset indent
 .Cd "device em"
 .Ed

==== //depot/projects/wifi/share/man/man4/en.4#3 (text+ko) ====

@@ -1,4 +1,4 @@
-.\" $FreeBSD: src/share/man/man4/en.4,v 1.20 2005/07/19 00:26:29 trhodes Exp $
+.\" $FreeBSD: src/share/man/man4/en.4,v 1.21 2005/07/21 05:02:38 trhodes Exp $
 .\"
 .Dd July 16, 2005
 .Dt EN 4
@@ -9,8 +9,8 @@
 .Sh SYNOPSIS
 To compile support for the
 .Nm
-driver into your kernel, place the following lines in your kernel configuration 
-file:
+driver into your kernel, place the following lines in your
+kernel configuration file:
 .Bd -ragged -offset indent
 .Cd "device en"
 .Cd "device atm"

==== //depot/projects/wifi/share/man/man4/fwe.4#5 (text+ko) ====

@@ -22,7 +22,7 @@
 .\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 .\" POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man4/fwe.4,v 1.8 2005/07/19 00:26:29 trhodes Exp $
+.\" $FreeBSD: src/share/man/man4/fwe.4,v 1.9 2005/07/21 05:02:38 trhodes Exp $
 .\"
 .\"
 .Dd July 16, 2005
@@ -34,8 +34,8 @@
 .Sh SYNOPSIS
 To compile support for the
 .Nm
-driver into your kernel, place the following lines in your kernel configuration 
-file:
+driver into your kernel, place the following lines in your
+kernel configuration file:
 .Bd -ragged -offset indent
 .Cd "device firewire"
 .Cd "device fwe"

==== //depot/projects/wifi/share/man/man4/fwip.4#5 (text+ko) ====

@@ -23,7 +23,7 @@
 .\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 .\" POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man4/fwip.4,v 1.6 2005/07/19 00:26:29 trhodes Exp $
+.\" $FreeBSD: src/share/man/man4/fwip.4,v 1.7 2005/07/21 05:02:38 trhodes Exp $
 .\"
 .Dd July 16, 2005
 .Dt FWIP 4
@@ -34,8 +34,8 @@
 .Sh SYNOPSIS
 To compile support for the
 .Xr fwip 4
-driver into your kernel, place the following lines in your kernel configuration 
-file:
+driver into your kernel, place the following lines in your
+kernel configuration file:
 .Bd -ragged -offset indent
 .Cd "device firewire"
 .Cd "device fwip"

==== //depot/projects/wifi/share/man/man4/fxp.4#5 (text+ko) ====

@@ -23,7 +23,7 @@
 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

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

From owner-p4-projects@FreeBSD.ORG  Thu Jul 21 20:53:11 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 696AF16A422; Thu, 21 Jul 2005 20:53:10 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 3B39A16A420
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 20:53:10 +0000 (GMT)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 3303743D6A
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 20:52:44 +0000 (GMT)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6LKqil6022674
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 20:52:44 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6LKqhBh022671
	for perforce@freebsd.org; Thu, 21 Jul 2005 20:52:43 GMT
	(envelope-from peter@freebsd.org)
Date: Thu, 21 Jul 2005 20:52:43 GMT
Message-Id: <200507212052.j6LKqhBh022671@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm <peter@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80703 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jul 2005 20:53:11 -0000

http://perforce.freebsd.org/chv.cgi?CH=80703

Change 80703 by peter@peter_daintree on 2005/07/21 20:52:08

	IFC @80702

Affected files ...

.. //depot/projects/hammer/Makefile#33 integrate
.. //depot/projects/hammer/Makefile.inc1#97 integrate
.. //depot/projects/hammer/contrib/gcc/config/i386/i386.h#10 integrate
.. //depot/projects/hammer/contrib/ncurses/ncurses/tinfo/lib_baudrate.c#2 integrate
.. //depot/projects/hammer/etc/Makefile#40 integrate
.. //depot/projects/hammer/etc/defaults/rc.conf#56 integrate
.. //depot/projects/hammer/gnu/usr.bin/groff/tmac/mdoc.local#23 integrate
.. //depot/projects/hammer/gnu/usr.bin/man/apropos/Makefile#2 integrate
.. //depot/projects/hammer/lib/libc/locale/isalnum.3#5 integrate
.. //depot/projects/hammer/lib/libc/locale/isalpha.3#5 integrate
.. //depot/projects/hammer/lib/libc/locale/isblank.3#7 integrate
.. //depot/projects/hammer/lib/libc/locale/iscntrl.3#6 integrate
.. //depot/projects/hammer/lib/libc/locale/isdigit.3#6 integrate
.. //depot/projects/hammer/lib/libc/locale/isgraph.3#5 integrate
.. //depot/projects/hammer/lib/libc/locale/islower.3#5 integrate
.. //depot/projects/hammer/lib/libc/locale/isprint.3#5 integrate
.. //depot/projects/hammer/lib/libc/locale/ispunct.3#5 integrate
.. //depot/projects/hammer/lib/libc/locale/isspace.3#5 integrate
.. //depot/projects/hammer/lib/libc/locale/isupper.3#5 integrate
.. //depot/projects/hammer/lib/libc/locale/isxdigit.3#7 integrate
.. //depot/projects/hammer/lib/libc/locale/nextwctype.3#3 integrate
.. //depot/projects/hammer/lib/libc/locale/rpmatch.3#3 integrate
.. //depot/projects/hammer/lib/libc/locale/tolower.3#4 integrate
.. //depot/projects/hammer/lib/libc/locale/toupper.3#4 integrate
.. //depot/projects/hammer/lib/libc/locale/wctype.3#5 integrate
.. //depot/projects/hammer/lib/libc/net/ip6opt.c#5 integrate
.. //depot/projects/hammer/lib/libc/net/rcmd.3#4 integrate
.. //depot/projects/hammer/lib/libc/net/rthdr.c#3 integrate
.. //depot/projects/hammer/lib/libc/nls/ko_KR.UTF-8.msg#2 integrate
.. //depot/projects/hammer/lib/libc/nls/ko_KR.eucKR.msg#2 integrate
.. //depot/projects/hammer/lib/libc/sys/intro.2#10 integrate
.. //depot/projects/hammer/lib/libc/sys/mmap.2#6 integrate
.. //depot/projects/hammer/lib/libdevstat/devstat.3#8 integrate
.. //depot/projects/hammer/lib/libmemstat/libmemstat.3#2 integrate
.. //depot/projects/hammer/lib/libmemstat/memstat.c#2 integrate
.. //depot/projects/hammer/lib/libmemstat/memstat.h#2 integrate
.. //depot/projects/hammer/lib/libmemstat/memstat_internal.h#2 integrate
.. //depot/projects/hammer/lib/libmemstat/memstat_malloc.c#2 integrate
.. //depot/projects/hammer/lib/libmemstat/memstat_uma.c#2 integrate
.. //depot/projects/hammer/lib/libpmc/pmc.3#6 integrate
.. //depot/projects/hammer/lib/libpmc/pmclog.3#3 integrate
.. //depot/projects/hammer/lib/libstand/Makefile#16 integrate
.. //depot/projects/hammer/lib/liby/Makefile#6 integrate
.. //depot/projects/hammer/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#103 integrate
.. //depot/projects/hammer/release/doc/share/sgml/release.ent#17 integrate
.. //depot/projects/hammer/sbin/dhclient/dhclient.8#3 integrate
.. //depot/projects/hammer/sbin/fdisk/Makefile#4 integrate
.. //depot/projects/hammer/sbin/fdisk/fdisk.c#17 integrate
.. //depot/projects/hammer/sbin/fdisk_pc98/Makefile#5 integrate
.. //depot/projects/hammer/sbin/fdisk_pc98/fdisk.c#10 integrate
.. //depot/projects/hammer/sbin/restore/interactive.c#8 integrate
.. //depot/projects/hammer/share/man/man3/fpgetround.3#5 integrate
.. //depot/projects/hammer/share/man/man4/acpi.4#36 integrate
.. //depot/projects/hammer/share/man/man4/acpi_thermal.4#3 integrate
.. //depot/projects/hammer/share/man/man4/acpi_video.4#4 integrate
.. //depot/projects/hammer/share/man/man4/an.4#6 integrate
.. //depot/projects/hammer/share/man/man4/ath.4#25 integrate
.. //depot/projects/hammer/share/man/man4/aue.4#9 integrate
.. //depot/projects/hammer/share/man/man4/awi.4#9 integrate
.. //depot/projects/hammer/share/man/man4/axe.4#9 integrate
.. //depot/projects/hammer/share/man/man4/bfe.4#4 integrate
.. //depot/projects/hammer/share/man/man4/bge.4#15 integrate
.. //depot/projects/hammer/share/man/man4/cdce.4#4 integrate
.. //depot/projects/hammer/share/man/man4/cm.4#5 integrate
.. //depot/projects/hammer/share/man/man4/cpufreq.4#8 integrate
.. //depot/projects/hammer/share/man/man4/cue.4#7 integrate
.. //depot/projects/hammer/share/man/man4/dc.4#17 integrate
.. //depot/projects/hammer/share/man/man4/de.4#8 integrate
.. //depot/projects/hammer/share/man/man4/ed.4#10 integrate
.. //depot/projects/hammer/share/man/man4/em.4#11 integrate
.. //depot/projects/hammer/share/man/man4/en.4#6 integrate
.. //depot/projects/hammer/share/man/man4/fwe.4#6 integrate
.. //depot/projects/hammer/share/man/man4/fwip.4#4 integrate
.. //depot/projects/hammer/share/man/man4/fxp.4#11 integrate
.. //depot/projects/hammer/share/man/man4/hme.4#5 integrate
.. //depot/projects/hammer/share/man/man4/hwpmc.4#6 integrate
.. //depot/projects/hammer/share/man/man4/inet.4#16 integrate
.. //depot/projects/hammer/share/man/man4/ipw.4#4 integrate
.. //depot/projects/hammer/share/man/man4/iwi.4#5 integrate
.. //depot/projects/hammer/share/man/man4/kue.4#8 integrate
.. //depot/projects/hammer/share/man/man4/led.4#10 integrate
.. //depot/projects/hammer/share/man/man4/lge.4#5 integrate
.. //depot/projects/hammer/share/man/man4/man4.i386/acpi_asus.4#7 integrate
.. //depot/projects/hammer/share/man/man4/man4.i386/acpi_fujitsu.4#3 integrate
.. //depot/projects/hammer/share/man/man4/man4.i386/acpi_ibm.4#3 integrate
.. //depot/projects/hammer/share/man/man4/man4.i386/acpi_panasonic.4#5 integrate
.. //depot/projects/hammer/share/man/man4/man4.i386/acpi_toshiba.4#4 integrate
.. //depot/projects/hammer/share/man/man4/man4.i386/arl.4#6 integrate
.. //depot/projects/hammer/share/man/man4/man4.i386/cp.4#6 integrate
.. //depot/projects/hammer/share/man/man4/man4.i386/cs.4#4 integrate
.. //depot/projects/hammer/share/man/man4/man4.i386/cx.4#13 integrate
.. //depot/projects/hammer/share/man/man4/man4.i386/el.4#6 integrate
.. //depot/projects/hammer/share/man/man4/man4.i386/ep.4#13 integrate
.. //depot/projects/hammer/share/man/man4/man4.i386/ex.4#6 integrate
.. //depot/projects/hammer/share/man/man4/man4.i386/fe.4#10 integrate
.. //depot/projects/hammer/share/man/man4/man4.i386/ie.4#4 integrate
.. //depot/projects/hammer/share/man/man4/man4.i386/lnc.4#6 integrate
.. //depot/projects/hammer/share/man/man4/man4.i386/mse.4#5 integrate
.. //depot/projects/hammer/share/man/man4/man4.i386/pnp.4#4 integrate
.. //depot/projects/hammer/share/man/man4/man4.i386/pnpbios.4#2 integrate
.. //depot/projects/hammer/share/man/man4/man4.i386/ray.4#5 integrate
.. //depot/projects/hammer/share/man/man4/man4.i386/vx.4#6 integrate
.. //depot/projects/hammer/share/man/man4/my.4#5 integrate
.. //depot/projects/hammer/share/man/man4/natm.4#7 integrate
.. //depot/projects/hammer/share/man/man4/ng_ccatm.4#4 integrate
.. //depot/projects/hammer/share/man/man4/nge.4#6 integrate
.. //depot/projects/hammer/share/man/man4/nve.4#3 integrate
.. //depot/projects/hammer/share/man/man4/oldcard.4#6 integrate
.. //depot/projects/hammer/share/man/man4/pcn.4#6 integrate
.. //depot/projects/hammer/share/man/man4/psm.4#10 integrate
.. //depot/projects/hammer/share/man/man4/ral.4#3 integrate
.. //depot/projects/hammer/share/man/man4/re.4#13 integrate
.. //depot/projects/hammer/share/man/man4/rl.4#14 integrate
.. //depot/projects/hammer/share/man/man4/rue.4#9 integrate
.. //depot/projects/hammer/share/man/man4/sf.4#5 integrate
.. //depot/projects/hammer/share/man/man4/sis.4#8 integrate
.. //depot/projects/hammer/share/man/man4/sk.4#10 integrate
.. //depot/projects/hammer/share/man/man4/sn.4#5 integrate
.. //depot/projects/hammer/share/man/man4/snd_ess.4#4 integrate
.. //depot/projects/hammer/share/man/man4/ste.4#10 integrate
.. //depot/projects/hammer/share/man/man4/ti.4#10 integrate
.. //depot/projects/hammer/share/man/man4/tl.4#6 integrate
.. //depot/projects/hammer/share/man/man4/tx.4#5 integrate
.. //depot/projects/hammer/share/man/man4/txp.4#7 integrate
.. //depot/projects/hammer/share/man/man4/udav.4#4 integrate
.. //depot/projects/hammer/share/man/man4/uplcom.4#10 integrate
.. //depot/projects/hammer/share/man/man4/ural.4#3 integrate
.. //depot/projects/hammer/share/man/man4/vge.4#5 integrate
.. //depot/projects/hammer/share/man/man4/vkbd.4#3 integrate
.. //depot/projects/hammer/share/man/man4/vlan.4#11 integrate
.. //depot/projects/hammer/share/man/man4/vr.4#10 integrate
.. //depot/projects/hammer/share/man/man4/wb.4#5 integrate
.. //depot/projects/hammer/share/man/man4/wi.4#22 integrate
.. //depot/projects/hammer/share/man/man4/xe.4#8 integrate
.. //depot/projects/hammer/share/man/man4/xl.4#13 integrate
.. //depot/projects/hammer/share/man/man7/ports.7#15 integrate
.. //depot/projects/hammer/share/man/man7/security.7#13 integrate
.. //depot/projects/hammer/share/man/man9/bios.9#3 integrate
.. //depot/projects/hammer/share/misc/pci_vendors#14 integrate
.. //depot/projects/hammer/share/mk/bsd.libnames.mk#28 integrate
.. //depot/projects/hammer/sys/alpha/include/atomic.h#9 integrate
.. //depot/projects/hammer/sys/amd64/amd64/bios.c#2 integrate
.. //depot/projects/hammer/sys/amd64/conf/NOTES#76 integrate
.. //depot/projects/hammer/sys/amd64/include/atomic.h#17 integrate
.. //depot/projects/hammer/sys/amd64/include/pc/bios.h#2 integrate
.. //depot/projects/hammer/sys/arm/include/atomic.h#9 integrate
.. //depot/projects/hammer/sys/boot/ficl/Makefile#12 integrate
.. //depot/projects/hammer/sys/boot/i386/Makefile.inc#6 integrate
.. //depot/projects/hammer/sys/boot/i386/boot2/Makefile#10 integrate
.. //depot/projects/hammer/sys/conf/files#118 integrate
.. //depot/projects/hammer/sys/conf/files.amd64#75 integrate
.. //depot/projects/hammer/sys/conf/kern.mk#21 integrate
.. //depot/projects/hammer/sys/conf/options#81 integrate
.. //depot/projects/hammer/sys/contrib/pf/net/pf.c#23 integrate
.. //depot/projects/hammer/sys/contrib/pf/net/pf_norm.c#8 integrate
.. //depot/projects/hammer/sys/contrib/pf/net/pfvar.h#10 integrate
.. //depot/projects/hammer/sys/dev/acpica/acpi_thermal.c#23 integrate
.. //depot/projects/hammer/sys/dev/cnw/if_cnw.c#12 integrate
.. //depot/projects/hammer/sys/dev/drm/ati_pcigart.c#2 integrate
.. //depot/projects/hammer/sys/dev/drm/drmP.h#12 integrate
.. //depot/projects/hammer/sys/dev/drm/drm_agpsupport.c#2 integrate
.. //depot/projects/hammer/sys/dev/drm/drm_pciids.h#3 integrate
.. //depot/projects/hammer/sys/dev/drm/r128_cce.c#10 integrate
.. //depot/projects/hammer/sys/dev/drm/r300_cmdbuf.c#1 branch
.. //depot/projects/hammer/sys/dev/drm/r300_reg.h#1 branch
.. //depot/projects/hammer/sys/dev/drm/radeon_cp.c#12 integrate
.. //depot/projects/hammer/sys/dev/drm/radeon_drm.h#9 integrate
.. //depot/projects/hammer/sys/dev/drm/radeon_drv.h#10 integrate
.. //depot/projects/hammer/sys/dev/drm/radeon_state.c#11 integrate
.. //depot/projects/hammer/sys/dev/ep/if_ep.c#20 integrate
.. //depot/projects/hammer/sys/dev/ep/if_epvar.h#11 integrate
.. //depot/projects/hammer/sys/dev/firewire/fwohci_pci.c#32 integrate
.. //depot/projects/hammer/sys/dev/hatm/if_hatm_intr.c#9 integrate
.. //depot/projects/hammer/sys/dev/hwpmc/hwpmc_mod.c#6 integrate
.. //depot/projects/hammer/sys/dev/pccard/pccard_cis.c#14 integrate
.. //depot/projects/hammer/sys/dev/pccard/pccarddevs#37 integrate
.. //depot/projects/hammer/sys/dev/pccbb/pccbb.c#34 integrate
.. //depot/projects/hammer/sys/dev/pccbb/pccbb_pci.c#10 integrate
.. //depot/projects/hammer/sys/dev/pccbb/pccbbreg.h#6 integrate
.. //depot/projects/hammer/sys/dev/sbsh/if_sbsh.c#8 integrate
.. //depot/projects/hammer/sys/dev/sn/if_sn.c#20 integrate
.. //depot/projects/hammer/sys/dev/usb/ulpt.c#14 integrate
.. //depot/projects/hammer/sys/dev/usb/umass.c#32 integrate
.. //depot/projects/hammer/sys/dev/vkbd/vkbd.c#8 integrate
.. //depot/projects/hammer/sys/dev/xe/if_xe.c#23 integrate
.. //depot/projects/hammer/sys/dev/xe/if_xe_pccard.c#18 integrate
.. //depot/projects/hammer/sys/fs/devfs/devfs_vnops.c#36 integrate
.. //depot/projects/hammer/sys/fs/msdosfs/msdosfs_conv.c#12 integrate
.. //depot/projects/hammer/sys/geom/bde/g_bde_crypt.c#14 integrate
.. //depot/projects/hammer/sys/geom/concat/g_concat.c#15 integrate
.. //depot/projects/hammer/sys/geom/geom_mbr.c#23 integrate
.. //depot/projects/hammer/sys/geom/geom_pc98.c#25 integrate
.. //depot/projects/hammer/sys/geom/stripe/g_stripe.c#12 integrate
.. //depot/projects/hammer/sys/geom/vinum/geom_vinum_var.h#9 integrate
.. //depot/projects/hammer/sys/geom/vinum/geom_vinum_volume.c#9 integrate
.. //depot/projects/hammer/sys/i386/bios/smbios.c#5 integrate
.. //depot/projects/hammer/sys/i386/conf/NOTES#73 integrate
.. //depot/projects/hammer/sys/i386/i386/bios.c#19 integrate
.. //depot/projects/hammer/sys/i386/i386/elan-mmcr.c#20 integrate
.. //depot/projects/hammer/sys/i386/i386/geode.c#5 integrate
.. //depot/projects/hammer/sys/i386/include/atomic.h#9 integrate
.. //depot/projects/hammer/sys/i386/include/pc/bios.h#5 integrate
.. //depot/projects/hammer/sys/ia64/include/atomic.h#3 integrate
.. //depot/projects/hammer/sys/kern/kern_exit.c#47 integrate
.. //depot/projects/hammer/sys/kern/kern_mbuf.c#8 integrate
.. //depot/projects/hammer/sys/kern/kern_mutex.c#30 integrate
.. //depot/projects/hammer/sys/kern/uipc_mbuf2.c#16 integrate
.. //depot/projects/hammer/sys/kern/vfs_aio.c#33 integrate
.. //depot/projects/hammer/sys/kern/vfs_bio.c#57 integrate
.. //depot/projects/hammer/sys/kern/vfs_subr.c#88 integrate
.. //depot/projects/hammer/sys/modules/de/Makefile#3 integrate
.. //depot/projects/hammer/sys/modules/drm/radeon/Makefile#4 integrate
.. //depot/projects/hammer/sys/modules/ukbd/Makefile#6 integrate
.. //depot/projects/hammer/sys/net/if.c#51 integrate
.. //depot/projects/hammer/sys/net/if_atmsubr.c#17 integrate
.. //depot/projects/hammer/sys/net/if_bridge.c#7 integrate
.. //depot/projects/hammer/sys/net/if_ethersubr.c#42 integrate
.. //depot/projects/hammer/sys/net/rtsock.c#24 integrate
.. //depot/projects/hammer/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c#18 integrate
.. //depot/projects/hammer/sys/netgraph/netflow/ng_netflow.c#6 integrate
.. //depot/projects/hammer/sys/netgraph/netgraph.h#19 integrate
.. //depot/projects/hammer/sys/netgraph/ng_base.c#31 integrate
.. //depot/projects/hammer/sys/netinet/icmp6.h#8 integrate
.. //depot/projects/hammer/sys/netinet/in_pcb.c#36 integrate
.. //depot/projects/hammer/sys/netinet/ip6.h#8 integrate
.. //depot/projects/hammer/sys/netinet/ip_input.c#51 integrate
.. //depot/projects/hammer/sys/netinet/tcp_subr.c#46 integrate
.. //depot/projects/hammer/sys/netinet/tcp_syncache.c#27 integrate
.. //depot/projects/hammer/sys/netinet/tcp_timer.c#17 integrate
.. //depot/projects/hammer/sys/netinet6/in6.h#9 integrate
.. //depot/projects/hammer/sys/netinet6/ip6_input.c#22 integrate
.. //depot/projects/hammer/sys/netinet6/ip6_mroute.h#3 integrate
.. //depot/projects/hammer/sys/netinet6/ip6_output.c#32 integrate
.. //depot/projects/hammer/sys/netinet6/ip6_var.h#13 integrate
.. //depot/projects/hammer/sys/netinet6/mld6.c#11 integrate
.. //depot/projects/hammer/sys/netinet6/nd6.c#18 integrate
.. //depot/projects/hammer/sys/netinet6/raw_ip6.c#19 integrate
.. //depot/projects/hammer/sys/netinet6/udp6_output.c#12 integrate
.. //depot/projects/hammer/sys/netnatm/natm.c#16 integrate
.. //depot/projects/hammer/sys/netnatm/natm.h#5 integrate
.. //depot/projects/hammer/sys/netnatm/natm_pcb.c#6 integrate
.. //depot/projects/hammer/sys/netnatm/natm_proto.c#9 integrate
.. //depot/projects/hammer/sys/nfsclient/nfs.h#18 integrate
.. //depot/projects/hammer/sys/nfsclient/nfs_socket.c#28 integrate
.. //depot/projects/hammer/sys/nfsclient/nfs_subs.c#23 integrate
.. //depot/projects/hammer/sys/pc98/conf/NOTES#47 integrate
.. //depot/projects/hammer/sys/pci/if_de.c#24 integrate
.. //depot/projects/hammer/sys/pci/if_devar.h#8 integrate
.. //depot/projects/hammer/sys/powerpc/include/atomic.h#6 integrate
.. //depot/projects/hammer/sys/security/mac_stub/mac_stub.c#18 integrate
.. //depot/projects/hammer/sys/sparc64/include/atomic.h#4 integrate
.. //depot/projects/hammer/sys/sys/mbuf.h#41 integrate
.. //depot/projects/hammer/sys/sys/mutex.h#20 integrate
.. //depot/projects/hammer/sys/ufs/ffs/ffs_vfsops.c#50 integrate
.. //depot/projects/hammer/sys/vm/swap_pager.c#41 integrate
.. //depot/projects/hammer/sys/vm/uma.h#12 integrate
.. //depot/projects/hammer/sys/vm/uma_core.c#41 integrate
.. //depot/projects/hammer/sys/vm/uma_dbg.c#14 integrate
.. //depot/projects/hammer/sys/vm/uma_dbg.h#7 integrate
.. //depot/projects/hammer/sys/vm/uma_int.h#19 integrate
.. //depot/projects/hammer/sys/vm/vm_map.c#49 integrate
.. //depot/projects/hammer/tools/regression/msdosfs/msdosfstest-4.sh#1 branch
.. //depot/projects/hammer/tools/regression/msdosfs/msdosfstest-5.sh#1 branch
.. //depot/projects/hammer/tools/regression/usr.bin/env/regress-env.rgdata#3 integrate
.. //depot/projects/hammer/tools/tools/ministat/Makefile#6 integrate
.. //depot/projects/hammer/tools/tools/ministat/ministat.c#5 integrate
.. //depot/projects/hammer/tools/tools/tinderbox/etc/Makefile#8 integrate
.. //depot/projects/hammer/tools/tools/tinderbox/etc/current.rc#5 delete
.. //depot/projects/hammer/tools/tools/tinderbox/etc/head.rc#1 branch
.. //depot/projects/hammer/tools/tools/tinderbox/etc/releng_4.rc#7 integrate
.. //depot/projects/hammer/tools/tools/tinderbox/etc/releng_5.rc#7 integrate
.. //depot/projects/hammer/tools/tools/tinderbox/etc/releng_6.rc#1 branch
.. //depot/projects/hammer/tools/tools/tinderbox/etc/stable.rc#2 delete
.. //depot/projects/hammer/tools/tools/tinderbox/etc/update_current.rc#2 delete
.. //depot/projects/hammer/tools/tools/tinderbox/etc/update_head.rc#1 branch
.. //depot/projects/hammer/tools/tools/tinderbox/etc/update_releng_4.rc#3 integrate
.. //depot/projects/hammer/tools/tools/tinderbox/etc/update_releng_5.rc#3 integrate
.. //depot/projects/hammer/tools/tools/tinderbox/etc/update_releng_6.rc#1 branch
.. //depot/projects/hammer/tools/tools/tinderbox/etc/update_stable.rc#2 delete
.. //depot/projects/hammer/tools/tools/tinderbox/tbmaster.1#15 integrate
.. //depot/projects/hammer/tools/tools/tinderbox/tbmaster.pl#24 integrate
.. //depot/projects/hammer/tools/tools/tinderbox/tinderbox.1#9 integrate
.. //depot/projects/hammer/tools/tools/tinderbox/tinderbox.pl#19 integrate
.. //depot/projects/hammer/usr.bin/calendar/calendars/calendar.freebsd#38 integrate
.. //depot/projects/hammer/usr.bin/calendar/calendars/calendar.history#10 integrate
.. //depot/projects/hammer/usr.bin/env/envopts.c#4 integrate
.. //depot/projects/hammer/usr.bin/locate/Makefile#2 integrate
.. //depot/projects/hammer/usr.bin/lorder/lorder.sh#4 integrate
.. //depot/projects/hammer/usr.bin/make/job.c#28 integrate
.. //depot/projects/hammer/usr.bin/netstat/Makefile#7 integrate
.. //depot/projects/hammer/usr.bin/netstat/mbuf.c#9 integrate
.. //depot/projects/hammer/usr.sbin/Makefile#65 integrate
.. //depot/projects/hammer/usr.sbin/boot0cfg/Makefile#3 integrate
.. //depot/projects/hammer/usr.sbin/boot0cfg/boot0cfg.c#9 integrate
.. //depot/projects/hammer/usr.sbin/boot98cfg/Makefile#2 integrate
.. //depot/projects/hammer/usr.sbin/boot98cfg/boot98cfg.c#5 integrate
.. //depot/projects/hammer/usr.sbin/jail/jail.8#24 integrate
.. //depot/projects/hammer/usr.sbin/mergemaster/mergemaster.8#7 integrate
.. //depot/projects/hammer/usr.sbin/moused/moused.8#13 integrate
.. //depot/projects/hammer/usr.sbin/moused/moused.c#12 integrate
.. //depot/projects/hammer/usr.sbin/pcvt/Makefile#2 integrate
.. //depot/projects/hammer/usr.sbin/pcvt/vttest/Makefile#2 delete
.. //depot/projects/hammer/usr.sbin/pcvt/vttest/README#2 delete
.. //depot/projects/hammer/usr.sbin/pcvt/vttest/esc.c#2 delete
.. //depot/projects/hammer/usr.sbin/pcvt/vttest/header.h#2 delete
.. //depot/projects/hammer/usr.sbin/pcvt/vttest/main.c#3 delete
.. //depot/projects/hammer/usr.sbin/pcvt/vttest/vttest.1#2 delete
.. //depot/projects/hammer/usr.sbin/powerd/powerd.c#3 integrate
.. //depot/projects/hammer/usr.sbin/snapinfo/Makefile#1 branch
.. //depot/projects/hammer/usr.sbin/snapinfo/snapinfo.8#1 branch
.. //depot/projects/hammer/usr.sbin/snapinfo/snapinfo.c#1 branch
.. //depot/projects/hammer/usr.sbin/sysinstall/config.c#22 integrate
.. //depot/projects/hammer/usr.sbin/sysinstall/devices.c#16 integrate
.. //depot/projects/hammer/usr.sbin/sysinstall/sysinstall.8#12 integrate
.. //depot/projects/hammer/usr.sbin/ugidfw/ugidfw.c#5 integrate

Differences ...

==== //depot/projects/hammer/Makefile#33 (text+ko) ====

@@ -1,5 +1,5 @@
 #
-# $FreeBSD: src/Makefile,v 1.319 2005/06/16 18:16:12 ru Exp $
+# $FreeBSD: src/Makefile,v 1.321 2005/07/19 11:21:14 ru Exp $
 #
 # The user-driven targets are:
 #
@@ -64,7 +64,7 @@
 #
 TGTS=	all all-man buildenv buildkernel buildworld checkdpadd clean \
 	cleandepend cleandir depend distribute distributeworld \
-	distribution everything \
+	distrib-dirs distribution everything \
 	hierarchy install installcheck installkernel installkernel.debug\
 	reinstallkernel reinstallkernel.debug installworld \
 	kernel-toolchain libraries lint maninstall \
@@ -254,6 +254,7 @@
 # with a reasonable chance of success, regardless of how old your
 # existing system is.
 #
+.if make(universe)
 universe: universe_prologue
 universe_prologue:
 	@echo "--------------------------------------------------------------"
@@ -262,6 +263,9 @@
 .for target in i386 i386:pc98 sparc64 alpha ia64 amd64
 .for arch in ${target:C/:.*$//}
 .for mach in ${target:C/^.*://}
+KERNCONFS!=	cd ${.CURDIR}/sys/${mach}/conf && \
+		find [A-Z]*[A-Z] -type f -maxdepth 0
+KERNCONFS:=	${KERNCONFS:S/^NOTES$/LINT/}
 universe: universe_${mach}
 .ORDER: universe_prologue universe_${mach} universe_epilogue
 universe_${mach}:
@@ -275,7 +279,13 @@
 	-cd ${.CURDIR}/sys/${mach}/conf && ${MAKE} LINT \
 	    > ${.CURDIR}/_.${mach}.makeLINT 2>&1
 .endif
-	cd ${.CURDIR} && ${MAKE} buildkernels TARGET_ARCH=${arch} TARGET=${mach}
+.for kernel in ${KERNCONFS}
+	-cd ${.CURDIR} && ${MAKE} ${JFLAG} buildkernel \
+	    TARGET_ARCH=${arch} TARGET=${mach} \
+	    KERNCONF=${kernel} \
+	    __MAKE_CONF=/dev/null \
+	    > _.${mach}.${kernel} 2>&1
+.endfor
 	@echo ">> ${mach} completed on `LC_ALL=C date`"
 .endfor
 .endfor
@@ -286,15 +296,4 @@
 	@echo ">>> make universe completed on `LC_ALL=C date`"
 	@echo "                      (started ${STARTTIME})"
 	@echo "--------------------------------------------------------------"
-
-.if make(buildkernels)
-KERNCONFS!=	cd ${.CURDIR}/sys/${TARGET}/conf && \
-		find [A-Z]*[A-Z] -type f -maxdepth 0 ! -name NOTES
-buildkernels:
-.for kernel in ${KERNCONFS}
-	-cd ${.CURDIR} && ${MAKE} ${JFLAG} buildkernel \
-	    KERNCONF=${kernel} \
-	    __MAKE_CONF=/dev/null \
-	    > _.${TARGET}.${kernel} 2>&1
-.endfor
 .endif

==== //depot/projects/hammer/Makefile.inc1#97 (text+ko) ====

@@ -1,5 +1,5 @@
 #
-# $FreeBSD: src/Makefile.inc1,v 1.499 2005/07/07 00:58:41 kan Exp $
+# $FreeBSD: src/Makefile.inc1,v 1.500 2005/07/15 14:38:54 ru Exp $
 #
 # Make command line options:
 #	-DNO_DYNAMICROOT do not link /bin and /sbin dynamically
@@ -560,8 +560,8 @@
 	${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 distribute32 DISTRIBUTION=lib32
 .endif
 
-distribution:
-	cd ${.CURDIR}/etc; ${CROSSENV} PATH=${TMPPATH} ${MAKE} distribution
+distrib-dirs distribution:
+	cd ${.CURDIR}/etc; ${CROSSENV} PATH=${TMPPATH} ${MAKE} ${.TARGET}
 
 #
 # buildkernel and installkernel

==== //depot/projects/hammer/contrib/gcc/config/i386/i386.h#10 (text+ko) ====

@@ -614,8 +614,8 @@
       else if (TARGET_ATHLON)					\
 	{							\
 	  builtin_define ("__tune_athlon__");			\
-	  /* Only plain "athlon" lacks SSE.  */			\
-	  if (last_tune_char != 'n')				\
+	  /* Plain "athlon" & "athlon-tbird" lacks SSE.  */	\
+	  if (last_tune_char != 'n' && last_tune_char != 'd')	\
 	    builtin_define ("__tune_athlon_sse__");		\
 	}							\
       else if (TARGET_K8)					\
@@ -679,8 +679,8 @@
 	{							\
 	  builtin_define ("__athlon");				\
 	  builtin_define ("__athlon__");			\
-	  /* Only plain "athlon" lacks SSE.  */			\
-	  if (last_arch_char != 'n')				\
+	  /* Plain "athlon" & "athlon-tbird" lacks SSE.  */	\
+	  if (last_tune_char != 'n' && last_tune_char != 'd')	\
 	    builtin_define ("__athlon_sse__");			\
 	}							\
       else if (ix86_arch == PROCESSOR_K8)			\

==== //depot/projects/hammer/contrib/ncurses/ncurses/tinfo/lib_baudrate.c#2 (text+ko) ====

@@ -31,6 +31,8 @@
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 
+/* $FreeBSD: src/contrib/ncurses/ncurses/tinfo/lib_baudrate.c,v 1.2 2005/07/15 07:41:26 phk Exp $ */
+
 /*
  *	lib_baudrate.c
  *
@@ -46,7 +48,7 @@
  * of the indices up to B115200 fit nicely in a 'short', allowing us to retain
  * ospeed's type for compatibility.
  */
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+#if defined(__NetBSD__) || defined(__OpenBSD__)
 #undef B0
 #undef B50
 #undef B75

==== //depot/projects/hammer/etc/Makefile#40 (text+ko) ====

@@ -1,5 +1,5 @@
 #	from: @(#)Makefile	5.11 (Berkeley) 5/21/91
-# $FreeBSD: src/etc/Makefile,v 1.343 2005/04/29 23:02:56 brooks Exp $
+# $FreeBSD: src/etc/Makefile,v 1.344 2005/07/15 14:52:29 ru Exp $
 
 .if !defined(NO_SENDMAIL)
 SUBDIR=	sendmail
@@ -94,7 +94,7 @@
 		${BIN2} ${DESTDIR}/etc; \
 	    ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 600 \
 		master.passwd nsmb.conf opieaccess ${DESTDIR}/etc; \
-	    pwd_mkdb ${PWD_MKDB_ENDIAN} -p -d ${DESTDIR}/etc \
+	    pwd_mkdb ${PWD_MKDB_ENDIAN} -i -p -d ${DESTDIR}/etc \
 		${DESTDIR}/etc/master.passwd
 	cd ${.CURDIR}/bluetooth; ${MAKE} install
 	cd ${.CURDIR}/defaults; ${MAKE} install

==== //depot/projects/hammer/etc/defaults/rc.conf#56 (text+ko) ====

@@ -15,7 +15,7 @@
 # For a more detailed explanation of all the rc.conf variables, please
 # refer to the rc.conf(5) manual page.
 #
-# $FreeBSD: src/etc/defaults/rc.conf,v 1.252 2005/06/26 16:30:20 pjd Exp $
+# $FreeBSD: src/etc/defaults/rc.conf,v 1.253 2005/07/21 15:17:54 pav Exp $
 
 ##############################################################
 ###  Important initial Boot-time options  ####################
@@ -462,6 +462,9 @@
 			# a.out shared library search paths
 kern_securelevel_enable="NO"	# kernel security level (see init(8)),
 kern_securelevel="-1"	# range: -1..3 ; `-1' is the most insecure
+			# Note that setting securelevel to 0 will result
+			# in the system booting with securelevel set to 1, as
+			# init(8) will raise the level when rc(8) completes.
 update_motd="YES"	# update version info in /etc/motd (or NO)
 unaligned_print="YES"	# print unaligned access warnings on the alpha (or NO).
 entropy_file="/entropy"	# Set to NO to disable caching entropy through reboots.

==== //depot/projects/hammer/gnu/usr.bin/groff/tmac/mdoc.local#23 (text+ko) ====

@@ -22,7 +22,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/gnu/usr.bin/groff/tmac/mdoc.local,v 1.49 2005/07/11 15:48:48 kensmith Exp $
+.\" $FreeBSD: src/gnu/usr.bin/groff/tmac/mdoc.local,v 1.50 2005/07/15 10:27:35 rwatson Exp $
 .\"
 .\"     %beginstrip%
 .
@@ -47,6 +47,7 @@
 .ds doc-str-Lb-libipx      IPX Address Conversion Support Library (libipx, \-lipx)
 .ds doc-str-Lb-libkiconv   Kernel side iconv library (libkiconv, \-lkiconv)
 .ds doc-str-Lb-libmd       Message Digest (MD4, MD5, etc.) Support Library (libmd, \-lmd)
+.ds doc-str-Lb-libmemstat  Kernel Memory Allocator Statistics Library (libmemstat, \-lmemstat)
 .ds doc-str-Lb-libnetgraph Netgraph User Library (libnetgraph, \-lnetgraph)
 .ds doc-str-Lb-libpmc      Performance Monitoring Counters API (libpmc, \-lpmc)
 .ds doc-str-Lb-librpcsvc   RPC Service Library (librpcsvc, \-lrpcsvc)

==== //depot/projects/hammer/gnu/usr.bin/man/apropos/Makefile#2 (text+ko) ====

@@ -1,5 +1,4 @@
-# $FreeBSD: src/gnu/usr.bin/man/apropos/Makefile,v 1.16 2001/04/07 11:21:18 ru Exp $
-MAINTAINER= wosch
+# $FreeBSD: src/gnu/usr.bin/man/apropos/Makefile,v 1.17 2005/07/17 21:18:09 wosch Exp $
 
 SCRIPTS=apropos
 MAN=	apropos.1

==== //depot/projects/hammer/lib/libc/locale/isalnum.3#5 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)isalnum.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/isalnum.3,v 1.19 2004/08/21 07:37:08 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/isalnum.3,v 1.20 2005/07/17 04:11:05 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt ISALNUM 3
 .Os
 .Sh NAME
@@ -56,15 +56,11 @@
 or
 .Xr isdigit 3
 is true.
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The value of the argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
+.Pp
 In the ASCII character set, this includes the following characters
 (with their numeric values shown in octal):
 .Pp
@@ -103,7 +99,6 @@
 .Xr isalpha 3 ,
 .Xr isdigit 3 ,
 .Xr iswalnum 3 ,
-.Xr multibyte 3 ,
 .Xr ascii 7
 .Sh STANDARDS
 The

==== //depot/projects/hammer/lib/libc/locale/isalpha.3#5 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)isalpha.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/isalpha.3,v 1.18 2004/08/21 07:37:08 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/isalpha.3,v 1.19 2005/07/17 04:11:05 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt ISALPHA 3
 .Os
 .Sh NAME
@@ -56,15 +56,11 @@
 or
 .Xr islower 3
 is true.
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The value of the argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
+.Pp
 In the ASCII character set, this includes the following characters
 (with their numeric values shown in octal):
 .Pp
@@ -101,7 +97,6 @@
 .Xr islower 3 ,
 .Xr isupper 3 ,
 .Xr iswalpha 3 ,
-.Xr multibyte 3 ,
 .Xr ascii 7
 .Sh STANDARDS
 The

==== //depot/projects/hammer/lib/libc/locale/isblank.3#7 (text+ko) ====

@@ -30,9 +30,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)isblank.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/isblank.3,v 1.20 2005/01/20 09:17:03 ru Exp $
+.\" $FreeBSD: src/lib/libc/locale/isblank.3,v 1.21 2005/07/17 04:11:05 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt ISBLANK 3
 .Os
 .Sh NAME
@@ -57,13 +57,8 @@
 In the "C" locale
 .Fn isblank
 successful test is limited to this characters only.
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The value of the argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
 .Sh RETURN VALUES
@@ -84,7 +79,6 @@
 .Sh SEE ALSO
 .Xr ctype 3 ,
 .Xr iswblank 3 ,
-.Xr multibyte 3 ,
 .Xr ascii 7
 .Sh STANDARDS
 The

==== //depot/projects/hammer/lib/libc/locale/iscntrl.3#6 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)iscntrl.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/iscntrl.3,v 1.17 2004/08/21 07:37:08 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/iscntrl.3,v 1.18 2005/07/17 04:11:05 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt ISCNTRL 3
 .Os
 .Sh NAME
@@ -52,15 +52,11 @@
 The
 .Fn iscntrl
 function tests for any control character.
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The value of the argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
+.Pp
 In the ASCII character set, this includes the following characters
 (with their numeric values shown in octal):
 .Pp
@@ -91,7 +87,6 @@
 .Sh SEE ALSO
 .Xr ctype 3 ,
 .Xr iswcntrl 3 ,
-.Xr multibyte 3 ,
 .Xr ascii 7
 .Sh STANDARDS
 The

==== //depot/projects/hammer/lib/libc/locale/isdigit.3#6 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)isdigit.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/isdigit.3,v 1.19 2004/08/21 07:37:08 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/isdigit.3,v 1.20 2005/07/17 04:11:05 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt ISDIGIT 3
 .Os
 .Sh NAME
@@ -68,13 +68,8 @@
 but may recognize additional characters, depending on the current locale
 setting.
 .Pp
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The value of the argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
 .Sh RETURN VALUES

==== //depot/projects/hammer/lib/libc/locale/isgraph.3#5 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)isgraph.3	8.2 (Berkeley) 12/11/93
-.\" $FreeBSD: src/lib/libc/locale/isgraph.3,v 1.19 2004/08/21 07:37:08 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/isgraph.3,v 1.20 2005/07/17 04:11:05 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt ISGRAPH 3
 .Os
 .Sh NAME
@@ -55,15 +55,11 @@
 .Pq Ql "\ "
 and other
 locale specific space-like characters.
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The value of the argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
+.Pp
 In the ASCII character set, this includes the following characters
 (with their numeric values shown in octal):
 .Pp
@@ -106,7 +102,6 @@
 .Sh SEE ALSO
 .Xr ctype 3 ,
 .Xr iswgraph 3 ,
-.Xr multibyte 3 ,
 .Xr ascii 7
 .Sh STANDARDS
 The

==== //depot/projects/hammer/lib/libc/locale/islower.3#5 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)islower.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/islower.3,v 1.17 2004/08/21 07:37:08 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/islower.3,v 1.18 2005/07/17 04:11:05 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt ISLOWER 3
 .Os
 .Sh NAME
@@ -52,15 +52,11 @@
 The
 .Fn islower
 function tests for any lower-case letters.
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The value of the argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
+.Pp
 In the ASCII character set, this includes the following characters
 (with their numeric values shown in octal):
 .Pp
@@ -90,7 +86,6 @@
 .Sh SEE ALSO
 .Xr ctype 3 ,
 .Xr iswlower 3 ,
-.Xr multibyte 3 ,
 .Xr tolower 3 ,
 .Xr ascii 7
 .Sh STANDARDS

==== //depot/projects/hammer/lib/libc/locale/isprint.3#5 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)isprint.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/isprint.3,v 1.20 2004/08/21 07:37:08 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/isprint.3,v 1.21 2005/07/17 04:11:05 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt ISPRINT 3
 .Os
 .Sh NAME
@@ -53,15 +53,11 @@
 .Fn isprint
 function tests for any printing character including space
 .Pq Ql "\ " .
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The value of the argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
+.Pp
 In the ASCII character set, this includes the following characters
 (with their numeric values shown in octal):
 .Pp
@@ -104,7 +100,6 @@
 .Sh SEE ALSO
 .Xr ctype 3 ,
 .Xr iswprint 3 ,
-.Xr multibyte 3 ,
 .Xr ascii 7
 .Sh STANDARDS
 The

==== //depot/projects/hammer/lib/libc/locale/ispunct.3#5 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"	@(#)ispunct.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/ispunct.3,v 1.18 2004/08/21 07:37:08 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/ispunct.3,v 1.19 2005/07/17 04:11:05 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt ISPUNCT 3
 .Os
 .Sh NAME
@@ -57,15 +57,11 @@
 character for which
 .Xr isalnum 3
 is true.
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The value of the argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
+.Pp
 In the ASCII character set, this includes the following characters
 (with their numeric values shown in octal):
 .Pp
@@ -96,7 +92,6 @@
 .Sh SEE ALSO
 .Xr ctype 3 ,
 .Xr iswpunct 3 ,
-.Xr multibyte 3 ,
 .Xr ascii 7
 .Sh STANDARDS
 The

==== //depot/projects/hammer/lib/libc/locale/isspace.3#5 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)isspace.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/isspace.3,v 1.17 2004/08/21 07:37:08 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/isspace.3,v 1.18 2005/07/17 04:11:06 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt ISSPACE 3
 .Os
 .Sh NAME
@@ -61,13 +61,8 @@
 In the "C" locale
 .Fn isspace
 successful test is limited to this characters only.
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The value of the argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
 .Sh RETURN VALUES

==== //depot/projects/hammer/lib/libc/locale/isupper.3#5 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)isupper.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/isupper.3,v 1.18 2004/08/21 07:37:08 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/isupper.3,v 1.19 2005/07/17 04:11:06 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt ISUPPER 3
 .Os
 .Sh NAME
@@ -52,15 +52,11 @@
 The
 .Fn isupper
 function tests for any upper-case letter.
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The value of the argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
+.Pp
 In the ASCII character set, this includes the following characters
 (with their numeric values shown in octal):
 .Pp
@@ -90,7 +86,6 @@
 .Sh SEE ALSO
 .Xr ctype 3 ,
 .Xr iswupper 3 ,
-.Xr multibyte 3 ,
 .Xr toupper 3 ,
 .Xr ascii 7
 .Sh STANDARDS

==== //depot/projects/hammer/lib/libc/locale/isxdigit.3#7 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)isxdigit.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/isxdigit.3,v 1.20 2004/08/21 07:37:08 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/isxdigit.3,v 1.21 2005/07/17 04:11:06 tjr Exp $
 .\"
-.Dd August 21, 2004
+.Dd July 17, 2005
 .Dt ISXDIGIT 3
 .Os
 .Sh NAME
@@ -71,13 +71,8 @@
 but may recognize additional characters,
 depending on the current locale setting.
 .Pp
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The value of the argument must be representable as an
+.Vt unsigned char
 or the value of
 .Dv EOF .
 .Sh RETURN VALUES
@@ -98,7 +93,6 @@
 .Sh SEE ALSO
 .Xr ctype 3 ,

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

From owner-p4-projects@FreeBSD.ORG  Thu Jul 21 21:33:47 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 50F4816A423; Thu, 21 Jul 2005 21:33:47 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 24C0B16A41F
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 21:33:47 +0000 (GMT)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id BA16043D55
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 21:33:35 +0000 (GMT)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6LLXZbr026622
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 21:33:35 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6LLXZEL026619
	for perforce@freebsd.org; Thu, 21 Jul 2005 21:33:35 GMT
	(envelope-from peter@freebsd.org)
Date: Thu, 21 Jul 2005 21:33:35 GMT
Message-Id: <200507212133.j6LLXZEL026619@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm <peter@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80705 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jul 2005 21:33:48 -0000

http://perforce.freebsd.org/chv.cgi?CH=80705

Change 80705 by peter@peter_daintree on 2005/07/21 21:33:29

	Grrr.  Make this compile.

Affected files ...

.. //depot/projects/hammer/sys/netgraph/ng_base.c#32 edit

Differences ...

==== //depot/projects/hammer/sys/netgraph/ng_base.c#32 (text+ko) ====

@@ -3260,8 +3260,6 @@
 ng_setisr(node_p node)
 {
 
-	mtx_assert(&ngq->q_mtx, MA_OWNED);
-
 	if ((node->nd_flags & NGF_WORKQ) == 0) {
 		/*
 		 * If we are not already on the work queue,

From owner-p4-projects@FreeBSD.ORG  Thu Jul 21 21:34:55 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id D848616A43D; Thu, 21 Jul 2005 21:34:54 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 9695F16A42A
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 21:34:54 +0000 (GMT)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 3B0BC43D53
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 21:34:37 +0000 (GMT)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6LLYbBI026716
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 21:34:37 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6LLYane026713
	for perforce@freebsd.org; Thu, 21 Jul 2005 21:34:36 GMT
	(envelope-from peter@freebsd.org)
Date: Thu, 21 Jul 2005 21:34:36 GMT
Message-Id: <200507212134.j6LLYane026713@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm <peter@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80706 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jul 2005 21:34:56 -0000

http://perforce.freebsd.org/chv.cgi?CH=80706

Change 80706 by peter@peter_daintree on 2005/07/21 21:33:53

	Integ -b i386_hammer

Affected files ...

.. //depot/projects/hammer/sys/amd64/conf/NOTES#77 integrate
.. //depot/projects/hammer/sys/amd64/include/atomic.h#18 integrate

Differences ...

==== //depot/projects/hammer/sys/amd64/conf/NOTES#77 (text+ko) ====

@@ -4,7 +4,7 @@
 # This file contains machine dependent kernel configuration notes.  For
 # machine independent notes, look in /sys/conf/NOTES.
 #
-# (XXX from i386:NOTES,v 1.1202)
+# (XXX from i386:NOTES,v 1.1204)
 # $FreeBSD: src/sys/amd64/conf/NOTES,v 1.38 2005/07/21 00:18:28 jkim Exp $
 #
 
@@ -297,6 +297,8 @@
 #
 # Miscellaneous hardware:
 #
+# smbios: DMI/SMBIOS entry point
+# vpd: Vital Product Data kernel interface
 # cy: Cyclades serial driver
 # digi: Digiboard driver
 # smbios: DMI/SMBIOS entry point
@@ -323,6 +325,7 @@
 hint.pbio.0.at="isa"
 hint.pbio.0.port="0x360"
 device		smbios
+device		vpd
 # sx device is i386 and pc98 only at the moment.
 device		sx
 options 	SX_DEBUG

==== //depot/projects/hammer/sys/amd64/include/atomic.h#18 (text+ko) ====


From owner-p4-projects@FreeBSD.ORG  Thu Jul 21 21:34:57 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 2F4E216A45B; Thu, 21 Jul 2005 21:34:55 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 B5B7816A434
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 21:34:54 +0000 (GMT)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id E749F43D45
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 21:34:37 +0000 (GMT)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6LLYbeG026722
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 21:34:37 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6LLYb3I026719
	for perforce@freebsd.org; Thu, 21 Jul 2005 21:34:37 GMT
	(envelope-from peter@freebsd.org)
Date: Thu, 21 Jul 2005 21:34:37 GMT
Message-Id: <200507212134.j6LLYb3I026719@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm <peter@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80707 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jul 2005 21:34:57 -0000

http://perforce.freebsd.org/chv.cgi?CH=80707

Change 80707 by peter@peter_daintree on 2005/07/21 21:34:00

	add vpd module

Affected files ...

.. //depot/projects/hammer/sys/conf/files.amd64#76 edit

Differences ...

==== //depot/projects/hammer/sys/conf/files.amd64#76 (text+ko) ====

@@ -236,6 +236,7 @@
 compat/ndis/subr_usbd.c		optional	ndisapi pci
 compat/ndis/winx64_wrap.S	optional	ndisapi pci
 i386/bios/smbios.c		optional	smbios
+i386/bios/vpd.c			optional	vpd
 i386/cpufreq/powernow.c		optional	cpufreq
 i386/cpufreq/est.c		optional	cpufreq
 i386/cpufreq/p4tcc.c		optional	cpufreq

From owner-p4-projects@FreeBSD.ORG  Thu Jul 21 21:47:54 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 6C4E416A421; Thu, 21 Jul 2005 21:47:54 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 2E69316A41F
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 21:47:54 +0000 (GMT)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id F3A9243D48
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 21:47:53 +0000 (GMT)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6LLlrNY027264
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 21:47:53 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6LLlr20027261
	for perforce@freebsd.org; Thu, 21 Jul 2005 21:47:53 GMT
	(envelope-from peter@freebsd.org)
Date: Thu, 21 Jul 2005 21:47:53 GMT
Message-Id: <200507212147.j6LLlr20027261@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm <peter@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80708 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jul 2005 21:47:55 -0000

http://perforce.freebsd.org/chv.cgi?CH=80708

Change 80708 by peter@peter_daintree on 2005/07/21 21:47:49

	Remove the temporary hack that used direct maps instead of
	temporary ephemeral mappings.

Affected files ...

.. //depot/projects/hammer/sys/amd64/amd64/uio_machdep.c#8 edit

Differences ...

==== //depot/projects/hammer/sys/amd64/amd64/uio_machdep.c#8 (text+ko) ====

@@ -48,10 +48,6 @@
 
 #include <vm/vm.h>
 #include <vm/vm_page.h>
-#ifdef NODMAP
-#include <vm/vm_extern.h>
-#include <vm/vm_kern.h>
-#endif
 
 #include <machine/vmparam.h>
 
@@ -69,17 +65,11 @@
 	size_t cnt;
 	int error = 0;
 	int save = 0;
-#ifdef NODMAP
-	vm_offset_t kva;
-#endif
 
 	KASSERT(uio->uio_rw == UIO_READ || uio->uio_rw == UIO_WRITE,
 	    ("uiomove_fromphys: mode"));
 	KASSERT(uio->uio_segflg != UIO_USERSPACE || uio->uio_td == curthread,
 	    ("uiomove_fromphys proc"));
-#ifdef NODMAP
-	kva = kmem_alloc_nofault(kernel_map, PAGE_SIZE);
-#endif
 	save = td->td_pflags & TDP_DEADLKTREAT;
 	td->td_pflags |= TDP_DEADLKTREAT;
 	while (n > 0 && uio->uio_resid) {
@@ -94,13 +84,8 @@
 			cnt = n;
 		page_offset = offset & PAGE_MASK;
 		cnt = min(cnt, PAGE_SIZE - page_offset);
-#ifdef NODMAP
-		pmap_qenter(kva, &ma[offset >> PAGE_SHIFT], 1);
-		cp = (char *)kva + page_offset;
-#else
 		cp = (char *)PHYS_TO_DMAP(ma[offset >> PAGE_SHIFT]->phys_addr) +
 		    page_offset;
-#endif
 		switch (uio->uio_segflg) {
 		case UIO_USERSPACE:
 			if (ticks - PCPU_GET(switchticks) >= hogticks)
@@ -131,9 +116,5 @@
 out:
 	if (save == 0)
 		td->td_pflags &= ~TDP_DEADLKTREAT;
-#ifdef NODMAP
-	pmap_qremove(kva, 1);
-	kmem_free(kernel_map, kva, PAGE_SIZE);
-#endif
 	return (error);
 }

From owner-p4-projects@FreeBSD.ORG  Thu Jul 21 22:39:09 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id A060816A425; Thu, 21 Jul 2005 22:39:08 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 5D9F216A425
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 22:39:08 +0000 (GMT)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 9B74843D77
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 22:39:05 +0000 (GMT)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6LMd5xk029510
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 22:39:05 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6LMd5al029507
	for perforce@freebsd.org; Thu, 21 Jul 2005 22:39:05 GMT
	(envelope-from peter@freebsd.org)
Date: Thu, 21 Jul 2005 22:39:05 GMT
Message-Id: <200507212239.j6LMd5al029507@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm <peter@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80716 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jul 2005 22:39:09 -0000

http://perforce.freebsd.org/chv.cgi?CH=80716

Change 80716 by peter@peter_daintree on 2005/07/21 22:38:49

	add freebsd32_context.c (from kern_context.c)

Affected files ...

.. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_context.c#1 add

Differences ...

From owner-p4-projects@FreeBSD.ORG  Thu Jul 21 22:42:25 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 2E13116A42C; Thu, 21 Jul 2005 22:42:25 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 08ABC16A426
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 22:42:25 +0000 (GMT)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id E6FF743DAC
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 22:42:09 +0000 (GMT)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6LMg9JB029659
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 22:42:09 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6LMg956029656
	for perforce@freebsd.org; Thu, 21 Jul 2005 22:42:09 GMT
	(envelope-from peter@freebsd.org)
Date: Thu, 21 Jul 2005 22:42:09 GMT
Message-Id: <200507212242.j6LMg956029656@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm <peter@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80717 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jul 2005 22:42:26 -0000

http://perforce.freebsd.org/chv.cgi?CH=80717

Change 80717 by peter@peter_daintree on 2005/07/21 22:41:28

	Whoops. This isn't convenient to put here because of private backend
	structure naming variations.

Affected files ...

.. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_context.c#2 delete

Differences ...

From owner-p4-projects@FreeBSD.ORG  Thu Jul 21 23:25:03 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 6B81B16A50C; Thu, 21 Jul 2005 23:25:03 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 23E0616A508
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 23:25:03 +0000 (GMT)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 5944A43D77
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 23:25:02 +0000 (GMT)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6LNP2P3031389
	for <perforce@freebsd.org>; Thu, 21 Jul 2005 23:25:02 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6LNP1bQ031386
	for perforce@freebsd.org; Thu, 21 Jul 2005 23:25:01 GMT
	(envelope-from peter@freebsd.org)
Date: Thu, 21 Jul 2005 23:25:01 GMT
Message-Id: <200507212325.j6LNP1bQ031386@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm <peter@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80719 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jul 2005 23:25:04 -0000

http://perforce.freebsd.org/chv.cgi?CH=80719

Change 80719 by peter@peter_daintree on 2005/07/21 23:24:36

	implement getcontext/setcontext/swapcontext(2) wrappers

Affected files ...

.. //depot/projects/hammer/sys/amd64/ia32/ia32_signal.c#14 edit
.. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_proto.h#31 edit
.. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_syscall.h#29 edit
.. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_syscalls.c#29 edit
.. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_sysent.c#29 edit
.. //depot/projects/hammer/sys/compat/freebsd32/syscalls.master#33 edit

Differences ...

==== //depot/projects/hammer/sys/amd64/ia32/ia32_signal.c#14 (text+ko) ====

@@ -92,38 +92,14 @@
 static void
 ia32_get_fpcontext(struct thread *td, struct ia32_mcontext *mcp)
 {
-	struct savefpu *addr;
 
-	/*
-	 * XXX mc_fpstate might be misaligned, since its declaration is not
-	 * unportabilized using __attribute__((aligned(16))) like the
-	 * declaration of struct savemm, and anyway, alignment doesn't work
-	 * for auto variables since we don't use gcc's pessimal stack
-	 * alignment.  Work around this by abusing the spare fields after
-	 * mcp->mc_fpstate.
-	 *
-	 * XXX unpessimize most cases by only aligning when fxsave might be
-	 * called, although this requires knowing too much about
-	 * fpugetregs()'s internals.
-	 */
-	addr = (struct savefpu *)&mcp->mc_fpstate;
-	if (td == PCPU_GET(fpcurthread) && ((uintptr_t)(void *)addr & 0xF)) {
-		do
-			addr = (void *)((char *)addr + 4);
-		while ((uintptr_t)(void *)addr & 0xF);
-	}
-	mcp->mc_ownedfp = fpugetregs(td, addr);
-	if (addr != (struct savefpu *)&mcp->mc_fpstate) {
-		bcopy(addr, &mcp->mc_fpstate, sizeof(mcp->mc_fpstate));
-		bzero(&mcp->mc_spare2, sizeof(mcp->mc_spare2));
-	}
+	mcp->mc_ownedfp = fpugetregs(td, (struct savefpu *)&mcp->mc_fpstate);
 	mcp->mc_fpformat = fpuformat();
 }
 
 static int
 ia32_set_fpcontext(struct thread *td, const struct ia32_mcontext *mcp)
 {
-	struct savefpu *addr;
 
 	if (mcp->mc_fpformat == _MC_FPFMT_NODEV)
 		return (0);
@@ -134,31 +110,180 @@
 		fpstate_drop(td);
 	else if (mcp->mc_ownedfp == _MC_FPOWNED_FPU ||
 	    mcp->mc_ownedfp == _MC_FPOWNED_PCB) {
-		/* XXX align as above. */
-		addr = (struct savefpu *)&mcp->mc_fpstate;
-		if (td == PCPU_GET(fpcurthread) &&
-		    ((uintptr_t)(void *)addr & 0xF)) {
-			do
-				addr = (void *)((char *)addr + 4);
-			while ((uintptr_t)(void *)addr & 0xF);
-			bcopy(&mcp->mc_fpstate, addr, sizeof(mcp->mc_fpstate));
-		}
 		/*
 		 * XXX we violate the dubious requirement that fpusetregs()
 		 * be called with interrupts disabled.
 		 */
-		fpusetregs(td, addr);
-		/*
-		 * Don't bother putting things back where they were in the
-		 * misaligned case, since we know that the caller won't use
-		 * them again.
-		 */
+		fpusetregs(td, (struct savefpu *)&mcp->mc_fpstate);
 	} else
 		return (EINVAL);
 	return (0);
 }
 
 /*
+ * Get machine context.
+ */
+static int
+ia32_get_mcontext(struct thread *td, struct ia32_mcontext *mcp, int flags)
+{
+	struct trapframe *tp;
+
+	tp = td->td_frame;
+
+	PROC_LOCK(curthread->td_proc);
+	mcp->mc_onstack = sigonstack(tp->tf_rsp);
+	PROC_UNLOCK(curthread->td_proc);
+	mcp->mc_gs = td->td_pcb->pcb_gs;
+	mcp->mc_fs = td->td_pcb->pcb_fs;
+	mcp->mc_es = td->td_pcb->pcb_es;
+	mcp->mc_ds = td->td_pcb->pcb_ds;
+	mcp->mc_edi = tp->tf_rdi;
+	mcp->mc_esi = tp->tf_rsi;
+	mcp->mc_ebp = tp->tf_rbp;
+	mcp->mc_isp = tp->tf_rsp;
+	if (flags & GET_MC_CLEAR_RET) {
+		mcp->mc_eax = 0;
+		mcp->mc_edx = 0;
+	} else {
+		mcp->mc_eax = tp->tf_rax;
+		mcp->mc_edx = tp->tf_rdx;
+	}
+	mcp->mc_ebx = tp->tf_rbx;
+	mcp->mc_ecx = tp->tf_rcx;
+	mcp->mc_eip = tp->tf_rip;
+	mcp->mc_cs = tp->tf_cs;
+	mcp->mc_eflags = tp->tf_rflags;
+	mcp->mc_esp = tp->tf_rsp;
+	mcp->mc_ss = tp->tf_ss;
+	mcp->mc_len = sizeof(*mcp);
+	ia32_get_fpcontext(td, mcp);
+	return (0);
+}
+
+/*
+ * Set machine context.
+ *
+ * However, we don't set any but the user modifiable flags, and we won't
+ * touch the cs selector.
+ */
+static int
+ia32_set_mcontext(struct thread *td, const struct ia32_mcontext *mcp)
+{
+	struct trapframe *tp;
+	long rflags;
+	int ret;
+
+	tp = td->td_frame;
+	if (mcp->mc_len != sizeof(*mcp))
+		return (EINVAL);
+	rflags = (mcp->mc_eflags & PSL_USERCHANGE) |
+	    (tp->tf_rflags & ~PSL_USERCHANGE);
+	ret = ia32_set_fpcontext(td, mcp);
+	if (ret != 0)
+		return (ret);
+#if 0	/* XXX deal with load_fs() and friends */
+	tp->tf_fs = mcp->mc_fs;
+	tp->tf_es = mcp->mc_es;
+	tp->tf_ds = mcp->mc_ds;
+#endif
+	tp->tf_rdi = mcp->mc_edi;
+	tp->tf_rsi = mcp->mc_esi;
+	tp->tf_rbp = mcp->mc_ebp;
+	tp->tf_rbx = mcp->mc_ebx;
+	tp->tf_rdx = mcp->mc_edx;
+	tp->tf_rcx = mcp->mc_ecx;
+	tp->tf_rax = mcp->mc_eax;
+	/* trapno, err */
+	tp->tf_rip = mcp->mc_eip;
+	tp->tf_rflags = rflags;
+	tp->tf_rsp = mcp->mc_esp;
+	tp->tf_ss = mcp->mc_ss;
+#if 0	/* XXX deal with load_gs() and friends */
+	td->td_pcb->pcb_gs = mcp->mc_gs;
+#endif
+	td->td_pcb->pcb_flags |= PCB_FULLCTX;
+	return (0);
+}
+
+/*
+ * The first two fields of a ucontext_t are the signal mask and
+ * the machine context.  The next field is uc_link; we want to
+ * avoid destroying the link when copying out contexts.
+ */
+#define	UC_COPY_SIZE	offsetof(struct ia32_ucontext, uc_link)
+
+int
+freebsd32_getcontext(struct thread *td, struct freebsd32_getcontext_args *uap)
+{
+	struct ia32_ucontext uc;
+	int ret;
+
+	if (uap->ucp == NULL)
+		ret = EINVAL;
+	else {
+		ia32_get_mcontext(td, &uc.uc_mcontext, GET_MC_CLEAR_RET);
+		PROC_LOCK(td->td_proc);
+		uc.uc_sigmask = td->td_sigmask;
+		PROC_UNLOCK(td->td_proc);
+		ret = copyout(&uc, uap->ucp, UC_COPY_SIZE);
+	}
+	return (ret);
+}
+
+int
+freebsd32_setcontext(struct thread *td, struct freebsd32_setcontext_args *uap)
+{
+	struct ia32_ucontext uc;
+	int ret;	
+
+	if (uap->ucp == NULL)
+		ret = EINVAL;
+	else {
+		ret = copyin(uap->ucp, &uc, UC_COPY_SIZE);
+		if (ret == 0) {
+			ret = ia32_set_mcontext(td, &uc.uc_mcontext);
+			if (ret == 0) {
+				SIG_CANTMASK(uc.uc_sigmask);
+				PROC_LOCK(td->td_proc);
+				td->td_sigmask = uc.uc_sigmask;
+				PROC_UNLOCK(td->td_proc);
+			}
+		}
+	}
+	return (ret == 0 ? EJUSTRETURN : ret);
+}
+
+int
+freebsd32_swapcontext(struct thread *td, struct freebsd32_swapcontext_args *uap)
+{
+	struct ia32_ucontext uc;
+	int ret;	
+
+	if (uap->oucp == NULL || uap->ucp == NULL)
+		ret = EINVAL;
+	else {
+		ia32_get_mcontext(td, &uc.uc_mcontext, GET_MC_CLEAR_RET);
+		PROC_LOCK(td->td_proc);
+		uc.uc_sigmask = td->td_sigmask;
+		PROC_UNLOCK(td->td_proc);
+		ret = copyout(&uc, uap->oucp, UC_COPY_SIZE);
+		if (ret == 0) {
+			ret = copyin(uap->ucp, &uc, UC_COPY_SIZE);
+			if (ret == 0) {
+				ret = ia32_set_mcontext(td, &uc.uc_mcontext);
+				if (ret == 0) {
+					SIG_CANTMASK(uc.uc_sigmask);
+					PROC_LOCK(td->td_proc);
+					td->td_sigmask = uc.uc_sigmask;
+					PROC_UNLOCK(td->td_proc);
+				}
+			}
+		}
+	}
+	return (ret == 0 ? EJUSTRETURN : ret);
+}
+
+/*
  * Send an interrupt to process.
  *
  * Stack is set up to allow sigcode stored

==== //depot/projects/hammer/sys/compat/freebsd32/freebsd32_proto.h#31 (text+ko) ====

@@ -2,7 +2,7 @@
  * System call prototypes.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.39 2005/07/13 20:35:08 jhb Exp $
+ * $FreeBSD$
  * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.51 2005/07/13 20:32:42 jhb Exp 
  */
 
@@ -225,6 +225,16 @@
 struct freebsd32_sigreturn_args {
 	char sigcntxp_l_[PADL_(const struct freebsd32_ucontext *)]; const struct freebsd32_ucontext * sigcntxp; char sigcntxp_r_[PADR_(const struct freebsd32_ucontext *)];
 };
+struct freebsd32_getcontext_args {
+	char ucp_l_[PADL_(struct freebsd32_ucontext *)]; struct freebsd32_ucontext * ucp; char ucp_r_[PADR_(struct freebsd32_ucontext *)];
+};
+struct freebsd32_setcontext_args {
+	char ucp_l_[PADL_(const struct freebsd32_ucontext *)]; const struct freebsd32_ucontext * ucp; char ucp_r_[PADR_(const struct freebsd32_ucontext *)];
+};
+struct freebsd32_swapcontext_args {
+	char oucp_l_[PADL_(struct freebsd32_ucontext *)]; struct freebsd32_ucontext * oucp; char oucp_r_[PADR_(struct freebsd32_ucontext *)];
+	char ucp_l_[PADL_(const struct freebsd32_ucontext *)]; const struct freebsd32_ucontext * ucp; char ucp_r_[PADR_(const struct freebsd32_ucontext *)];
+};
 int	freebsd32_wait4(struct thread *, struct freebsd32_wait4_args *);
 int	freebsd32_sigaltstack(struct thread *, struct freebsd32_sigaltstack_args *);
 int	freebsd32_execve(struct thread *, struct freebsd32_execve_args *);
@@ -259,6 +269,9 @@
 int	freebsd32_sendfile(struct thread *, struct freebsd32_sendfile_args *);
 int	freebsd32_sigaction(struct thread *, struct freebsd32_sigaction_args *);
 int	freebsd32_sigreturn(struct thread *, struct freebsd32_sigreturn_args *);
+int	freebsd32_getcontext(struct thread *, struct freebsd32_getcontext_args *);
+int	freebsd32_setcontext(struct thread *, struct freebsd32_setcontext_args *);
+int	freebsd32_swapcontext(struct thread *, struct freebsd32_swapcontext_args *);
 
 #ifdef COMPAT_43
 

==== //depot/projects/hammer/sys/compat/freebsd32/freebsd32_syscall.h#29 (text+ko) ====

@@ -2,7 +2,7 @@
  * System call numbers.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.39 2005/07/13 20:35:08 jhb Exp $
+ * $FreeBSD$
  * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.51 2005/07/13 20:32:42 jhb Exp 
  */
 
@@ -294,6 +294,9 @@
 #define	FREEBSD32_SYS_fhstatfs	398
 #define	FREEBSD32_SYS_freebsd32_sigaction	416
 #define	FREEBSD32_SYS_freebsd32_sigreturn	417
+#define	FREEBSD32_SYS_freebsd32_getcontext	421
+#define	FREEBSD32_SYS_freebsd32_setcontext	422
+#define	FREEBSD32_SYS_freebsd32_swapcontext	423
 #define	FREEBSD32_SYS_thr_create	430
 #define	FREEBSD32_SYS_thr_exit	431
 #define	FREEBSD32_SYS_thr_self	432

==== //depot/projects/hammer/sys/compat/freebsd32/freebsd32_syscalls.c#29 (text+ko) ====

@@ -2,7 +2,7 @@
  * System call names.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.30 2005/07/13 20:35:08 jhb Exp $
+ * $FreeBSD$
  * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.51 2005/07/13 20:32:42 jhb Exp 
  */
 
@@ -428,9 +428,9 @@
 	"#418",			/* 418 = __xstat */
 	"#419",			/* 419 = __xfstat */
 	"#420",			/* 420 = __xlstat */
-	"#421",			/* 421 = getcontext */
-	"#422",			/* 422 = setcontext */
-	"#423",			/* 423 = swapcontext */
+	"freebsd32_getcontext",			/* 421 = freebsd32_getcontext */
+	"freebsd32_setcontext",			/* 422 = freebsd32_setcontext */
+	"freebsd32_swapcontext",			/* 423 = freebsd32_swapcontext */
 	"#424",			/* 424 = swapoff */
 	"#425",			/* 425 = __acl_get_link */
 	"#426",			/* 426 = __acl_set_link */

==== //depot/projects/hammer/sys/compat/freebsd32/freebsd32_sysent.c#29 (text+ko) ====

@@ -2,7 +2,7 @@
  * System call switch table.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.40 2005/07/13 20:35:08 jhb Exp $
+ * $FreeBSD$
  * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.51 2005/07/13 20:32:42 jhb Exp 
  */
 
@@ -447,9 +447,9 @@
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 418 = __xstat */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 419 = __xfstat */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 420 = __xlstat */
-	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 421 = getcontext */
-	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 422 = setcontext */
-	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 423 = swapcontext */
+	{ SYF_MPSAFE | AS(freebsd32_getcontext_args), (sy_call_t *)freebsd32_getcontext, AUE_NULL },	/* 421 = freebsd32_getcontext */
+	{ SYF_MPSAFE | AS(freebsd32_setcontext_args), (sy_call_t *)freebsd32_setcontext, AUE_NULL },	/* 422 = freebsd32_setcontext */
+	{ SYF_MPSAFE | AS(freebsd32_swapcontext_args), (sy_call_t *)freebsd32_swapcontext, AUE_NULL },	/* 423 = freebsd32_swapcontext */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 424 = swapoff */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 425 = __acl_get_link */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 426 = __acl_set_link */

==== //depot/projects/hammer/sys/compat/freebsd32/syscalls.master#33 (text+ko) ====

@@ -693,12 +693,13 @@
 418	AUE_NULL	UNIMPL	__xstat
 419	AUE_NULL	UNIMPL	__xfstat
 420	AUE_NULL	UNIMPL	__xlstat
-; XXX implement
-421	AUE_NULL	UNIMPL	getcontext
-; XXX implement
-422	AUE_NULL	UNIMPL	setcontext
-; XXX implement
-423	AUE_NULL	UNIMPL	swapcontext
+421	AUE_NULL	MSTD	{ int freebsd32_getcontext( \
+				    struct freebsd32_ucontext *ucp); }
+422	AUE_NULL	MSTD	{ int freebsd32_setcontext( \
+				    const struct freebsd32_ucontext *ucp); }
+423	AUE_NULL	MSTD	{ int freebsd32_swapcontext( \
+				    struct freebsd32_ucontext *oucp, \
+				    const struct freebsd32_ucontext *ucp); }
 424	AUE_NULL	UNIMPL	swapoff
 425	AUE_NULL	UNIMPL	__acl_get_link
 426	AUE_NULL	UNIMPL	__acl_set_link

From owner-p4-projects@FreeBSD.ORG  Fri Jul 22 00:07:07 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id BF58116A426; Fri, 22 Jul 2005 00:07:06 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 7B28716A41F
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 00:07:06 +0000 (GMT)
	(envelope-from soc-saturnero@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 8E79543D8A
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 00:06:53 +0000 (GMT)
	(envelope-from soc-saturnero@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6M06raQ033014
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 00:06:53 GMT
	(envelope-from soc-saturnero@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6M06rsc033011
	for perforce@freebsd.org; Fri, 22 Jul 2005 00:06:53 GMT
	(envelope-from soc-saturnero@freebsd.org)
Date: Fri, 22 Jul 2005 00:06:53 GMT
Message-Id: <200507220006.j6M06rsc033011@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-saturnero@freebsd.org using -f
From: soc-saturnero <soc-saturnero@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80721 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jul 2005 00:07:07 -0000

http://perforce.freebsd.org/chv.cgi?CH=80721

Change 80721 by soc-saturnero@soc-saturnero_sberta on 2005/07/22 00:06:37

	Added clonefs target
	Added options NO_COMPRESSEDFS and NO_UNIONFS

Affected files ...

.. //depot/projects/soc2005/freesbie/Makefile#5 edit
.. //depot/projects/soc2005/freesbie/ToDo#3 edit
.. //depot/projects/soc2005/freesbie/conf/freesbie.defaults.conf#5 edit
.. //depot/projects/soc2005/freesbie/scripts/clonefs.sh#1 add

Differences ...

==== //depot/projects/soc2005/freesbie/Makefile#5 (text+ko) ====

@@ -7,7 +7,7 @@
 
 all: freesbie
 
-freesbie: buildworld buildkernel installworld installkernel
+freesbie: buildworld buildkernel installworld installkernel clonefs
 
 buildworld: .done_buildworld
 .done_buildworld:
@@ -37,6 +37,13 @@
 	@sh ./scripts/launch.sh installkernel .tmp_installkernel
 	@mv .tmp_installkernel .done_installkernel
 
+clonefs: .done_clonefs
+.done_clonefs: .done_installkernel
+	@-rm -f .tmp_clonefs
+	@touch .tmp_clonefs
+	@sh ./scripts/launch.sh clonefs .tmp_clonefs
+	@mv .tmp_clonefs .done_clonefs
+
 clean:
 	@-rm -f .tmp* .done* > /dev/null 2>&1
 

==== //depot/projects/soc2005/freesbie/ToDo#3 (text+ko) ====

@@ -1,3 +1,13 @@
+- Write freesbie rcNG script
+- Add a new target (patch?) for
+	- creating loader.conf
+	- creating rc.conf
+	- copying freesbie rcNG script
+
+- Add FILE_LIST support to clonefs
+- Add PRUNE_LIST support to clonefs
+
+
 List of files to be created:
 
 /

==== //depot/projects/soc2005/freesbie/conf/freesbie.defaults.conf#5 (text+ko) ====

@@ -57,5 +57,13 @@
 #
 #NO_BUILDKERNEL=YES
 
+# Define NO_COMPRESSEDFS if you don't want to have compressed fs
+# inside the resulting image.
+#
+#NO_COMPRESSEDFS=YES
 
+# Define NO_UNIONFS if you want to avoid using unionfs in the built
+# system
+#
+#NO_UNIONFS=YES
 

From owner-p4-projects@FreeBSD.ORG  Fri Jul 22 00:20:11 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id B1E2D16A428; Fri, 22 Jul 2005 00:20:10 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 5853716A426
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 00:20:10 +0000 (GMT)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 2663043D46
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 00:20:10 +0000 (GMT)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6M0K9Ic033432
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 00:20:09 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6M0K945033429
	for perforce@freebsd.org; Fri, 22 Jul 2005 00:20:09 GMT
	(envelope-from peter@freebsd.org)
Date: Fri, 22 Jul 2005 00:20:09 GMT
Message-Id: <200507220020.j6M0K945033429@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm <peter@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80722 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jul 2005 00:20:11 -0000

http://perforce.freebsd.org/chv.cgi?CH=80722

Change 80722 by peter@peter_melody on 2005/07/22 00:19:09

	enable 32 bit gdb to work in a 64 bit universe

Affected files ...

.. //depot/projects/hammer/contrib/gdb/gdb/solib-svr4.c#3 edit
.. //depot/projects/hammer/sys/conf/files#119 edit

Differences ...

==== //depot/projects/hammer/contrib/gdb/gdb/solib-svr4.c#3 (text+ko) ====

@@ -1027,7 +1027,14 @@
          be trivial on GNU/Linux).  Therefore, we have to try an alternate
          mechanism to find the dynamic linker's base address.  */
 
-      tmp_fd  = solib_open (buf, &tmp_pathname);
+#if defined(__i386__) || defined(COMPAT_32BIT)
+      if ((strcmp(buf, "/usr/libexec/ld-elf.so.1") == 0 ||
+	   strcmp(buf, "/libexec/ld-elf.so.1") == 0) &&
+	  access("/libexec/ld-elf32.so.1", 0) == 0)
+	tmp_fd  = solib_open ("/libexec/ld-elf32.so.1", &tmp_pathname);
+      else
+#endif
+	tmp_fd  = solib_open (buf, &tmp_pathname);
       if (tmp_fd >= 0)
 	tmp_bfd = bfd_fdopenr (tmp_pathname, gnutarget, tmp_fd);
 

==== //depot/projects/hammer/sys/conf/files#119 (text+ko) ====

@@ -1298,6 +1298,7 @@
 kern/vfs_subr.c			standard
 kern/vfs_syscalls.c		standard
 kern/vfs_vnops.c		standard
+kern/ylock.c			optional ylock
 #
 # These files in libkern/ are those needed by all architectures.  Some
 # of the files in libkern/ are only needed on some architectures, e.g.,

From owner-p4-projects@FreeBSD.ORG  Fri Jul 22 00:23:30 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 8A90C16A426; Fri, 22 Jul 2005 00:23:29 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 638B516A424
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 00:23:29 +0000 (GMT)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 712F443DA9
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 00:23:14 +0000 (GMT)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6M0NEEv033601
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 00:23:14 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6M0NEN6033598
	for perforce@freebsd.org; Fri, 22 Jul 2005 00:23:14 GMT
	(envelope-from peter@freebsd.org)
Date: Fri, 22 Jul 2005 00:23:14 GMT
Message-Id: <200507220023.j6M0NEN6033598@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm <peter@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80723 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jul 2005 00:23:30 -0000

http://perforce.freebsd.org/chv.cgi?CH=80723

Change 80723 by peter@peter_melody on 2005/07/22 00:23:04

	build/install gcore32 and ldd32

Affected files ...

.. //depot/projects/hammer/Makefile.inc1#98 edit
.. //depot/projects/hammer/usr.bin/gcore/Makefile#4 edit
.. //depot/projects/hammer/usr.bin/ldd/Makefile#3 edit

Differences ...

==== //depot/projects/hammer/Makefile.inc1#98 (text+ko) ====

@@ -411,6 +411,10 @@
 	    ${LIB32MAKE} DESTDIR=${LIB32TMP} ${_t}
 	cd ${.CURDIR}/gnu/lib; \
 	    ${LIB32MAKE} DESTDIR=${LIB32TMP} ${_t}
+	cd ${.CURDIR}/usr.bin/ldd; \
+	    ${LIB32MAKE} DESTDIR=${LIB32TMP} ${_t}
+	cd ${.CURDIR}/usr.bin/gcore; \
+	    ${LIB32MAKE} DESTDIR=${LIB32TMP} ${_t}
 .if !defined(NO_CRYPT)
 	cd ${.CURDIR}/secure/lib; \
 	    ${LIB32MAKE} DESTDIR=${LIB32TMP} ${_t}
@@ -435,6 +439,10 @@
 .for _t in obj depend all
 	cd ${.CURDIR}/libexec/rtld-elf; \
 	    PROG=ld-elf32.so.1 ${LIB32MAKE} DESTDIR=${LIB32TMP} ${_t}
+	cd ${.CURDIR}/usr.bin/ldd; \
+	    PROG=ldd32 ${LIB32MAKE} DESTDIR=${LIB32TMP} ${_t}
+	cd ${.CURDIR}/usr.bin/gcore; \
+	    PROG=gcore32 ${LIB32MAKE} DESTDIR=${LIB32TMP} ${_t}
 .endfor
 
 distribute32 install32:
@@ -449,6 +457,8 @@
 	cd ${.CURDIR}/secure/lib; ${LIB32MAKE} ${.TARGET:S/32$//}
 .endif
 	cd ${.CURDIR}/libexec/rtld-elf; PROG=ld-elf32.so.1 ${LIB32MAKE} ${.TARGET:S/32$//}
+	cd ${.CURDIR}/usr.bin/ldd; PROG=ldd32 ${LIB32MAKE} ${.TARGET:S/32$//}
+	cd ${.CURDIR}/usr.bin/gcore; PROG=gcore32 ${LIB32MAKE} ${.TARGET:S/32$//}
 .endif
 
 

==== //depot/projects/hammer/usr.bin/gcore/Makefile#4 (text+ko) ====

@@ -1,7 +1,7 @@
 #	@(#)Makefile	8.1 (Berkeley) 6/6/93
 # $FreeBSD: src/usr.bin/gcore/Makefile,v 1.9 2004/11/27 06:46:48 das Exp $
 
-PROG=	gcore
+PROG?=	gcore
 SRCS=	elfcore.c gcore.c
 
 .include <bsd.prog.mk>

==== //depot/projects/hammer/usr.bin/ldd/Makefile#3 (text+ko) ====

@@ -1,6 +1,6 @@
 # $FreeBSD: src/usr.bin/ldd/Makefile,v 1.13 2004/06/29 21:13:15 dwmalone Exp $
 
-PROG=		ldd
+PROG?=		ldd
 SRCS=		ldd.c
 .if ${MACHINE_ARCH} == "i386"
 SRCS+=		sods.c

From owner-p4-projects@FreeBSD.ORG  Fri Jul 22 00:34:32 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 498F216A440; Fri, 22 Jul 2005 00:34:32 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 0C5D216A425
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 00:34:32 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 9B2AC43D75
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 00:34:28 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6M0YScW034019
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 00:34:28 GMT
	(envelope-from sam@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6M0YSJE034016
	for perforce@freebsd.org; Fri, 22 Jul 2005 00:34:28 GMT
	(envelope-from sam@freebsd.org)
Date: Fri, 22 Jul 2005 00:34:28 GMT
Message-Id: <200507220034.j6M0YSJE034016@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	sam@freebsd.org using -f
From: Sam Leffler <sam@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80725 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jul 2005 00:34:33 -0000

http://perforce.freebsd.org/chv.cgi?CH=80725

Change 80725 by sam@sam_ebb on 2005/07/22 00:34:20

	don't try to use the scanner state from a previous mode
	when doing a check_scan; fixes assert failure when starting
	in sta mode then switching to ap mode

Affected files ...

.. //depot/projects/wifi/sys/net80211/ieee80211_scan.c#2 edit

Differences ...

==== //depot/projects/wifi/sys/net80211/ieee80211_scan.c#2 (text+ko) ====

@@ -451,7 +451,17 @@
 	}
 	IEEE80211_UNLOCK(ic);
 	if (checkscanlist) {
-		if (ss->ss_ops->scan_end(ss, ic)) {
+		const struct ieee80211_scanner *scan;
+
+		scan = ieee80211_scanner_get(ic->ic_opmode);
+		if (scan == NULL) {
+			IEEE80211_DPRINTF(ic, IEEE80211_MSG_SCAN,
+			    "%s: no scanner support for mode %u\n",
+			    __func__, ic->ic_opmode);
+			/* XXX stat */
+			return 0;
+		}
+		if (scan == ss->ss_ops && ss->ss_ops->scan_end(ss, ic)) {
 			/* found an ap, just clear the flag */
 			ic->ic_flags &= ~IEEE80211_F_SCAN;
 			return 1;

From owner-p4-projects@FreeBSD.ORG  Fri Jul 22 00:34:33 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id AF32816A458; Fri, 22 Jul 2005 00:34:32 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 3942616A420
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 00:34:32 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 4A74443D49
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 00:34:28 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6M0YScf034013
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 00:34:28 GMT
	(envelope-from sam@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6M0YRPt034008
	for perforce@freebsd.org; Fri, 22 Jul 2005 00:34:27 GMT
	(envelope-from sam@freebsd.org)
Date: Fri, 22 Jul 2005 00:34:27 GMT
Message-Id: <200507220034.j6M0YRPt034008@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	sam@freebsd.org using -f
From: Sam Leffler <sam@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80724 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jul 2005 00:34:34 -0000

http://perforce.freebsd.org/chv.cgi?CH=80724

Change 80724 by sam@sam_ebb on 2005/07/22 00:33:29

	fix check that caused DSPARMS ie to not be included in beacon frames

Affected files ...

.. //depot/projects/wifi/sys/net80211/ieee80211_output.c#47 edit

Differences ...

==== //depot/projects/wifi/sys/net80211/ieee80211_output.c#47 (text+ko) ====

@@ -1444,7 +1444,7 @@
 				ic->ic_bss->ni_esslen);
 		frm = ieee80211_add_rates(frm, &ni->ni_rates);
 
-		if (ic->ic_phytype == IEEE80211_T_FH) {
+		if (IEEE80211_IS_CHAN_FHSS(ic->ic_curchan)) {
                         *frm++ = IEEE80211_ELEMID_FHPARMS;
                         *frm++ = 5;
                         *frm++ = ni->ni_fhdwell & 0x00ff;
@@ -1789,7 +1789,7 @@
 	} else
 		*frm++ = 0;
 	frm = ieee80211_add_rates(frm, rs);
-	if (IEEE80211_IS_CHAN_FHSS(ic->ic_bsschan)) {
+	if (!IEEE80211_IS_CHAN_FHSS(ic->ic_bsschan)) {
 		*frm++ = IEEE80211_ELEMID_DSPARMS;
 		*frm++ = 1;
 		*frm++ = ieee80211_chan2ieee(ic, ic->ic_bsschan);

From owner-p4-projects@FreeBSD.ORG  Fri Jul 22 00:35:31 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id CB05C16A452; Fri, 22 Jul 2005 00:35:30 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 8CA9816A426
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 00:35:30 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 5F50243D45
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 00:35:30 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6M0ZUte034138
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 00:35:30 GMT
	(envelope-from sam@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6M0ZUlT034135
	for perforce@freebsd.org; Fri, 22 Jul 2005 00:35:30 GMT
	(envelope-from sam@freebsd.org)
Date: Fri, 22 Jul 2005 00:35:30 GMT
Message-Id: <200507220035.j6M0ZUlT034135@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	sam@freebsd.org using -f
From: Sam Leffler <sam@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80726 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jul 2005 00:35:31 -0000

http://perforce.freebsd.org/chv.cgi?CH=80726

Change 80726 by sam@sam_ebb on 2005/07/22 00:34:52

	include calculated max rate in assoc failure diag so one
	can diagnose pureg rejections

Affected files ...

.. //depot/projects/wifi/sys/net80211/ieee80211_input.c#55 edit

Differences ...

==== //depot/projects/wifi/sys/net80211/ieee80211_input.c#55 (text+ko) ====

@@ -2473,9 +2473,9 @@
 		if ((rate & IEEE80211_RATE_BASIC) ||
 		    ((ic->ic_flags & IEEE80211_F_PUREG) && rate < 48)) {
 			IEEE80211_DPRINTF(ic, IEEE80211_MSG_ANY,
-			    "[%s] deny %s request, rate set mismatch\n",
+			    "[%s] deny %s request, rate set mismatch, rate 0x%x\n",
 			    ether_sprintf(wh->i_addr2),
-			    reassoc ? "reassoc" : "assoc");
+			    reassoc ? "reassoc" : "assoc", rate);
 			IEEE80211_SEND_MGMT(ic, ni, resp,
 				IEEE80211_STATUS_BASIC_RATE);
 			ieee80211_node_leave(ic, ni);

From owner-p4-projects@FreeBSD.ORG  Fri Jul 22 02:46:35 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id B524516A42B; Fri, 22 Jul 2005 02:46:34 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 6102716A420
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 02:46:34 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id A4AA743D81
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 02:46:23 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6M2k8a5045879
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 02:46:08 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6M2k8eB045876
	for perforce@freebsd.org; Fri, 22 Jul 2005 02:46:08 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Fri, 22 Jul 2005 02:46:08 GMT
Message-Id: <200507220246.j6M2k8eB045876@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson <rwatson@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80729 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jul 2005 02:46:35 -0000

http://perforce.freebsd.org/chv.cgi?CH=80729

Change 80729 by rwatson@rwatson_zoo on 2005/07/22 02:45:09

	In if_addmulti(), use M_NOWAIT and fail rather than sleeping, since
	we may be called with mutexes.  The assumption of failure is already
	handled by the callers, who also use M_NOWAIT.

Affected files ...

.. //depot/projects/netsmp/src/sys/net/if.c#4 edit

Differences ...

==== //depot/projects/netsmp/src/sys/net/if.c#4 (text+ko) ====

@@ -1980,10 +1980,21 @@
 	} else
 		llsa = NULL;
 
-	new_ifma = if_allocmulti(ifp, sa, llsa, M_WAITOK);
-	if (llsa != NULL)
-		new_ll_ifma = if_allocmulti(ifp, llsa, NULL, M_WAITOK);
-	else
+	new_ifma = if_allocmulti(ifp, sa, llsa, M_NOWAIT);
+	if (new_ifma == NULL) {
+		if (llsa != NULL)
+			free(llsa, M_IFMADDR);
+		return (ENOMEM);
+	}
+	if (llsa != NULL) {
+		new_ll_ifma = if_allocmulti(ifp, llsa, NULL, M_NOWAIT);
+		if (new_ll_ifma == NULL) {
+			if_freemulti(new_ifma);
+			if (llsa != NULL)
+				free(llsa, M_IFMADDR);
+			return (ENOMEM);
+		}
+	} else
 		new_ll_ifma = NULL;	/* gcc */
 
 	/*

From owner-p4-projects@FreeBSD.ORG  Fri Jul 22 02:46:39 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 8395316A42C; Fri, 22 Jul 2005 02:46:38 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 3ECDD16A426
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 02:46:38 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 0E6F643D82
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 02:46:23 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6M2k8s5045885
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 02:46:08 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6M2k854045882
	for perforce@freebsd.org; Fri, 22 Jul 2005 02:46:08 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Fri, 22 Jul 2005 02:46:08 GMT
Message-Id: <200507220246.j6M2k854045882@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson <rwatson@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80730 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jul 2005 02:46:39 -0000

http://perforce.freebsd.org/chv.cgi?CH=80730

Change 80730 by rwatson@rwatson_zoo on 2005/07/22 02:45:35

	Use M_NOWAIT when allocating address storage in if_resolvemulti()
	methods, so that the method can be called with a mutex held (see
	description of similar change in if_addmulti()).

Affected files ...

.. //depot/projects/netsmp/src/sys/net/if_arcsubr.c#2 edit
.. //depot/projects/netsmp/src/sys/net/if_ethersubr.c#2 edit
.. //depot/projects/netsmp/src/sys/net/if_fddisubr.c#2 edit
.. //depot/projects/netsmp/src/sys/net/if_iso88025subr.c#2 edit

Differences ...

==== //depot/projects/netsmp/src/sys/net/if_arcsubr.c#2 (text+ko) ====

@@ -798,7 +798,9 @@
 		if (!IN_MULTICAST(ntohl(sin->sin_addr.s_addr)))
 			return EADDRNOTAVAIL;
 		MALLOC(sdl, struct sockaddr_dl *, sizeof *sdl, M_IFMADDR,
-		       M_ZERO);
+		       M_NOWAIT | M_ZERO);
+		if (sdl == NULL)
+			return ENOMEM;
 		sdl->sdl_len = sizeof *sdl;
 		sdl->sdl_family = AF_LINK;
 		sdl->sdl_index = ifp->if_index;
@@ -824,7 +826,9 @@
 		if (!IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr))
 			return EADDRNOTAVAIL;
 		MALLOC(sdl, struct sockaddr_dl *, sizeof *sdl, M_IFMADDR,
-		       M_ZERO);
+		       M_NOWAIT | M_ZERO);
+		if (sdl == NULL)
+			return ENOMEM;
 		sdl->sdl_len = sizeof *sdl;
 		sdl->sdl_family = AF_LINK;
 		sdl->sdl_index = ifp->if_index;

==== //depot/projects/netsmp/src/sys/net/if_ethersubr.c#2 (text+ko) ====

@@ -1135,7 +1135,9 @@
 		if (!IN_MULTICAST(ntohl(sin->sin_addr.s_addr)))
 			return EADDRNOTAVAIL;
 		MALLOC(sdl, struct sockaddr_dl *, sizeof *sdl, M_IFMADDR,
-		       M_WAITOK|M_ZERO);
+		       M_NOWAIT|M_ZERO);
+		if (sdl == NULL)
+			return ENOMEM;
 		sdl->sdl_len = sizeof *sdl;
 		sdl->sdl_family = AF_LINK;
 		sdl->sdl_index = ifp->if_index;
@@ -1162,7 +1164,9 @@
 		if (!IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr))
 			return EADDRNOTAVAIL;
 		MALLOC(sdl, struct sockaddr_dl *, sizeof *sdl, M_IFMADDR,
-		       M_WAITOK|M_ZERO);
+		       M_NOWAIT|M_ZERO);
+		if (sdl == NULL)
+			return (ENOMEM);
 		sdl->sdl_len = sizeof *sdl;
 		sdl->sdl_family = AF_LINK;
 		sdl->sdl_index = ifp->if_index;

==== //depot/projects/netsmp/src/sys/net/if_fddisubr.c#2 (text+ko) ====

@@ -720,7 +720,9 @@
 		if (!IN_MULTICAST(ntohl(sin->sin_addr.s_addr)))
 			return (EADDRNOTAVAIL);
 		MALLOC(sdl, struct sockaddr_dl *, sizeof *sdl, M_IFMADDR,
-		       M_WAITOK);
+		       M_NOWAIT | M_ZERO);
+		if (sdl == NULL)
+			return (ENOMEM);
 		sdl->sdl_len = sizeof *sdl;
 		sdl->sdl_family = AF_LINK;
 		sdl->sdl_index = ifp->if_index;
@@ -749,7 +751,9 @@
 		if (!IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr))
 			return (EADDRNOTAVAIL);
 		MALLOC(sdl, struct sockaddr_dl *, sizeof *sdl, M_IFMADDR,
-		       M_WAITOK);
+		       M_NOWAIT | M_ZERO);
+		if (sdl == NULL)
+			return (ENOMEM);
 		sdl->sdl_len = sizeof *sdl;
 		sdl->sdl_family = AF_LINK;
 		sdl->sdl_index = ifp->if_index;

==== //depot/projects/netsmp/src/sys/net/if_iso88025subr.c#2 (text+ko) ====

@@ -720,7 +720,9 @@
 			return (EADDRNOTAVAIL);
 		}
 		MALLOC(sdl, struct sockaddr_dl *, sizeof *sdl, M_IFMADDR,
-		       M_WAITOK|M_ZERO);
+		       M_NOWAIT|M_ZERO);
+		if (sdl == NULL)
+			return (ENOMEM);
 		sdl->sdl_len = sizeof *sdl;
 		sdl->sdl_family = AF_LINK;
 		sdl->sdl_index = ifp->if_index;
@@ -748,7 +750,9 @@
 			return (EADDRNOTAVAIL);
 		}
 		MALLOC(sdl, struct sockaddr_dl *, sizeof *sdl, M_IFMADDR,
-		       M_WAITOK|M_ZERO);
+		       M_NOWAIT|M_ZERO);
+		if (sdl == NULL)
+			return (ENOMEM);
 		sdl->sdl_len = sizeof *sdl;
 		sdl->sdl_family = AF_LINK;
 		sdl->sdl_index = ifp->if_index;

From owner-p4-projects@FreeBSD.ORG  Fri Jul 22 02:51:12 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id D244816A421; Fri, 22 Jul 2005 02:51:11 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 AC54816A41F
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 02:51:11 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 93A2543D76
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 02:49:29 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6M2nCIB045988
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 02:49:12 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6M2nCaP045985
	for perforce@freebsd.org; Fri, 22 Jul 2005 02:49:12 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Fri, 22 Jul 2005 02:49:12 GMT
Message-Id: <200507220249.j6M2nCaP045985@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson <rwatson@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80731 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jul 2005 02:51:12 -0000

http://perforce.freebsd.org/chv.cgi?CH=80731

Change 80731 by rwatson@rwatson_zoo on 2005/07/22 02:48:12

	Add a new mutex, in_multi_mtx, which will protect IPv4 multicast
	addresses, as well as the consistency of IPv4 multicast data
	pointed to by link level multicast address entries.  Initialize
	with a SYSINIT().  Provide accessor macros.
	
	Assert in_multi_mtx in IN_*_MULTI() macros.
	
	Acquire in_multi_mtx in in_addmulti(), in_delmulti().  Hold over
	calls to link layer multicast code, as well as IGMP code.
	
	NB: Need to look at lock order issues relating to how these calls
	are reached, and where the igmp code calls into.

Affected files ...

.. //depot/projects/netsmp/src/sys/netinet/in.c#2 edit
.. //depot/projects/netsmp/src/sys/netinet/in_var.h#5 edit

Differences ...

==== //depot/projects/netsmp/src/sys/netinet/in.c#2 (text+ko) ====

@@ -68,7 +68,14 @@
 SYSCTL_INT(_net_inet_ip, OID_AUTO, subnets_are_local, CTLFLAG_RW,
 	&subnetsarelocal, 0, "Treat all subnets as directly connected");
 
+/*
+ * The IPv4 multicast list (in_multihead and associated structures)
+ * are protected by the global in_multi_mtx.  See in_var.h for
+ * more details.
+ */
 struct in_multihead in_multihead; /* XXX BSS initialization */
+struct mtx in_multi_mtx;
+MTX_SYSINIT(in_multi_mtx, &in_multi_mtx, "in_multi_mtx", MTX_DEF);
 
 extern struct inpcbinfo ripcbinfo;
 extern struct inpcbinfo udbinfo;
@@ -951,6 +958,7 @@
 	struct ifmultiaddr *ifma;
 	int s = splnet();
 
+	IN_MULTI_LOCK();
 	/*
 	 * Call generic routine to add membership or increment
 	 * refcount.  It wants addresses in the form of a sockaddr,
@@ -962,6 +970,7 @@
 	sin.sin_addr = *ap;
 	error = if_addmulti(ifp, (struct sockaddr *)&sin, &ifma);
 	if (error) {
+		IN_MULTI_UNLOCK();
 		splx(s);
 		return 0;
 	}
@@ -971,15 +980,21 @@
 	 * a new record.  Otherwise, we are done.
 	 */
 	if (ifma->ifma_protospec != NULL) {
+		IN_MULTI_UNLOCK();
 		splx(s);
 		return ifma->ifma_protospec;
 	}
 
 	/* XXX - if_addmulti uses M_WAITOK.  Can this really be called
 	   at interrupt time?  If so, need to fix if_addmulti. XXX */
+	/*
+	 * XXXRW: This comment is right, and yes, we should use M_NOWAIT
+	 * here due to spl's and now mutexes.
+	 */
 	inm = (struct in_multi *)malloc(sizeof(*inm), M_IPMADDR,
 	    M_NOWAIT | M_ZERO);
 	if (inm == NULL) {
+		IN_MULTI_UNLOCK();
 		splx(s);
 		return (NULL);
 	}
@@ -994,6 +1009,7 @@
 	 * Let IGMP know that we have joined a new IP multicast group.
 	 */
 	igmp_joingroup(inm);
+	IN_MULTI_UNLOCK();
 	splx(s);
 	return (inm);
 }
@@ -1005,10 +1021,12 @@
 in_delmulti(inm)
 	register struct in_multi *inm;
 {
-	struct ifmultiaddr *ifma = inm->inm_ifma;
+	struct ifmultiaddr *ifma;
 	struct in_multi my_inm;
 	int s = splnet();
 
+	IN_MULTI_LOCK();
+	ifma = inm->inm_ifma;
 	my_inm.inm_ifp = NULL ; /* don't send the leave msg */
 	if (ifma->ifma_refcount == 1) {
 		/*
@@ -1026,5 +1044,6 @@
 	if_delmulti(ifma->ifma_ifp, ifma->ifma_addr);
 	if (my_inm.inm_ifp != NULL)
 		igmp_leavegroup(&my_inm);
+	IN_MULTI_UNLOCK();
 	splx(s);
 }

==== //depot/projects/netsmp/src/sys/netinet/in_var.h#5 (text+ko) ====

@@ -167,6 +167,17 @@
 extern LIST_HEAD(in_multihead, in_multi) in_multihead;
 
 /*
+ * Lock macros for IPv4 layer multicast address lists.  IPv4 lock goes
+ * before link layer multicast locks in the lock order.  In most cases,
+ * consumers of IN_*_MULTI() macros should acquire the locks before
+ * calling them; users of the in_{add,del}multi() functions should not.
+ */
+extern struct mtx in_multi_mtx;
+#define	IN_MULTI_LOCK()		mtx_lock(&in_multi_mtx)
+#define	IN_MULTI_UNLOCK()	mtx_unlock(&in_multi_mtx)
+#define	IN_MULTI_LOCK_ASSERT()	mtx_assert(&in_multi_mtx, MA_OWNED)
+
+/*
  * Structure used by macros below to remember position when stepping through
  * all of the in_multi records.
  */
@@ -187,6 +198,7 @@
 do { \
 	struct ifmultiaddr *ifma; \
 \
+	IN_MULTI_LOCK_ASSERT(); \
 	IF_ADDR_LOCK(ifp); \
 	TAILQ_FOREACH(ifma, &((ifp)->if_multiaddrs), ifma_link) { \
 		if (ifma->ifma_addr->sa_family == AF_INET \
@@ -209,6 +221,7 @@
 	/* struct in_multistep  step; */ \
 	/* struct in_multi *inm; */ \
 do { \
+	IN_MULTI_LOCK_ASSERT(); \
 	if (((inm) = (step).i_inm) != NULL) \
 		(step).i_inm = LIST_NEXT((step).i_inm, inm_link); \
 } while(0)
@@ -217,6 +230,7 @@
 	/* struct in_multistep step; */ \
 	/* struct in_multi *inm; */ \
 do { \
+	IN_MULTI_LOCK_ASSERT(); \
 	(step).i_inm = LIST_FIRST(&in_multihead); \
 	IN_NEXT_MULTI((step), (inm)); \
 } while(0)

From owner-p4-projects@FreeBSD.ORG  Fri Jul 22 02:51:59 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id B76FA16A4CB; Fri, 22 Jul 2005 02:51:58 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 53E2816A440
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 02:51:58 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 8266943E6F
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 02:51:01 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6M2oEZq046022
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 02:50:14 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6M2oEj0046019
	for perforce@freebsd.org; Fri, 22 Jul 2005 02:50:14 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Fri, 22 Jul 2005 02:50:14 GMT
Message-Id: <200507220250.j6M2oEj0046019@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson <rwatson@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80732 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jul 2005 02:52:00 -0000

http://perforce.freebsd.org/chv.cgi?CH=80732

Change 80732 by rwatson@rwatson_zoo on 2005/07/22 02:49:24

	Acquire in_multi_mtx around use of in_multihead address list,
	accessor macros, etc.
	
	Assert in_multi_mtx in functions that require it, especially in
	IGMP, IP input and output routines.

Affected files ...

.. //depot/projects/netsmp/src/sys/netinet/igmp.c#2 edit
.. //depot/projects/netsmp/src/sys/netinet/ip_input.c#2 edit
.. //depot/projects/netsmp/src/sys/netinet/ip_output.c#2 edit

Differences ...

==== //depot/projects/netsmp/src/sys/netinet/igmp.c#2 (text+ko) ====

@@ -286,6 +286,7 @@
 		 * - Use the value specified in the query message as
 		 *   the maximum timeout.
 		 */
+		IN_MULTI_LOCK();
 		IN_FIRST_MULTI(step, inm);
 		while (inm != NULL) {
 			if (inm->inm_ifp == ifp &&
@@ -301,6 +302,7 @@
 			}
 			IN_NEXT_MULTI(step, inm);
 		}
+		IN_MULTI_UNLOCK();
 
 		break;
 
@@ -343,14 +345,15 @@
 		 * If we belong to the group being reported, stop
 		 * our timer for that group.
 		 */
+		IN_MULTI_LOCK();
 		IN_LOOKUP_MULTI(igmp->igmp_group, ifp, inm);
-
 		if (inm != NULL) {
 			inm->inm_timer = 0;
 			++igmpstat.igps_rcv_ourreports;
 
 			inm->inm_state = IGMP_OTHERMEMBER;
 		}
+		IN_MULTI_UNLOCK();
 
 		break;
 	}
@@ -367,6 +370,8 @@
 {
 	int s = splnet();
 
+	IN_MULTI_LOCK_ASSERT();
+
 	if (inm->inm_addr.s_addr == igmp_all_hosts_group
 	    || inm->inm_ifp->if_flags & IFF_LOOPBACK) {
 		inm->inm_timer = 0;
@@ -391,6 +396,8 @@
 igmp_leavegroup(struct in_multi *inm)
 {
 
+	IN_MULTI_LOCK_ASSERT();
+
 	if (inm->inm_state == IGMP_IREPORTEDLAST &&
 	    inm->inm_addr.s_addr != igmp_all_hosts_group &&
 	    !(inm->inm_ifp->if_flags & IFF_LOOPBACK) &&
@@ -414,6 +421,7 @@
 		return;
 
 	s = splnet();
+	IN_MULTI_LOCK();
 	igmp_timers_are_running = 0;
 	IN_FIRST_MULTI(step, inm);
 	while (inm != NULL) {
@@ -427,6 +435,7 @@
 		}
 		IN_NEXT_MULTI(step, inm);
 	}
+	IN_MULTI_UNLOCK();
 	splx(s);
 }
 
@@ -458,6 +467,8 @@
 	struct ip *ip;
 	struct ip_moptions imo;
 
+	IN_MULTI_LOCK_ASSERT();
+
 	MGETHDR(m, M_DONTWAIT, MT_HEADER);
 	if (m == NULL)
 		return;

==== //depot/projects/netsmp/src/sys/netinet/ip_input.c#2 (text+ko) ====

@@ -607,7 +607,9 @@
 		 * See if we belong to the destination multicast group on the
 		 * arrival interface.
 		 */
+		IN_MULTI_LOCK();
 		IN_LOOKUP_MULTI(ip->ip_dst, m->m_pkthdr.rcvif, inm);
+		IN_MULTI_UNLOCK();
 		if (inm == NULL) {
 			ipstat.ips_notmember++;
 			m_freem(m);

==== //depot/projects/netsmp/src/sys/netinet/ip_output.c#2 (text+ko) ====

@@ -291,9 +291,15 @@
 				ip->ip_src = IA_SIN(ia)->sin_addr;
 		}
 
+		/*
+		 * XXXRW: Should the in_multi_mtx be held over
+		 * ip_mloopback() or ip_mforward()?
+		 */
+		IN_MULTI_LOCK();
 		IN_LOOKUP_MULTI(ip->ip_dst, ifp, inm);
 		if (inm != NULL &&
 		   (imo == NULL || imo->imo_multicast_loop)) {
+			IN_MULTI_UNLOCK();
 			/*
 			 * If we belong to the destination multicast group
 			 * on the outgoing interface, and the caller did not
@@ -302,6 +308,7 @@
 			ip_mloopback(ifp, m, dst, hlen);
 		}
 		else {
+			IN_MULTI_UNLOCK();
 			/*
 			 * If we are acting as a multicast router, perform
 			 * multicast forwarding as if the packet had just

From owner-p4-projects@FreeBSD.ORG  Fri Jul 22 18:32:17 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id B3FEC16A421; Fri, 22 Jul 2005 18:32:16 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 67BD816A41F
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 18:32:16 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 04D2744DD9
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 18:32:16 +0000 (GMT)
	(envelope-from sam@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6MIWFXI029080
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 18:32:15 GMT
	(envelope-from sam@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6MIWFZG029077
	for perforce@freebsd.org; Fri, 22 Jul 2005 18:32:15 GMT
	(envelope-from sam@freebsd.org)
Date: Fri, 22 Jul 2005 18:32:15 GMT
Message-Id: <200507221832.j6MIWFZG029077@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	sam@freebsd.org using -f
From: Sam Leffler <sam@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80779 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jul 2005 18:32:17 -0000

http://perforce.freebsd.org/chv.cgi?CH=80779

Change 80779 by sam@sam_ebb on 2005/07/22 18:31:23

	IFC @ 80778

Affected files ...

.. //depot/projects/wifi/etc/Makefile#7 integrate
.. //depot/projects/wifi/etc/defaults/rc.conf#17 integrate
.. //depot/projects/wifi/etc/rc.d/bgfsck#2 integrate
.. //depot/projects/wifi/etc/rc.d/power_profile#4 integrate
.. //depot/projects/wifi/gnu/lib/libdialog/Makefile#4 integrate
.. //depot/projects/wifi/gnu/lib/libg2c/Makefile#3 integrate
.. //depot/projects/wifi/gnu/lib/libobjc/Makefile#6 integrate
.. //depot/projects/wifi/gnu/lib/libreadline/Makefile.inc#2 integrate
.. //depot/projects/wifi/gnu/lib/libregex/Makefile#3 integrate
.. //depot/projects/wifi/gnu/lib/libstdc++/Makefile#5 integrate
.. //depot/projects/wifi/kerberos5/lib/Makefile.inc#2 integrate
.. //depot/projects/wifi/lib/Makefile.inc#2 integrate
.. //depot/projects/wifi/lib/libalias/Makefile#4 integrate
.. //depot/projects/wifi/lib/libarchive/Makefile#12 integrate
.. //depot/projects/wifi/lib/libbegemot/Makefile#3 integrate
.. //depot/projects/wifi/lib/libbluetooth/Makefile#2 integrate
.. //depot/projects/wifi/lib/libbsnmp/Makefile.inc#3 integrate
.. //depot/projects/wifi/lib/libbz2/Makefile#2 integrate
.. //depot/projects/wifi/lib/libc_r/Makefile#4 integrate
.. //depot/projects/wifi/lib/libcrypt/Makefile#4 integrate
.. //depot/projects/wifi/lib/libdevstat/Makefile#2 integrate
.. //depot/projects/wifi/lib/libdevstat/devstat.h#2 integrate
.. //depot/projects/wifi/lib/libedit/Makefile#2 integrate
.. //depot/projects/wifi/lib/libexpat/Makefile#2 integrate
.. //depot/projects/wifi/lib/libfetch/Makefile#3 integrate
.. //depot/projects/wifi/lib/libftpio/Makefile#2 integrate
.. //depot/projects/wifi/lib/libgpib/Makefile#2 integrate
.. //depot/projects/wifi/lib/libipsec/Makefile#3 integrate
.. //depot/projects/wifi/lib/libkiconv/Makefile#2 integrate
.. //depot/projects/wifi/lib/libmagic/Makefile#4 integrate
.. //depot/projects/wifi/lib/libmp/Makefile#2 integrate
.. //depot/projects/wifi/lib/libncp/Makefile#3 integrate
.. //depot/projects/wifi/lib/libncurses/Makefile#4 integrate
.. //depot/projects/wifi/lib/libnetgraph/Makefile#2 integrate
.. //depot/projects/wifi/lib/libngatm/Makefile#2 integrate
.. //depot/projects/wifi/lib/libopie/Makefile#3 integrate
.. //depot/projects/wifi/lib/libpam/Makefile.inc#3 integrate
.. //depot/projects/wifi/lib/libpthread/Makefile#3 integrate
.. //depot/projects/wifi/lib/libradius/Makefile#3 integrate
.. //depot/projects/wifi/lib/libsdp/Makefile#2 integrate
.. //depot/projects/wifi/lib/libsmb/Makefile#4 integrate
.. //depot/projects/wifi/lib/libtacplus/Makefile#2 integrate
.. //depot/projects/wifi/lib/libthr/Makefile#7 integrate
.. //depot/projects/wifi/lib/libthread_db/Makefile#2 integrate
.. //depot/projects/wifi/lib/libugidfw/Makefile#3 integrate
.. //depot/projects/wifi/lib/libusbhid/Makefile#3 integrate
.. //depot/projects/wifi/lib/libutil/Makefile#2 integrate
.. //depot/projects/wifi/lib/libvgl/Makefile#2 integrate
.. //depot/projects/wifi/lib/libwrap/Makefile#4 integrate
.. //depot/projects/wifi/lib/libypclnt/Makefile#2 integrate
.. //depot/projects/wifi/lib/msun/Makefile#11 integrate
.. //depot/projects/wifi/secure/lib/libcrypto/Makefile#6 integrate
.. //depot/projects/wifi/secure/lib/libssh/Makefile#6 integrate
.. //depot/projects/wifi/secure/lib/libssl/Makefile#4 integrate
.. //depot/projects/wifi/share/man/man4/kbdmux.4#2 integrate
.. //depot/projects/wifi/share/man/man9/vhold.9#3 integrate
.. //depot/projects/wifi/sys/amd64/amd64/mp_machdep.c#9 integrate
.. //depot/projects/wifi/sys/amd64/conf/NOTES#13 integrate
.. //depot/projects/wifi/sys/amd64/include/atomic.h#5 integrate
.. //depot/projects/wifi/sys/amd64/include/bus_dma.h#5 integrate
.. //depot/projects/wifi/sys/conf/files.amd64#16 integrate
.. //depot/projects/wifi/sys/dev/ath/ath_rate/amrr/amrr.c#14 integrate
.. //depot/projects/wifi/sys/dev/ath/ath_rate/onoe/onoe.c#14 integrate
.. //depot/projects/wifi/sys/dev/ath/ath_rate/sample/sample.c#6 integrate
.. //depot/projects/wifi/sys/dev/ath/if_ath.c#91 integrate
.. //depot/projects/wifi/sys/dev/awi/awi.c#10 integrate
.. //depot/projects/wifi/sys/dev/vx/if_vx.c#5 integrate
.. //depot/projects/wifi/sys/i386/bios/smapi_bios.S#2 integrate
.. //depot/projects/wifi/sys/net/if_var.h#14 integrate
.. //depot/projects/wifi/sys/net80211/ieee80211.c#25 integrate
.. //depot/projects/wifi/sys/net80211/ieee80211.h#11 integrate
.. //depot/projects/wifi/sys/net80211/ieee80211_crypto.c#14 integrate
.. //depot/projects/wifi/sys/net80211/ieee80211_input.c#56 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#44 integrate
.. //depot/projects/wifi/sys/net80211/ieee80211_ioctl.h#28 integrate
.. //depot/projects/wifi/sys/net80211/ieee80211_node.c#55 integrate
.. //depot/projects/wifi/sys/net80211/ieee80211_node.h#26 integrate
.. //depot/projects/wifi/sys/net80211/ieee80211_output.c#48 integrate
.. //depot/projects/wifi/sys/net80211/ieee80211_proto.c#31 integrate
.. //depot/projects/wifi/sys/net80211/ieee80211_proto.h#19 integrate
.. //depot/projects/wifi/sys/net80211/ieee80211_var.h#31 integrate
.. //depot/projects/wifi/sys/netgraph/ng_base.c#15 integrate
.. //depot/projects/wifi/sys/nfsclient/nfs_bio.c#13 integrate
.. //depot/projects/wifi/sys/nfsclient/nfs_node.c#10 integrate
.. //depot/projects/wifi/sys/nfsclient/nfsnode.h#9 integrate
.. //depot/projects/wifi/usr.sbin/bsnmpd/modules/Makefile.inc#3 integrate
.. //depot/projects/wifi/usr.sbin/kbdcontrol/kbdcontrol.1#5 integrate
.. //depot/projects/wifi/usr.sbin/ndiscvt/ndisgen.sh#2 integrate

Differences ...

==== //depot/projects/wifi/etc/Makefile#7 (text+ko) ====

@@ -1,5 +1,5 @@
 #	from: @(#)Makefile	5.11 (Berkeley) 5/21/91
-# $FreeBSD: src/etc/Makefile,v 1.344 2005/07/15 14:52:29 ru Exp $
+# $FreeBSD: src/etc/Makefile,v 1.345 2005/07/22 10:35:35 ru Exp $
 
 .if !defined(NO_SENDMAIL)
 SUBDIR=	sendmail
@@ -86,6 +86,10 @@
 .endif
 
 distribution:
+.if !defined(DESTDIR)
+	@echo "set DESTDIR before running \"make ${.TARGET}\""
+	@false
+.endif
 	cd ${.CURDIR}; \
 	    ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
 		${BIN1} ${DESTDIR}/etc; \

==== //depot/projects/wifi/etc/defaults/rc.conf#17 (text+ko) ====

@@ -15,7 +15,7 @@
 # For a more detailed explanation of all the rc.conf variables, please
 # refer to the rc.conf(5) manual page.
 #
-# $FreeBSD: src/etc/defaults/rc.conf,v 1.253 2005/07/21 15:17:54 pav Exp $
+# $FreeBSD: src/etc/defaults/rc.conf,v 1.254 2005/07/22 00:38:55 obrien Exp $
 
 ##############################################################
 ###  Important initial Boot-time options  ####################
@@ -482,10 +482,10 @@
 devfs_system_ruleset=""	# The name of a ruleset to apply to /dev
 devfs_set_rulesets=""	# A list of /mount/dev=ruleset_name settings to
 			# apply (must be mounted already, i.e. fstab(5))
-performance_cx_lowest="HIGH"		# Online CPU idle state
-performance_cpu_freq="NONE"		# Online CPU frequency
-economy_cx_lowest="HIGH"		# Offline CPU idle state
-economy_cpu_freq="NONE"			# Offline CPU frequency
+performance_cx_lowest="HIGH"	# Online CPU idle state
+performance_cpu_freq="NONE"	# Online CPU frequency
+economy_cx_lowest="HIGH"	# Offline CPU idle state
+economy_cpu_freq="NONE"		# Offline CPU frequency
 virecover_enable="YES"	# Perform housekeeping for the vi(1) editor
 ugidfw_enable="NO"	# Load mac_bsdextended(4) rules on boot
 bsdextended_script="/etc/rc.bsdextended"	# Default mac_bsdextended(4)

==== //depot/projects/wifi/etc/rc.d/bgfsck#2 (text+ko) ====

@@ -1,10 +1,10 @@
 #!/bin/sh
 #
-# $FreeBSD: src/etc/rc.d/bgfsck,v 1.6 2004/10/07 13:55:25 mtm Exp $
+# $FreeBSD: src/etc/rc.d/bgfsck,v 1.7 2005/07/22 00:57:37 obrien Exp $
 #
 
 # PROVIDE: bgfsck
-# REQUIRE: cron devfs
+# REQUIRE: cron devfs syslogd
 # KEYWORD: nojail
 
 . /etc/rc.subr

==== //depot/projects/wifi/etc/rc.d/power_profile#4 (text+ko) ====

@@ -5,11 +5,13 @@
 #
 # Arguments: 0x00 (AC offline, economy) or 0x01 (AC online, performance)
 #
-# $FreeBSD: src/etc/rc.d/power_profile,v 1.7 2005/02/26 20:17:07 njl Exp $
+# $FreeBSD: src/etc/rc.d/power_profile,v 1.8 2005/07/22 00:57:04 obrien Exp $
 #
 
 # PROVIDE: power_profile
+# REQUIRE: mountcritlocal syslogd
 # KEYWORD: nojail nostart
+# BEFORE: NETWORKING
 
 . /etc/rc.subr
 

==== //depot/projects/wifi/gnu/lib/libdialog/Makefile#4 (text+ko) ====

@@ -1,11 +1,11 @@
 # Makefile for libdialog
-# $FreeBSD: src/gnu/lib/libdialog/Makefile,v 1.42 2005/04/22 18:57:32 trhodes Exp $
+# $FreeBSD: src/gnu/lib/libdialog/Makefile,v 1.43 2005/07/22 17:18:57 kensmith Exp $
 
 LIB=    dialog
 INCS=	dialog.h
 MAN=	dialog.3
 
-SHLIB_MAJOR= 4
+SHLIB_MAJOR= 5
 SRCS=   kernel.c rc.c checklist.c inputbox.c menubox.c msgbox.c \
 	lineedit.c radiolist.c textbox.c yesno.c prgbox.c raw_popen.c \
 	fselect.c ui_objects.c dir.c notify.c help.c gauge.c tree.c

==== //depot/projects/wifi/gnu/lib/libg2c/Makefile#3 (text+ko) ====

@@ -1,11 +1,11 @@
-# $FreeBSD: src/gnu/lib/libg2c/Makefile,v 1.15 2004/12/21 09:33:45 ru Exp $
+# $FreeBSD: src/gnu/lib/libg2c/Makefile,v 1.16 2005/07/22 17:18:57 kensmith Exp $
 
 SRCDIR=	${.CURDIR}/../../../contrib/libf2c
 
 .PATH: ${SRCDIR} ${SRCDIR}/libU77 ${SRCDIR}/libF77 ${SRCDIR}/libI77
 
 LIB=		g2c
-SHLIB_MAJOR=	1
+SHLIB_MAJOR=	2
 
 # Traditional FORTRAN Library members defined in libF77
 

==== //depot/projects/wifi/gnu/lib/libobjc/Makefile#6 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/gnu/lib/libobjc/Makefile,v 1.26 2005/05/01 01:59:48 peter Exp $
+# $FreeBSD: src/gnu/lib/libobjc/Makefile,v 1.27 2005/07/22 17:18:58 kensmith Exp $
 
 OBJCDIR=${.CURDIR}/../../../contrib/libobjc
 GCCDIR=	${.CURDIR}/../../../contrib/gcc
@@ -6,7 +6,7 @@
 .PATH: ${OBJCDIR}/objc ${OBJCDIR}
 
 LIB=		objc
-SHLIB_MAJOR=	1
+SHLIB_MAJOR=	2
 NO_MAN=
 
 SRCS=   archive.c class.c encoding.c gc.c hash.c init.c misc.c \

==== //depot/projects/wifi/gnu/lib/libreadline/Makefile.inc#2 (text+ko) ====

@@ -1,6 +1,6 @@
-# $FreeBSD: src/gnu/lib/libreadline/Makefile.inc,v 1.11 2004/10/18 08:29:47 ache Exp $
+# $FreeBSD: src/gnu/lib/libreadline/Makefile.inc,v 1.12 2005/07/22 17:18:58 kensmith Exp $
 
-SHLIB_MAJOR=5
+SHLIB_MAJOR=6
 RL_LIBRARY_VERSION=5.0
 
 SRCDIR= ${.CURDIR}/../../../../contrib/libreadline

==== //depot/projects/wifi/gnu/lib/libregex/Makefile#3 (text+ko) ====

@@ -1,9 +1,9 @@
-# $FreeBSD: src/gnu/lib/libregex/Makefile,v 1.31 2005/05/10 11:37:37 tjr Exp $
+# $FreeBSD: src/gnu/lib/libregex/Makefile,v 1.32 2005/07/22 17:18:58 kensmith Exp $
 
 SUBDIR=		doc
 
 LIB=		gnuregex
-SHLIB_MAJOR=	2
+SHLIB_MAJOR=	3
 
 SRCS=		gnuregex.c
 INCSGROUPS=	INCS WRINCS PXINCS

==== //depot/projects/wifi/gnu/lib/libstdc++/Makefile#5 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/gnu/lib/libstdc++/Makefile,v 1.55 2005/04/22 18:57:32 trhodes Exp $
+# $FreeBSD: src/gnu/lib/libstdc++/Makefile,v 1.56 2005/07/22 17:18:58 kensmith Exp $
 
 GCCDIR=	${.CURDIR}/../../../contrib/gcc
 SRCDIR=	${.CURDIR}/../../../contrib/libstdc++
@@ -9,7 +9,7 @@
        ${SUPDIR} ${GCCDIR}
 
 LIB=		stdc++
-SHLIB_MAJOR=	4
+SHLIB_MAJOR=	5
 
 CFLAGS+=	-DIN_GLIBCPP_V3 -DHAVE_CONFIG_H
 CFLAGS+=	-I${.CURDIR} -I${SUPDIR} -I${GCCDIR} -I${SRCDIR}/include

==== //depot/projects/wifi/kerberos5/lib/Makefile.inc#2 (text+ko) ====

@@ -1,5 +1,5 @@
-# $FreeBSD: src/kerberos5/lib/Makefile.inc,v 1.6 2003/10/09 19:48:45 nectar Exp $
+# $FreeBSD: src/kerberos5/lib/Makefile.inc,v 1.7 2005/07/22 17:18:58 kensmith Exp $
 
-SHLIB_MAJOR?=	7
+SHLIB_MAJOR?=	8
 
 .include "../Makefile.inc"

==== //depot/projects/wifi/lib/Makefile.inc#2 (text+ko) ====

@@ -1,3 +1,3 @@
-# $FreeBSD: src/lib/Makefile.inc,v 1.2 2002/09/28 00:25:28 peter Exp $
+# $FreeBSD: src/lib/Makefile.inc,v 1.3 2005/07/22 17:18:58 kensmith Exp $
 # Default version for system libs (override in <lib>/Makefile if necessary)
-SHLIB_MAJOR?= 2
+SHLIB_MAJOR?= 3

==== //depot/projects/wifi/lib/libalias/Makefile#4 (text+ko) ====

@@ -1,10 +1,10 @@
-# $FreeBSD: src/lib/libalias/Makefile,v 1.30 2005/05/04 12:49:44 glebius Exp $
+# $FreeBSD: src/lib/libalias/Makefile,v 1.31 2005/07/22 17:18:59 kensmith Exp $
 
 .PATH:	${.CURDIR}/../../sys/netinet/libalias
 
 LIB=	alias
 SHLIBDIR?= /lib
-SHLIB_MAJOR=	4
+SHLIB_MAJOR=	5
 MAN=	libalias.3
 SRCS=	alias.c alias_cuseeme.c alias_db.c alias_ftp.c alias_irc.c \
 	alias_nbt.c alias_pptp.c alias_proxy.c alias_skinny.c alias_smedia.c \

==== //depot/projects/wifi/lib/libarchive/Makefile#12 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/lib/libarchive/Makefile,v 1.36 2005/06/04 22:30:36 kientzle Exp $
+# $FreeBSD: src/lib/libarchive/Makefile,v 1.37 2005/07/22 17:18:59 kensmith Exp $
 
 #
 # Use "make distfile" to build a conventional tar.gz archive
@@ -9,7 +9,7 @@
 LIB=	archive
 VERSION=	1.02.026
 ARCHIVE_API_FEATURE=	2
-ARCHIVE_API_VERSION=	1
+ARCHIVE_API_VERSION=	2
 SHLIB_MAJOR=	${ARCHIVE_API_VERSION}
 CFLAGS+=	-DPACKAGE_NAME=\"lib${LIB}\"
 CFLAGS+=	-DPACKAGE_VERSION=\"${VERSION}\"

==== //depot/projects/wifi/lib/libbegemot/Makefile#3 (text+ko) ====

@@ -1,11 +1,11 @@
-# $FreeBSD: src/lib/libbegemot/Makefile,v 1.2 2004/11/04 08:25:03 ru Exp $
+# $FreeBSD: src/lib/libbegemot/Makefile,v 1.3 2005/07/22 17:18:59 kensmith Exp $
 
 LIBBEGEMOT_DIR=${.CURDIR}/../../contrib/libbegemot
 
 .PATH: ${LIBBEGEMOT_DIR}
 
 LIB=	begemot
-SHLIB_MAJOR= 1
+SHLIB_MAJOR= 2
 SHLIBDIR?= /lib
 
 # WARNS?=	6

==== //depot/projects/wifi/lib/libbluetooth/Makefile#2 (text+ko) ====

@@ -1,5 +1,5 @@
 # $Id: Makefile,v 1.5 2003/07/22 18:38:04 max Exp $
-# $FreeBSD: src/lib/libbluetooth/Makefile,v 1.1 2003/10/12 22:04:18 emax Exp $
+# $FreeBSD: src/lib/libbluetooth/Makefile,v 1.2 2005/07/22 17:18:59 kensmith Exp $
 
 LIB=		bluetooth
 MAN=		bluetooth.3
@@ -7,7 +7,7 @@
 WARNS?=		2
 CFLAGS+=	-I${.CURDIR} -I${.CURDIR}/../../sys
 
-SHLIB_MAJOR=	1
+SHLIB_MAJOR=	2
 
 SRCS=		bluetooth.c
 INCS=		bluetooth.h

==== //depot/projects/wifi/lib/libbsnmp/Makefile.inc#3 (text+ko) ====

@@ -1,6 +1,6 @@
-# $FreeBSD: src/lib/libbsnmp/Makefile.inc,v 1.5 2004/10/24 15:32:30 ru Exp $
+# $FreeBSD: src/lib/libbsnmp/Makefile.inc,v 1.6 2005/07/22 17:18:59 kensmith Exp $
 
-SHLIB_MAJOR=	2
+SHLIB_MAJOR=	3
 WARNS?=		6
 NO_WERROR=
 INCSDIR=	${INCLUDEDIR}/bsnmp

==== //depot/projects/wifi/lib/libbz2/Makefile#2 (text+ko) ====

@@ -1,10 +1,10 @@
-# $FreeBSD: src/lib/libbz2/Makefile,v 1.5 2003/06/14 19:32:51 obrien Exp $
+# $FreeBSD: src/lib/libbz2/Makefile,v 1.6 2005/07/22 17:18:59 kensmith Exp $
 
 BZ2DIR=	${.CURDIR}/../../contrib/bzip2
 .PATH: ${BZ2DIR}
 
 LIB=		bz2
-SHLIB_MAJOR=	1
+SHLIB_MAJOR=	2
 SRCS=		bzlib.c blocksort.c compress.c crctable.c decompress.c \
 		huffman.c randtable.c
 INCS=		bzlib.h

==== //depot/projects/wifi/lib/libc_r/Makefile#4 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/lib/libc_r/Makefile,v 1.41 2004/12/21 09:33:46 ru Exp $
+# $FreeBSD: src/lib/libc_r/Makefile,v 1.42 2005/07/22 17:19:00 kensmith Exp $
 #
 # All library objects contain FreeBSD revision strings by default; they may be
 # excluded as a space-saving measure.  To produce a library that does
@@ -8,7 +8,7 @@
 # (for system call stubs) to CFLAGS below.  -DSYSLIBC_SCCS affects just the
 # system call stubs.
 LIB=c_r
-SHLIB_MAJOR= 5
+SHLIB_MAJOR= 6
 CFLAGS+=-DPTHREAD_KERNEL 
 CFLAGS+=-I${.CURDIR}/../libc/include -I${.CURDIR}/uthread \
 	-I${.CURDIR}/../../include

==== //depot/projects/wifi/lib/libcrypt/Makefile#4 (text+ko) ====

@@ -1,8 +1,8 @@
 #
-# $FreeBSD: src/lib/libcrypt/Makefile,v 1.35 2004/12/21 10:16:00 ru Exp $
+# $FreeBSD: src/lib/libcrypt/Makefile,v 1.36 2005/07/22 17:19:00 kensmith Exp $
 #
 
-SHLIB_MAJOR=	2
+SHLIB_MAJOR=	3
 LIB=		crypt
 SHLIBDIR?=	/lib
 

==== //depot/projects/wifi/lib/libdevstat/Makefile#2 (text+ko) ====

@@ -1,9 +1,9 @@
-# $FreeBSD: src/lib/libdevstat/Makefile,v 1.14 2004/02/05 22:44:22 ru Exp $
+# $FreeBSD: src/lib/libdevstat/Makefile,v 1.15 2005/07/22 17:19:00 kensmith Exp $
 
 LIB=	devstat
 SHLIBDIR?= /lib
 # Bump DEVSTAT_USER_API_VER in devstat.h every time this is incremented.
-SHLIB_MAJOR= 4
+SHLIB_MAJOR= 5
 SRCS=	devstat.c
 INCS=	devstat.h
 

==== //depot/projects/wifi/lib/libdevstat/devstat.h#2 (text+ko) ====

@@ -25,7 +25,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libdevstat/devstat.h,v 1.10 2003/03/18 17:05:27 phk Exp $
+ * $FreeBSD: src/lib/libdevstat/devstat.h,v 1.11 2005/07/22 17:19:00 kensmith Exp $
  */
 
 #ifndef _DEVSTAT_H
@@ -43,7 +43,7 @@
  * backwards-compatible API changes, so application writers have a way to 
  * determine when a particular feature is available.
  */
-#define	DEVSTAT_USER_API_VER	5
+#define	DEVSTAT_USER_API_VER	6
 
 #define DEVSTAT_ERRBUF_SIZE  2048 /* size of the devstat library error string */
 

==== //depot/projects/wifi/lib/libedit/Makefile#2 (text+ko) ====

@@ -1,9 +1,9 @@
 #	$NetBSD: Makefile,v 1.19 2000/08/15 12:01:40 mrg Exp $
 #	@(#)Makefile	8.1 (Berkeley) 6/4/93
-# $FreeBSD: src/lib/libedit/Makefile,v 1.28 2003/08/18 15:25:38 obrien Exp $
+# $FreeBSD: src/lib/libedit/Makefile,v 1.29 2005/07/22 17:19:00 kensmith Exp $
 
 LIB=	edit
-SHLIB_MAJOR=	4
+SHLIB_MAJOR=	5
 SHLIBDIR?= /lib
 
 OSRCS=	chared.c common.c el.c emacs.c fcns.c help.c hist.c key.c map.c \

==== //depot/projects/wifi/lib/libexpat/Makefile#2 (text+ko) ====

@@ -1,10 +1,10 @@
-# $FreeBSD: src/lib/libexpat/Makefile,v 1.4 2003/08/17 08:28:44 gordon Exp $
+# $FreeBSD: src/lib/libexpat/Makefile,v 1.5 2005/07/22 17:19:00 kensmith Exp $
 
 EXPAT=		${.CURDIR}/../../contrib/expat
 
 LIB=		bsdxml
 SHLIBDIR?=	/lib
-SHLIB_MAJOR=	1
+SHLIB_MAJOR=	2
 SRCS=		xmlparse.c xmlrole.c xmltok.c
 INCS=		bsdxml.h
 MAN=		libbsdxml.3

==== //depot/projects/wifi/lib/libfetch/Makefile#3 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/lib/libfetch/Makefile,v 1.44 2004/12/21 10:16:00 ru Exp $
+# $FreeBSD: src/lib/libfetch/Makefile,v 1.45 2005/07/22 17:19:00 kensmith Exp $
 
 LIB=		fetch
 CFLAGS+=	-I.
@@ -18,7 +18,7 @@
 CSTD?=		c99
 WARNS?=		2
 
-SHLIB_MAJOR=    3
+SHLIB_MAJOR=    4
 
 ftperr.h: ftp.errors
 	@echo "static struct fetcherr _ftp_errlist[] = {" > ${.TARGET}

==== //depot/projects/wifi/lib/libftpio/Makefile#2 (text+ko) ====

@@ -1,7 +1,7 @@
-# $FreeBSD: src/lib/libftpio/Makefile,v 1.13 2002/09/28 00:25:29 peter Exp $
+# $FreeBSD: src/lib/libftpio/Makefile,v 1.14 2005/07/22 17:19:01 kensmith Exp $
 
 LIB=		ftpio
-SHLIB_MAJOR=	5
+SHLIB_MAJOR=	6
 
 SRCS=		ftpio.c ftperr.c
 INCS=		ftpio.h

==== //depot/projects/wifi/lib/libgpib/Makefile#2 (text+ko) ====

@@ -1,8 +1,8 @@
-# $FreeBSD: src/lib/libgpib/Makefile,v 1.1 2005/02/06 16:45:20 phk Exp $
+# $FreeBSD: src/lib/libgpib/Makefile,v 1.2 2005/07/22 17:19:01 kensmith Exp $
 
 LIB =		gpib
 SHLIBDIR ?=	/lib
-SHLIB_MAJOR =	0
+SHLIB_MAJOR =	1
 NO_MAN =	sorry
 SRCS =		ibfoo.c
 INCS =		gpib.h

==== //depot/projects/wifi/lib/libipsec/Makefile#3 (text+ko) ====

@@ -25,11 +25,11 @@
 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 # SUCH DAMAGE.
 #
-# $FreeBSD: src/lib/libipsec/Makefile,v 1.16 2004/12/21 10:49:25 ru Exp $
+# $FreeBSD: src/lib/libipsec/Makefile,v 1.17 2005/07/22 17:19:01 kensmith Exp $
 
 LIB=	ipsec
 SHLIBDIR?= /lib
-SHLIB_MAJOR= 1
+SHLIB_MAJOR= 2
 CFLAGS+=-I. -I${.CURDIR}
 CFLAGS+=-DIPSEC_DEBUG -DIPSEC
 .if !defined(NO_INET6)

==== //depot/projects/wifi/lib/libkiconv/Makefile#2 (text+ko) ====

@@ -1,11 +1,11 @@
-# $FreeBSD: src/lib/libkiconv/Makefile,v 1.2 2003/12/08 08:32:19 fjoe Exp $
+# $FreeBSD: src/lib/libkiconv/Makefile,v 1.3 2005/07/22 17:19:01 kensmith Exp $
 
 LIB=		kiconv
 SHLIBDIR?=	/lib
 SRCS=		xlat16_iconv.c xlat16_sysctl.c
 SRCS+=		quirks.c
 
-SHLIB_MAJOR=	1
+SHLIB_MAJOR=	2
 
 MAN=		kiconv.3
 

==== //depot/projects/wifi/lib/libmagic/Makefile#4 (text+ko) ====

@@ -1,11 +1,11 @@
-# $FreeBSD: src/lib/libmagic/Makefile,v 1.6 2005/01/28 17:01:54 ru Exp $
+# $FreeBSD: src/lib/libmagic/Makefile,v 1.7 2005/07/22 17:19:01 kensmith Exp $
 # Copyright (c) David E. O'Brien, 2000-2004
 
 CONTRDIR=	${.CURDIR}/../../contrib/file
 .PATH: ${CONTRDIR}
 
 LIB=	magic
-SHLIB_MAJOR=	1
+SHLIB_MAJOR=	2
 MAN=	libmagic.3 magic.5
 
 SRCS=	apprentice.c apptype.c ascmagic.c compress.c fsmagic.c funcs.c \

==== //depot/projects/wifi/lib/libmp/Makefile#2 (text+ko) ====

@@ -1,7 +1,7 @@
-# $FreeBSD: src/lib/libmp/Makefile,v 1.9 2004/07/28 05:44:07 kan Exp $
+# $FreeBSD: src/lib/libmp/Makefile,v 1.10 2005/07/22 17:19:01 kensmith Exp $
 
 LIB=		mp
-SHLIB_MAJOR=	4
+SHLIB_MAJOR=	5
 MAN=		libmp.3
 INCS=		mp.h
 SRCS=		mpasbn.c

==== //depot/projects/wifi/lib/libncp/Makefile#3 (text+ko) ====

@@ -1,10 +1,10 @@
-# $FreeBSD: src/lib/libncp/Makefile,v 1.5 2004/12/21 08:47:02 ru Exp $
+# $FreeBSD: src/lib/libncp/Makefile,v 1.6 2005/07/22 17:19:02 kensmith Exp $
 
 NCPLIB=${.CURDIR}
 
 LIB=		ncp
 
-SHLIB_MAJOR=	1
+SHLIB_MAJOR=	2
 
 NO_MAN=
 

==== //depot/projects/wifi/lib/libncurses/Makefile#4 (text+ko) ====

@@ -1,10 +1,10 @@
-# $FreeBSD: src/lib/libncurses/Makefile,v 1.78 2004/12/21 12:05:10 ru Exp $
+# $FreeBSD: src/lib/libncurses/Makefile,v 1.79 2005/07/22 17:19:02 kensmith Exp $
 
 NCURSES=${.CURDIR}/../../contrib/ncurses
 
 LIB=	ncurses
 SHLIBDIR?= /lib
-SHLIB_MAJOR=5
+SHLIB_MAJOR=6
 
 # Should be elsewhere
 AWK?=	awk

==== //depot/projects/wifi/lib/libnetgraph/Makefile#2 (text+ko) ====

@@ -1,11 +1,11 @@
-# $FreeBSD: src/lib/libnetgraph/Makefile,v 1.10 2004/01/28 00:11:42 ru Exp $
+# $FreeBSD: src/lib/libnetgraph/Makefile,v 1.11 2005/07/22 17:19:02 kensmith Exp $
 # $Whistle: Makefile,v 1.4 1999/01/17 03:41:02 julian Exp $
 
 LIB=		netgraph
 WARNS?=		3
 MAN=		netgraph.3
 
-SHLIB_MAJOR=	1
+SHLIB_MAJOR=	2
 
 SRCS=		sock.c msg.c debug.c
 INCS=		netgraph.h

==== //depot/projects/wifi/lib/libngatm/Makefile#2 (text+ko) ====

@@ -1,9 +1,9 @@
-# $FreeBSD: src/lib/libngatm/Makefile,v 1.5 2004/07/08 17:09:55 harti Exp $
+# $FreeBSD: src/lib/libngatm/Makefile,v 1.6 2005/07/22 17:19:02 kensmith Exp $
 #
 # Author: Harti Brandt <harti@freebsd.org>
 #
 LIB=	ngatm
-SHLIB_MAJOR= 1
+SHLIB_MAJOR= 2
 MAN=	libngatm.3 uniaddr.3 unifunc.3 unimsg.3 unisap.3 unistruct.3
 WARNS?=	6
 

==== //depot/projects/wifi/lib/libopie/Makefile#3 (text+ko) ====

@@ -1,10 +1,10 @@
 # Makefile for libopie
 #
-# $FreeBSD: src/lib/libopie/Makefile,v 1.20 2005/04/22 18:57:31 trhodes Exp $
+# $FreeBSD: src/lib/libopie/Makefile,v 1.21 2005/07/22 17:19:02 kensmith Exp $
 #
 OPIE_DIST?=	${.CURDIR}/../../contrib/opie
 DIST_DIR=	${OPIE_DIST}/${.CURDIR:T}
-SHLIB_MAJOR=    3
+SHLIB_MAJOR=    4
 
 KEYFILE?=	\"/etc/opiekeys\"
 

==== //depot/projects/wifi/lib/libpam/Makefile.inc#3 (text+ko) ====

@@ -22,11 +22,11 @@
 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 # SUCH DAMAGE.
 #
-# $FreeBSD: src/lib/libpam/Makefile.inc,v 1.16 2005/06/17 08:14:42 des Exp $
+# $FreeBSD: src/lib/libpam/Makefile.inc,v 1.17 2005/07/22 17:19:02 kensmith Exp $
 
 .ifdef PAM_DEBUG
 DEBUG_FLAGS+=	-DDEBUG
 .endif
 
-SHLIB_MAJOR=	2
+SHLIB_MAJOR=	3
 PAM_MOD_DIR=	${LIBDIR}

==== //depot/projects/wifi/lib/libpthread/Makefile#3 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/lib/libpthread/Makefile,v 1.53 2004/10/24 15:32:32 ru Exp $
+# $FreeBSD: src/lib/libpthread/Makefile,v 1.54 2005/07/22 17:19:03 kensmith Exp $
 #
 # All library objects contain FreeBSD revision strings by default; they may be
 # excluded as a space-saving measure.  To produce a library that does
@@ -12,7 +12,7 @@
 .else
 LIB=pthread
 .endif
-SHLIB_MAJOR= 1
+SHLIB_MAJOR= 2
 CFLAGS+=-DPTHREAD_KERNEL
 CFLAGS+=-I${.CURDIR}/../libc/include -I${.CURDIR}/thread \
 	-I${.CURDIR}/../../include

==== //depot/projects/wifi/lib/libradius/Makefile#3 (text+ko) ====

@@ -22,13 +22,13 @@
 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 # SUCH DAMAGE.
 #
-# $FreeBSD: src/lib/libradius/Makefile,v 1.11 2004/12/21 10:16:00 ru Exp $
+# $FreeBSD: src/lib/libradius/Makefile,v 1.12 2005/07/22 17:19:03 kensmith Exp $
 
 LIB=		radius
 SRCS=		radlib.c
 INCS=		radlib.h radlib_vs.h
 CFLAGS+=	-Wall
-SHLIB_MAJOR=	1
+SHLIB_MAJOR=	2
 MAN=		libradius.3 radius.conf.5
 
 .if defined(NO_CRYPT) || defined(NO_OPENSSL)

==== //depot/projects/wifi/lib/libsdp/Makefile#2 (text+ko) ====

@@ -1,5 +1,5 @@
 # $Id: Makefile,v 1.2 2003/09/07 20:34:19 max Exp $
-# $FreeBSD: src/lib/libsdp/Makefile,v 1.3 2004/01/25 21:33:58 emax Exp $
+# $FreeBSD: src/lib/libsdp/Makefile,v 1.4 2005/07/22 17:19:03 kensmith Exp $
 
 LIB=		sdp
 MAN=		sdp.3
@@ -7,7 +7,7 @@
 WARNS?=		2
 CFLAGS+=	-I${.CURDIR}
 
-SHLIB_MAJOR=	1
+SHLIB_MAJOR=	2
 
 SRCS=		search.c service.c session.c util.c
 INCS=		sdp.h

==== //depot/projects/wifi/lib/libsmb/Makefile#4 (text+ko) ====

@@ -1,10 +1,10 @@
-# $FreeBSD: src/lib/libsmb/Makefile,v 1.7 2004/12/21 08:47:03 ru Exp $
+# $FreeBSD: src/lib/libsmb/Makefile,v 1.8 2005/07/22 17:19:03 kensmith Exp $
 
 CONTRIBDIR=	${.CURDIR}/../../contrib/smbfs
 .PATH: ${CONTRIBDIR}/lib/smb
 
 LIB=	smb
-SHLIB_MAJOR=	1
+SHLIB_MAJOR=	2
 NO_MAN=
 
 SRCS=	rcfile.c ctx.c cfopt.c subr.c nls.c rap.c mbuf.c rq.c file.c \

==== //depot/projects/wifi/lib/libtacplus/Makefile#2 (text+ko) ====

@@ -22,7 +22,7 @@
 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 # SUCH DAMAGE.
 #
-#	$FreeBSD: src/lib/libtacplus/Makefile,v 1.6 2004/02/05 22:44:23 ru Exp $
+#	$FreeBSD: src/lib/libtacplus/Makefile,v 1.7 2005/07/22 17:19:03 kensmith Exp $
 
 LIB=		tacplus
 SRCS=		taclib.c
@@ -30,7 +30,7 @@
 CFLAGS+=	-Wall
 DPADD=		${LIBMD}
 LDADD=		-lmd
-SHLIB_MAJOR=	1
+SHLIB_MAJOR=	2
 MAN=		libtacplus.3 tacplus.conf.5
 
 .include <bsd.lib.mk>

==== //depot/projects/wifi/lib/libthr/Makefile#7 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/lib/libthr/Makefile,v 1.13 2005/06/11 15:27:56 rwatson Exp $
+# $FreeBSD: src/lib/libthr/Makefile,v 1.14 2005/07/22 17:19:03 kensmith Exp $
 #
 # All library objects contain FreeBSD revision strings by default; they may be
 # excluded as a space-saving measure.  To produce a library that does
@@ -8,7 +8,7 @@
 # (for system call stubs) to CFLAGS below.  -DSYSLIBC_SCCS affects just the
 # system call stubs.
 LIB=thr
-SHLIB_MAJOR= 1
+SHLIB_MAJOR= 2
 CFLAGS+=-DPTHREAD_KERNEL
 CFLAGS+=-I${.CURDIR}/../libc/include -I${.CURDIR}/thread \
 	-I${.CURDIR}/../../include

==== //depot/projects/wifi/lib/libthread_db/Makefile#2 (text+ko) ====

@@ -1,9 +1,9 @@
-# $FreeBSD: src/lib/libthread_db/Makefile,v 1.5 2004/08/16 03:30:16 davidxu Exp $
+# $FreeBSD: src/lib/libthread_db/Makefile,v 1.6 2005/07/22 17:19:03 kensmith Exp $
 
 .PATH:	${.CURDIR}/arch/${MACHINE_ARCH}
 
 LIB=	thread_db
-SHLIB_MAJOR= 1
+SHLIB_MAJOR= 2
 SRCS=	thread_db.c
 SRCS+=	libpthread_db.c libpthread_md.c
 SRCS+=	libc_r_db.c libc_r_md.c

==== //depot/projects/wifi/lib/libugidfw/Makefile#3 (text+ko) ====

@@ -1,7 +1,7 @@
-# $FreeBSD: src/lib/libugidfw/Makefile,v 1.6 2005/03/28 09:38:43 pjd Exp $
+# $FreeBSD: src/lib/libugidfw/Makefile,v 1.7 2005/07/22 17:19:04 kensmith Exp $
 
 LIB=		ugidfw
-SHLIB_MAJOR=	1
+SHLIB_MAJOR=	2
 SRCS=		ugidfw.c
 INCS=		ugidfw.h
 

==== //depot/projects/wifi/lib/libusbhid/Makefile#3 (text+ko) ====

@@ -1,10 +1,10 @@
 #	$NetBSD: Makefile,v 1.5 1999/07/23 09:44:38 mrg Exp $
-#	$FreeBSD: src/lib/libusbhid/Makefile,v 1.9 2005/06/04 10:58:37 schweikh Exp $
+#	$FreeBSD: src/lib/libusbhid/Makefile,v 1.10 2005/07/22 17:19:04 kensmith Exp $
 
 LIB=	usbhid
 MAN=	usbhid.3
 
-SHLIB_MAJOR= 1
+SHLIB_MAJOR= 2
 
 MLINKS=	usbhid.3 libusbhid.3 usbhid.3 hid_get_report_desc.3 \
 	usbhid.3 hid_dispose_report_desc.3 \

==== //depot/projects/wifi/lib/libutil/Makefile#2 (text+ko) ====

@@ -1,8 +1,8 @@
 #	@(#)Makefile	8.1 (Berkeley) 6/4/93
-#	$FreeBSD: src/lib/libutil/Makefile,v 1.56 2004/05/24 22:19:27 pjd Exp $
+#	$FreeBSD: src/lib/libutil/Makefile,v 1.57 2005/07/22 17:19:04 kensmith Exp $
 
 LIB=	util
-SHLIB_MAJOR= 4
+SHLIB_MAJOR= 5
 SHLIBDIR?= /lib
 CFLAGS+=-DLIBC_SCCS -I${.CURDIR} -I${.CURDIR}/../libc/gen/
 CFLAGS+=-DINET6

==== //depot/projects/wifi/lib/libvgl/Makefile#2 (text+ko) ====

@@ -1,6 +1,6 @@
-# $FreeBSD: src/lib/libvgl/Makefile,v 1.10 2002/09/28 00:25:32 peter Exp $
+# $FreeBSD: src/lib/libvgl/Makefile,v 1.11 2005/07/22 17:19:04 kensmith Exp $
 LIB=	vgl
-SHLIB_MAJOR= 3
+SHLIB_MAJOR= 4
 CFLAGS+=-Wall -I${.CURDIR}
 SRCS=	main.c simple.c bitmap.c text.c mouse.c keyboard.c
 INCS=	vgl.h

==== //depot/projects/wifi/lib/libwrap/Makefile#4 (text+ko) ====

@@ -1,9 +1,9 @@
 #
-# $FreeBSD: src/lib/libwrap/Makefile,v 1.16 2004/12/21 10:49:26 ru Exp $
+# $FreeBSD: src/lib/libwrap/Makefile,v 1.17 2005/07/22 17:19:04 kensmith Exp $
 #
 
 LIB=	wrap
-SHLIB_MAJOR= 3
+SHLIB_MAJOR= 4
 INCS=	tcpd.h
 MAN=	hosts_access.3
 MAN+=	hosts_access.5 hosts_options.5

==== //depot/projects/wifi/lib/libypclnt/Makefile#2 (text+ko) ====

@@ -1,7 +1,7 @@
-# $FreeBSD: src/lib/libypclnt/Makefile,v 1.12 2004/02/04 09:53:29 ru Exp $
+# $FreeBSD: src/lib/libypclnt/Makefile,v 1.13 2005/07/22 17:19:04 kensmith Exp $
 
 LIB=	ypclnt
-SHLIB_MAJOR= 1
+SHLIB_MAJOR= 2
 SRCS=	ypclnt_connect.c \
 	ypclnt_error.c \
 	ypclnt_free.c \

==== //depot/projects/wifi/lib/msun/Makefile#11 (text+ko) ====

@@ -1,5 +1,5 @@
 #  @(#)Makefile 5.1beta 93/09/24
-# $FreeBSD: src/lib/msun/Makefile,v 1.71 2005/04/17 19:57:52 ache Exp $
+# $FreeBSD: src/lib/msun/Makefile,v 1.72 2005/07/22 17:19:05 kensmith Exp $
 #
 #  ====================================================
 #  Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -26,7 +26,7 @@
 
 LIB=	m
 SHLIBDIR?= /lib
-SHLIB_MAJOR= 3
+SHLIB_MAJOR= 4
 COMMON_SRCS= b_exp.c b_log.c b_tgamma.c \
 	e_acos.c e_acosf.c e_acosh.c e_acoshf.c e_asin.c e_asinf.c \
 	e_atan2.c e_atan2f.c e_atanh.c e_atanhf.c e_cosh.c e_coshf.c e_exp.c \

==== //depot/projects/wifi/secure/lib/libcrypto/Makefile#6 (text+ko) ====

@@ -1,8 +1,8 @@
-# $FreeBSD: src/secure/lib/libcrypto/Makefile,v 1.73 2005/02/25 06:04:09 nectar Exp $
+# $FreeBSD: src/secure/lib/libcrypto/Makefile,v 1.74 2005/07/22 17:19:05 kensmith Exp $
 
 LIB=		crypto
 SHLIBDIR?=	/lib
-SHLIB_MAJOR=	3
+SHLIB_MAJOR=	4
 
 NO_LINT=
 

==== //depot/projects/wifi/secure/lib/libssh/Makefile#6 (text+ko) ====

@@ -1,7 +1,7 @@
-# $FreeBSD: src/secure/lib/libssh/Makefile,v 1.34 2005/06/07 09:31:26 des Exp $
+# $FreeBSD: src/secure/lib/libssh/Makefile,v 1.35 2005/07/22 17:19:05 kensmith Exp $
 
 LIB=	ssh
-SHLIB_MAJOR=	2
+SHLIB_MAJOR=	3
 SRCS=	acss.c authfd.c authfile.c bufaux.c buffer.c \
 	canohost.c channels.c cipher.c cipher-acss.c cipher-aes.c \
 	cipher-bf1.c cipher-ctr.c cipher-3des1.c cleanup.c \

==== //depot/projects/wifi/secure/lib/libssl/Makefile#4 (text+ko) ====

@@ -1,7 +1,7 @@
-# $FreeBSD: src/secure/lib/libssl/Makefile,v 1.21 2004/12/21 09:33:45 ru Exp $
+# $FreeBSD: src/secure/lib/libssl/Makefile,v 1.22 2005/07/22 17:19:05 kensmith Exp $
 
 LIB=		ssl
-SHLIB_MAJOR=	3
+SHLIB_MAJOR=	4
 
 NO_LINT=
 

==== //depot/projects/wifi/share/man/man4/kbdmux.4#2 (text+ko) ====

@@ -1,5 +1,5 @@
 .\" $Id: kbdmux.4,v 1.1 2005/07/14 20:32:10 max Exp $
-.\" $FreeBSD: src/share/man/man4/kbdmux.4,v 1.1 2005/07/14 23:04:22 emax Exp $
+.\" $FreeBSD: src/share/man/man4/kbdmux.4,v 1.2 2005/07/21 22:47:34 markus Exp $
 .\"
 .Dd July 12, 2005
 .Os
@@ -12,16 +12,16 @@
 .Sh DESCRIPTION
 The
 .Nm
-keyboard driver provides support for basic keyboard multiplexer.
-It is built around the idea of
-.Dq super keyboard ,
-that is
+keyboard driver provides support for basic keyboard multiplexing.
+It is built around the idea of a
+.Dq super keyboard .
 .Nm
-is a keyboard that consumes input from all slave keyboards attached to it.
+acts as a master keyboard consuming input from all slave keyboards attached to
+it.
 .Pp
 Slave keyboards can be attached to or detached from the
 .Nm
-keyboard driver with
+keyboard driver with the
 .Xr kbdcontrol 1
 utility.
 .Sh SEE ALSO
@@ -30,7 +30,7 @@

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

From owner-p4-projects@FreeBSD.ORG  Fri Jul 22 21:56:30 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 4C9BE16A421; Fri, 22 Jul 2005 21:56:30 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 2275D16A41F
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 21:56:30 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id ECD9943D5E
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 21:56:29 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6MLuToO044222
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 21:56:29 GMT
	(envelope-from soc-anders@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6MLuTie044219
	for perforce@freebsd.org; Fri, 22 Jul 2005 21:56:29 GMT
	(envelope-from soc-anders@freebsd.org)
Date: Fri, 22 Jul 2005 21:56:29 GMT
Message-Id: <200507222156.j6MLuTie044219@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-anders@freebsd.org using -f
From: soc-anders <soc-anders@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80796 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jul 2005 21:56:31 -0000

http://perforce.freebsd.org/chv.cgi?CH=80796

Change 80796 by soc-anders@soc-anders_gimli on 2005/07/22 21:55:34

	Added net.key.pfkeystat to sysctl

Affected files ...

.. //depot/projects/soc2005/ifcleanup/src/src/sys/netkey/keysock.c#2 edit

Differences ...

==== //depot/projects/soc2005/ifcleanup/src/src/sys/netkey/keysock.c#2 (text+ko) ====

@@ -70,6 +70,10 @@
 static int key_sendup0(struct rawcb *, struct mbuf *, int);
 
 struct pfkeystat pfkeystat;
+SYSCTL_DECL(_net_key);
+SYSCTL_STRUCT(_net_key, OID_AUTO, pfkeystat, CTLFLAG_RD, 
+	&pfkeystat, pfkeystat, 
+	"Statistics for pfkey socket (struct pfkeystat, netkey/keysock.h)"); 
 
 /*
  * key_output()

From owner-p4-projects@FreeBSD.ORG  Fri Jul 22 22:05:42 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id C063316A421; Fri, 22 Jul 2005 22:05:41 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 9A3AF16A41F
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 22:05:41 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 716C043D46
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 22:05:41 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6MM5fYG044568
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 22:05:41 GMT
	(envelope-from soc-anders@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6MM5fDh044565
	for perforce@freebsd.org; Fri, 22 Jul 2005 22:05:41 GMT
	(envelope-from soc-anders@freebsd.org)
Date: Fri, 22 Jul 2005 22:05:41 GMT
Message-Id: <200507222205.j6MM5fDh044565@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-anders@freebsd.org using -f
From: soc-anders <soc-anders@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80797 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jul 2005 22:05:42 -0000

http://perforce.freebsd.org/chv.cgi?CH=80797

Change 80797 by soc-anders@soc-anders_gimli on 2005/07/22 22:05:22

	Migrate in_aliasreq to in.h

Affected files ...

.. //depot/projects/soc2005/ifcleanup/src/src/sys/netinet/in_var.h#2 edit

Differences ...

==== //depot/projects/soc2005/ifcleanup/src/src/sys/netinet/in_var.h#2 (text+ko) ====

@@ -60,13 +60,6 @@
 	struct	sockaddr_in ia_sockmask; /* reserve space for general netmask */
 };
 
-struct	in_aliasreq {
-	char	ifra_name[IFNAMSIZ];		/* if name, e.g. "en0" */
-	struct	sockaddr_in ifra_addr;
-	struct	sockaddr_in ifra_broadaddr;
-#define ifra_dstaddr ifra_broadaddr
-	struct	sockaddr_in ifra_mask;
-};
 /*
  * Given a pointer to an in_ifaddr (ifaddr),
  * return a pointer to the addr as a sockaddr_in.

From owner-p4-projects@FreeBSD.ORG  Fri Jul 22 22:09:47 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 48DE616A421; Fri, 22 Jul 2005 22:09:47 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 1B59F16A41F
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 22:09:47 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id E5F3543D48
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 22:09:46 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6MM9kvo044681
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 22:09:46 GMT
	(envelope-from soc-anders@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6MM9kRo044678
	for perforce@freebsd.org; Fri, 22 Jul 2005 22:09:46 GMT
	(envelope-from soc-anders@freebsd.org)
Date: Fri, 22 Jul 2005 22:09:46 GMT
Message-Id: <200507222209.j6MM9kRo044678@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-anders@freebsd.org using -f
From: soc-anders <soc-anders@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80798 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jul 2005 22:09:48 -0000

http://perforce.freebsd.org/chv.cgi?CH=80798

Change 80798 by soc-anders@soc-anders_gimli on 2005/07/22 22:09:10

	Moved in_aliasreq from in_var.h to in.h 

Affected files ...

.. //depot/projects/soc2005/ifcleanup/src/src/sys/netinet/in.h#2 edit

Differences ...

==== //depot/projects/soc2005/ifcleanup/src/src/sys/netinet/in.h#2 (text+ko) ====

@@ -37,6 +37,10 @@
 #include <sys/_types.h>
 #include <machine/endian.h>
 
+/* XXX Temporary solution to minimize changes to consumers */
+#include <sys/socket.h>
+#include <net/if.h> 
+
 /* Protocols common to RFC 1700, POSIX, and X/Open. */
 #define	IPPROTO_IP		0		/* dummy for IP */
 #define	IPPROTO_ICMP		1		/* control message protocol */
@@ -423,6 +427,14 @@
 #define	IP_DEFAULT_MULTICAST_LOOP 1	/* normally hear sends if a member  */
 #define	IP_MAX_MEMBERSHIPS	20	/* per socket */
 
+struct	in_aliasreq {
+	char	ifra_name[IFNAMSIZ];		/* if name, e.g. "en0" */
+	struct	sockaddr_in ifra_addr;
+	struct	sockaddr_in ifra_broadaddr;
+#define ifra_dstaddr ifra_broadaddr
+	struct	sockaddr_in ifra_mask;
+};
+
 /*
  * Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
  */

From owner-p4-projects@FreeBSD.ORG  Fri Jul 22 22:11:51 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 54B7416A421; Fri, 22 Jul 2005 22:11:51 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 1610516A41F
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 22:11:51 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id EB1B643D58
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 22:11:49 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6MMBnHZ044871
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 22:11:49 GMT
	(envelope-from soc-anders@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6MMBn1Z044868
	for perforce@freebsd.org; Fri, 22 Jul 2005 22:11:49 GMT
	(envelope-from soc-anders@freebsd.org)
Date: Fri, 22 Jul 2005 22:11:49 GMT
Message-Id: <200507222211.j6MMBn1Z044868@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-anders@freebsd.org using -f
From: soc-anders <soc-anders@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80799 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jul 2005 22:11:52 -0000

http://perforce.freebsd.org/chv.cgi?CH=80799

Change 80799 by soc-anders@soc-anders_gimli on 2005/07/22 22:11:36

	Moved ip6stats from netinet6/ip6_var.h to here

Affected files ...

.. //depot/projects/soc2005/ifcleanup/src/src/sys/netinet/ip6.h#2 edit

Differences ...

==== //depot/projects/soc2005/ifcleanup/src/src/sys/netinet/ip6.h#2 (text+ko) ====

@@ -211,6 +211,74 @@
 #define IPV6_MAXPACKET	65535	/* ip6 max packet size without Jumbo payload*/
 #define IPV6_MAXOPTHDR	2048	/* max option header size, 256 64-bit words */
 
+/*
+ * Control options for incoming packets
+ */
+
+struct	ip6stat {
+	u_quad_t ip6s_total;		/* total packets received */
+	u_quad_t ip6s_tooshort;		/* packet too short */
+	u_quad_t ip6s_toosmall;		/* not enough data */
+	u_quad_t ip6s_fragments;	/* fragments received */
+	u_quad_t ip6s_fragdropped;	/* frags dropped(dups, out of space) */
+	u_quad_t ip6s_fragtimeout;	/* fragments timed out */
+	u_quad_t ip6s_fragoverflow;	/* fragments that exceeded limit */
+	u_quad_t ip6s_forward;		/* packets forwarded */
+	u_quad_t ip6s_cantforward;	/* packets rcvd for unreachable dest */
+	u_quad_t ip6s_redirectsent;	/* packets forwarded on same net */
+	u_quad_t ip6s_delivered;	/* datagrams delivered to upper level*/
+	u_quad_t ip6s_localout;		/* total ip packets generated here */
+	u_quad_t ip6s_odropped;		/* lost packets due to nobufs, etc. */
+	u_quad_t ip6s_reassembled;	/* total packets reassembled ok */
+	u_quad_t ip6s_fragmented;	/* datagrams successfully fragmented */
+	u_quad_t ip6s_ofragments;	/* output fragments created */
+	u_quad_t ip6s_cantfrag;		/* don't fragment flag was set, etc. */
+	u_quad_t ip6s_badoptions;	/* error in option processing */
+	u_quad_t ip6s_noroute;		/* packets discarded due to no route */
+	u_quad_t ip6s_badvers;		/* ip6 version != 6 */
+	u_quad_t ip6s_rawout;		/* total raw ip packets generated */
+	u_quad_t ip6s_badscope;		/* scope error */
+	u_quad_t ip6s_notmember;	/* don't join this multicast group */
+	u_quad_t ip6s_nxthist[256];	/* next header history */
+	u_quad_t ip6s_m1;		/* one mbuf */
+	u_quad_t ip6s_m2m[32];		/* two or more mbuf */
+	u_quad_t ip6s_mext1;		/* one ext mbuf */
+	u_quad_t ip6s_mext2m;		/* two or more ext mbuf */
+	u_quad_t ip6s_exthdrtoolong;	/* ext hdr are not continuous */
+	u_quad_t ip6s_nogif;		/* no match gif found */
+	u_quad_t ip6s_toomanyhdr;	/* discarded due to too many headers */
+
+	/*
+	 * statistics for improvement of the source address selection
+	 * algorithm:
+	 * XXX: hardcoded 16 = # of ip6 multicast scope types + 1
+	 */
+	/* number of times that address selection fails */
+	u_quad_t ip6s_sources_none;
+	/* number of times that an address on the outgoing I/F is chosen */
+	u_quad_t ip6s_sources_sameif[16];
+	/* number of times that an address on a non-outgoing I/F is chosen */
+	u_quad_t ip6s_sources_otherif[16];
+	/*
+	 * number of times that an address that has the same scope
+	 * from the destination is chosen.
+	 */
+	u_quad_t ip6s_sources_samescope[16];
+	/*
+	 * number of times that an address that has a different scope
+	 * from the destination is chosen.
+	 */
+	u_quad_t ip6s_sources_otherscope[16];
+	/* number of times that a deprecated address is chosen */
+	u_quad_t ip6s_sources_deprecated[16];
+
+	u_quad_t ip6s_forward_cachehit;
+	u_quad_t ip6s_forward_cachemiss;
+
+	/* number of times that each rule of source selection is applied. */
+	u_quad_t ip6s_sources_rule[16];
+};
+
 #ifdef _KERNEL
 /*
  * IP6_EXTHDR_CHECK ensures that region between the IP6 header and the

From owner-p4-projects@FreeBSD.ORG  Fri Jul 22 22:13:53 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 7CE0716A421; Fri, 22 Jul 2005 22:13:53 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 3D25E16A41F
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 22:13:53 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 0CAAE43D45
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 22:13:53 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6MMDq9w045009
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 22:13:52 GMT
	(envelope-from soc-anders@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6MMDq4C045005
	for perforce@freebsd.org; Fri, 22 Jul 2005 22:13:52 GMT
	(envelope-from soc-anders@freebsd.org)
Date: Fri, 22 Jul 2005 22:13:52 GMT
Message-Id: <200507222213.j6MMDq4C045005@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-anders@freebsd.org using -f
From: soc-anders <soc-anders@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80800 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jul 2005 22:13:54 -0000

http://perforce.freebsd.org/chv.cgi?CH=80800

Change 80800 by soc-anders@soc-anders_gimli on 2005/07/22 22:13:06

	Migrated ip6stats to netinet/ip6.h 

Affected files ...

.. //depot/projects/soc2005/ifcleanup/src/src/sys/netinet6/ip6_var.h#2 edit

Differences ...

==== //depot/projects/soc2005/ifcleanup/src/src/sys/netinet6/ip6_var.h#2 (text+ko) ====

@@ -177,74 +177,6 @@
 	int	needfree;	/* members dynamically allocated */
 };
 
-/*
- * Control options for incoming packets
- */
-
-struct	ip6stat {
-	u_quad_t ip6s_total;		/* total packets received */
-	u_quad_t ip6s_tooshort;		/* packet too short */
-	u_quad_t ip6s_toosmall;		/* not enough data */
-	u_quad_t ip6s_fragments;	/* fragments received */
-	u_quad_t ip6s_fragdropped;	/* frags dropped(dups, out of space) */
-	u_quad_t ip6s_fragtimeout;	/* fragments timed out */
-	u_quad_t ip6s_fragoverflow;	/* fragments that exceeded limit */
-	u_quad_t ip6s_forward;		/* packets forwarded */
-	u_quad_t ip6s_cantforward;	/* packets rcvd for unreachable dest */
-	u_quad_t ip6s_redirectsent;	/* packets forwarded on same net */
-	u_quad_t ip6s_delivered;	/* datagrams delivered to upper level*/
-	u_quad_t ip6s_localout;		/* total ip packets generated here */
-	u_quad_t ip6s_odropped;		/* lost packets due to nobufs, etc. */
-	u_quad_t ip6s_reassembled;	/* total packets reassembled ok */
-	u_quad_t ip6s_fragmented;	/* datagrams successfully fragmented */
-	u_quad_t ip6s_ofragments;	/* output fragments created */
-	u_quad_t ip6s_cantfrag;		/* don't fragment flag was set, etc. */
-	u_quad_t ip6s_badoptions;	/* error in option processing */
-	u_quad_t ip6s_noroute;		/* packets discarded due to no route */
-	u_quad_t ip6s_badvers;		/* ip6 version != 6 */
-	u_quad_t ip6s_rawout;		/* total raw ip packets generated */
-	u_quad_t ip6s_badscope;		/* scope error */
-	u_quad_t ip6s_notmember;	/* don't join this multicast group */
-	u_quad_t ip6s_nxthist[256];	/* next header history */
-	u_quad_t ip6s_m1;		/* one mbuf */
-	u_quad_t ip6s_m2m[32];		/* two or more mbuf */
-	u_quad_t ip6s_mext1;		/* one ext mbuf */
-	u_quad_t ip6s_mext2m;		/* two or more ext mbuf */
-	u_quad_t ip6s_exthdrtoolong;	/* ext hdr are not continuous */
-	u_quad_t ip6s_nogif;		/* no match gif found */
-	u_quad_t ip6s_toomanyhdr;	/* discarded due to too many headers */
-
-	/*
-	 * statistics for improvement of the source address selection
-	 * algorithm:
-	 * XXX: hardcoded 16 = # of ip6 multicast scope types + 1
-	 */
-	/* number of times that address selection fails */
-	u_quad_t ip6s_sources_none;
-	/* number of times that an address on the outgoing I/F is chosen */
-	u_quad_t ip6s_sources_sameif[16];
-	/* number of times that an address on a non-outgoing I/F is chosen */
-	u_quad_t ip6s_sources_otherif[16];
-	/*
-	 * number of times that an address that has the same scope
-	 * from the destination is chosen.
-	 */
-	u_quad_t ip6s_sources_samescope[16];
-	/*
-	 * number of times that an address that has a different scope
-	 * from the destination is chosen.
-	 */
-	u_quad_t ip6s_sources_otherscope[16];
-	/* number of times that a deprecated address is chosen */
-	u_quad_t ip6s_sources_deprecated[16];
-
-	u_quad_t ip6s_forward_cachehit;
-	u_quad_t ip6s_forward_cachemiss;
-
-	/* number of times that each rule of source selection is applied. */
-	u_quad_t ip6s_sources_rule[16];
-};
-
 #ifdef _KERNEL
 /*
  * IPv6 onion peeling state.
@@ -282,6 +214,7 @@
 #define	IPV6_FORWARDING		0x02	/* most of IPv6 header exists */
 #define	IPV6_MINMTU		0x04	/* use minimum MTU (IPV6_USE_MIN_MTU) */
 
+struct ip6stat;
 extern struct	ip6stat ip6stat;	/* statistics */
 extern int	ip6_defhlim;		/* default hop limit */
 extern int	ip6_defmcasthlim;	/* default multicast hop limit */

From owner-p4-projects@FreeBSD.ORG  Fri Jul 22 22:16:58 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 43F9016A421; Fri, 22 Jul 2005 22:16:58 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 06E8416A41F
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 22:16:58 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id B6C7C43D46
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 22:16:57 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6MMGvCP045196
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 22:16:57 GMT
	(envelope-from soc-anders@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6MMGvcG045193
	for perforce@freebsd.org; Fri, 22 Jul 2005 22:16:57 GMT
	(envelope-from soc-anders@freebsd.org)
Date: Fri, 22 Jul 2005 22:16:57 GMT
Message-Id: <200507222216.j6MMGvcG045193@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-anders@freebsd.org using -f
From: soc-anders <soc-anders@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80802 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jul 2005 22:16:59 -0000

http://perforce.freebsd.org/chv.cgi?CH=80802

Change 80802 by soc-anders@soc-anders_gimli on 2005/07/22 22:16:11

	Migrated statistical information as well as ioctl stuff from
	in6_var.h to in6.h.

Affected files ...

.. //depot/projects/soc2005/ifcleanup/src/src/sys/netinet6/in6.h#2 edit
.. //depot/projects/soc2005/ifcleanup/src/src/sys/netinet6/in6_var.h#2 edit

Differences ...

==== //depot/projects/soc2005/ifcleanup/src/src/sys/netinet6/in6.h#2 (text+ko) ====

@@ -390,6 +390,342 @@
 #endif /* _KERNEL */
 
 /*
+ * IPv6 interface statistics, as defined in RFC2465 Ipv6IfStatsEntry (p12).
+ */
+struct in6_ifstat {
+	u_quad_t ifs6_in_receive;	/* # of total input datagram */
+	u_quad_t ifs6_in_hdrerr;	/* # of datagrams with invalid hdr */
+	u_quad_t ifs6_in_toobig;	/* # of datagrams exceeded MTU */
+	u_quad_t ifs6_in_noroute;	/* # of datagrams with no route */
+	u_quad_t ifs6_in_addrerr;	/* # of datagrams with invalid dst */
+	u_quad_t ifs6_in_protounknown;	/* # of datagrams with unknown proto */
+					/* NOTE: increment on final dst if */
+	u_quad_t ifs6_in_truncated;	/* # of truncated datagrams */
+	u_quad_t ifs6_in_discard;	/* # of discarded datagrams */
+					/* NOTE: fragment timeout is not here */
+	u_quad_t ifs6_in_deliver;	/* # of datagrams delivered to ULP */
+					/* NOTE: increment on final dst if */
+	u_quad_t ifs6_out_forward;	/* # of datagrams forwarded */
+					/* NOTE: increment on outgoing if */
+	u_quad_t ifs6_out_request;	/* # of outgoing datagrams from ULP */
+					/* NOTE: does not include forwrads */
+	u_quad_t ifs6_out_discard;	/* # of discarded datagrams */
+	u_quad_t ifs6_out_fragok;	/* # of datagrams fragmented */
+	u_quad_t ifs6_out_fragfail;	/* # of datagrams failed on fragment */
+	u_quad_t ifs6_out_fragcreat;	/* # of fragment datagrams */
+					/* NOTE: this is # after fragment */
+	u_quad_t ifs6_reass_reqd;	/* # of incoming fragmented packets */
+					/* NOTE: increment on final dst if */
+	u_quad_t ifs6_reass_ok;		/* # of reassembled packets */
+					/* NOTE: this is # after reass */
+					/* NOTE: increment on final dst if */
+	u_quad_t ifs6_reass_fail;	/* # of reass failures */
+					/* NOTE: may not be packet count */
+					/* NOTE: increment on final dst if */
+	u_quad_t ifs6_in_mcast;		/* # of inbound multicast datagrams */
+	u_quad_t ifs6_out_mcast;	/* # of outbound multicast datagrams */
+};
+
+/*
+ * ICMPv6 interface statistics, as defined in RFC2466 Ipv6IfIcmpEntry.
+ * XXX: I'm not sure if this file is the right place for this structure...
+ */
+struct icmp6_ifstat {
+	/*
+	 * Input statistics
+	 */
+	/* ipv6IfIcmpInMsgs, total # of input messages */
+	u_quad_t ifs6_in_msg;
+	/* ipv6IfIcmpInErrors, # of input error messages */
+	u_quad_t ifs6_in_error;
+	/* ipv6IfIcmpInDestUnreachs, # of input dest unreach errors */
+	u_quad_t ifs6_in_dstunreach;
+	/* ipv6IfIcmpInAdminProhibs, # of input administratively prohibited errs */
+	u_quad_t ifs6_in_adminprohib;
+	/* ipv6IfIcmpInTimeExcds, # of input time exceeded errors */
+	u_quad_t ifs6_in_timeexceed;
+	/* ipv6IfIcmpInParmProblems, # of input parameter problem errors */
+	u_quad_t ifs6_in_paramprob;
+	/* ipv6IfIcmpInPktTooBigs, # of input packet too big errors */
+	u_quad_t ifs6_in_pkttoobig;
+	/* ipv6IfIcmpInEchos, # of input echo requests */
+	u_quad_t ifs6_in_echo;
+	/* ipv6IfIcmpInEchoReplies, # of input echo replies */
+	u_quad_t ifs6_in_echoreply;
+	/* ipv6IfIcmpInRouterSolicits, # of input router solicitations */
+	u_quad_t ifs6_in_routersolicit;
+	/* ipv6IfIcmpInRouterAdvertisements, # of input router advertisements */
+	u_quad_t ifs6_in_routeradvert;
+	/* ipv6IfIcmpInNeighborSolicits, # of input neighbor solicitations */
+	u_quad_t ifs6_in_neighborsolicit;
+	/* ipv6IfIcmpInNeighborAdvertisements, # of input neighbor advertisements */
+	u_quad_t ifs6_in_neighboradvert;
+	/* ipv6IfIcmpInRedirects, # of input redirects */
+	u_quad_t ifs6_in_redirect;
+	/* ipv6IfIcmpInGroupMembQueries, # of input MLD queries */
+	u_quad_t ifs6_in_mldquery;
+	/* ipv6IfIcmpInGroupMembResponses, # of input MLD reports */
+	u_quad_t ifs6_in_mldreport;
+	/* ipv6IfIcmpInGroupMembReductions, # of input MLD done */
+	u_quad_t ifs6_in_mlddone;
+
+	/*
+	 * Output statistics. We should solve unresolved routing problem...
+	 */
+	/* ipv6IfIcmpOutMsgs, total # of output messages */
+	u_quad_t ifs6_out_msg;
+	/* ipv6IfIcmpOutErrors, # of output error messages */
+	u_quad_t ifs6_out_error;
+	/* ipv6IfIcmpOutDestUnreachs, # of output dest unreach errors */
+	u_quad_t ifs6_out_dstunreach;
+	/* ipv6IfIcmpOutAdminProhibs, # of output administratively prohibited errs */
+	u_quad_t ifs6_out_adminprohib;
+	/* ipv6IfIcmpOutTimeExcds, # of output time exceeded errors */
+	u_quad_t ifs6_out_timeexceed;
+	/* ipv6IfIcmpOutParmProblems, # of output parameter problem errors */
+	u_quad_t ifs6_out_paramprob;
+	/* ipv6IfIcmpOutPktTooBigs, # of output packet too big errors */
+	u_quad_t ifs6_out_pkttoobig;
+	/* ipv6IfIcmpOutEchos, # of output echo requests */
+	u_quad_t ifs6_out_echo;
+	/* ipv6IfIcmpOutEchoReplies, # of output echo replies */
+	u_quad_t ifs6_out_echoreply;
+	/* ipv6IfIcmpOutRouterSolicits, # of output router solicitations */
+	u_quad_t ifs6_out_routersolicit;
+	/* ipv6IfIcmpOutRouterAdvertisements, # of output router advertisements */
+	u_quad_t ifs6_out_routeradvert;
+	/* ipv6IfIcmpOutNeighborSolicits, # of output neighbor solicitations */
+	u_quad_t ifs6_out_neighborsolicit;
+	/* ipv6IfIcmpOutNeighborAdvertisements, # of output neighbor advertisements */
+	u_quad_t ifs6_out_neighboradvert;
+	/* ipv6IfIcmpOutRedirects, # of output redirects */
+	u_quad_t ifs6_out_redirect;
+	/* ipv6IfIcmpOutGroupMembQueries, # of output MLD queries */
+	u_quad_t ifs6_out_mldquery;
+	/* ipv6IfIcmpOutGroupMembResponses, # of output MLD reports */
+	u_quad_t ifs6_out_mldreport;
+	/* ipv6IfIcmpOutGroupMembReductions, # of output MLD done */
+	u_quad_t ifs6_out_mlddone;
+};
+
+/*
+ * pltime/vltime are just for future reference (required to implements 2
+ * hour rule for hosts).  they should never be modified by nd6_timeout or
+ * anywhere else.
+ *	userland -> kernel: accept pltime/vltime
+ *	kernel -> userland: throw up everything
+ *	in kernel: modify preferred/expire only
+ */
+struct in6_addrlifetime {
+	time_t ia6t_expire;	/* valid lifetime expiration time */
+	time_t ia6t_preferred;	/* preferred lifetime expiration time */
+	u_int32_t ia6t_vltime;	/* valid lifetime */
+	u_int32_t ia6t_pltime;	/* prefix lifetime */
+};
+
+/* control structure to manage address selection policy */
+struct in6_addrpolicy {
+	struct sockaddr_in6 addr; /* prefix address */
+	struct sockaddr_in6 addrmask; /* prefix mask */
+	int preced;		/* precedence */
+	int label;		/* matching label */
+	u_quad_t use;		/* statistics */
+};
+
+struct	in6_ifreq {
+	char	ifr_name[IFNAMSIZ];
+	union {
+		struct	sockaddr_in6 ifru_addr;
+		struct	sockaddr_in6 ifru_dstaddr;
+		int	ifru_flags;
+		int	ifru_flags6;
+		int	ifru_metric;
+		caddr_t	ifru_data;
+		struct in6_addrlifetime ifru_lifetime;
+		struct in6_ifstat ifru_stat;
+		struct icmp6_ifstat ifru_icmp6stat;
+		u_int32_t ifru_scope_id[16];
+	} ifr_ifru;
+};
+
+struct	in6_aliasreq {
+	char	ifra_name[IFNAMSIZ];
+	struct	sockaddr_in6 ifra_addr;
+	struct	sockaddr_in6 ifra_dstaddr;
+	struct	sockaddr_in6 ifra_prefixmask;
+	int	ifra_flags;
+	struct in6_addrlifetime ifra_lifetime;
+};
+
+/* prefix type macro */
+#define IN6_PREFIX_ND	1
+#define IN6_PREFIX_RR	2
+
+/*
+ * prefix related flags passed between kernel(NDP related part) and
+ * user land command(ifconfig) and daemon(rtadvd).
+ */
+struct in6_prflags {
+	struct prf_ra {
+		u_char onlink : 1;
+		u_char autonomous : 1;
+		u_char reserved : 6;
+	} prf_ra;
+	u_char prf_reserved1;
+	u_short prf_reserved2;
+	/* want to put this on 4byte offset */
+	struct prf_rr {
+		u_char decrvalid : 1;
+		u_char decrprefd : 1;
+		u_char reserved : 6;
+	} prf_rr;
+	u_char prf_reserved3;
+	u_short prf_reserved4;
+};
+
+struct  in6_prefixreq {
+	char	ipr_name[IFNAMSIZ];
+	u_char	ipr_origin;
+	u_char	ipr_plen;
+	u_int32_t ipr_vltime;
+	u_int32_t ipr_pltime;
+	struct in6_prflags ipr_flags;
+	struct	sockaddr_in6 ipr_prefix;
+};
+
+#define PR_ORIG_RA	0
+#define PR_ORIG_RR	1
+#define PR_ORIG_STATIC	2
+#define PR_ORIG_KERNEL	3
+
+#define ipr_raf_onlink		ipr_flags.prf_ra.onlink
+#define ipr_raf_auto		ipr_flags.prf_ra.autonomous
+
+#define ipr_statef_onlink	ipr_flags.prf_state.onlink
+
+#define ipr_rrf_decrvalid	ipr_flags.prf_rr.decrvalid
+#define ipr_rrf_decrprefd	ipr_flags.prf_rr.decrprefd
+
+struct	in6_rrenumreq {
+	char	irr_name[IFNAMSIZ];
+	u_char	irr_origin;
+	u_char	irr_m_len;	/* match len for matchprefix */
+	u_char	irr_m_minlen;	/* minlen for matching prefix */
+	u_char	irr_m_maxlen;	/* maxlen for matching prefix */
+	u_char	irr_u_uselen;	/* uselen for adding prefix */
+	u_char	irr_u_keeplen;	/* keeplen from matching prefix */
+	struct irr_raflagmask {
+		u_char onlink : 1;
+		u_char autonomous : 1;
+		u_char reserved : 6;
+	} irr_raflagmask;
+	u_int32_t irr_vltime;
+	u_int32_t irr_pltime;
+	struct in6_prflags irr_flags;
+	struct	sockaddr_in6 irr_matchprefix;
+	struct	sockaddr_in6 irr_useprefix;
+};
+
+#define irr_raf_mask_onlink	irr_raflagmask.onlink
+#define irr_raf_mask_auto	irr_raflagmask.autonomous
+#define irr_raf_mask_reserved	irr_raflagmask.reserved
+
+#define irr_raf_onlink		irr_flags.prf_ra.onlink
+#define irr_raf_auto		irr_flags.prf_ra.autonomous
+
+#define irr_statef_onlink	irr_flags.prf_state.onlink
+
+#define irr_rrf			irr_flags.prf_rr
+#define irr_rrf_decrvalid	irr_flags.prf_rr.decrvalid
+#define irr_rrf_decrprefd	irr_flags.prf_rr.decrprefd
+
+#define SIOCSIFADDR_IN6		 _IOW('i', 12, struct in6_ifreq)
+#define SIOCGIFADDR_IN6		_IOWR('i', 33, struct in6_ifreq)
+
+#ifdef _KERNEL
+/*
+ * SIOCSxxx ioctls should be unused (see comments in in6.c), but
+ * we do not shift numbers for binary compatibility.
+ */
+#define SIOCSIFDSTADDR_IN6	 _IOW('i', 14, struct in6_ifreq)
+#define SIOCSIFNETMASK_IN6	 _IOW('i', 22, struct in6_ifreq)
+#endif
+
+#define SIOCGIFDSTADDR_IN6	_IOWR('i', 34, struct in6_ifreq)
+#define SIOCGIFNETMASK_IN6	_IOWR('i', 37, struct in6_ifreq)
+
+#define SIOCDIFADDR_IN6		 _IOW('i', 25, struct in6_ifreq)
+#define SIOCAIFADDR_IN6		 _IOW('i', 26, struct in6_aliasreq)
+
+#define SIOCSIFPHYADDR_IN6       _IOW('i', 70, struct in6_aliasreq)
+#define	SIOCGIFPSRCADDR_IN6	_IOWR('i', 71, struct in6_ifreq)
+#define	SIOCGIFPDSTADDR_IN6	_IOWR('i', 72, struct in6_ifreq)
+
+#define SIOCGIFAFLAG_IN6	_IOWR('i', 73, struct in6_ifreq)
+
+#define SIOCGDRLST_IN6		_IOWR('i', 74, struct in6_drlist)
+#ifdef _KERNEL
+/* XXX: SIOCGPRLST_IN6 is exposed in KAME but in6_oprlist is not. */
+#define SIOCGPRLST_IN6		_IOWR('i', 75, struct in6_oprlist)
+#endif
+#ifdef _KERNEL
+#define OSIOCGIFINFO_IN6	_IOWR('i', 76, struct in6_ondireq)
+#endif
+#define SIOCGIFINFO_IN6		_IOWR('i', 108, struct in6_ndireq)
+#define SIOCSNDFLUSH_IN6	_IOWR('i', 77, struct in6_ifreq)
+#define SIOCGNBRINFO_IN6	_IOWR('i', 78, struct in6_nbrinfo)
+#define SIOCSPFXFLUSH_IN6	_IOWR('i', 79, struct in6_ifreq)
+#define SIOCSRTRFLUSH_IN6	_IOWR('i', 80, struct in6_ifreq)
+
+#define SIOCGIFALIFETIME_IN6	_IOWR('i', 81, struct in6_ifreq)
+#define SIOCSIFALIFETIME_IN6	_IOWR('i', 82, struct in6_ifreq)
+#define SIOCGIFSTAT_IN6		_IOWR('i', 83, struct in6_ifreq)
+#define SIOCGIFSTAT_ICMP6	_IOWR('i', 84, struct in6_ifreq)
+
+#define SIOCSDEFIFACE_IN6	_IOWR('i', 85, struct in6_ndifreq)
+#define SIOCGDEFIFACE_IN6	_IOWR('i', 86, struct in6_ndifreq)
+
+#define SIOCSIFINFO_FLAGS	_IOWR('i', 87, struct in6_ndireq) /* XXX */
+
+#define SIOCSSCOPE6		_IOW('i', 88, struct in6_ifreq)
+#define SIOCGSCOPE6		_IOWR('i', 89, struct in6_ifreq)
+#define SIOCGSCOPE6DEF		_IOWR('i', 90, struct in6_ifreq)
+
+#define SIOCSIFPREFIX_IN6	_IOW('i', 100, struct in6_prefixreq) /* set */
+#define SIOCGIFPREFIX_IN6	_IOWR('i', 101, struct in6_prefixreq) /* get */
+#define SIOCDIFPREFIX_IN6	_IOW('i', 102, struct in6_prefixreq) /* del */
+#define SIOCAIFPREFIX_IN6	_IOW('i', 103, struct in6_rrenumreq) /* add */
+#define SIOCCIFPREFIX_IN6	_IOW('i', 104, \
+				     struct in6_rrenumreq) /* change */
+#define SIOCSGIFPREFIX_IN6	_IOW('i', 105, \
+				     struct in6_rrenumreq) /* set global */
+
+#define SIOCGETSGCNT_IN6	_IOWR('u', 106, \
+				      struct sioc_sg_req6) /* get s,g pkt cnt */
+#define SIOCGETMIFCNT_IN6	_IOWR('u', 107, \
+				      struct sioc_mif_req6) /* get pkt cnt per if */
+
+#define SIOCAADDRCTL_POLICY	_IOW('u', 108, struct in6_addrpolicy)
+#define SIOCDADDRCTL_POLICY	_IOW('u', 109, struct in6_addrpolicy)
+
+#define IN6_IFF_ANYCAST		0x01	/* anycast address */
+#define IN6_IFF_TENTATIVE	0x02	/* tentative address */
+#define IN6_IFF_DUPLICATED	0x04	/* DAD detected duplicate */
+#define IN6_IFF_DETACHED	0x08	/* may be detached from the link */
+#define IN6_IFF_DEPRECATED	0x10	/* deprecated address */
+#define IN6_IFF_NODAD		0x20	/* don't perform DAD on this address
+					 * (used only at first SIOC* call)
+					 */
+#define IN6_IFF_AUTOCONF	0x40	/* autoconfigurable address. */
+#define IN6_IFF_TEMPORARY	0x80	/* temporary (anonymous) address. */
+#define IN6_IFF_NOPFX		0x8000	/* skip kernel prefix management.
+					 * XXX: this should be temporary.
+					 */
+
+/* do not input/output */
+#define IN6_IFF_NOTREADY (IN6_IFF_TENTATIVE|IN6_IFF_DUPLICATED)
+
+/*
  * IP6 route structure
  */
 #if __BSD_VISIBLE

==== //depot/projects/soc2005/ifcleanup/src/src/sys/netinet6/in6_var.h#2 (text+ko) ====

@@ -71,21 +71,7 @@
  * of the structure and is assumed to be first.
  */
 
-/*
- * pltime/vltime are just for future reference (required to implements 2
- * hour rule for hosts).  they should never be modified by nd6_timeout or
- * anywhere else.
- *	userland -> kernel: accept pltime/vltime
- *	kernel -> userland: throw up everything
- *	in kernel: modify preferred/expire only
- */
-struct in6_addrlifetime {
-	time_t ia6t_expire;	/* valid lifetime expiration time */
-	time_t ia6t_preferred;	/* preferred lifetime expiration time */
-	u_int32_t ia6t_vltime;	/* valid lifetime */
-	u_int32_t ia6t_pltime;	/* prefix lifetime */
-};
-
+struct in6_addrlifetime;
 struct nd_ifinfo;
 struct scope6_id;
 struct in6_ifextra {
@@ -114,242 +100,7 @@
 	struct nd_prefix *ia6_ndpr;
 };
 
-/* control structure to manage address selection policy */
-struct in6_addrpolicy {
-	struct sockaddr_in6 addr; /* prefix address */
-	struct sockaddr_in6 addrmask; /* prefix mask */
-	int preced;		/* precedence */
-	int label;		/* matching label */
-	u_quad_t use;		/* statistics */
-};
-
-/*
- * IPv6 interface statistics, as defined in RFC2465 Ipv6IfStatsEntry (p12).
- */
-struct in6_ifstat {
-	u_quad_t ifs6_in_receive;	/* # of total input datagram */
-	u_quad_t ifs6_in_hdrerr;	/* # of datagrams with invalid hdr */
-	u_quad_t ifs6_in_toobig;	/* # of datagrams exceeded MTU */
-	u_quad_t ifs6_in_noroute;	/* # of datagrams with no route */
-	u_quad_t ifs6_in_addrerr;	/* # of datagrams with invalid dst */
-	u_quad_t ifs6_in_protounknown;	/* # of datagrams with unknown proto */
-					/* NOTE: increment on final dst if */
-	u_quad_t ifs6_in_truncated;	/* # of truncated datagrams */
-	u_quad_t ifs6_in_discard;	/* # of discarded datagrams */
-					/* NOTE: fragment timeout is not here */
-	u_quad_t ifs6_in_deliver;	/* # of datagrams delivered to ULP */
-					/* NOTE: increment on final dst if */
-	u_quad_t ifs6_out_forward;	/* # of datagrams forwarded */
-					/* NOTE: increment on outgoing if */
-	u_quad_t ifs6_out_request;	/* # of outgoing datagrams from ULP */
-					/* NOTE: does not include forwrads */
-	u_quad_t ifs6_out_discard;	/* # of discarded datagrams */
-	u_quad_t ifs6_out_fragok;	/* # of datagrams fragmented */
-	u_quad_t ifs6_out_fragfail;	/* # of datagrams failed on fragment */
-	u_quad_t ifs6_out_fragcreat;	/* # of fragment datagrams */
-					/* NOTE: this is # after fragment */
-	u_quad_t ifs6_reass_reqd;	/* # of incoming fragmented packets */
-					/* NOTE: increment on final dst if */
-	u_quad_t ifs6_reass_ok;		/* # of reassembled packets */
-					/* NOTE: this is # after reass */
-					/* NOTE: increment on final dst if */
-	u_quad_t ifs6_reass_fail;	/* # of reass failures */
-					/* NOTE: may not be packet count */
-					/* NOTE: increment on final dst if */
-	u_quad_t ifs6_in_mcast;		/* # of inbound multicast datagrams */
-	u_quad_t ifs6_out_mcast;	/* # of outbound multicast datagrams */
-};
-
-/*
- * ICMPv6 interface statistics, as defined in RFC2466 Ipv6IfIcmpEntry.
- * XXX: I'm not sure if this file is the right place for this structure...
- */
-struct icmp6_ifstat {
-	/*
-	 * Input statistics
-	 */
-	/* ipv6IfIcmpInMsgs, total # of input messages */
-	u_quad_t ifs6_in_msg;
-	/* ipv6IfIcmpInErrors, # of input error messages */
-	u_quad_t ifs6_in_error;
-	/* ipv6IfIcmpInDestUnreachs, # of input dest unreach errors */
-	u_quad_t ifs6_in_dstunreach;
-	/* ipv6IfIcmpInAdminProhibs, # of input administratively prohibited errs */
-	u_quad_t ifs6_in_adminprohib;
-	/* ipv6IfIcmpInTimeExcds, # of input time exceeded errors */
-	u_quad_t ifs6_in_timeexceed;
-	/* ipv6IfIcmpInParmProblems, # of input parameter problem errors */
-	u_quad_t ifs6_in_paramprob;
-	/* ipv6IfIcmpInPktTooBigs, # of input packet too big errors */
-	u_quad_t ifs6_in_pkttoobig;
-	/* ipv6IfIcmpInEchos, # of input echo requests */
-	u_quad_t ifs6_in_echo;
-	/* ipv6IfIcmpInEchoReplies, # of input echo replies */
-	u_quad_t ifs6_in_echoreply;
-	/* ipv6IfIcmpInRouterSolicits, # of input router solicitations */
-	u_quad_t ifs6_in_routersolicit;
-	/* ipv6IfIcmpInRouterAdvertisements, # of input router advertisements */
-	u_quad_t ifs6_in_routeradvert;
-	/* ipv6IfIcmpInNeighborSolicits, # of input neighbor solicitations */
-	u_quad_t ifs6_in_neighborsolicit;
-	/* ipv6IfIcmpInNeighborAdvertisements, # of input neighbor advertisements */
-	u_quad_t ifs6_in_neighboradvert;
-	/* ipv6IfIcmpInRedirects, # of input redirects */
-	u_quad_t ifs6_in_redirect;
-	/* ipv6IfIcmpInGroupMembQueries, # of input MLD queries */
-	u_quad_t ifs6_in_mldquery;
-	/* ipv6IfIcmpInGroupMembResponses, # of input MLD reports */
-	u_quad_t ifs6_in_mldreport;
-	/* ipv6IfIcmpInGroupMembReductions, # of input MLD done */
-	u_quad_t ifs6_in_mlddone;
-
-	/*
-	 * Output statistics. We should solve unresolved routing problem...
-	 */
-	/* ipv6IfIcmpOutMsgs, total # of output messages */
-	u_quad_t ifs6_out_msg;
-	/* ipv6IfIcmpOutErrors, # of output error messages */
-	u_quad_t ifs6_out_error;
-	/* ipv6IfIcmpOutDestUnreachs, # of output dest unreach errors */
-	u_quad_t ifs6_out_dstunreach;
-	/* ipv6IfIcmpOutAdminProhibs, # of output administratively prohibited errs */
-	u_quad_t ifs6_out_adminprohib;
-	/* ipv6IfIcmpOutTimeExcds, # of output time exceeded errors */
-	u_quad_t ifs6_out_timeexceed;
-	/* ipv6IfIcmpOutParmProblems, # of output parameter problem errors */
-	u_quad_t ifs6_out_paramprob;
-	/* ipv6IfIcmpOutPktTooBigs, # of output packet too big errors */
-	u_quad_t ifs6_out_pkttoobig;
-	/* ipv6IfIcmpOutEchos, # of output echo requests */
-	u_quad_t ifs6_out_echo;
-	/* ipv6IfIcmpOutEchoReplies, # of output echo replies */
-	u_quad_t ifs6_out_echoreply;
-	/* ipv6IfIcmpOutRouterSolicits, # of output router solicitations */
-	u_quad_t ifs6_out_routersolicit;
-	/* ipv6IfIcmpOutRouterAdvertisements, # of output router advertisements */
-	u_quad_t ifs6_out_routeradvert;
-	/* ipv6IfIcmpOutNeighborSolicits, # of output neighbor solicitations */
-	u_quad_t ifs6_out_neighborsolicit;
-	/* ipv6IfIcmpOutNeighborAdvertisements, # of output neighbor advertisements */
-	u_quad_t ifs6_out_neighboradvert;
-	/* ipv6IfIcmpOutRedirects, # of output redirects */
-	u_quad_t ifs6_out_redirect;
-	/* ipv6IfIcmpOutGroupMembQueries, # of output MLD queries */
-	u_quad_t ifs6_out_mldquery;
-	/* ipv6IfIcmpOutGroupMembResponses, # of output MLD reports */
-	u_quad_t ifs6_out_mldreport;
-	/* ipv6IfIcmpOutGroupMembReductions, # of output MLD done */
-	u_quad_t ifs6_out_mlddone;
-};
-
-struct	in6_ifreq {
-	char	ifr_name[IFNAMSIZ];
-	union {
-		struct	sockaddr_in6 ifru_addr;
-		struct	sockaddr_in6 ifru_dstaddr;
-		int	ifru_flags;
-		int	ifru_flags6;
-		int	ifru_metric;
-		caddr_t	ifru_data;
-		struct in6_addrlifetime ifru_lifetime;
-		struct in6_ifstat ifru_stat;
-		struct icmp6_ifstat ifru_icmp6stat;
-		u_int32_t ifru_scope_id[16];
-	} ifr_ifru;
-};
-
-struct	in6_aliasreq {
-	char	ifra_name[IFNAMSIZ];
-	struct	sockaddr_in6 ifra_addr;
-	struct	sockaddr_in6 ifra_dstaddr;
-	struct	sockaddr_in6 ifra_prefixmask;
-	int	ifra_flags;
-	struct in6_addrlifetime ifra_lifetime;
-};
-
-/* prefix type macro */
-#define IN6_PREFIX_ND	1
-#define IN6_PREFIX_RR	2
-
 /*
- * prefix related flags passed between kernel(NDP related part) and
- * user land command(ifconfig) and daemon(rtadvd).
- */
-struct in6_prflags {
-	struct prf_ra {
-		u_char onlink : 1;
-		u_char autonomous : 1;
-		u_char reserved : 6;
-	} prf_ra;
-	u_char prf_reserved1;
-	u_short prf_reserved2;
-	/* want to put this on 4byte offset */
-	struct prf_rr {
-		u_char decrvalid : 1;
-		u_char decrprefd : 1;
-		u_char reserved : 6;
-	} prf_rr;
-	u_char prf_reserved3;
-	u_short prf_reserved4;
-};
-
-struct  in6_prefixreq {
-	char	ipr_name[IFNAMSIZ];
-	u_char	ipr_origin;
-	u_char	ipr_plen;
-	u_int32_t ipr_vltime;
-	u_int32_t ipr_pltime;
-	struct in6_prflags ipr_flags;
-	struct	sockaddr_in6 ipr_prefix;
-};
-
-#define PR_ORIG_RA	0
-#define PR_ORIG_RR	1
-#define PR_ORIG_STATIC	2
-#define PR_ORIG_KERNEL	3
-
-#define ipr_raf_onlink		ipr_flags.prf_ra.onlink
-#define ipr_raf_auto		ipr_flags.prf_ra.autonomous
-
-#define ipr_statef_onlink	ipr_flags.prf_state.onlink
-
-#define ipr_rrf_decrvalid	ipr_flags.prf_rr.decrvalid
-#define ipr_rrf_decrprefd	ipr_flags.prf_rr.decrprefd
-
-struct	in6_rrenumreq {
-	char	irr_name[IFNAMSIZ];
-	u_char	irr_origin;
-	u_char	irr_m_len;	/* match len for matchprefix */
-	u_char	irr_m_minlen;	/* minlen for matching prefix */
-	u_char	irr_m_maxlen;	/* maxlen for matching prefix */
-	u_char	irr_u_uselen;	/* uselen for adding prefix */
-	u_char	irr_u_keeplen;	/* keeplen from matching prefix */
-	struct irr_raflagmask {
-		u_char onlink : 1;
-		u_char autonomous : 1;
-		u_char reserved : 6;
-	} irr_raflagmask;
-	u_int32_t irr_vltime;
-	u_int32_t irr_pltime;
-	struct in6_prflags irr_flags;
-	struct	sockaddr_in6 irr_matchprefix;
-	struct	sockaddr_in6 irr_useprefix;
-};
-
-#define irr_raf_mask_onlink	irr_raflagmask.onlink
-#define irr_raf_mask_auto	irr_raflagmask.autonomous
-#define irr_raf_mask_reserved	irr_raflagmask.reserved
-
-#define irr_raf_onlink		irr_flags.prf_ra.onlink
-#define irr_raf_auto		irr_flags.prf_ra.autonomous
-
-#define irr_statef_onlink	irr_flags.prf_state.onlink
-
-#define irr_rrf			irr_flags.prf_rr
-#define irr_rrf_decrvalid	irr_flags.prf_rr.decrvalid
-#define irr_rrf_decrprefd	irr_flags.prf_rr.decrprefd
-
-/*
  * Given a pointer to an in6_ifaddr (ifaddr),
  * return a pointer to the addr as a sockaddr_in6
  */
@@ -371,93 +122,7 @@
 	(((d)->s6_addr32[3] ^ (a)->s6_addr32[3]) & (m)->s6_addr32[3]) == 0 )
 #endif
 
-#define SIOCSIFADDR_IN6		 _IOW('i', 12, struct in6_ifreq)
-#define SIOCGIFADDR_IN6		_IOWR('i', 33, struct in6_ifreq)
-
 #ifdef _KERNEL
-/*
- * SIOCSxxx ioctls should be unused (see comments in in6.c), but
- * we do not shift numbers for binary compatibility.
- */
-#define SIOCSIFDSTADDR_IN6	 _IOW('i', 14, struct in6_ifreq)
-#define SIOCSIFNETMASK_IN6	 _IOW('i', 22, struct in6_ifreq)
-#endif
-
-#define SIOCGIFDSTADDR_IN6	_IOWR('i', 34, struct in6_ifreq)
-#define SIOCGIFNETMASK_IN6	_IOWR('i', 37, struct in6_ifreq)
-
-#define SIOCDIFADDR_IN6		 _IOW('i', 25, struct in6_ifreq)
-#define SIOCAIFADDR_IN6		 _IOW('i', 26, struct in6_aliasreq)
-
-#define SIOCSIFPHYADDR_IN6       _IOW('i', 70, struct in6_aliasreq)
-#define	SIOCGIFPSRCADDR_IN6	_IOWR('i', 71, struct in6_ifreq)
-#define	SIOCGIFPDSTADDR_IN6	_IOWR('i', 72, struct in6_ifreq)
-
-#define SIOCGIFAFLAG_IN6	_IOWR('i', 73, struct in6_ifreq)
-
-#define SIOCGDRLST_IN6		_IOWR('i', 74, struct in6_drlist)
-#ifdef _KERNEL
-/* XXX: SIOCGPRLST_IN6 is exposed in KAME but in6_oprlist is not. */
-#define SIOCGPRLST_IN6		_IOWR('i', 75, struct in6_oprlist)
-#endif
-#ifdef _KERNEL
-#define OSIOCGIFINFO_IN6	_IOWR('i', 76, struct in6_ondireq)
-#endif
-#define SIOCGIFINFO_IN6		_IOWR('i', 108, struct in6_ndireq)
-#define SIOCSNDFLUSH_IN6	_IOWR('i', 77, struct in6_ifreq)
-#define SIOCGNBRINFO_IN6	_IOWR('i', 78, struct in6_nbrinfo)
-#define SIOCSPFXFLUSH_IN6	_IOWR('i', 79, struct in6_ifreq)
-#define SIOCSRTRFLUSH_IN6	_IOWR('i', 80, struct in6_ifreq)
-
-#define SIOCGIFALIFETIME_IN6	_IOWR('i', 81, struct in6_ifreq)
-#define SIOCSIFALIFETIME_IN6	_IOWR('i', 82, struct in6_ifreq)
-#define SIOCGIFSTAT_IN6		_IOWR('i', 83, struct in6_ifreq)
-#define SIOCGIFSTAT_ICMP6	_IOWR('i', 84, struct in6_ifreq)
-
-#define SIOCSDEFIFACE_IN6	_IOWR('i', 85, struct in6_ndifreq)
-#define SIOCGDEFIFACE_IN6	_IOWR('i', 86, struct in6_ndifreq)
-
-#define SIOCSIFINFO_FLAGS	_IOWR('i', 87, struct in6_ndireq) /* XXX */
-
-#define SIOCSSCOPE6		_IOW('i', 88, struct in6_ifreq)
-#define SIOCGSCOPE6		_IOWR('i', 89, struct in6_ifreq)
-#define SIOCGSCOPE6DEF		_IOWR('i', 90, struct in6_ifreq)
-
-#define SIOCSIFPREFIX_IN6	_IOW('i', 100, struct in6_prefixreq) /* set */
-#define SIOCGIFPREFIX_IN6	_IOWR('i', 101, struct in6_prefixreq) /* get */
-#define SIOCDIFPREFIX_IN6	_IOW('i', 102, struct in6_prefixreq) /* del */
-#define SIOCAIFPREFIX_IN6	_IOW('i', 103, struct in6_rrenumreq) /* add */
-#define SIOCCIFPREFIX_IN6	_IOW('i', 104, \
-				     struct in6_rrenumreq) /* change */
-#define SIOCSGIFPREFIX_IN6	_IOW('i', 105, \
-				     struct in6_rrenumreq) /* set global */
-
-#define SIOCGETSGCNT_IN6	_IOWR('u', 106, \
-				      struct sioc_sg_req6) /* get s,g pkt cnt */
-#define SIOCGETMIFCNT_IN6	_IOWR('u', 107, \
-				      struct sioc_mif_req6) /* get pkt cnt per if */
-
-#define SIOCAADDRCTL_POLICY	_IOW('u', 108, struct in6_addrpolicy)
-#define SIOCDADDRCTL_POLICY	_IOW('u', 109, struct in6_addrpolicy)
-
-#define IN6_IFF_ANYCAST		0x01	/* anycast address */
-#define IN6_IFF_TENTATIVE	0x02	/* tentative address */
-#define IN6_IFF_DUPLICATED	0x04	/* DAD detected duplicate */
-#define IN6_IFF_DETACHED	0x08	/* may be detached from the link */
-#define IN6_IFF_DEPRECATED	0x10	/* deprecated address */
-#define IN6_IFF_NODAD		0x20	/* don't perform DAD on this address
-					 * (used only at first SIOC* call)
-					 */
-#define IN6_IFF_AUTOCONF	0x40	/* autoconfigurable address. */
-#define IN6_IFF_TEMPORARY	0x80	/* temporary (anonymous) address. */
-#define IN6_IFF_NOPFX		0x8000	/* skip kernel prefix management.
-					 * XXX: this should be temporary.
-					 */
-
-/* do not input/output */
-#define IN6_IFF_NOTREADY (IN6_IFF_TENTATIVE|IN6_IFF_DUPLICATED)
-
-#ifdef _KERNEL
 #define IN6_ARE_SCOPE_CMP(a,b) ((a)-(b))
 #define IN6_ARE_SCOPE_EQUAL(a,b) ((a)==(b))
 #endif
@@ -465,6 +130,7 @@
 #ifdef _KERNEL
 extern struct in6_ifaddr *in6_ifaddr;
 
+struct icmp6stat;
 extern struct icmp6stat icmp6stat;
 #define in6_ifstat_inc(ifp, tag) \
 do {								\

From owner-p4-projects@FreeBSD.ORG  Fri Jul 22 22:39:28 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id EEF9716A422; Fri, 22 Jul 2005 22:39:27 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 C741C16A420
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 22:39:27 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 9A97D43D48
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 22:39:27 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6MMdRKv046782
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 22:39:27 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6MMdRwo046779
	for perforce@freebsd.org; Fri, 22 Jul 2005 22:39:27 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Fri, 22 Jul 2005 22:39:27 GMT
Message-Id: <200507222239.j6MMdRwo046779@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson <rwatson@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80807 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jul 2005 22:39:28 -0000

http://perforce.freebsd.org/chv.cgi?CH=80807

Change 80807 by rwatson@rwatson_zoo on 2005/07/22 22:39:00

	This branch definitely wants BREAK_TO_DEBUGGER.

Affected files ...

.. //depot/projects/netsmp/src/sys/i386/conf/GENERIC#2 edit

Differences ...

==== //depot/projects/netsmp/src/sys/i386/conf/GENERIC#2 (text+ko) ====

@@ -27,6 +27,8 @@
 # To statically compile in device wiring instead of /boot/device.hints
 #hints		"GENERIC.hints"		# Default places to look for devices.
 
+options 	BREAK_TO_DEBUGGER
+
 makeoptions	DEBUG=-g		# Build kernel with gdb(1) debug symbols
 
 #options 	SCHED_ULE		# ULE scheduler

From owner-p4-projects@FreeBSD.ORG  Fri Jul 22 23:08:04 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 3D8DF16A421; Fri, 22 Jul 2005 23:08:04 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 EE56D16A41F
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 23:08:03 +0000 (GMT)
	(envelope-from soc-victor@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id A63B743D45
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 23:08:03 +0000 (GMT)
	(envelope-from soc-victor@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6MN832f048062
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 23:08:03 GMT
	(envelope-from soc-victor@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6MN83iT048059
	for perforce@freebsd.org; Fri, 22 Jul 2005 23:08:03 GMT
	(envelope-from soc-victor@freebsd.org)
Date: Fri, 22 Jul 2005 23:08:03 GMT
Message-Id: <200507222308.j6MN83iT048059@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-victor@freebsd.org using -f
From: soc-victor <soc-victor@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80810 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jul 2005 23:08:05 -0000

http://perforce.freebsd.org/chv.cgi?CH=80810

Change 80810 by soc-victor@soc-victor_82.76.158.176 on 2005/07/22 23:08:00

	This is the very first implementation (based on libdevinfo) for hrDeviceTable.
	A lot of things still to polish....

Affected files ...

.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile#10 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_device_tbl.c#1 add
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.c#9 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.h#12 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_swrun_tbl.c#3 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_swrunperf_tbl.c#2 edit

Differences ...

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile#10 (text+ko) ====

@@ -9,7 +9,8 @@
 MOD=	hostres
 SRCS=	hostres_snmp.c hostres_scalars.c \
 	hostres_storage_tbl.c hostres_fs_tbl.c \
-	hostres_swrun_tbl.c hostres_swrunperf_tbl.c
+	hostres_swrun_tbl.c hostres_swrunperf_tbl.c \
+	hostres_device_tbl.c
 WARNS?=	6
 #Not having NDEBUG defined will enable assertions and a lot of output on stderr
 CFLAGS+=	-DNDEBUG
@@ -30,5 +31,5 @@
 	
 DEFS=	${MOD}_tree.def
 BMIBS=	HOST-RESOURCES-MIB.txt HOST-RESOURCES-TYPES.txt
-LDADD=	-lkvm
+LDADD=	-lkvm -ldevinfo
 .include <bsd.lib.mk>

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.c#9 (text+ko) ====

@@ -90,35 +90,43 @@
 		return (-1); /*error*/
 	}
 	
+	hrState_g.dev_root = NULL;
+	
 	hrState_g.hrSWOSIndex = 0;
 
 	hrState_g.next_hrStorage_index  = 1;
-	
 	STAILQ_INIT(&hrState_g.storage_name_map);
-	
 	TAILQ_INIT(&hrState_g.hr_storage_tbl);
 
 
 	hrState_g.next_hrFS_index  = 1;
-	
 	STAILQ_INIT(&hrState_g.fs_name_map);
-	
 	TAILQ_INIT(&hrState_g.hr_fs_tbl);
 
 	TAILQ_INIT(&hrState_g.hr_swrun_tbl);
 
+		
+	hrState_g.next_hrDevice_index  = 1;
+	STAILQ_INIT(&hrState_g.device_name_map);
+	TAILQ_INIT(&hrState_g.hr_device_tbl);
+
+
 	hrState_g.hr_storage_tick = 0;
 	hrState_g.hr_fs_tick = 0;
 	hrState_g.hr_swrun_tick = 0;
+	hrState_g.hr_device_tick = 0;
 
 	hrState_g.hrStorage_tbl_age = 0;		
 	hrState_g.hrFS_tbl_age = 0;		
-	hrState_g.hrSWRun_tbl_age = 0;		
+	hrState_g.hrSWRun_tbl_age = 0;	
+	hrState_g.hrDevice_tbl_age = 0;	
 
 	
 	init_hrStorage_tbl_v();
 	init_hrFS_tbl_v();
-	init_hrSWRun_tbl_v();
+	init_hrSWRun_tbl_v(); /*also the hrSWRunPerfTable's
+			       support is initialized here */
+	init_hrDevice_tbl_v();			       
 			
         HR_DPRINTF((stderr, "[%s] done.\n", __func__));		
 
@@ -163,14 +171,19 @@
 	fini_hrStorage_tbl_v();
 	fini_hrFS_tbl_v();
 	fini_hrSWRun_tbl_v();
+	fini_hrDevice_tbl_v();
 
 	hrState_g.hr_storage_tick = 0;
 	hrState_g.hr_fs_tick = 0;
 	hrState_g.hr_swrun_tick = 0;
+	hrState_g.hr_device_tick = 0;
 
 	hrState_g.hrStorage_tbl_age = 0;		
 	hrState_g.hrFS_tbl_age = 0;		
 	hrState_g.hrSWRun_tbl_age = 0;	
+	hrState_g.hrDevice_tbl_age = 0;
+	
+	hrState_g.dev_root = NULL;
 	
 	hrState_g.hrSWOSIndex = 0;
 																							
@@ -198,9 +211,14 @@
 	}
 	if ( (time(NULL) - hrState_g.hrSWRun_tbl_age) > HR_SWRUN_TBL_REFRESH ) {
 		HR_DPRINTF((stderr, "%s: hrSWRunTable needs refresh\n ", __func__));
-		refresh_hrStorage_tbl_v();
+		refresh_hrSWRun_tbl_v();
 	}
 	
+	if ( (time(NULL) - hrState_g.hrDevice_tbl_age) > HR_DEVICE_TBL_REFRESH ) {
+		HR_DPRINTF((stderr, "%s: hrDeviceTable needs refresh\n ", __func__));
+		refresh_hrDevice_tbl_v();
+	}
+
 
         HR_DPRINTF((stderr, "[%s] done.\n ", __func__));		
 }
@@ -272,14 +290,6 @@
 Once one of them is implemented it will be moved into its own C file
 */
 
-int op_hrDeviceTable(struct snmp_context *ctx __unused, 
-                struct snmp_value *value __unused, 
-		u_int sub __unused, 
-		u_int iidx __unused, 
-		enum snmp_op curr_op __unused)
-{
-	return  (SNMP_ERR_NOSUCHNAME);
-}
 
 int op_hrProcessorTable(struct snmp_context *ctx __unused, 
                 struct snmp_value *value __unused, 

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.h#12 (text+ko) ====

@@ -45,6 +45,7 @@
 #include <sys/mount.h>	/*for getfsstat*/
 
 #include <sys/vmmeter.h> 
+#include <devinfo.h>
 
 /*a debug macro*/
 #ifndef NDEBUG
@@ -193,6 +194,61 @@
 TAILQ_HEAD(swrun_tbl, hrSWRunTblEntry);
 
 
+enum DeviceStatus {
+	DS_UNKNOWN	=	1,
+	DR_RUNNING	=	2,
+	DS_WARNING	=	3,
+	DS_TESTING	=	4,
+	DS_DOWN		=	4		
+};
+
+
+/*
+ * This structure is used to hold a SNMP table entry
+ * for HOST-RESOURCES-MIB's hrDeviceTable
+ */
+struct hrDeviceTblEntry {
+	int32_t		index;
+	struct asn_oid	type;
+	u_char		descr[64+1];
+	struct asn_oid	id;
+	int32_t		status;		/* one item from enum DeviceStatus, see above */
+	uint32_t	errors;
+
+#define HR_DEVICE_FOUND 0x001
+	/*next 3 are not from the SNMP mib table, only to be used internally*/
+	uint32_t	flags;		
+	u_char		name[32+1];	
+	u_char		location[128+1];	
+	TAILQ_ENTRY(hrDeviceTblEntry) link;		
+};
+
+TAILQ_HEAD(device_tbl, hrDeviceTblEntry);
+
+
+/*
+ * Next structure is used to keep o list of mappings from a specific
+ * name (a_name) to an entry in the hrFSTblEntry;
+ * We are trying to keep the same index for a specific name at least
+ * for the duration of one SNMP agent run
+ */
+struct deviceNameMapEntry {
+	int32_t		hrIndex;		/*used for hrDeviceTblEntry::index*/
+	/*map key is the pair (name_key, location_key)*/
+	u_char		name_key[32+1];		/*map key*/
+	u_char		location_key[128+1];	/*map key*/	
+	/*
+	 * next may be NULL if the respective hrDeviceTblEntry 
+	 * is (temporally) gone
+	 */
+	struct 
+	hrDeviceTblEntry	*entry_p; 
+	STAILQ_ENTRY(deviceNameMapEntry) 	link;
+};
+
+STAILQ_HEAD(device_map_list, deviceNameMapEntry);
+
+
 struct hostres_state {
 	FILE		*utmp_fp;		/*file pointer to keep an open instance of utmp*/
 	kvm_t		*kd;			/*kernel descriptor*/
@@ -241,7 +297,23 @@
 	time_t		hrSWRun_tbl_age; 
 	uint64_t 	hr_swrun_tick;		/*last (agent) tick when hrSWRunTable and hrSWRunPerTable 
 						  were updated */
-	int32_t		hrSWOSIndex;		/* the value of the MIB objecy with the same name*/						  
+	int32_t		hrSWOSIndex;		/* the value of the MIB objecy with the same name*/	
+	
+	/* 
+	 * next items are used for hrDeviceTable 
+	 */
+	struct 
+	device_map_list	device_name_map;	/*for consistent table indexing*/
+	
+	struct 
+	device_tbl	hr_device_tbl;		/*the head of the list with hrDeviceTable's entries */	
+	uint32_t 	next_hrDevice_index;	/*next int available for indexing the hrDeviceTable*/
+	time_t		hrDevice_tbl_age; 
+	uint64_t 	hr_device_tick;		/*last (agent) tick when hrDeviceTable was updated */
+	
+	struct 
+	devinfo_dev	*dev_root;
+						  					  
 				
 };
 
@@ -350,5 +422,28 @@
  */
 void refresh_hrSWRun_tbl_v(void);
 
+/*
+ * Init the things for hrDeviceTable 
+ */
+void init_hrDevice_tbl_v(void);
+
+/*
+ * Finalization routine for hrDeviceTable
+ * It destroys the lists and frees any allocated heap memory
+ */
+void fini_hrDevice_tbl_v(void);
+
+/*
+ * Next macro represents the number of seconds
+ * between two consecutive queries to the OS for getting the new data
+ * for hrDeviceTable
+ */
+#define HR_DEVICE_TBL_REFRESH	10
+/*
+ * Refresh routine for hrDeviceTable
+ * Usable for polling the system for any changes.
+ */
+void refresh_hrDevice_tbl_v(void);
+
 #endif /*__HOSTRES_SNMP_H_INCLUDED__ */
 

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_swrun_tbl.c#3 (text+ko) ====

@@ -470,7 +470,8 @@
 }
 
 /*
- * This is the implmenetaion for a generated function prototype, see hostres_tree.h 
+ * This is the implementation for a generated (by a SNMP tool) 
+ * function prototype, see hostres_tree.h 
  * It hanldes the SNMP operations for hrSWRunTable
  */
 int op_hrSWRunTable(struct snmp_context *ctx __unused, 

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_swrunperf_tbl.c#2 (text+ko) ====

@@ -32,7 +32,13 @@
 #include "hostres_oid.h"
 #include "hostres_tree.h"
 #include <assert.h>
-  
+
+/*
+ * This is the implementation for a generated (by a SNMP tool) 
+ * function prototype, see hostres_tree.h 
+ * It hanldes the SNMP operations for hrSWRunPerfTable
+ */
+   
 int op_hrSWRunPerfTable(struct snmp_context *ctx __unused, 
                 struct snmp_value *value, 
 		u_int sub, 

From owner-p4-projects@FreeBSD.ORG  Fri Jul 22 23:32:36 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id D74AA16A430; Fri, 22 Jul 2005 23:32:35 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 9929916A42C
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 23:32:35 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 3CBA943D45
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 23:32:35 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6MNWZKb049243
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 23:32:35 GMT
	(envelope-from soc-anders@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6MNWYwP049240
	for perforce@freebsd.org; Fri, 22 Jul 2005 23:32:34 GMT
	(envelope-from soc-anders@freebsd.org)
Date: Fri, 22 Jul 2005 23:32:34 GMT
Message-Id: <200507222332.j6MNWYwP049240@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-anders@freebsd.org using -f
From: soc-anders <soc-anders@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80814 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jul 2005 23:32:36 -0000

http://perforce.freebsd.org/chv.cgi?CH=80814

Change 80814 by soc-anders@soc-anders_gimli on 2005/07/22 23:32:21

	netstat compiles without kvm, however, the following parts are
	disabled:
		* IPX
		* AppleTalk
		* Netgraph
		* Multicast routing
		* IPSec6 stats

Affected files ...

.. //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/Makefile#2 edit
.. //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/atalk.c#2 edit
.. //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/inet6.c#2 edit
.. //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/ipsec.c#2 edit
.. //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/ipx.c#2 edit
.. //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/main.c#2 edit
.. //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/mbuf.c#2 edit
.. //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/mroute.c#2 edit
.. //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/mroute6.c#2 edit
.. //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/netgraph.c#2 edit
.. //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/unix.c#2 edit

Differences ...

==== //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/Makefile#2 (text+ko) ====

@@ -16,6 +16,8 @@
 BINGRP=	kmem
 BINMODE=2555
 DPADD=	${LIBKVM} ${LIBIPX} ${LIBNETGRAPH} ${LIBUTIL}
-LDADD=	-lkvm -lipx -lnetgraph -lutil
-
+LDADD=	-lipx -lnetgraph -lutil
+.if defined(IFCLEANUP)
+LDADD+= -lkvm
+.endif
 .include <bsd.prog.mk>

==== //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/atalk.c#2 (text+ko) ====

@@ -218,6 +218,7 @@
 void
 atalkprotopr(u_long off __unused, const char *name, int af1 __unused)
 {
+#ifdef IFCLEANUP
 	struct ddpcb *this, *next;
 
 	if (off == 0)
@@ -256,6 +257,7 @@
 					(struct sockaddr *)&ddpcb.ddp_fsat,7));
 		putchar('\n');
 	}
+#endif /* IFCLEANUP */
 }
 
 #define ANY(x,y,z) if (x || sflag <= 1) \
@@ -267,6 +269,7 @@
 void
 ddp_stats(u_long off __unused, const char *name, int af1 __unused)
 {
+#ifdef IFCLEANUP
 	struct ddpstat ddpstat;
 
 	if (off == 0)
@@ -283,4 +286,5 @@
 	ANY(ddpstat.ddps_encap, "packet", " encapsulated ");
 	ANY(ddpstat.ddps_cantforward, "packet", " rcvd for unreachable dest ");
 	ANY(ddpstat.ddps_nosockspace, "packet", " dropped due to no socket space ");
+#endif /* IFCLEANUP */
 }

==== //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/inet6.c#2 (text+ko) ====

@@ -44,7 +44,6 @@
 #ifdef INET6
 #include <sys/param.h>
 #include <sys/socket.h>
-#include <sys/socketvar.h>
 #include <sys/ioctl.h>
 #include <sys/mbuf.h>
 #include <sys/protosw.h>
@@ -52,15 +51,11 @@
 
 #include <net/route.h>
 #include <net/if.h>
-#include <net/if_var.h>
 #include <netinet/in.h>
 #include <netinet/ip6.h>
 #include <netinet/icmp6.h>
 #include <netinet/in_systm.h>
-#include <netinet6/in6_pcb.h>
-#include <netinet6/in6_var.h>
-#include <netinet6/ip6_var.h>
-#include <netinet6/pim6_var.h>
+#include <netinet6/pim6.h>
 #include <netinet6/raw_ip6.h>
 
 #include <arpa/inet.h>
@@ -71,8 +66,6 @@
 #include <unistd.h>
 #include "netstat.h"
 
-struct	socket sockb;
-
 char	*inet6name(struct in6_addr *);
 const char *pluralies(int);
 
@@ -994,11 +987,12 @@
 pim6_stats(u_long off __unused, const char *name, int af1 __unused)
 {
 	struct pim6stat pim6stat;
+	size_t len = sizeof(pim6stat);
 
-	if (off == 0)
+	if (sysctlbyname("net.inet6.pim6.stats", &pim6stat, &len,
+			 NULL, 0) < 0)
 		return;
-	if (kread(off, (char *)&pim6stat, sizeof(pim6stat)))
-		return;
+
 	printf("%s:\n", name);
 
 #define	p(f, m) if (pim6stat.f || sflag <= 1) \

==== //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/ipsec.c#2 (text+ko) ====

@@ -75,6 +75,7 @@
 #include <sys/param.h>
 #include <sys/queue.h>
 #include <sys/socket.h>
+#include <sys/sysctl.h>
 
 #include <netinet/in.h>
 
@@ -86,6 +87,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
+#include <err.h>
 #include "netstat.h"
 
 #ifdef IPSEC 
@@ -235,11 +237,21 @@
 void
 ipsec_stats(u_long off __unused, const char *name, int af1 __unused)
 {
-	if (off == 0)
-		return;
+	size_t len;
+
 	printf ("%s:\n", name);
-	kread(off, (char *)&ipsecstat, sizeof (ipsecstat));
 
+	if (strcmp(name, "ipsec") == 0) {
+		len = sizeof(ipsecstat);
+		if (sysctlbyname("net.inet.ipsec.stats", &ipsecstat, &len,
+				 NULL, 0) < 0) {
+			warn("sysctl: net.inet.ipsec.stats");
+			return;
+		}
+	} else {
+		/* IFCLEANUP: Not yet available */	   
+		return;
+	}
 	print_ipsecstats();
 }
 
@@ -260,12 +272,16 @@
 pfkey_stats(u_long off __unused, const char *name, int af1 __unused)
 {
 	struct pfkeystat pfkeystat;
+	size_t len;
 	unsigned first, type;
 
-	if (off == 0)
+	printf ("%s:\n", name);
+	len = sizeof(pfkeystat);
+	if (sysctlbyname("net.key.pfkeystat", &pfkeystat, &len,
+			 NULL, 0) < 0) {
+		warn("sysctl: net.key.pfkeystat");
 		return;
-	printf ("%s:\n", name);
-	kread(off, (char *)&pfkeystat, sizeof(pfkeystat));
+	}
 
 #define	p(f, m) if (pfkeystat.f || sflag <= 1) \
     printf(m, (unsigned long long)pfkeystat.f, plural(pfkeystat.f))

==== //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/ipx.c#2 (text+ko) ====

@@ -83,6 +83,7 @@
 void
 ipxprotopr(u_long off, const char *name, int af1 __unused)
 {
+#ifdef IFCLEANUP
 	struct ipxpcbhead cb;
 	struct ipxpcb *ipxp;
 	struct ipxpcb ipxpcb;
@@ -143,6 +144,7 @@
 		}
 		putchar('\n');
 	}
+#endif /* IFCLEANUP */
 }
 
 #define ANY(x,y,z) \
@@ -156,6 +158,7 @@
 void
 spx_stats(u_long off, const char *name, int af1 __unused)
 {
+#ifdef IFCLEANUP
 	struct spx_istat spx_istat;
 #define spxstat spx_istat.newstats
 
@@ -224,6 +227,7 @@
 	ANYl(spxstat.spxs_rcvackpack, "rcvd ack packet", "");
 	ANYl(spxstat.spxs_rcvackbyte, "byte", " acked by rcvd acks");
 	ANYl(spxstat.spxs_rcvwinupd, "rcvd window update packet", "");
+#endif /* CLEANUP */
 }
 
 /*
@@ -232,6 +236,7 @@
 void
 ipx_stats(u_long off, const char *name, int af1 __unused)
 {
+#ifdef IFCLEANUP
 	struct ipxstat ipxstat;
 
 	if (off == 0)
@@ -249,6 +254,7 @@
 	ANYl(ipxstat.ipxs_odropped, "packet", " dropped due to no bufs, etc.");
 	ANYl(ipxstat.ipxs_noroute, "packet", " discarded due to no route");
 	ANYl(ipxstat.ipxs_mtutoosmall, "packet", " too big");
+#endif /* IFCLEANUP */
 }
 
 #ifdef IPXERRORMSGS
@@ -275,6 +281,7 @@
 void
 ipxerr_stats(u_long off, const char *name, int af __unused)
 {
+#ifdef IFCLEANUP       
 	struct ipx_errstat ipx_errstat;
 	int j;
 	int histoprint = 1;
@@ -310,6 +317,7 @@
 		}
 		ipx_erputil(z, ipx_errstat.ipx_es_codes[j]);
 	}
+#endif /* IFCLEANUP */
 }
 
 static void

==== //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/main.c#2 (text+ko) ====

@@ -166,15 +166,15 @@
 	{ -1,		-1,		1,	protopr,
 	  igmp_stats,	NULL,		"igmp",	IPPROTO_IGMP },
 #ifdef IPSEC
-	{ -1,		N_IPSECSTAT,	1,	NULL,
-	  ipsec_stats,	NULL,		"ipsec",	0},
+	{ -1,		-1,		1,	NULL,
+	  ipsec_stats,	NULL,		"ipsec",	1},
 #endif
 	{ -1,		-1,		1,	NULL,
 	  bdg_stats,	NULL,		"bdg",	1 /* bridging... */ },
 	{ -1,		-1,		1,	protopr,
 	  pim_stats,	NULL,		"pim",	IPPROTO_PIM },
 	{ -1,		N_CARPSTAT,	1,	0,
-	  carp_stats,	NULL,		"carp",		0},
+	  carp_stats,	NULL,		"carp",		1},
 	{ -1,		-1,		0,	NULL,
 	  NULL,		NULL,		NULL,	0 }
 };
@@ -185,20 +185,20 @@
 	  tcp_stats,	NULL,		"tcp",	IPPROTO_TCP },
 	{ -1,		-1,		1,	protopr,
 	  udp_stats,	NULL,		"udp",	IPPROTO_UDP },
-	{ -1,		N_IP6STAT,	1,	protopr,
+	{ -1,		-1,		1,	protopr,
 	  ip6_stats,	ip6_ifstats,	"ip6",	IPPROTO_RAW },
-	{ -1,		N_ICMP6STAT,	1,	protopr,
+	{ -1,		-1,		1,	protopr,
 	  icmp6_stats,	icmp6_ifstats,	"icmp6",IPPROTO_ICMPV6 },
 #ifdef IPSEC
-	{ -1,		N_IPSEC6STAT,	1,	NULL,
-	  ipsec_stats,	NULL,		"ipsec6",0 },
+	{ -1,		-1,		1,	NULL,
+	  ipsec_stats,	NULL,		"ipsec6",1 },
 #endif
 #ifdef notyet
-	{ -1,		N_PIM6STAT,	1,	NULL,
-	  pim6_stats,	NULL,		"pim6",	0 },
+	{ -1,		-1,		1,	NULL,
+	  pim6_stats,	NULL,		"pim6",	1 },
 #endif
 	{ -1,		-1,		1,	NULL,
-	  rip6_stats,	NULL,		"rip6",	0 },
+	  rip6_stats,	NULL,		"rip6",	1 },
 	{ -1,		-1,		1,	NULL,
 	  bdg_stats,	NULL,		"bdg",	1 /* bridging... */ },
 	{ -1,		-1,		0,	NULL,
@@ -209,7 +209,7 @@
 #ifdef IPSEC
 struct protox pfkeyprotox[] = {
 	{ -1,		N_PFKEYSTAT,	1,	NULL,
-	  pfkey_stats,	NULL,		"pfkey", 0 },
+	  pfkey_stats,	NULL,		"pfkey", 1 },
 	{ -1,		-1,		0,	NULL,
 	  NULL,		NULL,		NULL,	0 }
 };
@@ -428,6 +428,7 @@
 		setgid(getgid());
 
 	if (mflag) {
+#ifdef IFCLEANUP
 		if (memf != NULL) {
 			if (kread(0, 0, 0) == 0)
 				mbpr(nl[N_MBSTAT].n_value,
@@ -442,6 +443,7 @@
 				    nl[N_PAGESZ].n_value,
 				    nl[N_MBPSTAT].n_value);
 		} else
+#endif /* IFCLEANUP */		       
 			mbpr(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
 		exit(0);
 	}
@@ -460,12 +462,10 @@
 	 */
 #endif
 	if (iflag && !sflag) {
-		kread(0, 0, 0);
 		intpr(interval, nl[N_IFNET].n_value, NULL);
 		exit(0);
 	}
 	if (rflag) {
-		kread(0, 0, 0);
 		if (sflag)
 			rt_stats(nl[N_RTSTAT].n_value, nl[N_RTTRASH].n_value);
 		else
@@ -473,7 +473,6 @@
 		exit(0);
 	}
 	if (gflag) {
-		kread(0, 0, 0);
 		if (sflag) {
 			if (af == AF_INET || af == AF_UNSPEC)
 				mrt_stats(nl[N_MRTSTAT].n_value);
@@ -495,7 +494,6 @@
 		exit(0);
 	}
 
-	kread(0, 0, 0);
 	if (tp) {
 		printproto(tp, tp->pr_name);
 		exit(0);
@@ -514,7 +512,6 @@
 			printproto(tp, tp->pr_name);
 #endif /*IPSEC*/
 	if (af == AF_IPX || af == AF_UNSPEC) {
-		kread(0, 0, 0);
 		for (tp = ipxprotox; tp->pr_name; tp++)
 			printproto(tp, tp->pr_name);
 	}
@@ -580,6 +577,7 @@
 /*
  * Read kernel memory, return 0 on success.
  */
+#ifdef IFCLEANUP
 int
 kread(u_long addr, char *buf, int size)
 {
@@ -617,7 +615,7 @@
 	}
 	return (0);
 }
-
+#endif /* IFCLEANUP */
 const char *
 plural(int n)
 {

==== //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/mbuf.c#2 (text+ko) ====

@@ -115,24 +115,16 @@
 		goto err;
 	}
 
-	if (mbaddr) {
-		if (kread(mbaddr, (char *)mbstat, sizeof mbstat))
-			goto err;
-		if (kread(nmbcaddr, (char *)&nmbclusters, sizeof(int)))
-			goto err;
-	} else {
-		mlen = sizeof *mbstat;
-		if (sysctlbyname("kern.ipc.mbstat", mbstat, &mlen, NULL, 0)
-		    < 0) {
-			warn("sysctl: retrieving mbstat");
-			goto err;
-		}
-		mlen = sizeof(int);
-		if (sysctlbyname("kern.ipc.nmbclusters", &nmbclusters, &mlen,
-		    NULL, 0) < 0) {
-			warn("sysctl: retrieving nmbclusters");
-			goto err;
-		}
+	if (sysctlbyname("kern.ipc.mbstat", mbstat, &mlen, NULL, 0)
+	    < 0) {
+		warn("sysctl: retrieving mbstat");
+		goto err;
+	}
+	mlen = sizeof(int);
+	if (sysctlbyname("kern.ipc.nmbclusters", &nmbclusters, &mlen,
+			 NULL, 0) < 0) {
+		warn("sysctl: retrieving nmbclusters");
+		goto err;
 	}
 	if (mbstat->m_mbufs < 0) mbstat->m_mbufs = 0;		/* XXX */
 	if (mbstat->m_mclusts < 0) mbstat->m_mclusts = 0;	/* XXX */

==== //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/mroute.c#2 (text+ko) ====

@@ -71,6 +71,7 @@
 void
 mroutepr(u_long mfcaddr, u_long vifaddr)
 {
+#ifdef IFCLEANUP
 	struct mfc *mfctable[MFCTBLSIZ];
 	struct vif viftable[MAXVIFS];
 	struct mfc mfc, *m;
@@ -82,28 +83,14 @@
 	vifi_t maxvif = 0;
 	size_t len;
 
-	len = sizeof(mfctable);
-	if (sysctlbyname("net.inet.ip.mfctable", mfctable, &len, NULL, 0) < 0) {
-		warn("sysctl: net.inet.ip.mfctable");
-		/* Compatability with older kernels - candidate for removal */
-		if (mfcaddr == 0) {
-			printf("No IPv4 multicast routing compiled into this system.\n");
-			return;
-		}
-
-		kread(mfcaddr, (char *)mfctable, sizeof(mfctable));
-	}
-
 	len = sizeof(viftable);
 	if (sysctlbyname("net.inet.ip.viftable", viftable, &len, NULL, 0) < 0) {
-		warn("sysctl: net.inet.ip.viftable");
-		/* Compatability with older kernels - candidate for removal */
-		if (vifaddr == 0) {
-			printf("No IPv4 multicast routing compiled into this system.\n");
-			return;
-		}
+		printf("No IPv4 multicast routing compiled into this system.\n");
+	}
 
-		kread(vifaddr, (char *)viftable, sizeof(viftable));
+	len = sizeof(mfctable);
+	if (sysctlbyname("net.inet.ip.mfctable", mfctable, &len, NULL, 0) < 0) {
+		printf("No IPv4 multicast routing compiled into this system.\n");
 	}
 
 	saved_numeric_addr = numeric_addr;
@@ -185,6 +172,7 @@
 
 	printf("\n");
 	numeric_addr = saved_numeric_addr;
+#endif /* IFCLEANUP */
 }
 
 static void
@@ -267,14 +255,9 @@
 
 	if (sysctlbyname("net.inet.ip.mrtstat", &mrtstat, &len,
 				NULL, 0) < 0) {
-		warn("sysctl: net.inet.ip.mrtstat");
 		/* Compatability with older kernels - candidate for removal */
-		if (mstaddr == 0) {
-			printf("No IPv4 multicast routing compiled into this system.\n");
-			return;
-		}
-
-		kread(mstaddr, (char *)&mrtstat, sizeof(mrtstat));
+		printf("No IPv4 multicast routing compiled into this system.\n");
+		return;
 	}
 	printf("IPv4 multicast forwarding:\n");
 

==== //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/mroute6.c#2 (text+ko) ====

@@ -96,6 +96,7 @@
 void
 mroute6pr(u_long mfcaddr, u_long mifaddr)
 {
+#ifdef IFCLEANUP
 	struct mf6c *mf6ctable[MF6CTBLSIZ], *mfcp;
 	struct mif6 mif6table[MAXMIFS];
 	struct mf6c mfc;
@@ -192,11 +193,13 @@
 
 	printf("\n");
 	numeric_addr = saved_numeric_addr;
+#endif /* IFCLEANUP */
 }
 
 void
 mrt6_stats(u_long mstaddr)
 {
+#ifdef IFCLEANUP
 	struct mrt6stat mrtstat;
 
 	if (mstaddr == 0) {
@@ -231,5 +234,6 @@
 
 #undef	p2
 #undef	p
+#endif /* IFCLEANUP */
 }
 #endif /*INET6*/

==== //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/netgraph.c#2 (text+ko) ====

@@ -63,6 +63,7 @@
 void
 netgraphprotopr(u_long off, const char *name, int af1 __unused)
 {
+#ifdef IFCLEANUP
 	struct ngpcb *this, *next;
 	struct ngpcb ngpcb;
 	struct ngsock info;
@@ -180,5 +181,6 @@
 finish:
 		putchar('\n');
 	}
+#endif /* IFCLEANUP */
 }
 

==== //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/unix.c#2 (text+ko) ====


From owner-p4-projects@FreeBSD.ORG  Fri Jul 22 23:35:40 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id D652B16A421; Fri, 22 Jul 2005 23:35:39 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 B16E416A41F
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 23:35:39 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 7F86A43D45
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 23:35:39 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6MNZdOY049434
	for <perforce@freebsd.org>; Fri, 22 Jul 2005 23:35:39 GMT
	(envelope-from soc-anders@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6MNZdkE049431
	for perforce@freebsd.org; Fri, 22 Jul 2005 23:35:39 GMT
	(envelope-from soc-anders@freebsd.org)
Date: Fri, 22 Jul 2005 23:35:39 GMT
Message-Id: <200507222335.j6MNZdkE049431@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-anders@freebsd.org using -f
From: soc-anders <soc-anders@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80815 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jul 2005 23:35:40 -0000

http://perforce.freebsd.org/chv.cgi?CH=80815

Change 80815 by soc-anders@soc-anders_gimli on 2005/07/22 23:34:58

	Changes needed due to modification in kernel header files. 

Affected files ...

.. //depot/projects/soc2005/ifcleanup/src/src/usr.bin/kdump/mkioctls#2 edit
.. //depot/projects/soc2005/ifcleanup/src/src/usr.bin/systat/ip6.c#2 edit
.. //depot/projects/soc2005/ifcleanup/src/src/usr.sbin/ppp/iface.c#2 edit

Differences ...

==== //depot/projects/soc2005/ifcleanup/src/src/usr.bin/kdump/mkioctls#2 (text+ko) ====

@@ -23,7 +23,7 @@
 	find -H -s * -name '*.h' |
 		xargs egrep -l \
 '^#[ 	]*define[ 	]+[A-Za-z_][A-Za-z0-9_]*[ 	]+_IO[^a-z0-9_]' |
-		awk '{printf("#include <%s>\\\\n", $1)}'
+		awk '{if ($1 != "netinet6/in6.h") {printf("#include <%s>\\\\n", $1)}}'
 `
 
 awk -v x="$ioctl_includes" 'BEGIN {print x}' |

==== //depot/projects/soc2005/ifcleanup/src/src/usr.bin/systat/ip6.c#2 (text+ko) ====

@@ -52,7 +52,7 @@
 #include <netinet/in.h>
 #include <netinet/in_systm.h>
 #include <netinet/ip.h>
-#include <netinet6/ip6_var.h>
+#include <netinet/ip6.h>
 
 #include <stdlib.h>
 #include <string.h>

==== //depot/projects/soc2005/ifcleanup/src/src/usr.sbin/ppp/iface.c#2 (text+ko) ====

@@ -36,7 +36,7 @@
 #endif
 #include <net/route.h>
 #include <netinet/in_systm.h>
-#include <netinet/in_var.h>
+#include <netinet/in.h>
 #include <netinet/ip.h>
 #ifndef NOINET6
 #include <netinet6/nd6.h>

From owner-p4-projects@FreeBSD.ORG  Sat Jul 23 00:00:11 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id AC1C616A421; Sat, 23 Jul 2005 00:00:10 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 6668616A41F
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:00:10 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 24C3443D45
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:00:10 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6N00AoG050419
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:00:10 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6N009R2050416
	for perforce@freebsd.org; Sat, 23 Jul 2005 00:00:09 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Sat, 23 Jul 2005 00:00:09 GMT
Message-Id: <200507230000.j6N009R2050416@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson <rwatson@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80817 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 23 Jul 2005 00:00:11 -0000

http://perforce.freebsd.org/chv.cgi?CH=80817

Change 80817 by rwatson@rwatson_zoo on 2005/07/22 23:59:30

	Pass M_ZERO to MALLOC() when allocating multicast addresses.  This
	isn't strictly necessary, but will avoid confusing when looking at
	the structure later in a debugger.
	
	Since we now allow M_NOWAIT to be used throughout the multicast
	code, rearrange the if_addmulti() code to no longer use the "detect
	race and recover" approach, but instead detect allocation failure
	and abort.  This simplifies the logic quite a bit, and avoids having
	lots of memory floating around that may or may not need to be freed.

Affected files ...

.. //depot/projects/netsmp/src/sys/net/if.c#5 edit

Differences ...

==== //depot/projects/netsmp/src/sys/net/if.c#5 (text+ko) ====

@@ -1834,9 +1834,10 @@
 
 	IF_ADDR_LOCK_ASSERT(ifp);
 
-	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link)
+	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 		if (sa_equal(ifma->ifma_addr, sa))
 			break;
+	}
 
 	return ifma;
 }
@@ -1868,10 +1869,8 @@
 	struct ifmultiaddr *ifma;
 	struct sockaddr *dupsa;
 
-	KASSERT(ifp != NULL, ("if_allocmulti: NULL ifp"));
-	KASSERT(sa != NULL, ("if_allocmulti: NULL sa"));
-
-	MALLOC(ifma, struct ifmultiaddr *, sizeof *ifma, M_IFMADDR, mflags);
+	MALLOC(ifma, struct ifmultiaddr *, sizeof *ifma, M_IFMADDR, mflags |
+	    M_ZERO);
 	if (ifma == NULL)
 		return (NULL);
 
@@ -1883,23 +1882,24 @@
 	bcopy(sa, dupsa, sa->sa_len);
 	ifma->ifma_addr = dupsa;
 
-	if (llsa != NULL) {
-		MALLOC(dupsa, struct sockaddr *, llsa->sa_len, M_IFMADDR,
-		    mflags);
-		if (dupsa == NULL) {
-			FREE(ifma->ifma_addr, M_IFMADDR);
-			FREE(ifma, M_IFMADDR);
-			return (NULL);
-		}
-		bcopy(llsa, dupsa, llsa->sa_len);
-		ifma->ifma_lladdr = llsa;
-	} else
-		ifma->ifma_lladdr = NULL;
-
 	ifma->ifma_ifp = ifp;
 	ifma->ifma_refcount = 1;
 	ifma->ifma_protospec = NULL;
 
+	if (llsa == NULL) {
+		ifma->ifma_lladdr = NULL;
+		return (ifma);
+	}
+
+	MALLOC(dupsa, struct sockaddr *, llsa->sa_len, M_IFMADDR, mflags);
+	if (dupsa == NULL) {
+		FREE(ifma->ifma_addr, M_IFMADDR);
+		FREE(ifma, M_IFMADDR);
+		return (NULL);
+	}
+	bcopy(llsa, dupsa, llsa->sa_len);
+	ifma->ifma_lladdr = dupsa;
+
 	return (ifma);
 }
 
@@ -1946,15 +1946,13 @@
 if_addmulti(struct ifnet *ifp, struct sockaddr *sa,
     struct ifmultiaddr **retifma)
 {
-	struct ifmultiaddr *ifma, *ll_ifma, *new_ifma, *new_ll_ifma;
+	struct ifmultiaddr *ifma, *ll_ifma;
 	struct sockaddr *llsa;
 	int error;
 
 	/*
 	 * If the address is already present, return a new reference to it;
-	 * otherwise, allocate storage and set up a new address.  Since we
-	 * release the interface lock, we have to check for races in which
-	 * another thread may also have set up the same address.
+	 * otherwise, allocate storage and set up a new address.
 	 */
 	IF_ADDR_LOCK(ifp);
 	ifma = if_findmulti(ifp, sa);
@@ -1965,69 +1963,59 @@
 		IF_ADDR_UNLOCK(ifp);
 		return (0);
 	}
-	IF_ADDR_UNLOCK(ifp);
 
 	/*
-	 * The address isn't already present; perform a link layer
-	 * resolution if it's not already a link layer address, and allocate
-	 * and set up the address.  As of this point, if llsa is non-NULL,
-	 * we must free the sockaddr if we don't need it.
+	 * The address isn't already present; resolve the protocol address
+	 * into a link layer address, and then look that up, bump its
+	 * refcount or allocate an ifma for that also.  If 'llsa' was
+	 * returned, we will need to free it later.
 	 */
+	llsa = NULL;
+	ll_ifma = NULL;
 	if (ifp->if_resolvemulti != NULL) {
 		error = ifp->if_resolvemulti(ifp, &llsa, sa);
 		if (error)
-		    return error;
-	} else
-		llsa = NULL;
-
-	new_ifma = if_allocmulti(ifp, sa, llsa, M_NOWAIT);
-	if (new_ifma == NULL) {
-		if (llsa != NULL)
-			free(llsa, M_IFMADDR);
-		return (ENOMEM);
+			goto unlock_out;
 	}
-	if (llsa != NULL) {
-		new_ll_ifma = if_allocmulti(ifp, llsa, NULL, M_NOWAIT);
-		if (new_ll_ifma == NULL) {
-			if_freemulti(new_ifma);
-			if (llsa != NULL)
-				free(llsa, M_IFMADDR);
-			return (ENOMEM);
-		}
-	} else
-		new_ll_ifma = NULL;	/* gcc */
 
 	/*
-	 * Now check to see if we lost the race, and continue inserting if
-	 * not.  Note that we need to separately consider the link layer
-	 * and protocol layer multicast addresses.
+	 * Allocate the new address.  Don't hook it up yet, as we may also
+	 * need to allocate a link layer multicast address.
 	 */
-	IF_ADDR_LOCK(ifp);
-	ifma = if_findmulti(ifp, sa);
-	if (llsa != NULL)
-		ll_ifma = if_findmulti(ifp, llsa);
-	else
-		ll_ifma = NULL;	/* gcc */
-
-	if (ifma != NULL) {
-		if_freemulti(new_ifma);
-		ifma->ifma_refcount++;
-	} else {
-		ifma = new_ifma;
-		TAILQ_INSERT_HEAD(&ifp->if_multiaddrs, ifma, ifma_link);
+	ifma = if_allocmulti(ifp, sa, llsa, M_NOWAIT);
+	if (ifma == NULL) {
+		error = ENOMEM;
+		goto free_llsa_out;
 	}
 
+	/*
+	 * If a link layer address is found, we'll need to see if it's
+	 * already present in the address list, or allocate is as well.
+	 * When this block finishes, the link layer address will be on the
+	 * list.
+	 */
 	if (llsa != NULL) {
-		if (ll_ifma != NULL) {
-			if_freemulti(new_ll_ifma);
-			ll_ifma->ifma_refcount++;
-		} else {
-			ll_ifma = new_ll_ifma;
+		ll_ifma = if_findmulti(ifp, llsa);
+		if (ll_ifma == NULL) {
+			ll_ifma = if_allocmulti(ifp, llsa, NULL, M_NOWAIT);
+			if (ll_ifma == NULL) {
+				if_freemulti(ifma);
+				error = ENOMEM;
+				goto free_llsa_out;
+			}
 			TAILQ_INSERT_HEAD(&ifp->if_multiaddrs, ll_ifma,
 			    ifma_link);
-		}
+		} else
+			ll_ifma->ifma_refcount++;
 	}
 
+	/*
+	 * We now have a new multicast address, ifma, and possibly a new or
+	 * referenced link layer address.  Add the primary address to the
+	 * ifnet address list.
+	 */
+	TAILQ_INSERT_HEAD(&ifp->if_multiaddrs, ifma, ifma_link);
+
 	if (retifma != NULL)
 		*retifma = ifma;
 
@@ -2052,7 +2040,16 @@
 
 	if (llsa != NULL)
 		FREE(llsa, M_IFMADDR);
+
 	return (0);
+
+free_llsa_out:
+	if (llsa != NULL)
+		FREE(llsa, M_IFMADDR);
+
+unlock_out:
+	IF_ADDR_UNLOCK(ifp);
+	return (error);
 }
 
 /*
@@ -2078,7 +2075,10 @@
 	}
 
 	sa = ifma->ifma_lladdr;
-	ll_ifma = if_findmulti(ifp, sa);
+	if (sa != NULL)
+		ll_ifma = if_findmulti(ifp, sa);
+	else
+		ll_ifma = NULL;
 
 	/*
 	 * XXXRW: How come we don't announce ll_ifma?

From owner-p4-projects@FreeBSD.ORG  Sat Jul 23 00:06:19 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 2447616A421; Sat, 23 Jul 2005 00:06:19 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 F14C016A41F
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:06:18 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 4D4A943D48
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:06:18 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6N06IN9050710
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:06:18 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6N06HIN050707
	for perforce@freebsd.org; Sat, 23 Jul 2005 00:06:17 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Sat, 23 Jul 2005 00:06:17 GMT
Message-Id: <200507230006.j6N06HIN050707@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson <rwatson@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80820 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 23 Jul 2005 00:06:20 -0000

http://perforce.freebsd.org/chv.cgi?CH=80820

Change 80820 by rwatson@rwatson_zoo on 2005/07/23 00:06:01

	Integrate netsmp from CVS HEAD.  Various changes, but among other
	things:
	
	- Loop back if_drv_flags definition.
	- if_de cleanup.
	- Lots of 802.11.

Affected files ...

.. //depot/projects/netsmp/src/sys/amd64/amd64/bios.c#2 integrate
.. //depot/projects/netsmp/src/sys/amd64/amd64/mp_machdep.c#2 integrate
.. //depot/projects/netsmp/src/sys/amd64/conf/NOTES#2 integrate
.. //depot/projects/netsmp/src/sys/amd64/include/atomic.h#2 integrate
.. //depot/projects/netsmp/src/sys/amd64/include/bus_dma.h#2 integrate
.. //depot/projects/netsmp/src/sys/amd64/include/pc/bios.h#2 integrate
.. //depot/projects/netsmp/src/sys/boot/ofw/libofw/ofw_copy.c#2 integrate
.. //depot/projects/netsmp/src/sys/conf/files#2 integrate
.. //depot/projects/netsmp/src/sys/conf/files.amd64#2 integrate
.. //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdDebug.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdHardware.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdInterrupt.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdMemory.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdSchedule.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdStream.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdSynch.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdTable.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/acpica/acpi_acad.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/acpica/acpi_package.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/acpica/acpi_quirk.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/ath/ath_rate/amrr/amrr.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/ath/ath_rate/onoe/onoe.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/ath/ath_rate/sample/sample.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/ath/if_ath.c#3 integrate
.. //depot/projects/netsmp/src/sys/dev/awi/awi.c#3 integrate
.. //depot/projects/netsmp/src/sys/dev/drm/ati_pcigart.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/drm/drmP.h#2 integrate
.. //depot/projects/netsmp/src/sys/dev/drm/drm_agpsupport.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/drm/drm_pciids.h#2 integrate
.. //depot/projects/netsmp/src/sys/dev/drm/r128_cce.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/drm/r300_cmdbuf.c#1 branch
.. //depot/projects/netsmp/src/sys/dev/drm/r300_reg.h#1 branch
.. //depot/projects/netsmp/src/sys/dev/drm/radeon_cp.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/drm/radeon_drm.h#2 integrate
.. //depot/projects/netsmp/src/sys/dev/drm/radeon_drv.h#2 integrate
.. //depot/projects/netsmp/src/sys/dev/drm/radeon_state.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/ipw/if_ipw.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/iwi/if_iwi.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/ral/if_ral.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/usb/if_ural.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/vkbd/vkbd.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/vx/if_vx.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/wi/if_wi.c#3 integrate
.. //depot/projects/netsmp/src/sys/i386/bios/smapi_bios.S#2 integrate
.. //depot/projects/netsmp/src/sys/i386/bios/smbios.c#2 integrate
.. //depot/projects/netsmp/src/sys/i386/conf/NOTES#3 integrate
.. //depot/projects/netsmp/src/sys/i386/i386/bios.c#2 integrate
.. //depot/projects/netsmp/src/sys/i386/i386/elan-mmcr.c#2 integrate
.. //depot/projects/netsmp/src/sys/i386/i386/geode.c#2 integrate
.. //depot/projects/netsmp/src/sys/i386/include/pc/bios.h#2 integrate
.. //depot/projects/netsmp/src/sys/modules/de/Makefile#2 integrate
.. //depot/projects/netsmp/src/sys/modules/drm/radeon/Makefile#2 integrate
.. //depot/projects/netsmp/src/sys/net/if_ethersubr.c#3 integrate
.. //depot/projects/netsmp/src/sys/net/if_var.h#3 integrate
.. //depot/projects/netsmp/src/sys/net80211/ieee80211.c#2 integrate
.. //depot/projects/netsmp/src/sys/net80211/ieee80211.h#2 integrate
.. //depot/projects/netsmp/src/sys/net80211/ieee80211_crypto.c#2 integrate
.. //depot/projects/netsmp/src/sys/net80211/ieee80211_input.c#2 integrate
.. //depot/projects/netsmp/src/sys/net80211/ieee80211_ioctl.c#2 integrate
.. //depot/projects/netsmp/src/sys/net80211/ieee80211_ioctl.h#2 integrate
.. //depot/projects/netsmp/src/sys/net80211/ieee80211_node.c#2 integrate
.. //depot/projects/netsmp/src/sys/net80211/ieee80211_node.h#2 integrate
.. //depot/projects/netsmp/src/sys/net80211/ieee80211_output.c#2 integrate
.. //depot/projects/netsmp/src/sys/net80211/ieee80211_proto.c#2 integrate
.. //depot/projects/netsmp/src/sys/net80211/ieee80211_proto.h#2 integrate
.. //depot/projects/netsmp/src/sys/net80211/ieee80211_var.h#2 integrate
.. //depot/projects/netsmp/src/sys/netgraph/netgraph.h#2 integrate
.. //depot/projects/netsmp/src/sys/netgraph/ng_base.c#2 integrate
.. //depot/projects/netsmp/src/sys/netinet6/ip6_output.c#3 integrate
.. //depot/projects/netsmp/src/sys/netinet6/ip6_var.h#2 integrate
.. //depot/projects/netsmp/src/sys/netinet6/mld6.c#3 integrate
.. //depot/projects/netsmp/src/sys/netinet6/raw_ip6.c#2 integrate
.. //depot/projects/netsmp/src/sys/netinet6/udp6_output.c#2 integrate
.. //depot/projects/netsmp/src/sys/nfsclient/nfs_bio.c#2 integrate
.. //depot/projects/netsmp/src/sys/nfsclient/nfs_node.c#2 integrate
.. //depot/projects/netsmp/src/sys/nfsclient/nfsnode.h#2 integrate
.. //depot/projects/netsmp/src/sys/pc98/conf/NOTES#2 integrate
.. //depot/projects/netsmp/src/sys/pci/if_de.c#3 integrate
.. //depot/projects/netsmp/src/sys/pci/if_devar.h#2 integrate
.. //depot/projects/netsmp/src/sys/security/mac_stub/mac_stub.c#2 integrate

Differences ...

==== //depot/projects/netsmp/src/sys/amd64/amd64/bios.c#2 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/bios.c,v 1.72 2004/09/24 01:08:34 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/bios.c,v 1.73 2005/07/21 09:48:36 phk Exp $");
 
 /*
  * Subset of the i386 bios support code.  We cannot make bios16 nor bios32
@@ -93,18 +93,3 @@
     }
     return(0);
 }
-
-const u_char *
-bios_string(u_int from, u_int to, const u_char *string, int len)
-{
-	const char *t, *te;
-
-	if (len == 0)
-		len = strlen(string);
-	t = (const char *)(KERNBASE + from);
-	te = (const char *)(KERNBASE + to);
-	for (; t <= te; t++)
-		if (!memcmp(string, t, len))
-			return (t);
-	return (NULL);
-}

==== //depot/projects/netsmp/src/sys/amd64/amd64/mp_machdep.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.260 2005/06/29 23:23:16 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.261 2005/07/21 21:46:09 peter Exp $");
 
 #include "opt_cpu.h"
 #include "opt_kdb.h"
@@ -95,6 +95,9 @@
 /* Free these after use */
 void *bootstacks[MAXCPU];
 
+/* Temporary holder for double fault stack */
+char *doublefault_stack;
+
 /* Hotwire a 0->4MB V==P mapping */
 extern pt_entry_t *KPTphys;
 
@@ -432,6 +435,7 @@
 	common_tss[cpu] = common_tss[0];
 	common_tss[cpu].tss_rsp0 = 0;   /* not used until after switch */
 	common_tss[cpu].tss_iobase = sizeof(struct amd64tss);
+	common_tss[cpu].tss_ist1 = (long)&doublefault_stack[PAGE_SIZE];
 
 	gdt_segs[GPROC0_SEL].ssd_base = (long) &common_tss[cpu];
 	ssdtosyssd(&gdt_segs[GPROC0_SEL],
@@ -679,7 +683,8 @@
 		cpu_apic_ids[cpu] = apic_id;
 
 		/* allocate and set up an idle stack data page */
-		bootstacks[cpu] = (char *)kmem_alloc(kernel_map, KSTACK_PAGES * PAGE_SIZE);
+		bootstacks[cpu] = (void *)kmem_alloc(kernel_map, KSTACK_PAGES * PAGE_SIZE);
+		doublefault_stack = (char *)kmem_alloc(kernel_map, PAGE_SIZE);
 
 		bootSTK = (char *)bootstacks[cpu] + KSTACK_PAGES * PAGE_SIZE - 8;
 		bootAP = cpu;

==== //depot/projects/netsmp/src/sys/amd64/conf/NOTES#2 (text+ko) ====

@@ -4,7 +4,7 @@
 # This file contains machine dependent kernel configuration notes.  For
 # machine independent notes, look in /sys/conf/NOTES.
 #
-# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.36 2005/06/30 05:33:25 peter Exp $
+# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.41 2005/07/22 16:02:40 ru Exp $
 #
 
 #
@@ -210,7 +210,7 @@
 device		mach64drm	# ATI Rage Pro, Rage Mobility P/M, Rage XL
 device		mgadrm		# AGP Matrox G200, G400, G450, G550
 device		r128drm		# ATI Rage 128
-device		radeondrm	# ATI Radeon up to 9200
+device		radeondrm	# ATI Radeon
 device		sisdrm		# SiS 300/305, 540, 630
 device		tdfxdrm		# 3dfx Voodoo 3/4/5 and Banshee
 options 	DRM_DEBUG	# Include debug printfs (slow)
@@ -226,11 +226,11 @@
 # lnc:  Lance/PCnet cards (Isolan, Novell NE2100, NE32-VL, AMD Am7990 and
 #       Am79C960)
 
+device		ed
+options 	ED_3C503
+options 	ED_HPP
+options 	ED_SIC
 #XXX#	still calls MD i386 kvtop function instead of vtophys etc
-#XXX#device		ed
-#XXX#options 		ED_3C503
-#XXX#options 		ED_HPP
-#XXX#options 		ED_SIC
 #XXX#device		lnc
 
 device		ath
@@ -297,6 +297,8 @@
 #
 # Miscellaneous hardware:
 #
+# smbios: DMI/SMBIOS entry point
+# vpd: Vital Product Data kernel interface
 # cy: Cyclades serial driver
 # digi: Digiboard driver
 
@@ -321,6 +323,8 @@
 device		pbio
 hint.pbio.0.at="isa"
 hint.pbio.0.port="0x360"
+device		smbios
+device		vpd
 # sx device is i386 and pc98 only at the moment.
 device		sx
 options 	SX_DEBUG

==== //depot/projects/netsmp/src/sys/amd64/include/atomic.h#2 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/include/atomic.h,v 1.35 2005/07/15 18:17:57 jhb Exp $
+ * $FreeBSD: src/sys/amd64/include/atomic.h,v 1.36 2005/07/21 22:35:02 peter Exp $
  */
 #ifndef _MACHINE_ATOMIC_H_
 #define	_MACHINE_ATOMIC_H_
@@ -152,10 +152,35 @@
 	return (res);
 }
 
+#if defined(_KERNEL) && !defined(SMP)
+
+/*
+ * We assume that a = b will do atomic loads and stores.  However, on a
+ * PentiumPro or higher, reads may pass writes, so for that case we have
+ * to use a serializing instruction (i.e. with LOCK) to do the load in
+ * SMP kernels.  For UP kernels, however, the cache of the single processor
+ * is always consistent, so we don't need any memory barriers.
+ */
 #define	ATOMIC_STORE_LOAD(TYPE, LOP, SOP)		\
 static __inline u_##TYPE				\
 atomic_load_acq_##TYPE(volatile u_##TYPE *p)		\
 {							\
+	return (*p);					\
+}							\
+							\
+static __inline void					\
+atomic_store_rel_##TYPE(volatile u_##TYPE *p, u_##TYPE v)\
+{							\
+	*p = v;						\
+}							\
+struct __hack
+
+#else /* defined(SMP) */
+
+#define	ATOMIC_STORE_LOAD(TYPE, LOP, SOP)		\
+static __inline u_##TYPE				\
+atomic_load_acq_##TYPE(volatile u_##TYPE *p)		\
+{							\
 	u_##TYPE res;					\
 							\
 	__asm __volatile(__XSTRING(MPLOCKED) LOP	\
@@ -179,6 +204,8 @@
 }							\
 struct __hack
 
+#endif /* SMP */
+
 #endif /* KLD_MODULE || !(__GNUCLIKE_ASM && __CC_SUPPORTS___INLINE) */
 
 ATOMIC_ASM(set,	     char,  "orb %b1,%0",  "iq",  v);

==== //depot/projects/netsmp/src/sys/amd64/include/bus_dma.h#2 (text+ko) ====

@@ -22,8 +22,9 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
+ *
+ * $FreeBSD: src/sys/amd64/include/bus_dma.h,v 1.30 2005/07/22 04:03:25 obrien Exp $
  */
-/* $FreeBSD: src/sys/amd64/include/bus_dma.h,v 1.29 2005/03/14 16:46:27 scottl Exp $ */
 
 #ifndef _AMD64_BUS_DMA_H_
 #define _AMD64_BUS_DMA_H_

==== //depot/projects/netsmp/src/sys/amd64/include/pc/bios.h#2 (text+ko) ====

@@ -24,7 +24,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/include/pc/bios.h,v 1.18 2004/09/24 00:42:36 peter Exp $
+ * $FreeBSD: src/sys/amd64/include/pc/bios.h,v 1.19 2005/07/21 09:48:36 phk Exp $
  */
 
 #ifndef _MACHINE_PC_BIOS_H_
@@ -48,7 +48,22 @@
     u_int32_t	type;
 } __packed;
 
-const u_char *bios_string(u_int from, u_int to, const u_char *string, int len);
+struct bios_oem_signature {
+	char * anchor;		/* search anchor string in BIOS memory */
+	size_t offset;		/* offset from anchor (may be negative) */
+	size_t totlen;		/* total length of BIOS string to copy */
+} __packed;
+struct bios_oem_range {
+	u_int from;		/* shouldn't be below 0xe0000 */
+	u_int to;		/* shouldn't be above 0xfffff */
+} __packed;
+struct bios_oem {
+	struct bios_oem_range range;
+	struct bios_oem_signature signature[];
+} __packed;
+
+extern int
+bios_oem_strings(struct bios_oem *oem, u_char *buffer, size_t maxlen);
 
 
 #endif /* _MACHINE_PC_BIOS_H_ */

==== //depot/projects/netsmp/src/sys/boot/ofw/libofw/ofw_copy.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/ofw/libofw/ofw_copy.c,v 1.15 2005/05/19 07:21:46 grehan Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/ofw/libofw/ofw_copy.c,v 1.16 2005/07/22 23:22:29 grehan Exp $");
 
 /*
  * MD primitives supporting placement of module data 
@@ -39,7 +39,9 @@
 #define	READIN_BUF	(4 * 1024)
 #define	PAGE_SIZE	0x1000
 #define	PAGE_MASK	0x0fff
+#define MAPMEM_PAGE_INC 16
 
+
 #define	roundup(x, y)	((((x)+((y)-1))/(y))*(y))
 
 static int
@@ -76,10 +78,10 @@
 
 	/*
 	 * To avoid repeated mappings on small allocations,
-	 * never map anything less than 16 pages at a time
+	 * never map anything less than MAPMEM_PAGE_INC pages at a time
 	 */
-	if ((nlen + resid) < PAGE_SIZE*8) {
-		dlen = PAGE_SIZE*8;
+	if ((nlen + resid) < PAGE_SIZE*MAPMEM_PAGE_INC) {
+		dlen = PAGE_SIZE*MAPMEM_PAGE_INC;
 	} else
 		dlen = roundup(nlen + resid, PAGE_SIZE);
 

==== //depot/projects/netsmp/src/sys/conf/files#2 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1035 2005/07/19 02:06:48 imp Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1036 2005/07/20 21:10:56 anholt Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -511,6 +511,7 @@
 dev/drm/r128_irq.c		optional r128drm
 dev/drm/r128_state.c		optional r128drm \
 	compile-with "${NORMAL_C} -finline-limit=13500"
+dev/drm/r300_cmdbuf.c		optional radeondrm
 dev/drm/radeon_cp.c		optional radeondrm
 dev/drm/radeon_drv.c		optional radeondrm
 dev/drm/radeon_irq.c		optional radeondrm

==== //depot/projects/netsmp/src/sys/conf/files.amd64#2 (text+ko) ====

@@ -1,7 +1,7 @@
 # This file tells config what files go into building a kernel,
 # files marked standard are always included.
 #
-# $FreeBSD: src/sys/conf/files.amd64,v 1.72 2005/07/19 01:10:27 ps Exp $
+# $FreeBSD: src/sys/conf/files.amd64,v 1.75 2005/07/21 21:57:31 peter Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -136,6 +136,12 @@
 dev/atkbdc/atkbdc_isa.c		optional	atkbdc isa
 dev/atkbdc/atkbdc_subr.c	optional	atkbdc
 dev/atkbdc/psm.c		optional	psm atkbdc
+# There are no systems with isa slots, so all ed isa entries should go..
+dev/ed/if_ed_3c503.c		optional	ed isa ed_3c503
+dev/ed/if_ed_isa.c		optional	ed isa
+dev/ed/if_ed_wd80x3.c		optional	ed isa
+dev/ed/if_ed_hpp.c		optional	ed isa ed_hpp
+dev/ed/if_ed_sic.c		optional	ed isa ed_sic
 dev/fb/fb.c			optional	fb
 dev/fb/fb.c			optional	vga
 dev/fb/splash.c			optional	splash
@@ -229,6 +235,8 @@
 compat/ndis/subr_pe.c		optional	ndisapi pci
 compat/ndis/subr_usbd.c		optional	ndisapi pci
 compat/ndis/winx64_wrap.S	optional	ndisapi pci
+i386/bios/smbios.c		optional	smbios
+i386/bios/vpd.c			optional	vpd
 i386/cpufreq/powernow.c		optional	cpufreq
 i386/cpufreq/est.c		optional	cpufreq
 i386/cpufreq/p4tcc.c		optional	cpufreq

==== //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdDebug.c#2 (text+ko) ====

@@ -23,14 +23,15 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- *	$FreeBSD: src/sys/dev/acpica/Osd/OsdDebug.c,v 1.9 2004/09/02 04:28:05 njl Exp $
  */
 
 /*
  * 6.8 : Debugging support
  */
 
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdDebug.c,v 1.10 2005/07/22 23:10:02 njl Exp $");
+
 #include "opt_ddb.h"
 #include <sys/param.h>
 #include <sys/kdb.h>

==== //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdHardware.c#2 (text+ko) ====

@@ -23,14 +23,15 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- *	$FreeBSD: src/sys/dev/acpica/Osd/OsdHardware.c,v 1.15 2005/05/29 04:42:16 nyan Exp $
  */
 
 /*
  * 6.7 : Hardware Abstraction
  */
 
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdHardware.c,v 1.16 2005/07/22 23:10:02 njl Exp $");
+
 #include "acpi.h"
 
 #include <machine/bus.h>

==== //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdInterrupt.c#2 (text+ko) ====

@@ -23,14 +23,15 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- *	$FreeBSD: src/sys/dev/acpica/Osd/OsdInterrupt.c,v 1.19 2004/12/02 00:25:35 marks Exp $
  */
 
 /*
  * 6.5 : Interrupt handling
  */
 
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdInterrupt.c,v 1.20 2005/07/22 23:10:02 njl Exp $");
+
 #include <sys/param.h>
 #include <sys/kernel.h>
 #include <sys/bus.h>

==== //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdMemory.c#2 (text+ko) ====

@@ -24,14 +24,15 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- *	$FreeBSD: src/sys/dev/acpica/Osd/OsdMemory.c,v 1.11 2004/04/14 03:39:08 njl Exp $
  */
 
 /*
  * 6.2 : Memory Management
  */
 
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdMemory.c,v 1.12 2005/07/22 23:10:02 njl Exp $");
+
 #include "acpi.h"
 
 #include <sys/kernel.h>

==== //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdSchedule.c#2 (text+ko) ====

@@ -23,14 +23,15 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- *	$FreeBSD: src/sys/dev/acpica/Osd/OsdSchedule.c,v 1.32 2005/05/09 07:34:04 marks Exp $
  */
 
 /*
  * 6.3 : Scheduling services
  */
 
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdSchedule.c,v 1.33 2005/07/22 23:10:02 njl Exp $");
+
 #include "opt_acpi.h"
 #include <sys/param.h>
 #include <sys/systm.h>

==== //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdStream.c#2 (text+ko) ====

@@ -23,14 +23,15 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- *	$FreeBSD: src/sys/dev/acpica/Osd/OsdStream.c,v 1.4 2004/04/14 03:39:08 njl Exp $
  */
 
 /*
  * 6.6 : Stream I/O
  */
 
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdStream.c,v 1.5 2005/07/22 23:10:02 njl Exp $");
+
 #include "acpi.h"
 
 void

==== //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdSynch.c#2 (text+ko) ====

@@ -23,14 +23,15 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- *	$FreeBSD: src/sys/dev/acpica/Osd/OsdSynch.c,v 1.22 2004/06/18 17:58:11 njl Exp $
  */
 
 /*
  * 6.1 : Mutual Exclusion and Synchronisation
  */
 
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdSynch.c,v 1.23 2005/07/22 23:10:02 njl Exp $");
+
 #include "acpi.h"
 
 #include "opt_acpi.h"

==== //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdTable.c#2 (text+ko) ====

@@ -22,14 +22,15 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- *	$FreeBSD: src/sys/dev/acpica/Osd/OsdTable.c,v 1.8 2004/10/05 20:41:44 njl Exp $
  */
 
 /*
  * ACPI Table interfaces
  */
 
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdTable.c,v 1.9 2005/07/22 23:10:02 njl Exp $");
+
 #include <sys/param.h>
 #include <sys/endian.h>
 #include <sys/kernel.h>

==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_acad.c#2 (text+ko) ====

@@ -22,10 +22,11 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- * $FreeBSD: src/sys/dev/acpica/acpi_acad.c,v 1.33 2005/05/19 09:13:26 takawata Exp $
  */
 
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_acad.c,v 1.34 2005/07/22 23:10:02 njl Exp $");
+
 #include "opt_acpi.h"
 #include <sys/param.h>
 #include <sys/kernel.h>

==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_package.c#2 (text+ko) ====

@@ -22,10 +22,11 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- * $FreeBSD: src/sys/dev/acpica/acpi_package.c,v 1.6 2005/05/29 04:42:16 nyan Exp $
  */
 
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_package.c,v 1.7 2005/07/22 23:10:02 njl Exp $");
+
 #include <sys/param.h>
 #include <sys/kernel.h>
 #include <sys/bus.h>

==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_quirk.c#2 (text+ko) ====

@@ -22,10 +22,11 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- * $FreeBSD: src/sys/dev/acpica/acpi_quirk.c,v 1.1 2004/06/30 04:45:32 njl Exp $
  */
 
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_quirk.c,v 1.2 2005/07/22 23:10:02 njl Exp $");
+
 #include <sys/param.h>
 #include <sys/bus.h>
 

==== //depot/projects/netsmp/src/sys/dev/ath/ath_rate/amrr/amrr.c#2 (text+ko) ====

@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ath/ath_rate/amrr/amrr.c,v 1.8 2005/06/10 16:49:04 brooks Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ath/ath_rate/amrr/amrr.c,v 1.9 2005/07/22 16:50:16 sam Exp $");
 
 /*
  * AMRR rate control. See:
@@ -284,7 +284,7 @@
 	int srate;
 
 	KASSERT(ni->ni_rates.rs_nrates > 0, ("no rates"));
-	if (ic->ic_fixed_rate == -1) {
+	if (ic->ic_fixed_rate == IEEE80211_FIXED_RATE_NONE) {
 		/*
 		 * No fixed rate is requested. For 11b start with
 		 * the highest negotiated rate; otherwise, for 11g
@@ -366,7 +366,8 @@
 		ieee80211_iterate_nodes(&ic->ic_sta, ath_rate_cb, sc);
 		ath_rate_update(sc, ic->ic_bss, 0);
 	}
-	if (ic->ic_fixed_rate == -1 && state == IEEE80211_S_RUN) {
+	if (ic->ic_fixed_rate == IEEE80211_FIXED_RATE_NONE &&
+	    state == IEEE80211_S_RUN) {
 		int interval;
 		/*
 		 * Start the background rate control thread if we

==== //depot/projects/netsmp/src/sys/dev/ath/ath_rate/onoe/onoe.c#2 (text+ko) ====

@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ath/ath_rate/onoe/onoe.c,v 1.8 2005/06/10 16:49:04 brooks Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ath/ath_rate/onoe/onoe.c,v 1.9 2005/07/22 16:50:17 sam Exp $");
 
 /*
  * Atsushi Onoe's rate control algorithm.
@@ -268,7 +268,7 @@
 	int srate;
 
 	KASSERT(ni->ni_rates.rs_nrates > 0, ("no rates"));
-	if (ic->ic_fixed_rate == -1) {
+	if (ic->ic_fixed_rate == IEEE80211_FIXED_RATE_NONE) {
 		/*
 		 * No fixed rate is requested. For 11b start with
 		 * the highest negotiated rate; otherwise, for 11g
@@ -350,7 +350,8 @@
 		ieee80211_iterate_nodes(&ic->ic_sta, ath_rate_cb, sc);
 		ath_rate_update(sc, ic->ic_bss, 0);
 	}
-	if (ic->ic_fixed_rate == -1 && state == IEEE80211_S_RUN) {
+	if (ic->ic_fixed_rate == IEEE80211_FIXED_RATE_NONE &&
+	    state == IEEE80211_S_RUN) {
 		int interval;
 		/*
 		 * Start the background rate control thread if we

==== //depot/projects/netsmp/src/sys/dev/ath/ath_rate/sample/sample.c#2 (text+ko) ====

@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ath/ath_rate/sample/sample.c,v 1.8 2005/04/02 18:56:50 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ath/ath_rate/sample/sample.c,v 1.9 2005/07/22 16:50:17 sam Exp $");
 
 /*
  * John Bicket's SampleRate control algorithm.
@@ -684,7 +684,7 @@
 
 	KASSERT(rt != NULL, ("no rate table, mode %u", sc->sc_curmode));
         sn->static_rate_ndx = -1;
-	if (ic->ic_fixed_rate != -1) {
+	if (ic->ic_fixed_rate != IEEE80211_FIXED_RATE_NONE) {
 		/*
 		 * A fixed rate is to be used; ic_fixed_rate is an
 		 * index into the supported rate set.  Convert this

==== //depot/projects/netsmp/src/sys/dev/ath/if_ath.c#3 (text+ko) ====

@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.94 2005/07/07 00:04:50 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.96 2005/07/22 17:57:16 sam Exp $");
 
 /*
  * Driver for the Atheros Wireless LAN controller.
@@ -161,8 +161,7 @@
 static void	ath_calibrate(void *);
 static int	ath_newstate(struct ieee80211com *, enum ieee80211_state, int);
 static void	ath_setup_stationkey(struct ieee80211_node *);
-static void	ath_newassoc(struct ieee80211com *,
-			struct ieee80211_node *, int);
+static void	ath_newassoc(struct ieee80211_node *, int);
 static int	ath_getchannels(struct ath_softc *, u_int cc,
 			HAL_BOOL outdoor, HAL_BOOL xchanmode);
 static void	ath_led_event(struct ath_softc *, int);
@@ -2603,7 +2602,7 @@
 				    "ibss merge, rstamp %u tsf %ju "
 				    "tstamp %ju\n", rstamp, (uintmax_t)tsf,
 				    (uintmax_t)ni->ni_tstamp.tsf);
-				(void) ieee80211_ibss_merge(ic, ni);
+				(void) ieee80211_ibss_merge(ni);
 			}
 		}
 		break;
@@ -4287,8 +4286,9 @@
  * param tells us if this is the first time or not.
  */
 static void
-ath_newassoc(struct ieee80211com *ic, struct ieee80211_node *ni, int isnew)
+ath_newassoc(struct ieee80211_node *ni, int isnew)
 {
+	struct ieee80211com *ic = ni->ni_ic;
 	struct ath_softc *sc = ic->ic_ifp->if_softc;
 
 	ath_rate_newassoc(sc, ATH_NODE(ni), isnew);

==== //depot/projects/netsmp/src/sys/dev/awi/awi.c#3 (text+ko) ====

@@ -89,7 +89,7 @@
 __KERNEL_RCSID(0, "$NetBSD: awi.c,v 1.62 2004/01/16 14:13:15 onoe Exp $");
 #endif
 #ifdef __FreeBSD__
-__FBSDID("$FreeBSD: src/sys/dev/awi/awi.c,v 1.37 2005/06/10 16:49:05 brooks Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/awi/awi.c,v 1.38 2005/07/22 16:50:18 sam Exp $");
 #endif
 
 #include "opt_inet.h"
@@ -605,7 +605,7 @@
 		rs = &ic->ic_sup_rates[IEEE80211_MODE_FH];
 	else
 		rs = &ic->ic_sup_rates[IEEE80211_MODE_11B];
-	if (ic->ic_fixed_rate != -1) {
+	if (ic->ic_fixed_rate != IEEE80211_FIXED_RATE_NONE) {
 		rate = rs->rs_rates[ic->ic_fixed_rate] & IEEE80211_RATE_VAL;
 	} else {
 		rate = 0;
@@ -1095,7 +1095,7 @@
 		rate = ic->ic_bss->ni_rates.rs_rates[ic->ic_bss->ni_txrate] &
 		    IEEE80211_RATE_VAL;
 	} else {
-		if (ic->ic_fixed_rate == -1)
+		if (ic->ic_fixed_rate == IEEE80211_FIXED_RATE_NONE)
 			rate = 0;
 		else
 			rate = ic->ic_sup_rates[mode].

==== //depot/projects/netsmp/src/sys/dev/drm/ati_pcigart.c#2 (text+ko) ====

@@ -27,7 +27,7 @@
  * Authors:
  *   Gareth Hughes <gareth@valinux.com>
  *
- * $FreeBSD: src/sys/dev/drm/ati_pcigart.c,v 1.1 2005/04/16 03:44:43 anholt Exp $
+ * $FreeBSD: src/sys/dev/drm/ati_pcigart.c,v 1.2 2005/07/20 21:10:57 anholt Exp $
  */
 
 #include "dev/drm/drmP.h"
@@ -46,7 +46,7 @@
 # define ATI_PCIGART_PAGE_SIZE		4096	/* PCI GART page size */
 
 int drm_ati_pcigart_init(drm_device_t *dev, unsigned long *addr,
-			 dma_addr_t *bus_addr)
+			 dma_addr_t *bus_addr, int is_pcie)
 {
 	drm_sg_mem_t *entry = dev->sg;
 	unsigned long address = 0;
@@ -81,7 +81,14 @@
 		page_base = (u32) entry->busaddr[i];
 
 		for (j = 0; j < (PAGE_SIZE / ATI_PCIGART_PAGE_SIZE); j++) {
-			*pci_gart++ = cpu_to_le32( page_base );
+			if (is_pcie) {
+				*pci_gart = (cpu_to_le32(page_base)>>8) | 0xc;
+				DRM_DEBUG("PCIE: %d %08X %08X to %p\n", i,
+				    page_base, (cpu_to_le32(page_base)>>8)|0xc,
+				    pci_gart);
+			} else
+				*pci_gart = cpu_to_le32(page_base);
+			pci_gart++;
 			page_base += ATI_PCIGART_PAGE_SIZE;
 		}
 	}

==== //depot/projects/netsmp/src/sys/dev/drm/drmP.h#2 (text+ko) ====

@@ -29,7 +29,7 @@
  *    Rickard E. (Rik) Faith <faith@valinux.com>
  *    Gareth Hughes <gareth@valinux.com>
  *
- * $FreeBSD: src/sys/dev/drm/drmP.h,v 1.13 2005/04/16 03:44:43 anholt Exp $
+ * $FreeBSD: src/sys/dev/drm/drmP.h,v 1.14 2005/07/20 21:10:57 anholt Exp $
  */
 
 #ifndef _DRM_P_H_
@@ -252,6 +252,15 @@
 extern struct cfdriver drm_cd;
 #endif /* !__FreeBSD__ */
 
+/* Capabilities taken from src/sys/dev/pci/pcireg.h. */
+#ifndef PCIY_AGP
+#define PCIY_AGP	0x02
+#endif
+
+#ifndef PCIY_EXPRESS
+#define PCIY_EXPRESS	0x10
+#endif
+
 typedef unsigned long dma_addr_t;
 typedef u_int32_t u32;
 typedef u_int16_t u16;
@@ -821,8 +830,9 @@
 int	drm_vblank_wait(drm_device_t *dev, unsigned int *vbl_seq);
 void	drm_vbl_send_signals(drm_device_t *dev);
 
-/* AGP/GART support (drm_agpsupport.c) */
+/* AGP/PCI Express/GART support (drm_agpsupport.c) */
 int	drm_device_is_agp(drm_device_t *dev);
+int	drm_device_is_pcie(drm_device_t *dev);
 drm_agp_head_t *drm_agp_init(void);
 void	drm_agp_uninit(void);
 void	drm_agp_do_release(void);
@@ -842,7 +852,7 @@
 
 /* ATI PCIGART support (ati_pcigart.c) */
 int	drm_ati_pcigart_init(drm_device_t *dev, unsigned long *addr,
-			     dma_addr_t *bus_addr);
+			     dma_addr_t *bus_addr, int is_pcie);
 int	drm_ati_pcigart_cleanup(drm_device_t *dev, unsigned long addr,
 				dma_addr_t bus_addr);
 

==== //depot/projects/netsmp/src/sys/dev/drm/drm_agpsupport.c#2 (text+ko) ====

@@ -29,7 +29,7 @@
  *    Rickard E. (Rik) Faith <faith@valinux.com>
  *    Gareth Hughes <gareth@valinux.com>
  *
- * $FreeBSD: src/sys/dev/drm/drm_agpsupport.c,v 1.1 2005/04/16 03:44:43 anholt Exp $
+ * $FreeBSD: src/sys/dev/drm/drm_agpsupport.c,v 1.2 2005/07/20 21:10:57 anholt Exp $
  */
 
 #include "dev/drm/drmP.h"
@@ -39,8 +39,8 @@
 #include <dev/pci/pcireg.h>
 #endif
 
-int
-drm_device_is_agp(drm_device_t *dev)
+static int
+drm_device_find_capability(drm_device_t *dev, int cap)
 {
 #ifdef __FreeBSD__
 	/* Code taken from agp.c.  IWBNI that was a public interface. */
@@ -64,9 +64,9 @@
 		next = AGP_CAPID_GET_NEXT_PTR(capid);
 
 		/*
-		 * If this capability entry ID is 2, then we are done.
+		 * If this capability entry ID is cap, then we are done.
 		 */
-		if (AGP_CAPID_GET_CAP_ID(capid) == 2)
+		if (AGP_CAPID_GET_CAP_ID(capid) == cap)
 			return 1;
 	}
 
@@ -77,6 +77,18 @@
 #endif
 }
 
+int
+drm_device_is_agp(drm_device_t *dev)
+{
+	return (drm_device_find_capability(dev, PCIY_AGP));
+}
+
+int
+drm_device_is_pcie(drm_device_t *dev)
+{
+	return (drm_device_find_capability(dev, PCIY_EXPRESS));
+}
+
 int drm_agp_info(DRM_IOCTL_ARGS)
 {
 	DRM_DEVICE;

==== //depot/projects/netsmp/src/sys/dev/drm/drm_pciids.h#2 (text+ko) ====

@@ -1,5 +1,5 @@
 /*
- * $FreeBSD: src/sys/dev/drm/drm_pciids.h,v 1.2 2005/04/16 03:44:44 anholt Exp $
+ * $FreeBSD: src/sys/dev/drm/drm_pciids.h,v 1.3 2005/07/20 21:10:57 anholt Exp $
  */
 
 /*
@@ -29,6 +29,8 @@
 	{0x1002, 0x4965, CHIP_R250, "ATI Radeon Ie R250 9000"}, \
 	{0x1002, 0x4966, CHIP_R250, "ATI Radeon If R250 9000"}, \
 	{0x1002, 0x4967, CHIP_R250, "ATI Radeon Ig R250 9000"}, \
+	{0x1002, 0x4A49, CHIP_R420, "ATI Radeon JI R420 X800PRO"}, \
+	{0x1002, 0x4A4B, CHIP_R420, "ATI Radeon JK R420 X800 XT"}, \
 	{0x1002, 0x4C57, CHIP_RV200|CHIP_IS_MOBILITY, "ATI Radeon LW RV200 Mobility 7500 M7"}, \
 	{0x1002, 0x4C58, CHIP_RV200|CHIP_IS_MOBILITY, "ATI Radeon LX RV200 Mobility FireGL 7800 M7"}, \
 	{0x1002, 0x4C59, CHIP_RV100|CHIP_IS_MOBILITY, "ATI Radeon LY RV100 Mobility M6"}, \
@@ -37,7 +39,17 @@
 	{0x1002, 0x4C65, CHIP_R250|CHIP_IS_MOBILITY, "ATI Radeon Le R250 Mobility 9000 M9"}, \
 	{0x1002, 0x4C66, CHIP_R250|CHIP_IS_MOBILITY, "ATI Radeon Lf R250 Mobility 9000 M9"}, \
 	{0x1002, 0x4C67, CHIP_R250|CHIP_IS_MOBILITY, "ATI Radeon Lg R250 Mobility 9000 M9"}, \
+	{0x1002, 0x4E44, CHIP_R300, "ATI Radeon ND R300 9700 Pro"}, \
+	{0x1002, 0x4E45, CHIP_R300, "ATI Radeon NE R300 9500 Pro"}, \
+	{0x1002, 0x4E46, CHIP_RV350, "ATI Radeon NF RV350 9600"}, \
+	{0x1002, 0x4E47, CHIP_R300, "ATI Radeon NG R300 FireGL X1"}, \
+	{0x1002, 0x4E48, CHIP_R350, "ATI Radeon NH R350 9800 Pro"}, \
+	{0x1002, 0x4E49, CHIP_R350, "ATI Radeon NI R350 9800"}, \
+	{0x1002, 0x4E4A, CHIP_RV350, "ATI Radeon NJ RV350 9800 XT"}, \
+	{0x1002, 0x4E4B, CHIP_R350, "ATI Radeon NK R350 FireGL X2"}, \
 	{0x1002, 0x4E50, CHIP_RV350|CHIP_IS_MOBILITY, "ATI Radeon RV300 Mobility 9600 M10"}, \
+	{0x1002, 0x4E51, CHIP_RV350|CHIP_IS_MOBILITY, "ATI Radeon RV350 Mobility 9600 M10 NQ"}, \
+	{0x1002, 0x4E54, CHIP_RV350|CHIP_IS_MOBILITY, "ATI Radeon FireGL T2 128"}, \
 	{0x1002, 0x5144, CHIP_R100|CHIP_SINGLE_CRTC, "ATI Radeon QD R100"}, \
 	{0x1002, 0x5145, CHIP_R100|CHIP_SINGLE_CRTC, "ATI Radeon QE R100"}, \
 	{0x1002, 0x5146, CHIP_R100|CHIP_SINGLE_CRTC, "ATI Radeon QF R100"}, \
@@ -59,6 +71,7 @@
 	{0x1002, 0x516A, CHIP_R200, "ATI Radeon Qj R200"}, \
 	{0x1002, 0x516B, CHIP_R200, "ATI Radeon Qk R200"}, \
 	{0x1002, 0x516C, CHIP_R200, "ATI Radeon Ql R200"}, \
+	{0x1002, 0x5460, CHIP_RV350, "ATI Radeon X300"}, \
 	{0x1002, 0x5834, CHIP_RS300|CHIP_IS_IGP, "ATI Radeon RS300 IGP"}, \
 	{0x1002, 0x5835, CHIP_RS300|CHIP_IS_IGP|CHIP_IS_MOBILITY, "ATI Radeon RS300 Mobility IGP"}, \
 	{0x1002, 0x5836, CHIP_RS300|CHIP_IS_IGP, "ATI Radeon RS300 IGP"}, \

==== //depot/projects/netsmp/src/sys/dev/drm/r128_cce.c#2 (text+ko) ====

@@ -27,7 +27,7 @@
  * Authors:
  *    Gareth Hughes <gareth@valinux.com>
  *
- * $FreeBSD: src/sys/dev/drm/r128_cce.c,v 1.12 2005/04/16 03:44:44 anholt Exp $
+ * $FreeBSD: src/sys/dev/drm/r128_cce.c,v 1.13 2005/07/20 21:10:57 anholt Exp $
  */
 
 #include "dev/drm/drmP.h"
@@ -559,7 +559,7 @@
 	if (dev_priv->is_pci) {
 #endif
 		if (!drm_ati_pcigart_init(dev, &dev_priv->phys_pci_gart,
-					  &dev_priv->bus_pci_gart)) {
+					  &dev_priv->bus_pci_gart, 0)) {
 			DRM_ERROR("failed to init PCI GART!\n");
 			dev->dev_private = (void *)dev_priv;
 			r128_do_cleanup_cce(dev);

==== //depot/projects/netsmp/src/sys/dev/drm/radeon_cp.c#2 (text+ko) ====

@@ -27,13 +27,14 @@
  *    Kevin E. Martin <martin@valinux.com>
  *    Gareth Hughes <gareth@valinux.com>
  *
- * $FreeBSD: src/sys/dev/drm/radeon_cp.c,v 1.15 2005/06/28 21:38:08 anholt Exp $

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

From owner-p4-projects@FreeBSD.ORG  Sat Jul 23 00:07:20 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 60DE016A421; Sat, 23 Jul 2005 00:07:20 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 3BAEB16A41F
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:07:20 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 0CBF143D49
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:07:20 +0000 (GMT)
	(envelope-from soc-anders@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6N07J1o050768
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:07:19 GMT
	(envelope-from soc-anders@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6N07JEe050765
	for perforce@freebsd.org; Sat, 23 Jul 2005 00:07:19 GMT
	(envelope-from soc-anders@freebsd.org)
Date: Sat, 23 Jul 2005 00:07:19 GMT
Message-Id: <200507230007.j6N07JEe050765@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-anders@freebsd.org using -f
From: soc-anders <soc-anders@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80821 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 23 Jul 2005 00:07:21 -0000

http://perforce.freebsd.org/chv.cgi?CH=80821

Change 80821 by soc-anders@soc-anders_gimli on 2005/07/23 00:06:36

	IPsec6 stats are now available

Affected files ...

.. //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/ipsec.c#3 edit

Differences ...

==== //depot/projects/soc2005/ifcleanup/src/src/usr.bin/netstat/ipsec.c#3 (text+ko) ====

@@ -238,18 +238,18 @@
 ipsec_stats(u_long off __unused, const char *name, int af1 __unused)
 {
 	size_t len;
+	char *mib;
+	printf ("%s:\n", name);
 
-	printf ("%s:\n", name);
+	if (strcmp(name, "ipsec") == 0)
+		mib = "net.inet.ipsec.stats";
+	else
+		mib = "net.inet6.ipsec6.stats";
 
-	if (strcmp(name, "ipsec") == 0) {
-		len = sizeof(ipsecstat);
-		if (sysctlbyname("net.inet.ipsec.stats", &ipsecstat, &len,
-				 NULL, 0) < 0) {
-			warn("sysctl: net.inet.ipsec.stats");
-			return;
-		}
-	} else {
-		/* IFCLEANUP: Not yet available */	   
+       	len = sizeof(ipsecstat);
+	if (sysctlbyname(mib, &ipsecstat, &len,
+			 NULL, 0) < 0) {
+		warn("sysctl: net.inet.ipsec.stats");
 		return;
 	}
 	print_ipsecstats();

From owner-p4-projects@FreeBSD.ORG  Sat Jul 23 00:13:29 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id B65BC16A421; Sat, 23 Jul 2005 00:13:28 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 7497E16A41F
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:13:28 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 4408343D45
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:13:28 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6N0DS6I051047
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:13:28 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6N0DSms051032
	for perforce@freebsd.org; Sat, 23 Jul 2005 00:13:28 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Sat, 23 Jul 2005 00:13:28 GMT
Message-Id: <200507230013.j6N0DSms051032@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson <rwatson@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80822 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 23 Jul 2005 00:13:29 -0000

http://perforce.freebsd.org/chv.cgi?CH=80822

Change 80822 by rwatson@rwatson_zoo on 2005/07/23 00:13:17

	Remove comment that turned out not to be true.

Affected files ...

.. //depot/projects/netsmp/src/sys/netinet6/in6_var.h#4 edit

Differences ...

==== //depot/projects/netsmp/src/sys/netinet6/in6_var.h#4 (text+ko) ====

@@ -535,8 +535,6 @@
  * Macros for looking up the in6_multi record for a given IP6 multicast
  * address on a given interface. If no matching record is found, "in6m"
  * returns NLL.
- *
- * Caller must hold IF_ADDR_LOCK(ifp).
  */
 
 #define IN6_LOOKUP_MULTI(addr, ifp, in6m)			\

From owner-p4-projects@FreeBSD.ORG  Sat Jul 23 00:15:32 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 984FC16A421; Sat, 23 Jul 2005 00:15:31 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 7299316A41F
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:15:31 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 3EFCC43D48
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:15:31 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6N0FVco051219
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:15:31 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6N0FULq051216
	for perforce@freebsd.org; Sat, 23 Jul 2005 00:15:30 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Sat, 23 Jul 2005 00:15:30 GMT
Message-Id: <200507230015.j6N0FULq051216@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson <rwatson@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80823 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 23 Jul 2005 00:15:32 -0000

http://perforce.freebsd.org/chv.cgi?CH=80823

Change 80823 by rwatson@rwatson_zoo on 2005/07/23 00:14:42

	Un-comment bug now fixed.

Affected files ...

.. //depot/projects/netsmp/src/sys/netinet/in.c#3 edit

Differences ...

==== //depot/projects/netsmp/src/sys/netinet/in.c#3 (text+ko) ====

@@ -985,12 +985,6 @@
 		return ifma->ifma_protospec;
 	}
 
-	/* XXX - if_addmulti uses M_WAITOK.  Can this really be called
-	   at interrupt time?  If so, need to fix if_addmulti. XXX */
-	/*
-	 * XXXRW: This comment is right, and yes, we should use M_NOWAIT
-	 * here due to spl's and now mutexes.
-	 */
 	inm = (struct in_multi *)malloc(sizeof(*inm), M_IPMADDR,
 	    M_NOWAIT | M_ZERO);
 	if (inm == NULL) {

From owner-p4-projects@FreeBSD.ORG  Sat Jul 23 00:18:36 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id C431116A421; Sat, 23 Jul 2005 00:18:35 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 9DF2616A41F
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:18:35 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 6AB1B43D45
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:18:35 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6N0IZ9T051332
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:18:35 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6N0IZ7D051329
	for perforce@freebsd.org; Sat, 23 Jul 2005 00:18:35 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Sat, 23 Jul 2005 00:18:35 GMT
Message-Id: <200507230018.j6N0IZ7D051329@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson <rwatson@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80824 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 23 Jul 2005 00:18:36 -0000

http://perforce.freebsd.org/chv.cgi?CH=80824

Change 80824 by rwatson@rwatson_zoo on 2005/07/23 00:17:48

	De-SPL IPv4 multicast code.

Affected files ...

.. //depot/projects/netsmp/src/sys/netinet/in.c#4 edit

Differences ...

==== //depot/projects/netsmp/src/sys/netinet/in.c#4 (text+ko) ====

@@ -956,7 +956,6 @@
 	int error;
 	struct sockaddr_in sin;
 	struct ifmultiaddr *ifma;
-	int s = splnet();
 
 	IN_MULTI_LOCK();
 	/*
@@ -971,7 +970,6 @@
 	error = if_addmulti(ifp, (struct sockaddr *)&sin, &ifma);
 	if (error) {
 		IN_MULTI_UNLOCK();
-		splx(s);
 		return 0;
 	}
 
@@ -981,7 +979,6 @@
 	 */
 	if (ifma->ifma_protospec != NULL) {
 		IN_MULTI_UNLOCK();
-		splx(s);
 		return ifma->ifma_protospec;
 	}
 
@@ -989,7 +986,6 @@
 	    M_NOWAIT | M_ZERO);
 	if (inm == NULL) {
 		IN_MULTI_UNLOCK();
-		splx(s);
 		return (NULL);
 	}
 
@@ -1004,7 +1000,6 @@
 	 */
 	igmp_joingroup(inm);
 	IN_MULTI_UNLOCK();
-	splx(s);
 	return (inm);
 }
 
@@ -1017,7 +1012,6 @@
 {
 	struct ifmultiaddr *ifma;
 	struct in_multi my_inm;
-	int s = splnet();
 
 	IN_MULTI_LOCK();
 	ifma = inm->inm_ifma;
@@ -1039,5 +1033,4 @@
 	if (my_inm.inm_ifp != NULL)
 		igmp_leavegroup(&my_inm);
 	IN_MULTI_UNLOCK();
-	splx(s);
 }

From owner-p4-projects@FreeBSD.ORG  Sat Jul 23 00:33:38 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 1D7FB16A421; Sat, 23 Jul 2005 00:33:38 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 E13F116A41F
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:33:37 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id AEFCC43D45
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:33:37 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6N0Xbav051933
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:33:37 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6N0Xbci051930
	for perforce@freebsd.org; Sat, 23 Jul 2005 00:33:37 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Sat, 23 Jul 2005 00:33:37 GMT
Message-Id: <200507230033.j6N0Xbci051930@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson <rwatson@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80828 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 23 Jul 2005 00:33:39 -0000

http://perforce.freebsd.org/chv.cgi?CH=80828

Change 80828 by rwatson@rwatson_zoo on 2005/07/23 00:32:37

	De-spl IGMP now that IPv4 multicast address lists are locked
	down.

Affected files ...

.. //depot/projects/netsmp/src/sys/netinet/igmp.c#3 edit

Differences ...

==== //depot/projects/netsmp/src/sys/netinet/igmp.c#3 (text+ko) ====

@@ -368,7 +368,6 @@
 void
 igmp_joingroup(struct in_multi *inm)
 {
-	int s = splnet();
 
 	IN_MULTI_LOCK_ASSERT();
 
@@ -389,7 +388,6 @@
 		}
 		/* XXX handling of failure case? */
 	}
-	splx(s);
 }
 
 void
@@ -410,7 +408,6 @@
 {
 	register struct in_multi *inm;
 	struct in_multistep step;
-	int s;
 
 	/*
 	 * Quick check to see if any work needs to be done, in order
@@ -420,7 +417,6 @@
 	if (!igmp_timers_are_running)
 		return;
 
-	s = splnet();
 	IN_MULTI_LOCK();
 	igmp_timers_are_running = 0;
 	IN_FIRST_MULTI(step, inm);
@@ -436,13 +432,11 @@
 		IN_NEXT_MULTI(step, inm);
 	}
 	IN_MULTI_UNLOCK();
-	splx(s);
 }
 
 void
 igmp_slowtimo(void)
 {
-	int s = splnet();
 	struct router_info *rti;
 
 	IGMP_PRINTF("[igmp.c,_slowtimo] -- > entering \n");
@@ -456,7 +450,6 @@
 	}
 	mtx_unlock(&igmp_mtx);
 	IGMP_PRINTF("[igmp.c,_slowtimo] -- > exiting \n");
-	splx(s);
 }
 
 static void

From owner-p4-projects@FreeBSD.ORG  Sat Jul 23 00:33:39 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id A1B7316A45A; Sat, 23 Jul 2005 00:33:38 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 3C41516A42B
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:33:38 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 06C7C43D45
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:33:38 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6N0XbW6051939
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:33:37 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6N0XbZb051936
	for perforce@freebsd.org; Sat, 23 Jul 2005 00:33:37 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Sat, 23 Jul 2005 00:33:37 GMT
Message-Id: <200507230033.j6N0XbZb051936@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson <rwatson@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80829 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 23 Jul 2005 00:33:39 -0000

http://perforce.freebsd.org/chv.cgi?CH=80829

Change 80829 by rwatson@rwatson_zoo on 2005/07/23 00:32:37

	Document multicast lock order.

Affected files ...

.. //depot/projects/netsmp/src/sys/kern/subr_witness.c#2 edit

Differences ...

==== //depot/projects/netsmp/src/sys/kern/subr_witness.c#2 (text+ko) ====

@@ -286,6 +286,12 @@
 	{ "ifaddr", &lock_class_mtx_sleep },
 	{ NULL, NULL },
 	/*
+	 * Multicast - protocol locks before interface locks.
+	 */
+	{ "in_multi_mtx", &lock_class_mtx_sleep },
+	{ "if_addr_mtx", &lock_class_mtx_sleep },
+	{ NULL, NULL },
+	/*
 	 * UNIX Domain Sockets
 	 */
 	{ "unp", &lock_class_mtx_sleep },

From owner-p4-projects@FreeBSD.ORG  Sat Jul 23 00:37:44 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id D4FF616A421; Sat, 23 Jul 2005 00:37:43 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 9906716A41F
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:37:43 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 681F743D49
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:37:43 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6N0bhtE052131
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:37:43 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6N0bhDc052128
	for perforce@freebsd.org; Sat, 23 Jul 2005 00:37:43 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Sat, 23 Jul 2005 00:37:43 GMT
Message-Id: <200507230037.j6N0bhDc052128@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson <rwatson@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80830 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 23 Jul 2005 00:37:44 -0000

http://perforce.freebsd.org/chv.cgi?CH=80830

Change 80830 by rwatson@rwatson_zoo on 2005/07/23 00:36:47

	Add IGMP mutex to the hard-coded lock order, after the IPv4
	address list mutex, since that code calls into IGMP.

Affected files ...

.. //depot/projects/netsmp/src/sys/kern/subr_witness.c#3 edit

Differences ...

==== //depot/projects/netsmp/src/sys/kern/subr_witness.c#3 (text+ko) ====

@@ -289,6 +289,7 @@
 	 * Multicast - protocol locks before interface locks.
 	 */
 	{ "in_multi_mtx", &lock_class_mtx_sleep },
+	{ "igmp_mtx", &lock_class_mtx_sleep },
 	{ "if_addr_mtx", &lock_class_mtx_sleep },
 	{ NULL, NULL },
 	/*

From owner-p4-projects@FreeBSD.ORG  Sat Jul 23 00:37:45 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 545A816A459; Sat, 23 Jul 2005 00:37:44 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 F261516A42D
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:37:43 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id B626143D49
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:37:43 +0000 (GMT)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6N0bhJU052137
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 00:37:43 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6N0bhBx052134
	for perforce@freebsd.org; Sat, 23 Jul 2005 00:37:43 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Sat, 23 Jul 2005 00:37:43 GMT
Message-Id: <200507230037.j6N0bhBx052134@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson <rwatson@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80831 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 23 Jul 2005 00:37:45 -0000

http://perforce.freebsd.org/chv.cgi?CH=80831

Change 80831 by rwatson@rwatson_zoo on 2005/07/23 00:37:13

	Integrate.

Affected files ...

.. //depot/projects/netsmp/src/sys/net80211/ieee80211_node.c#3 integrate

Differences ...

==== //depot/projects/netsmp/src/sys/net80211/ieee80211_node.c#3 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_node.c,v 1.56 2005/07/22 23:25:46 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_node.c,v 1.57 2005/07/23 00:16:46 sam Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h> 
@@ -1398,7 +1398,8 @@
 		 * will be reclaimed when the last reference to them
 		 * goes away (when frame xmits complete).
 		 */
-		if ((ni->ni_flags & IEEE80211_NODE_AREF) == 0)
+		if (ic->ic_opmode == IEEE80211_M_HOSTAP &&
+		    (ni->ni_flags & IEEE80211_NODE_AREF) == 0)
 			continue;
 		/*
 		 * Free fragment if not needed anymore

From owner-p4-projects@FreeBSD.ORG  Sat Jul 23 12:11:14 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id AD51A16A420; Sat, 23 Jul 2005 12:11:13 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 6132516A421
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 12:11:13 +0000 (GMT)
	(envelope-from soc-victor@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id A0E5943D49
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 12:11:12 +0000 (GMT)
	(envelope-from soc-victor@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6NCBCQQ005531
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 12:11:12 GMT
	(envelope-from soc-victor@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6NCBCCd005527
	for perforce@freebsd.org; Sat, 23 Jul 2005 12:11:12 GMT
	(envelope-from soc-victor@freebsd.org)
Date: Sat, 23 Jul 2005 12:11:12 GMT
Message-Id: <200507231211.j6NCBCCd005527@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-victor@freebsd.org using -f
From: Victor Cruceru <soc-victor@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80858 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 23 Jul 2005 12:11:15 -0000

http://perforce.freebsd.org/chv.cgi?CH=80858

Change 80858 by soc-victor@soc-victor_82.76.158.176 on 2005/07/23 12:11:12

	Various fixes (mainly related to memset, strcpy & friends) + some coding style improvements.

Affected files ...

.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_scalars.c#8 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.h#13 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_storage_tbl.c#7 edit

Differences ...

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_scalars.c#8 (text+ko) ====

@@ -447,7 +447,7 @@
 			return (NULL); /*error*/		
                 }
 		
-		(void)strncpy(hrState_g.k_boot_line, buf, 127);
+		(void)strncpy(hrState_g.k_boot_line, buf, sizeof(hrState_g.k_boot_line) - 1);
 		HR_DPRINTF((stderr, "Got kernel boot file: %s\n", hrState_g.k_boot_line));
 		free(buf);
 	}

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.h#13 (text+ko) ====

@@ -253,7 +253,7 @@
 	FILE		*utmp_fp;		/*file pointer to keep an open instance of utmp*/
 	kvm_t		*kd;			/*kernel descriptor*/
 	uint32_t	kernel_boot;		/*boot timestamp in centi-seconds*/
-	char 	 	k_boot_line[128];	/*kernel boot line*/
+	char 	 	k_boot_line[128 + 1];	/*kernel boot line*/
 	int 		max_proc;		/*maximum number of processes */
 	uint32_t	phys_mem_size;		/*physical memory size in Kb*/
 	

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_storage_tbl.c#7 (text+ko) ====

@@ -57,7 +57,7 @@
 		return (NULL);
 	}
 	memset(entry, 0, sizeof(*entry));
-	strcpy(entry->descr, name);
+	strncpy(entry->descr, name, sizeof(entry->descr) - 1);
 
 	STAILQ_FOREACH(map, &hrState_g.storage_name_map, link)
 		if (strcmp(map->a_name, entry->descr) == 0) {
@@ -74,17 +74,17 @@
 		}	
 
 		if ((map = malloc(sizeof(*map))) == NULL) {
-			syslog(LOG_ERR, "%s: %m", __func__ );
+			syslog(LOG_ERR, "hrStorageTable: %s: %m", __func__ );
 			free(entry);
 			return (NULL);
 		}
 		map->hrIndex = hrState_g.next_hrStorage_index ++;
-		strncpy(map->a_name, entry->descr, 255);
+		strncpy(map->a_name, entry->descr, sizeof(map->a_name) - 1);
 		map->entry_p = entry;
 		STAILQ_INSERT_TAIL(&hrState_g.storage_name_map, map, link);
-		HR_DPRINTF((stderr, "%s  added into hrStorageMap at index=%d\n ",name, map->hrIndex));
+		HR_DPRINTF((stderr, "%s  added into hrStorageMap at index=%d\n ", name, map->hrIndex));
 	} else {
-		HR_DPRINTF((stderr, "%s  exists in hrStorageMap index=%d\n ",name, map->hrIndex));
+		HR_DPRINTF((stderr, "%s  exists in hrStorageMap index=%d\n ", name, map->hrIndex));
 	}
 	
 	entry->index = map->hrIndex;
@@ -118,7 +118,7 @@
 	struct hrStorageTblEntry *entry =  NULL;
 
 	TAILQ_FOREACH(entry, &hrState_g.hr_storage_tbl, link)
-		if (strncmp(entry->descr, name, 255) == 0)
+		if (strncmp(entry->descr, name, sizeof(entry->descr) - 1) == 0)
 			return (entry);
 	return (NULL);
 }
@@ -149,8 +149,8 @@
 	int len = sizeof(hrState_g.mem_stats);
 	int page_size_bytes;
 	struct hrStorageTblEntry *entry = NULL;
-	if( sysctl(mib, 2, &hrState_g.mem_stats, &len, NULL, 0) < 0 ) {
-		syslog(LOG_ERR, "%s: sysctl( { CTL_VM, VM_METER } ) failed: %m ", __func__ );	
+	if ( sysctl(mib, 2, &hrState_g.mem_stats, &len, NULL, 0) < 0 ) {
+		syslog(LOG_ERR, "hrStoragetable: %s: sysctl( { CTL_VM, VM_METER } ) failed: %m ", __func__ );	
 		assert(0);
 		return;
 	}
@@ -161,11 +161,11 @@
 	
 	/*Real Memory Metrics*/
 	entry = hrStorageTblEntry_find_by_name("Real Memory Metrics");
-	if( entry == NULL ) {
+	if ( entry == NULL ) {
 		entry =  hrStorageTblEntry_create("Real Memory Metrics");
 	}
 	assert(entry != NULL);
-	if( entry == NULL) return; /*I'm out of luck now, maybe next time*/
+	if ( entry == NULL) return; /*I'm out of luck now, maybe next time*/
 	
 	entry->flags |= HR_STORAGE_FOUND;
 	entry->type = (struct asn_oid)OIDX_hrStorageRam;
@@ -178,11 +178,11 @@
 
 	/*Shared Real Memory Metrics*/
 	entry = hrStorageTblEntry_find_by_name("Shared Real Memory Metrics");
-	if( entry == NULL ) {
+	if ( entry == NULL ) {
 		entry =  hrStorageTblEntry_create("Shared Real Memory Metrics");
 	}
 	assert(entry != NULL);
-	if( entry == NULL) return; /*I'm out of luck now, maybe next time*/
+	if ( entry == NULL) return; /*I'm out of luck now, maybe next time*/
 	
 	entry->flags |= HR_STORAGE_FOUND;
 	entry->type = (struct asn_oid)OIDX_hrStorageRam;
@@ -202,16 +202,16 @@
 	char swap_w_prefix[255+1];
 	
 	if ( sysctlbyname("vm.nswapdev", &nswapdev,&len, NULL,0 ) < 0 ) {
-		syslog(LOG_ERR,"sysctlbyname(\"vm.nswapdev\") failed. %m \n");
+		syslog(LOG_ERR, "hrStorageTable: sysctlbyname(\"vm.nswapdev\") failed. %m \n");
 		assert(0);
 		return;
 	}
-	if( nswapdev <= 0 ) {
+	if ( nswapdev <= 0 ) {
 		HR_DPRINTF((stderr, "vm.nswapdev is %d\n ",nswapdev));
 		return;		
 	}
 	 
-	if( nswapdev + 1 != (int)hrState_g.swap_devs_len  ||  hrState_g.swap_devs == NULL ) {
+	if ( nswapdev + 1 != (int)hrState_g.swap_devs_len  ||  hrState_g.swap_devs == NULL ) {
 		hrState_g.swap_devs_len = nswapdev + 1;
 		
 		hrState_g.swap_devs = 
@@ -227,19 +227,20 @@
 	
 	nswapdev = kvm_getswapinfo( hrState_g.kd, hrState_g.swap_devs,hrState_g.swap_devs_len, 0);
 	
-	if( nswapdev < 0 ) {
-		syslog(LOG_ERR,"kvm_getswapinfo failed. %m \n");	
+	if ( nswapdev < 0 ) {
+		syslog(LOG_ERR,"hrStorageTable: kvm_getswapinfo failed. %m \n");	
 		assert(0);
 		return;
 	}
 	
 
 	
-	for(len = 0; len < nswapdev; len++ ) {
+	for (len = 0; len < nswapdev; len++ ) {
 		memset(&swap_w_prefix[0], '\0', sizeof(swap_w_prefix) );
-		snprintf(swap_w_prefix,255,"Swap:/dev/%s",hrState_g.swap_devs[len].ksw_devname);
+		snprintf(swap_w_prefix, sizeof(swap_w_prefix) - 1, 
+			"Swap:/dev/%s", hrState_g.swap_devs[len].ksw_devname);
 		entry = hrStorageTblEntry_find_by_name(swap_w_prefix);
-		if(entry != NULL) {
+		if (entry != NULL) {
 			entry->flags |= HR_STORAGE_FOUND;
 			entry->type = (struct asn_oid)OIDX_hrStorageVirtualMemory;
 			entry->allocationUnits = getpagesize();
@@ -272,33 +273,33 @@
 void hrStrorage_getType_v(const struct statfs *fs_p, struct asn_oid *out_type_p) {
 	assert(fs_p != NULL);
 	assert(out_type_p != NULL);
-	if( !(fs_p->f_flags &  MNT_LOCAL) ) {
+	if ( !(fs_p->f_flags &  MNT_LOCAL) ) {
 		*out_type_p = (struct asn_oid)OIDX_hrStorageNetworkDisk;
 		return;
 	}
 	
-	if( strncmp (fs_p->f_fstypename, "procfs", MFSNAMELEN ) == 0 || 
-	    strncmp (fs_p->f_fstypename, "devfs", MFSNAMELEN ) == 0  ) {
+	if ( strncmp (fs_p->f_fstypename, "procfs", MFSNAMELEN ) == 0 || 
+	     strncmp (fs_p->f_fstypename, "devfs", MFSNAMELEN ) == 0  ) {
 		*out_type_p = (struct asn_oid)OIDX_hrStorageOther;
 		return;
 	
 	}
-	if( strncmp (fs_p->f_mntfromname, "/dev/fd", strlen("/dev/fd") ) == 0  || 
-	    strncmp (fs_p->f_mntfromname, "/dev/afd", strlen("/dev/afd") ) == 0) {
+	if ( strncmp (fs_p->f_mntfromname, "/dev/fd", strlen("/dev/fd") ) == 0  || 
+	     strncmp (fs_p->f_mntfromname, "/dev/afd", strlen("/dev/afd") ) == 0) {
 		*out_type_p = (struct asn_oid)OIDX_hrStorageFloppyDisk; 
 		return;
 	}
 
-	if( strncmp (fs_p->f_mntfromname, "/dev/acd", strlen("/dev/acd") ) == 0  || 
-	    strncmp (fs_p->f_mntfromname, "/dev/cd", strlen("/dev/cd") ) == 0) {
+	if ( strncmp (fs_p->f_mntfromname, "/dev/acd", strlen("/dev/acd") ) == 0  || 
+	     strncmp (fs_p->f_mntfromname, "/dev/cd", strlen("/dev/cd") ) == 0) {
 		*out_type_p = (struct asn_oid)OIDX_hrStorageCompactDisc; 
 		return;
 	}
 
 		
-	if( strncmp (fs_p->f_mntfromname, "/dev/ad", strlen("/dev/ad") ) == 0 ||
-	    strncmp (fs_p->f_mntfromname, "/dev/ar", strlen("/dev/ar") ) == 0 ||
-	    strncmp (fs_p->f_mntfromname, "/dev/da", strlen("/dev/da") ) == 0 ) {
+	if ( strncmp (fs_p->f_mntfromname, "/dev/ad", strlen("/dev/ad") ) == 0 ||
+	     strncmp (fs_p->f_mntfromname, "/dev/ar", strlen("/dev/ar") ) == 0 ||
+	     strncmp (fs_p->f_mntfromname, "/dev/da", strlen("/dev/da") ) == 0 ) {
 		*out_type_p = (struct asn_oid)OIDX_hrStorageFixedDisk; 
 		return;		
 	}
@@ -321,26 +322,26 @@
 	char fs_string[255+1];
 	uint64_t used_blocks_count = 0;
 	
-	if( (mounted_fs_count = getfsstat(NULL, 0, MNT_NOWAIT)) < 0 ) {
-		syslog(LOG_ERR, "getfsstat(NULL, 0, MNT_NOWAIT) failed: %m\n");
+	if ( (mounted_fs_count = getfsstat(NULL, 0, MNT_NOWAIT)) < 0 ) {
+		syslog(LOG_ERR, "hrStorageTable: getfsstat(NULL, 0, MNT_NOWAIT) failed: %m\n");
 		return; /*out of luck this time*/
 	}
 	
-	if( mounted_fs_count != (int)hrState_g.fs_buf_count || hrState_g.fs_buf == NULL ) {
+	if ( mounted_fs_count != (int)hrState_g.fs_buf_count || hrState_g.fs_buf == NULL ) {
 		hrState_g.fs_buf_count = mounted_fs_count;
 		hrState_g.fs_buf = (struct statfs *)reallocf(hrState_g.fs_buf, 
 			hrState_g.fs_buf_count * sizeof(struct statfs));
-		if(hrState_g.fs_buf == NULL) {
+		if (hrState_g.fs_buf == NULL) {
 			hrState_g.fs_buf_count = 0;
 			assert(0);
 			return;
 		}	
 	}
 	
-	if( (mounted_fs_count = getfsstat(hrState_g.fs_buf, 
+	if ( (mounted_fs_count = getfsstat(hrState_g.fs_buf, 
 		hrState_g.fs_buf_count * sizeof(struct statfs), 
 		MNT_NOWAIT)) < 0 ) {
-		syslog(LOG_ERR, "getfsstat(, , MNT_NOWAIT) failed: %m \n");
+		syslog(LOG_ERR, "hrStorageTable: getfsstat(, , MNT_NOWAIT) failed: %m \n");
 		return; /*out of luck this time*/
 	}
 	
@@ -348,16 +349,16 @@
 	
 	FS_tbl_pre_refresh_v();	
 	
-	for(i = 0; i < mounted_fs_count; i++ ) {
+	for (i = 0; i < mounted_fs_count; i++ ) {
 		
 		
 		memset(&fs_string[0], '\0', sizeof(fs_string) );
-		snprintf(fs_string, 255, "%s, type: %s, dev: %s", hrState_g.fs_buf[i].f_mntonname, 
+		snprintf(fs_string, sizeof(fs_string) - 1, "%s, type: %s, dev: %s", hrState_g.fs_buf[i].f_mntonname, 
 			hrState_g.fs_buf[i].f_fstypename,
 			hrState_g.fs_buf[i].f_mntfromname);
 		
 		entry = hrStorageTblEntry_find_by_name(fs_string);
-		if(entry != NULL) {
+		if (entry != NULL) {
 			entry->flags |= HR_STORAGE_FOUND;
 			
 			hrStrorage_getType_v( &hrState_g.fs_buf[i], &entry->type);
@@ -449,7 +450,7 @@
      	n1 = STAILQ_FIRST(&hrState_g.storage_name_map);
      	while (n1 != NULL) {
              n2 = STAILQ_NEXT(n1, link);
-	     if(n1->entry_p != NULL){
+	     if (n1->entry_p != NULL) {
 	     	TAILQ_REMOVE(&hrState_g.hr_storage_tbl, n1->entry_p, link);
              	free( n1->entry_p );
 		n1->entry_p = NULL;

From owner-p4-projects@FreeBSD.ORG  Sat Jul 23 15:48:37 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 81D9116A421; Sat, 23 Jul 2005 15:48:37 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 5D59416A41F
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 15:48:37 +0000 (GMT)
	(envelope-from soc-tyler@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 2D4D143D48
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 15:48:37 +0000 (GMT)
	(envelope-from soc-tyler@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6NFmbGn021034
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 15:48:37 GMT
	(envelope-from soc-tyler@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6NFmaVL021031
	for perforce@freebsd.org; Sat, 23 Jul 2005 15:48:36 GMT
	(envelope-from soc-tyler@freebsd.org)
Date: Sat, 23 Jul 2005 15:48:36 GMT
Message-Id: <200507231548.j6NFmaVL021031@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-tyler@freebsd.org using -f
From: soc-tyler <soc-tyler@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80865 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 23 Jul 2005 15:48:38 -0000

http://perforce.freebsd.org/chv.cgi?CH=80865

Change 80865 by soc-tyler@soc-tyler_launchd on 2005/07/23 15:47:38

	launchd(8) should also be able to *not* be PID 1

Affected files ...

.. //depot/projects/soc2005/launchd/Makefile#8 edit
.. //depot/projects/soc2005/launchd/init.c#6 edit
.. //depot/projects/soc2005/launchd/launchd.c#7 edit

Differences ...

==== //depot/projects/soc2005/launchd/Makefile#8 (text+ko) ====

@@ -2,7 +2,7 @@
 # $FreeBSD$
 
 PROG=	launchd
-SRCS=	launchd.c liblaunch.c init.c
+SRCS=	launchd.c liblaunch.c ##init.c
 #launchdebugd.c launchproxy.c
 MAN=	launchd.conf.5 launchd.plist.5 init.8 launchd.8 \
 	launchd_debug.8 launchproxy.8 rc.8 service.8 
@@ -11,9 +11,13 @@
 INSTALLFLAGS=-b -B.bak
 NO_SHARED?=	YES
 
+
 CFLAGS+= -g -Wall -W -Wshadow -Wpadded -Iincludes -D_LAUNCHD_
-## init.c related CFLAGS
+# init.c related CFLAGS (from src/sbin/init/Makefile)
 CFLAGS+= -DDEBUGSHELL -DSECURE -DLOGIN_CAP -DCOMPAT_SYSV_INIT
+# Do not let launchd(8) have init(8) functionality (or I haven't implemented it yet.. ;))
+CFLAGS+= -D_NO_INIT_
+
 
 # -lcrypt needed by original FreeBSD init(8) code
 DPADD=	${LIBUTIL} ${LIBCRYPT}

==== //depot/projects/soc2005/launchd/init.c#6 (text+ko) ====


==== //depot/projects/soc2005/launchd/launchd.c#7 (text+ko) ====


From owner-p4-projects@FreeBSD.ORG  Sat Jul 23 18:44:17 2005
Return-Path: <owner-p4-projects@FreeBSD.ORG>
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 6725F16A421; Sat, 23 Jul 2005 18:44:17 +0000 (GMT)
X-Original-To: perforce@freebsd.org
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 298F616A41F
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 18:44:17 +0000 (GMT)
	(envelope-from soc-victor@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
	by mx1.FreeBSD.org (Postfix) with ESMTP id E3EE543D45
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 18:44:16 +0000 (GMT)
	(envelope-from soc-victor@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6NIiGhX035008
	for <perforce@freebsd.org>; Sat, 23 Jul 2005 18:44:16 GMT
	(envelope-from soc-victor@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6NIiGaC035005
	for perforce@freebsd.org; Sat, 23 Jul 2005 18:44:16 GMT
	(envelope-from soc-victor@freebsd.org)
Date: Sat, 23 Jul 2005 18:44:16 GMT
Message-Id: <200507231844.j6NIiGaC035005@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	soc-victor@freebsd.org using -f
From: Victor Cruceru <soc-victor@FreeBSD.org>
To: Perforce Change Reviews <perforce@freebsd.org>
Cc: 
Subject: PERFORCE change 80875 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes <p4-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/p4-projects>
List-Post: <mailto:p4-projects@freebsd.org>
List-Help: <mailto:p4-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>,
	<mailto:p4-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 23 Jul 2005 18:44:18 -0000

http://perforce.freebsd.org/chv.cgi?CH=80875

Change 80875 by soc-victor@soc-victor_82.76.158.176 on 2005/07/23 18:44:05

	Made the hrDeviceTable's refresh to work. Note: need to upgrade
	 libdevinfo with the latest version in order to have the chance 
	to re-query the system for changes.

Affected files ...

.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile#11 edit
.. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_device_tbl.c#2 edit

Differences ...

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile#11 (text+ko) ====

@@ -3,6 +3,28 @@
 # All rights reserved.
 # Author: Victor Cruceru <soc-victor@freebsd.org>
 #
+# Redistribution of this software and documentation and use in source and
+# binary forms, with or without modification, are permitted provided that
+# the following conditions are met:
+#
+# 1. Redistributions of source code or documentation must retain the above
+#    copyright notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
 
 CONTRIB=${.CURDIR}/../../../../contrib/bsnmp
 

==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_device_tbl.c#2 (text+ko) ====

@@ -249,21 +249,6 @@
 }
 
 void init_hrDevice_tbl_v(void) {
-	if ( hrState_g.dev_root != NULL ) {
-		syslog(LOG_ERR,"hrDeviceTable: attempt to re-initialization of devinfo.");
-		return;
-	}
-	if (devinfo_init() != 0) {
-		syslog(LOG_ERR,"hrDeviceTable: devinfo_init failed: %m");
-		return;
-	
-	}
-	hrState_g.dev_root = devinfo_handle_to_device(DEVINFO_ROOT_DEVICE);
-	
-	if (hrState_g.dev_root == NULL) {
-		syslog(LOG_ERR,"hrDeviceTable: can't get the root device: %m");
-		return;
-	}
 	refresh_hrDevice_tbl_v();
 		
 }
@@ -303,6 +288,23 @@
 		HR_DPRINTF((stderr, "%s: no refresh needed\n ",__func__));
 		return;
 	}
+	if ( hrState_g.dev_root != NULL ) {
+		syslog(LOG_ERR,"hrDeviceTable: attempt to re-initialization of devinfo.");
+		return;
+	}
+	if (devinfo_init() != 0) {
+		syslog(LOG_ERR,"hrDeviceTable: devinfo_init failed: %m");
+		return;
+	
+	}
+	hrState_g.dev_root = devinfo_handle_to_device(DEVINFO_ROOT_DEVICE);
+	
+	if (hrState_g.dev_root == NULL) {
+		syslog(LOG_ERR,"hrDeviceTable: can't get the root device: %m. Most likely you need to upgrade libdevinfo!");
+		return;
+	}
+
+		
 	/*mark each entry as missing*/
 	TAILQ_FOREACH(entry, &hrState_g.hr_device_tbl, link)
 		entry->flags &= ~HR_DEVICE_FOUND;
@@ -324,6 +326,11 @@
 			
 	hrState_g.hrDevice_tbl_age = time(NULL);	
 	
+	
+	devinfo_free();		
+	hrState_g.dev_root =  NULL;
+
+						
 	HR_DPRINTF((stderr, "%s: refresh DONE\n ",__func__));
 
 }