CVS commit: src/sys/arch/mac68k/dev

2012-12-07 Thread Hauke Fath
Module Name:src
Committed By:   hauke
Date:   Fri Dec  7 08:04:02 UTC 2012

Modified Files:
src/sys/arch/mac68k/dev: sbc.c

Log Message:
Remove the R1 syntactic sugar, since it collides with a #define in
, breaking the build.

The R1s serve to bring the buffer pointer to a 4 byte boundary, but
that should be clear from the context.


To generate a diff of this commit:
cvs rdiff -u -r1.54 -r1.55 src/sys/arch/mac68k/dev/sbc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/mac68k/dev/sbc.c
diff -u src/sys/arch/mac68k/dev/sbc.c:1.54 src/sys/arch/mac68k/dev/sbc.c:1.55
--- src/sys/arch/mac68k/dev/sbc.c:1.54	Mon Nov 23 00:11:44 2009
+++ src/sys/arch/mac68k/dev/sbc.c	Fri Dec  7 08:04:02 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: sbc.c,v 1.54 2009/11/23 00:11:44 rmind Exp $	*/
+/*	$NetBSD: sbc.c,v 1.55 2012/12/07 08:04:02 hauke Exp $	*/
 
 /*
  * Copyright (C) 1996 Scott Reynolds.  All rights reserved.
@@ -45,7 +45,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: sbc.c,v 1.54 2009/11/23 00:11:44 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sbc.c,v 1.55 2012/12/07 08:04:02 hauke Exp $");
 
 #include "opt_ddb.h"
 
@@ -274,7 +274,6 @@ sbc_pdma_in(struct ncr5380_softc *ncr_sc
 	}
 
 #define R4	*(u_int32_t *)data = *long_data, data += 4;
-#define R1	*(u_int8_t *)data = *byte_data, data += 1;
 	for (; resid >= 128; resid -= 128) {
 		if (sbc_ready(ncr_sc))
 			goto interrupt;
@@ -286,11 +285,10 @@ sbc_pdma_in(struct ncr5380_softc *ncr_sc
 	while (resid) {
 		if (sbc_ready(ncr_sc))
 			goto interrupt;
-		R1;
+		*(u_int8_t *)data = *byte_data, data += 1;
 		resid--;
 	}
 #undef R4
-#undef R1
 
 interrupt:
 	nofault = NULL;
@@ -546,12 +544,10 @@ sbc_drq_intr(void *p)
 		if (count && count < 4) {
 			data = (u_int8_t *)dh->dh_addr;
 			drq = (volatile u_int8_t *)sc->sc_drq_addr;
-
-#define R1		*data++ = *drq++
 			while (count) {
-R1; count--;
+*data++ = *drq++;
+count--;
 			}
-#undef R1
 			dh->dh_addr += resid;
 			dh->dh_len -= resid;
 		}
@@ -576,12 +572,10 @@ sbc_drq_intr(void *p)
 #undef R4
 			data = (u_int8_t *)long_data;
 			drq = (volatile u_int8_t *)long_drq;
-
-#define R1		*data++ = *drq++
 			while (count) {
-R1; count--;
+*data++ = *drq++;
+count--;
 			}
-#undef R1
 			dh->dh_len -= dcount;
 			dh->dh_addr += dcount;
 		}



CVS commit: src/sys/arch/sparc64/conf

2012-12-07 Thread Julian Coleman
Module Name:src
Committed By:   jdc
Date:   Fri Dec  7 12:57:02 UTC 2012

Modified Files:
src/sys/arch/sparc64/conf: GENERIC

Log Message:
Add uthum (tested on U60 with Belkin F5U508 USB 2 and SB2000 built-in USB 1).


To generate a diff of this commit:
cvs rdiff -u -r1.155 -r1.156 src/sys/arch/sparc64/conf/GENERIC

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/sparc64/conf/GENERIC
diff -u src/sys/arch/sparc64/conf/GENERIC:1.155 src/sys/arch/sparc64/conf/GENERIC:1.156
--- src/sys/arch/sparc64/conf/GENERIC:1.155	Fri Nov  2 17:51:03 2012
+++ src/sys/arch/sparc64/conf/GENERIC	Fri Dec  7 12:57:01 2012
@@ -1,4 +1,4 @@
-# $NetBSD: GENERIC,v 1.155 2012/11/02 17:51:03 jdc Exp $
+# $NetBSD: GENERIC,v 1.156 2012/12/07 12:57:01 jdc Exp $
 #
 # GENERIC machine description file
 #
@@ -22,7 +22,7 @@ include	"arch/sparc64/conf/std.sparc64"
 
 options 	INCLUDE_CONFIG_FILE	# embed config file in kernel binary
 
-#ident 		"GENERIC-$Revision: 1.155 $"
+#ident 		"GENERIC-$Revision: 1.156 $"
 
 maxusers	64
 
@@ -593,6 +593,9 @@ wsmouse* at uep? mux 0
 ukbd*	at uhidev? reportid ?
 wskbd*	at ukbd? console ? mux 1
 
+# USB TEMPer and TEMPerHUM
+uthum*	at uhidev? reportid ?
+
 # USB serial adapter
 ucycom*	at uhidev? reportid ?
 



CVS commit: src/sys/netipsec

2012-12-07 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Fri Dec  7 15:29:38 UTC 2012

Modified Files:
src/sys/netipsec: ipsec.c

Log Message:
rename pcb_sp to policy to avoid:
$SRC/arch/arm/include/pcb.h:#define pcb_sp  pcb_un.un_32.pcb32_sp
$SRC/arch/arm/include/pcb.h:#define pcb_sp  pcb_sf.sf_r13


To generate a diff of this commit:
cvs rdiff -u -r1.56 -r1.57 src/sys/netipsec/ipsec.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/netipsec/ipsec.c
diff -u src/sys/netipsec/ipsec.c:1.56 src/sys/netipsec/ipsec.c:1.57
--- src/sys/netipsec/ipsec.c:1.56	Tue Mar 13 14:41:00 2012
+++ src/sys/netipsec/ipsec.c	Fri Dec  7 10:29:38 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: ipsec.c,v 1.56 2012/03/13 18:41:00 elad Exp $	*/
+/*	$NetBSD: ipsec.c,v 1.57 2012/12/07 15:29:38 christos Exp $	*/
 /*	$FreeBSD: /usr/local/www/cvsroot/FreeBSD/src/sys/netipsec/ipsec.c,v 1.2.2.2 2003/07/01 01:38:13 sam Exp $	*/
 /*	$KAME: ipsec.c,v 1.103 2001/05/24 07:14:18 sakane Exp $	*/
 
@@ -32,7 +32,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: ipsec.c,v 1.56 2012/03/13 18:41:00 elad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ipsec.c,v 1.57 2012/12/07 15:29:38 christos Exp $");
 
 /*
  * IPsec controller part.
@@ -1155,12 +1155,12 @@ ipsec_delpcbpolicy(struct inpcbpolicy *p
 
 /* initialize policy in PCB */
 int
