PERFORCE change 125024 for review

Kip Macy kmacy at FreeBSD.org
Fri Aug 10 14:15:46 PDT 2007


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

Change 125024 by kmacy at kmacy_home:ethng on 2007/08/10 21:14:42

	IFC

Affected files ...

.. //depot/projects/ethng/src/ObsoleteFiles.inc#2 integrate
.. //depot/projects/ethng/src/contrib/opensolaris/cmd/zdb/zdb.c#2 integrate
.. //depot/projects/ethng/src/etc/rc.d/nscd#2 integrate
.. //depot/projects/ethng/src/lib/libthr/thread/thr_private.h#2 integrate
.. //depot/projects/ethng/src/sbin/fsck_ffs/main.c#2 integrate
.. //depot/projects/ethng/src/share/man/man4/ddb.4#2 integrate
.. //depot/projects/ethng/src/share/man/man9/locking.9#2 integrate
.. //depot/projects/ethng/src/share/misc/bsd-family-tree#2 integrate
.. //depot/projects/ethng/src/sys/arm/arm/cpufunc.c#2 integrate
.. //depot/projects/ethng/src/sys/arm/arm/genassym.c#2 integrate
.. //depot/projects/ethng/src/sys/arm/arm/swtch.S#2 integrate
.. //depot/projects/ethng/src/sys/boot/arm/at91/libat91/Makefile#2 integrate
.. //depot/projects/ethng/src/sys/conf/files#2 integrate
.. //depot/projects/ethng/src/sys/conf/kern.pre.mk#2 integrate
.. //depot/projects/ethng/src/sys/dev/an/if_an.c#2 integrate
.. //depot/projects/ethng/src/sys/dev/usb/if_axe.c#2 integrate
.. //depot/projects/ethng/src/sys/dev/usb/if_axereg.h#2 integrate
.. //depot/projects/ethng/src/sys/dev/wi/if_wi.c#2 integrate
.. //depot/projects/ethng/src/sys/fs/msdosfs/denode.h#2 integrate
.. //depot/projects/ethng/src/sys/fs/msdosfs/msdosfs_conv.c#2 integrate
.. //depot/projects/ethng/src/sys/fs/msdosfs/msdosfs_denode.c#2 integrate
.. //depot/projects/ethng/src/sys/fs/msdosfs/msdosfs_fat.c#2 integrate
.. //depot/projects/ethng/src/sys/fs/msdosfs/msdosfs_fileno.c#2 integrate
.. //depot/projects/ethng/src/sys/fs/msdosfs/msdosfs_iconv.c#2 integrate
.. //depot/projects/ethng/src/sys/fs/msdosfs/msdosfs_lookup.c#2 integrate
.. //depot/projects/ethng/src/sys/fs/msdosfs/msdosfs_vfsops.c#2 integrate
.. //depot/projects/ethng/src/sys/fs/msdosfs/msdosfs_vnops.c#2 integrate
.. //depot/projects/ethng/src/sys/fs/tmpfs/tmpfs.h#2 integrate
.. //depot/projects/ethng/src/sys/fs/tmpfs/tmpfs_subr.c#2 integrate
.. //depot/projects/ethng/src/sys/fs/tmpfs/tmpfs_vfsops.c#2 integrate
.. //depot/projects/ethng/src/sys/fs/tmpfs/tmpfs_vnops.c#2 integrate
.. //depot/projects/ethng/src/sys/i386/i386/machdep.c#2 integrate
.. //depot/projects/ethng/src/sys/i386/include/cpufunc.h#2 integrate
.. //depot/projects/ethng/src/sys/kern/kern_lockf.c#2 integrate
.. //depot/projects/ethng/src/sys/netinet/in_mcast.c#2 integrate
.. //depot/projects/ethng/src/sys/netinet/ip_divert.c#2 integrate
.. //depot/projects/ethng/src/sys/powerpc/include/interruptvar.h#2 delete
.. //depot/projects/ethng/src/sys/powerpc/include/intr_machdep.h#2 integrate
.. //depot/projects/ethng/src/sys/powerpc/include/trap.h#2 integrate
.. //depot/projects/ethng/src/sys/powerpc/powerpc/interrupt.c#2 integrate
.. //depot/projects/ethng/src/sys/powerpc/powerpc/intr_machdep.c#2 integrate
.. //depot/projects/ethng/src/sys/powerpc/powerpc/trap.c#2 integrate
.. //depot/projects/ethng/src/sys/vm/device_pager.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/tmpfs/h_tools.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/tmpfs/t_mount#2 integrate
.. //depot/projects/ethng/src/tools/regression/tmpfs/t_rename#2 integrate
.. //depot/projects/ethng/src/usr.sbin/bsnmpd/modules/snmp_bridge/BEGEMOT-BRIDGE-MIB.txt#2 integrate
.. //depot/projects/ethng/src/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_port.c#2 integrate
.. //depot/projects/ethng/src/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_snmp.h#2 integrate
.. //depot/projects/ethng/src/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_sys.c#2 integrate
.. //depot/projects/ethng/src/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_tree.def#2 integrate
.. //depot/projects/ethng/src/usr.sbin/bsnmpd/modules/snmp_bridge/snmp_bridge.3#2 integrate
.. //depot/projects/ethng/src/usr.sbin/freebsd-update/freebsd-update.sh#2 integrate
.. //depot/projects/ethng/src/usr.sbin/nscd/Makefile#2 integrate
.. //depot/projects/ethng/src/usr.sbin/nscd/agent.h#2 integrate
.. //depot/projects/ethng/src/usr.sbin/nscd/cachelib.h#2 integrate
.. //depot/projects/ethng/src/usr.sbin/nscd/cacheplcs.h#2 integrate
.. //depot/projects/ethng/src/usr.sbin/nscd/config.h#2 integrate
.. //depot/projects/ethng/src/usr.sbin/nscd/debug.h#2 integrate
.. //depot/projects/ethng/src/usr.sbin/nscd/log.c#2 integrate
.. //depot/projects/ethng/src/usr.sbin/nscd/log.h#2 integrate
.. //depot/projects/ethng/src/usr.sbin/nscd/mp_rs_query.c#2 integrate
.. //depot/projects/ethng/src/usr.sbin/nscd/mp_rs_query.h#2 integrate
.. //depot/projects/ethng/src/usr.sbin/nscd/mp_ws_query.c#2 integrate
.. //depot/projects/ethng/src/usr.sbin/nscd/mp_ws_query.h#2 integrate
.. //depot/projects/ethng/src/usr.sbin/nscd/nscd.8#2 integrate
.. //depot/projects/ethng/src/usr.sbin/nscd/nscd.c#2 integrate
.. //depot/projects/ethng/src/usr.sbin/nscd/nscd.conf.5#2 integrate
.. //depot/projects/ethng/src/usr.sbin/nscd/nscdcli.c#2 integrate
.. //depot/projects/ethng/src/usr.sbin/nscd/nscdcli.h#2 integrate
.. //depot/projects/ethng/src/usr.sbin/nscd/parser.h#2 integrate
.. //depot/projects/ethng/src/usr.sbin/nscd/protocol.h#2 integrate
.. //depot/projects/ethng/src/usr.sbin/nscd/query.c#2 integrate
.. //depot/projects/ethng/src/usr.sbin/nscd/query.h#2 integrate
.. //depot/projects/ethng/src/usr.sbin/nscd/singletons.h#2 integrate

