Module Name: src
Committed By: rmind
Date: Sun Jun 28 14:22:11 UTC 2009
Modified Files:
src/sys/kern: sys_pipe.c
Log Message:
- Convert some #ifdefs to KASSERT()s.
- KNF, style, no parameters in function declarations.
- No functional changes.
To generate a diff of this commit:
cvs rdiff -u -r1.112 -r1.113 src/sys/kern/sys_pipe.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/sys_pipe.c
diff -u src/sys/kern/sys_pipe.c:1.112 src/sys/kern/sys_pipe.c:1.113
--- src/sys/kern/sys_pipe.c:1.112 Sat Apr 11 23:05:26 2009
+++ src/sys/kern/sys_pipe.c Sun Jun 28 14:22:11 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: sys_pipe.c,v 1.112 2009/04/11 23:05:26 christos Exp $ */
+/* $NetBSD: sys_pipe.c,v 1.113 2009/06/28 14:22:11 rmind Exp $ */
/*-
* Copyright (c) 2003, 2007, 2008, 2009 The NetBSD Foundation, Inc.
@@ -68,7 +68,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sys_pipe.c,v 1.112 2009/04/11 23:05:26 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sys_pipe.c,v 1.113 2009/06/28 14:22:11 rmind Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -98,18 +98,13 @@
/* XXX Disabled for now; rare hangs switching between direct/buffered */
#define PIPE_NODIRECT
-/*
- * interfaces to the outside world
- */
-static int pipe_read(struct file *fp, off_t *offset, struct uio *uio,
- kauth_cred_t cred, int flags);
-static int pipe_write(struct file *fp, off_t *offset, struct uio *uio,
- kauth_cred_t cred, int flags);
-static int pipe_close(struct file *fp);
-static int pipe_poll(struct file *fp, int events);
-static int pipe_kqfilter(struct file *fp, struct knote *kn);
-static int pipe_stat(struct file *fp, struct stat *sb);
-static int pipe_ioctl(struct file *fp, u_long cmd, void *data);
+static int pipe_read(file_t *, off_t *, struct uio *, kauth_cred_t, int);
+static int pipe_write(file_t *, off_t *, struct uio *, kauth_cred_t, int);
+static int pipe_close(file_t *);
+static int pipe_poll(file_t *, int);
+static int pipe_kqfilter(file_t **, struct knote *);
+static int pipe_stat(file_t *, struct stat *);
+static int pipe_ioctl(file_t *, u_long, void *);
static const struct fileops pipeops = {
.fo_read = pipe_read,
@@ -129,56 +124,55 @@
* reference for performance reasons, so small amounts of outstanding I/O
* will not wipe the cache.
*/
-#define MINPIPESIZE (PIPE_SIZE/3)
-#define MAXPIPESIZE (2*PIPE_SIZE/3)
+#define MINPIPESIZE (PIPE_SIZE / 3)
+#define MAXPIPESIZE (2 * PIPE_SIZE / 3)
/*
* Maximum amount of kva for pipes -- this is kind-of a soft limit, but
* is there so that on large systems, we don't exhaust it.
*/
-#define MAXPIPEKVA (8*1024*1024)
-static u_int maxpipekva = MAXPIPEKVA;
+#define MAXPIPEKVA (8 * 1024 * 1024)
+static u_int maxpipekva = MAXPIPEKVA;
/*
* Limit for direct transfers, we cannot, of course limit
* the amount of kva for pipes in general though.
*/
-#define LIMITPIPEKVA (16*1024*1024)
-static u_int limitpipekva = LIMITPIPEKVA;
+#define LIMITPIPEKVA (16 * 1024 * 1024)
+static u_int limitpipekva = LIMITPIPEKVA;
/*
* Limit the number of "big" pipes
*/
-#define LIMITBIGPIPES 32
-static u_int maxbigpipes = LIMITBIGPIPES;
-static u_int nbigpipe = 0;
+#define LIMITBIGPIPES 32
+static u_int maxbigpipes = LIMITBIGPIPES;
+static u_int nbigpipe = 0;
/*
* Amount of KVA consumed by pipe buffers.
*/
-static u_int amountpipekva = 0;
+static u_int amountpipekva = 0;
-static void pipeclose(struct file *fp, struct pipe *pipe);
-static void pipe_free_kmem(struct pipe *pipe);
-static int pipe_create(struct pipe **pipep, pool_cache_t, kmutex_t *);
-static int pipelock(struct pipe *pipe, int catch);
-static inline void pipeunlock(struct pipe *pipe);
-static void pipeselwakeup(struct pipe *pipe, struct pipe *sigp, int code);
+static void pipeclose(file_t *, struct pipe *);
+static void pipe_free_kmem(struct pipe *);
+static int pipe_create(struct pipe **, pool_cache_t, kmutex_t *);
+static int pipelock(struct pipe *, int);
+static inline void pipeunlock(struct pipe *);
+static void pipeselwakeup(struct pipe *, struct pipe *, int);
#ifndef PIPE_NODIRECT
-static int pipe_direct_write(struct file *fp, struct pipe *wpipe,
- struct uio *uio);
+static int pipe_direct_write(file_t *, struct pipe *, struct uio *);
#endif
-static int pipespace(struct pipe *pipe, int size);
-static int pipe_ctor(void *, void *, int);
-static void pipe_dtor(void *, void *);
+static int pipespace(struct pipe *, int);
+static int pipe_ctor(void *, void *, int);
+static void pipe_dtor(void *, void *);
#ifndef PIPE_NODIRECT
-static int pipe_loan_alloc(struct pipe *, int);
-static void pipe_loan_free(struct pipe *);
+static int pipe_loan_alloc(struct pipe *, int);
+static void pipe_loan_free(struct pipe *);
#endif /* PIPE_NODIRECT */
-static pool_cache_t pipe_wr_cache;
-static pool_cache_t pipe_rd_cache;
+static pool_cache_t pipe_wr_cache;
+static pool_cache_t pipe_rd_cache;
void
pipe_init(void)
@@ -244,13 +238,11 @@
/*
* The pipe system call for the DTYPE_PIPE type of pipes
*/
-
-/* ARGSUSED */
int
sys_pipe(struct lwp *l, const void *v, register_t *retval)
{
- struct file *rf, *wf;
struct pipe *rpipe, *wpipe;
+ file_t *rf, *wf;
kmutex_t *mutex;
int fd, error;
proc_t *p;
@@ -445,9 +437,8 @@
fownsignal(sigp->pipe_pgid, SIGIO, code, band, selp);
}
-/* ARGSUSED */
static int
-pipe_read(struct file *fp, off_t *offset, struct uio *uio, kauth_cred_t cred,
+pipe_read(file_t *fp, off_t *offset, struct uio *uio, kauth_cred_t cred,
int flags)
{
struct pipe *rpipe = (struct pipe *) fp->f_data;
@@ -469,7 +460,7 @@
while (uio->uio_resid) {
/*
- * normal pipe buffer receive
+ * Normal pipe buffer receive.
*/
if (bp->cnt > 0) {
size = bp->size - bp->out;
@@ -508,7 +499,7 @@
/*
* Direct copy, bypassing a kernel buffer.
*/
- void * va;
+ void *va;
KASSERT(rpipe->pipe_state & PIPE_DIRECTW);
@@ -539,14 +530,14 @@
break;
/*
- * detect EOF condition
- * read returns 0 on EOF, no need to set error
+ * Detect EOF condition.
+ * Read returns 0 on EOF, no need to set error.
*/
if (rpipe->pipe_state & PIPE_EOF)
break;
/*
- * don't block on non-blocking I/O
+ * Don't block on non-blocking I/O.
*/
if (fp->f_flag & FNONBLOCK) {
error = EAGAIN;
@@ -663,7 +654,7 @@
* Called with the long-term pipe lock held.
*/
static int
-pipe_direct_write(struct file *fp, struct pipe *wpipe, struct uio *uio)
+pipe_direct_write(file_t *fp, struct pipe *wpipe, struct uio *uio)
{
int error, npages, j;
struct vm_page **pgs;
@@ -810,7 +801,7 @@
#endif /* !PIPE_NODIRECT */
static int
-pipe_write(struct file *fp, off_t *offset, struct uio *uio, kauth_cred_t cred,
+pipe_write(file_t *fp, off_t *offset, struct uio *uio, kauth_cred_t cred,
int flags)
{
struct pipe *wpipe, *rpipe;
@@ -953,11 +944,7 @@
* support atomic writes. Wraparound
* happened.
*/
-#ifdef DEBUG
- if (bp->in + segsize != bp->size)
- panic("Expected pipe buffer wraparound disappeared");
-#endif
-
+ KASSERT(bp->in + segsize == bp->size);
error = uiomove(bp->buffer,
size - segsize, uio);
}
@@ -967,18 +954,12 @@
bp->in += size;
if (bp->in >= bp->size) {
-#ifdef DEBUG
- if (bp->in != size - segsize + bp->size)
- panic("Expected wraparound bad");
-#endif
+ KASSERT(bp->in == size - segsize + bp->size);
bp->in = size - segsize;
}
bp->cnt += size;
-#ifdef DEBUG
- if (bp->cnt > bp->size)
- panic("Pipe buffer overflow");
-#endif
+ KASSERT(bp->cnt <= bp->size);
} else {
/*
* If the "read-side" has been blocked, wake it up now.
@@ -986,7 +967,7 @@
cv_broadcast(&wpipe->pipe_rcv);
/*
- * don't block on non-blocking I/O
+ * Don't block on non-blocking I/O.
*/
if (fp->f_flag & FNONBLOCK) {
error = EAGAIN;
@@ -1052,10 +1033,10 @@
}
/*
- * we implement a very minimal set of ioctls for compatibility with sockets.
+ * We implement a very minimal set of ioctls for compatibility with sockets.
*/
int
-pipe_ioctl(struct file *fp, u_long cmd, void *data)
+pipe_ioctl(file_t *fp, u_long cmd, void *data)
{
struct pipe *pipe = fp->f_data;
kmutex_t *lock = pipe->pipe_lock;
@@ -1131,7 +1112,7 @@
}
int
-pipe_poll(struct file *fp, int events)
+pipe_poll(file_t *fp, int events)
{
struct pipe *rpipe = fp->f_data;
struct pipe *wpipe;
@@ -1181,7 +1162,7 @@
}
static int
-pipe_stat(struct file *fp, struct stat *ub)
+pipe_stat(file_t *fp, struct stat *ub)
{
struct pipe *pipe = fp->f_data;
@@ -1207,9 +1188,8 @@
return 0;
}
-/* ARGSUSED */
static int
-pipe_close(struct file *fp)
+pipe_close(file_t *fp)
{
struct pipe *pipe = fp->f_data;
@@ -1247,10 +1227,10 @@
}
/*
- * shutdown the pipe
+ * Shutdown the pipe.
*/
static void
-pipeclose(struct file *fp, struct pipe *pipe)
+pipeclose(file_t *fp, struct pipe *pipe)
{
kmutex_t *lock;
struct pipe *ppipe;
@@ -1280,7 +1260,7 @@
}
/*
- * Disconnect from peer
+ * Disconnect from peer.
*/
if ((ppipe = pipe->pipe_peer) != NULL) {
pipeselwakeup(ppipe, ppipe, POLL_HUP);
@@ -1300,7 +1280,7 @@
mutex_exit(lock);
/*
- * free resources
+ * Free resources.
*/
pipe->pipe_pgid = 0;
pipe->pipe_state = PIPE_SIGNALR;
@@ -1326,10 +1306,10 @@
switch(kn->kn_filter) {
case EVFILT_WRITE:
- /* need the peer structure, not our own */
+ /* Need the peer structure, not our own. */
pipe = pipe->pipe_peer;
- /* if reader end already closed, just return */
+ /* If reader end already closed, just return. */
if (pipe == NULL) {
mutex_exit(lock);
return;
@@ -1337,20 +1317,15 @@
break;
default:
- /* nothing to do */
+ /* Nothing to do. */
break;
}
-#ifdef DIAGNOSTIC
- if (kn->kn_hook != pipe)
- panic("filt_pipedetach: inconsistent knote");
-#endif
-
+ KASSERT(kn->kn_hook == pipe);
SLIST_REMOVE(&pipe->pipe_sel.sel_klist, kn, knote, kn_selnext);
mutex_exit(lock);
}
-/*ARGSUSED*/
static int
filt_piperead(struct knote *kn, long hint)
{
@@ -1381,7 +1356,6 @@
return (kn->kn_data > 0);
}
-/*ARGSUSED*/
static int
filt_pipewrite(struct knote *kn, long hint)
{
@@ -1416,9 +1390,8 @@
static const struct filterops pipe_wfiltops =
{ 1, NULL, filt_pipedetach, filt_pipewrite };
-/*ARGSUSED*/
static int
-pipe_kqfilter(struct file *fp, struct knote *kn)
+pipe_kqfilter(file_t *fp, struct knote *kn)
{
struct pipe *pipe;
kmutex_t *lock;
@@ -1436,7 +1409,7 @@
kn->kn_fop = &pipe_wfiltops;
pipe = pipe->pipe_peer;
if (pipe == NULL) {
- /* other end of pipe has been closed */
+ /* Other end of pipe has been closed. */
mutex_exit(lock);
return (EBADF);
}