From owner-svn-src-user@FreeBSD.ORG  Fri Jan  1 03:58:22 2010
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 74C0A1065692;
	Fri,  1 Jan 2010 03:58:22 +0000 (UTC)
	(envelope-from kmacy@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 6170D8FC0A;
	Fri,  1 Jan 2010 03:58:22 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o013wMm8099410;
	Fri, 1 Jan 2010 03:58:22 GMT (envelope-from kmacy@svn.freebsd.org)
Received: (from kmacy@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o013wM8V099409;
	Fri, 1 Jan 2010 03:58:22 GMT (envelope-from kmacy@svn.freebsd.org)
Message-Id: <201001010358.o013wM8V099409@svn.freebsd.org>
From: Kip Macy <kmacy@FreeBSD.org>
Date: Fri, 1 Jan 2010 03:58:22 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201359 - in
	user/kmacy/releng_8_fcs_buf_xen/sys/cddl/contrib/opensolaris/uts/common/fs/zfs:
	. sys
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 01 Jan 2010 03:58:22 -0000

Author: kmacy
Date: Fri Jan  1 03:58:21 2010
New Revision: 201359
URL: http://svn.freebsd.org/changeset/base/201359

Log:
  - fix tailq usage sa that each tailq usage uses a different tailq entry
  - decrement page wire count before freeing
  - re-map buffer kva when swapping out pages
  - skip over validating reads in to non-VMIO buffers
  - fix zio_cache_valid usage check

Modified:
  user/kmacy/releng_8_fcs_buf_xen/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_bio.h
  user/kmacy/releng_8_fcs_buf_xen/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_bio.c

Modified: user/kmacy/releng_8_fcs_buf_xen/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_bio.h
==============================================================================
--- user/kmacy/releng_8_fcs_buf_xen/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_bio.h	Thu Dec 31 23:52:19 2009	(r201358)
+++ user/kmacy/releng_8_fcs_buf_xen/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_bio.h	Fri Jan  1 03:58:21 2010	(r201359)
@@ -32,6 +32,7 @@ $FreeBSD$
 #ifndef	_SYS_ZFS_BIO_H
 #define	_SYS_ZFS_BIO_H
 #include <sys/vdev_impl.h>	/* vd->vdev_vnode */
+#include <sys/spa_impl.h>	/* spa->spa_root_vdev */
 #include <sys/zfs_context.h>
 
 extern int zfs_page_cache_disable;
@@ -57,8 +58,8 @@ static __inline void
 zio_cache_valid(void *data, uint64_t size, zio_type_t type, vdev_t *vd) 
 {
 
-	if ((vd != NULL) && (type == ZIO_TYPE_READ) &&
-	    (size & PAGE_MASK) == 0)
+	if (((vd == NULL) || (vd->vdev_spa->spa_root_vdev == vd)) &&
+	    (type == ZIO_TYPE_READ) && (size & PAGE_MASK) == 0)
 		_zio_cache_valid(data, size);
 }
 

Modified: user/kmacy/releng_8_fcs_buf_xen/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_bio.c
==============================================================================
--- user/kmacy/releng_8_fcs_buf_xen/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_bio.c	Thu Dec 31 23:52:19 2009	(r201358)
+++ user/kmacy/releng_8_fcs_buf_xen/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_bio.c	Fri Jan  1 03:58:21 2010	(r201359)
@@ -77,6 +77,14 @@ Logic in sync_cache:
        No work to do 
 
 
+
+ b_bobufs                 -> hash table tailqs
+ b_freelist               -> blkno memq
+ b_cluster.cluster_entry  -> temporary list
+
+
+
+
 **************************************************************************/
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
@@ -297,7 +305,7 @@ zio_buf_va_insert(buf_t bp)
 	CTR3(KTR_SPARE3, "va_insert(va=%p size=%ld) idx=%ld", va, size, idx);
 
 	mtx_lock(lock);
-	TAILQ_INSERT_HEAD(bh, bp, b_freelist);
+	TAILQ_INSERT_HEAD(bh, bp, b_bobufs);
 	mtx_unlock(lock);
 }
 
@@ -323,7 +331,7 @@ zio_buf_va_lookup(caddr_t va, uint64_t s
 	lock = BUF_HASH_LOCK(idx);
 	bh = &buf_hash_table.ht_table[idx];
 	mtx_lock(lock);
-	TAILQ_FOREACH(bp, bh, b_freelist)
+	TAILQ_FOREACH(bp, bh, b_bobufs)
 		if (bp->b_data == va)
 			break;
 	mtx_unlock(lock);
@@ -353,9 +361,9 @@ zio_buf_va_remove(caddr_t va, uint64_t s
 
 	CTR3(KTR_SPARE3, "va_remove(va=%p size=%ld) idx=%ld", va, (long)size, idx);
 	mtx_lock(lock);
-	TAILQ_FOREACH(bp, bh, b_freelist)
+	TAILQ_FOREACH(bp, bh, b_bobufs)
 	    if (bp->b_data == va) {
-		    TAILQ_REMOVE(bh, bp, b_freelist);
+		    TAILQ_REMOVE(bh, bp, b_bobufs);
 		    break;
 	    }
 	mtx_unlock(lock);
@@ -505,12 +513,14 @@ zio_buf_blkno_lookup(zio_spa_state_t sta
  *	This routine may not block.
  */
 static void
-zio_buf_blkno_remove(buf_t bp)
+zio_buf_blkno_remove_locked(vm_object_t object, buf_t bp)
 {
 	zio_spa_state_t state;
 	buf_t root;
 	daddr_t blkno, blkno_end;
 
+	VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
+
 	if ((state = bp->b_state) == NULL)
 		return;
 
@@ -526,6 +536,9 @@ zio_buf_blkno_remove(buf_t bp)
 		root->b_right = bp->b_right;
 	}
 	state->zss_blkno_root = root;
+	/*
+	 * can't use b_bobufs for both memq and hash table :<
+	 */
 	TAILQ_REMOVE(&state->zss_blkno_memq, bp, b_freelist);
 
 	/*
@@ -535,6 +548,16 @@ zio_buf_blkno_remove(buf_t bp)
 	state->zss_generation++;
 }
 
+static void
+zio_buf_blkno_remove(buf_t bp)
+{
+	vm_object_t object = zio_buf_get_vm_object(bp);
+
+	VM_OBJECT_LOCK(object);
+	zio_buf_blkno_remove_locked(object, bp);
+	VM_OBJECT_UNLOCK(object);
+}
+	
 static __inline void
 zio_buf_vm_object_copy(vm_object_t object, buf_t bp, int direction)
 {
@@ -552,7 +575,6 @@ zio_buf_vm_object_copy(vm_object_t objec
 	start = OFF_TO_IDX(byte_offset);
 	end = OFF_TO_IDX(byte_offset + bp->b_bcount);
 
-	VM_OBJECT_LOCK(object);	
 	if (vm_pages_valid_locked(object, bp->b_blkno, bp->b_bcount) == 0)
 		goto done;
 
@@ -577,7 +599,6 @@ zio_buf_vm_object_copy(vm_object_t objec
 
 done:
 	bp->b_npages = 0;
-	VM_OBJECT_UNLOCK(object);
 }
 
 static void
@@ -606,7 +627,6 @@ zio_buf_vm_object_evict(buf_t bp)
 		m = bp->b_pages[i];
 		vm_pageq_remove(m);
 	}
-	vm_page_unlock_queues();
 	/*
 	 * remove pages from backing vm_object 
 	 */
@@ -616,6 +636,7 @@ zio_buf_vm_object_evict(buf_t bp)
 		m->valid = 0;
 		m->flags |= PG_UNMANAGED;
 	}
+	vm_page_unlock_queues();
 }
 
 static void
@@ -661,26 +682,27 @@ static void
 zio_buf_evict_overlap(vm_object_t object, daddr_t blkno, int size,
     zio_spa_state_t state, uint64_t txg, int evict_op)
 {
-	buf_t root, tmpbp;
+	buf_t root, tmpbp, bp_prev;
 	daddr_t blkno_end, tmpblkno, tmpblkno_end;
 	struct cluster_list_head clh;
 	int i, collisions;
 	uint64_t tmptxg;
 	vm_pindex_t start, end;
 
+	TAILQ_INIT(&clh);
 	if ((root = state->zss_blkno_root) == NULL)
 		goto done;
 
 	collisions = 0;
+	blkno_end = blkno + btos(size);
 	root = zio_buf_blkno_splay(blkno, root);
-	TAILQ_INIT(&clh);
 	if (blkno < root->b_blkno)
 		tmpbp = TAILQ_PREV(root, cluster_list_head, b_freelist);
 
 	/*
 	 * Find all existing buffers that overlap with this range
 	 */
-	tmpbp = tmpbp != NULL ? tmpbp : root;
+	bp_prev = tmpbp = tmpbp != NULL ? tmpbp : root;
 	while (tmpbp != NULL && tmpbp->b_blkno < blkno_end) {
 		tmpblkno = tmpbp->b_blkno;
 		tmpblkno_end = tmpblkno + btos(tmpbp->b_bcount);
@@ -689,14 +711,15 @@ zio_buf_evict_overlap(vm_object_t object
 		if (((tmpblkno >= blkno) && (tmpblkno < blkno_end)) ||
 		    (tmpblkno_end > blkno) && (tmpblkno_end <= blkno_end) &&
 		    ((txg == NO_TXG) || (tmptxg < txg))) {
-			TAILQ_INSERT_TAIL(&clh, tmpbp, b_freelist);
+			TAILQ_INSERT_TAIL(&clh, tmpbp, b_cluster.cluster_entry);
 			collisions++;
 		}
+		bp_prev = tmpbp;
 		tmpbp = TAILQ_NEXT(tmpbp, b_freelist);
 	}
 	while (!TAILQ_EMPTY(&clh)) {
 		tmpbp = TAILQ_FIRST(&clh);
-		TAILQ_REMOVE(&clh, tmpbp, b_freelist);
+		TAILQ_REMOVE(&clh, tmpbp, b_cluster.cluster_entry);
 		zio_buf_vm_object_evict(tmpbp);
 
 		tmpbp->b_flags &= ~B_VMIO;
@@ -704,7 +727,7 @@ zio_buf_evict_overlap(vm_object_t object
 		/*
 		 * move buffer to the unmanaged tree
 		 */
-		zio_buf_blkno_remove(tmpbp);
+		zio_buf_blkno_remove_locked(object, tmpbp);
 	}
 done:
 	if (!(collisions == 1 && tmpbp->b_blkno == blkno &&
@@ -717,7 +740,7 @@ done:
 #ifdef INVARIANTS
 		for (i = 0; i < OFF_TO_IDX(size); i++) {
 			KASSERT(vm_page_lookup(object, start + i) == NULL,
-			    ("found page at %ld blkno %ld ",start + i, blkno));
+			    ("found page at %ld blkno %lld ",start + i, blkno));
 		}
 #endif	
 	}
@@ -743,6 +766,8 @@ vm_object_reference_pages(vm_object_t ob
 		bp->b_pages[i] = m;
 	}
 	vm_page_unlock_queues();
+	pmap_qenter_prot((vm_offset_t)bp->b_saveaddr, bp->b_pages,
+	    bp->b_npages, VM_PROT_READ|VM_PROT_WRITE|VM_PROT_EXCLUDE);
 }
 
 /*
@@ -804,6 +829,9 @@ _zio_getblk_vmio(uint64_t size, int flag
 	newbp = geteblk(size, flags);
 	BUF_KERNPROC(newbp);
 
+	KASSERT((newbp->b_flags & B_MALLOC) == 0,
+	    ("geteblk allocated a malloc'd buffer"));
+
 	return (newbp);
 }
 
@@ -812,7 +840,7 @@ zio_getblk(uint64_t size, int flags)
 {
 	buf_t 		newbp;
 
-	if (size & PAGE_MASK)
+	if (size != 128*1024)
 		newbp = _zio_getblk_malloc(size, flags);
 	else
 		newbp = _zio_getblk_vmio(size, flags);
@@ -864,6 +892,7 @@ _zio_sync_cache(spa_t *spa, blkptr_t *bl
 	bp = zio_buf_va_lookup(data, size);
 	
 	if (bp->b_flags & B_MALLOC) {
+		VM_OBJECT_LOCK(object);
 		zio_buf_evict_overlap(object, blkno, size, state, txg, ZB_EVICT_BUFFERED);
 
 		if (zio_op == ZIO_TYPE_READ) {
@@ -879,9 +908,14 @@ _zio_sync_cache(spa_t *spa, blkptr_t *bl
 		} else {
 			zio_buf_vm_object_copyout(object, bp);
 		}
+		VM_OBJECT_UNLOCK(object);
 	} else if (bp->b_flags & B_VMIO) {
+#ifdef INVARIANTS
+		VM_OBJECT_LOCK(object);
 		KASSERT(bp == zio_buf_blkno_lookup(state, blkno),
 		    ("VMIO buffer not mapped"));
+		VM_OBJECT_UNLOCK(object);
+#endif		
 		if (zio_op == ZIO_TYPE_READ && (bp->b_flags & (B_CACHE|B_INVAL)) == B_CACHE)
 			io_bypass = TRUE;		
 	} else if ((zio_op == ZIO_TYPE_WRITE) || !vm_pages_valid(object, blkno, size)) {
@@ -891,21 +925,28 @@ _zio_sync_cache(spa_t *spa, blkptr_t *bl
 		bp->b_blkno = bp->b_lblkno = blkno;
 		bp->b_flags |= B_VMIO;
 		bp->b_birth = txg;
+		bp->b_state = state;
 		zio_buf_blkno_insert(bp, state);
 		zio_buf_vm_object_insert(bp, vp, object, zio_op == ZIO_TYPE_WRITE);
 		VM_OBJECT_UNLOCK(object);
 	} else {
 		KASSERT(zio_op == ZIO_TYPE_READ, ("unexpected op %d", zio_op));
+		VM_OBJECT_LOCK(object);
 		zio_buf_evict_overlap(object, blkno, size, state, NO_TXG,
 		    ZB_EVICT_BUFFERED);
 		bp->b_blkno = bp->b_lblkno = blkno;
 		bp->b_flags |= B_VMIO;
 		bp->b_birth = txg;
+		bp->b_state = state;		
 		zio_buf_blkno_insert(bp, state);
-		VM_OBJECT_LOCK(object);
 		if (vm_pages_valid_locked(object, blkno, size)) {
-			for (i = 0; i < bp->b_npages; i++)
-				vm_page_free(bp->b_pages[i]);
+			for (i = 0; i < bp->b_npages; i++) {
+				m = bp->b_pages[i];
+				m->wire_count--;
+				vm_page_free(m);
+			}
+
+		
 			vm_object_reference_pages(object, bp);
 		} else
 			zio_buf_vm_object_insert(bp, vp, object, FALSE);
@@ -922,8 +963,13 @@ _zio_cache_valid(void *data, uint64_t si
 	int i;
 
 	bp = zio_buf_va_lookup(data, size);
-	for (i = 0; i < bp->b_npages; i++) 
+	if ((bp->b_flags & B_VMIO) == 0)
+		return;
+	for (i = 0; i < bp->b_npages; i++) {
+		KASSERT((bp->b_pages[i]->flags & PG_UNMANAGED) == 0,
+		    ("validating unmanaged page"));
 		bp->b_pages[i]->valid = VM_PAGE_BITS_ALL;
+	}
 	bp->b_flags &= ~B_INVAL;
 	bp->b_flags |= B_CACHE;
 }

From owner-svn-src-user@FreeBSD.ORG  Fri Jan  1 18:47:49 2010
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id F267C1065679;
	Fri,  1 Jan 2010 18:47:48 +0000 (UTC) (envelope-from imp@bsdimp.com)
Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85])
	by mx1.freebsd.org (Postfix) with ESMTP id B494B8FC08;
	Fri,  1 Jan 2010 18:47:48 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
	by harmony.bsdimp.com (8.14.3/8.14.1) with ESMTP id o01Ii4He069046;
	Fri, 1 Jan 2010 11:44:04 -0700 (MST) (envelope-from imp@bsdimp.com)
Date: Fri, 01 Jan 2010 11:44:40 -0700 (MST)
Message-Id: <20100101.114440.239525524730500825.imp@bsdimp.com>
To: kientzle@freebsd.org
From: "M. Warner Losh" <imp@bsdimp.com>
In-Reply-To: <4B3C4716.9020806@freebsd.org>
References: <200912310609.nBV69XIS087894@svn.freebsd.org>
	<4B3C4716.9020806@freebsd.org>
X-Mailer: Mew version 6.3 on Emacs 22.3 / Mule 5.0 (SAKAKI)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Cc: dougb@freebsd.org, src-committers@freebsd.org, svn-src-user@freebsd.org
Subject: Re: svn commit: r201326 - user/dougb/portmaster
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 01 Jan 2010 18:47:49 -0000

In message: <4B3C4716.9020806@freebsd.org>
            Tim Kientzle <kientzle@FreeBSD.org> writes:
: Doug Barton wrote:
: >   Even though it's probably already obvious, add a hint as to what the
: >   non-default option is for the y/n prompts.
: 
: > - echo -n "	===>>> Delete this dependency data? [n] "
: > + echo -n "	===>>> Delete this dependency data? y/[n] "
: 
: I've seen this done a little more clearly by using an
: uppercase letter to indicate the default: [Y/n]

This also seems the de-facto standard for doing this.  The new echo
above is something I've never seen before and is more confusing that
the old echo above...

Warner

From owner-svn-src-user@FreeBSD.ORG  Fri Jan  1 23:45:51 2010
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 36F6F106566C;
	Fri,  1 Jan 2010 23:45:51 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 26FEF8FC1B;
	Fri,  1 Jan 2010 23:45:51 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o01NjpiO061741;
	Fri, 1 Jan 2010 23:45:51 GMT (envelope-from dougb@svn.freebsd.org)
Received: (from dougb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o01NjpxD061740;
	Fri, 1 Jan 2010 23:45:51 GMT (envelope-from dougb@svn.freebsd.org)
Message-Id: <201001012345.o01NjpxD061740@svn.freebsd.org>
From: Doug Barton <dougb@FreeBSD.org>
Date: Fri, 1 Jan 2010 23:45:51 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201372 - user/dougb/portmaster
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 01 Jan 2010 23:45:51 -0000

Author: dougb
Date: Fri Jan  1 23:45:50 2010
New Revision: 201372
URL: http://svn.freebsd.org/changeset/base/201372

Log:
  1. Welcome in 2010 :)
  2. In safe_exit() when doing multiports and we interrupt the process
  the attempt to print the INSTALLED_LIST was not successeful. So move
  all of the related code into a test for INSTALLED_LIST's existence,
  and just print the whole list (even if it has only one item) in both
  the -a (as it was already) and multiport cases.
  3. Add a pm_cd_pd() which will cd into the port directory or error out
  with an appropriate message.
  4. Start using pm_cd_pd() where appropriate, including in a couple of
  new places where we have to go back to the port directory after cd'ing
  around elsewhere due to the new update_build_l().
  5. Make some other cd/pm_cd invocations consistent
  6. Add update_build_l, a more generic (and correct) way to update the
  list of things that we will build (or install) to display to the user.
  This function is now called in all the places where the list needs to
  be updated, except in the "main" area when we know for sure there is
  no installed version.
  7. In post_config() we can now simplify the code to print the build_l,
  but we have to change a local variable to not be the same as one
  used in multiport.
  8. Rearrange some things in update_port() to make it easier to read
  after all the new stuff has gone in.
  9. Continue tweaking the term_printf stuff so that now it should work
  in all 3 cases, one port, multiports, and -a.
  10. In init_term_printf() we only want to set *_of_deps to 0 if they
  don't already exist. Otherwise we lose the work we've done already
  in multiport().

Modified:
  user/dougb/portmaster/portmaster

Modified: user/dougb/portmaster/portmaster
==============================================================================
--- user/dougb/portmaster/portmaster	Fri Jan  1 22:47:53 2010	(r201371)
+++ user/dougb/portmaster/portmaster	Fri Jan  1 23:45:50 2010	(r201372)
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-# Copyright (c) 2005-2009 Douglas Barton, All rights reserved
+# Copyright (c) 2005-2010 Douglas Barton, All rights reserved
 # Please see detailed copyright below
 
 trap trap_exit INT
@@ -180,19 +180,21 @@ safe_exit () {
 			;;
 		esac
 
-		if [ -n "$UPDATE_ALL" -a -n "$INSTALLED_LIST" ]; then
-			show_list=all
-		else
-			case "$INSTALLED_LIST" in
-			*\\n\\t*)	show_list=all ;;
-			*\\n)		show_list=one ;;
+		if [ -n "$INSTALLED_LIST" ]; then
+			if [ -n "$UPDATE_ALL" -o -n "$PM_MULTI_PORTS" ]; then
+				show_list=all
+			else
+				case "$INSTALLED_LIST" in
+				*\\n\\t*)	show_list=all ;;
+				*\\n)		show_list=one ;;
+				esac
+			fi
+			case "$show_list" in
+			all) echo "===>>> The following actions were performed:"
+				echo -e $INSTALLED_LIST ;;
+			one)	echo "===>>> $ilist complete" ; echo '' ;;
 			esac
 		fi
-		case "$show_list" in
-		all)	echo "===>>> The following actions were performed:"
-			echo -e $INSTALLED_LIST ;;
-		one)	echo "===>>> $ilist complete" ; echo '' ;;
-		esac
 
 		if [ -n "$build_deps_il" ]; then
 		echo "===>>> Deleting installed build-only dependencies"
@@ -341,6 +343,8 @@ usage () {
 }
 
 pm_cd     () { builtin cd $1 2>/dev/null || return 1; }
+pm_cd_pd  () { builtin cd $pd/$1 2>/dev/null ||
+		fail "Cannot cd to port directory: $pd/$origin"; }
 pm_kill   () { /bin/kill $* >/dev/null 2>/dev/null; }
 pm_make   () { ( unset -v CUR_DEPS INSTALLED_LIST PM_DEPTH;
 		 unset -v MASTER_RB_LIST CONFIG_SEEN_LIST;
@@ -1154,9 +1158,9 @@ pm_pkg_create () {
 			local pkg latest_link
 
 			pkg=`echo $2.*`
-			pm_cd $pd/$portdir
+			pm_cd_pd $portdir
 			latest_link=`pm_make -V LATEST_LINK`
-			pm_cd ${1}/Latest
+			cd ${1}/Latest
 			ln -sf ../All/$pkg ${latest_link}.tbz
 			cd ${1}/${portdir%/*}
 			ln -sf ../All/$pkg $pkg
@@ -1654,27 +1658,44 @@ term_printf () {
 	printf "\033]0;${0##*/}: ${PM_PARENT_PORT}${1}\007"
 }
 
+update_build_l () {
+	local origin iport new_port
+
+	case "$1" in
+	*/*)	origin=$1 ; iport=`iport_from_origin $origin`
+		if [ -z "$iport" ]; then
+			build_l="${build_l}\tInstall $origin\n"
+			return
+		fi ;;
+	*)	origin=`origin_from_pdb $1` ; iport=$1 ;;
+	esac
+
+	pm_cd $pd/$origin && new_port=`pm_make -V PKGNAME`
+
+	case `pkg_version -t $iport $new_port 2>/dev/null` in
+	\<)	build_l="${build_l}\tUpgrade $iport to $new_port\n" ;;
+	=)	build_l="${build_l}\tRe-install $iport\n" ;;
+	\>)	build_l="${build_l}\tDowngrade $iport to $new_port\n" ;;
+	*)	build_l="${build_l}\tUpgrade $iport\n" ;;
+	esac
+}
+
 update_port () {
 	local update_to
 
-	dep_of_deps=$(( $dep_of_deps + 1 ))
+	update_to=" to $2"
+	echo "===>>> Launching child to update ${1#$pd/}${update_to}"
 
-	[ -n "$2" ] && update_to=" to $2"
+	dep_of_deps=$(( $dep_of_deps + 1 ))
 
 	if [ -n "$CONFIG_ONLY" ]; then
 		num_of_deps=$(( $num_of_deps + 1 ))
-		case "$1" in
-		*/*)	build_l="${build_l}\tInstall $1\n" ;;
-		*)	build_l="${build_l}\tUpgrade ${1#$pd/}${update_to}\n" ;;
-		esac
-#echo '' ; echo "Debug> num_deps $num_of_deps"
+		update_build_l $1
 	fi
 
-	echo "===>>> Launching child to update ${1#$pd/}${update_to}"
-
 	if [ -n "$PM_DEPTH" ]; then
 		echo "	${PM_DEPTH}>> ${1#$pd/}"
-term_printf "${PM_DEPTH#$PM_PARENT_PORT}>> ${1#$pd/} (${dep_of_deps}/${num_of_deps})"
+term_printf " ${PM_DEPTH#* }>> ${1#$pd/} (${dep_of_deps}/${num_of_deps})"
 	else
 		if [ -n "$UPDATE_ALL" ]; then
 		term_printf " >> ${1#$pd/} (${dep_of_deps}/${num_of_deps})"
@@ -1704,7 +1725,7 @@ term_printf "${PM_DEPTH#$PM_PARENT_PORT}
 	elif [ -n "$CONFIG_ONLY" -a -z "$PM_PACKAGES" ]; then
 	echo "===>>> Continuing 'make config' dependency check for $portdir"
 	else
-term_printf "${PM_DEPTH#$PM_PARENT_PORT}(${dep_of_deps}/${num_of_deps})"
+term_printf " ${PM_DEPTH#* }(${dep_of_deps}/${num_of_deps})"
 		echo "===>>> Returning to dependency check for $portdir"
 	fi
 	return 0
@@ -1745,6 +1766,7 @@ dependency_check () {
 	# Print a message here because sometimes list generation takes
 	# a long time to return.
 	echo "===>>> Gathering dependency list for $portdir from ports"
+	pm_cd_pd $portdir
 	d_port_list=`pm_make $1 | sort -u`
 
 	if [ -z "$d_port_list" ]; then
@@ -1770,7 +1792,7 @@ dependency_check () {
 			for dep in $d_port_list; do
 				case "$rundeps" in
 				*${dep}*)
-# XXX
+# XXX Need to figure out -t case
 	varname=`echo ${dep#$pd/} | sed 's#[-+/\.]#_#g'`
 	rundep_list="$rundep_list $varname"
 	eval $varname=\"$portdir \$$varname\"
@@ -1899,7 +1921,14 @@ dependency_check () {
 		case "$PM_DEPTH" in *\>\>*) echo "	$PM_DEPTH" ;; esac
 	else
 		echo "===>>> Dependency check complete for $portdir"
-		case "$PM_DEPTH" in *\>\>*) echo "	$PM_DEPTH" ;; esac
+		case "$PM_DEPTH" in
+		*\>\>*)	echo "	$PM_DEPTH" ;;
+		*)	if [ "$PM_PARENT_PORT" = All ]; then
+	term_printf " >> ${upg_port:-$portdir} (${dep_of_deps}/${num_of_deps})"
+			else
+				term_printf
+			fi ;;
+		esac
 	fi
 }
 
