Re: CVS commit: src/sbin/disklabel

2013-05-15 Thread David Laight
On Wed, May 15, 2013 at 09:48:03AM +0900, tsugutomo.en...@jp.sony.com wrote:
 Christos Zoulas chris...@astron.com writes:
 
  Are you worried about efficiency here? Yes, you can fix it differently 
  by checking if LABEL_OFFSET fits.
 
 I don't worry about efficiency.
 
 I've just noticed build failure on i386, and wondering what was wrong.
 
 I thought it would be better if warned when LABEL_OFFSET exceeds
 bootarea_len, but strictly speaking it is different matter.

I remember there being 2 main constraints:
1) Everything has to fit in the first 8k of the disk.
2) The netbsd label must not cross a 512 byte boundary.

The second constraint stopped a lot of architectures have a the default
number of partitins increased.

One problem is that non-boot media and exchangeable media need to be
read by different sustems that have different LABEL_SECTOR and
LABEL_OFFSET. I don't remember there being a was of deterimining
how much space was allocated on a volume for the label.
The 'partition count' is used to mean 'the number of fields with
values in them', possibly the checksum could be used (assuming that
any zeros can be over written).

Then there is the issue of 'c' and 'd'.
The x86 kernel sets the in memory 'c' and 'd' based on the disk size (etc)
regardless of the disklabel contents.
The 'c' partition info is almost never used (I think it is/was used to
determine the label secton that can't be written to).
If you put a disk where 'c' is raw, and 'd' is u user partition into an x86
system the 'd' partition could be made available as wd0c!


David

-- 
David Laight: da...@l8s.co.uk


Re: CVS commit: src/sbin/disklabel

2013-05-15 Thread Christos Zoulas
On May 15,  9:48am, tsugutomo.en...@jp.sony.com (tsugutomo.en...@jp.sony.com) 
wrote:
-- Subject: Re: CVS commit: src/sbin/disklabel

| Christos Zoulas chris...@astron.com writes:
| 
|  Are you worried about efficiency here? Yes, you can fix it differently 
|  by checking if LABEL_OFFSET fits.
| 
| I don't worry about efficiency.
| 
| I've just noticed build failure on i386, and wondering what was wrong.
| 
| I thought it would be better if warned when LABEL_OFFSET exceeds
| bootarea_len, but strictly speaking it is different matter.

Yes, I got confused with the format string and gcc is not very picky
about incorrect types. I fixed it, but yes, we can fix it differently.

christos


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

2013-05-15 Thread Reinoud Zandijk
Module Name:src
Committed By:   reinoud
Date:   Wed May 15 12:16:41 UTC 2013

Modified Files:
src/sys/arch/evbarm/conf: RPI

Log Message:
Add missing filesystems in the filesystem list but comment them out.
Add missing KGDB options needed for KGDB working


To generate a diff of this commit:
cvs rdiff -u -r1.32 -r1.33 src/sys/arch/evbarm/conf/RPI

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/RPI
diff -u src/sys/arch/evbarm/conf/RPI:1.32 src/sys/arch/evbarm/conf/RPI:1.33
--- src/sys/arch/evbarm/conf/RPI:1.32	Tue May  7 20:11:54 2013
+++ src/sys/arch/evbarm/conf/RPI	Wed May 15 12:16:41 2013
@@ -1,5 +1,5 @@
 #
-#	$NetBSD: RPI,v 1.32 2013/05/07 20:11:54 skrll Exp $
+#	$NetBSD: RPI,v 1.33 2013/05/15 12:16:41 reinoud Exp $
 #
 #	RPi -- Raspberry Pi
 #
@@ -42,6 +42,9 @@ file-system	PROCFS		# /proc
 #file-system	UMAPFS		# NULLFS + uid and gid remapping
 #file-system	UNION		# union file system
 file-system	TMPFS		# memory file system
+#file-system	UDF		# experimental - OSTA UDF CD/DVD file-system
+#file-system	HFS		# experimental - Apple HFS+ (read-only)
+#file-system	NILFS		# experimental - NTT's NiLFS(2)
 file-system	PTYFS		# /dev/pts/N support
 
 # File system options
@@ -139,7 +142,7 @@ options 	DEBUG
 options 	DDB		# in-kernel debugger
 options		DDB_ONPANIC=1
 options 	DDB_HISTORY_SIZE=100	# Enable history editing in DDB
-#options 	KGDB
+#options 	KGDB,KGDB_PLCOMUNIT=0,KGDB_DEVRATE=115200,KGDB_CONMODE=0xB00
 makeoptions	DEBUG=-g	# compile full symbol table
 options 	SYMTAB_SPACE=80
 options 	PLCONSOLE



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

2013-05-15 Thread Reinoud Zandijk
Module Name:src
Committed By:   reinoud
Date:   Wed May 15 12:20:04 UTC 2013

Modified Files:
src/sys/arch/evbarm/conf: MARVELL_NAS

Log Message:
Add (arbitrary) USB serial port support.
XXX why aren't other classes of USB devices added?


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/sys/arch/evbarm/conf/MARVELL_NAS

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/MARVELL_NAS
diff -u src/sys/arch/evbarm/conf/MARVELL_NAS:1.14 src/sys/arch/evbarm/conf/MARVELL_NAS:1.15
--- src/sys/arch/evbarm/conf/MARVELL_NAS:1.14	Sat Apr 27 22:21:13 2013
+++ src/sys/arch/evbarm/conf/MARVELL_NAS	Wed May 15 12:20:04 2013
@@ -1,4 +1,4 @@
-#	$NetBSD: MARVELL_NAS,v 1.14 2013/04/27 22:21:13 christos Exp $
+#	$NetBSD: MARVELL_NAS,v 1.15 2013/05/15 12:20:04 reinoud Exp $
 #
 #  This configuration supports for generically Marvell NAS.
 
@@ -230,6 +230,10 @@ uhub*	at uhub? port ?
 umass*	at uhub? port ? configuration ? interface ?
 wd*	at umass?
 
+# USB Serial
+uplcom* at uhub? port ?			# I/O DATA USB-RSAQ2 serial adapter
+ucom*   at uplcom? portno ?
+
 
 # Pseudo-Devices
 



CVS commit: src/sys/rump/librump/rumpkern

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 12:49:33 UTC 2013

Modified Files:
src/sys/rump/librump/rumpkern: ltsleep.c

Log Message:
qlock can now be a regular kernel spin mutex instead of a rumpuser mutex.


To generate a diff of this commit:
cvs rdiff -u -r1.31 -r1.32 src/sys/rump/librump/rumpkern/ltsleep.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/rump/librump/rumpkern/ltsleep.c
diff -u src/sys/rump/librump/rumpkern/ltsleep.c:1.31 src/sys/rump/librump/rumpkern/ltsleep.c:1.32
--- src/sys/rump/librump/rumpkern/ltsleep.c:1.31	Sun Apr 28 13:37:52 2013
+++ src/sys/rump/librump/rumpkern/ltsleep.c	Wed May 15 12:49:33 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: ltsleep.c,v 1.31 2013/04/28 13:37:52 pooka Exp $	*/
+/*	$NetBSD: ltsleep.c,v 1.32 2013/05/15 12:49:33 pooka Exp $	*/
 
 /*
  * Copyright (c) 2009, 2010 Antti Kantee.  All Rights Reserved.
@@ -34,7 +34,7 @@
  */
 
 #include sys/cdefs.h
-__KERNEL_RCSID(0, $NetBSD: ltsleep.c,v 1.31 2013/04/28 13:37:52 pooka Exp $);
+__KERNEL_RCSID(0, $NetBSD: ltsleep.c,v 1.32 2013/05/15 12:49:33 pooka Exp $);
 
 #include sys/param.h
 #include sys/kernel.h
@@ -58,7 +58,7 @@ struct ltsleeper {
 #define kcv u.kern
 
 static LIST_HEAD(, ltsleeper) sleepers = LIST_HEAD_INITIALIZER(sleepers);
-static struct rumpuser_mtx *qlock;
+static kmutex_t *qlock;
 
 static int
 sleeper(wchan_t ident, int timo, kmutex_t *kinterlock)
@@ -76,9 +76,9 @@ sleeper(wchan_t ident, int timo, kmutex_
 		rumpuser_cv_init(lts.ucv);
 	}
 
-	rumpuser_mutex_enter_nowrap(qlock);
+	mutex_spin_enter(qlock);
 	LIST_INSERT_HEAD(sleepers, lts, entries);
-	rumpuser_mutex_exit(qlock);
+	mutex_exit(qlock);
 
 	if (timo) {
 		if (kinterlock) {
@@ -104,9 +104,9 @@ sleeper(wchan_t ident, int timo, kmutex_
 		rv = 0;
 	}
 
-	rumpuser_mutex_enter_nowrap(qlock);
+	mutex_spin_enter(qlock);
 	LIST_REMOVE(lts, entries);
-	rumpuser_mutex_exit(qlock);
+	mutex_exit(qlock);
 
 	if (kinterlock)
 		cv_destroy(lts.kcv);
@@ -152,7 +152,7 @@ wakeup(wchan_t ident)
 {
 	struct ltsleeper *ltsp;
 
-	rumpuser_mutex_enter_nowrap(qlock);
+	mutex_spin_enter(qlock);
 	LIST_FOREACH(ltsp, sleepers, entries) {
 		if (ltsp-id == ident) {
 			if (ltsp-iskwait) {
@@ -162,12 +162,12 @@ wakeup(wchan_t ident)
 			}
 		}
 	}
-	rumpuser_mutex_exit(qlock);
+	mutex_exit(qlock);
 }
 
 void
 rump_tsleep_init()
 {
 
-	rumpuser_mutex_init(qlock, RUMPUSER_MTX_SPIN);
+	mutex_init(qlock, MUTEX_SPIN, IPL_NONE);
 }



CVS commit: [khorben-n900] src/sys/dev/spi

2013-05-15 Thread Pierre Pronchery
Module Name:src
Committed By:   khorben
Date:   Wed May 15 13:52:19 UTC 2013

Modified Files:
src/sys/dev/spi [khorben-n900]: files.spi spi.c spivar.h

Log Message:
Let the bus speed of SPI devices be specified within the kernel
configuration.


To generate a diff of this commit:
cvs rdiff -u -r1.2.114.1 -r1.2.114.2 src/sys/dev/spi/files.spi
cvs rdiff -u -r1.8.6.1 -r1.8.6.2 src/sys/dev/spi/spi.c
cvs rdiff -u -r1.4.20.1 -r1.4.20.2 src/sys/dev/spi/spivar.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/dev/spi/files.spi
diff -u src/sys/dev/spi/files.spi:1.2.114.1 src/sys/dev/spi/files.spi:1.2.114.2
--- src/sys/dev/spi/files.spi:1.2.114.1	Fri May 10 01:25:07 2013
+++ src/sys/dev/spi/files.spi	Wed May 15 13:52:19 2013
@@ -1,8 +1,8 @@
-#	$NetBSD: files.spi,v 1.2.114.1 2013/05/10 01:25:07 khorben Exp $
+#	$NetBSD: files.spi,v 1.2.114.2 2013/05/15 13:52:19 khorben Exp $
 
 define	spibus { }
 
-device	spi { slave, [intr = -1] }
+device	spi { slave, [intr = -1], [speed = -1] }
 attach	spi at spibus
 file	dev/spi/spi.c			spi | spibus
 

Index: src/sys/dev/spi/spi.c
diff -u src/sys/dev/spi/spi.c:1.8.6.1 src/sys/dev/spi/spi.c:1.8.6.2
--- src/sys/dev/spi/spi.c:1.8.6.1	Fri May 10 01:25:07 2013
+++ src/sys/dev/spi/spi.c	Wed May 15 13:52:19 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: spi.c,v 1.8.6.1 2013/05/10 01:25:07 khorben Exp $ */
+/* $NetBSD: spi.c,v 1.8.6.2 2013/05/15 13:52:19 khorben Exp $ */
 
 /*-
  * Copyright (c) 2006 Urbana-Champaign Independent Media Center.
@@ -42,7 +42,7 @@
  */
 
 #include sys/cdefs.h
-__KERNEL_RCSID(0, $NetBSD: spi.c,v 1.8.6.1 2013/05/10 01:25:07 khorben Exp $);
+__KERNEL_RCSID(0, $NetBSD: spi.c,v 1.8.6.2 2013/05/15 13:52:19 khorben Exp $);
 
 #include locators.h
 
@@ -120,6 +120,7 @@ spi_search(device_t parent, cfdata_t cf,
 
 	sa.sa_handle = sc-sc_slaves[addr];
 	sa.sa_intr = cf-cf_loc[SPICF_INTR];
+	sa.sa_speed = cf-cf_loc[SPICF_SPEED];
 
 	if (config_match(parent, cf, sa)  0)
 		config_attach(parent, cf, sa, spi_print);
@@ -197,8 +198,7 @@ spi_configure(struct spi_handle *sh, int
 	if (sc-sc_speed)
 		speed = min(sc-sc_speed, speed);
 
-	rv = (*tag-sct_configure)(tag-sct_cookie, sh-sh_slave,
-	mode, speed);
+	rv = (*tag-sct_configure)(tag-sct_cookie, sh-sh_slave, mode, speed);
 
 	if (rv == 0) {
 		sc-sc_mode = mode;
@@ -211,7 +211,6 @@ spi_configure(struct spi_handle *sh, int
 void
 spi_transfer_init(struct spi_transfer *st)
 {
-
 	mutex_init(st-st_lock, MUTEX_DEFAULT, IPL_BIO);
 	cv_init(st-st_cv, spicv);
 

Index: src/sys/dev/spi/spivar.h
diff -u src/sys/dev/spi/spivar.h:1.4.20.1 src/sys/dev/spi/spivar.h:1.4.20.2
--- src/sys/dev/spi/spivar.h:1.4.20.1	Fri May 10 01:25:07 2013
+++ src/sys/dev/spi/spivar.h	Wed May 15 13:52:19 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: spivar.h,v 1.4.20.1 2013/05/10 01:25:07 khorben Exp $ */
+/* $NetBSD: spivar.h,v 1.4.20.2 2013/05/15 13:52:19 khorben Exp $ */
 
 /*-
  * Copyright (c) 2006 Urbana-Champaign Independent Media Center.
@@ -83,6 +83,7 @@ struct spibus_attach_args {
 struct spi_attach_args {
 	struct spi_handle	*sa_handle;
 	int			sa_intr;
+	int			sa_speed;
 };
 
 /*



CVS commit: src/sys/rump/librump/rumpkern

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 13:58:14 UTC 2013

Modified Files:
src/sys/rump/librump/rumpkern: ltsleep.c

Log Message:
how did that extra asterisk get there?


To generate a diff of this commit:
cvs rdiff -u -r1.32 -r1.33 src/sys/rump/librump/rumpkern/ltsleep.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/rump/librump/rumpkern/ltsleep.c
diff -u src/sys/rump/librump/rumpkern/ltsleep.c:1.32 src/sys/rump/librump/rumpkern/ltsleep.c:1.33
--- src/sys/rump/librump/rumpkern/ltsleep.c:1.32	Wed May 15 12:49:33 2013
+++ src/sys/rump/librump/rumpkern/ltsleep.c	Wed May 15 13:58:14 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: ltsleep.c,v 1.32 2013/05/15 12:49:33 pooka Exp $	*/
+/*	$NetBSD: ltsleep.c,v 1.33 2013/05/15 13:58:14 pooka Exp $	*/
 
 /*
  * Copyright (c) 2009, 2010 Antti Kantee.  All Rights Reserved.
@@ -34,7 +34,7 @@
  */
 
 #include sys/cdefs.h
-__KERNEL_RCSID(0, $NetBSD: ltsleep.c,v 1.32 2013/05/15 12:49:33 pooka Exp $);
+__KERNEL_RCSID(0, $NetBSD: ltsleep.c,v 1.33 2013/05/15 13:58:14 pooka Exp $);
 
 #include sys/param.h
 #include sys/kernel.h
@@ -58,7 +58,7 @@ struct ltsleeper {
 #define kcv u.kern
 
 static LIST_HEAD(, ltsleeper) sleepers = LIST_HEAD_INITIALIZER(sleepers);
-static kmutex_t *qlock;
+static kmutex_t qlock;
 
 static int
 sleeper(wchan_t ident, int timo, kmutex_t *kinterlock)



CVS commit: src

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 14:07:26 UTC 2013

Modified Files:
src/lib/librumpuser: rumpuser.3 rumpuser_pth.c
src/sys/rump/include/rump: rumpuser.h
src/sys/rump/librump/rumpkern: lwproc.c rump.c scheduler.c

Log Message:
Add RUMPUSER_LWP_CLEAR instead of overloading RUMPUSER_LWP_SET.
This simplifies some alternative hypervisor implementations.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/lib/librumpuser/rumpuser.3
cvs rdiff -u -r1.28 -r1.29 src/lib/librumpuser/rumpuser_pth.c
cvs rdiff -u -r1.103 -r1.104 src/sys/rump/include/rump/rumpuser.h
cvs rdiff -u -r1.22 -r1.23 src/sys/rump/librump/rumpkern/lwproc.c
cvs rdiff -u -r1.268 -r1.269 src/sys/rump/librump/rumpkern/rump.c
cvs rdiff -u -r1.33 -r1.34 src/sys/rump/librump/rumpkern/scheduler.c

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

Modified files:

Index: src/lib/librumpuser/rumpuser.3
diff -u src/lib/librumpuser/rumpuser.3:1.9 src/lib/librumpuser/rumpuser.3:1.10
--- src/lib/librumpuser/rumpuser.3:1.9	Fri May  3 20:27:16 2013
+++ src/lib/librumpuser/rumpuser.3	Wed May 15 14:07:26 2013
@@ -1,4 +1,4 @@
-.\ $NetBSD: rumpuser.3,v 1.9 2013/05/03 20:27:16 wiz Exp $
+.\ $NetBSD: rumpuser.3,v 1.10 2013/05/15 14:07:26 pooka Exp $
 .\
 .\ Copyright (c) 2013 Antti Kantee.  All rights reserved.
 .\
@@ -23,7 +23,7 @@
 .\ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\ SUCH DAMAGE.
 .\
-.Dd May 2, 2013
+.Dd May 15, 2013
 .Dt RUMPUSER 3
 .Os
 .Sh NAME
@@ -475,10 +475,14 @@ from the hypervisor.
 Set
 .Fa l
 as the current host thread's rump kernel context.
-The value
-.Dv NULL
-means that an existing rump kernel context (which must exist)
-must be cleared.
+A previous context must not exist.
+.It Dv RUMPUSER_LWP_CLEAR
+Clear the context previous set by
+.Dv RUMPUSER_LWP_SET .
+The value passed in
+.Fa l
+is the current thread and is never
+.Dv NULL.
 .El
 .Pp
 .Ft struct lwp *
@@ -641,7 +645,8 @@ Routines which do not return an integer 
 .%A Antti Kantee
 .%D 2012
 .%J Aalto University Doctoral Dissertations
-.%T Flexible Operating System Internals: The Design and Implementation of the Anykernel and Rump Kernerls
+.%T Flexible Operating System Internals: The Design and Implementation of the Anykernel and Rump Kernels
+.%O Section 2.3.2: The Hypercall Interface
 .Re
 .Sh HISTORY
 The rump kernel hypercall API was first introduced in

Index: src/lib/librumpuser/rumpuser_pth.c
diff -u src/lib/librumpuser/rumpuser_pth.c:1.28 src/lib/librumpuser/rumpuser_pth.c:1.29
--- src/lib/librumpuser/rumpuser_pth.c:1.28	Sun May  5 12:27:38 2013
+++ src/lib/librumpuser/rumpuser_pth.c	Wed May 15 14:07:26 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumpuser_pth.c,v 1.28 2013/05/05 12:27:38 pooka Exp $	*/
+/*	$NetBSD: rumpuser_pth.c,v 1.29 2013/05/15 14:07:26 pooka Exp $	*/
 
 /*
  * Copyright (c) 2007-2010 Antti Kantee.  All Rights Reserved.
@@ -28,7 +28,7 @@
 #include rumpuser_port.h
 
 #if !defined(lint)
-__RCSID($NetBSD: rumpuser_pth.c,v 1.28 2013/05/05 12:27:38 pooka Exp $);
+__RCSID($NetBSD: rumpuser_pth.c,v 1.29 2013/05/15 14:07:26 pooka Exp $);
 #endif /* !lint */
 
 #include sys/queue.h
@@ -627,26 +627,27 @@ rumpuser_curlwpop(enum rumplwpop op, str
 		free(rl);
 		break;
 	case RUMPUSER_LWP_SET:
-		assert(pthread_getspecific(curlwpkey) == NULL || l == NULL);
+		assert(pthread_getspecific(curlwpkey) == NULL  l != NULL);
 
-		if (l) {
-			pthread_mutex_lock(lwplock);
-			LIST_FOREACH(rl, lwps, l_entries) {
-if (rl-l == l)
-	break;
-			}
-			if (!rl) {
-fprintf(stderr,
-LWP_SET: %p does not exist\n, l);
-abort();
-			}
-			pthread_mutex_unlock(lwplock);
-		} else {
-			rl = NULL;
+		pthread_mutex_lock(lwplock);
+		LIST_FOREACH(rl, lwps, l_entries) {
+			if (rl-l == l)
+break;
 		}
+		if (!rl) {
+			fprintf(stderr,
+			LWP_SET: %p does not exist\n, l);
+			abort();
+		}
+		pthread_mutex_unlock(lwplock);
 
 		pthread_setspecific(curlwpkey, rl);
 		break;
+	case RUMPUSER_LWP_CLEAR:
+		assert(((struct rumpuser_lwp *)
+		pthread_getspecific(curlwpkey))-l == l);
+		pthread_setspecific(curlwpkey, NULL);
+		break;
 	}
 }
 
@@ -671,9 +672,13 @@ rumpuser_curlwpop(enum rumplwpop op, str
 	case RUMPUSER_LWP_DESTROY:
 		break;
 	case RUMPUSER_LWP_SET:
-		assert(pthread_getspecific(curlwpkey) == NULL || l == NULL);
+		assert(pthread_getspecific(curlwpkey) == NULL);
 		pthread_setspecific(curlwpkey, l);
 		break;
+	case RUMPUSER_LWP_CLEAR:
+		assert(pthread_getspecific(curlwpkey) == l);
+		pthread_setspecific(curlwpkey, NULL);
+		break;
 	}
 }
 

Index: src/sys/rump/include/rump/rumpuser.h
diff -u src/sys/rump/include/rump/rumpuser.h:1.103 src/sys/rump/include/rump/rumpuser.h:1.104
--- src/sys/rump/include/rump/rumpuser.h:1.103	Thu May  2 21:45:28 2013
+++ src/sys/rump/include/rump/rumpuser.h	Wed May 15 14:07:26 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumpuser.h,v 1.103 2013/05/02 21:45:28 pooka 

CVS commit: src

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 14:52:49 UTC 2013

Modified Files:
src/lib/librumpuser: rumpuser.3 rumpuser.c rumpuser_pth.c
rumpuser_pth_dummy.c
src/sys/rump/include/rump: rumpuser.h
src/sys/rump/librump/rumpkern: locks.c

Log Message:
Pass enums over the hypercall interface as ints to avoid some
pathological scenarios from arising in setups where enums might be
of a different size in the rump kernel and hypervisor.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/lib/librumpuser/rumpuser.3
cvs rdiff -u -r1.50 -r1.51 src/lib/librumpuser/rumpuser.c
cvs rdiff -u -r1.29 -r1.30 src/lib/librumpuser/rumpuser_pth.c
cvs rdiff -u -r1.15 -r1.16 src/lib/librumpuser/rumpuser_pth_dummy.c
cvs rdiff -u -r1.104 -r1.105 src/sys/rump/include/rump/rumpuser.h
cvs rdiff -u -r1.63 -r1.64 src/sys/rump/librump/rumpkern/locks.c

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

Modified files:

Index: src/lib/librumpuser/rumpuser.3
diff -u src/lib/librumpuser/rumpuser.3:1.10 src/lib/librumpuser/rumpuser.3:1.11
--- src/lib/librumpuser/rumpuser.3:1.10	Wed May 15 14:07:26 2013
+++ src/lib/librumpuser/rumpuser.3	Wed May 15 14:52:49 2013
@@ -1,4 +1,4 @@
-.\ $NetBSD: rumpuser.3,v 1.10 2013/05/15 14:07:26 pooka Exp $
+.\ $NetBSD: rumpuser.3,v 1.11 2013/05/15 14:52:49 pooka Exp $
 .\
 .\ Copyright (c) 2013 Antti Kantee.  All rights reserved.
 .\
@@ -44,6 +44,18 @@ The implementation included in
 is for POSIX hosts.
 This document is divided into sections based on the functionality
 group of each hypercall.
+.Pp
+Since the hypercall interface is a C function interface, both the
+rump kernel and the hypervisor must conform to the same ABI.
+The interface itself attempts to assume as little as possible from
+the type systems, and for example
+.Vt off_t
+is passed as
+.Vt int64_t
+and enums are passed as ints.
+It is recommended that the hypervisor converts these to the native
+types before starting to process the hypercall, for example by
+assigning the ints back to enums.
 .Sh UPCALLS AND RUMP KERNEL CONTEXT
 A hypercall is always entered with the calling thread scheduled in
 the rump kernel.
@@ -73,7 +85,7 @@ by calling
 .Fn rumpuser_init int version struct rump_hyperup *hyp
 .Pp
 Initialize the hypervisor.
-.Bl -tag -width xalignmentx
+.Bl -tag -width xenum_rumpclock
 .It Fa version
 hypercall interface version number that the kernel expects to be used.
 In case the hypervisor cannot provide an exact match, this routine must
@@ -84,7 +96,7 @@ pointer to a set of upcalls the hypervis
 .Ss Memory allocation
 .Ft int
 .Fn rumpuser_malloc size_t len int alignment void **memp
-.Bl -tag -width xalignmentx
+.Bl -tag -width xenum_rumpclock
 .It Fa len
 amount of memory to allocate
 .It Fa alignment
@@ -97,7 +109,7 @@ return pointer for allocated memory
 .Pp
 .Ft void
 .Fn rumpuser_free void *mem size_t len
-.Bl -tag -width xalignmentx
+.Bl -tag -width xenum_rumpclock
 .It Fa mem
 memory to free
 .It Fa len
@@ -120,7 +132,7 @@ and the host's file system namespace.
 For example, it is possible to associate the file descriptor with
 device I/O registers for special values of
 .Fa name .
-.Bl -tag -width xalignmentx
+.Bl -tag -width xenum_rumpclock
 .It Fa name
 the identifier of the file to open for I/O
 .It Fa mode
@@ -163,7 +175,7 @@ Close a previously opened file descripto
 .Pp
 .Ft int
 .Fn rumpuser_getfileinfo const char *name uint64_t *size int *type
-.Bl -tag -width xalignmentx
+.Bl -tag -width xenum_rumpclock
 .It Fa name
 file for which information is returned.
 The namespace is equal to that of
@@ -190,7 +202,7 @@ respectively.
 .Fc
 .Pp
 Initiate block I/O and return immediately.
-.Bl -tag -width xalignmentx
+.Bl -tag -width xenum_rumpclock
 .It Fa fd
 perform I/O on this file descriptor.
 The file descriptor must have been opened with
@@ -239,7 +251,7 @@ These routines perform scatter-gather I/
 block I/O by nature and therefore cannot be handled by
 .Fn rumpuser_bio .
 .Pp
-.Bl -tag -width xalignmentx
+.Bl -tag -width xenum_rumpclock
 .It Fa fd
 file descriptor to perform I/O on
 .It Fa ruiov
@@ -276,10 +288,10 @@ If this is not possible, the hypervisor 
 retain semantics.
 .Pp
 .Ft int
-.Fn rumpuser_clock_gettime enum rumpclock clk int64_t *sec long *nsec
+.Fn rumpuser_clock_gettime int enum_rumpclock int64_t *sec long *nsec
 .Pp
-.Bl -tag -width xalignmentx
-.It Fa clk
+.Bl -tag -width xenum_rumpclock
+.It Fa enum_rumpclock
 specifies the clock type.
 In case of
 .Dv RUMPUSER_CLOCK_RELWALL
@@ -294,9 +306,9 @@ return value for nanoseconds
 .El
 .Pp
 .Ft int
-.Fn rumpuser_clock_sleep enum rumpclock clk int64_t sec long nsec
-.Bl -tag -width xalignmentx
-.It Fa clk
+.Fn rumpuser_clock_sleep int enum_rumpclock int64_t sec long nsec
+.Bl -tag -width xenum_rumpclock
+.It Fa enum_rumpclock
 In case of
 .Dv RUMPUSER_CLOCK_RELWALL ,
 the sleep should last at least as long as 

CVS commit: src

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 14:58:24 UTC 2013

Modified Files:
src/lib/librumpuser: rumpuser.3 rumpuser.c rumpuser_bio.c
src/sys/rump/include/rump: rumpuser.h

Log Message:
Pass off_t over the hypercall interface as int64_t to avoid potential
problems in setups where off_t doesn't want to be 64bit.

I'm already excitedly waiting for 128bit off_t and _LARGE_LARGE_FILES


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/lib/librumpuser/rumpuser.3
cvs rdiff -u -r1.51 -r1.52 src/lib/librumpuser/rumpuser.c
cvs rdiff -u -r1.6 -r1.7 src/lib/librumpuser/rumpuser_bio.c
cvs rdiff -u -r1.105 -r1.106 src/sys/rump/include/rump/rumpuser.h

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

Modified files:

Index: src/lib/librumpuser/rumpuser.3
diff -u src/lib/librumpuser/rumpuser.3:1.11 src/lib/librumpuser/rumpuser.3:1.12
--- src/lib/librumpuser/rumpuser.3:1.11	Wed May 15 14:52:49 2013
+++ src/lib/librumpuser/rumpuser.3	Wed May 15 14:58:24 2013
@@ -1,4 +1,4 @@
-.\ $NetBSD: rumpuser.3,v 1.11 2013/05/15 14:52:49 pooka Exp $
+.\ $NetBSD: rumpuser.3,v 1.12 2013/05/15 14:58:24 pooka Exp $
 .\
 .\ Copyright (c) 2013 Antti Kantee.  All rights reserved.
 .\
@@ -197,7 +197,7 @@ respectively.
 .Pp
 .Ft void
 .Fo rumpuser_bio
-.Fa int fd int op void *data size_t dlen off_t off
+.Fa int fd int op void *data size_t dlen int64_t off
 .Fa rump_biodone_fn biodone void *donearg
 .Fc
 .Pp
@@ -238,13 +238,13 @@ opaque arg that must be passed to
 .Ft int
 .Fo rumpuser_iovread
 .Fa int fd struct rumpuser_iovec *ruiov size_t iovlen
-.Fa off_t off size_t *retv
+.Fa int64_t off size_t *retv
 .Fc
 .Pp
 .Ft int
 .Fo rumpuser_iovwrite
 .Fa int fd struct rumpuser_iovec *ruiov size_t iovlen
-.Fa off_t off size_t *retv
+.Fa int64_t off size_t *retv
 .Fc
 .Pp
 These routines perform scatter-gather I/O which is not

Index: src/lib/librumpuser/rumpuser.c
diff -u src/lib/librumpuser/rumpuser.c:1.51 src/lib/librumpuser/rumpuser.c:1.52
--- src/lib/librumpuser/rumpuser.c:1.51	Wed May 15 14:52:49 2013
+++ src/lib/librumpuser/rumpuser.c	Wed May 15 14:58:24 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumpuser.c,v 1.51 2013/05/15 14:52:49 pooka Exp $	*/
+/*	$NetBSD: rumpuser.c,v 1.52 2013/05/15 14:58:24 pooka Exp $	*/
 
 /*
  * Copyright (c) 2007-2010 Antti Kantee.  All Rights Reserved.
@@ -28,7 +28,7 @@
 #include rumpuser_port.h
 
 #if !defined(lint)
-__RCSID($NetBSD: rumpuser.c,v 1.51 2013/05/15 14:52:49 pooka Exp $);
+__RCSID($NetBSD: rumpuser.c,v 1.52 2013/05/15 14:58:24 pooka Exp $);
 #endif /* !lint */
 
 #include sys/ioctl.h
@@ -332,9 +332,10 @@ rumpuser_close(int fd)
  */
 int
 rumpuser_iovread(int fd, struct rumpuser_iovec *ruiov, size_t iovlen,
-	off_t off, size_t *retp)
+	int64_t roff, size_t *retp)
 {
 	struct iovec *iov = (struct iovec *)ruiov;
+	off_t off = (off_t)roff;
 	ssize_t nn;
 	int rv;
 
@@ -364,9 +365,10 @@ rumpuser_iovread(int fd, struct rumpuser
 
 int
 rumpuser_iovwrite(int fd, const struct rumpuser_iovec *ruiov, size_t iovlen,
-	off_t off, size_t *retp)
+	int64_t roff, size_t *retp)
 {
 	const struct iovec *iov = (const struct iovec *)ruiov;
+	off_t off = (off_t)roff;
 	ssize_t nn;
 	int rv;
 

Index: src/lib/librumpuser/rumpuser_bio.c
diff -u src/lib/librumpuser/rumpuser_bio.c:1.6 src/lib/librumpuser/rumpuser_bio.c:1.7
--- src/lib/librumpuser/rumpuser_bio.c:1.6	Tue May  7 15:18:35 2013
+++ src/lib/librumpuser/rumpuser_bio.c	Wed May 15 14:58:24 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumpuser_bio.c,v 1.6 2013/05/07 15:18:35 pooka Exp $	*/
+/*	$NetBSD: rumpuser_bio.c,v 1.7 2013/05/15 14:58:24 pooka Exp $	*/
 
 /*-
  * Copyright (c) 2013 Antti Kantee.  All Rights Reserved.
@@ -127,7 +127,7 @@ biothread(void *arg)
 }
 
 void
-rumpuser_bio(int fd, int op, void *data, size_t dlen, off_t doff,
+rumpuser_bio(int fd, int op, void *data, size_t dlen, int64_t doff,
 	rump_biodone_fn biodone, void *bioarg)
 {
 	struct rumpuser_bio bio;
@@ -163,7 +163,7 @@ rumpuser_bio(int fd, int op, void *data,
 	bio.bio_op = op;
 	bio.bio_data = data;
 	bio.bio_dlen = dlen;
-	bio.bio_off = doff;
+	bio.bio_off = (off_t)doff;
 	bio.bio_done = biodone;
 	bio.bio_donearg = bioarg;
 

Index: src/sys/rump/include/rump/rumpuser.h
diff -u src/sys/rump/include/rump/rumpuser.h:1.105 src/sys/rump/include/rump/rumpuser.h:1.106
--- src/sys/rump/include/rump/rumpuser.h:1.105	Wed May 15 14:52:49 2013
+++ src/sys/rump/include/rump/rumpuser.h	Wed May 15 14:58:24 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumpuser.h,v 1.105 2013/05/15 14:52:49 pooka Exp $	*/
+/*	$NetBSD: rumpuser.h,v 1.106 2013/05/15 14:58:24 pooka Exp $	*/
 
 /*
  * Copyright (c) 2007-2013 Antti Kantee.  All Rights Reserved.
@@ -97,7 +97,7 @@ int rumpuser_getfileinfo(const char *, u
 #define RUMPUSER_BIO_WRITE	0x02
 #define RUMPUSER_BIO_SYNC	0x04
 typedef void (*rump_biodone_fn)(void *, size_t, int);
-void rumpuser_bio(int, int, void *, size_t, off_t, rump_biodone_fn, void *);
+void 

CVS commit: src

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 15:57:01 UTC 2013

Modified Files:
src/lib/librumpuser: rumpuser.3 rumpuser.c
src/sys/rump/include/rump: rumpuser.h

Log Message:
Add a generalized rumpuser_syncfd() call which allows the caller
to request a sync or a barrier for fd.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/lib/librumpuser/rumpuser.3
cvs rdiff -u -r1.52 -r1.53 src/lib/librumpuser/rumpuser.c
cvs rdiff -u -r1.106 -r1.107 src/sys/rump/include/rump/rumpuser.h

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

Modified files:

Index: src/lib/librumpuser/rumpuser.3
diff -u src/lib/librumpuser/rumpuser.3:1.12 src/lib/librumpuser/rumpuser.3:1.13
--- src/lib/librumpuser/rumpuser.3:1.12	Wed May 15 14:58:24 2013
+++ src/lib/librumpuser/rumpuser.3	Wed May 15 15:57:01 2013
@@ -1,4 +1,4 @@
-.\ $NetBSD: rumpuser.3,v 1.12 2013/05/15 14:58:24 pooka Exp $
+.\ $NetBSD: rumpuser.3,v 1.13 2013/05/15 15:57:01 pooka Exp $
 .\
 .\ Copyright (c) 2013 Antti Kantee.  All rights reserved.
 .\
@@ -280,6 +280,51 @@ results in undefined behavior.
 .It Fa retv
 number of bytes successfully transferred is returned here
 .El
+.Pp
+.Ft int
+.Fo rumpuser_syncfd
+.Fa int fd int flags uint64_t start uint64_t len
+.Fc
+.Pp
+Synchronizes
+.Fa fd
+with respect to backing storage.
+The other arguments are:
+.Pp
+.Bl -tag -width xenum_rumpclock
+.It Fa flags
+controls how syncronization happens.
+It must contain one of the following:
+.Bl -tag -width XRUMPUSER_SYNCFD_BARRIER
+.It Dv RUMPUSER_SYNCFD_READ
+Make sure that the next read sees writes from all other parties.
+This is useful for example in the case that
+.Fa fd
+represents memory to write a DMA read is being performed.
+.It Dv RUMPUSER_SYNCFD_WRITE
+Flush cached writes.
+.El
+.Pp
+The following additional parameters may be passed in
+.Fa flags :
+.Pp
+.Bl -tag -width XRUMPUSER_SYNCFD_BARRIER
+.It Dv RUMPUSER_SYNCFD_BARRIER
+Issue a barrier.
+Outstanding I/O operations which were started before the barrier
+complete before any operations after the barrier are performed.
+.It Dv RUMPUSER_SYNCFD_SYNC
+Wait for the synchronization operation to fully complete before
+returning.
+For example, this could mean that the data to be written to a disk
+has hit either the disk or non-volatile memory.
+.El
+.It Fa start
+offset into the object.
+.It Fa len
+the number of bytes to synchronize.
+The value 0 denotes until the end of the object.
+.El
 .Ss Clocks
 The hypervisor should support two clocks, one for wall time and one
 for monotonically increasing time, the latter of which may be based

Index: src/lib/librumpuser/rumpuser.c
diff -u src/lib/librumpuser/rumpuser.c:1.52 src/lib/librumpuser/rumpuser.c:1.53
--- src/lib/librumpuser/rumpuser.c:1.52	Wed May 15 14:58:24 2013
+++ src/lib/librumpuser/rumpuser.c	Wed May 15 15:57:01 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumpuser.c,v 1.52 2013/05/15 14:58:24 pooka Exp $	*/
+/*	$NetBSD: rumpuser.c,v 1.53 2013/05/15 15:57:01 pooka Exp $	*/
 
 /*
  * Copyright (c) 2007-2010 Antti Kantee.  All Rights Reserved.
@@ -28,7 +28,7 @@
 #include rumpuser_port.h
 
 #if !defined(lint)
-__RCSID($NetBSD: rumpuser.c,v 1.52 2013/05/15 14:58:24 pooka Exp $);
+__RCSID($NetBSD: rumpuser.c,v 1.53 2013/05/15 15:57:01 pooka Exp $);
 #endif /* !lint */
 
 #include sys/ioctl.h
@@ -397,6 +397,43 @@ rumpuser_iovwrite(int fd, const struct r
 }
 
 int
+rumpuser_syncfd(int fd, int flags, uint64_t start, uint64_t len)
+{
+	int rv = 0;
+	
+	/*
+	 * For now, assume fd is regular file and does not care
+	 * about read syncing
+	 */
+	if ((flags  RUMPUSER_SYNCFD_BOTH) == 0) {
+		rv = EINVAL;
+		goto out;
+	}
+	if ((flags  RUMPUSER_SYNCFD_WRITE) == 0) {
+		rv = 0;
+		goto out;
+	}
+
+#ifdef __NetBSD__
+	{
+	int fsflags = FDATASYNC;
+
+	if (fsflags  RUMPUSER_SYNCFD_SYNC)
+		fsflags |= FDISKSYNC;
+	if (fsync_range(fd, fsflags, start, len) == -1)
+		rv = errno;
+	}
+#else
+	/* el-simplo */
+	if (fsync(fd) == -1)
+		rv = errno;
+#endif
+
+ out:
+	ET(rv);
+}
+
+int
 rumpuser_clock_gettime(int enum_rumpclock, int64_t *sec, long *nsec)
 {
 	enum rumpclock rclk = enum_rumpclock;

Index: src/sys/rump/include/rump/rumpuser.h
diff -u src/sys/rump/include/rump/rumpuser.h:1.106 src/sys/rump/include/rump/rumpuser.h:1.107
--- src/sys/rump/include/rump/rumpuser.h:1.106	Wed May 15 14:58:24 2013
+++ src/sys/rump/include/rump/rumpuser.h	Wed May 15 15:57:01 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumpuser.h,v 1.106 2013/05/15 14:58:24 pooka Exp $	*/
+/*	$NetBSD: rumpuser.h,v 1.107 2013/05/15 15:57:01 pooka Exp $	*/
 
 /*
  * Copyright (c) 2007-2013 Antti Kantee.  All Rights Reserved.
@@ -109,6 +109,13 @@ int rumpuser_iovread(int, struct rumpuse
 int rumpuser_iovwrite(int, const struct rumpuser_iovec *, size_t,
 		  int64_t, size_t *);
 
+#define RUMPUSER_SYNCFD_READ	0x01
+#define RUMPUSER_SYNCFD_WRITE	0x02
+#define RUMPUSER_SYNCFD_BOTH	(RUMPUSER_SYNCFD_READ | 

CVS commit: src/sys/rump/include/rump

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 16:00:04 UTC 2013

Modified Files:
src/sys/rump/include/rump: rumpuser.h

Log Message:
Looks like I'm done revamping, so bump interface version to 17,
where it will hopefully stay for all eternity (unless some snafus
are discovered before NetBSD 7).


To generate a diff of this commit:
cvs rdiff -u -r1.107 -r1.108 src/sys/rump/include/rump/rumpuser.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/rump/include/rump/rumpuser.h
diff -u src/sys/rump/include/rump/rumpuser.h:1.107 src/sys/rump/include/rump/rumpuser.h:1.108
--- src/sys/rump/include/rump/rumpuser.h:1.107	Wed May 15 15:57:01 2013
+++ src/sys/rump/include/rump/rumpuser.h	Wed May 15 16:00:04 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumpuser.h,v 1.107 2013/05/15 15:57:01 pooka Exp $	*/
+/*	$NetBSD: rumpuser.h,v 1.108 2013/05/15 16:00:04 pooka Exp $	*/
 
 /*
  * Copyright (c) 2007-2013 Antti Kantee.  All Rights Reserved.
@@ -42,7 +42,11 @@ struct lwp;
  * init
  */
 
-#define RUMPUSER_VERSION 16
+/*
+ * Bumping this causes all kinds of havoc for implementations
+ * outside of the NetBSD tree, so try to avoid it.
+ */
+#define RUMPUSER_VERSION 17
 
 /* hypervisor upcall routines */
 struct rumpuser_hyperup {



CVS commit: src/sys/fs/sysvbfs

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 16:44:03 UTC 2013

Modified Files:
src/sys/fs/sysvbfs: sysvbfs_vnops.c

Log Message:
Don't change a read-only file system.


To generate a diff of this commit:
cvs rdiff -u -r1.47 -r1.48 src/sys/fs/sysvbfs/sysvbfs_vnops.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/fs/sysvbfs/sysvbfs_vnops.c
diff -u src/sys/fs/sysvbfs/sysvbfs_vnops.c:1.47 src/sys/fs/sysvbfs/sysvbfs_vnops.c:1.48
--- src/sys/fs/sysvbfs/sysvbfs_vnops.c:1.47	Mon Mar 18 19:35:40 2013
+++ src/sys/fs/sysvbfs/sysvbfs_vnops.c	Wed May 15 16:44:03 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: sysvbfs_vnops.c,v 1.47 2013/03/18 19:35:40 plunky Exp $	*/
+/*	$NetBSD: sysvbfs_vnops.c,v 1.48 2013/05/15 16:44:03 pooka Exp $	*/
 
 /*-
  * Copyright (c) 2004 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include sys/cdefs.h
-__KERNEL_RCSID(0, $NetBSD: sysvbfs_vnops.c,v 1.47 2013/03/18 19:35:40 plunky Exp $);
+__KERNEL_RCSID(0, $NetBSD: sysvbfs_vnops.c,v 1.48 2013/05/15 16:44:03 pooka Exp $);
 
 #include sys/param.h
 #include sys/kernel.h
@@ -218,6 +218,10 @@ sysvbfs_close(void *arg)
 	struct bfs_fileattr attr;
 
 	DPRINTF(%s:\n, __func__);
+
+	if (v-v_mount-mnt_flag  MNT_RDONLY)
+		goto out;
+
 	uvm_vnp_setsize(v, bnode-size);
 
 	memset(attr, 0xff, sizeof attr);	/* Set VNOVAL all */
@@ -231,6 +235,7 @@ sysvbfs_close(void *arg)
 
 	VOP_FSYNC(a-a_vp, a-a_cred, FSYNC_WAIT, 0, 0);
 
+ out:
 	return 0;
 }
 
@@ -877,6 +882,9 @@ sysvbfs_update(struct vnode *vp, const s
 	struct sysvbfs_node *bnode = vp-v_data;
 	struct bfs_fileattr attr;
 
+	if (vp-v_mount-mnt_flag  MNT_RDONLY)
+		return 0;
+
 	DPRINTF(%s:\n, __func__);
 	memset(attr, 0xff, sizeof attr);	/* Set VNOVAL all */
 	if (bnode-update_atime) {



CVS commit: src/lib/librumpuser

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 17:53:09 UTC 2013

Modified Files:
src/lib/librumpuser: rumpuser.3

Log Message:
Improve documentation on the locking order of cv_wait mtx/cpu.


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/lib/librumpuser/rumpuser.3

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

Modified files:

Index: src/lib/librumpuser/rumpuser.3
diff -u src/lib/librumpuser/rumpuser.3:1.13 src/lib/librumpuser/rumpuser.3:1.14
--- src/lib/librumpuser/rumpuser.3:1.13	Wed May 15 15:57:01 2013
+++ src/lib/librumpuser/rumpuser.3	Wed May 15 17:53:09 2013
@@ -1,4 +1,4 @@
-.\ $NetBSD: rumpuser.3,v 1.13 2013/05/15 15:57:01 pooka Exp $
+.\ $NetBSD: rumpuser.3,v 1.14 2013/05/15 17:53:09 pooka Exp $
 .\
 .\ Copyright (c) 2013 Antti Kantee.  All rights reserved.
 .\
@@ -600,7 +600,7 @@ may not relinquish rump kernel context.
 .Fn rumpuser_mutex_owner struct rumpuser_mtx *mtx struct lwp **lp
 .Pp
 Mutexes provide mutually exclusive locking.
-The flags for initialization are as follows:
+The flags, of which at least one must be given, are as follows:
 .Bl -tag -width XRUMPUSER_MTX_KMUTEX
 .It Dv RUMPUSER_MTX_SPIN
 Create a spin mutex.
@@ -691,6 +691,19 @@ sleep duration after which the routine w
 .Er ETIMEDOUT .
 If a timedwait is signalled before the timeout expires, the
 routine will return 0.
+.Pp
+The order in which the hypervisor
+reacquires the rump kernel context and interlock mutex before
+returning into the rump kernel is as follows.
+In case the interlock mutex was initialized with both
+.Dv RUMPUSER_MTX_SPIN
+and
+.Dv RUMPUSER_MTX_KMUTEX ,
+the rump kernel context is scheduled before the mutex is reacquired.
+In case of a purely
+.Dv RUMPUSER_MTX_SPIN
+mutex, the mutex is acquired first.
+In the final case the order is implementation-defined.
 .Sh RETURN VALUES
 All routines which return an integer return an errno value.
 The hypervisor must translate the value to the the native errno



CVS commit: src/sys/rump

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 19:30:46 UTC 2013

Modified Files:
src/sys/rump: VERSION

Log Message:
bump version for rumpuser changes


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/rump/VERSION

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

Modified files:

Index: src/sys/rump/VERSION
diff -u src/sys/rump/VERSION:1.7 src/sys/rump/VERSION:1.8
--- src/sys/rump/VERSION:1.7	Mon Mar 18 15:55:43 2013
+++ src/sys/rump/VERSION	Wed May 15 19:30:46 2013
@@ -1,4 +1,4 @@
-#	$NetBSD: VERSION,v 1.7 2013/03/18 15:55:43 pooka Exp $
+#	$NetBSD: VERSION,v 1.8 2013/05/15 19:30:46 pooka Exp $
 #
 # Since cvs does not provide a version number for the entire tree, provide
 # identifiers which can be used by external parties to check if the NetBSD
@@ -9,4 +9,4 @@
 # when date is bumped.
 #
 
-BUILDRUMP=20130318:0
+BUILDRUMP=20130515:0



CVS commit: src/lib

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 20:27:00 UTC 2013

Modified Files:
src/lib/librumpclient: Makefile
src/lib/librumpuser: Makefile

Log Message:
Make it possible for external parties to specify additional dplibs.
This is useful for example on platforms which require -ldl.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/lib/librumpclient/Makefile
cvs rdiff -u -r1.12 -r1.13 src/lib/librumpuser/Makefile

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

Modified files:

Index: src/lib/librumpclient/Makefile
diff -u src/lib/librumpclient/Makefile:1.7 src/lib/librumpclient/Makefile:1.8
--- src/lib/librumpclient/Makefile:1.7	Tue Mar  8 19:11:27 2011
+++ src/lib/librumpclient/Makefile	Wed May 15 20:27:00 2013
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.7 2011/03/08 19:11:27 pooka Exp $
+#	$NetBSD: Makefile,v 1.8 2013/05/15 20:27:00 pooka Exp $
 #
 
 .PATH:	${.CURDIR}/../../sys/rump/librump/rumpkern
@@ -12,6 +12,11 @@ MAN=		rumpclient.3
 INCS=		rumpclient.h
 INCSDIR=	/usr/include/rump
 
+.for lib in ${RUMPCLIENT_EXTERNAL_DPLIBS}
+LIBDO.${lib}=	_external
+LIBDPLIBS+=	${lib} lib
+.endfor
+
 CPPFLAGS+=	-DRUMP_CLIENT
 CPPFLAGS+=	-I${.OBJDIR} -I${.CURDIR} -I${.CURDIR}/../librumpuser
 SRCS=		rumpclient.c

Index: src/lib/librumpuser/Makefile
diff -u src/lib/librumpuser/Makefile:1.12 src/lib/librumpuser/Makefile:1.13
--- src/lib/librumpuser/Makefile:1.12	Tue Apr 30 15:48:29 2013
+++ src/lib/librumpuser/Makefile	Wed May 15 20:27:00 2013
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.12 2013/04/30 15:48:29 pooka Exp $
+#	$NetBSD: Makefile,v 1.13 2013/05/15 20:27:00 pooka Exp $
 #
 
 WARNS?=		5
@@ -8,6 +8,10 @@ WARNS?=		5
 
 LIB=		rumpuser
 LIBDPLIBS+=	pthread ${.CURDIR}/../libpthread
+.for lib in ${RUMPUSER_EXTERNAL_DPLIBS}
+LIBDO.${lib}=	_external
+LIBDPLIBS+=	${lib} lib
+.endfor
 CPPFLAGS+=	-DLIBRUMPUSER
 #CPPFLAGS+=	-D_DIAGNOSTIC
 



CVS commit: src/lib/librumpuser

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 20:47:20 UTC 2013

Modified Files:
src/lib/librumpuser: Makefile

Log Message:
also, bsd.own.mk to pick up mk.conf


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/lib/librumpuser/Makefile

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

Modified files:

Index: src/lib/librumpuser/Makefile
diff -u src/lib/librumpuser/Makefile:1.13 src/lib/librumpuser/Makefile:1.14
--- src/lib/librumpuser/Makefile:1.13	Wed May 15 20:27:00 2013
+++ src/lib/librumpuser/Makefile	Wed May 15 20:47:20 2013
@@ -1,6 +1,8 @@
-#	$NetBSD: Makefile,v 1.13 2013/05/15 20:27:00 pooka Exp $
+#	$NetBSD: Makefile,v 1.14 2013/05/15 20:47:20 pooka Exp $
 #
 
+.include bsd.own.mk
+
 WARNS?=		5
 
 # rumpuser.h is in sys/rump for inclusion by kernel components



CVS commit: src/sys/rump/kern/lib

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 21:39:30 UTC 2013

Modified Files:
src/sys/rump/kern/lib/libsys_cygwin: syscalls.master
src/sys/rump/kern/lib/libsys_sunos: syscalls.master

Log Message:
Support utimes/futimes.  Makes at least fsu_touch work on these platforms.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/rump/kern/lib/libsys_cygwin/syscalls.master
cvs rdiff -u -r1.1 -r1.2 src/sys/rump/kern/lib/libsys_sunos/syscalls.master

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

Modified files:

Index: src/sys/rump/kern/lib/libsys_cygwin/syscalls.master
diff -u src/sys/rump/kern/lib/libsys_cygwin/syscalls.master:1.1 src/sys/rump/kern/lib/libsys_cygwin/syscalls.master:1.2
--- src/sys/rump/kern/lib/libsys_cygwin/syscalls.master:1.1	Wed Apr 10 16:44:54 2013
+++ src/sys/rump/kern/lib/libsys_cygwin/syscalls.master	Wed May 15 21:39:30 2013
@@ -1,4 +1,4 @@
-	$NetBSD: syscalls.master,v 1.1 2013/04/10 16:44:54 pooka Exp $
+	$NetBSD: syscalls.master,v 1.2 2013/05/15 21:39:30 pooka Exp $
 
 ;	@(#)syscalls.master	8.2 (Berkeley) 1/13/94
 
@@ -508,10 +508,12 @@
 417	UNIMPL		select
 418	UNIMPL		gettimeofday
 419	UNIMPL		settimeofday
-420	UNIMPL		utimes
+420	NOARGS		{ int|compat_50_sys||utimes(char *path, \
+			struct timeval50 *tptr); }
 421	UNIMPL		adjtime
 422	UNIMPL		lfs_segwait
-423	UNIMPL		futimes
+423	NOARGS		{ int|compat_50_sys||futimes(int fd, \
+			struct timeval50 *tptr); }
 424	UNIMPL		lutimes
 425	UNIMPL		setitimer
 426	UNIMPL		getitimer

Index: src/sys/rump/kern/lib/libsys_sunos/syscalls.master
diff -u src/sys/rump/kern/lib/libsys_sunos/syscalls.master:1.1 src/sys/rump/kern/lib/libsys_sunos/syscalls.master:1.2
--- src/sys/rump/kern/lib/libsys_sunos/syscalls.master:1.1	Tue Apr  9 13:08:33 2013
+++ src/sys/rump/kern/lib/libsys_sunos/syscalls.master	Wed May 15 21:39:30 2013
@@ -1,4 +1,4 @@
-	$NetBSD: syscalls.master,v 1.1 2013/04/09 13:08:33 pooka Exp $
+	$NetBSD: syscalls.master,v 1.2 2013/05/15 21:39:30 pooka Exp $
 
 ;	@(#)syscalls.master	8.2 (Berkeley) 1/13/94
 
@@ -511,10 +511,12 @@
 417	UNIMPL		select
 418	UNIMPL		gettimeofday
 419	UNIMPL		settimeofday
-420	UNIMPL		utimes
+420	NOARGS		{ int|compat_50_sys||utimes(char *path, \
+			struct timeval50 *tptr); }
 421	UNIMPL		adjtime
 422	UNIMPL		lfs_segwait
-423	UNIMPL		futimes
+423	NOARGS		{ int|compat_50_sys||futimes(int fd, \
+			struct timeval50 *tptr); }
 424	UNIMPL		lutimes
 425	UNIMPL		setitimer
 426	UNIMPL		getitimer



CVS commit: src/sys/rump/kern/lib

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 21:41:25 UTC 2013

Modified Files:
src/sys/rump/kern/lib/libsys_cygwin: rump_cygwin_syscall.h
rump_cygwin_syscallargs.h rump_cygwin_syscalls.c
rump_cygwin_sysent.c
src/sys/rump/kern/lib/libsys_sunos: rump_sunos_syscall.h
rump_sunos_syscallargs.h rump_sunos_syscalls.c rump_sunos_sysent.c

Log Message:
regen


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 \
src/sys/rump/kern/lib/libsys_cygwin/rump_cygwin_syscall.h \
src/sys/rump/kern/lib/libsys_cygwin/rump_cygwin_syscallargs.h \
src/sys/rump/kern/lib/libsys_cygwin/rump_cygwin_syscalls.c \
src/sys/rump/kern/lib/libsys_cygwin/rump_cygwin_sysent.c
cvs rdiff -u -r1.1 -r1.2 \
src/sys/rump/kern/lib/libsys_sunos/rump_sunos_syscall.h \
src/sys/rump/kern/lib/libsys_sunos/rump_sunos_syscallargs.h \
src/sys/rump/kern/lib/libsys_sunos/rump_sunos_syscalls.c \
src/sys/rump/kern/lib/libsys_sunos/rump_sunos_sysent.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/rump/kern/lib/libsys_cygwin/rump_cygwin_syscall.h
diff -u src/sys/rump/kern/lib/libsys_cygwin/rump_cygwin_syscall.h:1.1 src/sys/rump/kern/lib/libsys_cygwin/rump_cygwin_syscall.h:1.2
--- src/sys/rump/kern/lib/libsys_cygwin/rump_cygwin_syscall.h:1.1	Wed Apr 10 16:45:45 2013
+++ src/sys/rump/kern/lib/libsys_cygwin/rump_cygwin_syscall.h	Wed May 15 21:41:25 2013
@@ -1,10 +1,10 @@
-/* $NetBSD: rump_cygwin_syscall.h,v 1.1 2013/04/10 16:45:45 pooka Exp $ */
+/* $NetBSD: rump_cygwin_syscall.h,v 1.2 2013/05/15 21:41:25 pooka Exp $ */
 
 /*
  * System call numbers.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * created from	NetBSD: syscalls.master,v 1.1 2013/04/10 16:44:54 pooka Exp
+ * created from	NetBSD: syscalls.master,v 1.2 2013/05/15 21:39:30 pooka Exp
  */
 
 #ifndef _RUMP_CYGWIN_SYS_SYSCALL_H_
@@ -171,6 +171,12 @@
 /* syscall: fchroot ret: int args: int */
 #define	RUMP_CYGWIN_SYS_fchroot	297
 
+/* syscall: utimes ret: int args: char * struct timeval50 * */
+#define	RUMP_CYGWIN_SYS_utimes	420
+
+/* syscall: futimes ret: int args: int struct timeval50 * */
+#define	RUMP_CYGWIN_SYS_futimes	423
+
 /* syscall: __mknod50 ret: int args: const char * mode_t int */
 #define	RUMP_CYGWIN_SYS___mknod50	450
 
Index: src/sys/rump/kern/lib/libsys_cygwin/rump_cygwin_syscallargs.h
diff -u src/sys/rump/kern/lib/libsys_cygwin/rump_cygwin_syscallargs.h:1.1 src/sys/rump/kern/lib/libsys_cygwin/rump_cygwin_syscallargs.h:1.2
--- src/sys/rump/kern/lib/libsys_cygwin/rump_cygwin_syscallargs.h:1.1	Wed Apr 10 16:45:45 2013
+++ src/sys/rump/kern/lib/libsys_cygwin/rump_cygwin_syscallargs.h	Wed May 15 21:41:25 2013
@@ -1,10 +1,10 @@
-/* $NetBSD: rump_cygwin_syscallargs.h,v 1.1 2013/04/10 16:45:45 pooka Exp $ */
+/* $NetBSD: rump_cygwin_syscallargs.h,v 1.2 2013/05/15 21:41:25 pooka Exp $ */
 
 /*
  * System call argument lists.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * created from	NetBSD: syscalls.master,v 1.1 2013/04/10 16:44:54 pooka Exp
+ * created from	NetBSD: syscalls.master,v 1.2 2013/05/15 21:39:30 pooka Exp
  */
 
 #ifndef _RUMP_CYGWIN_SYS_SYSCALLARGS_H_
@@ -133,6 +133,10 @@ struct rump_cygwin_sys_getdents_args {
 };
 check_syscall_args(rump_cygwin_sys_getdents)
 
+struct compat_50_sys_utimes_args;
+
+struct compat_50_sys_futimes_args;
+
 struct rump_cygwin_sys_stat_args {
 	syscallarg(const char *) path;
 	syscallarg(struct cygwin_stat *) sp;
@@ -267,6 +271,10 @@ int	sys_fchroot(struct lwp *, const stru
 
 int	rump_cygwin_sys_getdents(struct lwp *, const struct rump_cygwin_sys_getdents_args *, register_t *);
 
+int	compat_50_sys_utimes(struct lwp *, const struct compat_50_sys_utimes_args *, register_t *);
+
+int	compat_50_sys_futimes(struct lwp *, const struct compat_50_sys_futimes_args *, register_t *);
+
 int	rump_cygwin_sys_stat(struct lwp *, const struct rump_cygwin_sys_stat_args *, register_t *);
 
 int	rump_cygwin_sys_fstat(struct lwp *, const struct rump_cygwin_sys_fstat_args *, register_t *);
Index: src/sys/rump/kern/lib/libsys_cygwin/rump_cygwin_syscalls.c
diff -u src/sys/rump/kern/lib/libsys_cygwin/rump_cygwin_syscalls.c:1.1 src/sys/rump/kern/lib/libsys_cygwin/rump_cygwin_syscalls.c:1.2
--- src/sys/rump/kern/lib/libsys_cygwin/rump_cygwin_syscalls.c:1.1	Wed Apr 10 16:45:45 2013
+++ src/sys/rump/kern/lib/libsys_cygwin/rump_cygwin_syscalls.c	Wed May 15 21:41:25 2013
@@ -1,14 +1,14 @@
-/* $NetBSD: rump_cygwin_syscalls.c,v 1.1 2013/04/10 16:45:45 pooka Exp $ */
+/* $NetBSD: rump_cygwin_syscalls.c,v 1.2 2013/05/15 21:41:25 pooka Exp $ */
 
 /*
  * System call names.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * created from	NetBSD: syscalls.master,v 1.1 2013/04/10 16:44:54 pooka Exp
+ * created from	NetBSD: syscalls.master,v 1.2 2013/05/15 21:39:30 pooka Exp
  */
 
 #include sys/cdefs.h
-__KERNEL_RCSID(0, $NetBSD: 

CVS commit: src/sys/rump

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 21:53:27 UTC 2013

Modified Files:
src/sys/rump: VERSION

Log Message:
one more bump for the recent changes


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/sys/rump/VERSION

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

Modified files:

Index: src/sys/rump/VERSION
diff -u src/sys/rump/VERSION:1.8 src/sys/rump/VERSION:1.9
--- src/sys/rump/VERSION:1.8	Wed May 15 19:30:46 2013
+++ src/sys/rump/VERSION	Wed May 15 21:53:27 2013
@@ -1,4 +1,4 @@
-#	$NetBSD: VERSION,v 1.8 2013/05/15 19:30:46 pooka Exp $
+#	$NetBSD: VERSION,v 1.9 2013/05/15 21:53:27 pooka Exp $
 #
 # Since cvs does not provide a version number for the entire tree, provide
 # identifiers which can be used by external parties to check if the NetBSD
@@ -9,4 +9,4 @@
 # when date is bumped.
 #
 
-BUILDRUMP=20130515:0
+BUILDRUMP=20130515:1



CVS commit: src/lib/librumpuser

2013-05-15 Thread Thomas Klausner
Module Name:src
Committed By:   wiz
Date:   Wed May 15 22:09:32 UTC 2013

Modified Files:
src/lib/librumpuser: rumpuser.3

Log Message:
More markup, less typos.


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/lib/librumpuser/rumpuser.3

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

Modified files:

Index: src/lib/librumpuser/rumpuser.3
diff -u src/lib/librumpuser/rumpuser.3:1.14 src/lib/librumpuser/rumpuser.3:1.15
--- src/lib/librumpuser/rumpuser.3:1.14	Wed May 15 17:53:09 2013
+++ src/lib/librumpuser/rumpuser.3	Wed May 15 22:09:32 2013
@@ -1,4 +1,4 @@
-.\ $NetBSD: rumpuser.3,v 1.14 2013/05/15 17:53:09 pooka Exp $
+.\ $NetBSD: rumpuser.3,v 1.15 2013/05/15 22:09:32 wiz Exp $
 .\
 .\ Copyright (c) 2013 Antti Kantee.  All rights reserved.
 .\
@@ -181,9 +181,13 @@ file for which information is returned.
 The namespace is equal to that of
 .Fn rumpuser_open .
 .It Fa size
-If non-NULL, size of the file is returned here.
+If
+.Pf non- Dv NULL ,
+size of the file is returned here.
 .It Fa type
-If non-NULL, type of the file is returned here.
+If
+.Pf non- Dv NULL ,
+type of the file is returned here.
 The options are
 .Dv RUMPUSER_FT_DIR ,
 .Dv RUMPUSER_FT_REG ,
@@ -293,7 +297,7 @@ The other arguments are:
 .Pp
 .Bl -tag -width xenum_rumpclock
 .It Fa flags
-controls how syncronization happens.
+controls how synchronization happens.
 It must contain one of the following:
 .Bl -tag -width XRUMPUSER_SYNCFD_BARRIER
 .It Dv RUMPUSER_SYNCFD_READ
@@ -539,7 +543,7 @@ Clear the context previous set by
 The value passed in
 .Fa l
 is the current thread and is never
-.Dv NULL.
+.Dv NULL .
 .El
 .Pp
 .Ft struct lwp *
@@ -689,7 +693,7 @@ for the duration of the sleep in the nor
 The timedwait variant takes a specifier indicating a relative
 sleep duration after which the routine will return with
 .Er ETIMEDOUT .
-If a timedwait is signalled before the timeout expires, the
+If a timedwait is signaled before the timeout expires, the
 routine will return 0.
 .Pp
 The order in which the hypervisor



CVS commit: [khorben-n900] src/sys/arch/arm/omap

2013-05-15 Thread Pierre Pronchery
Module Name:src
Committed By:   khorben
Date:   Wed May 15 23:27:49 UTC 2013

Modified Files:
src/sys/arch/arm/omap [khorben-n900]: omap2_spi.c

Log Message:
Seems to be much closer to working correctly. Apparently one has to read
back anything transmitted, as well as transmit 0's to be able to read
anything. This would explain the whole juggling with chunks, counts and
pointers.


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.4 -r1.1.2.5 src/sys/arch/arm/omap/omap2_spi.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/omap/omap2_spi.c
diff -u src/sys/arch/arm/omap/omap2_spi.c:1.1.2.4 src/sys/arch/arm/omap/omap2_spi.c:1.1.2.5
--- src/sys/arch/arm/omap/omap2_spi.c:1.1.2.4	Wed May 15 02:44:48 2013
+++ src/sys/arch/arm/omap/omap2_spi.c	Wed May 15 23:27:49 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: omap2_spi.c,v 1.1.2.4 2013/05/15 02:44:48 khorben Exp $ */
+/* $NetBSD: omap2_spi.c,v 1.1.2.5 2013/05/15 23:27:49 khorben Exp $ */
 
 /*
  * Texas Instruments OMAP2/3 Multichannel SPI driver.
@@ -14,8 +14,9 @@
  * are met:
  * 1. Redistributions of source code must retain the above copyright
  *notice, this list of conditions and the following disclaimer.
- * 2. The name of the author may not be used to endorse or promote products
- *derived from this software without specific prior written permission.
+ * 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
@@ -31,7 +32,7 @@
  */
 
 #include sys/cdefs.h
-__KERNEL_RCSID(0, $NetBSD: omap2_spi.c,v 1.1.2.4 2013/05/15 02:44:48 khorben Exp $);
+__KERNEL_RCSID(0, $NetBSD: omap2_spi.c,v 1.1.2.5 2013/05/15 23:27:49 khorben Exp $);
 
 #include opt_omap.h
 
@@ -347,13 +348,13 @@ omap2_spi_stop(struct omap2_spi_softc * 
 
 	chan = sc-sc_channels[channel];
 
-	chan-running = false;
-
 	/* stop the channel */
 	ctrlreg = OMAP2_MCSPI_CHXCTRL(channel);
 	u32 = SPI_READ_REG(sc, ctrlreg);
 	u32 = ~OMAP2_MCSPI_CHXCTRL_EN;
 	SPI_WRITE_REG(sc, ctrlreg, u32);
+
+	chan-running = false;
 }
 
 static int
@@ -364,13 +365,14 @@ omap2_spi_intr(void *v)
 	struct omap2_spi_channel *chan;
 	struct spi_transfer *st;
 	uint32_t status;
-	uint32_t u32;
 	uint32_t tx_empty = 0;
 	uint32_t rx_full = 0;
 
 	/* reset the channel status bits */
 	status = SPI_READ_REG(sc, OMAP2_MCSPI_IRQSTATUS);
-	u32 = 0;
+
+	/* acknowledge the interrupt */
+	SPI_WRITE_REG(sc, OMAP2_MCSPI_IRQSTATUS, status);
 
 	/* check every channel */
 	for (i = 0; i  sc-sc_spi.sct_nslaves; i++) {
@@ -381,37 +383,24 @@ omap2_spi_intr(void *v)
 
 		switch (i) {
 			case 0:
-u32 |= OMAP2_MCSPI_IRQSTATUS_RX0_OVERFLOW
-	| OMAP2_MCSPI_IRQSTATUS_RX0_FULL
-	| OMAP2_MCSPI_IRQSTATUS_TX0_UNDERFLOW
-	| OMAP2_MCSPI_IRQSTATUS_TX0_EMPTY;
 tx_empty = status
 	 OMAP2_MCSPI_IRQSTATUS_TX0_EMPTY;
 rx_full = status
 	 OMAP2_MCSPI_IRQSTATUS_RX0_FULL;
 break;
 			case 1:
-u32 |= OMAP2_MCSPI_IRQSTATUS_RX1_FULL
-	| OMAP2_MCSPI_IRQSTATUS_TX1_UNDERFLOW
-	| OMAP2_MCSPI_IRQSTATUS_TX1_EMPTY;
 tx_empty = status
 	 OMAP2_MCSPI_IRQSTATUS_TX1_EMPTY;
 rx_full = status
 	 OMAP2_MCSPI_IRQSTATUS_RX1_FULL;
 break;
 			case 2:
-u32 |= OMAP2_MCSPI_IRQSTATUS_RX2_FULL
-	| OMAP2_MCSPI_IRQSTATUS_TX2_UNDERFLOW
-	| OMAP2_MCSPI_IRQSTATUS_TX2_EMPTY;
 tx_empty = status
 	 OMAP2_MCSPI_IRQSTATUS_TX2_EMPTY;
 rx_full = status
 	 OMAP2_MCSPI_IRQSTATUS_RX2_FULL;
 break;
 			case 3:
-u32 |= OMAP2_MCSPI_IRQSTATUS_RX3_FULL
-	| OMAP2_MCSPI_IRQSTATUS_TX3_UNDERFLOW
-	| OMAP2_MCSPI_IRQSTATUS_TX3_EMPTY;
 tx_empty = status
 	 OMAP2_MCSPI_IRQSTATUS_TX3_EMPTY;
 rx_full = status
@@ -419,15 +408,14 @@ omap2_spi_intr(void *v)
 break;
 		}
 
-		if (chan-wchunk != NULL) {
-			if (tx_empty) {
+		if (tx_empty) {
+			if (chan-wchunk != NULL) {
 omap2_spi_send(sc, i);
-if (chan-wchunk == NULL)
-	omap2_spi_recv(sc, i);
 			}
 		}
-		else if (rx_full) {
+		if (rx_full) {
 			omap2_spi_recv(sc, i);
+			omap2_spi_send(sc, i);
 		}
 
 		if (chan-wchunk == NULL  chan-rchunk == NULL)
@@ -437,15 +425,14 @@ omap2_spi_intr(void *v)
 			KASSERT(st != NULL);
 			spi_done(st, 0);
 
+			/* stop the current transfer */
 			omap2_spi_stop(sc, i);
-			omap2_spi_start(sc, i);
 
+			/* start a new transfer if any was queued */
+			omap2_spi_start(sc, i);
 		}
 	}
 
-	/* acknowledge the interrupt */
-	SPI_WRITE_REG(sc, OMAP2_MCSPI_IRQSTATUS, u32);
-
 	return 1;
 }
 
@@ -493,22 +480,23 @@ omap2_spi_send(struct omap2_spi_softc * 
 	uint32_t u32;
 	uint32_t data;
 
-	if ((chunk = sc-sc_channels[channel].wchunk) == NULL)
+	while ((chunk 

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

2013-05-15 Thread Reinoud Zandijk
Module Name:src
Committed By:   reinoud
Date:   Wed May 15 12:16:41 UTC 2013

Modified Files:
src/sys/arch/evbarm/conf: RPI

Log Message:
Add missing filesystems in the filesystem list but comment them out.
Add missing KGDB options needed for KGDB working


To generate a diff of this commit:
cvs rdiff -u -r1.32 -r1.33 src/sys/arch/evbarm/conf/RPI

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



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

2013-05-15 Thread Reinoud Zandijk
Module Name:src
Committed By:   reinoud
Date:   Wed May 15 12:20:04 UTC 2013

Modified Files:
src/sys/arch/evbarm/conf: MARVELL_NAS

Log Message:
Add (arbitrary) USB serial port support.
XXX why aren't other classes of USB devices added?


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/sys/arch/evbarm/conf/MARVELL_NAS

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



CVS commit: src/sys/rump/librump/rumpkern

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 12:49:33 UTC 2013

Modified Files:
src/sys/rump/librump/rumpkern: ltsleep.c

Log Message:
qlock can now be a regular kernel spin mutex instead of a rumpuser mutex.


To generate a diff of this commit:
cvs rdiff -u -r1.31 -r1.32 src/sys/rump/librump/rumpkern/ltsleep.c

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



CVS commit: [khorben-n900] src/sys/dev/spi

2013-05-15 Thread Pierre Pronchery
Module Name:src
Committed By:   khorben
Date:   Wed May 15 13:52:19 UTC 2013

Modified Files:
src/sys/dev/spi [khorben-n900]: files.spi spi.c spivar.h

Log Message:
Let the bus speed of SPI devices be specified within the kernel
configuration.


To generate a diff of this commit:
cvs rdiff -u -r1.2.114.1 -r1.2.114.2 src/sys/dev/spi/files.spi
cvs rdiff -u -r1.8.6.1 -r1.8.6.2 src/sys/dev/spi/spi.c
cvs rdiff -u -r1.4.20.1 -r1.4.20.2 src/sys/dev/spi/spivar.h

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



CVS commit: src/sys/rump/librump/rumpkern

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 13:58:14 UTC 2013

Modified Files:
src/sys/rump/librump/rumpkern: ltsleep.c

Log Message:
how did that extra asterisk get there?


To generate a diff of this commit:
cvs rdiff -u -r1.32 -r1.33 src/sys/rump/librump/rumpkern/ltsleep.c

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



CVS commit: src

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 14:07:26 UTC 2013

Modified Files:
src/lib/librumpuser: rumpuser.3 rumpuser_pth.c
src/sys/rump/include/rump: rumpuser.h
src/sys/rump/librump/rumpkern: lwproc.c rump.c scheduler.c

Log Message:
Add RUMPUSER_LWP_CLEAR instead of overloading RUMPUSER_LWP_SET.
This simplifies some alternative hypervisor implementations.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/lib/librumpuser/rumpuser.3
cvs rdiff -u -r1.28 -r1.29 src/lib/librumpuser/rumpuser_pth.c
cvs rdiff -u -r1.103 -r1.104 src/sys/rump/include/rump/rumpuser.h
cvs rdiff -u -r1.22 -r1.23 src/sys/rump/librump/rumpkern/lwproc.c
cvs rdiff -u -r1.268 -r1.269 src/sys/rump/librump/rumpkern/rump.c
cvs rdiff -u -r1.33 -r1.34 src/sys/rump/librump/rumpkern/scheduler.c

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



CVS commit: src

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 14:52:49 UTC 2013

Modified Files:
src/lib/librumpuser: rumpuser.3 rumpuser.c rumpuser_pth.c
rumpuser_pth_dummy.c
src/sys/rump/include/rump: rumpuser.h
src/sys/rump/librump/rumpkern: locks.c

Log Message:
Pass enums over the hypercall interface as ints to avoid some
pathological scenarios from arising in setups where enums might be
of a different size in the rump kernel and hypervisor.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/lib/librumpuser/rumpuser.3
cvs rdiff -u -r1.50 -r1.51 src/lib/librumpuser/rumpuser.c
cvs rdiff -u -r1.29 -r1.30 src/lib/librumpuser/rumpuser_pth.c
cvs rdiff -u -r1.15 -r1.16 src/lib/librumpuser/rumpuser_pth_dummy.c
cvs rdiff -u -r1.104 -r1.105 src/sys/rump/include/rump/rumpuser.h
cvs rdiff -u -r1.63 -r1.64 src/sys/rump/librump/rumpkern/locks.c

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



CVS commit: src

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 14:58:24 UTC 2013

Modified Files:
src/lib/librumpuser: rumpuser.3 rumpuser.c rumpuser_bio.c
src/sys/rump/include/rump: rumpuser.h

Log Message:
Pass off_t over the hypercall interface as int64_t to avoid potential
problems in setups where off_t doesn't want to be 64bit.

I'm already excitedly waiting for 128bit off_t and _LARGE_LARGE_FILES


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/lib/librumpuser/rumpuser.3
cvs rdiff -u -r1.51 -r1.52 src/lib/librumpuser/rumpuser.c
cvs rdiff -u -r1.6 -r1.7 src/lib/librumpuser/rumpuser_bio.c
cvs rdiff -u -r1.105 -r1.106 src/sys/rump/include/rump/rumpuser.h

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



CVS commit: src

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 15:57:01 UTC 2013

Modified Files:
src/lib/librumpuser: rumpuser.3 rumpuser.c
src/sys/rump/include/rump: rumpuser.h

Log Message:
Add a generalized rumpuser_syncfd() call which allows the caller
to request a sync or a barrier for fd.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/lib/librumpuser/rumpuser.3
cvs rdiff -u -r1.52 -r1.53 src/lib/librumpuser/rumpuser.c
cvs rdiff -u -r1.106 -r1.107 src/sys/rump/include/rump/rumpuser.h

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



CVS commit: src/sys/rump/include/rump

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 16:00:04 UTC 2013

Modified Files:
src/sys/rump/include/rump: rumpuser.h

Log Message:
Looks like I'm done revamping, so bump interface version to 17,
where it will hopefully stay for all eternity (unless some snafus
are discovered before NetBSD 7).


To generate a diff of this commit:
cvs rdiff -u -r1.107 -r1.108 src/sys/rump/include/rump/rumpuser.h

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



CVS commit: src/sys/fs/sysvbfs

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 16:44:03 UTC 2013

Modified Files:
src/sys/fs/sysvbfs: sysvbfs_vnops.c

Log Message:
Don't change a read-only file system.


To generate a diff of this commit:
cvs rdiff -u -r1.47 -r1.48 src/sys/fs/sysvbfs/sysvbfs_vnops.c

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



CVS commit: src/lib/librumpuser

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 17:53:09 UTC 2013

Modified Files:
src/lib/librumpuser: rumpuser.3

Log Message:
Improve documentation on the locking order of cv_wait mtx/cpu.


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/lib/librumpuser/rumpuser.3

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



CVS commit: src/sys/rump

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 19:30:46 UTC 2013

Modified Files:
src/sys/rump: VERSION

Log Message:
bump version for rumpuser changes


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/rump/VERSION

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



CVS commit: src/lib

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 20:27:00 UTC 2013

Modified Files:
src/lib/librumpclient: Makefile
src/lib/librumpuser: Makefile

Log Message:
Make it possible for external parties to specify additional dplibs.
This is useful for example on platforms which require -ldl.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/lib/librumpclient/Makefile
cvs rdiff -u -r1.12 -r1.13 src/lib/librumpuser/Makefile

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



CVS commit: src/lib/librumpuser

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 20:47:20 UTC 2013

Modified Files:
src/lib/librumpuser: Makefile

Log Message:
also, bsd.own.mk to pick up mk.conf


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/lib/librumpuser/Makefile

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



CVS commit: src/sys/rump/kern/lib

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 21:39:30 UTC 2013

Modified Files:
src/sys/rump/kern/lib/libsys_cygwin: syscalls.master
src/sys/rump/kern/lib/libsys_sunos: syscalls.master

Log Message:
Support utimes/futimes.  Makes at least fsu_touch work on these platforms.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/rump/kern/lib/libsys_cygwin/syscalls.master
cvs rdiff -u -r1.1 -r1.2 src/sys/rump/kern/lib/libsys_sunos/syscalls.master

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



CVS commit: src/sys/rump/kern/lib

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 21:41:25 UTC 2013

Modified Files:
src/sys/rump/kern/lib/libsys_cygwin: rump_cygwin_syscall.h
rump_cygwin_syscallargs.h rump_cygwin_syscalls.c
rump_cygwin_sysent.c
src/sys/rump/kern/lib/libsys_sunos: rump_sunos_syscall.h
rump_sunos_syscallargs.h rump_sunos_syscalls.c rump_sunos_sysent.c

Log Message:
regen


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 \
src/sys/rump/kern/lib/libsys_cygwin/rump_cygwin_syscall.h \
src/sys/rump/kern/lib/libsys_cygwin/rump_cygwin_syscallargs.h \
src/sys/rump/kern/lib/libsys_cygwin/rump_cygwin_syscalls.c \
src/sys/rump/kern/lib/libsys_cygwin/rump_cygwin_sysent.c
cvs rdiff -u -r1.1 -r1.2 \
src/sys/rump/kern/lib/libsys_sunos/rump_sunos_syscall.h \
src/sys/rump/kern/lib/libsys_sunos/rump_sunos_syscallargs.h \
src/sys/rump/kern/lib/libsys_sunos/rump_sunos_syscalls.c \
src/sys/rump/kern/lib/libsys_sunos/rump_sunos_sysent.c

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



CVS commit: src/sys/rump

2013-05-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed May 15 21:53:27 UTC 2013

Modified Files:
src/sys/rump: VERSION

Log Message:
one more bump for the recent changes


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/sys/rump/VERSION

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



CVS commit: src/lib/librumpuser

2013-05-15 Thread Thomas Klausner
Module Name:src
Committed By:   wiz
Date:   Wed May 15 22:09:32 UTC 2013

Modified Files:
src/lib/librumpuser: rumpuser.3

Log Message:
More markup, less typos.


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/lib/librumpuser/rumpuser.3

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



CVS commit: [khorben-n900] src/sys/arch/arm/omap

2013-05-15 Thread Pierre Pronchery
Module Name:src
Committed By:   khorben
Date:   Wed May 15 23:27:49 UTC 2013

Modified Files:
src/sys/arch/arm/omap [khorben-n900]: omap2_spi.c

Log Message:
Seems to be much closer to working correctly. Apparently one has to read
back anything transmitted, as well as transmit 0's to be able to read
anything. This would explain the whole juggling with chunks, counts and
pointers.


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.4 -r1.1.2.5 src/sys/arch/arm/omap/omap2_spi.c

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