Module Name:    src
Committed By:   pooka
Date:           Mon Nov 15 15:23:32 UTC 2010

Modified Files:
        src/lib/librumpuser: rumpuser.c rumpuser_int.h rumpuser_net.c

Log Message:
Make int *error and optional parameter (i.e. it can be NULL).
Sometimes the caller just doesn't care which errno close() might
throw.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/lib/librumpuser/rumpuser.c
cvs rdiff -u -r1.3 -r1.4 src/lib/librumpuser/rumpuser_int.h
cvs rdiff -u -r1.1 -r1.2 src/lib/librumpuser/rumpuser_net.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.c
diff -u src/lib/librumpuser/rumpuser.c:1.9 src/lib/librumpuser/rumpuser.c:1.10
--- src/lib/librumpuser/rumpuser.c:1.9	Wed Aug 11 10:25:59 2010
+++ src/lib/librumpuser/rumpuser.c	Mon Nov 15 15:23:32 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumpuser.c,v 1.9 2010/08/11 10:25:59 pooka Exp $	*/
+/*	$NetBSD: rumpuser.c,v 1.10 2010/11/15 15:23:32 pooka Exp $	*/
 
 /*
  * Copyright (c) 2007-2010 Antti Kantee.  All Rights Reserved.
@@ -27,7 +27,7 @@
 
 #include <sys/cdefs.h>
 #if !defined(lint)
-__RCSID("$NetBSD: rumpuser.c,v 1.9 2010/08/11 10:25:59 pooka Exp $");
+__RCSID("$NetBSD: rumpuser.c,v 1.10 2010/11/15 15:23:32 pooka Exp $");
 #endif /* !lint */
 
 /* thank the maker for this */
@@ -82,7 +82,7 @@
 	int needsdev = 0, rv = 0, ft;
 
 	if (stat(path, &sb) == -1) {
-		*error = errno;
+		seterror(errno);
 		return -1;
 	}
 
@@ -129,7 +129,7 @@
 
 		fd = open(path, O_RDONLY);
 		if (fd == -1) {
-			*error = errno;
+			seterror(errno);
 			rv = -1;
 			goto out;
 		}
@@ -142,7 +142,7 @@
 		}
 		fprintf(stderr, "error: device size query not implemented on "
 		    "this platform\n");
-		*error = EOPNOTSUPP;
+		sererror(EOPNOTSUPP);
 		rv = -1;
 		goto out;
 #else
@@ -152,13 +152,13 @@
 
 		fd = open(path, O_RDONLY);
 		if (fd == -1) {
-			*error = errno;
+			seterror(errno);
 			rv = -1;
 			goto out;
 		}
 
 		if (ioctl(fd, DIOCGDINFO, &lab) == -1) {
-			*error = errno;
+			seterror(errno);
 			rv = -1;
 			goto out;
 		}
@@ -191,7 +191,7 @@
 
 	KLOCK_WRAP(rv = nanosleep(&rqt, &rmt));
 	if (rv == -1)
-		*error = errno;
+		seterror(errno);
 
 	*sec = rmt.tv_sec;
 	*nsec = rmt.tv_nsec;
@@ -249,7 +249,7 @@
 	rv = mmap(prefaddr, size, prot,
 	    MAP_ANON | MAP_ALIGNED(alignbit), -1, 0);
 	if (rv == MAP_FAILED) {
-		*error = errno;
+		seterror(errno);
 		return NULL;
 	}
 	return rv;
@@ -287,11 +287,11 @@
 
 	rv = mmap(NULL, len, PROT_READ|PROT_WRITE, mmflags, fd, offset);
 	if (rv == MAP_FAILED) {
-		*error = errno;
+		seterror(errno);
 		return NULL;
 	}
 
-	*error = 0;
+	seterror(0);
 	return rv;
 }
 
@@ -337,7 +337,7 @@
 
 	KLOCK_WRAP(rv = read(fd, data, size));
 	if (rv == -1)
-		*error = errno;
+		seterror(errno);
 
 	return rv;
 }
@@ -349,7 +349,7 @@
 
 	KLOCK_WRAP(rv = pread(fd, data, size, offset));
 	if (rv == -1)
-		*error = errno;
+		seterror(errno);
 
 	return rv;
 }
@@ -377,7 +377,7 @@
 
 	KLOCK_WRAP(rv = write(fd, data, size));
 	if (rv == -1)
-		*error = errno;
+		seterror(errno);
 
 	return rv;
 }
@@ -389,7 +389,7 @@
 
 	KLOCK_WRAP(rv = pwrite(fd, data, size, offset));
 	if (rv == -1)
-		*error = errno;
+		seterror(errno);
 
 	return rv;
 }
