diff options
author | Ian Abbott | 2015-10-09 13:26:49 +0200 |
---|---|---|
committer | Greg Kroah-Hartman | 2015-10-13 19:28:40 +0200 |
commit | 432fbde739583140c7ee937910786a9d740804c9 (patch) | |
tree | 3486cf6f9785491067956b219ff1a33dc32344d4 /drivers/staging/comedi | |
parent | staging: comedi: rename comedi_buf_write_n_available (diff) | |
download | kernel-qcow2-linux-432fbde739583140c7ee937910786a9d740804c9.tar.gz kernel-qcow2-linux-432fbde739583140c7ee937910786a9d740804c9.tar.xz kernel-qcow2-linux-432fbde739583140c7ee937910786a9d740804c9.zip |
staging: comedi: add new comedi_buf_write_n_available()
Add a new function `comedi_buf_write_n_available()` to return the amount
of buffer space available for writing, including space already allocated
by `comedi_buf_write_alloc()` plus any unallocated space available.
This is currently just for internal use by the comedi core, so is not
exported.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/comedi')
-rw-r--r-- | drivers/staging/comedi/comedi_buf.c | 8 | ||||
-rw-r--r-- | drivers/staging/comedi/comedi_internal.h | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/drivers/staging/comedi/comedi_buf.c b/drivers/staging/comedi/comedi_buf.c index 4837559ac6b8..90c28016c6c1 100644 --- a/drivers/staging/comedi/comedi_buf.c +++ b/drivers/staging/comedi/comedi_buf.c @@ -253,6 +253,14 @@ static unsigned int comedi_buf_write_n_unalloc(struct comedi_subdevice *s) return free_end - async->buf_write_alloc_count; } +unsigned int comedi_buf_write_n_available(struct comedi_subdevice *s) +{ + struct comedi_async *async = s->async; + unsigned int free_end = async->buf_read_count + async->prealloc_bufsz; + + return free_end - async->buf_write_count; +} + /** * comedi_buf_write_alloc() - Reserve buffer space for writing * @s: COMEDI subdevice. diff --git a/drivers/staging/comedi/comedi_internal.h b/drivers/staging/comedi/comedi_internal.h index cd9437f72c35..3f2c88ae6470 100644 --- a/drivers/staging/comedi/comedi_internal.h +++ b/drivers/staging/comedi/comedi_internal.h @@ -31,6 +31,7 @@ void comedi_buf_map_get(struct comedi_buf_map *bm); int comedi_buf_map_put(struct comedi_buf_map *bm); struct comedi_buf_map *comedi_buf_map_from_subdev_get( struct comedi_subdevice *s); +unsigned int comedi_buf_write_n_available(struct comedi_subdevice *s); unsigned int comedi_buf_write_n_allocated(struct comedi_subdevice *s); void comedi_device_cancel_all(struct comedi_device *dev); bool comedi_can_auto_free_spriv(struct comedi_subdevice *s); |