CVS commit: src/lib/libc/db/mpool

2013-12-14 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Sat Dec 14 18:04:00 UTC 2013

Modified Files:
src/lib/libc/db/mpool: mpool.c

Log Message:
knf, reduce pointer gymnastics


To generate a diff of this commit:
cvs rdiff -u -r1.20 -r1.21 src/lib/libc/db/mpool/mpool.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/libc/db/mpool/mpool.c
diff -u src/lib/libc/db/mpool/mpool.c:1.20 src/lib/libc/db/mpool/mpool.c:1.21
--- src/lib/libc/db/mpool/mpool.c:1.20	Fri Nov 22 11:25:51 2013
+++ src/lib/libc/db/mpool/mpool.c	Sat Dec 14 13:04:00 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: mpool.c,v 1.20 2013/11/22 16:25:51 christos Exp $	*/
+/*	$NetBSD: mpool.c,v 1.21 2013/12/14 18:04:00 christos Exp $	*/
 
 /*-
  * Copyright (c) 1990, 1993, 1994
@@ -34,7 +34,7 @@
 #endif
 
 #include sys/cdefs.h
-__RCSID($NetBSD: mpool.c,v 1.20 2013/11/22 16:25:51 christos Exp $);
+__RCSID($NetBSD: mpool.c,v 1.21 2013/12/14 18:04:00 christos Exp $);
 
 #include namespace.h
 #include sys/queue.h
@@ -84,14 +84,14 @@ mpool_open(void *key, int fd, pgno_t pag
 	 * We don't currently handle pipes, although we should.
 	 */
 	if (fstat(fd, sb))
-		return (NULL);
+		return NULL;
 	if (!S_ISREG(sb.st_mode)) {
 		errno = ESPIPE;
-		return (NULL);
+		return NULL;
 	}
 
 	/* Allocate and initialize the MPOOL cookie. */
-	if ((mp = (MPOOL *)calloc(1, sizeof(MPOOL))) == NULL)
+	if ((mp = calloc(1, sizeof(*mp))) == NULL)
 		return (NULL);
 	TAILQ_INIT(mp-lqh);
 	for (entry = 0; entry  HASHSIZE; ++entry)
@@ -100,7 +100,7 @@ mpool_open(void *key, int fd, pgno_t pag
 	mp-npages = (pgno_t)(sb.st_size / pagesize);
 	mp-pagesize = pagesize;
 	mp-fd = fd;
-	return (mp);
+	return mp;
 }
 
 /*
@@ -139,14 +139,14 @@ mpool_new( MPOOL *mp, pgno_t *pgnoaddr)
 	 * and return.
 	 */
 	if ((bp = mpool_bkt(mp)) == NULL)
-		return (NULL);
+		return NULL;
 	*pgnoaddr = bp-pgno = mp-npages++;
 	bp-flags = MPOOL_PINNED;
 
 	head = mp-hqh[HASHKEY(bp-pgno)];
 	TAILQ_INSERT_HEAD(head, bp, hq);
 	TAILQ_INSERT_TAIL(mp-lqh, bp, q);
-	return (bp-page);
+	return bp-page;
 }
 
 /*
@@ -165,7 +165,7 @@ mpool_get(MPOOL *mp, pgno_t pgno, u_int 
 	/* Check for attempt to retrieve a non-existent page. */
 	if (pgno = mp-npages) {
 		errno = EINVAL;
-		return (NULL);
+		return NULL;
 	}
 
 #ifdef STATISTICS
@@ -193,12 +193,12 @@ mpool_get(MPOOL *mp, pgno_t pgno, u_int 
 
 		/* Return a pinned page. */
 		bp-flags |= MPOOL_PINNED;
-		return (bp-page);
+		return bp-page;
 	}
 
 	/* Get a page from the cache. */
 	if ((bp = mpool_bkt(mp)) == NULL)
-		return (NULL);
+		return NULL;
 
 	/* Read in the contents. */
 #ifdef STATISTICS
@@ -208,7 +208,7 @@ mpool_get(MPOOL *mp, pgno_t pgno, u_int 
 	if ((nr = pread(mp-fd, bp-page, (size_t)mp-pagesize, off)) != (int)mp-pagesize) {
 		if (nr = 0)
 			errno = EFTYPE;
-		return (NULL);
+		return NULL;
 	}
 
 	/* Set the page number, pin the page. */
@@ -227,7 +227,7 @@ mpool_get(MPOOL *mp, pgno_t pgno, u_int 
 	if (mp-pgin != NULL)
 		(mp-pgin)(mp-pgcookie, bp-pgno, bp-page);
 
-	return (bp-page);
+	return bp-page;
 }
 
 /*
@@ -243,7 +243,7 @@ mpool_put(MPOOL *mp, void *page, u_int f
 #ifdef STATISTICS
 	++mp-pageput;
 #endif
-	bp = (BKT *)(void *)((char *)page - sizeof(BKT));
+	bp = (void *)((intptr_t)page - sizeof(BKT));
 #ifdef DEBUG
 	if (!(bp-flags  MPOOL_PINNED)) {
 		(void)fprintf(stderr,
@@ -274,7 +274,7 @@ mpool_close(MPOOL *mp)
 
 	/* Free the MPOOL cookie. */
 	free(mp);
-	return (RET_SUCCESS);
+	return RET_SUCCESS;
 }
 
 /*
@@ -290,10 +290,10 @@ mpool_sync(MPOOL *mp)
 	TAILQ_FOREACH(bp, mp-lqh, q)
 		if (bp-flags  MPOOL_DIRTY 
 		mpool_write(mp, bp) == RET_ERROR)
-			return (RET_ERROR);
+			return RET_ERROR;
 
 	/* Sync the file descriptor. */