Differences ...

==== //depot/projects/ethng/src/ObsoleteFiles.inc#2 (text+ko) ====

@@ -1,5 +1,5 @@
 #
-# $FreeBSD: src/ObsoleteFiles.inc,v 1.108 2007/08/02 08:04:47 bz Exp $
+# $FreeBSD: src/ObsoleteFiles.inc,v 1.109 2007/08/07 23:48:30 marcel Exp $
 #
 # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and
 # directories (OLD_DIRS) which should get removed at an update. Recently
@@ -14,6 +14,10 @@
 # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last.
 #
 
+# 20070807: removal of PowerPC specific header file.
+.if ${TARGET_ARCH} == "powerpc"
+OLD_FILES+=usr/include/machine/interruptvar.h
+.endif
 # 20070801: fast_ipsec.4 gone
 OLD_FILES+=usr/share/man/man4/fast_ipsec.4.gz
 # 20070715: netatm temporarily disconnected

==== //depot/projects/ethng/src/contrib/opensolaris/cmd/zdb/zdb.c#2 (text+ko) ====

@@ -1136,7 +1136,15 @@
 		exit(1);
 	}
 
-	psize = statbuf.st_size;
+	if (S_ISCHR(statbuf.st_mode)) {
+		if (ioctl(fd, DIOCGMEDIASIZE, &psize) != 0) {
+			(void) printf("failed to get size '%s': %s\n", dev,
+			    strerror(errno));
+			exit(1);
+		}
+	 } else
+		psize = statbuf.st_size;
+
 	psize = P2ALIGN(psize, (uint64_t)sizeof (vdev_label_t));
 
 	for (l = 0; l < VDEV_LABELS; l++) {

==== //depot/projects/ethng/src/etc/rc.d/nscd#2 (text+ko) ====

@@ -1,32 +1,32 @@
 #!/bin/sh
 #
-# $FreeBSD: src/etc/rc.d/nscd,v 1.3 2006/06/06 15:34:50 ume Exp $
+# $FreeBSD: src/etc/rc.d/nscd,v 1.4 2007/08/09 13:06:11 bushman Exp $
 #
 
-# PROVIDE: cached
+# PROVIDE: nscd
 # REQUIRE: DAEMON
 # BEFORE: LOGIN
 
 #
 # Add the following lines to /etc/rc.conf to enable cached:
 #
-# cached_enable="YES"
+# nscd_enable="YES"
 #
-# See cached(8) for flags
+# See nscd(8) for flags
 #
 
 . /etc/rc.subr
 
-name=cached
+name=nscd
 rcvar=`set_rcvar`
 
-command=/usr/sbin/cached
+command=/usr/sbin/nscd
 extra_commands="flush"
 flush_cmd="${command} -I all"
 
-cached_enable=${cached_enable:-"NO"}
-cached_pidfile=${cached_pidfile:-"/var/run/cached.pid"}
-cached_flags=${cached_flags:-""}
+nscd_enable=${nscd_enable:-"NO"}
+nscd_pidfile=${nscd_pidfile:-"/var/run/nscd.pid"}
+nscd_flags=${nscd_flags:-""}
 
 load_rc_config $name
 run_rc_command "$1"

==== //depot/projects/ethng/src/lib/libthr/thread/thr_private.h#2 (text+ko) ====

@@ -26,7 +26,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/lib/libthr/thread/thr_private.h,v 1.77 2006/12/20 04:43:34 davidxu Exp $
+ * $FreeBSD: src/lib/libthr/thread/thr_private.h,v 1.78 2007/08/07 04:50:14 davidxu Exp $
  */
 
 #ifndef _THR_PRIVATE_H
@@ -72,7 +72,7 @@
 
 /* Output debug messages like this: */
 #define stdout_debug(args...)	_thread_printf(STDOUT_FILENO, ##args)
-#define stderr_debug(args...)	_thread_printf(STDOUT_FILENO, ##args)
+#define stderr_debug(args...)	_thread_printf(STDERR_FILENO, ##args)
 
 #ifdef _PTHREADS_INVARIANTS
 #define THR_ASSERT(cond, msg) do {	\

==== //depot/projects/ethng/src/sbin/fsck_ffs/main.c#2 (text+ko) ====

@@ -39,7 +39,7 @@
 #endif /* not lint */
 #endif
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sbin/fsck_ffs/main.c,v 1.45 2006/10/31 22:06:56 pjd Exp $");
+__FBSDID("$FreeBSD: src/sbin/fsck_ffs/main.c,v 1.46 2007/08/10 06:29:54 pjd Exp $");
 
 #include <sys/param.h>
 #include <sys/stat.h>
@@ -67,6 +67,7 @@
 static void usage(void) __dead2;
 static int argtoi(int flag, const char *req, const char *str, int base);
 static int checkfilesys(char *filesys);
+static int chkdoreload(struct statfs *mntp);
 static struct statfs *getmntpt(const char *);
 
 int
@@ -197,7 +198,7 @@
 	struct stat snapdir;
 	struct group *grp;
 	ufs2_daddr_t blks;
-	int cylno, ret;
+	int cylno;
 	ino_t files;
 	size_t size;
 
@@ -253,7 +254,9 @@
 			}
 			if ((sblock.fs_flags & (FS_UNCLEAN | FS_NEEDSFSCK)) == 0) {
 				gjournal_check(filesys);
-				exit(0);
+				if (chkdoreload(mntp) == 0)
+					exit(0);
+				exit(4);
 			} else {
 				pfatal("UNEXPECTED INCONSISTENCY, %s\n",
 				    "CANNOT RUN FAST FSCK\n");
@@ -483,23 +486,7 @@
 		printf("\n***** FILE SYSTEM WAS MODIFIED *****\n");
 	if (rerun)
 		printf("\n***** PLEASE RERUN FSCK *****\n");
-	if (mntp != NULL) {
-		/*
-		 * We modified a mounted file system.  Do a mount update on
-		 * it unless it is read-write, so we can continue using it
-		 * as safely as possible.
-		 */
-		if (mntp->f_flags & MNT_RDONLY) {
-			args.fspec = 0;
-			args.export.ex_flags = 0;
-			args.export.ex_root = 0;
-			ret = mount("ufs", mntp->f_mntonname,
-			    mntp->f_flags | MNT_UPDATE | MNT_RELOAD, &args);
-			if (ret == 0)
-				return (0);
-			pwarn("mount reload of '%s' failed: %s\n\n",
-			    mntp->f_mntonname, strerror(errno));
-		}
+	if (chkdoreload(mntp) != 0) {
 		if (!fsmodified)
 			return (0);
 		if (!preen)
@@ -510,6 +497,36 @@
 	return (0);
 }
 
+static int
+chkdoreload(struct statfs *mntp)
+{
+	struct ufs_args args;
+
+	if (mntp == NULL)
+		return (0);
+	/*
+	 * We modified a mounted file system.  Do a mount update on
+	 * it unless it is read-write, so we can continue using it
+	 * as safely as possible.
+	 */
+	if (mntp->f_flags & MNT_RDONLY) {
+		memset(&args, 0, sizeof args);
+		/*
+		 * args.fspec = 0;
+		 * args.export.ex_flags = 0;
+		 * args.export.ex_root = 0;
+		 */
+		if (mount("ufs", mntp->f_mntonname,
+		    mntp->f_flags | MNT_UPDATE | MNT_RELOAD, &args) == 0) {
+			return (0);
+		}
+		pwarn("mount reload of '%s' failed: %s\n\n",
+		    mntp->f_mntonname, strerror(errno));
+		return (1);
+	}
+	return (0);
+}
+
 /*
  * Get the mount point information for name.
  */

==== //depot/projects/ethng/src/share/man/man4/ddb.4#2 (text+ko) ====

@@ -57,9 +57,9 @@
 .\" 	Created.
 .\" 	[90/08/30            dbg]
 .\"
-.\" $FreeBSD: src/share/man/man4/ddb.4,v 1.41 2006/10/30 12:55:06 ru Exp $
+.\" $FreeBSD: src/share/man/man4/ddb.4,v 1.42 2007/08/09 20:14:35 njl Exp $
 .\"
-.Dd October 27, 2006
+.Dd August 6, 2007
 .Dt DDB 4
 .Os
 .Sh NAME
@@ -522,6 +522,12 @@
 modifier depends on the machine.
 If not supported, incorrect information will be displayed.
 .Pp
+.It Ic show Cm sysregs
+Show system registers (e.g.,
+.Li cr0-4
+on i386.)
+Not present on some platforms.
+.Pp
 .It Ic show Cm geom Op Ar addr
 If the
 .Ar addr

==== //depot/projects/ethng/src/share/man/man9/locking.9#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/share/man/man9/locking.9,v 1.10 2007/06/21 16:39:25 brueffer Exp $
+.\" $FreeBSD: src/share/man/man9/locking.9,v 1.11 2007/08/09 21:09:56 julian Exp $
 .\"
 .Dd March 14, 2007
 .Dt LOCKING 9
@@ -67,7 +67,8 @@
 .El
 .Pp
 The primitives interact and have a number of rules regarding how
-they can and can not be combined. There are too many for the average
+they can and can not be combined.
+There are too many for the average
 human mind and they keep changing.
 (if you disagree, please write replacement text)  :-)
 .Pp
@@ -85,63 +86,70 @@
 If you don't own it then you just spin, waiting for the holder (on
 another CPU) to release it.
 Hopefully they are doing something fast.
