|
| struct iio_block * | iio_buffer_stream_create_block (struct iio_buffer_stream *buf_stream, size_t size) |
| | Create a data block for the given buffer stream.
|
| void | iio_block_destroy (struct iio_block *block) |
| | Destroy the given block.
|
| int | iio_block_get_dmabuf_fd (const struct iio_block *block) |
| | Get the file descriptor of the underlying DMABUF object.
|
| int | iio_block_disable_cpu_access (struct iio_block *block, bool disable) |
| | Disable CPU access of a given block.
|
| void * | iio_block_start (const struct iio_block *block) |
| | Get the start address of the block.
|
| void * | iio_block_first (const struct iio_block *block, const struct iio_channel *chn) |
| | Find the first sample of a channel in a block.
|
| void * | iio_block_end (const struct iio_block *block) |
| | Get the address after the last sample in a block.
|
| ssize_t | iio_block_foreach_sample (const struct iio_block *block, const struct iio_channels_mask *mask, ssize_t(*callback)(const struct iio_channel *chn, void *src, size_t bytes, void *d), void *data) |
| | Call the supplied callback for each sample found in a block.
|
| int | iio_block_enqueue (struct iio_block *block, size_t bytes_used, bool cyclic) |
| | Enqueue the given iio_block to the buffer's queue.
|
| int | iio_block_dequeue (struct iio_block *block, bool nonblock) |
| | Dequeue the given iio_block from the buffer's queue.
|
| struct iio_buffer_stream * | iio_block_get_buffer_stream (const struct iio_block *block) |
| | Retrieve a pointer to the iio_buffer_stream structure.
|
| int iio_block_disable_cpu_access |
( |
struct iio_block * | block, |
|
|
bool | disable ) |
Disable CPU access of a given block.
- Parameters
-
| block | A pointer to an iio_block structure |
| disable | Whether or not to disable CPU access |
- Returns
- On success, 0 is returned
-
On error, a negative error code is returned. -ENOSYS is returned if the backend does not implement CPU access control, -EINVAL if the block is not backed by an object for which it can be controlled.
NOTE:Disabling CPU access is useful when manipulating DMABUF objects. If CPU access is disabled, the block's internal buffer of samples should not be accessed. Therefore, the following functions should not be called: iio_block_start, iio_block_first, iio_block_end, iio_block_foreach_sample.
Find the first sample of a channel in a block.
- Parameters
-
- Returns
- On success, a pointer to the first sample found, or to the end of the block if no sample for the given channel is present in the block
-
On failure, a pointer-encoded error is returned; see iio_block_start
NOTE: This function, coupled with iio_block_end, can be used to iterate on all the samples of a given channel present in the block, doing the following:
for (void *ptr = iio_block_first(block, chn);
ptr < iio_block_end(block);
ptr += iio_device_get_sample_size(dev, mask)) {
....
}
The iio_channel passed as argument must be from the iio_device that was used to create the iio_buffer and then the iio_block, otherwise the result is undefined.