@@ -1917,28 +1946,14 @@ create_master_rb_list () {
 }
 
 post_config () {
-	local num answer action
+	local numdeps answer action
 
-	[ $num_of_deps -gt 0 ] && num=" (${num_of_deps})"
-	term_printf "$num"
+	[ $num_of_deps -gt 0 ] && numdeps=" (${num_of_deps})"
+	term_printf "$numdeps"
 
-# XXX
 	echo ''
 	echo "===>>> If you choose to proceed, the following will be done:"
-	if [ -z "$UPDATE_ALL" ]; then
-# XXX Needs something here for multiport()
-		if [ -n "$upg_port" ]; then
-			cd $pd/$portdir && new_port=`pm_make -V PKGNAME`
-			case `pkg_version -t $upg_port $new_port` in
-			\<)	echo "	Upgrade $upg_port to $new_port" ;;
-			=)	echo "	Re-install $upg_port" ;;
-			\>)	echo "	Downgrade $upg_port to $new_port" ;;
-			esac
-		else
-			echo "	Install $portdir"
-		fi
-	fi
-	[ -n "$build_l" ] && echo -e "$build_l"
+	echo -e "$build_l"
 	echo -n "===>>> Proceed? n/[y] "
 	read answer
 	case "$answer" in
@@ -1992,8 +2007,8 @@ post_config () {
 
 init_term_printf () {
 	PM_PARENT_PORT=$1
-	num_of_deps=0
-	dep_of_deps=0
+	[ -z "$num_of_deps" ] && num_of_deps=0
+	[ -z "$dep_of_deps" ] && dep_of_deps=0
 	export PM_PARENT_PORT num_of_deps dep_of_deps
 
 	term_printf
@@ -2042,6 +2057,7 @@ multiport () {
 		portlist="${portlist}\t${port}\n"
 		PM_MULTI_PORTS="${PM_MULTI_PORTS}${port}:"
 		numports=$(( $numports + 1 ))
+		update_build_l $port
 	done
 
 	echo "===>>> Working on multiple ports:"
@@ -2098,6 +2114,7 @@ make_config () {
 	[ -n "$FORCE_CONFIG" ] && config_type=config
 	[ -n "$PM_SU_VERBOSE" ] &&
 		echo "===>>> Running 'make $config_type'"
+	pm_cd_pd $portdir
 	pm_make_s $config_type
 }
 
@@ -2413,6 +2430,14 @@ else
 	PM_DEPTH="${PM_DEPTH}>> ${upg_port:-$portdir} "
 fi
 
+if [ -n "$CONFIG_ONLY" -a "$$" -eq "$PM_PARENT_PID" ]; then
+	if [ -n "$upg_port" ]; then
+		update_build_l $upg_port
+	else
+		build_l="${build_l}\tInstall $portdir\n"
+	fi
+fi
+
 echo ''
 [ "$$" -eq "$PM_PARENT_PID" -a -n "$upg_port" ] &&
 	echo "===>>> Currently installed version: $upg_port"
@@ -2502,7 +2527,6 @@ if [ -n "$CONFIG_ONLY" ]; then
 	if [ ! "$$" -eq "$PM_PARENT_PID" ]; then
 		# Save state for the parent process to read back in
 		echo "CONFIG_SEEN_LIST='$CONFIG_SEEN_LIST'" > $IPC_SAVE
-# XXX config
 		echo "num_of_deps='$num_of_deps'" >> $IPC_SAVE
 		echo "build_l='$build_l'" >> $IPC_SAVE
 
@@ -2560,7 +2584,7 @@ fi
 
 [ -z "$PM_BUILDING" ] && export PM_BUILDING=pmbuildingmain
 
-cd $pd/$portdir
+pm_cd_pd $portdir
 
 if [ -n "$PM_BUILD_ONLY_LIST" ]; then
 	case "$build_only_dl_g" in
@@ -2588,8 +2612,6 @@ elif [ -z "$NO_RECURSIVE_CONFIG" -a "$$"
 	echo ''
 fi
 
-[ "$$" -eq "$PM_PARENT_PID" ] && term_printf
-
 if [ -n "$NO_ACTION" -a -z "$CONFIG_ONLY" ]; then
 	[ -n "$PM_VERBOSE" ] && echo "===>>> Build canceled due to -n flag"
 	safe_exit
@@ -3136,7 +3158,7 @@ safe_exit
 
 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-#  Copyright (c) 2005-2009 Douglas Barton
+#  Copyright (c) 2005-2010 Douglas Barton
 #  All rights reserved.
 #
 #  Redistribution and use in source and binary forms, with or without

From owner-svn-src-user@FreeBSD.ORG  Sat Jan  2 04:20:42 2010
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 419061065672;
	Sat,  2 Jan 2010 04:20:42 +0000 (UTC)
	(envelope-from kmacy@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2EDCF8FC15;
	Sat,  2 Jan 2010 04:20:42 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o024Kg4S032072;
	Sat, 2 Jan 2010 04:20:42 GMT (envelope-from kmacy@svn.freebsd.org)
Received: (from kmacy@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o024KgUq032069;
	Sat, 2 Jan 2010 04:20:42 GMT (envelope-from kmacy@svn.freebsd.org)
Message-Id: <201001020420.o024KgUq032069@svn.freebsd.org>
From: Kip Macy <kmacy@FreeBSD.org>
Date: Sat, 2 Jan 2010 04:20:42 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201376 -
	user/kmacy/releng_8_fcs_buf_xen/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 02 Jan 2010 04:20:42 -0000

Author: kmacy
Date: Sat Jan  2 04:20:41 2010
New Revision: 201376
URL: http://svn.freebsd.org/changeset/base/201376

Log:
  - don't allocate bufs for buffers less than 128k - they tend to not be for page aligned access
  - don't mark page as managed until immediately before freeing
  - mark buffer as valid at all places where we trust the data
  - mark buffer invalid before freeing so that vfs_bio will release the pages
  - move page to inactive queue immediately before freeing
  - fix overlap chacks
  - set bufobj for vmio / clear when pages are removed from the object

Modified:
  user/kmacy/releng_8_fcs_buf_xen/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
  user/kmacy/releng_8_fcs_buf_xen/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_bio.c

Modified: user/kmacy/releng_8_fcs_buf_xen/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
==============================================================================
--- user/kmacy/releng_8_fcs_buf_xen/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c	Sat Jan  2 01:12:10 2010	(r201375)
+++ user/kmacy/releng_8_fcs_buf_xen/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c	Sat Jan  2 04:20:41 2010	(r201376)
@@ -1531,7 +1531,7 @@ arc_evict(arc_state_t *state, spa_t *spa
 	ASSERT(state == arc_mru || state == arc_mfu);
 
 	evicted_state = (state == arc_mru) ? arc_mru_ghost : arc_mfu_ghost;
-	recycle = (bytes & PAGE_MASK) ? recycle : FALSE;
+	recycle = (bytes == 128*1024) ? FALSE : recycle;
 
 	if (type == ARC_BUFC_METADATA) {
 		offset = 0;

Modified: user/kmacy/releng_8_fcs_buf_xen/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_bio.c
==============================================================================
--- user/kmacy/releng_8_fcs_buf_xen/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_bio.c	Sat Jan  2 01:12:10 2010	(r201375)
+++ user/kmacy/releng_8_fcs_buf_xen/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_bio.c	Sat Jan  2 04:20:41 2010	(r201376)
@@ -120,12 +120,17 @@ MALLOC_DEFINE(M_ZFS_BIO, "zfs_bio", "zfs
 
 #define	B_DATA		B_00001000
 
-#define	ZB_EVICT_ALL		0x1
-#define	ZB_EVICT_BUFFERED	0x2
-
-#define	ZB_COPYIN		0x2
-#define	ZB_COPYOUT		0x3
 
+typedef enum {
+	ZB_EVICT_ALL		= 0x1,
+	ZB_EVICT_BUFFERED	= 0x2
+} zb_evict_type_t;
+	
+enum {
+	ZB_COPYIN		= 0x2,
+	ZB_COPYOUT		= 0x3
+};
+	
 #define	NO_TXG			0x0
 
 #define btos(nbytes)	((nbytes)>>DEV_BSHIFT)
@@ -546,6 +551,10 @@ zio_buf_blkno_remove_locked(vm_object_t 
 	 */
 	state->zss_resident_count--;
 	state->zss_generation++;
+
+#ifdef INVARIANTS
+	bp->b_right = bp->b_left = NULL;
+#endif	
 }
 
 static void
@@ -625,16 +634,8 @@ zio_buf_vm_object_evict(buf_t bp)
 	vm_page_lock_queues();
 	for (i = 0; i < bp->b_npages; i++) {
 		m = bp->b_pages[i];
-		vm_pageq_remove(m);
-	}
-	/*
-	 * remove pages from backing vm_object 
-	 */
-	for (i = 0; i < bp->b_npages; i++) {
-		m = bp->b_pages[i];
 		vm_page_remove(m);
 		m->valid = 0;
-		m->flags |= PG_UNMANAGED;
 	}
 	vm_page_unlock_queues();
 }
@@ -657,14 +658,7 @@ zio_buf_vm_object_insert(buf_t bp, struc
 		if (valid)
 			m->valid = VM_PAGE_BITS_ALL;
 		vm_page_insert(m, object, start + i);
-		m->flags &= ~PG_UNMANAGED;
-	}
-	vm_page_lock_queues();
-	for (i = 0; i < bp->b_npages; i++) {
-		m = bp->b_pages[i];
-		vm_page_enqueue(PQ_INACTIVE, m);
 	}
-	vm_page_unlock_queues();
 }
 
 /*
@@ -680,7 +674,7 @@ zio_buf_vm_object_insert(buf_t bp, struc
  */
 static void
 zio_buf_evict_overlap(vm_object_t object, daddr_t blkno, int size,
-    zio_spa_state_t state, uint64_t txg, int evict_op)
+    zio_spa_state_t state, uint64_t txg, zb_evict_type_t evict_op)
 {
 	buf_t root, tmpbp, bp_prev;
 	daddr_t blkno_end, tmpblkno, tmpblkno_end;
@@ -695,14 +689,21 @@ zio_buf_evict_overlap(vm_object_t object
 
 	collisions = 0;
 	blkno_end = blkno + btos(size);
-	root = zio_buf_blkno_splay(blkno, root);
-	if (blkno < root->b_blkno)
-		tmpbp = TAILQ_PREV(root, cluster_list_head, b_freelist);
+	if ((root = zio_buf_blkno_splay(blkno, root)) == NULL)
+		goto done;
 
+	if ((blkno >= root->b_blkno) ||
+	    (tmpbp = TAILQ_PREV(root, cluster_list_head, b_freelist)) == NULL ||
+	    (blkno >= tmpbp->b_blkno + btos(tmpbp->b_bcount)))
+		tmpbp = root;
+	if ((blkno_end <= tmpbp->b_blkno) ||
+	    (blkno >= root->b_blkno + btos(root->b_bcount)))
+		goto done;
+	
 	/*
 	 * Find all existing buffers that overlap with this range
 	 */
-	bp_prev = tmpbp = tmpbp != NULL ? tmpbp : root;
+	bp_prev = tmpbp;
 	while (tmpbp != NULL && tmpbp->b_blkno < blkno_end) {
 		tmpblkno = tmpbp->b_blkno;
 		tmpblkno_end = tmpblkno + btos(tmpbp->b_bcount);
@@ -721,16 +722,16 @@ zio_buf_evict_overlap(vm_object_t object
 		tmpbp = TAILQ_FIRST(&clh);
 		TAILQ_REMOVE(&clh, tmpbp, b_cluster.cluster_entry);
 		zio_buf_vm_object_evict(tmpbp);
-
+		tmpbp->b_bufobj = NULL;
 		tmpbp->b_flags &= ~B_VMIO;
-		state->zss_blkno_root = tmpbp;
+		tmpbp->b_blkno = tmpbp->b_lblkno = 0;
 		/*
 		 * move buffer to the unmanaged tree
 		 */
 		zio_buf_blkno_remove_locked(object, tmpbp);
 	}
 done:
-	if (!(collisions == 1 && tmpbp->b_blkno == blkno &&
+	if (!(collisions == 1 && tmpbp != NULL && tmpbp->b_blkno == blkno &&
 		tmpbp->b_bcount == size) && (evict_op == ZB_EVICT_ALL)) {
 		start = OFF_TO_IDX(stob(blkno));
 		end = start + OFF_TO_IDX(size);
@@ -753,12 +754,11 @@ done:
 static void
 vm_object_reference_pages(vm_object_t object, buf_t bp)
 {
-	uint64_t blkno, size;
 	vm_pindex_t start;
 	vm_page_t m;
 	int i;
 
-	start = OFF_TO_IDX(stob(blkno));
+	start = OFF_TO_IDX(stob(bp->b_blkno));
 	vm_page_lock_queues();
 	for (i = 0; i < bp->b_npages; i++) {
 		m = vm_page_lookup(object, start + i);
@@ -853,12 +853,24 @@ void
 zio_relse(void *data, size_t size)
 {
 	buf_t bp;
+	vm_page_t m;
+	int i;
 
 	bp = zio_buf_va_remove(data, size);
 
-	if (bp->b_flags & B_VMIO)
+	if (bp->b_flags & B_VMIO) {
+		vm_page_lock_queues();
+		for (i = 0; i < bp->b_npages; i++) {
+			m = bp->b_pages[i];
+			m->wire_count--;
+			m->flags &= ~PG_UNMANAGED;
+			vm_page_deactivate(m);
+			m->wire_count++; /* brelse assumes wire_count is set */
+		}
+		vm_page_unlock_queues();
 		zio_buf_blkno_remove(bp);
-
+	}
+	
 	if (bp->b_flags & B_MALLOC) {
 		if (bp->b_flags & B_DATA)
 			_zio_data_buf_free(bp->b_data, size);
@@ -869,8 +881,8 @@ zio_relse(void *data, size_t size)
 		CTR4(KTR_SPARE2, "arc_brelse() bp=%p flags %X"
 		    " size %ld blkno=%ld",
 		    bp, bp->b_flags, size, bp->b_blkno);
-
-		bp->b_flags |= B_ZFS;
+		bp->b_flags |= (B_ZFS|B_INVAL);
+		bp->b_flags &= ~B_CACHE;
 		brelse(bp);
 	}
 }
@@ -923,10 +935,15 @@ _zio_sync_cache(spa_t *spa, blkptr_t *bl
 		zio_buf_evict_overlap(object, blkno, size, state, NO_TXG,
 		    ZB_EVICT_ALL);
 		bp->b_blkno = bp->b_lblkno = blkno;
+		bp->b_bufobj = &vp->v_bufobj;
 		bp->b_flags |= B_VMIO;
 		bp->b_birth = txg;
 		bp->b_state = state;
 		zio_buf_blkno_insert(bp, state);
+		if (zio_op == ZIO_TYPE_WRITE) {
+			bp->b_flags |= B_CACHE;
+			bp->b_flags &= ~B_INVAL;
+		}
 		zio_buf_vm_object_insert(bp, vp, object, zio_op == ZIO_TYPE_WRITE);
 		VM_OBJECT_UNLOCK(object);
 	} else {
@@ -935,9 +952,11 @@ _zio_sync_cache(spa_t *spa, blkptr_t *bl
 		zio_buf_evict_overlap(object, blkno, size, state, NO_TXG,
 		    ZB_EVICT_BUFFERED);
 		bp->b_blkno = bp->b_lblkno = blkno;
-		bp->b_flags |= B_VMIO;
+		bp->b_bufobj = &vp->v_bufobj;
+		bp->b_flags |= (B_VMIO|B_CACHE);
+		bp->b_flags &= ~B_INVAL;
 		bp->b_birth = txg;
-		bp->b_state = state;		
+		bp->b_state = state;
 		zio_buf_blkno_insert(bp, state);
 		if (vm_pages_valid_locked(object, blkno, size)) {
 			for (i = 0; i < bp->b_npages; i++) {
@@ -966,8 +985,8 @@ _zio_cache_valid(void *data, uint64_t si
 	if ((bp->b_flags & B_VMIO) == 0)
 		return;
 	for (i = 0; i < bp->b_npages; i++) {
-		KASSERT((bp->b_pages[i]->flags & PG_UNMANAGED) == 0,
-		    ("validating unmanaged page"));
+		KASSERT(bp->b_pages[i]->object != NULL,
+		    ("validating page not in object"));
 		bp->b_pages[i]->valid = VM_PAGE_BITS_ALL;
 	}
 	bp->b_flags &= ~B_INVAL;

From owner-svn-src-user@FreeBSD.ORG  Sat Jan  2 05:29:07 2010
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 78B061065679;
	Sat,  2 Jan 2010 05:29:07 +0000 (UTC)
	(envelope-from kmacy@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 4ED1A8FC1A;
	Sat,  2 Jan 2010 05:29:07 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o025T7NJ047045;
	Sat, 2 Jan 2010 05:29:07 GMT (envelope-from kmacy@svn.freebsd.org)
Received: (from kmacy@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o025T7M0047044;
	Sat, 2 Jan 2010 05:29:07 GMT (envelope-from kmacy@svn.freebsd.org)
Message-Id: <201001020529.o025T7M0047044@svn.freebsd.org>
From: Kip Macy <kmacy@FreeBSD.org>
Date: Sat, 2 Jan 2010 05:29:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201377 - user/kmacy/releng_8_rump
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 02 Jan 2010 05:29:07 -0000

Author: kmacy
Date: Sat Jan  2 05:29:07 2010
New Revision: 201377
URL: http://svn.freebsd.org/changeset/base/201377

Log:
  create branch for porting NetBSD's "rump" framework

Added:
     - copied from r201376, stable/8/
Directory Properties:
  user/kmacy/releng_8_rump/   (props changed)

From owner-svn-src-user@FreeBSD.ORG  Sat Jan  2 06:12:05 2010
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id EFC0A1065692;
	Sat,  2 Jan 2010 06:12:04 +0000 (UTC)
	(envelope-from kmacy@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id DACF08FC17;
	Sat,  2 Jan 2010 06:12:04 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o026C4Ei056487;
	Sat, 2 Jan 2010 06:12:04 GMT (envelope-from kmacy@svn.freebsd.org)
Received: (from kmacy@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o026C4m3056453;
	Sat, 2 Jan 2010 06:12:04 GMT (envelope-from kmacy@svn.freebsd.org)
Message-Id: <201001020612.o026C4m3056453@svn.freebsd.org>
From: Kip Macy <kmacy@FreeBSD.org>
Date: Sat, 2 Jan 2010 06:12:04 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201378 - in user/kmacy/releng_8_rump/sys/rump: . dev
	dev/lib dev/lib/libcgd dev/lib/libdisk dev/lib/libdm
	dev/lib/libnetsmb dev/lib/libraidframe dev/lib/librnd dev/wip
	dev/wip/libnet80...
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 02 Jan 2010 06:12:05 -0000

Author: kmacy
Date: Sat Jan  2 06:12:04 2010
New Revision: 201378
URL: http://svn.freebsd.org/changeset/base/201378

Log:
  import NetBSD's most recent rump bits

Added:
  user/kmacy/releng_8_rump/sys/rump/
  user/kmacy/releng_8_rump/sys/rump/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/Makefile.rump   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/README.dirs
  user/kmacy/releng_8_rump/sys/rump/TODO
  user/kmacy/releng_8_rump/sys/rump/dev/
  user/kmacy/releng_8_rump/sys/rump/dev/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/Makefile.rumpdev   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/lib/
  user/kmacy/releng_8_rump/sys/rump/dev/lib/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/lib/Makefile.inc   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/lib/libcgd/
  user/kmacy/releng_8_rump/sys/rump/dev/lib/libcgd/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/lib/libcgd/component.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/lib/libcgd/shlib_version
  user/kmacy/releng_8_rump/sys/rump/dev/lib/libdisk/
  user/kmacy/releng_8_rump/sys/rump/dev/lib/libdisk/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/lib/libdisk/dummy.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/lib/libdisk/shlib_version
  user/kmacy/releng_8_rump/sys/rump/dev/lib/libdm/
  user/kmacy/releng_8_rump/sys/rump/dev/lib/libdm/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/lib/libdm/component.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/lib/libdm/shlib_version
  user/kmacy/releng_8_rump/sys/rump/dev/lib/libnetsmb/
  user/kmacy/releng_8_rump/sys/rump/dev/lib/libnetsmb/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/lib/libnetsmb/component.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/lib/libnetsmb/shlib_version
  user/kmacy/releng_8_rump/sys/rump/dev/lib/libraidframe/
  user/kmacy/releng_8_rump/sys/rump/dev/lib/libraidframe/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/lib/libraidframe/component.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/lib/libraidframe/shlib_version
  user/kmacy/releng_8_rump/sys/rump/dev/lib/librnd/
  user/kmacy/releng_8_rump/sys/rump/dev/lib/librnd/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/lib/librnd/component.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/lib/librnd/shlib_version
  user/kmacy/releng_8_rump/sys/rump/dev/wip/
  user/kmacy/releng_8_rump/sys/rump/dev/wip/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/Makefile.inc   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libnet80211/
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libnet80211/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libnet80211/shlib_version
  user/kmacy/releng_8_rump/sys/rump/dev/wip/librumpusbhc/
  user/kmacy/releng_8_rump/sys/rump/dev/wip/librumpusbhc/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/librumpusbhc/shlib_version
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libucom/
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libucom/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libucom/locators.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libucom/shlib_version
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libucom/ucom.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libucom/ucom_at_usb.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libulpt/
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libulpt/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libulpt/shlib_version
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libulpt/ulpt_at_usb.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libumass/
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libumass/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libumass/locators.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libumass/opt/
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libumass/opt/atapibus.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libumass/opt/opt_compat_freebsd.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libumass/opt/opt_scsi.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libumass/opt/scsibus.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libumass/opt/wd.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libumass/shlib_version
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libusb/
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libusb/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libusb/bus_dma.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libusb/locators.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libusb/opt/
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libusb/opt/opt_usbverbose.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libusb/shlib_version
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libusbrum/
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libusbrum/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libusbrum/rum_at_usb.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/dev/wip/libusbrum/shlib_version
  user/kmacy/releng_8_rump/sys/rump/fs/
  user/kmacy/releng_8_rump/sys/rump/fs/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/Makefile.rumpfs   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/
  user/kmacy/releng_8_rump/sys/rump/fs/lib/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/Makefile.inc   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libcd9660/
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libcd9660/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libcd9660/shlib_version
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libefs/
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libefs/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libefs/shlib_version
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libext2fs/
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libext2fs/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libext2fs/shlib_version
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libfdesc/
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libfdesc/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libfdesc/shlib_version
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libffs/
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libffs/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libffs/shlib_version
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libhfs/
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libhfs/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libhfs/shlib_version
  user/kmacy/releng_8_rump/sys/rump/fs/lib/liblfs/
  user/kmacy/releng_8_rump/sys/rump/fs/lib/liblfs/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/liblfs/shlib_version
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libmsdos/
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libmsdos/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libmsdos/shlib_version
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libnfs/
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libnfs/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libnfs/fs_nfs.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libnfs/opt_nfs.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libnfs/opt_nfs_boot.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libnfs/opt_nfsserver.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libnfs/opt_tftproot.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libnfs/opt_uvmhist.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libnfs/shlib_version
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libnfsserver/
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libnfsserver/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libnfsserver/shlib_version
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libnilfs/
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libnilfs/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libnilfs/shlib_version
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libntfs/
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libntfs/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libntfs/shlib_version
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libsmbfs/
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libsmbfs/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libsmbfs/shlib_version
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libsyspuffs/
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libsyspuffs/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libsyspuffs/puffs_rumpglue.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libsyspuffs/puffs_rumpglue.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libsyspuffs/shlib_version
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libsysvbfs/
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libsysvbfs/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libsysvbfs/shlib_version
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libtmpfs/
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libtmpfs/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libtmpfs/shlib_version
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libudf/
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libudf/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/lib/libudf/shlib_version
  user/kmacy/releng_8_rump/sys/rump/fs/rumptest/
  user/kmacy/releng_8_rump/sys/rump/fs/rumptest/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/fs/rumptest/rumptest.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/include/
  user/kmacy/releng_8_rump/sys/rump/include/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/include/machine/
  user/kmacy/releng_8_rump/sys/rump/include/machine/cpu.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/include/machine/intr.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/include/rump/
  user/kmacy/releng_8_rump/sys/rump/include/rump/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/include/rump/makerumpdefs.sh   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/include/rump/rump.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/include/rump/rump_namei.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/include/rump/rump_syscalls.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/include/rump/rumpdefs.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/include/rump/rumpkern_if_pub.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/include/rump/rumpnet_if_pub.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/include/rump/rumpuser.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/include/rump/rumpvfs_if_pub.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/include/rump/rumpvnode_if.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/ldscript.rump
  user/kmacy/releng_8_rump/sys/rump/librump/
  user/kmacy/releng_8_rump/sys/rump/librump/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/Makefile.inc   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/makerumpif.sh   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpcrypto/
  user/kmacy/releng_8_rump/sys/rump/librump/rumpcrypto/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpcrypto/Makefile.rumpcrypto   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpdev/
  user/kmacy/releng_8_rump/sys/rump/librump/rumpdev/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpdev/Makefile.rumpdev   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpdev/autoconf.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpdev/rump_dev.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpdev/rump_dev_private.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/Makefile.rumpkern   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/arch/
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/arch/alpha/
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/arch/alpha/Makefile.inc   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/arch/alpha/rumpcrud.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/arch/i386/
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/arch/i386/Makefile.inc   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/arch/i386/rumpcpu.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/arch/i386/rumpspl.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/arch/mips/
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/arch/mips/Makefile.inc   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/arch/x86_64/
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/arch/x86_64/Makefile.inc   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/atomic_cas_generic.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/emul.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/intr.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/kobj_stubs.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/locks.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/ltsleep.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/memalloc.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/config_file.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/fs_ffs.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/fs_union.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/fss.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/ksyms.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_bufcache.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_compat_43.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_compat_netbsd.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_ddb.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_defcorename.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_dump.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_fileassoc.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_hz.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_ipkdb.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_kgdb.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_ktrace.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_lockdebug.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_magiclinks.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_modular.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_multiprocessor.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_nmbclusters.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_pool.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_poollog.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_ptrace.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_revcache.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_rtc_offset.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_sa.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_sysv.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_sysvparam.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_uvmhist.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/opt_vnode_lockdebug.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/rnd.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/opt/veriexec.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/percpu.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/pmap_stub.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/rump.3   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/rump.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/rump_private.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/rump_syscalls.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/rumpcopy.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/rumpcpu_generic.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/rumpkern.ifspec
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/rumpkern_if_priv.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/rumpkern_if_wrappers.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/scheduler.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/sleepq.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/sysproxy_socket.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/threads.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpkern/vm.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpnet/
  user/kmacy/releng_8_rump/sys/rump/librump/rumpnet/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpnet/Makefile.rumpnet   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpnet/net_stub.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpnet/netisr.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpnet/opt/
  user/kmacy/releng_8_rump/sys/rump/librump/rumpnet/opt/arp.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpnet/opt/opt_atalk.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpnet/opt/opt_inet.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpnet/opt/opt_inet6.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpnet/opt/opt_iso.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpnet/opt/opt_mbuftrace.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpnet/opt/opt_natm.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpnet/opt/opt_pipe.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpnet/opt/opt_sb_max.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpnet/opt/opt_sock_counters.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpnet/opt/opt_somaxkva.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpnet/opt/opt_sosend_loan.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpnet/opt/pfsync.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpnet/rump_net.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpnet/rump_net_private.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpnet/rumpnet.ifspec
  user/kmacy/releng_8_rump/sys/rump/librump/rumpnet/rumpnet_if_priv.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpnet/rumpnet_if_wrappers.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpuser/
  user/kmacy/releng_8_rump/sys/rump/librump/rumpuser/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpuser/rumpuser.3   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpuser/rumpuser.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpuser/rumpuser_dl.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpuser/rumpuser_int.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpuser/rumpuser_net.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpuser/rumpuser_pth.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpuser/rumpuser_pth_dummy.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpvfs/
  user/kmacy/releng_8_rump/sys/rump/librump/rumpvfs/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpvfs/Makefile.rumpvfs   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpvfs/compat.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpvfs/devnodes.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpvfs/devnull.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpvfs/fstrans_stub.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpvfs/rump_vfs.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpvfs/rump_vfs_private.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpvfs/rumpblk.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpvfs/rumpfs.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpvfs/rumpvfs.ifspec
  user/kmacy/releng_8_rump/sys/rump/librump/rumpvfs/rumpvfs_if_priv.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpvfs/rumpvfs_if_wrappers.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpvfs/rumpvnode_if.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpvfs/vfsops_stub.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/rumpvfs/vm_vfs.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/test/
  user/kmacy/releng_8_rump/sys/rump/librump/test/sysproxy/
  user/kmacy/releng_8_rump/sys/rump/librump/test/sysproxy/client/
  user/kmacy/releng_8_rump/sys/rump/librump/test/sysproxy/client/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/test/sysproxy/client/sysproxy_client.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/test/sysproxy/serv/
  user/kmacy/releng_8_rump/sys/rump/librump/test/sysproxy/serv/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/librump/test/sysproxy/serv/sysproxy_serv.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/
  user/kmacy/releng_8_rump/sys/rump/net/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/Makefile.rumpnet   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/
  user/kmacy/releng_8_rump/sys/rump/net/lib/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/Makefile.inc   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/liblocal/
  user/kmacy/releng_8_rump/sys/rump/net/lib/liblocal/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/liblocal/component.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/liblocal/shlib_version
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnet/
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnet/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnet/component.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnet/opt/
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnet/opt/agr.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnet/opt/bpfilter.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnet/opt/bridge.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnet/opt/carp.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnet/opt/opt_ipx.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnet/opt/opt_pfil_hooks.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnet/opt/opt_pppoe.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnet/opt/opt_route.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnet/opt/pppoe.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnet/opt/vlan.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnet/shlib_version
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/Makefile.inc   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/component.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/opt/
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/opt/arcnet.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/opt/etherip.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/opt/faith.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/opt/fddi.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/opt/gif.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/opt/gre.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/opt/opt_eon.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/opt/opt_gateway.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/opt/opt_inet_conf.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/opt/opt_inet_csum.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/opt/opt_ipsec.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/opt/opt_mrouting.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/opt/opt_pim.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/opt/opt_tcp_compat_42.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/opt/opt_tcp_congctl.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/opt/opt_tcp_debug.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/opt/opt_tcp_space.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/opt/rnd.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/opt/token.h   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libnetinet/shlib_version
  user/kmacy/releng_8_rump/sys/rump/net/lib/libshmif/
  user/kmacy/releng_8_rump/sys/rump/net/lib/libshmif/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libshmif/if_shmem.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libshmif/shlib_version
  user/kmacy/releng_8_rump/sys/rump/net/lib/libsockin/
  user/kmacy/releng_8_rump/sys/rump/net/lib/libsockin/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libsockin/component.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libsockin/shlib_version
  user/kmacy/releng_8_rump/sys/rump/net/lib/libsockin/sockin.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libvirtif/
  user/kmacy/releng_8_rump/sys/rump/net/lib/libvirtif/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libvirtif/component.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libvirtif/if_virt.c   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/lib/libvirtif/shlib_version
  user/kmacy/releng_8_rump/sys/rump/net/rumptest/
  user/kmacy/releng_8_rump/sys/rump/net/rumptest/Makefile   (contents, props changed)
  user/kmacy/releng_8_rump/sys/rump/net/rumptest/rumptest_net.c   (contents, props changed)

Added: user/kmacy/releng_8_rump/sys/rump/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/Makefile	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,6 @@
+#	$NetBSD: Makefile,v 1.5 2009/09/04 17:21:34 pooka Exp $
+#
+
+SUBDIR=	include librump dev fs net
+
+.include <bsd.subdir.mk>

Added: user/kmacy/releng_8_rump/sys/rump/Makefile.rump
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/Makefile.rump	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,82 @@
+#	$NetBSD: Makefile.rump,v 1.45 2009/12/12 17:10:19 pooka Exp $
+#
+
+WARNS?=		3	# XXX: src/sys won't compile with -Wsign-compare yet
+NOLINT=		# kernel code
+
+.include <bsd.own.mk>
+
+# use kernel ABI instead of rump ABI (needs md code)
+.ifndef RUMPKMOD
+CPPFLAGS:=	-I${RUMPTOP}/include ${CPPFLAGS}
+.endif
+
+CFLAGS+=	-ffreestanding -fno-strict-aliasing
+CWARNFLAGS+=	-Wno-format-zero-length
+CPPFLAGS+=	-D_RUMPKERNEL
+CPPFLAGS+=	-D_KERNEL -DMULTIPROCESSOR -D_MODULE -DMODULAR
+CPPFLAGS+=	-DMAXUSERS=32
+CPPFLAGS+=	-DDIAGNOSTIC
+CPPFLAGS+=	-DCOMPAT_50
+CPPFLAGS+=	-DDEBUGPRINT
+CPPFLAGS+=	-I${.CURDIR} -I.
+CPPFLAGS+=	-I${RUMPTOP}/../../common/include -I${RUMPTOP}/../arch
+CPPFLAGS+=	-I${RUMPTOP}/include
+CPPFLAGS+=	-I${RUMPTOP}/librump/rumpkern/opt
+CPPFLAGS+=	-nostdinc -I${RUMPTOP}/..
+LDFLAGS+=	-T ${RUMPTOP}/ldscript.rump
+#CPPFLAGS+=	-DDEBUG
+
+# kernel libs should not get linked against libc
+# XXX: actually, we would like to enable this but cannot, since it
+# also leaves out libgcc, it causes problems on some platforms.
+# revisit some day.
+#LDFLAGS+=	-nodefaultlibs
+
+# make sure __NetBSD__ gets defined (for builds on non-NetBSD)
+CPPFLAGS+=	-D__NetBSD__
+
+RUMPKERNEL=	This is NetBSD and I am the rump.  Good evening.
+
+# workaround: evbppc is not a well-defined arch
+.if (${MACHINE} == "evbppc")
+CPPFLAGS+=	-DPPC_OEA
+.endif
+
+# If this file changes, we need a full rebuild
+DPSRCS+=	${RUMPTOP}/Makefile.rump
+
+#
+# Rename library symbols before use.  If a symbol does not already belong
+# to a rump namespace ("rump" or "RUMP"), prefix it with "rumpns".  This
+# avoids accidentally linking any kernel symbol against host platform
+# libraries.  The only non-renamed symbols are linkset delimiters and
+# the GOT, which are more a property of the compiler than the kernel.
+#
+# Some toolchains generate unresolved symbols which are supposed to be
+# satisfied by the toolchain itself when the program is linked.
+# Unfortunately, we do not know which of the symbols are generated by
+# the toolchain.  Worse, they vary from platform to platform and
+# toolchain to toolchain.  The good news, however, is that this will
+# be detected by a compile-time failure, so we can fairly easily manage
+# a quirktable here.
+.if ${MACHINE_CPU} == "mips"
+_SYMQUIRK='|_gp_disp'
+.elif ${MACHINE_CPU} == "hppa"
+_SYMQUIRK='|\$$\$$'
+.endif
+__archivebuild: .USE
+	${_MKTARGET_BUILD}
+	rm -f ${.TARGET}
+	${AR} ${_ARFL} ${.TARGET} `NM=${NM} ${LORDER} ${.ALLSRC:M*o} | ${TSORT}`
+	${NM} -go ${.TARGET} | ${TOOL_AWK} '	\
+	    $$NF!~/^(rump|RUMP|__|_GLOBAL_OFFSET_TABLE'${_SYMQUIRK}')/ \
+	      {printf "%s rumpns_%s\n", $$NF, $$NF}' \
+	    | sort | uniq  > renametab.${.TARGET}
+	${OBJCOPY} --preserve-dates --redefine-syms \
+	    renametab.${.TARGET} ${.TARGET}
+	rm -f renametab.${.TARGET}
+	${AR} ${_ARRANFL} ${.TARGET}
+
+.-include "${NETBSDSRCDIR}/sys/arch/${MACHINE_CPU}/include/Makefile.inc"
+.-include "${NETBSDSRCDIR}/sys/arch/${MACHINE}/include/Makefile.inc"

Added: user/kmacy/releng_8_rump/sys/rump/README.dirs
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/README.dirs	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,44 @@
+	$NetBSD: README.dirs,v 1.9 2009/09/04 10:54:44 pooka Exp $
+
+    Runnable Userspace Meta Programs
+
+Quick rundown of the current directory structure:
+
+sys/rump/librump - kernel runtime emulation
+  /rumpkern	- kernel core, e.g. syscall, interrupt and lock support
+  /rumpuser	- userspace namespace support for rump, *NO* -D_KERNEL
+		  provides e.g. malloc() and some syscalls
+
+  /rumpcrypto	- kernel cryptographic routines
+  /rumpdev	- device support, e.g. autoconf subsystem
+  /rumpnet	- networking support and sockets layer
+  /rumpvfs	- file system support
+
+sys/rump/include
+  /machine - used for architectures where the rump ABI is not yet the
+	     same as the kernel module ABI.  will eventually disappear
+	     completely
+  /rump    - rump headers installed to userspace
+
+sys/rump/dev - device components
+
+sys/rump/fs - file system components
+  /lib/lib${fs}  - kernel file system code compiled out of /sys with -D_KERNEL
+
+sys/rump/net - networking components
+  /lib/libnet	  - subroutines from sys/net, e.g. route and if_ethersubr
+  /lib/libnetinet - TCP/IP
+  /lib/libvirtif  - a virtual interface which uses host tap(4) to shovel
+		    packets.  This is used by netinet and if_ethersubr.
+  /lib/libsockin  - implements PF_INET using host kernel sockets.  This is
+		    mutually exclusive with net, netinet and virtif.
+
+Users:
+src/lib
+  /libp2k  - puffs-to-vfs adaption layer, userspace namespace
+  /libukfs - user kernel file system, a library to access file system
+	     images (or devices) directly in userspace without going
+	     through a system call and puffs
+
+src/usr.sbin/puffs
+  rump_$fs - userspace file system daemons using the kernel fs code

Added: user/kmacy/releng_8_rump/sys/rump/TODO
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/TODO	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,14 @@
+	$NetBSD: TODO,v 1.7 2009/11/26 10:10:50 pooka Exp $
+
+* fix the build structure to work better on non-NetBSD
+  = available in pkgsrc/misc/rump
+* figure out how to handle mount parameters in fs-independent
+  fashion (requires kernel changes)
+  = generic fs-mounting, GSoC 2009
+* integrate build framework with config(1) to stop the need to
+  maintain a separate build infrastructure
+* find a better solution for rumpdefs.h, the sed "solution"
+  doesn't really scale nicely
+* make rumpuser interface fully portable
+  + get rid of all non-standard binary types
+  + limit use of ioctl

Added: user/kmacy/releng_8_rump/sys/rump/dev/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/Makefile	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,6 @@
+#	$NetBSD: Makefile,v 1.1 2009/06/09 16:16:14 pooka Exp $
+#
+
+SUBDIR=	lib
+
+.include <bsd.subdir.mk>

Added: user/kmacy/releng_8_rump/sys/rump/dev/Makefile.rumpdev
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/Makefile.rumpdev	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,9 @@
+#	$NetBSD: Makefile.rumpdev,v 1.6 2009/12/04 22:13:59 haad Exp $
+#
+
+RUMPDEVLIST=	cgd disk netsmb raidframe rnd dm
+
+.for var in ${RUMPDEVLIST}
+RUMPDEVLIBS+=lib${var}
+RUMPDEVLDADD+=-lrumpdev_${var}
+.endfor

Added: user/kmacy/releng_8_rump/sys/rump/dev/lib/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/lib/Makefile	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,8 @@
+#	$NetBSD: Makefile,v 1.1 2009/06/09 16:16:15 pooka Exp $
+#
+
+.include "${.CURDIR}/../Makefile.rumpdev"
+
+SUBDIR+=	${RUMPDEVLIBS}
+
+.include <bsd.subdir.mk>

Added: user/kmacy/releng_8_rump/sys/rump/dev/lib/Makefile.inc
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/lib/Makefile.inc	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,7 @@
+#	$NetBSD: Makefile.inc,v 1.2 2009/09/04 17:21:34 pooka Exp $
+#
+
+RUMPTOP=	${.CURDIR}/../../..
+CPPFLAGS+=	-I${RUMPTOP}/librump/rumpdev -I${RUMPTOP}/librump/rumpdev/opt
+
+.include "${RUMPTOP}/Makefile.rump"

Added: user/kmacy/releng_8_rump/sys/rump/dev/lib/libcgd/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/lib/libcgd/Makefile	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,16 @@
+#	$NetBSD: Makefile,v 1.2 2009/09/07 11:23:39 pooka Exp $
+#
+
+.PATH:	${.CURDIR}/../../../../dev
+
+LIB=	rumpdev_cgd
+
+SRCS=   cgd.c cgd_crypto.c
+
+SRCS+=	component.c
+
+CPPFLAGS+=	-Wno-pointer-sign
+CPPFLAGS+=	-I${RUMPTOP}/librump/rumpvfs
+
+.include <bsd.lib.mk>
+.include <bsd.klinks.mk>

Added: user/kmacy/releng_8_rump/sys/rump/dev/lib/libcgd/component.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/lib/libcgd/component.c	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,64 @@
+/*	$NetBSD: component.c,v 1.4 2009/12/03 15:06:04 pooka Exp $	*/
+
+/*
+ * Copyright (c) 2009 Antti Kantee.  All Rights Reserved.
+ *
+ * Redistribution 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 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 ``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.
+ */
+
+#include <sys/cdefs.h>
+__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.4 2009/12/03 15:06:04 pooka Exp $");
+
+#include <sys/param.h>
+#include <sys/conf.h>
+#include <sys/device.h>
+#include <sys/stat.h>
+
+#include "rump_dev_private.h"
+#include "rump_vfs_private.h"
+
+void cgdattach(int);
+
+void
+rump_dev_cgd_init()
+{
+	extern const struct bdevsw cgd_bdevsw;
+	extern const struct cdevsw cgd_cdevsw;
+	devmajor_t bmaj, cmaj;
+	int error;
+
+	/* go, mydevfs */
+	bmaj = cmaj = -1;
+
+	if ((error = devsw_attach("/dev/cgd0", &cgd_bdevsw, &bmaj,
+	    &cgd_cdevsw, &cmaj)) != 0)
+		panic("cannot attach cgd: %d", error);
+
+	if ((error = rump_vfs_makedevnodes(S_IFBLK, "cgd0", 'a',
+	    bmaj, 0, 7)) != 0)
+		panic("cannot create cooked cgd dev nodes: %d", error);
+	if ((error = rump_vfs_makedevnodes(S_IFCHR, "/dev/rcgd0", 'a',
+	    cmaj, 0, 7)) != 0)
+		panic("cannot create raw cgd dev nodes: %d", error);
+
+	rump_pdev_add(cgdattach, 4);
+}

Added: user/kmacy/releng_8_rump/sys/rump/dev/lib/libcgd/shlib_version
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/lib/libcgd/shlib_version	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,4 @@
+#	$NetBSD: shlib_version,v 1.1 2009/07/20 18:09:20 pooka Exp $
+#
+major=0
+minor=0

Added: user/kmacy/releng_8_rump/sys/rump/dev/lib/libdisk/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/lib/libdisk/Makefile	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,24 @@
+#	$NetBSD: Makefile,v 1.6 2009/11/23 13:40:11 pooka Exp $
+#
+
+.PATH:	${.CURDIR}/../../../../kern					\
+	${.CURDIR}/../../../../dev ${.CURDIR}/../../../../dev/dkwedge
+
+LIB=	rumpdev_disk
+
+#
+# We use subr_disk_mbr on all platforms.  The current structure of
+# code allows us to pick only one readdisklabel() routine.  While
+# this is not the native one for all platforms, it's probably the
+# most common one in an image floating on the internetto.
+SRCS=	subr_disk_mbr.c
+
+# sys/kern
+SRCS+=	subr_disk.c subr_disk_open.c
+# sys/dev
+SRCS+=	dksubr.c dk.c
+
+CFLAGS+=	-Wno-pointer-sign
+
+.include <bsd.lib.mk>
+.include <bsd.klinks.mk>

Added: user/kmacy/releng_8_rump/sys/rump/dev/lib/libdisk/dummy.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/lib/libdisk/dummy.c	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1 @@
+int kludge;

Added: user/kmacy/releng_8_rump/sys/rump/dev/lib/libdisk/shlib_version
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/lib/libdisk/shlib_version	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,4 @@
+#	$NetBSD: shlib_version,v 1.1 2009/06/09 16:16:15 pooka Exp $
+#
+major=0
+minor=0

Added: user/kmacy/releng_8_rump/sys/rump/dev/lib/libdm/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/lib/libdm/Makefile	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,19 @@
+#	$NetBSD: Makefile,v 1.1 2009/12/04 22:13:59 haad Exp $
+#
+
+.PATH:	${.CURDIR}/../../../../dev/dm
+
+LIB=	rumpdev_dm
+
+SRCS=   device-mapper.c dm_dev.c dm_ioctl.c dm_pdev.c dm_table.c dm_target.c \
+        dm_target_linear.c dm_target_stripe.c
+
+SRCS+=	component.c
+
+CPPFLAGS+=	-Wno-pointer-sign
+CPPFLAGS+=	-I${RUMPTOP}/librump/rumpvfs
+
+LDADD+=         -lrumpvfs
+
+.include <bsd.lib.mk>
+.include <bsd.klinks.mk>

Added: user/kmacy/releng_8_rump/sys/rump/dev/lib/libdm/component.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/lib/libdm/component.c	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,68 @@
+/*	$NetBSD: component.c,v 1.1 2009/12/04 22:13:59 haad Exp $	*/
+
+/*
+ * Copyright (c) 2009 Antti Kantee.  All Rights Reserved.
+ *
+ * Redistribution 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 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 ``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.
+ */
+
+#include <sys/cdefs.h>
+__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.1 2009/12/04 22:13:59 haad Exp $");
+
+#include <sys/param.h>
+#include <sys/conf.h>
+#include <sys/device.h>
+#include <sys/stat.h>
+#include <sys/filedesc.h>
+
+#include <sys/vfs_syscalls.h>
+
+
+#include "rump_dev_private.h"
+#include "rump_vfs_private.h"
+
+void dmattach(int);
+
+void
+rump_dev_dm_init()
+{
+	extern const struct bdevsw dm_bdevsw;
+	extern const struct cdevsw dm_cdevsw;
+	devmajor_t bmaj, cmaj;
+	int error;
+	
+	/* go, mydevfs */
+	bmaj = cmaj = -1;
+
+	if ((error = devsw_attach("dm", &dm_bdevsw, &bmaj,
+	    &dm_cdevsw, &cmaj)) != 0)
+		panic("cannot attach dm: %d", error);
+
+	do_sys_mkdir("/dev/mapper", 0770, UIO_SYSSPACE);
+	
+	if ((error = rump_vfs_makedevnodes(S_IFCHR, "/dev/mapper/control", 0,
+		    cmaj, 0, 1)) != 0) { 
+		panic("cannot create device-mapper control device: %d", error);
+		 
+	}
+	rump_pdev_add(dmattach, 1);
+}

Added: user/kmacy/releng_8_rump/sys/rump/dev/lib/libdm/shlib_version
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/lib/libdm/shlib_version	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,4 @@
+#	$NetBSD: shlib_version,v 1.1 2009/12/04 22:13:59 haad Exp $
+#
+major=0
+minor=0

Added: user/kmacy/releng_8_rump/sys/rump/dev/lib/libnetsmb/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/lib/libnetsmb/Makefile	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,19 @@
+#	$NetBSD: Makefile,v 1.2 2009/09/06 20:42:26 pooka Exp $
+#
+
+.PATH:	${.CURDIR}/../../../../netsmb
+
+LIB=	rumpdev_netsmb
+
+SRCS=	iconv.c smb_conn.c smb_crypt.c smb_dev.c smb_iod.c smb_rq.c	\
+	smb_smb.c smb_subr.c smb_trantcp.c smb_usr.c subr_mchain.c
+
+SRCS+=	component.c
+
+CPPFLAGS+=	-I${RUMPTOP}/librump/rumpvfs
+#CPPFLAGS+=	-DSMB_SOCKET_DEBUG -DSMB_IOD_DEBUG
+
+CFLAGS+=	-Wno-pointer-sign
+
+.include <bsd.lib.mk>
+.include <bsd.klinks.mk>

Added: user/kmacy/releng_8_rump/sys/rump/dev/lib/libnetsmb/component.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/lib/libnetsmb/component.c	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,58 @@
+/*	$NetBSD: component.c,v 1.3 2009/12/03 15:06:04 pooka Exp $	*/
+
+/*
+ * Copyright (c) 2009 Antti Kantee.  All Rights Reserved.
+ *
+ * Development of this software was supported by The Nokia Foundation
+ *
+ * Redistribution 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 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 ``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.
+ */
+
+#include <sys/cdefs.h>
+__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.3 2009/12/03 15:06:04 pooka Exp $");
+
+#include <sys/param.h>
+#include <sys/conf.h>
+#include <sys/device.h>
+#include <sys/stat.h>
+
+#include "rump_dev_private.h"
+#include "rump_vfs_private.h"
+
+void nsmbattach(int); /* XXX */
+
+void
+rump_dev_netsmb_init()
+{
+	extern const struct cdevsw nsmb_cdevsw;
+	devmajor_t bmaj, cmaj;
+	int error;
+
+	bmaj = cmaj = NODEVMAJOR;
+	if ((error = devsw_attach("nsmb", NULL, &bmaj, &nsmb_cdevsw, &cmaj))!=0)
+		panic("nsmb devsw attach failed: %d", error);
+	if ((error = rump_vfs_makedevnodes(S_IFCHR, "/dev/nsmb", '0',
+	    cmaj, 0, 4)) != 0)
+		panic("cannot create nsmb device nodes: %d", error);
+
+	rump_pdev_add(nsmbattach, 4);
+}

Added: user/kmacy/releng_8_rump/sys/rump/dev/lib/libnetsmb/shlib_version
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/lib/libnetsmb/shlib_version	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,4 @@
+#	$NetBSD: shlib_version,v 1.1 2009/09/04 12:20:42 pooka Exp $
+#
+major=0
+minor=0

Added: user/kmacy/releng_8_rump/sys/rump/dev/lib/libraidframe/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/lib/libraidframe/Makefile	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,29 @@
+#	$NetBSD: Makefile,v 1.3 2009/11/23 12:23:20 pooka Exp $
+#
+
+.PATH:	${.CURDIR}/../../../../dev/raidframe
+
+LIB=	rumpdev_raidframe
+
+SRCS=   rf_acctrace.c rf_alloclist.c rf_aselect.c rf_callback.c		\
+	rf_chaindecluster.c rf_copyback.c rf_cvscan.c rf_dagdegrd.c	\
+	rf_dagdegwr.c rf_dagffrd.c rf_dagffwr.c rf_dagfuncs.c		\
+	rf_dagutils.c rf_debugMem.c rf_debugprint.c rf_decluster.c	\
+	rf_declusterPQ.c rf_diskqueue.c rf_disks.c rf_driver.c		\
+	rf_engine.c rf_evenodd.c rf_evenodd_dagfuncs.c rf_evenodd_dags.c\
+	rf_fifo.c rf_interdecluster.c rf_invertq.c rf_layout.c		\
+	rf_map.c rf_mcpair.c rf_netbsdkintf.c rf_nwayxor.c rf_options.c	\
+	rf_paritylog.c rf_paritylogDiskMgr.c rf_paritylogging.c		\
+	rf_parityloggingdags.c rf_parityscan.c rf_pq.c rf_pqdeg.c	\
+	rf_pqdegdags.c rf_psstatus.c rf_raid0.c rf_raid1.c rf_raid4.c	\
+	rf_raid5.c rf_raid5_rotatedspare.c rf_reconbuffer.c		\
+	rf_reconmap.c rf_reconstruct.c rf_reconutil.c rf_revent.c	\
+	rf_shutdown.c rf_sstf.c rf_states.c rf_stripelocks.c		\
+	rf_strutils.c rf_utils.c rf_compat50.c rf_paritymap.c
+
+SRCS+=	component.c
+
+CPPFLAGS+=	-I${RUMPTOP}/librump/rumpvfs
+
+.include <bsd.lib.mk>
+.include <bsd.klinks.mk>

Added: user/kmacy/releng_8_rump/sys/rump/dev/lib/libraidframe/component.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/lib/libraidframe/component.c	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,66 @@
+/*	$NetBSD: component.c,v 1.4 2009/12/03 15:06:04 pooka Exp $	*/
+
+/*
+ * Copyright (c) 2009 Antti Kantee.  All Rights Reserved.
+ *
+ * Redistribution 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 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 ``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.
+ */
+
+#include <sys/cdefs.h>
+__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.4 2009/12/03 15:06:04 pooka Exp $");
+
+#include <sys/param.h>
+#include <sys/conf.h>
+#include <sys/device.h>
+#include <sys/stat.h>
+
+#include "rump_dev_private.h"
+#include "rump_vfs_private.h"
+
+CFDRIVER_DECL(raid, DV_DISK, NULL);
+
+void raidattach(int);
+
+void
+rump_dev_raidframe_init()
+{
+	extern const struct bdevsw raid_bdevsw;
+	extern const struct cdevsw raid_cdevsw;
+	devmajor_t bmaj, cmaj;
+	int error;
+
+	config_cfdriver_attach(&raid_cd);
+
+	bmaj = cmaj = -1;
+	if ((error = devsw_attach("raid", &raid_bdevsw, &bmaj,
+	    &raid_cdevsw, &cmaj)) != 0)
+		panic("raid devsw attach failed: %d", error);
+
+	if ((error = rump_vfs_makedevnodes(S_IFBLK, "/dev/raid0", 'a',
+	    bmaj, 0, 7)) != 0)
+		panic("cannot create cooked raid dev nodes: %d", error);
+	if ((error = rump_vfs_makedevnodes(S_IFCHR, "/dev/rraid0", 'a',
+	    cmaj, 0, 7)) != 0)
+		panic("cannot create raw raid dev nodes: %d", error);
+
+	rump_pdev_add(raidattach, 4);
+}

Added: user/kmacy/releng_8_rump/sys/rump/dev/lib/libraidframe/shlib_version
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/lib/libraidframe/shlib_version	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,4 @@
+#	$NetBSD: shlib_version,v 1.1 2009/06/09 16:16:15 pooka Exp $
+#
+major=0
+minor=0

Added: user/kmacy/releng_8_rump/sys/rump/dev/lib/librnd/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/lib/librnd/Makefile	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,16 @@
+#	$NetBSD: Makefile,v 1.1 2009/09/08 20:12:52 pooka Exp $
+#
+
+.PATH:	${.CURDIR}/../../../../dev
+
+LIB=	rumpdev_rnd
+
+SRCS=   rnd.c rndpool.c
+
+SRCS+=	component.c
+
+CPPFLAGS+=	-Wno-pointer-sign
+CPPFLAGS+=	-I${RUMPTOP}/librump/rumpvfs
+
+.include <bsd.lib.mk>
+.include <bsd.klinks.mk>

Added: user/kmacy/releng_8_rump/sys/rump/dev/lib/librnd/component.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/lib/librnd/component.c	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,66 @@
+/*	$NetBSD: component.c,v 1.2 2009/12/03 15:06:04 pooka Exp $	*/
+
+/*
+ * Copyright (c) 2009 Antti Kantee.  All Rights Reserved.
+ *
+ * Redistribution 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 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 ``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.
+ */
+
+#include <sys/cdefs.h>
+__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.2 2009/12/03 15:06:04 pooka Exp $");
+
+#include <sys/param.h>
+#include <sys/conf.h>
+#include <sys/device.h>
+#include <sys/rnd.h>
+#include <sys/stat.h>
+
+#include "rump_dev_private.h"
+#include "rump_vfs_private.h"
+
+void rndattach(int);
+
+void
+rump_dev_rnd_init()
+{
+	extern const struct cdevsw rnd_cdevsw;
+	devmajor_t bmaj, cmaj;
+	int error;
+
+	/* go, mydevfs */
+	bmaj = cmaj = -1;
+
+	if ((error = devsw_attach("random", NULL, &bmaj,
+	    &rnd_cdevsw, &cmaj)) != 0)
+		panic("cannot attach rnd: %d", error);
+
+	/* XXX: truly hideous interface abuse */
+	if ((error = rump_vfs_makedevnodes(S_IFCHR, "/dev/random", 0,
+	    cmaj, RND_DEV_RANDOM, 1)) != 0)
+		panic("cannot create /dev/random: %d", error);
+	if ((error = rump_vfs_makedevnodes(S_IFCHR, "/dev/urandom", 0,
+	    cmaj, RND_DEV_URANDOM, 1)) != 0)
+		panic("cannot create /dev/urandom: %d", error);
+
+	rump_pdev_add(rndattach, 4);
+	rnd_init();
+}

Added: user/kmacy/releng_8_rump/sys/rump/dev/lib/librnd/shlib_version
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/lib/librnd/shlib_version	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,4 @@
+#	$NetBSD: shlib_version,v 1.1 2009/09/08 20:12:52 pooka Exp $
+#
+major=0
+minor=0

Added: user/kmacy/releng_8_rump/sys/rump/dev/wip/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/wip/Makefile	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,6 @@
+#	$NetBSD: Makefile,v 1.3 2009/12/20 15:43:57 pooka Exp $
+#
+
+SUBDIR=	libnet80211 librumpusbhc libucom libumass libulpt libusb libusbrum
+
+.include <bsd.subdir.mk>

Added: user/kmacy/releng_8_rump/sys/rump/dev/wip/Makefile.inc
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/wip/Makefile.inc	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,8 @@
+#	$NetBSD: Makefile.inc,v 1.1 2009/10/01 21:46:30 pooka Exp $
+#
+
+RUMPTOP=	${.CURDIR}/../../..
+
+CPPFLAGS+=	-I${RUMPTOP}/librump/rumpdev
+
+.include "${RUMPTOP}/Makefile.rump"

Added: user/kmacy/releng_8_rump/sys/rump/dev/wip/libnet80211/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/wip/libnet80211/Makefile	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,19 @@
+#	$NetBSD: Makefile,v 1.1 2009/10/04 10:40:40 pooka Exp $
+#
+
+.PATH:	${.CURDIR}/../../../../net80211
+
+LIB=	rumpdev_net80211
+
+SRCS=   ieee80211.c ieee80211_acl.c ieee80211_amrr.c ieee80211_crypto.c	\
+	ieee80211_crypto_ccmp.c ieee80211_crypto_none.c			\
+	ieee80211_crypto_tkip.c ieee80211_crypto_wep.c ieee80211_input.c\
+	ieee80211_ioctl.c ieee80211_netbsd.c ieee80211_node.c		\
+	ieee80211_output.c ieee80211_proto.c ieee80211_rssadapt.c	\
+	ieee80211_xauth.c
+
+CFLAGS+=	-Wno-pointer-sign
+CPPFLAGS+=	-I${.CURDIR}/opt -I${RUMPTOP}/librump/rumpnet/opt
+
+.include <bsd.lib.mk>
+.include <bsd.klinks.mk>

Added: user/kmacy/releng_8_rump/sys/rump/dev/wip/libnet80211/shlib_version
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/wip/libnet80211/shlib_version	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,4 @@
+#	$NetBSD: shlib_version,v 1.1 2009/10/04 10:40:40 pooka Exp $
+#
+major=0
+minor=0

Added: user/kmacy/releng_8_rump/sys/rump/dev/wip/librumpusbhc/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/wip/librumpusbhc/Makefile	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,11 @@
+#	$NetBSD: Makefile,v 1.2 2009/10/05 13:00:37 pooka Exp $
+#
+
+LIB=	rumpdev_usbhc
+
+SRCS=	rumpusbhc.c
+
+CPPFLAGS+=	-I${RUMPTOP}/librump/rumpkern
+
+.include <bsd.lib.mk>
+.include <bsd.klinks.mk>

Added: user/kmacy/releng_8_rump/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/kmacy/releng_8_rump/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c	Sat Jan  2 06:12:04 2010	(r201378)
@@ -0,0 +1,1016 @@
+/*	$NetBSD: rumpusbhc.c,v 1.10 2009/12/20 15:32:46 pooka Exp $	*/
+
+/*
+ * Copyright (c) 2009 Antti Kantee.  All Rights Reserved.
+ *
+ * Redistribution 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 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 ``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.
+ */
+
+/*
+ * Copyright (c) 1998, 2004 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Lennart Augustsson (lennart@augustsson.net) at
+ * Carlstedt Research & Technology.
+ *
+ * Redistribution 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 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
+ */
+
+/*
+ * This rump driver attaches ugen as a kernel usb host controller.
+ * It's still somewhat under the hammer ....
+ */
+
+#include <sys/cdefs.h>
+__KERNEL_RCSID(0, "$NetBSD: rumpusbhc.c,v 1.10 2009/12/20 15:32:46 pooka Exp $");
+
+#include <sys/param.h>
+#include <sys/bus.h>
+#include <sys/conf.h>
+#include <sys/device.h>
+#include <sys/fcntl.h>
+#include <sys/kmem.h>
+#include <sys/kernel.h>
+#include <sys/kthread.h>
+
+#include <dev/usb/usb.h>
+#include <dev/usb/usbdi.h>
+#include <dev/usb/usbdivar.h>
+#include <dev/usb/usb_mem.h>
+#include <dev/usb/usbroothub_subr.h>
+
+#include <rump/rumpuser.h>
+
+#include "rump_private.h"
+#include "rump_dev_private.h"
+
+#define UGEN_NEPTS 16
+#define UGEN_EPT_CTRL 0 /* ugenx.00 is the control endpoint */
+
+struct rumpusbhc_softc {
+	struct usbd_bus sc_bus;
+	int sc_devnum;
+
+	int sc_ugenfd[UGEN_NEPTS];
+	int sc_fdmodes[UGEN_NEPTS];
+
+	int sc_port_status;
+	int sc_port_change;
+	int sc_addr;
+	int sc_conf;
+};
+
+static const struct cfiattrdata usb_iattrdata = {
+        "usbus", 0, {
+		{ NULL, NULL, 0 },
+	}
+};
+static const struct cfiattrdata *const rumpusbhc_attrs[] = {
+	&usb_iattrdata,
+	NULL,
+};
+
+static int	rumpusbhc_probe(struct device *, struct cfdata *, void *);
+static void	rumpusbhc_attach(struct device *, struct device *, void *);
+
+CFATTACH_DECL_NEW(rumpusbhc, sizeof(struct rumpusbhc_softc),
+	rumpusbhc_probe, rumpusbhc_attach, NULL, NULL);
+CFDRIVER_DECL(rumpusbhc, DV_DULL, rumpusbhc_attrs);
+
+struct cfparent rumpusbhcpar = {
+	"mainbus",
+	"mainbus",
+	DVUNIT_ANY
+};
+
+struct rusb_xfer {
+	struct usbd_xfer rusb_xfer;
+	int rusb_status; /* now this is a cheap trick */
+};
+#define RUSB(x) ((struct rusb_xfer *)x)
+
+/* probe ugen0 through ugen3 */
+struct cfdata rumpusbhc_cfdata[] = {
+	{ "rumpusbhc", "rumpusbhc", 0, FSTATE_NOTFOUND, NULL, 0, &rumpusbhcpar},
+	{ "rumpusbhc", "rumpusbhc", 1, FSTATE_NOTFOUND, NULL, 0, &rumpusbhcpar},
+	{ "rumpusbhc", "rumpusbhc", 2, FSTATE_NOTFOUND, NULL, 0, &rumpusbhcpar},
+	{ "rumpusbhc", "rumpusbhc", 3, FSTATE_NOTFOUND, NULL, 0, &rumpusbhcpar},
+};
+
+#define UGENDEV_BASESTR "/dev/ugen"
+#define UGENDEV_BUFSIZE 32
+static void
+makeugendevstr(int devnum, int endpoint, char *buf)
+{
+
+	CTASSERT(UGENDEV_BUFSIZE > sizeof(UGENDEV_BASESTR)+sizeof("0.00")+1);
+	sprintf(buf, "%s%d.%02d", UGENDEV_BASESTR, devnum, endpoint);
+}
+
+/*
+ * Our fictional hubbie.
+ */
+
+static const usb_device_descriptor_t rumphub_udd = {
+	.bLength		= USB_DEVICE_DESCRIPTOR_SIZE,
+	.bDescriptorType	= UDESC_DEVICE,
+	.bDeviceClass		= UDCLASS_HUB,
+	.bDeviceSubClass	= UDSUBCLASS_HUB,
+	.bDeviceProtocol	= UDPROTO_FSHUB,
+	.bMaxPacketSize		= 64,
+	.bNumConfigurations	= 1,
+};
+
+static const usb_config_descriptor_t rumphub_ucd = {
+	.bLength		= USB_CONFIG_DESCRIPTOR_SIZE,
+	.bDescriptorType	= UDESC_CONFIG,
+	.wTotalLength		= { USB_CONFIG_DESCRIPTOR_SIZE
+				  + USB_INTERFACE_DESCRIPTOR_SIZE
+				  + USB_ENDPOINT_DESCRIPTOR_SIZE },
+	.bNumInterface		= 1,
+	.bmAttributes		= UC_SELF_POWERED | UC_ATTR_MBO,
+};
+/* XXX: spec says UC_ATTR_MBO is reserved and set to one.  required? */
+
+static const usb_interface_descriptor_t rumphub_uid = {
+	.bLength		= USB_INTERFACE_DESCRIPTOR_SIZE,
+	.bDescriptorType	= UDESC_INTERFACE,
+	.bInterfaceNumber	= 0,
+	.bNumEndpoints		= 1,
+	.bInterfaceClass	= UICLASS_HUB,
+	.bInterfaceSubClass	= UISUBCLASS_HUB,
+	.bInterfaceProtocol	= UIPROTO_FSHUB,
+};
+
+static const usb_endpoint_descriptor_t rumphub_epd = {
+	.bLength		= USB_ENDPOINT_DESCRIPTOR_SIZE,
+	.bDescriptorType	= UDESC_ENDPOINT,
+	.bmAttributes		= UE_INTERRUPT,
+	.wMaxPacketSize		= {64, 0},
+};
+
+static const usb_hub_descriptor_t rumphub_hdd = {
+	.bDescLength		= USB_HUB_DESCRIPTOR_SIZE,
+	.bDescriptorType	= UDESC_HUB,
+	.bNbrPorts		= 1,
+};
+
+static usbd_status
+rumpusb_root_ctrl_start(usbd_xfer_handle xfer)
+{
+	usb_device_request_t *req = &xfer->request;
+	struct rumpusbhc_softc *sc = xfer->pipe->device->bus->hci_private;
+	int len, totlen, value, curlen, err;
+	uint8_t *buf = NULL;
+
+	len = totlen = UGETW(req->wLength);
+	if (len)
+		buf = KERNADDR(&xfer->dmabuf, 0);
+	value = UGETW(req->wValue);
+
+#define C(x,y) ((x) | ((y) << 8))

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***