-You can not do anything that deschedules the thread while you
+You 
+.Em must not
+do anything that deschedules the thread while you
 are holding a SPIN mutex.
-.Ss Sleep Mutexes
-Basically sleep (regular) mutexes will deschedule the thread if the
+.Ss Mutexes
+Basically (regular) mutexes will deschedule the thread if the
 mutex can not be acquired.
+A non-spin mutex can be considered to be equivalent
+to getting a write lock on an 
+.Em rw_lock
+(see below), and in fact non-spin mutexes and rw_locks may soon become the same thing.
 As in spin mutexes, you either get it or you don't.
-You may call the
+You may only call the
 .Xr sleep 9
-call
+call via
 .Fn msleep
 or the new
 .Fn mtx_sleep
-variant. These will atomically drop the mutex and reacquire it
+variant.
+These will atomically drop the mutex and reacquire it
 as part of waking up.
+This is often however a
+.Em BAD
+idea because it generally relies on you having
+such a good knowledge of all the call graph above you
+and what assumptions it is making that there are a lot
+of ways to make hard-to-find mistakes.
+For example you MUST re-test all the assumptions you made before,
+all the way up the call graph to where you got the lock.
+You can not just assume that mtx_sleep can be inserted anywhere.
+If any caller above you has any mutex or
+rwlock, your sleep, will cause a panic.
+If the sleep only happens rarely it may be years before the 
+bad code path is found.
 .Ss Pool Mutexes
