Application Program Interface

The (documented) set of function calls supported by a particular application, by which programmers can access the functionality available in the application.


Comedi uses permanently allocated kernel memory for streaming input and output to store data that has been measured by a device, but has not been read by an application. These buffers can be resized by the Comedilib functions comedi_set_buffer_size and comedi_set_max_buffer_size or the comedi_config utility.

buffer overflow

This is an error message that indicates that the driver ran out of space in a Comedi buffer to put samples. It means that the application is not copying data out of the buffer quickly enough. Often, this problem can be fixed by making the Comedi buffer larger. See comedi_set_buffer_size for more information.

Differential IO

Direct Memory Access

DMA is a method of transferring data between a device and the main memory of a computer. DMA operates differently on ISA and PCI cards. ISA DMA is handled by a controller on the motherboard and is limited to transfers to/from the lowest 16 MB of physical RAM and can only handle a single segment of memory at a time. These limitations make it almost useless. PCI (bus mastering) DMA is handled by a controller on the device, and can typically address 4 GB of RAM and handle many segments of memory simultaneously. DMA is usually not the only means to data transfer, and may or may not be the optimal transfer mechanism for a particular situation.

First In, First Out

Most devices have a limited amount of on-board space to store samples before they are transferred to the Comedi buffer. This allows the CPU or DMA controller to do other things, and then efficiently process a large number of samples simultaneously. It also increases the maximum interrupt latency that the system can handle without interruptions in data.

Comedi command

Comedi commands are the mechanism that applications configure subdevices for streaming input and output.


See Comedi command .

configuration option


Comedi instructions are the mechanism used by applications to do immediate input from channels, output to channels, and configuration of subdevices and channels.

instruction list

Instruction lists allow the application to perform multiple Comedi instructions in the same system call.


See Also option list .

option list

Option lists are used with the comedi_config utility to perform driver configuration.

See Also configuration option , option .


This is an error message that indicates that there was device-level problem, typically with trigger pulses occurring faster than the board can handle.


The term poll (and polling) is used for several different related concepts in Comedi. Comedi implements the poll system call for Comedi devices, which is similar to select, and returns information about file descriptors that can be read or written. Comedilib also has a function called comedi_poll, which causes the driver to copy all available data from the device to the Comedi buffer. In addition, some drivers may use a polling technique in place of interrupts.