From owner-svn-src-user@FreeBSD.ORG  Tue Feb  8 04:48:54 2011
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 30E85106564A;
	Tue,  8 Feb 2011 04:48:54 +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 222608FC08;
	Tue,  8 Feb 2011 04:48:54 +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 p184msd6033720;
	Tue, 8 Feb 2011 04:48:54 GMT (envelope-from dougb@svn.freebsd.org)
Received: (from dougb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id p184mskO033718;
	Tue, 8 Feb 2011 04:48:54 GMT (envelope-from dougb@svn.freebsd.org)
Message-Id: <201102080448.p184mskO033718@svn.freebsd.org>
From: Doug Barton <dougb@FreeBSD.org>
Date: Tue, 8 Feb 2011 04:48:54 +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: r218428 - 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: Tue, 08 Feb 2011 04:48:54 -0000

Author: dougb
Date: Tue Feb  8 04:48:53 2011
New Revision: 218428
URL: http://svn.freebsd.org/changeset/base/218428

Log:
  Tweak the way INDEX files are downloaded and installed to be only
  require root privileges for the minimum possible number of actions,
  and do things in a more secure way:
  1. If necessary to download the new INDEX.bz2, as a non-root user, do
  it in a temporary directory created with mktemp
  2. If necessary to update the actual INDEX file unzip it in that same
  temporary directory
  3. Only use $PM_SU_CMD to install the file if necessary
  4. Unlink both INDEX and INDEX.bz2 in their real locations before
  installing the new versions
  
  Use unset for a lot more variables in the above code.
  
  Add the -p flag for install to pm_install_s
  
  Move the initialization of PM_WRKDIRPREFIX to the area where other
  build-related variables are handled

Modified:
  user/dougb/portmaster/portmaster

Modified: user/dougb/portmaster/portmaster
==============================================================================
--- user/dougb/portmaster/portmaster	Tue Feb  8 01:49:30 2011	(r218427)
+++ user/dougb/portmaster/portmaster	Tue Feb  8 04:48:53 2011	(r218428)
@@ -285,7 +285,7 @@ pm_unlink () { /bin/test -e $1 && /bin/u
 # Superuser versions for commands that need root privileges
 
 pm_find_s         () { $PM_SU_CMD /usr/bin/find $*; }
-pm_install_s      () { $PM_SU_CMD /usr/bin/install -o root -g wheel -m 644 $1 $2; }
+pm_install_s      () { $PM_SU_CMD /usr/bin/install -p -o root -g wheel -m 644 $1 $2; }
 pm_make_s         () { ( unset -v CUR_DEPS INSTALLED_LIST PM_DEPTH build_l;
 			 unset -v MASTER_RB_LIST;
 			 $PM_SU_CMD /usr/bin/nice /usr/bin/make $PM_MAKE_ARGS $*; ); }
@@ -749,38 +749,56 @@ if [ "$$" -eq "$PM_PARENT_PID" ]; then
 
 		[ -z "$INDEXDIR" -a -n "$PM_INDEX_ONLY" -a -z "$pd" ] && INDEXDIR="$TMPDIR"
 
-		PM_INDEX="${INDEXDIR:-$pd}/${INDEXFILE}"
+		PM_INDEX="${INDEXDIR:=$pd}/${INDEXFILE}"
 
 		if [ -z "$PM_NO_INDEX_FETCH" ]; then
 			: ${FETCHINDEX:='fetch -am -o'}
 			: ${MASTER_SITE_INDEX:='http://www.FreeBSD.org/ports/'}
 
-			index_fetch="$FETCHINDEX ${PM_INDEX}.bz2 ${MASTER_SITE_INDEX}${INDEXFILE}.bz2"
 			do_index_fetch=yes_index_fetch
 
 			index_time=`stat -f '%Um' ${PM_INDEX}.bz2 2>/dev/null`
 
-			[ -n "$index_time" ] && {
-				$index_fetch 2>/dev/null && do_index_fetch=no_index_fetch; }
+			if [ -n "$index_time" ]; then
+				# If root, this will succeed either way
+				if $FETCHINDEX ${PM_INDEX}.bz2 ${MASTER_SITE_INDEX}${INDEXFILE}.bz2 2>/dev/null; then
+					unset do_index_fetch
+					newindex="${PM_INDEX}.bz2"
+				fi
+			fi
+
+			if [ -n "$do_index_fetch" ] ||
+			    [ ${index_time:-0} -ne `stat -f '%Um' ${PM_INDEX}.bz2 2>/dev/null` ]; then
+				dli=`mktemp -d ${TMPDIR}/d-${PM_PARENT_PID}-index`
+				if [ -n "$do_index_fetch" ]; then
+					ift="$FETCHINDEX ${dli}/${INDEXFILE}.bz2 ${MASTER_SITE_INDEX}${INDEXFILE}.bz2"
+					$ift || fail Could not perform $ift
+					unset ift
+					newindex="${dli}/${INDEXFILE}.bz2"
+				fi
 
-			if [ "$do_index_fetch" = yes_index_fetch ]; then
-				pm_sv 'Fetching new INDEX file'
-				$PM_SU_CMD $index_fetch || fail Could not perform $index_fetch
-			fi
-
-			if [ ${index_time:-0} -ne `stat -f '%Um' ${PM_INDEX}.bz2 2>/dev/null` ]; then
-				temp_index=`pm_mktemp index`
-				bunzip2 < ${PM_INDEX}.bz2 > $temp_index
-				pm_sv 'Installing new INDEX file'
-				pm_install_s $temp_index $PM_INDEX
-				unlink $temp_index
-				unset temp_index
+				bunzip2 --keep < $newindex > ${dli}/$INDEXFILE
+				if [ -w "${INDEXDIR}/" ]; then
+					pm_unlink $PM_INDEX
+					mv ${dli}/$INDEXFILE $PM_INDEX
+					if [ -n "$do_index_fetch" ]; then
+						pm_unlink ${PM_INDEX}.bz2
+						mv ${dli}/${INDEXFILE}.bz2 ${PM_INDEX}.bz2
+					fi
+				else
+					pm_sv 'Installing new INDEX file'
+					pm_install_s ${dli}/$INDEXFILE $PM_INDEX
+					[ -n "$do_index_fetch" ] &&
+						pm_install_s ${dli}/${INDEXFILE}.bz2 ${PM_INDEX}.bz2
+				fi
+				rm -rf $dli ; unset dli
 			fi
-			unset index_fetch do_index_fetch index_time
+			unset FETCHINDEX MASTER_SITE_INDEX do_index_fetch index_time newindex
 		else
 			[ -r "$PM_INDEX" ] ||
 				fail "The --no-index-fetch option was used, but $PM_INDEX does not exist"
 		fi
+		unset INDEXFILE INDEXDIR
 
 		PM_INDEX_PORTS=`pkg_version -Ivl\< $PM_INDEX | cut -f1 -d\<`
 		export PM_INDEX_PORTS
@@ -798,7 +816,6 @@ if [ "$$" -eq "$PM_PARENT_PID" ]; then
 	fi
 
 	if [ -n "$pd" ]; then
-		pm_cd_pd && PM_WRKDIRPREFIX=`pm_make_b -V WRKDIRPREFIX` && pm_cd -
 		export pd
 	else
 		if [ -n "$EXPUNGE" -o -n "$CLEAN_STALE" ]; then
@@ -2780,6 +2797,9 @@ if [ "$$" -eq "$PM_PARENT_PID" -a -z "$S
 	if [ -z "$FETCH_ONLY" ]; then
 		PM_NEEDS_UPDATE=' ' ; NO_DEP_UPDATES=no_dep_updates ; build_l=''
 		export PM_NEEDS_UPDATE NO_DEP_UPDATES build_l
+
+		[ -z "$PM_INDEX_ONLY" ] &&
+			pm_cd_pd && PM_WRKDIRPREFIX=`pm_make_b -V WRKDIRPREFIX` && pm_cd -
 	fi
 
 	if [ -n "$PM_BUILD_ONLY_LIST" ]; then

From owner-svn-src-user@FreeBSD.ORG  Fri Feb 11 12:23:27 2011
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 82D9F1065674;
	Fri, 11 Feb 2011 12:23:27 +0000 (UTC) (envelope-from mr@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 58FEB8FC15;
	Fri, 11 Feb 2011 12:23:27 +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 p1BCNRfP059388;
	Fri, 11 Feb 2011 12:23:27 GMT (envelope-from mr@svn.freebsd.org)
Received: (from mr@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id p1BCNRuC059387;
	Fri, 11 Feb 2011 12:23:27 GMT (envelope-from mr@svn.freebsd.org)
Message-Id: <201102111223.p1BCNRuC059387@svn.freebsd.org>
From: Michael Reifenberger <mr@FreeBSD.org>
Date: Fri, 11 Feb 2011 12:23:27 +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: r218553 - user/mr
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, 11 Feb 2011 12:23:27 -0000

Author: mr
Date: Fri Feb 11 12:23:27 2011
New Revision: 218553
URL: http://svn.freebsd.org/changeset/base/218553

Log:
  Create my own user area

Added:
  user/mr/

From owner-svn-src-user@FreeBSD.ORG  Fri Feb 11 12:26:24 2011
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 58A12106564A;
	Fri, 11 Feb 2011 12:26:24 +0000 (UTC) (envelope-from mr@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2EBAF8FC15;
	Fri, 11 Feb 2011 12:26:24 +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 p1BCQOOQ059521;
	Fri, 11 Feb 2011 12:26:24 GMT (envelope-from mr@svn.freebsd.org)
Received: (from mr@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id p1BCQOfg059520;
	Fri, 11 Feb 2011 12:26:24 GMT (envelope-from mr@svn.freebsd.org)
Message-Id: <201102111226.p1BCQOfg059520@svn.freebsd.org>
From: Michael Reifenberger <mr@FreeBSD.org>
Date: Fri, 11 Feb 2011 12:26:24 +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: r218554 - user/mr/ficl
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, 11 Feb 2011 12:26:24 -0000

Author: mr
Date: Fri Feb 11 12:26:23 2011
New Revision: 218554
URL: http://svn.freebsd.org/changeset/base/218554

Log:
  Copy HEAD to work on ficl

Added:
     - copied from r218553, head/
Directory Properties:
  user/mr/ficl/   (props changed)

From owner-svn-src-user@FreeBSD.ORG  Fri Feb 11 14:44:04 2011
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 8522B1065673;
	Fri, 11 Feb 2011 14:44:04 +0000 (UTC) (envelope-from mr@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 193A98FC18;
	Fri, 11 Feb 2011 14:44:01 +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 p1BEi0fc063593;
	Fri, 11 Feb 2011 14:44:00 GMT (envelope-from mr@svn.freebsd.org)
Received: (from mr@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id p1BEi092063585;
	Fri, 11 Feb 2011 14:44:00 GMT (envelope-from mr@svn.freebsd.org)
Message-Id: <201102111444.p1BEi092063585@svn.freebsd.org>
From: Michael Reifenberger <mr@FreeBSD.org>
Date: Fri, 11 Feb 2011 14:44:00 +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: r218568 - in user/mr/ficl: contrib/top share/mk
	sys/boot/pc98 sys/boot/pc98/pc98boot sys/dev/ath
	sys/geom/part sys/kern sys/net
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, 11 Feb 2011 14:44:04 -0000

Author: mr
Date: Fri Feb 11 14:44:00 2011
New Revision: 218568
URL: http://svn.freebsd.org/changeset/base/218568

Log:
  Test merge from HEAD

Added:
  user/mr/ficl/sys/boot/pc98/pc98boot/
     - copied from r218567, head/sys/boot/pc98/pc98boot/
Modified:
  user/mr/ficl/sys/boot/pc98/Makefile
  user/mr/ficl/sys/dev/ath/if_ath_tx_ht.c
  user/mr/ficl/sys/geom/part/g_part_pc98.c
  user/mr/ficl/sys/kern/uipc_socket.c
  user/mr/ficl/sys/net/if.c
  user/mr/ficl/sys/net/netisr.c
  user/mr/ficl/sys/net/vnet.h
Directory Properties:
  user/mr/ficl/   (props changed)
  user/mr/ficl/cddl/contrib/opensolaris/   (props changed)
  user/mr/ficl/contrib/bind9/   (props changed)
  user/mr/ficl/contrib/binutils/   (props changed)
  user/mr/ficl/contrib/bzip2/   (props changed)
  user/mr/ficl/contrib/dialog/   (props changed)
  user/mr/ficl/contrib/ee/   (props changed)
  user/mr/ficl/contrib/expat/   (props changed)
  user/mr/ficl/contrib/file/   (props changed)
  user/mr/ficl/contrib/gdb/   (props changed)
  user/mr/ficl/contrib/gdtoa/   (props changed)
  user/mr/ficl/contrib/gnu-sort/   (props changed)
  user/mr/ficl/contrib/groff/   (props changed)
  user/mr/ficl/contrib/less/   (props changed)
  user/mr/ficl/contrib/libpcap/   (props changed)
  user/mr/ficl/contrib/llvm/   (props changed)
  user/mr/ficl/contrib/llvm/tools/clang/   (props changed)
  user/mr/ficl/contrib/ncurses/   (props changed)
  user/mr/ficl/contrib/netcat/   (props changed)
  user/mr/ficl/contrib/ntp/   (props changed)
  user/mr/ficl/contrib/one-true-awk/   (props changed)
  user/mr/ficl/contrib/openbsm/   (props changed)
  user/mr/ficl/contrib/openpam/   (props changed)
  user/mr/ficl/contrib/pf/   (props changed)
  user/mr/ficl/contrib/sendmail/   (props changed)
  user/mr/ficl/contrib/tcpdump/   (props changed)
  user/mr/ficl/contrib/tcsh/   (props changed)
  user/mr/ficl/contrib/top/   (props changed)
  user/mr/ficl/contrib/top/install-sh   (props changed)
  user/mr/ficl/contrib/tzcode/stdtime/   (props changed)
  user/mr/ficl/contrib/tzcode/zic/   (props changed)
  user/mr/ficl/contrib/tzdata/   (props changed)
  user/mr/ficl/contrib/wpa/   (props changed)
  user/mr/ficl/contrib/xz/   (props changed)
  user/mr/ficl/crypto/openssh/   (props changed)
  user/mr/ficl/crypto/openssl/   (props changed)
  user/mr/ficl/lib/libc/   (props changed)
  user/mr/ficl/lib/libc/stdtime/   (props changed)
  user/mr/ficl/lib/libutil/   (props changed)
  user/mr/ficl/lib/libz/   (props changed)
  user/mr/ficl/sbin/   (props changed)
  user/mr/ficl/sbin/ipfw/   (props changed)
  user/mr/ficl/share/mk/bsd.arch.inc.mk   (props changed)
  user/mr/ficl/share/zoneinfo/   (props changed)
  user/mr/ficl/sys/   (props changed)
  user/mr/ficl/sys/amd64/include/xen/   (props changed)
  user/mr/ficl/sys/cddl/contrib/opensolaris/   (props changed)
  user/mr/ficl/sys/contrib/dev/acpica/   (props changed)
  user/mr/ficl/sys/contrib/octeon-sdk/   (props changed)
  user/mr/ficl/sys/contrib/pf/   (props changed)
  user/mr/ficl/sys/contrib/x86emu/   (props changed)
  user/mr/ficl/usr.bin/calendar/   (props changed)
  user/mr/ficl/usr.bin/csup/   (props changed)
  user/mr/ficl/usr.bin/procstat/   (props changed)
  user/mr/ficl/usr.sbin/zic/   (props changed)

Modified: user/mr/ficl/sys/boot/pc98/Makefile
==============================================================================
--- user/mr/ficl/sys/boot/pc98/Makefile	Fri Feb 11 14:17:58 2011	(r218567)
+++ user/mr/ficl/sys/boot/pc98/Makefile	Fri Feb 11 14:44:00 2011	(r218568)
@@ -1,5 +1,5 @@
 # $FreeBSD$
 
-SUBDIR=		btx boot0 boot0.5 boot2 cdboot kgzldr libpc98 loader
+SUBDIR=		boot0 boot0.5 pc98boot btx boot2 cdboot kgzldr libpc98 loader
 
 .include <bsd.subdir.mk>

Modified: user/mr/ficl/sys/dev/ath/if_ath_tx_ht.c
==============================================================================
--- user/mr/ficl/sys/dev/ath/if_ath_tx_ht.c	Fri Feb 11 14:17:58 2011	(r218567)
+++ user/mr/ficl/sys/dev/ath/if_ath_tx_ht.c	Fri Feb 11 14:44:00 2011	(r218568)
@@ -133,7 +133,7 @@ ath_rateseries_setup(struct ath_softc *s
 				, txrate
 				, ic->ic_rxstream
 				, (ni->ni_htcap & IEEE80211_HTCAP_CHWIDTH40)
-				, shortPreamble);
+				, series[i].RateFlags & HAL_RATESERIES_HALFGI);
 		} else {
 			series[i].PktDuration = ath_hal_computetxtime(ah,
 			    rt, pktlen, rix[i], shortPreamble);

Modified: user/mr/ficl/sys/geom/part/g_part_pc98.c
==============================================================================
--- user/mr/ficl/sys/geom/part/g_part_pc98.c	Fri Feb 11 14:17:58 2011	(r218567)
+++ user/mr/ficl/sys/geom/part/g_part_pc98.c	Fri Feb 11 14:44:00 2011	(r218568)
@@ -46,11 +46,14 @@ __FBSDID("$FreeBSD$");
 #include "g_part_if.h"
 
 #define	SECSIZE		512
+#define	MENUSIZE	7168
+#define	BOOTSIZE	8192
 
 struct g_part_pc98_table {
 	struct g_part_table	base;
 	u_char		boot[SECSIZE];
 	u_char		table[SECSIZE];
+	u_char		menu[MENUSIZE];
 };
 
 struct g_part_pc98_entry {
@@ -105,7 +108,7 @@ static struct g_part_scheme g_part_pc98_
 	.gps_entrysz = sizeof(struct g_part_pc98_entry),
 	.gps_minent = NDOSPART,
 	.gps_maxent = NDOSPART,
-	.gps_bootcodesz = SECSIZE,
+	.gps_bootcodesz = BOOTSIZE,
 };
 G_PART_SCHEME_DECLARE(g_part_pc98);
 
@@ -204,14 +207,16 @@ static int
 g_part_pc98_bootcode(struct g_part_table *basetable, struct g_part_parms *gpp)
 {
 	struct g_part_pc98_table *table;
-	size_t codesz;
+	const u_char *codeptr;
+
+	if (gpp->gpp_codesize != BOOTSIZE)
+		return (EINVAL);
 
-	codesz = DOSMAGICOFFSET;
 	table = (struct g_part_pc98_table *)basetable;
-	bzero(table->boot, codesz);
-	codesz = MIN(codesz, gpp->gpp_codesize);
-	if (codesz > 0)
-		bcopy(gpp->gpp_codeptr, table->boot, codesz);
+	codeptr = gpp->gpp_codeptr;
+	bcopy(codeptr, table->boot, SECSIZE);
+	bcopy(codeptr + SECSIZE*2, table->menu, MENUSIZE);
+
 	return (0);
 }
 
@@ -356,7 +361,7 @@ g_part_pc98_probe(struct g_part_table *t
 	pp = cp->provider;
 
 	/* Sanity-check the provider. */
-	if (pp->sectorsize < SECSIZE || pp->mediasize < 2 * SECSIZE)
+	if (pp->sectorsize < SECSIZE || pp->mediasize < BOOTSIZE)
 		return (ENOSPC);
 	if (pp->sectorsize > SECSIZE)
 		return (ENXIO);
@@ -419,7 +424,7 @@ g_part_pc98_read(struct g_part_table *ba
 	table = (struct g_part_pc98_table *)basetable;
 	msize = pp->mediasize / SECSIZE;
 
-	buf = g_read_data(cp, 0L, 2 * SECSIZE, &error);
+	buf = g_read_data(cp, 0L, BOOTSIZE, &error);
 	if (buf == NULL)
 		return (error);
 
@@ -427,6 +432,7 @@ g_part_pc98_read(struct g_part_table *ba
 
 	bcopy(buf, table->boot, sizeof(table->boot));
 	bcopy(buf + SECSIZE, table->table, sizeof(table->table));
+	bcopy(buf + SECSIZE*2, table->menu, sizeof(table->menu));
 
 	for (index = NDOSPART - 1; index >= 0; index--) {
 		p = buf + SECSIZE + index * DOSPARTSIZE;
@@ -567,5 +573,7 @@ g_part_pc98_write(struct g_part_table *b
 	error = g_write_data(cp, 0, table->boot, SECSIZE);
 	if (!error)
 		error = g_write_data(cp, SECSIZE, table->table, SECSIZE);
+	if (!error)
+		error = g_write_data(cp, SECSIZE*2, table->menu, MENUSIZE);
 	return (error);
 }

Modified: user/mr/ficl/sys/kern/uipc_socket.c
==============================================================================
--- user/mr/ficl/sys/kern/uipc_socket.c	Fri Feb 11 14:17:58 2011	(r218567)
+++ user/mr/ficl/sys/kern/uipc_socket.c	Fri Feb 11 14:44:00 2011	(r218568)
@@ -437,7 +437,8 @@ sonewconn(struct socket *head, int conns
 	if (over)
 #endif
 		return (NULL);
-	VNET_ASSERT(head->so_vnet);
+	VNET_ASSERT(head->so_vnet != NULL, ("%s:%d so_vnet is NULL, head=%p",
+	    __func__, __LINE__, head));
 	so = soalloc(head->so_vnet);
 	if (so == NULL)
 		return (NULL);

Modified: user/mr/ficl/sys/net/if.c
==============================================================================
--- user/mr/ficl/sys/net/if.c	Fri Feb 11 14:17:58 2011	(r218567)
+++ user/mr/ficl/sys/net/if.c	Fri Feb 11 14:44:00 2011	(r218568)
@@ -378,8 +378,10 @@ static void
 vnet_if_uninit(const void *unused __unused)
 {
 
-	VNET_ASSERT(TAILQ_EMPTY(&V_ifnet));
-	VNET_ASSERT(TAILQ_EMPTY(&V_ifg_head));
+	VNET_ASSERT(TAILQ_EMPTY(&V_ifnet), ("%s:%d tailq &V_ifnet=%p "
+	    "not empty", __func__, __LINE__, &V_ifnet));
+	VNET_ASSERT(TAILQ_EMPTY(&V_ifg_head), ("%s:%d tailq &V_ifg_head=%p "
+	    "not empty", __func__, __LINE__, &V_ifg_head));
 
 	free((caddr_t)V_ifindex_table, M_IFNET);
 }

Modified: user/mr/ficl/sys/net/netisr.c
==============================================================================
--- user/mr/ficl/sys/net/netisr.c	Fri Feb 11 14:17:58 2011	(r218567)
+++ user/mr/ficl/sys/net/netisr.c	Fri Feb 11 14:44:00 2011	(r218568)
@@ -647,7 +647,8 @@ netisr_process_workstream_proto(struct n
 		if (local_npw.nw_head == NULL)
 			local_npw.nw_tail = NULL;
 		local_npw.nw_len--;
-		VNET_ASSERT(m->m_pkthdr.rcvif != NULL);
+		VNET_ASSERT(m->m_pkthdr.rcvif != NULL,
+		    ("%s:%d rcvif == NULL: m=%p", __func__, __LINE__, m));
 		CURVNET_SET(m->m_pkthdr.rcvif->if_vnet);
 		netisr_proto[proto].np_handler(m);
 		CURVNET_RESTORE();

Modified: user/mr/ficl/sys/net/vnet.h
==============================================================================
--- user/mr/ficl/sys/net/vnet.h	Fri Feb 11 14:17:58 2011	(r218567)
+++ user/mr/ficl/sys/net/vnet.h	Fri Feb 11 14:44:00 2011	(r218568)
@@ -118,22 +118,27 @@ void	vnet_destroy(struct vnet *vnet);
  * Various macros -- get and set the current network stack, but also
  * assertions.
  */
+#if defined(INVARIANTS) || defined(VNET_DEBUG)
+#define	VNET_ASSERT(exp, msg)	do {					\
+	if (!(exp))							\
+		panic msg;						\
+} while (0)
+#else
+#define	VNET_ASSERT(exp, msg)	do {					\
+} while (0)
+#endif
+
 #ifdef VNET_DEBUG
 void vnet_log_recursion(struct vnet *, const char *, int);
 
-#define	VNET_ASSERT(condition)						\
-	if (!(condition)) {						\
-		printf("VNET_ASSERT @ %s:%d %s():\n",			\
-			__FILE__, __LINE__, __FUNCTION__);		\
-		panic(#condition);					\
-	}
-
 #define	CURVNET_SET_QUIET(arg)						\
-	VNET_ASSERT((arg)->vnet_magic_n == VNET_MAGIC_N);		\
+	VNET_ASSERT((arg) != NULL && (arg)->vnet_magic_n == VNET_MAGIC_N, \
+	    ("CURVNET_SET at %s:%d %s() curvnet=%p vnet=%p",		\
+	    __FILE__, __LINE__, __func__, curvnet, (arg)));		\
 	struct vnet *saved_vnet = curvnet;				\
 	const char *saved_vnet_lpush = curthread->td_vnet_lpush;	\
 	curvnet = arg;							\
-	curthread->td_vnet_lpush = __FUNCTION__;
+	curthread->td_vnet_lpush = __func__;
  
 #define	CURVNET_SET_VERBOSE(arg)					\
 	CURVNET_SET_QUIET(arg)						\
@@ -143,21 +148,31 @@ void vnet_log_recursion(struct vnet *, c
 #define	CURVNET_SET(arg)	CURVNET_SET_VERBOSE(arg)
  
 #define	CURVNET_RESTORE()						\
-	VNET_ASSERT(saved_vnet == NULL ||				\
-		    saved_vnet->vnet_magic_n == VNET_MAGIC_N);		\
+	VNET_ASSERT(curvnet != NULL && (saved_vnet == NULL ||		\
+	    saved_vnet->vnet_magic_n == VNET_MAGIC_N),			\
+	    ("CURVNET_RESTORE at %s:%d %s() curvnet=%p saved_vnet=%p",	\
+	    __FILE__, __LINE__, __func__, curvnet, saved_vnet));	\
 	curvnet = saved_vnet;						\
 	curthread->td_vnet_lpush = saved_vnet_lpush;
 #else /* !VNET_DEBUG */
-#define	VNET_ASSERT(condition)
 
-#define	CURVNET_SET(arg)						\
+#define	CURVNET_SET_QUIET(arg)						\
+	VNET_ASSERT((arg) != NULL && (arg)->vnet_magic_n == VNET_MAGIC_N, \
+	    ("CURVNET_SET at %s:%d %s() curvnet=%p vnet=%p",		\
+	    __FILE__, __LINE__, __func__, curvnet, (arg)));		\
 	struct vnet *saved_vnet = curvnet;				\
 	curvnet = arg;	
  
-#define	CURVNET_SET_VERBOSE(arg)	CURVNET_SET(arg)
-#define	CURVNET_SET_QUIET(arg)		CURVNET_SET(arg)
+#define	CURVNET_SET_VERBOSE(arg)					\
+	CURVNET_SET_QUIET(arg)
+
+#define	CURVNET_SET(arg)	CURVNET_SET_VERBOSE(arg)
  
 #define	CURVNET_RESTORE()						\
+	VNET_ASSERT(curvnet != NULL && (saved_vnet == NULL ||		\
+	    saved_vnet->vnet_magic_n == VNET_MAGIC_N),			\
+	    ("CURVNET_RESTORE at %s:%d %s() curvnet=%p saved_vnet=%p",	\
+	    __FILE__, __LINE__, __func__, curvnet, saved_vnet));	\
 	curvnet = saved_vnet;
 #endif /* VNET_DEBUG */
 
@@ -351,7 +366,7 @@ do {									\
  */
 #define	curvnet			NULL
 
-#define	VNET_ASSERT(condition)
+#define	VNET_ASSERT(exp, msg)
 #define	CURVNET_SET(arg)
 #define	CURVNET_SET_QUIET(arg)
 #define	CURVNET_RESTORE()