Specifications
Comedi
55 / 148
Synopsis
#include <comedilib.h>
int comedi_mark_buffer_written(comedi_t * device, unsigned int subdevice, unsigned int num_bytes);
Description
The function comedi_mark_buffer_written() is used on a subdevice that has a Comedi output command in progress.
It should only be used if you are using a mmap() mapping to write data to Comedi’s buffer (as opposed to calling write() on
the device file), since Comedi will automatically keep track of how many bytes have been transferred via write() calls. This
function is used to indicate that the next num_bytes bytes in the buffer are valid and may be sent to the device.
Return value
The function comedi_mark_buffer_written() returns number of bytes successfully marked as written, or -1 on error.
The return value may be less than num_bytes if you attempt to mark more bytes written than the amount of free space currently
available in the output buffer, or if num_bytes must be rounded down to be an exact multiple of the subdevice’s sample size
(either sizeof(sampl_t) or sizeof(lsampl_t)).
5.4.2.14 comedi_poll
comedi_poll — force updating of streaming buffer
Synopsis
#include <comedilib.h>
int comedi_poll(comedi_t * device, unsigned int subdevice);
Description
The function comedi_poll() is used on a subdevice that has a Comedi command in progress in order to update the streaming
buffer. If supported by the driver, all available samples are copied to the streaming buffer. These samples may be pending in
DMA buffers or device FIFOs. If successful, the number of additional bytes available is returned. If there is an error, -1 is
returned.
5.4.2.15 comedi_set_buffer_size
comedi_set_buffer_size — streaming buffer size of subdevice
Synopsis
#include <comedilib.h>
int comedi_set_buffer_size(comedi_t * device, unsigned int subdevice, unsigned int size);
Description
The function comedi_set_buffer_size() changes the size of the streaming buffer for the subdevice specified by device
and subdevice. The buffer size will be set to size bytes, rounded up to a multiple of the virtual memory page size. The virtual
memory page size can be determined using sysconf(_SC_PAGE_SIZE).
This function does not require special privileges. However, it is limited to a (adjustable) maximum buffer size, which can be
changed by a privileged user calling comedi_set_max_buffer_size(), or running the program comedi_config.