-A variant of SLEEP mutexes where the allocation of the mutex is handled
+A variant of regular mutexes where the allocation of the mutex is handled
 more by the system.
-.Ss Sx_locks
-Shared/exclusive locks are used to protect data that are read far more often
-than they are written.
-Mutexes are inherently more efficient than shared/exclusive locks, so
-shared/exclusive locks should be used prudently.
-A thread may hold a shared or exclusive lock on an
-.Em sx_lock
-lock while sleeping.
-As a result, an
-.Em sx_lock
-lock may not be acquired while holding a mutex.
-Otherwise, if one thread slept while holding an
-.Em sx_lock
-lock while another thread blocked on the same
-.Em sx_lock
-lock after acquiring a mutex, then the second thread would effectively
-end up sleeping while holding a mutex, which is not allowed.
 .Ss Rw_locks
 Reader/writer locks allow shared access to protected data by multiple threads,
 or exclusive access by a single thread.
 The threads with shared access are known as
 .Em readers
-since they only read the protected data.
+since they should only read the protected data.
 A thread with exclusive access is known as a
 .Em writer
-since it can modify protected data.
+since it may modify protected data.
 .Pp
 Although reader/writer locks look very similar to
 .Xr sx 9
-locks, their usage pattern is different.
-Reader/writer locks can be treated as mutexes (see
+(see below) locks, their usage pattern is different.
+Reader/writer locks can be treated as mutexes (see above and
 .Xr mutex 9 )
 with shared/exclusive semantics.
-Unlike
-.Xr sx 9 ,
-an
+More specifically, regular mutexes can be 
+considered to be equivalent to a write-lock on an
+.Em rw_lock.
+In the future this may in fact
+become literally the fact.
+An
 .Em rw_lock
-can be locked while holding a non-spin mutex, and an
-.Em rw_lock
-cannot be held while sleeping.
+can be locked while holding a regular mutex, but 
+can
+.Em not
+be held while sleeping.
 The
 .Em rw_lock
 locks have priority propagation like mutexes, but priority
@@ -150,8 +158,36 @@
 are anonymous.
 Another important property is that shared holders of
 .Em rw_lock
-can recurse,
-but exclusive locks are not allowed to recurse.
+can recurse, but exclusive locks are not allowed to recurse.
+This ability should not be used lightly and 
+.Em may go away.
+Users of recursion in any locks should be prepared to 
+defend their decision against vigorous criticism.
+.Ss Sx_locks
+Shared/exclusive locks are used to protect data that are read far more often
+than they are written.
+Mutexes are inherently more efficient than shared/exclusive locks, so
+shared/exclusive locks should be used prudently.
+The main reason for using an
+.Em sx_lock
+is that a thread may hold a shared or exclusive lock on an
+.Em sx_lock
+lock while sleeping.
+As a consequence of this however, an
+.Em sx_lock
+lock may not be acquired while holding a mutex.
+The reason for this is that, if one thread slept while holding an
+.Em sx_lock
+lock while another thread blocked on the same
+.Em sx_lock
+lock after acquiring a mutex, then the second thread would effectively
+end up sleeping while holding a mutex, which is not allowed.
+The
+.Em sx_lock
+should be considered to be closely related to
+.Xr sleep 9 .
+In fact it could in some cases be 
+considered a conditional sleep.
 .Ss Turnstiles
 Turnstiles are used to hold a queue of threads blocked on
 non-sleepable locks.
@@ -160,6 +196,7 @@
 are assigned to a lock held by an owning thread.
 Thus, when one thread is enqueued onto a turnstile, it can lend its
 priority to the owning thread.
+If this sounds confusing, we need to describe it better.
 .Ss Semaphores
 .Ss Condition variables
 Condition variables are used in conjunction with mutexes to wait for
@@ -182,7 +219,7 @@
 .It
 You can sleep while it has recursed, but other recursive locks cannot.
 .It
-Giant must be locked first.
+Giant must be locked first before other locks.
 .It
 There are places in the kernel that drop Giant and pick it back up
 again.
@@ -249,7 +286,8 @@
 mutex before the function returns.
 .Pp
 .Ss lockmanager locks
-Largely deprecated. See the
+Largely deprecated.
+See the
 .Xr lock 9
 page for more information.
 I don't know what the downsides are but I'm sure someone will fill in this part.
@@ -269,10 +307,12 @@
 .El
 .Pp
 .Em *1
-Recursion is defined per lock. Lock order is important.
+Recursion is defined per lock.
+Lock order is important.
 .Pp
 .Em *2
-readers can recurse though writers can not. Lock order is important.
+readers can recurse though writers can not.
+Lock order is important.
 .Pp
 .Em *3
 There are calls atomically release this primitive when going to sleep
@@ -302,6 +342,7 @@
 .Xr condvar 9 ,
 .Xr lock 9 ,
 .Xr mtx_pool 9 ,
+.Xr mutex 9 ,
 .Xr rwlock 9 ,
 .Xr sema 9 ,
 .Xr sleep 9 ,

==== //depot/projects/ethng/src/share/misc/bsd-family-tree#2 (text+ko) ====

@@ -174,7 +174,7 @@
  |                    |      |                 |                      \
 FreeBSD 5.0           |      |                 |                       |
  |                    |      |                 |                       |
-FreeBSD 5.1           |      |                 |                  DragonFly 1.0
+FreeBSD 5.1           |      |                 |                 DragonFly 1.0
  |          \         |      |                 |                       |
  |           ----- Mac OS X  |                 |                       |
  |                   10.3    |                 |                       |
@@ -185,7 +185,7 @@
  *-------FreeBSD 5.3  |      |                 |                       |
  |           |        |      |             OpenBSD 3.6                 |
  |           |        |   NetBSD 2.0           |                       |
- |           |        |      | |  |            |                 DragonFly 1.2.0
+ |           |        |      | |  |            |                DragonFly 1.2.0
  |           |     Mac OS X  | | NetBSD 2.0.2  |                       |
  |           |       10.4    | |  |            |                       |
  |       FreeBSD 5.4  |      | |  |            |                       |
@@ -198,19 +198,20 @@
  |     |     |        |      | NetBSD 2.1      |                       |
  |     |     |        |      |                 |                       |
  |     |     |        |   NetBSD 3.0           |                       |
- |     |     |        |      | |  |            |                 DragonFly 1.4.0
+ |     |     |        |      | |  |            |                DragonFly 1.4.0
  |     |     |        |      | |  |        OpenBSD 3.9                 |
  |  FreeBSD  |        |      | |  |            |                       |
  |    6.1    |        |      | |  |            |                       |
  |     |  FreeBSD 5.5 |      | |  |            |                       |
- |     |              |      | | NetBSD 3.0.1  |                 DragonFly 1.6.0
+ |     |              |      | | NetBSD 3.0.1  |                DragonFly 1.6.0
  |     |              |      | |  |            |                       |
  |     |              |      | |  |        OpenBSD 4.0                 |
  |     |              |      | | NetBSD 3.0.2  |                       |
  |     |              |      | NetBSD 3.1      |                       |
  | FreeBSD 6.2        |      |                 |                       |
- |     |              |      |                 |                 DragonFly 1.8.0
+ |     |              |      |                 |                DragonFly 1.8.0
  |     |              |      |             OpenBSD 4.1                 |
+ |     |              |      |                 |                DragonFly 1.10.0
  |     V              |      |                 |                       |
 FreeBSD 7 -current    |  NetBSD -current  OpenBSD -current             |
  |                    |      |                 |                       |
@@ -466,6 +467,7 @@
 FreeBSD 6.2		2007-01-15 [FBD]
 DragonFly 1.8.0		2007-01-30 [DFB]
 OpenBSD 4.1		2007-05-01 [OBD]
+DragonFly 1.10.0	2007-08-06 [DFB]
 
 Bibliography
 ------------------------
@@ -526,4 +528,4 @@
 Copyright (c) 1997-2007 Wolfram Schneider <wosch at FreeBSD.ORG>
 URL: http://cvsweb.freebsd.org/src/share/misc/bsd-family-tree
 
-$FreeBSD: src/share/misc/bsd-family-tree,v 1.113 2007/05/31 03:40:29 imp Exp $
+$FreeBSD: src/share/misc/bsd-family-tree,v 1.115 2007/08/07 15:35:24 maxim Exp $

==== //depot/projects/ethng/src/sys/arm/arm/cpufunc.c#2 (text+ko) ====

@@ -45,7 +45,7 @@
  * Created      : 30/01/97
  */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.17 2007/07/27 14:39:41 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.18 2007/08/07 18:37:21 cognet Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -148,9 +148,9 @@
 	arm7tdmi_cache_flushID,		/* idcache_wbinv_all	*/
 	(void *)arm7tdmi_cache_flushID,	/* idcache_wbinv_range	*/
 	cpufunc_nullop,			/* l2cache_wbinv_all	*/
-	cpufunc_nullop,			/* l2cache_wbinv_range	*/
-	cpufunc_nullop,			/* l2cache_inv_range	*/
-	cpufunc_nullop,			/* l2cache_wb_range	*/
+	(void *)cpufunc_nullop,		/* l2cache_wbinv_range	*/
+	(void *)cpufunc_nullop,		/* l2cache_inv_range	*/
+	(void *)cpufunc_nullop,		/* l2cache_wb_range	*/
 
 	/* Other functions */
 
@@ -210,9 +210,9 @@
 	arm8_cache_purgeID,		/* idcache_wbinv_all	*/
 	(void *)arm8_cache_purgeID,	/* idcache_wbinv_range	*/
 	cpufunc_nullop,			/* l2cache_wbinv_all	*/
-	cpufunc_nullop,			/* l2cache_wbinv_range	*/
-	cpufunc_nullop,			/* l2cache_inv_range	*/
-	cpufunc_nullop,			/* l2cache_wb_range	*/
+	(void *)cpufunc_nullop,		/* l2cache_wbinv_range	*/
+	(void *)cpufunc_nullop,		/* l2cache_inv_range	*/
+	(void *)cpufunc_nullop,		/* l2cache_wb_range	*/
 
 	/* Other functions */
 
@@ -271,9 +271,9 @@
 	arm9_idcache_wbinv_all,		/* idcache_wbinv_all	*/
 	arm9_idcache_wbinv_range,	/* idcache_wbinv_range	*/
 	cpufunc_nullop,			/* l2cache_wbinv_all	*/
-	cpufunc_nullop,			/* l2cache_wbinv_range	*/
-	cpufunc_nullop,			/* l2cache_inv_range	*/
-	cpufunc_nullop,			/* l2cache_wb_range	*/
+	(void *)cpufunc_nullop,		/* l2cache_wbinv_range	*/
+	(void *)cpufunc_nullop,		/* l2cache_inv_range	*/
+	(void *)cpufunc_nullop,		/* l2cache_wb_range	*/
 
 	/* Other functions */
 
@@ -333,9 +333,9 @@
 	arm10_idcache_wbinv_all,	/* idcache_wbinv_all	*/
 	arm10_idcache_wbinv_range,	/* idcache_wbinv_range	*/
 	cpufunc_nullop,			/* l2cache_wbinv_all	*/
-	cpufunc_nullop,			/* l2cache_wbinv_range	*/
-	cpufunc_nullop,			/* l2cache_inv_range	*/
-	cpufunc_nullop,			/* l2cache_wb_range	*/
+	(void *)cpufunc_nullop,		/* l2cache_wbinv_range	*/
+	(void *)cpufunc_nullop,		/* l2cache_inv_range	*/
+	(void *)cpufunc_nullop,		/* l2cache_wb_range	*/
 
 	/* Other functions */
 
@@ -395,9 +395,9 @@
 	sa1_cache_purgeID,		/* idcache_wbinv_all	*/
 	sa1_cache_purgeID_rng,		/* idcache_wbinv_range	*/
 	cpufunc_nullop,			/* l2cache_wbinv_all	*/
-	cpufunc_nullop,			/* l2cache_wbinv_range	*/
-	cpufunc_nullop,			/* l2cache_inv_range	*/
-	cpufunc_nullop,			/* l2cache_wb_range	*/
+	(void *)cpufunc_nullop,		/* l2cache_wbinv_range	*/
+	(void *)cpufunc_nullop,		/* l2cache_inv_range	*/
+	(void *)cpufunc_nullop,		/* l2cache_wb_range	*/
 
 	/* Other functions */
 
@@ -456,9 +456,9 @@
 	sa1_cache_purgeID,		/* idcache_wbinv_all	*/
 	sa1_cache_purgeID_rng,		/* idcache_wbinv_range	*/
 	cpufunc_nullop,			/* l2cache_wbinv_all	*/
-	cpufunc_nullop,			/* l2cache_wbinv_range	*/
-	cpufunc_nullop,			/* l2cache_inv_range	*/
-	cpufunc_nullop,			/* l2cache_wb_range	*/
+	(void *)cpufunc_nullop,		/* l2cache_wbinv_range	*/
+	(void *)cpufunc_nullop,		/* l2cache_inv_range	*/
+	(void *)cpufunc_nullop,		/* l2cache_wb_range	*/
 
 	/* Other functions */
 
@@ -517,9 +517,9 @@
 	sa1_cache_purgeID,		/* idcache_wbinv_all	*/
 	sa1_cache_purgeID_rng,		/* idcache_wbinv_range	*/
 	cpufunc_nullop,			/* l2cache_wbinv_all	*/
-	cpufunc_nullop,			/* l2cache_wbinv_range	*/
-	cpufunc_nullop,			/* l2cache_inv_range	*/
-	cpufunc_nullop,			/* l2cache_wb_range	*/
+	(void *)cpufunc_nullop,		/* l2cache_wbinv_range	*/
+	(void *)cpufunc_nullop,		/* l2cache_inv_range	*/
+	(void *)cpufunc_nullop,		/* l2cache_wb_range	*/
 
 	/* Other functions */
 
@@ -581,9 +581,9 @@
 	xscale_cache_purgeID,		/* idcache_wbinv_all	*/
 	xscale_cache_purgeID_rng,	/* idcache_wbinv_range	*/
 	cpufunc_nullop,			/* l2cache_wbinv_all 	*/
-	cpufunc_nullop,			/* l2cache_wbinv_range	*/
-	cpufunc_nullop,			/* l2cache_inv_range	*/
-	cpufunc_nullop,			/* l2cache_wb_range	*/
+	(void *)cpufunc_nullop,		/* l2cache_wbinv_range	*/
+	(void *)cpufunc_nullop,		/* l2cache_inv_range	*/
+	(void *)cpufunc_nullop,		/* l2cache_wb_range	*/
 
 	/* Other functions */
 

==== //depot/projects/ethng/src/sys/arm/arm/genassym.c#2 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/genassym.c,v 1.9 2007/05/23 13:21:57 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/genassym.c,v 1.10 2007/08/08 09:27:52 cognet Exp $");
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/assym.h>
@@ -92,6 +92,7 @@
 ASSYM(TD_PROC, offsetof(struct thread, td_proc));
 ASSYM(TD_FRAME, offsetof(struct thread, td_frame));
 ASSYM(TD_MD, offsetof(struct thread, td_md));
+ASSYM(TD_LOCK, offsetof(struct thread, td_lock));
 ASSYM(MD_TP, offsetof(struct mdthread, md_tp));
 
 ASSYM(TF_R0, offsetof(struct trapframe, tf_r0));

==== //depot/projects/ethng/src/sys/arm/arm/swtch.S#2 (text+ko) ====

@@ -83,7 +83,7 @@
 #include <machine/asm.h>
 #include <machine/asmacros.h>
 #include <machine/armreg.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/swtch.S,v 1.19 2006/04/09 20:16:47 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/swtch.S,v 1.20 2007/08/07 18:20:55 cognet Exp $");
 
 
 /*
@@ -127,6 +127,8 @@
 	.word	_C_LABEL(block_userspace_access)
 .Lcpu_do_powersave:
 	.word	_C_LABEL(cpu_do_powersave)
+.Lblocked_lock:
+	.word	_C_LABEL(blocked_lock)
 ENTRY(cpu_throw)
 	mov	r5, r1
 
@@ -214,6 +216,7 @@
 
 ENTRY(cpu_switch)
 	stmfd	sp!, {r4-r7, lr}
+	mov	r6, r2 /* Save the mutex */
 
 .Lswitch_resume:
 	/* rem: r0 = old lwp */
@@ -241,10 +244,11 @@
 
 	/* Stage two : Save old context */
 
-	/* Get the user structure for the old lwp. */
+	/* Get the user structure for the old thread. */
 	ldr	r2, [r0, #(TD_PCB)]
+	mov	r4, r0 /* Save the old thread. */
 
-	/* Save all the registers in the old lwp's pcb */
+	/* Save all the registers in the old thread's pcb */
 #ifndef __XSCALE__
 	add	r7, r2, #(PCB_R8)
 	stmia	r7, {r8-r13}
@@ -324,8 +328,7 @@
 	mov	lr, pc
 	ldr	pc, [r1, #CF_IDCACHE_WBINV_ALL]
 .Lcs_cache_purge_skipped:
-	/* rem: r4 = &block_userspace_access */
-	/* rem: r6 = new lwp */
+	/* rem: r6 = lock */
 	/* rem: r9 = new PCB */
 	/* rem: r10 = old L1 */
 	/* rem: r11 = new L1 */
@@ -389,6 +392,17 @@
 
 .Lcs_context_switched:
 
+	/* Release the old thread */
+	str	r6, [r4, #TD_LOCK]
+	ldr	r6, .Lblocked_lock
+	ldr	r3, .Lcurthread
+	ldr	r3, [r3]
+
+1:
+	ldr	r4, [r3, #TD_LOCK]
+	cmp	r4, r6
+	beq	1b
+	
 	/* XXXSCW: Safe to re-enable FIQs here */
 
 	/* rem: r9 = new PCB */
@@ -419,7 +433,7 @@
 	ldr	r13, [r7, #(PCB_SP)]
 #endif
 
-	/* rem: r6 = new lwp */
+	/* rem: r6 = lock */
 	/* rem: r7 = new pcb */
 
 #ifdef ARMFPE
@@ -429,7 +443,7 @@
 #endif
 
 	/* rem: r5 = new lwp's proc */
-	/* rem: r6 = new lwp */
+	/* rem: r6 = lock */
 	/* rem: r7 = new PCB */
 
 .Lswitch_return:

==== //depot/projects/ethng/src/sys/boot/arm/at91/libat91/Makefile#2 (text) ====

@@ -1,4 +1,4 @@
-#  $FreeBSD: src/sys/boot/arm/at91/libat91/Makefile,v 1.9 2007/07/13 14:27:04 imp Exp $
+#  $FreeBSD: src/sys/boot/arm/at91/libat91/Makefile,v 1.10 2007/08/09 05:16:55 imp Exp $
 
 .include "${.CURDIR}/../Makefile.inc"
 
@@ -8,7 +8,7 @@
 	putchar.c printf.c reset.c spi_flash.c xmodem.c \
 	sd-card.c strcvt.c strlen.c strcmp.c memcpy.c strcpy.c \
 	memset.c memcmp.c
-SRCS+=ashldi3.c divsi3.c
+SRCS+=ashldi3.c divsi3.S
 NO_MAN=
 
 .if ${MK_TAG_LIST} != "no"

==== //depot/projects/ethng/src/sys/conf/files#2 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1241 2007/07/24 15:35:01 scottl Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1242 2007/08/09 01:11:21 marcel Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -259,7 +259,7 @@
 contrib/ipfilter/netinet/ip_state.c optional ipfilter inet \
 	compile-with "${NORMAL_C} -I$S/contrib/ipfilter"
 contrib/ipfilter/netinet/ip_lookup.c optional ipfilter inet \
-	compile-with "${NORMAL_C} -I$S/contrib/ipfilter"
+	compile-with "${NORMAL_C} -Wno-error -I$S/contrib/ipfilter"
 contrib/ipfilter/netinet/ip_pool.c optional ipfilter inet \
 	compile-with "${NORMAL_C} -I$S/contrib/ipfilter"
 contrib/ipfilter/netinet/ip_htable.c optional ipfilter inet \

==== //depot/projects/ethng/src/sys/conf/kern.pre.mk#2 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.91 2007/07/31 03:15:32 marcel Exp $
+# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.92 2007/08/08 19:12:06 marcel Exp $
 
 # Part of a unified Makefile for building kernels.  This part contains all
 # of the definitions that need to be before %BEFORE_DEPEND.
@@ -88,7 +88,8 @@
 CFLAGS+= --param inline-unit-growth=100
 CFLAGS+= --param large-function-growth=1000
 .if ${MACHINE_ARCH} == "amd64" || ${MACHINE} == "i386" || \
-    ${MACHINE_ARCH} == "ia64" || ${MACHINE_ARCH} == "sparc64"
+    ${MACHINE_ARCH} == "ia64" || ${MACHINE_ARCH} == "powerpc" || \
+    ${MACHINE_ARCH} == "sparc64"
 WERROR?= -Werror
 .endif
 .endif

==== //depot/projects/ethng/src/sys/dev/an/if_an.c#2 (text+ko) ====

@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/an/if_an.c,v 1.82 2007/08/02 02:20:19 avatar Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/an/if_an.c,v 1.83 2007/08/07 12:26:19 avatar Exp $");
 
 /*
  * The Aironet 4500/4800 series cards come in PCMCIA, ISA and PCI form.
@@ -1065,8 +1065,10 @@
 					rx_frame.an_rsvd0);
 #endif
 #endif
+				AN_UNLOCK(sc);
 				(*ifp->if_input)(ifp, m);
-			
+				AN_LOCK(sc);
+
 				an_rx_desc.an_valid = 1;
 				an_rx_desc.an_len = AN_RX_BUFFER_SIZE;
 				an_rx_desc.an_done = 0;

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

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/if_axe.c,v 1.52 2007/06/30 20:08:08 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/if_axe.c,v 1.53 2007/08/09 04:40:07 imp Exp $");
 
 /*
  * ASIX Electronics AX88172 USB 2.0 ethernet driver. Used in the
@@ -468,7 +468,7 @@
 	/*
 	 * Get station address.
 	 */
-	axe_cmd(sc, AXE_CMD_READ_NODEID, 0, 0, &eaddr);
+	axe_cmd(sc, AXE_172_CMD_READ_NODEID, 0, 0, &eaddr);
 
 	/*
 	 * Load IPG values and PHY indexes.
@@ -894,12 +894,12 @@
 	}
 
 	/* Set transmitter IPG values */
-	axe_cmd(sc, AXE_CMD_WRITE_IPG0, 0, sc->axe_ipgs[0], NULL);
-	axe_cmd(sc, AXE_CMD_WRITE_IPG1, 0, sc->axe_ipgs[1], NULL);
-	axe_cmd(sc, AXE_CMD_WRITE_IPG2, 0, sc->axe_ipgs[2], NULL);
+	axe_cmd(sc, AXE_172_CMD_WRITE_IPG0, 0, sc->axe_ipgs[0], NULL);
+	axe_cmd(sc, AXE_172_CMD_WRITE_IPG1, 0, sc->axe_ipgs[1], NULL);
+	axe_cmd(sc, AXE_172_CMD_WRITE_IPG2, 0, sc->axe_ipgs[2], NULL);
 
 	/* Enable receiver, set RX mode */
-	rxmode = AXE_RXCMD_UNICAST|AXE_RXCMD_MULTICAST|AXE_RXCMD_ENABLE;
+	rxmode = AXE_172_RXCMD_UNICAST|AXE_RXCMD_MULTICAST|AXE_RXCMD_ENABLE;
 
 	/* If we want promiscuous mode, set the allframes bit. */
 	if (ifp->if_flags & IFF_PROMISC)

==== //depot/projects/ethng/src/sys/dev/usb/if_axereg.h#2 (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/sys/dev/usb/if_axereg.h,v 1.13 2007/06/30 20:08:08 imp Exp $
+ * $FreeBSD: src/sys/dev/usb/if_axereg.h,v 1.14 2007/08/09 04:40:07 imp Exp $
  */
 
 /*
@@ -53,9 +53,11 @@
 #define AXE_CMD_LEN(x)	(((x) & 0xF000) >> 12)
 #define AXE_CMD_CMD(x)	((x) & 0x00FF)
 
-#define AXE_CMD_READ_RXTX_SRAM			0x2002
-#define AXE_CMD_WRITE_RX_SRAM			0x0103
-#define AXE_CMD_WRITE_TX_SRAM			0x0104
+#define AXE_172_CMD_READ_RXTX_SRAM		0x2002
+#define AXE_182_CMD_READ_RXTX_SRAM		0x8002
+#define AXE_172_CMD_WRITE_RX_SRAM		0x0103
+#define AXE_172_CMD_WRITE_TX_SRAM		0x0104
+#define AXE_182_CMD_WRITE_RXTX_SRAM		0x8103
 #define AXE_CMD_MII_OPMODE_SW			0x0106
 #define AXE_CMD_MII_READ_REG			0x2007
 #define AXE_CMD_MII_WRITE_REG			0x2108
@@ -68,35 +70,79 @@
 #define AXE_CMD_RXCTL_READ			0x200F
 #define AXE_CMD_RXCTL_WRITE			0x0110
 #define AXE_CMD_READ_IPG012			0x3011
-#define AXE_CMD_WRITE_IPG0			0x0112
-#define AXE_CMD_WRITE_IPG1			0x0113
-#define AXE_CMD_WRITE_IPG2			0x0114
+#define AXE_172_CMD_WRITE_IPG0			0x0112
+#define AXE_172_CMD_WRITE_IPG1			0x0113
+#define AXE_172_CMD_WRITE_IPG2			0x0114
+#define AXE_178_CMD_WRITE_IPG012		0x0112
 #define AXE_CMD_READ_MCAST			0x8015
 #define AXE_CMD_WRITE_MCAST			0x8116
-#define AXE_CMD_READ_NODEID			0x6017
-#define AXE_CMD_WRITE_NODEID			0x6118
+#define AXE_172_CMD_READ_NODEID			0x6017
+#define AXE_172_CMD_WRITE_NODEID		0x6118
+#define AXE_178_CMD_READ_NODEID			0x6013
+#define AXE_178_CMD_WRITE_NODEID		0x6114
 #define AXE_CMD_READ_PHYID			0x2019
-#define AXE_CMD_READ_MEDIA			0x101A
+#define AXE_172_CMD_READ_MEDIA			0x101A
+#define AXE_178_CMD_READ_MEDIA			0x201A
 #define AXE_CMD_WRITE_MEDIA			0x011B
 #define AXE_CMD_READ_MONITOR_MODE		0x101C
 #define AXE_CMD_WRITE_MONITOR_MODE		0x011D
 #define AXE_CMD_READ_GPIO			0x101E
 #define AXE_CMD_WRITE_GPIO			0x011F
+#define AXE_CMD_SW_RESET_REG			0x0120
+#define AXE_CMD_SW_PHY_STATUS			0x0021
+#define AXE_CMD_SW_PHY_SELECT			0x0122
+
+#define AXE_SW_RESET_CLEAR			0x00
+#define AXE_SW_RESET_RR				0x01
+#define AXE_SW_RESET_RT				0x02
+#define AXE_SW_RESET_PRTE			0x04

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


More information about the p4-projects mailing list