-	return (fsync(mp-fd) ? RET_ERROR : RET_SUCCESS);
+	return fsync(mp-fd) ? RET_ERROR : RET_SUCCESS;
 }
 
 /*
@@ -321,7 +321,7 @@ mpool_bkt(MPOOL *mp)
 			/* Flush if dirty. */
 			if (bp-flags  MPOOL_DIRTY 
 			mpool_write(mp, bp) == RET_ERROR)
-return (NULL);
+return NULL;
 #ifdef STATISTICS
 			++mp-pageflush;
 #endif
@@ -337,20 +337,20 @@ mpool_bkt(MPOOL *mp)
 bp-page = spage;
 			}
 #endif
-			return (bp);
+			return bp;
 		}
 
 new:	if ((bp = calloc(1, (size_t)(sizeof(BKT) + mp-pagesize))) == NULL)
-		return (NULL);
+		return NULL;
 #ifdef STATISTICS
 	++mp-pagealloc;
 #endif
 #if defined(DEBUG) || defined(PURIFY)
 	(void)memset(bp, 0xff, (size_t)(sizeof(BKT) + mp-pagesize));
 #endif
-	bp-page = (char *)(void *)bp + sizeof(BKT);
+	bp-page = (void *)((intptr_t)bp + sizeof(BKT));
 	++mp-curcache;
-	return (bp);
+	return bp;
 }
 
 /*
@@ -371,8 +371,9 @@ mpool_write(MPOOL *mp, BKT *bp)
 		(mp-pgout)(mp-pgcookie, bp-pgno, bp-page);
 
 	off = mp-pagesize * bp-pgno;
-	if (pwrite(mp-fd, bp-page, (size_t)mp-pagesize, off) != (int)mp-pagesize)
-		return (RET_ERROR);
+	if (pwrite(mp-fd, bp-page, (size_t)mp-pagesize, off) !=
+	(ssize_t)mp-pagesize)
+		return RET_ERROR;
 
 	/*
 	 * 

CVS commit: src/lib/libc/db/mpool

2013-11-22 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Fri Nov 22 16:25:51 UTC 2013

Modified Files:
src/lib/libc/db/mpool: mpool.c

Log Message:
switch from circleq to tailq, from FreeBSD


To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.20 src/lib/libc/db/mpool/mpool.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/libc/db/mpool/mpool.c
diff -u src/lib/libc/db/mpool/mpool.c:1.19 src/lib/libc/db/mpool/mpool.c:1.20
--- src/lib/libc/db/mpool/mpool.c:1.19	Wed Apr 22 14:44:06 2009
+++ src/lib/libc/db/mpool/mpool.c	Fri Nov 22 11:25:51 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: mpool.c,v 1.19 2009/04/22 18:44:06 christos Exp $	*/
+/*	$NetBSD: mpool.c,v 1.20 2013/11/22 16:25:51 christos Exp $	*/
 
 /*-
  * Copyright (c) 1990, 1993, 1994
@@ -34,7 +34,7 @@
 #endif
 
 #include sys/cdefs.h
-__RCSID($NetBSD: mpool.c,v 1.19 2009/04/22 18:44:06 christos Exp $);
+__RCSID($NetBSD: mpool.c,v 1.20 2013/11/22 16:25:51 christos Exp $);
 
 #include namespace.h
 #include sys/queue.h
@@ -93,9 +93,9 @@ mpool_open(void *key, int fd, pgno_t pag
 	/* Allocate and initialize the MPOOL cookie. */
 	if ((mp = (MPOOL *)calloc(1, sizeof(MPOOL))) == NULL)
 		return (NULL);
-	CIRCLEQ_INIT(mp-lqh);
+	TAILQ_INIT(mp-lqh);
 	for (entry = 0; entry  HASHSIZE; ++entry)
-		CIRCLEQ_INIT(mp-hqh[entry]);
+		TAILQ_INIT(mp-hqh[entry]);
 	mp-maxcache = maxcache;
 	mp-npages = (pgno_t)(sb.st_size / pagesize);
 	mp-pagesize = pagesize;
@@ -144,8 +144,8 @@ mpool_new( MPOOL *mp, pgno_t *pgnoaddr)
 	bp-flags = MPOOL_PINNED;
 
 	head = mp-hqh[HASHKEY(bp-pgno)];
