linux/drivers/staging/iio/ring_sw.h
<<
>>
Prefs
   1/* The industrial I/O simple minimally locked ring buffer.
   2 *
   3 * Copyright (c) 2008 Jonathan Cameron
   4 *
   5 * This program is free software; you can redistribute it and/or modify it
   6 * under the terms of the GNU General Public License version 2 as published by
   7 * the Free Software Foundation.
   8 *
   9 * This code is deliberately kept separate from the main industrialio I/O core
  10 * as it is intended that in the future a number of different software ring
  11 * buffer implementations will exist with different characteristics to suit
  12 * different applications.
  13 *
  14 * This particular one was designed for a data capture application where it was
  15 * particularly important that no userspace reads would interrupt the capture
  16 * process. To this end the ring is not locked during a read.
  17 *
  18 * Comments on this buffer design welcomed. It's far from efficient and some of
  19 * my understanding of the effects of scheduling on this are somewhat limited.
  20 * Frankly, to my mind, this is the current weak point in the industrial I/O
  21 * patch set.
  22 */
  23
  24#ifndef _IIO_RING_SW_H_
  25#define _IIO_RING_SW_H_
  26#include "buffer_generic.h"
  27
  28/**
  29 * ring_sw_access_funcs - access functions for a software ring buffer
  30 **/
  31extern const struct iio_buffer_access_funcs ring_sw_access_funcs;
  32
  33struct iio_buffer *iio_sw_rb_allocate(struct iio_dev *indio_dev);
  34void iio_sw_rb_free(struct iio_buffer *ring);
  35#endif /* _IIO_RING_SW_H_ */
  36