-ipsec_init_policy(struct socket *so, struct inpcbpolicy **pcb_sp)
+ipsec_init_policy(struct socket *so, struct inpcbpolicy **policy)
 {
 	struct inpcbpolicy *new;
 
 	/* sanity check. */
-	if (so == NULL || pcb_sp == NULL)
+	if (so == NULL || policy == NULL)
 		panic("ipsec_init_policy: NULL pointer was passed");
 
 	new = malloc(sizeof(*new), M_SECA, M_NOWAIT|M_ZERO);
@@ -1189,7 +1189,7 @@ ipsec_init_policy(struct socket *so, str
 	new->sp_out->state = IPSEC_SPSTATE_ALIVE;
 	new->sp_out->policy = IPSEC_POLICY_ENTRUST;
 
-	*pcb_sp = new;
+	*policy = new;
 
 	return 0;
 }
@@ -1278,7 +1278,7 @@ fail:
 /* set policy and ipsec request if present. */
 static int
 ipsec_set_policy(
-	struct secpolicy **pcb_sp,
+	struct secpolicy **policy,
 	int optname,
 	const void *request,
 	size_t len,
@@ -1290,7 +1290,7 @@ ipsec_set_policy(
 	int error;
 
 	/* sanity check. */
-	if (pcb_sp == NULL || *pcb_sp == NULL || request == NULL)
+	if (policy == NULL || *policy == NULL || request == NULL)
 		return EINVAL;
 	if (len < sizeof(*xpl))
 		return EINVAL;
@@ -1321,8 +1321,8 @@ ipsec_set_policy(
 	newsp->state = IPSEC_SPSTATE_ALIVE;
 
 	/* clear old SP and set new SP */
-	KEY_FREESP(pcb_sp);
-	*pcb_sp = newsp;
+	KEY_FREESP(policy);
+	*policy = newsp;
 	KEYDEBUG(KEYDEBUG_IPSEC_DUMP,
 		printf("ipsec_set_policy: new policy\n");
 		kdebug_secpolicy(newsp));
@@ -1331,14 +1331,14 @@ ipsec_set_policy(
 }
 
 static int
-ipsec_get_policy(struct secpolicy *pcb_sp, struct mbuf **mp)
+ipsec_get_policy(struct secpolicy *policy, struct mbuf **mp)
 {
 
 	/* sanity check. */
-	if (pcb_sp == NULL || mp == NULL)
+	if (policy == NULL || mp == NULL)
 		return EINVAL;
 
-	*mp = key_sp2msg(pcb_sp);
+	*mp = key_sp2msg(policy);
 	if (!*mp) {
 		ipseclog((LOG_DEBUG, "ipsec_get_policy: No more memory.\n"));
 		return ENOBUFS;
@@ -1357,7 +1357,7 @@ ipsec4_set_policy(struct inpcb *inp, int
 		  size_t len, kauth_cred_t cred)
 {
 	const struct sadb_x_policy *xpl;
-	struct secpolicy **pcb_sp;
+	struct secpolicy **policy;
 
 	/* sanity check. */
 	if (inp == NULL || request == NULL)
@@ -1372,10 +1372,10 @@ ipsec4_set_policy(struct inpcb *inp, int
 	/* select direction */
 	switch (xpl->sadb_x_policy_dir) {
 	case IPSEC_DIR_INBOUND:
-		pcb_sp = &inp->inp_sp->sp_in;
+		policy = &inp->inp_sp->sp_in;
 		break;
 	case IPSEC_DIR_OUTBOUND:
-		pcb_sp = &inp->inp_sp->sp_out;
+		policy = &inp->inp_sp->sp_out;
 		break;
 	default:
 		ipseclog((LOG_ERR, "ipsec4_set_policy: invalid direction=%u\n",
@@ -1383,7 +1383,7 @@ ipsec4_set_policy(struct inpcb *inp, int
 		return EINVAL;
 	}
 
-	return ipsec_set_policy(pcb_sp, optname, request, len, cred);
+	return ipsec_set_policy(policy, optname, request, len, cred);
 }
 
 int
@@ -1391,7 +1391,7 @@ ipsec4_get_policy(struct inpcb *inp, con
 		  struct mbuf **mp)
 {
 	const struct sadb_x_policy *xpl;
-	struct secpolicy *pcb_sp;
+	struct secpolicy *policy;
 
 	/* sanity check. */
 	if (inp == NULL || request == NULL || mp == NULL)
@@ -1404,10 +1404,10 @@ ipsec4_get_policy(struct inpcb *inp, con
 	/* select direction */
 	switch (xpl->sadb_x_policy_dir) {
 	case IPSEC_DIR_INBOUND:
-		pcb_sp = inp->inp_sp->sp_in;
+		policy = inp->inp_sp->sp_in;
 		break;
 	case IPSEC_DIR_OUTBOUND:
-		pcb_sp = inp->inp_sp->sp_out;
+		policy = inp->inp_sp->sp_out;
 		break;
 	default:
 		ipseclog((LOG_ERR, "ipsec4_set_policy: invalid direction=%u\n",
@@ -1415,7 +1415,7 @@ ipsec4_get_policy(struct inpcb *inp, con
 		return EINVAL;
 	}
 
-	return ipsec_get_policy(pcb_sp, mp);
+	return ipsec_get_policy(policy, mp);
 }
 
 /* delete policy in PCB */
@@ -14

CVS commit: src/external/gpl3/gcc/lib/libgcc

2012-12-07 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Fri Dec  7 15:38:04 UTC 2012

Modified Files:
src/external/gpl3/gcc/lib/libgcc: Makefile.inc

Log Message:
If we did not include a specific arch file G_UNWIND_H will not be defined.
Perhaps it is better to error out in that case?


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/external/gpl3/gcc/lib/libgcc/Makefile.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/gpl3/gcc/lib/libgcc/Makefile.inc
diff -u src/external/gpl3/gcc/lib/libgcc/Makefile.inc:1.15 src/external/gpl3/gcc/lib/libgcc/Makefile.inc:1.16
--- src/external/gpl3/gcc/lib/libgcc/Makefile.inc:1.15	Tue Aug 28 23:12:08 2012
+++ src/external/gpl3/gcc/lib/libgcc/Makefile.inc	Fri Dec  7 10:38:04 2012
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.inc,v 1.15 2012/08/29 03:12:08 msaitoh Exp $
+#	$NetBSD: Makefile.inc,v 1.16 2012/12/07 15:38:04 christos Exp $
 
 .if ${MKGCC} != "no"
 .if exists(${.CURDIR}/../arch/${MACHINE_ARCH}.mk)
@@ -143,7 +143,7 @@ dp-bit.c: ${.CURDIR}/Makefile
 .include "../Makefile.tconfigh"
 DPSRCS+=	tconfig.h
 
-.if ${MKGCC} != "no"
+.if ${MKGCC} != "no" && defined(G_UNWIND_H) && !empty(G_UNWIND_H)
 # XXX figure out why Makefile.hacks doesn't work
 BUILDSYMLINKS+=	${G_UNWIND_H} unwind.h
 DPSRCS+=	unwind.h



CVS commit: src/common/lib/libc/quad

2012-12-07 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Fri Dec  7 15:41:02 UTC 2012

Modified Files:
src/common/lib/libc/quad: lshldi3.c

Log Message:
use explicit cast to pacify lint.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/common/lib/libc/quad/lshldi3.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/common/lib/libc/quad/lshldi3.c
diff -u src/common/lib/libc/quad/lshldi3.c:1.3 src/common/lib/libc/quad/lshldi3.c:1.4
--- src/common/lib/libc/quad/lshldi3.c:1.3	Sun Aug  5 22:31:54 2012
+++ src/common/lib/libc/quad/lshldi3.c	Fri Dec  7 10:41:02 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: lshldi3.c,v 1.3 2012/08/06 02:31:54 matt Exp $	*/
+/*	$NetBSD: lshldi3.c,v 1.4 2012/12/07 15:41:02 christos Exp $	*/
 
 /*-
  * Copyright (c) 1992, 1993
@@ -38,7 +38,7 @@
 #if 0
 static char sccsid[] = "@(#)lshldi3.c	8.1 (Berkeley) 6/4/93";
 #else
-__RCSID("$NetBSD: lshldi3.c,v 1.3 2012/08/06 02:31:54 matt Exp $");
+__RCSID("$NetBSD: lshldi3.c,v 1.4 2012/12/07 15:41:02 christos Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -59,7 +59,7 @@ __lshldi3(quad_t a, qshift_t shift)
 		return(a);
 	aa.q = a;
 	if (shift >= INT_BITS) {
-		aa.ul[H] = aa.ul[L] << (shift - INT_BITS);
+		aa.ul[H] = aa.ul[L] << (unsigned int)(shift - INT_BITS);
 		aa.ul[L] = 0;
 	} else {
 		aa.ul[H] = (aa.ul[H] << shift) |



CVS commit: src/distrib/sets/lists/comp

2012-12-07 Thread Nicolas Joly
Module Name:src
Committed By:   njoly
Date:   Fri Dec  7 18:36:25 UTC 2012

Modified Files:
src/distrib/sets/lists/comp: ad.mips64eb ad.mips64el md.amd64
md.sparc64 shl.mi

Log Message:
Adjust libraries debug entries following recent bind update.


To generate a diff of this commit:
cvs rdiff -u -r1.93 -r1.94 src/distrib/sets/lists/comp/ad.mips64eb
cvs rdiff -u -r1.95 -r1.96 src/distrib/sets/lists/comp/ad.mips64el
cvs rdiff -u -r1.183 -r1.184 src/distrib/sets/lists/comp/md.amd64
cvs rdiff -u -r1.160 -r1.161 src/distrib/sets/lists/comp/md.sparc64
cvs rdiff -u -r1.239 -r1.240 src/distrib/sets/lists/comp/shl.mi

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/distrib/sets/lists/comp/ad.mips64eb
diff -u src/distrib/sets/lists/comp/ad.mips64eb:1.93 src/distrib/sets/lists/comp/ad.mips64eb:1.94
--- src/distrib/sets/lists/comp/ad.mips64eb:1.93	Mon Nov 26 08:05:47 2012
+++ src/distrib/sets/lists/comp/ad.mips64eb	Fri Dec  7 18:36:24 2012
@@ -1,4 +1,4 @@
-# $NetBSD: ad.mips64eb,v 1.93 2012/11/26 08:05:47 alnsn Exp $
+# $NetBSD: ad.mips64eb,v 1.94 2012/12/07 18:36:24 njoly Exp $
 ./usr/bin/elf2aoutcomp-obsolete		obsolete
 ./usr/bin/elf2ecoffcomp-sysutil-bin
 ./usr/include/gcc-4.5/loongson.h		comp-c-include		gcccmds,gcc=45
@@ -1303,7 +1303,7 @@
 ./usr/libdata/debug/usr/lib/64/libatf-c++.so.0.0.debug		comp-compat-shlib	compat,pic,atf,debug
 ./usr/libdata/debug/usr/lib/64/libavl.so.0.0.debug		comp-zfs-debug	zfs,dynamicroot,debug,compat
 ./usr/libdata/debug/usr/lib/64/libbfd.so.12.0.debug	comp-sys-debug	binutils,debug,compat
-./usr/libdata/debug/usr/lib/64/libbind9.so.5.7.debug	comp-bind-debug	debug,compat
+./usr/libdata/debug/usr/lib/64/libbind9.so.5.8.debug	comp-bind-debug	debug,compat
 ./usr/libdata/debug/usr/lib/64/libbluetooth.so.4.2.debug	comp-sys-debug	debug,compat
 ./usr/libdata/debug/usr/lib/64/libbsdmalloc.so.0.0.debug	comp-sys-debug	debug,compat
 ./usr/libdata/debug/usr/lib/64/libbz2.so.1.1.debug		comp-sys-debug	debug,compat
@@ -1317,7 +1317,7 @@
 ./usr/libdata/debug/usr/lib/64/libdes.so.8.1.debug		comp-crypto-debug	crypto,debug,compat
 ./usr/libdata/debug/usr/lib/64/libdevmapper.so.1.0.debug	comp-lvm-debug	lvm,debug,compat
 ./usr/libdata/debug/usr/lib/64/libdm.so.0.0.debug 		comp-sys-debug	debug,compat
-./usr/libdata/debug/usr/lib/64/libdns.so.5.7.debug		comp-bind-debug	debug,compat
+./usr/libdata/debug/usr/lib/64/libdns.so.5.8.debug		comp-bind-debug	debug,compat
 ./usr/libdata/debug/usr/lib/64/libdns_sd.so.0.0.debug	comp-mdns-debug	mdns,debug,compat
 ./usr/libdata/debug/usr/lib/64/libdtrace.so.2.0.debug	comp-sys-debug	dtrace,debug,compat
 ./usr/libdata/debug/usr/lib/64/libdwarf.so.0.0.debug	comp-sys-debug	debug,compat
@@ -1343,9 +1343,9 @@
 ./usr/libdata/debug/usr/lib/64/libhx509.so.5.0.debug	comp-krb5-debug	kerberos,debug,compat
 ./usr/libdata/debug/usr/lib/64/libintl.so.1.0.debug	comp-sys-debug	debug,compat
 ./usr/libdata/debug/usr/lib/64/libipsec.so.3.0.debug	comp-net-debug	debug,compat
-./usr/libdata/debug/usr/lib/64/libisc.so.5.7.debug		comp-bind-debug	debug,compat
-./usr/libdata/debug/usr/lib/64/libisccc.so.5.7.debug	comp-bind-debug	debug,compat
-./usr/libdata/debug/usr/lib/64/libisccfg.so.5.7.debug	comp-bind-debug	debug,compat
+./usr/libdata/debug/usr/lib/64/libisc.so.5.8.debug		comp-bind-debug	debug,compat
+./usr/libdata/debug/usr/lib/64/libisccc.so.5.8.debug	comp-bind-debug	debug,compat
+./usr/libdata/debug/usr/lib/64/libisccfg.so.5.8.debug	comp-bind-debug	debug,compat
 ./usr/libdata/debug/usr/lib/64/libiscsi.so.2.0.debug	comp-iscsi-debug	iscsi,debug,compat
 ./usr/libdata/debug/usr/lib/64/libisns.so.0.0.debug	comp-isns-debug	debug,compat
 ./usr/libdata/debug/usr/lib/64/libkadm5clnt.so.12.0.debug	 comp-compat-shlib	 compat,pic,kerberos,debug,obsolete
@@ -1362,7 +1362,7 @@
 ./usr/libdata/debug/usr/lib/64/libldap.so.4.2.debug	comp-ldap-debug	ldap,debug,compat
 ./usr/libdata/debug/usr/lib/64/libldap_r.so.4.2.debug	comp-ldap-debug	ldap,debug,compat
 ./usr/libdata/debug/usr/lib/64/liblua.so.1.0.debug		comp-sys-debug	debug,compat
-./usr/libdata/debug/usr/lib/64/liblwres.so.5.7.debug	comp-bind-debug	debug,compat
+./usr/libdata/debug/usr/lib/64/liblwres.so.5.8.debug	comp-bind-debug	debug,compat
 ./usr/libdata/debug/usr/lib/64/liblzf.so.1.0.debug		comp-sys-debug	debug,compat
 ./usr/libdata/debug/usr/lib/64/liblzma.so.1.1.debug	comp-sys-debug	debug,compat
 ./usr/libdata/debug/usr/lib/64/libm.so.0.10.debug		comp-sys-debug	debug,compat
@@ -1460,7 +1460,7 @@
 ./usr/libdata/debug/usr/lib/o32/libatf-c++.so.0.0.debug		comp-compat-shlib	compat,pic,atf,debug
 ./usr/libdata/debug/usr/lib/o32/libavl.so.0.0.debug		comp-zfs-debug	zfs,dynamicroot,debug,compat
 ./usr/libdata/debug/usr/lib/o32/libbfd.so.12.0.debug	comp-sys-debug	binutils,debug,compat
-./usr/libdata/debug/usr/lib/o32/libbind9.so.5.7.debug	comp-bind-debug	debug,compat
+./usr/libdata/debug/usr/lib/o32/libbind9.so.5.8.debug	comp-bind

CVS commit: src/sys/arch/arm/include/arm32

2012-12-07 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Fri Dec  7 18:46:50 UTC 2012

Modified Files:
src/sys/arch/arm/include/arm32: param.h

Log Message:
FPCONTEXTSIZE is dead.


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/sys/arch/arm/include/arm32/param.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/include/arm32/param.h
diff -u src/sys/arch/arm/include/arm32/param.h:1.17 src/sys/arch/arm/include/arm32/param.h:1.18
--- src/sys/arch/arm/include/arm32/param.h:1.17	Sat Feb  4 17:56:16 2012
+++ src/sys/arch/arm/include/arm32/param.h	Fri Dec  7 18:46:50 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: param.h,v 1.17 2012/02/04 17:56:16 para Exp $	*/
+/*	$NetBSD: param.h,v 1.18 2012/12/07 18:46:50 matt Exp $	*/
 
 /*
  * Copyright (c) 1994,1995 Mark Brinicombe.
@@ -72,17 +72,13 @@
 /*
  * The USPACE area contains :
  * 1. the pcb structure for the process
- * 2. the fp context for FP emulation
- * 3. the kernel (svc) stack
+ * 2. the kernel (svc) stack
  *
  * The layout of the area looks like this
  *
- * | uarea | FP context | kernel stack |
+ * | uarea | kernel stack |
  *
  * The size of the uarea is known.
- * The size of the FP context is variable depending of the FP emulator
- * in use and whether there is hardware FP support. However we can put
- * an upper limit on it.
  * The kernel stack should be at least 4K is size.
  *
  * The stack top addresses are used to set the stack pointers. The stack bottom
@@ -90,9 +86,8 @@
  *
  */
 
-#define FPCONTEXTSIZE			(0x100)
 #define USPACE_SVC_STACK_TOP		(USPACE)
-#define USPACE_SVC_STACK_BOTTOM		(sizeof(struct pcb) + FPCONTEXTSIZE + 10)
+#define USPACE_SVC_STACK_BOTTOM		(sizeof(struct pcb))
 
 #define arm_btop(x)			((x) >> PGSHIFT)
 #define arm_ptob(x)			((x) << PGSHIFT)



CVS commit: src/distrib/sets/lists/comp

2012-12-07 Thread Nicolas Joly
Module Name:src
Committed By:   njoly
Date:   Fri Dec  7 18:48:56 UTC 2012

Modified Files:
src/distrib/sets/lists/comp: mi

Log Message:
+dnssec-verify.debug


To generate a diff of this commit:
cvs rdiff -u -r1.1795 -r1.1796 src/distrib/sets/lists/comp/mi

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/distrib/sets/lists/comp/mi
diff -u src/distrib/sets/lists/comp/mi:1.1795 src/distrib/sets/lists/comp/mi:1.1796
--- src/distrib/sets/lists/comp/mi:1.1795	Fri Dec  7 01:54:27 2012
+++ src/distrib/sets/lists/comp/mi	Fri Dec  7 18:48:54 2012
@@ -1,4 +1,4 @@
-#	$NetBSD: mi,v 1.1795 2012/12/07 01:54:27 christos Exp $
+#	$NetBSD: mi,v 1.1796 2012/12/07 18:48:54 njoly Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -4127,6 +4127,7 @@
 ./usr/libdata/debug/usr/sbin/dnssec-revoke.debug	comp-bind-debug		debug
 ./usr/libdata/debug/usr/sbin/dnssec-settime.debug	comp-bind-debug		debug
 ./usr/libdata/debug/usr/sbin/dnssec-signzone.debug	comp-bind-debug		debug
+./usr/libdata/debug/usr/sbin/dnssec-verify.debug	comp-bind-debug		debug
 ./usr/libdata/debug/usr/sbin/dtmfdecode.debug	comp-isdn-debug		debug
 ./usr/libdata/debug/usr/sbin/dtrace.debug	comp-util-debug		dtrace,debug
 ./usr/libdata/debug/usr/sbin/dumpfs.debug	comp-sysutil-debug	debug



CVS commit: src/sys/arch/arm/include

2012-12-07 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Fri Dec  7 18:49:13 UTC 2012

Modified Files:
src/sys/arch/arm/include: mcontext.h reg.h

Log Message:
Extend vfpreg to include all 32 64-bit FP registers.
For __ARM_EABI__, define __vfp_fstmx to have space for all 32 32-bit
FP registers (It's a newly supported ABI so we can "break" binary
compatibility.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/sys/arch/arm/include/mcontext.h
cvs rdiff -u -r1.3 -r1.4 src/sys/arch/arm/include/reg.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/include/mcontext.h
diff -u src/sys/arch/arm/include/mcontext.h:1.12 src/sys/arch/arm/include/mcontext.h:1.13
--- src/sys/arch/arm/include/mcontext.h:1.12	Wed Dec  5 19:05:46 2012
+++ src/sys/arch/arm/include/mcontext.h	Fri Dec  7 18:49:13 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: mcontext.h,v 1.12 2012/12/05 19:05:46 matt Exp $	*/
+/*	$NetBSD: mcontext.h,v 1.13 2012/12/07 18:49:13 matt Exp $	*/
 
 /*-
  * Copyright (c) 2001, 2002 The NetBSD Foundation, Inc.
@@ -76,9 +76,15 @@ typedef struct {
 } __fpregset_t;
 
 typedef struct {
+#ifdef __ARM_EABI__
+	unsigned int	__vfp_fpscr;
+	uint64_t	__vfp_fstmx[32];
+	unsigned int	__vfp_fpsid;
+#else
 	unsigned int	__vfp_fpscr;
 	unsigned int	__vfp_fstmx[33];
 	unsigned int	__vfp_fpsid;
+#endif
 } __vfpregset_t;
 
 typedef struct {

Index: src/sys/arch/arm/include/reg.h
diff -u src/sys/arch/arm/include/reg.h:1.3 src/sys/arch/arm/include/reg.h:1.4
--- src/sys/arch/arm/include/reg.h:1.3	Wed Dec  5 19:05:46 2012
+++ src/sys/arch/arm/include/reg.h	Fri Dec  7 18:49:13 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: reg.h,v 1.3 2012/12/05 19:05:46 matt Exp $	*/
+/*	$NetBSD: reg.h,v 1.4 2012/12/07 18:49:13 matt Exp $	*/
 
 /*
  * Copyright (C) 1994, 1995 Frank Lancaster
@@ -51,7 +51,7 @@ struct vfpreg {
 	uint32_t vfp_fpscr;
 	uint32_t vfp_fpinst;
 	uint32_t vfp_fpinst2;
-	uint32_t vfp_regs[33];	/* In case we need fstmx format.  */
+	uint64_t vfp_regs[33];	/* In case we need fstmx format.  */
 };
 
 struct fpreg {



CVS commit: src/sys/arch/arm/broadcom

2012-12-07 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Fri Dec  7 22:18:45 UTC 2012

Modified Files:
src/sys/arch/arm/broadcom: files.bcm53xx

Log Message:
Add BCMETH_COUNTERS


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/broadcom/files.bcm53xx

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/broadcom/files.bcm53xx
diff -u src/sys/arch/arm/broadcom/files.bcm53xx:1.2 src/sys/arch/arm/broadcom/files.bcm53xx:1.3
--- src/sys/arch/arm/broadcom/files.bcm53xx:1.2	Tue Oct 23 23:13:20 2012
+++ src/sys/arch/arm/broadcom/files.bcm53xx	Fri Dec  7 22:18:45 2012
@@ -1,4 +1,4 @@
-#	$NetBSD: files.bcm53xx,v 1.2 2012/10/23 23:13:20 matt Exp $
+#	$NetBSD: files.bcm53xx,v 1.3 2012/12/07 22:18:45 matt Exp $
 #
 # Configuration info for Broadcom BCM5301X ARM Peripherals
 #
@@ -20,6 +20,7 @@ defparam opt_broadcom.hCONSPEED
 defparam opt_broadcom.hCONMODE
 defparam opt_broadcom.hMEMSIZE
 defflag opt_broadcom.hBCM53XX_CONSOLE_EARLY
+defflag opt_broadcom.hBCMETH_COUNTERS
 
 # ChipCommonA attach point
 device	bcmcca { [channel=-1] } : bus_space_generic, gpiobus, sysmon_wdog



CVS commit: src/sys/arch/arm/broadcom

2012-12-07 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Fri Dec  7 22:21:03 UTC 2012

Modified Files:
src/sys/arch/arm/broadcom: bcm53xx_eth.c

Log Message:
Make evcnt'ers optional.


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/sys/arch/arm/broadcom/bcm53xx_eth.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/broadcom/bcm53xx_eth.c
diff -u src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.17 src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.18
--- src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.17	Thu Nov  8 21:32:48 2012
+++ src/sys/arch/arm/broadcom/bcm53xx_eth.c	Fri Dec  7 22:21:03 2012
@@ -31,10 +31,11 @@
 #define GMAC_PRIVATE
 
 #include "locators.h"
+#include "opt_broadcom.h"
 
 #include 
 
-__KERNEL_RCSID(1, "$NetBSD: bcm53xx_eth.c,v 1.17 2012/11/08 21:32:48 matt Exp $");
+__KERNEL_RCSID(1, "$NetBSD: bcm53xx_eth.c,v 1.18 2012/12/07 22:21:03 matt Exp $");
 
 #include 
 #include 
@@ -63,6 +64,13 @@ __KERNEL_RCSID(1, "$NetBSD: bcm53xx_eth.
 
 //#define BCMETH_MPSAFE
 
+#ifdef BCMETH_COUNTERS
+#define	BCMETH_EVCNT_ADD(a,b)	((void)((a).ev_count += (b)))
+#else
+#define	BCMETH_EVCNT_ADD(a,b)	do { } while (/*CONSTCOND*/0)
+#endif
+#define	BCMETH_EVCNT_INCR(a)	BCMETH_EVCNT_ADD((a), 1)
+
 #define	BCMETH_RCVOFFSET	10
 #define	BCMETH_MAXTXMBUFS	128
 #define	BCMETH_NTXSEGS		30
@@ -148,12 +156,14 @@ struct bcmeth_softc {
 #define	SOFT_RXINTR		0x01
 #define	SOFT_TXINTR		0x02
 
+#ifdef BCMETH_COUNTERS
 	struct evcnt sc_ev_intr;
 	struct evcnt sc_ev_soft_intr;
 	struct evcnt sc_ev_work;
 	struct evcnt sc_ev_tx_stall;
 	struct evcnt sc_ev_rx_badmagic_lo;
 	struct evcnt sc_ev_rx_badmagic_hi;
+#endif
 
 	struct ifqueue sc_rx_bufcache;
 	struct bcmeth_mapcache *sc_rx_mapcache; 
@@ -386,6 +396,7 @@ bcmeth_ccb_attach(device_t parent, devic
 	if_attach(ifp);
 	ether_ifattach(ifp, sc->sc_enaddr);
 
+#ifdef BCMETH_COUNTERS
 	evcnt_attach_dynamic(&sc->sc_ev_intr, EVCNT_TYPE_INTR,
 	NULL, xname, "intr");
 	evcnt_attach_dynamic(&sc->sc_ev_soft_intr, EVCNT_TYPE_INTR,
@@ -398,6 +409,7 @@ bcmeth_ccb_attach(device_t parent, devic
 	NULL, xname, "rx badmagic lo");
 	evcnt_attach_dynamic(&sc->sc_ev_rx_badmagic_hi, EVCNT_TYPE_MISC,
 	NULL, xname, "rx badmagic hi");
+#endif
 }
 
 static int
@@ -1056,9 +1068,9 @@ bcmeth_rxq_consume(
 		if (rxsts == BCMETH_RCVMAGIC) {	
 			ifp->if_ierrors++;
 			if ((m->m_ext.ext_paddr >> 28) == 8) {
-sc->sc_ev_rx_badmagic_lo.ev_count++;
+BCMETH_EVCNT_INCR(sc->sc_ev_rx_badmagic_lo);
 			} else {
-sc->sc_ev_rx_badmagic_hi.ev_count++;
+BCMETH_EVCNT_INCR( sc->sc_ev_rx_badmagic_hi);
 			}
 			IF_ENQUEUE(&sc->sc_rx_bufcache, m);
 		} else
@@ -1709,7 +1721,7 @@ bcmeth_intr(void *arg)
 	mutex_enter(sc->sc_hwlock);
 
 	uint32_t intmask = sc->sc_intmask;
-	sc->sc_ev_intr.ev_count++;
+	BCMETH_EVCNT_INCR(sc->sc_ev_intr);
 
 	for (;;) {
 		uint32_t intstatus = bcmeth_read_4(sc, GMAC_INTSTATUS);
@@ -1821,7 +1833,7 @@ bcmeth_soft_txintr(struct bcmeth_softc *
 	 */
 	if (!bcmeth_txq_consume(sc, &sc->sc_txq)
 	|| !bcmeth_txq_enqueue(sc, &sc->sc_txq)) {
-		sc->sc_ev_tx_stall.ev_count++;
+		BCMETH_EVCNT_INCR(sc->sc_ev_tx_stall);
 		sc->sc_if.if_flags |= IFF_OACTIVE;
 	} else {
 		sc->sc_if.if_flags &= ~IFF_OACTIVE;
@@ -1847,7 +1859,7 @@ bcmeth_soft_intr(void *arg)
 
 	u_int soft_flags = atomic_swap_uint(&sc->sc_soft_flags, 0);
 
-	sc->sc_ev_soft_intr.ev_count++;
+	BCMETH_EVCNT_INCR(sc->sc_ev_soft_intr);
 
 	if ((soft_flags & SOFT_TXINTR)
 	|| bcmeth_txq_active_p(sc, &sc->sc_txq)) {
@@ -1857,7 +1869,7 @@ bcmeth_soft_intr(void *arg)
 		 */
 		if (!bcmeth_txq_consume(sc, &sc->sc_txq)
 		|| !bcmeth_txq_enqueue(sc, &sc->sc_txq)) {
-			sc->sc_ev_tx_stall.ev_count++;
+			BCMETH_EVCNT_INCR(sc->sc_ev_tx_stall);
 			ifp->if_flags |= IFF_OACTIVE;
 		} else {
 			ifp->if_flags &= ~IFF_OACTIVE;
@@ -1893,7 +1905,7 @@ bcmeth_worker(struct work *wk, void *arg
 
 	mutex_enter(sc->sc_lock);
 
-	sc->sc_ev_work.ev_count++;
+	BCMETH_EVCNT_INCR(sc->sc_ev_work);
 
 	uint32_t work_flags = atomic_swap_32(&sc->sc_work_flags, 0);
 	if (work_flags & WORK_REINIT) {



CVS commit: [matt-nb6-plus] src/sys/arch/arm/broadcom

2012-12-07 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Fri Dec  7 22:47:13 UTC 2012

Modified Files:
src/sys/arch/arm/broadcom [matt-nb6-plus]: bcm53xx_eth.c files.bcm53xx

Log Message:
Sync with HEAD.


To generate a diff of this commit:
cvs rdiff -u -r1.17.2.2 -r1.17.2.3 src/sys/arch/arm/broadcom/bcm53xx_eth.c
cvs rdiff -u -r1.2.4.2 -r1.2.4.3 src/sys/arch/arm/broadcom/files.bcm53xx

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/broadcom/bcm53xx_eth.c
diff -u src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.17.2.2 src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.17.2.3
--- src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.17.2.2	Wed Nov 28 22:40:22 2012
+++ src/sys/arch/arm/broadcom/bcm53xx_eth.c	Fri Dec  7 22:47:13 2012
@@ -31,10 +31,11 @@
 #define GMAC_PRIVATE
 
 #include "locators.h"
+#include "opt_broadcom.h"
 
 #include 
 
-__KERNEL_RCSID(1, "$NetBSD: bcm53xx_eth.c,v 1.17.2.2 2012/11/28 22:40:22 matt Exp $");
+__KERNEL_RCSID(1, "$NetBSD: bcm53xx_eth.c,v 1.17.2.3 2012/12/07 22:47:13 matt Exp $");
 
 #include 
 #include 
@@ -63,6 +64,13 @@ __KERNEL_RCSID(1, "$NetBSD: bcm53xx_eth.
 
 //#define BCMETH_MPSAFE
 
+#ifdef BCMETH_COUNTERS
+#define	BCMETH_EVCNT_ADD(a,b)	((void)((a).ev_count += (b)))
+#else
+#define	BCMETH_EVCNT_ADD(a,b)	do { } while (/*CONSTCOND*/0)
+#endif
+#define	BCMETH_EVCNT_INCR(a)	BCMETH_EVCNT_ADD((a), 1)
+
 #define	BCMETH_RCVOFFSET	10
 #define	BCMETH_MAXTXMBUFS	128
 #define	BCMETH_NTXSEGS		30
@@ -148,12 +156,14 @@ struct bcmeth_softc {
 #define	SOFT_RXINTR		0x01
 #define	SOFT_TXINTR		0x02
 
+#ifdef BCMETH_COUNTERS
 	struct evcnt sc_ev_intr;
 	struct evcnt sc_ev_soft_intr;
 	struct evcnt sc_ev_work;
 	struct evcnt sc_ev_tx_stall;
 	struct evcnt sc_ev_rx_badmagic_lo;
 	struct evcnt sc_ev_rx_badmagic_hi;
+#endif
 
 	struct ifqueue sc_rx_bufcache;
 	struct bcmeth_mapcache *sc_rx_mapcache; 
@@ -386,6 +396,7 @@ bcmeth_ccb_attach(device_t parent, devic
 	if_attach(ifp);
 	ether_ifattach(ifp, sc->sc_enaddr);
 
+#ifdef BCMETH_COUNTERS
 	evcnt_attach_dynamic(&sc->sc_ev_intr, EVCNT_TYPE_INTR,
 	NULL, xname, "intr");
 	evcnt_attach_dynamic(&sc->sc_ev_soft_intr, EVCNT_TYPE_INTR,
@@ -398,6 +409,7 @@ bcmeth_ccb_attach(device_t parent, devic
 	NULL, xname, "rx badmagic lo");
 	evcnt_attach_dynamic(&sc->sc_ev_rx_badmagic_hi, EVCNT_TYPE_MISC,
 	NULL, xname, "rx badmagic hi");
+#endif
 }
 
 static int
@@ -1056,9 +1068,9 @@ bcmeth_rxq_consume(
 		if (rxsts == BCMETH_RCVMAGIC) {	
 			ifp->if_ierrors++;
 			if ((m->m_ext.ext_paddr >> 28) == 8) {
-sc->sc_ev_rx_badmagic_lo.ev_count++;
+BCMETH_EVCNT_INCR(sc->sc_ev_rx_badmagic_lo);
 			} else {
-sc->sc_ev_rx_badmagic_hi.ev_count++;
+BCMETH_EVCNT_INCR( sc->sc_ev_rx_badmagic_hi);
 			}
 			IF_ENQUEUE(&sc->sc_rx_bufcache, m);
 		} else
@@ -1709,7 +1721,7 @@ bcmeth_intr(void *arg)
 	mutex_enter(sc->sc_hwlock);
 
 	uint32_t intmask = sc->sc_intmask;
-	sc->sc_ev_intr.ev_count++;
+	BCMETH_EVCNT_INCR(sc->sc_ev_intr);
 
 	for (;;) {
 		uint32_t intstatus = bcmeth_read_4(sc, GMAC_INTSTATUS);
@@ -1821,7 +1833,7 @@ bcmeth_soft_txintr(struct bcmeth_softc *
 	 */
 	if (!bcmeth_txq_consume(sc, &sc->sc_txq)
 	|| !bcmeth_txq_enqueue(sc, &sc->sc_txq)) {
-		sc->sc_ev_tx_stall.ev_count++;
+		BCMETH_EVCNT_INCR(sc->sc_ev_tx_stall);
 		sc->sc_if.if_flags |= IFF_OACTIVE;
 	} else {
 		sc->sc_if.if_flags &= ~IFF_OACTIVE;
@@ -1847,7 +1859,7 @@ bcmeth_soft_intr(void *arg)
 
 	u_int soft_flags = atomic_swap_uint(&sc->sc_soft_flags, 0);
 
-	sc->sc_ev_soft_intr.ev_count++;
+	BCMETH_EVCNT_INCR(sc->sc_ev_soft_intr);
 
 	if ((soft_flags & SOFT_TXINTR)
 	|| bcmeth_txq_active_p(sc, &sc->sc_txq)) {
@@ -1857,7 +1869,7 @@ bcmeth_soft_intr(void *arg)
 		 */
 		if (!bcmeth_txq_consume(sc, &sc->sc_txq)
 		|| !bcmeth_txq_enqueue(sc, &sc->sc_txq)) {
-			sc->sc_ev_tx_stall.ev_count++;
+			BCMETH_EVCNT_INCR(sc->sc_ev_tx_stall);
 			ifp->if_flags |= IFF_OACTIVE;
 		} else {
 			ifp->if_flags &= ~IFF_OACTIVE;
@@ -1893,7 +1905,7 @@ bcmeth_worker(struct work *wk, void *arg
 
 	mutex_enter(sc->sc_lock);
 
-	sc->sc_ev_work.ev_count++;
+	BCMETH_EVCNT_INCR(sc->sc_ev_work);
 
 	uint32_t work_flags = atomic_swap_32(&sc->sc_work_flags, 0);
 	if (work_flags & WORK_REINIT) {

Index: src/sys/arch/arm/broadcom/files.bcm53xx
diff -u src/sys/arch/arm/broadcom/files.bcm53xx:1.2.4.2 src/sys/arch/arm/broadcom/files.bcm53xx:1.2.4.3
--- src/sys/arch/arm/broadcom/files.bcm53xx:1.2.4.2	Wed Nov 28 22:40:24 2012
+++ src/sys/arch/arm/broadcom/files.bcm53xx	Fri Dec  7 22:47:13 2012
@@ -1,4 +1,4 @@
-#	$NetBSD: files.bcm53xx,v 1.2.4.2 2012/11/28 22:40:24 matt Exp $
+#	$NetBSD: files.bcm53xx,v 1.2.4.3 2012/12/07 22:47:13 matt Exp $
 #
 # Configuration info for Broadcom BCM5301X ARM Peripherals
 #
@@ -20,6 +20,7 @@ defparam opt_broadcom.hCONSPEED
 defparam opt_broadcom.hCONMODE
 defparam opt_broadcom.hMEMSIZE
 defflag opt_broadcom.hBCM53XX_CONSOLE_EARLY
+defflag opt_broadcom.hBCMET

CVS commit: src/external/gpl3/gcc/dist/libstdc++-v3/libsupc++

2012-12-07 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Sat Dec  8 01:38:27 UTC 2012

Modified Files:
src/external/gpl3/gcc/dist/libstdc++-v3/libsupc++: eh_arm.cc
unwind-cxx.h

Log Message:
fix inconsistencies in EABI decls.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1 -r1.2 \
src/external/gpl3/gcc/dist/libstdc++-v3/libsupc++/eh_arm.cc \
src/external/gpl3/gcc/dist/libstdc++-v3/libsupc++/unwind-cxx.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/gpl3/gcc/dist/libstdc++-v3/libsupc++/eh_arm.cc
diff -u src/external/gpl3/gcc/dist/libstdc++-v3/libsupc++/eh_arm.cc:1.1.1.1 src/external/gpl3/gcc/dist/libstdc++-v3/libsupc++/eh_arm.cc:1.2
--- src/external/gpl3/gcc/dist/libstdc++-v3/libsupc++/eh_arm.cc:1.1.1.1	Mon Jun 20 21:24:47 2011
+++ src/external/gpl3/gcc/dist/libstdc++-v3/libsupc++/eh_arm.cc	Fri Dec  7 20:38:26 2012
@@ -92,7 +92,12 @@ __cxa_type_match(_Unwind_Exception* ue_h
 }
 
 // ABI defined routine called at the start of a cleanup handler.
-extern "C" bool
+extern "C"
+#ifdef __ARM_EABI_UNWINDER__
+void
+#else
+bool
+#endif
 __cxa_begin_cleanup(_Unwind_Exception* ue_header)
 {
   __cxa_eh_globals *globals = __cxa_get_globals();
@@ -121,7 +126,9 @@ __cxa_begin_cleanup(_Unwind_Exception* u
   globals->propagatingExceptions = header;
 }
 
+#ifndef __ARM_EABI_UNWINDER__
   return true;
+#endif
 }
 
 // Do the work for __cxa_end_cleanup.  Returns the currently propagating
Index: src/external/gpl3/gcc/dist/libstdc++-v3/libsupc++/unwind-cxx.h
diff -u src/external/gpl3/gcc/dist/libstdc++-v3/libsupc++/unwind-cxx.h:1.1.1.1 src/external/gpl3/gcc/dist/libstdc++-v3/libsupc++/unwind-cxx.h:1.2
--- src/external/gpl3/gcc/dist/libstdc++-v3/libsupc++/unwind-cxx.h:1.1.1.1	Mon Jun 20 21:24:47 2011
+++ src/external/gpl3/gcc/dist/libstdc++-v3/libsupc++/unwind-cxx.h	Fri Dec  7 20:38:26 2012
@@ -196,8 +196,8 @@ typedef enum {
   ctm_succeeded = 1,
   ctm_succeeded_with_ptr_to_base = 2
 } __cxa_type_match_result;
-extern "C" bool __cxa_type_match(_Unwind_Exception*, const std::type_info*,
- bool, void**);
+extern "C" __cxa_type_match_result __cxa_type_match(_Unwind_Exception*,
+const std::type_info*, bool, void**);
 extern "C" void __cxa_begin_cleanup (_Unwind_Exception*);
 extern "C" void __cxa_end_cleanup (void);
 #endif



CVS commit: src/external/gpl3/gcc/lib/libgcc/libgcov

2012-12-07 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Sat Dec  8 02:35:06 UTC 2012

Modified Files:
src/external/gpl3/gcc/lib/libgcc/libgcov: Makefile

Log Message:
XXX: Use earm for earmeb


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/external/gpl3/gcc/lib/libgcc/libgcov/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/gpl3/gcc/lib/libgcc/libgcov/Makefile
diff -u src/external/gpl3/gcc/lib/libgcc/libgcov/Makefile:1.2 src/external/gpl3/gcc/lib/libgcc/libgcov/Makefile:1.3
--- src/external/gpl3/gcc/lib/libgcc/libgcov/Makefile:1.2	Mon Aug 15 05:19:21 2011
+++ src/external/gpl3/gcc/lib/libgcc/libgcov/Makefile	Fri Dec  7 21:35:06 2012
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.2 2011/08/15 09:19:21 mrg Exp $
+#	$NetBSD: Makefile,v 1.3 2012/12/08 02:35:06 christos Exp $
 
 REQUIRETOOLS=	yes
 NOPIC=		# defined
@@ -11,7 +11,12 @@ LIB=		gcov
 
 .if ${MKGCC} != "no"
 
+# XXX: Fix me
+.if ${MACHINE_ARCH} == "earmeb"
+.include "${.CURDIR}/arch/earm/defs.mk"
+.else
 .include "${.CURDIR}/arch/${MACHINE_ARCH}/defs.mk"
+.endif
 
 LIBGCOVSRCS=	${G_LIBGCOV:=.c}
 



CVS commit: src/sys/arch/arm/include

2012-12-07 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Sat Dec  8 02:41:54 UTC 2012

Modified Files:
src/sys/arch/arm/include: mcontext.h

Log Message:
need stdint.h for uint64_t and it is messy to do it open-coded.


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/sys/arch/arm/include/mcontext.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/include/mcontext.h
diff -u src/sys/arch/arm/include/mcontext.h:1.13 src/sys/arch/arm/include/mcontext.h:1.14
--- src/sys/arch/arm/include/mcontext.h:1.13	Fri Dec  7 13:49:13 2012
+++ src/sys/arch/arm/include/mcontext.h	Fri Dec  7 21:41:54 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: mcontext.h,v 1.13 2012/12/07 18:49:13 matt Exp $	*/
+/*	$NetBSD: mcontext.h,v 1.14 2012/12/08 02:41:54 christos Exp $	*/
 
 /*-
  * Copyright (c) 2001, 2002 The NetBSD Foundation, Inc.
@@ -32,6 +32,7 @@
 #ifndef _ARM_MCONTEXT_H_
 #define _ARM_MCONTEXT_H_
 
+#include 
 /*
  * General register state
  */



CVS commit: src/sys/arch/arm/arm

2012-12-07 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Sat Dec  8 06:46:50 UTC 2012

Modified Files:
src/sys/arch/arm/arm: process_machdep.c

Log Message:
Make sure the enable bit is not set when restoring the VFP context since
that has special meaning to the VFP PCU code.


To generate a diff of this commit:
cvs rdiff -u -r1.24 -r1.25 src/sys/arch/arm/arm/process_machdep.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/arm/process_machdep.c
diff -u src/sys/arch/arm/arm/process_machdep.c:1.24 src/sys/arch/arm/arm/process_machdep.c:1.25
--- src/sys/arch/arm/arm/process_machdep.c:1.24	Wed Dec  5 19:05:46 2012
+++ src/sys/arch/arm/arm/process_machdep.c	Sat Dec  8 06:46:49 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: process_machdep.c,v 1.24 2012/12/05 19:05:46 matt Exp $	*/
+/*	$NetBSD: process_machdep.c,v 1.25 2012/12/08 06:46:49 matt Exp $	*/
 
 /*
  * Copyright (c) 1993 The Regents of the University of California.
@@ -133,7 +133,7 @@
 
 #include 
 
-__KERNEL_RCSID(0, "$NetBSD: process_machdep.c,v 1.24 2012/12/05 19:05:46 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: process_machdep.c,v 1.25 2012/12/08 06:46:49 matt Exp $");
 
 #include 
 #include 
@@ -144,6 +144,7 @@ __KERNEL_RCSID(0, "$NetBSD: process_mach
 #include 
 
 #include 
+#include 
 
 int
 process_read_regs(struct lwp *l, struct reg *regs)
@@ -175,13 +176,15 @@ process_read_fpregs(struct lwp *l, struc
 {
 #ifdef FPU_VFP
 	if (curcpu()->ci_vfp_id == 0) {
-		return EINVAL;
+		memset(regs, 0, sizeof(regs));
+		return 0;
 	}
 	const struct pcb * const pcb = lwp_getpcb(l);
 	vfp_savecontext();
 	regs->fpr_vfp = pcb->pcb_vfp;
+	regs->fpr_vfp.vfp_fpexc &= ~VFP_FPEXC_EN;
 #endif
-	return(0);
+	return 0;
 }
 
 int
@@ -227,6 +230,7 @@ process_write_fpregs(struct lwp *l, cons
 	vfp_discardcontext();
 	l->l_md.md_flags |= MDLWP_VFPUSED;
 	pcb->pcb_vfp = regs->fpr_vfp;
+	pcb->pcb_vfp.vfp_fpexc &= ~VFP_FPEXC_EN;
 #endif
 	return(0);
 }



CVS commit: src/sys/arch/arm/arm

2012-12-07 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Sat Dec  8 06:47:31 UTC 2012

Modified Files:
src/sys/arch/arm/arm: sig_machdep.c

Log Message:
Make sure that if _UC_FPU is set, that _UC_ARM_VFP is also set.


To generate a diff of this commit:
cvs rdiff -u -r1.44 -r1.45 src/sys/arch/arm/arm/sig_machdep.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/arm/sig_machdep.c
diff -u src/sys/arch/arm/arm/sig_machdep.c:1.44 src/sys/arch/arm/arm/sig_machdep.c:1.45
--- src/sys/arch/arm/arm/sig_machdep.c:1.44	Wed Dec  5 19:05:46 2012
+++ src/sys/arch/arm/arm/sig_machdep.c	Sat Dec  8 06:47:31 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: sig_machdep.c,v 1.44 2012/12/05 19:05:46 matt Exp $	*/
+/*	$NetBSD: sig_machdep.c,v 1.45 2012/12/08 06:47:31 matt Exp $	*/
 
 /*
  * Copyright (c) 1994-1998 Mark Brinicombe.
@@ -44,7 +44,7 @@
 
 #include 
 
-__KERNEL_RCSID(0, "$NetBSD: sig_machdep.c,v 1.44 2012/12/05 19:05:46 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sig_machdep.c,v 1.45 2012/12/08 06:47:31 matt Exp $");
 
 #include 		/* XXX only needed by syscallargs.h */
 #include 
@@ -219,7 +219,8 @@ cpu_setmcontext(struct lwp *l, const mco
 	int error;
 
 #ifdef FPU_VFP
-	if ((flags & _UC_FPU) && curcpu()->ci_vfp_id == 0)
+	if ((flags & _UC_FPU)
+	&& (curcpu()->ci_vfp_id || (flags & _UC_ARM_VFP) == 0))
 		return EINVAL;
 #endif
 



CVS commit: src/sys/arch/arm/vfp

2012-12-07 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Sat Dec  8 06:49:00 UTC 2012

Modified Files:
src/sys/arch/arm/vfp: vfp_init.c

Log Message:
On Cortex, make sure to load/save the upper 16 64-FP registers.
When creating a mcontext_t, make sure _UC_ARM_VFP is set.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/vfp/vfp_init.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/vfp/vfp_init.c
diff -u src/sys/arch/arm/vfp/vfp_init.c:1.9 src/sys/arch/arm/vfp/vfp_init.c:1.10
--- src/sys/arch/arm/vfp/vfp_init.c:1.9	Wed Dec  5 19:30:10 2012
+++ src/sys/arch/arm/vfp/vfp_init.c	Sat Dec  8 06:49:00 2012
@@ -1,4 +1,4 @@
-/*  $NetBSD: vfp_init.c,v 1.9 2012/12/05 19:30:10 matt Exp $ */
+/*  $NetBSD: vfp_init.c,v 1.10 2012/12/08 06:49:00 matt Exp $ */
 
 /*
  * Copyright (c) 2008 ARM Ltd
@@ -90,10 +90,6 @@ read_fpinst2(void)
 	return rv;
 }
 
-/* FSTMD , {d0-d15} */
-#define save_vfpregs(X)	__asm __volatile("stc p11, c0, [%0], {32}" : \
-			: "r" (X) : "memory")
-
 /* FMXR , fpscr */
 #define write_fpscr(X)	__asm __volatile("mcr p10, 7, %0, c1, c0, 0" : \
 			: "r" (X))
@@ -107,8 +103,35 @@ read_fpinst2(void)
 #define write_fpinst2(X) __asm __volatile("mcr p10, 7, %0, c10, c0, 0" : \
 			: "r" (X))
 /* FLDMD , {d0-d15} */
-#define load_vfpregs(X)	__asm __volatile("ldc p11, c0, [%0], {32}" : \
-			: "r" (X) : "memory");
+static void
+load_vfpregs_lo(uint64_t *p)
+{
+	/* vldmia rN, {d0-d15} */
+	__asm __volatile("ldc\tp11, c0, [%0], {32}" :: "r" (p) : "memory");
+}
+
+/* FSTMD , {d0-d15} */
+static void
+save_vfpregs_lo(uint64_t *p)
+{
+	__asm __volatile("stc\tp11, c0, [%0], {32}" :: "r" (p) : "memory");
+}
+
+#ifdef CPU_CORTEX
+/* FLDMD , {d16-d31} */
+static void
+load_vfpregs_hi(uint64_t *p)
+{
+	__asm __volatile("ldcl\tp11, c0, [%0], {32}" :: "r" (&p[16]) : "memory");
+}
+
+/* FLDMD , {d16-d31} */
+static void
+save_vfpregs_hi(uint64_t *p)
+{
+	__asm __volatile("stcl\tp11, c0, [%0], {32}" :: "r" (&p[16]) : "memory");
+}
+#endif
 
 #ifdef FPU_VFP
 
@@ -231,12 +254,15 @@ vfp_attach(void)
 		uint32_t cpacr = armreg_cpacr_read();
 		cpacr |= __SHIFTIN(CPACR_ALL, cpacr_vfp);
 		cpacr |= __SHIFTIN(CPACR_ALL, cpacr_vfp2);
+#if 0
 		if (CPU_ID_CORTEX_P(curcpu()->ci_arm_cpuid)) {
 			/*
-			 * Disable access to the upper 16 FP registers.
+			 * Disable access to the upper 16 FP registers and NEON.
 			 */
 			cpacr |= CPACR_V7_D32DIS;
+			cpacr |= CPACR_V7_ASEDIS;
 		}
+#endif
 		armreg_cpacr_write(cpacr);
 
 		/*
@@ -363,7 +389,21 @@ vfp_state_load(lwp_t *l, bool used)
 	KDASSERT((fpexc & VFP_FPEXC_EX) == 0);
 	write_fpexc(fpexc | VFP_FPEXC_EN);
 
-	load_vfpregs(fregs->vfp_regs);
+	load_vfpregs_lo(fregs->vfp_regs);
+#ifdef CPU_CORTEX
+#ifdef CPU_ARM11
+	switch (curcpu()->ci_vfp_id) {
+	case FPU_VFP_CORTEXA5:
+	case FPU_VFP_CORTEXA7:
+	case FPU_VFP_CORTEXA8:
+	case FPU_VFP_CORTEXA9:
+#endif
+		load_vfpregs_hi(fregs->vfp_regs);
+#ifdef CPU_ARM11
+		break;
+	}
+#endif
+#endif
 	write_fpscr(fregs->vfp_fpscr);
 
 	if (fregs->vfp_fpexc & VFP_FPEXC_EX) {
@@ -431,7 +471,21 @@ vfp_state_save(lwp_t *l)
 		}
 	}
 	fregs->vfp_fpscr = read_fpscr();
-	save_vfpregs(fregs->vfp_regs);
+	save_vfpregs_lo(fregs->vfp_regs);
+#ifdef CPU_CORTEX
+#ifdef CPU_ARM11
+	switch (curcpu()->ci_vfp_id) {
+	case FPU_VFP_CORTEXA5:
+	case FPU_VFP_CORTEXA7:
+	case FPU_VFP_CORTEXA8:
+	case FPU_VFP_CORTEXA9:
+#endif
+		save_vfpregs_hi(fregs->vfp_regs);
+#ifdef CPU_ARM11
+		break;
+	}
+#endif
+#endif
 
 	/* Disable the VFP.  */
 	write_fpexc(fpexc);
@@ -480,7 +534,7 @@ vfp_getcontext(struct lwp *l, mcontext_t
 		mcp->__fpu.__vfpregs.__vfp_fpscr = pcb->pcb_vfp.vfp_fpscr;
 		memcpy(mcp->__fpu.__vfpregs.__vfp_fstmx, pcb->pcb_vfp.vfp_regs,
 		sizeof(mcp->__fpu.__vfpregs.__vfp_fstmx));
-		*flagsp |= _UC_FPU;
+		*flagsp |= _UC_FPU|_UC_ARM_VFP;
 	}
 }
 



CVS commit: src/sys/arch/arm/include

2012-12-07 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Sat Dec  8 06:58:36 UTC 2012

Modified Files:
src/sys/arch/arm/include: mcontext.h

Log Message:
Define the correct __UCONTEXT_SIZE for EABI.


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/sys/arch/arm/include/mcontext.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/include/mcontext.h
diff -u src/sys/arch/arm/include/mcontext.h:1.14 src/sys/arch/arm/include/mcontext.h:1.15
--- src/sys/arch/arm/include/mcontext.h:1.14	Sat Dec  8 02:41:54 2012
+++ src/sys/arch/arm/include/mcontext.h	Sat Dec  8 06:58:36 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: mcontext.h,v 1.14 2012/12/08 02:41:54 christos Exp $	*/
+/*	$NetBSD: mcontext.h,v 1.15 2012/12/08 06:58:36 matt Exp $	*/
 
 /*-
  * Copyright (c) 2001, 2002 The NetBSD Foundation, Inc.
@@ -114,7 +114,11 @@ typedef struct {
 
 #define	_UC_MACHINE_SET_PC(uc, pc)	_UC_MACHINE_PC(uc) = (pc)
 
+#ifdef __ARM_EABI__
+#define	__UCONTEXT_SIZE	(256 + 144)
+#else
 #define	__UCONTEXT_SIZE	256
+#endif
 
 static __inline void *
 __lwp_getprivate_fast(void)



CVS commit: src/sys/arch/evbarm/conf

2012-12-07 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Sat Dec  8 07:05:23 UTC 2012

Modified Files:
src/sys/arch/evbarm/conf: OVERO mk.bcm53xx mk.beagle std.netwalker

Log Message:
For cortex kernels, also specify -mfpu=neon


To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.20 src/sys/arch/evbarm/conf/OVERO
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/evbarm/conf/mk.bcm53xx
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/evbarm/conf/mk.beagle
cvs rdiff -u -r1.3 -r1.4 src/sys/arch/evbarm/conf/std.netwalker

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/evbarm/conf/OVERO
diff -u src/sys/arch/evbarm/conf/OVERO:1.19 src/sys/arch/evbarm/conf/OVERO:1.20
--- src/sys/arch/evbarm/conf/OVERO:1.19	Mon Oct 29 13:36:59 2012
+++ src/sys/arch/evbarm/conf/OVERO	Sat Dec  8 07:05:23 2012
@@ -1,5 +1,5 @@
 #
-#	$NetBSD: OVERO,v 1.19 2012/10/29 13:36:59 kiyohara Exp $
+#	$NetBSD: OVERO,v 1.20 2012/12/08 07:05:23 matt Exp $
 #
 #	OVERO -- Gumstix. Inc. Overo platforms kernel
 #
@@ -17,7 +17,7 @@ maxusers	32
 options 	CPU_CORTEXA8
 options 	OMAP_3530
 options 	PMAPCOUNTERS
-makeoptions	CPUFLAGS="-mcpu=cortex-a8"
+makeoptions	CPUFLAGS="-mcpu=cortex-a8 -mfpu=neon"
 
 # Architecture options
 

Index: src/sys/arch/evbarm/conf/mk.bcm53xx
diff -u src/sys/arch/evbarm/conf/mk.bcm53xx:1.1 src/sys/arch/evbarm/conf/mk.bcm53xx:1.2
--- src/sys/arch/evbarm/conf/mk.bcm53xx:1.1	Sat Sep  1 00:15:11 2012
+++ src/sys/arch/evbarm/conf/mk.bcm53xx	Sat Dec  8 07:05:23 2012
@@ -1,5 +1,6 @@
-#	$NetBSD: mk.bcm53xx,v 1.1 2012/09/01 00:15:11 matt Exp $
-CPPFLAGS+= -mcpu=cortex-a9
+#	$NetBSD: mk.bcm53xx,v 1.2 2012/12/08 07:05:23 matt Exp $
+CPPFLAGS+= -mcpu=cortex-a9 -mfpu=neon
+#CPPFLAGS+= -mabi=aapcs-linux -Wa,-meabi=4
 
 SYSTEM_FIRST_OBJ=	bcm53xx_start.o
 SYSTEM_FIRST_SFILE=	${THISARM}/bcm53xx/bcm53xx_start.S

Index: src/sys/arch/evbarm/conf/mk.beagle
diff -u src/sys/arch/evbarm/conf/mk.beagle:1.8 src/sys/arch/evbarm/conf/mk.beagle:1.9
--- src/sys/arch/evbarm/conf/mk.beagle:1.8	Wed Aug 22 22:34:30 2012
+++ src/sys/arch/evbarm/conf/mk.beagle	Sat Dec  8 07:05:23 2012
@@ -1,8 +1,8 @@
-#	$NetBSD: mk.beagle,v 1.8 2012/08/22 22:34:30 matt Exp $
+#	$NetBSD: mk.beagle,v 1.9 2012/12/08 07:05:23 matt Exp $
 .if ${KERNEL_BUILD:T:MPANDA*} != ""
-CPPFLAGS+=		-mcpu=cortex-a9
+CPPFLAGS+=		-mcpu=cortex-a9 -mfpu=neon
 .else
-CPPFLAGS+=		-mcpu=cortex-a8
+CPPFLAGS+=		-mcpu=cortex-a8 -mfpu=neon
 .endif
 
 SYSTEM_FIRST_OBJ=	beagle_start.o

Index: src/sys/arch/evbarm/conf/std.netwalker
diff -u src/sys/arch/evbarm/conf/std.netwalker:1.3 src/sys/arch/evbarm/conf/std.netwalker:1.4
--- src/sys/arch/evbarm/conf/std.netwalker:1.3	Thu Apr 26 06:51:05 2012
+++ src/sys/arch/evbarm/conf/std.netwalker	Sat Dec  8 07:05:23 2012
@@ -1,4 +1,4 @@
-#	$NetBSD: std.netwalker,v 1.3 2012/04/26 06:51:05 bsh Exp $
+#	$NetBSD: std.netwalker,v 1.4 2012/12/08 07:05:23 matt Exp $
 #
 # standard NetBSD/evbarm options for Sharp NetWalker
 
@@ -14,7 +14,7 @@ options 	NETWALKER
 options 	EXEC_ELF32
 options 	EXEC_SCRIPT
 options 	KERNEL_BASE_EXT=0xc000
-makeoptions	CPUFLAGS="-mcpu=cortex-a8"
+makeoptions	CPUFLAGS="-mcpu=cortex-a8 -mfpu=neon"
 
 # To support easy transit to ../arch/arm/arm32
 options 	ARM32



CVS commit: src/sys/kern

2012-12-07 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sat Dec  8 07:24:42 UTC 2012

Modified Files:
src/sys/kern: vfs_wapbl.c

Log Message:
Try to coalesce writes to the journal in MAXPHYS sized and aligned blocks.
Speeds up wapbl_flush() on raid5 by a factor of 3-4.

Discussed on tech-kern.

Needs pullup to NetBSD-6.


To generate a diff of this commit:
cvs rdiff -u -r1.53 -r1.54 src/sys/kern/vfs_wapbl.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/kern/vfs_wapbl.c
diff -u src/sys/kern/vfs_wapbl.c:1.53 src/sys/kern/vfs_wapbl.c:1.54
--- src/sys/kern/vfs_wapbl.c:1.53	Sat Nov 17 10:10:17 2012
+++ src/sys/kern/vfs_wapbl.c	Sat Dec  8 07:24:42 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_wapbl.c,v 1.53 2012/11/17 10:10:17 hannken Exp $	*/
+/*	$NetBSD: vfs_wapbl.c,v 1.54 2012/12/08 07:24:42 hannken Exp $	*/
 
 /*-
  * Copyright (c) 2003, 2008, 2009 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
 #define WAPBL_INTERNAL
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: vfs_wapbl.c,v 1.53 2012/11/17 10:10:17 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_wapbl.c,v 1.54 2012/12/08 07:24:42 hannken Exp $");
 
 #include 
 #include 
@@ -184,6 +184,10 @@ struct wapbl {
 
 	SIMPLEQ_HEAD(, wapbl_entry) wl_entries; /* On disk transaction
 		   accounting */
+
+	u_char *wl_buffer;	/* l:   buffer for wapbl_buffered_write() */
+	daddr_t wl_buffer_dblk;	/* l:   buffer disk block address */
+	size_t wl_buffer_used;	/* l:   buffer current use */
 };
 
 #ifdef WAPBL_DEBUG_PRINT
@@ -489,6 +493,9 @@ wapbl_start(struct wapbl ** wlp, struct 
 	wl->wl_dealloclens = wapbl_alloc(sizeof(*wl->wl_dealloclens) *
 	wl->wl_dealloclim);
 
+	wl->wl_buffer = wapbl_alloc(MAXPHYS);
+	wl->wl_buffer_used = 0;
+
 	wapbl_inodetrk_init(wl, WAPBL_INODETRK_SIZE);
 
 	/* Initialize the commit header */
@@ -537,6 +544,7 @@ wapbl_start(struct wapbl ** wlp, struct 
 	sizeof(*wl->wl_deallocblks) * wl->wl_dealloclim);
 	wapbl_free(wl->wl_dealloclens,
 	sizeof(*wl->wl_dealloclens) * wl->wl_dealloclim);
+	wapbl_free(wl->wl_buffer, MAXPHYS);
 	wapbl_inodetrk_free(wl);
 	wapbl_free(wl, sizeof(*wl));
 
@@ -716,6 +724,7 @@ wapbl_stop(struct wapbl *wl, int force)
 	sizeof(*wl->wl_deallocblks) * wl->wl_dealloclim);
 	wapbl_free(wl->wl_dealloclens,
 	sizeof(*wl->wl_dealloclens) * wl->wl_dealloclim);
+	wapbl_free(wl->wl_buffer, MAXPHYS);
 	wapbl_inodetrk_free(wl);
 
 	cv_destroy(&wl->wl_reclaimable_cv);
@@ -791,6 +800,81 @@ wapbl_read(void *data, size_t len, struc
 }
 
 /*
+ * Flush buffered data if any.
+ */
+static int
+wapbl_buffered_flush(struct wapbl *wl)
+{
+	int error;
+
+	if (wl->wl_buffer_used == 0)
+		return 0;
+
+	error = wapbl_doio(wl->wl_buffer, wl->wl_buffer_used,
+	wl->wl_devvp, wl->wl_buffer_dblk, B_WRITE);
+	wl->wl_buffer_used = 0;
+
+	return error;
+}
+
+/*
+ * Write data to the log.
+ * Try to coalesce writes and emit MAXPHYS aligned blocks.
+ */
+static int
+wapbl_buffered_write(void *data, size_t len, struct wapbl *wl, daddr_t pbn)
+{
+	int error;
+	size_t resid;
+
+	/*
+	 * If not adjacent to buffered data flush first.  Disk block
+	 * address is always valid for non-empty buffer.
+	 */
+	if (wl->wl_buffer_used > 0 &&
+	pbn != wl->wl_buffer_dblk + btodb(wl->wl_buffer_used)) {
+		error = wapbl_buffered_flush(wl);
+		if (error)
+			return error;
+	}
+	/*
+	 * If this write goes to an empty buffer we have to
+	 * save the disk block address first.
+	 */
+	if (wl->wl_buffer_used == 0)
+		wl->wl_buffer_dblk = pbn;
+	/*
+	 * Remaining space so this buffer ends on a MAXPHYS boundary.
+	 *
+	 * Cannot become less or equal zero as the buffer would have been
+	 * flushed on the last call then.
+	 */
+	resid = MAXPHYS - dbtob(wl->wl_buffer_dblk % btodb(MAXPHYS)) -
+	wl->wl_buffer_used;
+	KASSERT(resid > 0);
+	KASSERT(dbtob(btodb(resid)) == resid);
+	if (len >= resid) {
+		memcpy(wl->wl_buffer + wl->wl_buffer_used, data, resid);
+		wl->wl_buffer_used += resid;
+		error = wapbl_doio(wl->wl_buffer, wl->wl_buffer_used,
+		wl->wl_devvp, wl->wl_buffer_dblk, B_WRITE);
+		data = (uint8_t *)data + resid;
+		len -= resid;
+		wl->wl_buffer_dblk = pbn + btodb(resid);
+		wl->wl_buffer_used = 0;
+		if (error)
+			return error;
+	}
+	KASSERT(len < MAXPHYS);
+	if (len > 0) {
+		memcpy(wl->wl_buffer + wl->wl_buffer_used, data, len);
+		wl->wl_buffer_used += len;
+	}
+
+	return 0;
+}
+
+/*
  * Off is byte offset returns new offset for next write
  * handles log wraparound
  */
@@ -813,7 +897,7 @@ wapbl_circ_write(struct wapbl *wl, void 
 #ifdef _KERNEL
 		pbn = btodb(pbn << wl->wl_log_dev_bshift);
 #endif
-		error = wapbl_write(data, slen, wl->wl_devvp, pbn);
+		error = wapbl_buffered_write(data, slen, wl, pbn);
 		if (error)
 			return error;
 		data = (uint8_t *)data + slen;
@@ -824,7 +908,7 @@ wapbl_circ_write(struct wapbl *wl, void 
 #ifdef _KERNEL
 	pbn = btodb(pbn << wl->wl_log_dev_bshift);
 #endif
-	error = wapbl_write(data, len, w