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