@@ -420,7 +420,7 @@
 
 	iovp = malloc(iovcnt * sizeof(struct iovec));
 	if (iovp == NULL) {
-		*error = ENOMEM;
+		seterror(ENOMEM);
 		return -1;
 	}
 	for (i = 0; i < iovcnt; i++) {
@@ -431,7 +431,7 @@
 
 	KLOCK_WRAP(rv = readv(fd, iovp, iovcnt));
 	if (rv == -1)
-		*error = errno;
+		seterror(errno);
 	free(iovp);
 
 	return rv;
@@ -447,7 +447,7 @@
 
 	iovp = malloc(iovcnt * sizeof(struct iovec));
 	if (iovp == NULL) {
-		*error = ENOMEM;
+		seterror(ENOMEM);
 		return -1;
 	}
 	for (i = 0; i < iovcnt; i++) {
@@ -458,7 +458,7 @@
 
 	KLOCK_WRAP(rv = writev(fd, iovp, iovcnt));
 	if (rv == -1)
-		*error = errno;
+		seterror(errno);
 	free(iovp);
 
 	return rv;
@@ -472,7 +472,7 @@
 
 	rv = gettimeofday(&tv, NULL);
 	if (rv == -1) {
-		*error = errno;
+		seterror(errno);
 		return rv;
 	}
 
@@ -535,7 +535,7 @@
 	if (kq == -1) {
 		kq = kqueue();
 		if (kq == -1) {
-			*error = errno;
+			seterror(errno);
 			return -1;
 		}
 	}
@@ -543,7 +543,7 @@
 	EV_SET(&kev, fd, EVFILT_VNODE, EV_ADD|EV_ENABLE|EV_CLEAR,
 	    NOTE_WRITE, 0, opaque);
 	if (kevent(kq, &kev, 1, NULL, 0, NULL) == -1) {
-		*error = errno;
+		seterror(errno);
 		return -1;
 	}
 
@@ -561,7 +561,7 @@
 	if (rv == -1) {
 		if (errno == EINTR)
 			goto again;
-		*error = errno;
+		seterror(errno);
 		return -1;
 	}
 
@@ -598,7 +598,7 @@
 	}
 #else
 	/* XXXfixme: signal numbers may not match on non-NetBSD */
-	*error = EOPNOTSUPP;
+	seterror(EOPNOTSUPP);
 	return -1;
 #endif
 }

Index: src/lib/librumpuser/rumpuser_int.h
diff -u src/lib/librumpuser/rumpuser_int.h:1.3 src/lib/librumpuser/rumpuser_int.h:1.4
--- src/lib/librumpuser/rumpuser_int.h:1.3	Tue May 18 14:58:41 2010
+++ src/lib/librumpuser/rumpuser_int.h	Mon Nov 15 15:23:32 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumpuser_int.h,v 1.3 2010/05/18 14:58:41 pooka Exp $	*/
+/*	$NetBSD: rumpuser_int.h,v 1.4 2010/11/15 15:23:32 pooka Exp $	*/
 
 /*
  * Copyright (c) 2008 Antti Kantee.  All Rights Reserved.
@@ -33,6 +33,8 @@
 extern kernel_unlockfn rumpuser__kunlock;
 extern int rumpuser__wantthreads;
 
+#define seterror(value) do { if (error) *error = value;} while (/*CONSTCOND*/0)
+
 #define KLOCK_WRAP(a)							\
 do {									\
 	int nlocks;							\
@@ -46,9 +48,9 @@
 	rvtype rv;							\
 	rv = call;							\
 	if (rv == -1)							\
-		*error = errno;						\
+		seterror(errno);					\
 	else								\
-		*error = 0;						\
+		seterror(0);						\
 	return rv;							\
 }
 
@@ -60,8 +62,8 @@
 	rv = call;							\
 	rumpuser__klock(nlocks, NULL);					\
 	if (rv == -1)							\
-		*error = errno;						\
+		seterror(errno);					\
 	else								\
-		*error = 0;						\
+		seterror(0);						\
 	return rv;							\
 }

Index: src/lib/librumpuser/rumpuser_net.c
diff -u src/lib/librumpuser/rumpuser_net.c:1.1 src/lib/librumpuser/rumpuser_net.c:1.2
--- src/lib/librumpuser/rumpuser_net.c:1.1	Fri Feb 26 18:54:20 2010
+++ src/lib/librumpuser/rumpuser_net.c	Mon Nov 15 15:23:32 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumpuser_net.c,v 1.1 2010/02/26 18:54:20 pooka Exp $	*/
+/*	$NetBSD: rumpuser_net.c,v 1.2 2010/11/15 15:23:32 pooka Exp $	*/
 
 /*
  * Copyright (c) 2008 Antti Kantee.  All Rights Reserved.
@@ -27,7 +27,7 @@
 
 #include <sys/cdefs.h>
 #if !defined(lint)
-__RCSID("$NetBSD: rumpuser_net.c,v 1.1 2010/02/26 18:54:20 pooka Exp $");
+__RCSID("$NetBSD: rumpuser_net.c,v 1.2 2010/11/15 15:23:32 pooka Exp $");
 #endif /* !lint */
 
 #include <sys/types.h>
@@ -102,9 +102,9 @@
 
 	*lenp = slen;
 	if (rv == -1)
-		*error = errno;
+		seterror(errno);
 	else
-		*error = 0;
+		seterror(0);
 
 	return rv;
 }
@@ -118,8 +118,8 @@
 
 	rv = setsockopt(s, level, name, data, slen);
 	if (rv == -1)
-		*error = errno;
+		seterror(errno);
 	else
-		*error = 0;
+		seterror(0);
 	return rv;
 }

Reply via email to