-	CIRCLEQ_INSERT_HEAD(head, bp, hq);
-	CIRCLEQ_INSERT_TAIL(mp-lqh, bp, q);
+	TAILQ_INSERT_HEAD(head, bp, hq);
+	TAILQ_INSERT_TAIL(mp-lqh, bp, q);
 	return (bp-page);
 }
 
@@ -186,10 +186,10 @@ mpool_get(MPOOL *mp, pgno_t pgno, u_int 
 		 * of the lru chain.
 		 */
 		head = mp-hqh[HASHKEY(bp-pgno)];
-		CIRCLEQ_REMOVE(head, bp, hq);
-		CIRCLEQ_INSERT_HEAD(head, bp, hq);
-		CIRCLEQ_REMOVE(mp-lqh, bp, q);
-		CIRCLEQ_INSERT_TAIL(mp-lqh, bp, q);
+		TAILQ_REMOVE(head, bp, hq);
+		TAILQ_INSERT_HEAD(head, bp, hq);
+		TAILQ_REMOVE(mp-lqh, bp, q);
+		TAILQ_INSERT_TAIL(mp-lqh, bp, q);
 
 		/* Return a pinned page. */
 		bp-flags |= MPOOL_PINNED;
@@ -220,8 +220,8 @@ mpool_get(MPOOL *mp, pgno_t pgno, u_int 
 	 * of the lru chain.
 	 */
 	head = mp-hqh[HASHKEY(bp-pgno)];
-	CIRCLEQ_INSERT_HEAD(head, bp, hq);
-	CIRCLEQ_INSERT_TAIL(mp-lqh, bp, q);
+	TAILQ_INSERT_HEAD(head, bp, hq);
+	TAILQ_INSERT_TAIL(mp-lqh, bp, q);
 
 	/* Run through the user's filter. */
 	if (mp-pgin != NULL)
@@ -266,8 +266,9 @@ mpool_close(MPOOL *mp)
 	BKT *bp;
 
 	/* Free up any space allocated to the lru pages. */
-	while ((bp = mp-lqh.cqh_first) != (void *)mp-lqh) {
-		CIRCLEQ_REMOVE(mp-lqh, mp-lqh.cqh_first, q);
+	while (!TAILQ_EMPTY(mp-lqh)) {
+		bp = TAILQ_FIRST(mp-lqh);
+		TAILQ_REMOVE(mp-lqh, bp, q);
 		free(bp);
 	}
 
@@ -286,8 +287,7 @@ mpool_sync(MPOOL *mp)
 	BKT *bp;
 
 	/* Walk the lru chain, flushing any dirty pages to disk. */
-	for (bp = mp-lqh.cqh_first;
-	bp != (void *)mp-lqh; bp = bp-q.cqe_next)
+	TAILQ_FOREACH(bp, mp-lqh, q)
 		if (bp-flags  MPOOL_DIRTY 
 		mpool_write(mp, bp) == RET_ERROR)
 			return (RET_ERROR);
@@ -316,8 +316,7 @@ mpool_bkt(MPOOL *mp)
 	 * off any lists.  If we don't find anything we grow the cache anyway.
 	 * The cache never shrinks.
 	 */
-	for (bp = mp-lqh.cqh_first;
-	bp != (void *)mp-lqh; bp = bp-q.cqe_next)
+	TAILQ_FOREACH(bp, mp-lqh, q)
 		if (!(bp-flags  MPOOL_PINNED)) {
 			/* Flush if dirty. */
 			if (bp-flags  MPOOL_DIRTY 
@@ -328,8 +327,8 @@ mpool_bkt(MPOOL *mp)
 #endif
 			/* Remove from the hash and lru queues. */
 			head = mp-hqh[HASHKEY(bp-pgno)];
-			CIRCLEQ_REMOVE(head, bp, hq);
-			CIRCLEQ_REMOVE(mp-lqh, bp, q);
+			TAILQ_REMOVE(head, bp, hq);
+			TAILQ_REMOVE(mp-lqh, bp, q);
 #ifdef DEBUG
 			{
 void *spage = bp-page;
@@ -399,7 +398,7 @@ mpool_look(MPOOL *mp, pgno_t pgno)
 	BKT *bp;
 
 	head = mp-hqh[HASHKEY(pgno)];
-	for (bp = head-cqh_first; bp != (void *)head; bp = bp-hq.cqe_next)
+	TAILQ_FOREACH(bp, head, hq)
 		if (bp-pgno == pgno) {
 #ifdef STATISTICS
 			++mp-cachehit;
@@ -443,8 +442,7 @@ mpool_stat(mp)
 
 	sep = ;
 	cnt = 0;
-	for (bp = mp-lqh.cqh_first;
-	bp != (void *)mp-lqh; bp = bp-q.cqe_next) {
+	TAILQ_FOREACH(bp, mp-lqh, q) {
 		(void)fprintf(stderr, %s%d, sep, bp-pgno);
 		if (bp-flags  MPOOL_DIRTY)
 			(void)fprintf(stderr, d);