sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget*/translations/zh_CN/driver-api/iio/buffersmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/zh_TW/driver-api/iio/buffersmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/it_IT/driver-api/iio/buffersmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/ja_JP/driver-api/iio/buffersmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/ko_KR/driver-api/iio/buffersmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/pt_BR/driver-api/iio/buffersmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/sp_SP/driver-api/iio/buffersmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(hBuffersh]hBuffers}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhD/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers.rsthKubh bullet_list)}(hhh](h list_item)}(h.struct iio_buffer — general buffer structureh]h paragraph)}(hhh]h.struct iio_buffer — general buffer structure}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(hZ:c:func:`iio_validate_scan_mask_onehot` — Validates that exactly one channel is selectedh]h)}(hZ:c:func:`iio_validate_scan_mask_onehot` — Validates that exactly one channel is selectedh](h)}(h':c:func:`iio_validate_scan_mask_onehot`h]hliteral)}(hhh]hiio_validate_scan_mask_onehot()}(hhhhhNhNubah}(h]h ](xrefcc-funceh"]h$]h&]uh1hhhubah}(h]h ]h"]h$]h&]refdocdriver-api/iio/buffers refdomainjreftypefunc refexplicitrefwarn reftargetiio_validate_scan_mask_onehotuh1hhhhKhhubh3 — Validates that exactly one channel is selected}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(h;:c:func:`iio_buffer_get` — Grab a reference to the bufferh]h)}(hj*h](h)}(h:c:func:`iio_buffer_get`h]h)}(hj1h]hiio_buffer_get()}(hj3hhhNhNubah}(h]h ](jjc-funceh"]h$]h&]uh1hhj/ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypefunc refexplicitrefwarnjiio_buffer_getuh1hhhhKhj,ubh# — Grab a reference to the buffer}(hj,hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj(ubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(hA:c:func:`iio_buffer_put` — Release the reference to the buffer h]h)}(h@:c:func:`iio_buffer_put` — Release the reference to the bufferh](h)}(h:c:func:`iio_buffer_put`h]h)}(hjhh]hiio_buffer_put()}(hjjhhhNhNubah}(h]h ](jjc-funceh"]h$]h&]uh1hhjfubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypefunc refexplicitrefwarnjiio_buffer_putuh1hhhhK hjbubh( — Release the reference to the buffer}(hjbhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hj^ubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubeh}(h]h ]h"]h$]h&]bullet*uh1hhhhKhhhhubh)}(hThe Industrial I/O core offers a way for continuous data capture based on a trigger source. Multiple data channels can be read at once from :file:`/dev/iio:device{X}` character device node, thus reducing the CPU load.h](hThe Industrial I/O core offers a way for continuous data capture based on a trigger source. Multiple data channels can be read at once from }(hjhhhNhNubh)}(h:file:`/dev/iio:device{X}`h](h/dev/iio:device}(hjhhhNhNubhemphasis)}(hXh]hX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]fileah"]h$]h&]rolefileuh1hhjubh3 character device node, thus reducing the CPU load.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hhh](h)}(hIIO buffer sysfs interfaceh]hIIO buffer sysfs interface}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hAn IIO buffer has an associated attributes directory under :file:`/sys/bus/iio/devices/iio:device{X}/buffer/*`. Here are some of the existing attributes:h](h;An IIO buffer has an associated attributes directory under }(hjhhhNhNubh)}(h3:file:`/sys/bus/iio/devices/iio:device{X}/buffer/*`h](h/sys/bus/iio/devices/iio:device}(hjhhhNhNubj)}(hjh]hX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh /buffer/*}(hjhhhNhNubeh}(h]h ]fileah"]h$]h&]rolefileuh1hhjubh+. Here are some of the existing attributes:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hhh](h)}(h]:file:`length`, the total number of data samples (capacity) that can be stored by the buffer.h]h)}(h]:file:`length`, the total number of data samples (capacity) that can be stored by the buffer.h](h)}(h:file:`length`h]hlength}(hj hhhNhNubah}(h]h ]fileah"]h$]h&]rolefileuh1hhjubhO, the total number of data samples (capacity) that can be stored by the buffer.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(h):file:`enable`, activate buffer capture. h]h)}(h(:file:`enable`, activate buffer capture.h](h)}(h:file:`enable`h]henable}(hjIhhhNhNubah}(h]h ]fileah"]h$]h&]rolefileuh1hhjEubh, activate buffer capture.}(hjEhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjAubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1hhhhKhjhhubeh}(h]iio-buffer-sysfs-interfaceah ]h"]iio buffer sysfs interfaceah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hIIO buffer setuph]hIIO buffer setup}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxhhhhhKubh)}(hX=The meta information associated with a channel reading placed in a buffer is called a scan element. The important bits configuring scan elements are exposed to userspace applications via the :file:`/sys/bus/iio/devices/iio:device{X}/scan_elements/` directory. This directory contains attributes of the following form:h](hThe meta information associated with a channel reading placed in a buffer is called a scan element. The important bits configuring scan elements are exposed to userspace applications via the }(hjhhhNhNubh)}(h9:file:`/sys/bus/iio/devices/iio:device{X}/scan_elements/`h](h/sys/bus/iio/devices/iio:device}(hjhhhNhNubj)}(hjh]hX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh/scan_elements/}(hjhhhNhNubeh}(h]h ]fileah"]h$]h&]rolefileuh1hhjubhE directory. This directory contains attributes of the following form:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjxhhubh)}(hhh](h)}(h:file:`enable`, used for enabling a channel. If and only if its attribute is non *zero*, then a triggered capture will contain data samples for this channel.h]h)}(h:file:`enable`, used for enabling a channel. If and only if its attribute is non *zero*, then a triggered capture will contain data samples for this channel.h](h)}(h:file:`enable`h]henable}(hjhhhNhNubah}(h]h ]fileah"]h$]h&]rolefileuh1hhjubhC, used for enabling a channel. If and only if its attribute is non }(hjhhhNhNubj)}(h*zero*h]hzero}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhF, then a triggered capture will contain data samples for this channel.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK"hjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(h-:file:`index`, the scan_index of the channel.h]h)}(hjh](h)}(h :file:`index`h]hindex}(hjhhhNhNubah}(h]h ]fileah"]h$]h&]rolefileuh1hhjubh , the scan_index of the channel.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK%hjubah}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hX:file:`type`, description of the scan element data storage within the buffer and hence the form in which it is read from user space. Format is [be|le]:[f|s|u]bits/storagebits[Xrepeat][>>shift] . * *be* or *le*, specifies big or little endian. * *f*, specifies if floating-point. * *s* or *u*, specifies if signed (2's complement) or unsigned. * *bits*, is the number of valid data bits. * *storagebits*, is the number of bits (after padding) that it occupies in the buffer. * *repeat*, specifies the number of bits/storagebits repetitions. When the repeat element is 0 or 1, then the repeat value is omitted. * *shift*, if specified, is the shift that needs to be applied prior to masking out unused bits. h](h)}(h:file:`type`, description of the scan element data storage within the buffer and hence the form in which it is read from user space. Format is [be|le]:[f|s|u]bits/storagebits[Xrepeat][>>shift] .h](h)}(h :file:`type`h]htype}(hj+hhhNhNubah}(h]h ]fileah"]h$]h&]rolefileuh1hhj'ubh, description of the scan element data storage within the buffer and hence the form in which it is read from user space. Format is [be|le]:[f|s|u]bits/storagebits[Xrepeat][>>shift] .}(hj'hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK&hj#ubh)}(hhh](h)}(h-*be* or *le*, specifies big or little endian.h]h)}(hjKh](j)}(h*be*h]hbe}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubh or }(hjMhhhNhNubj)}(h*le*h]hle}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubh!, specifies big or little endian.}(hjMhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK*hjIubah}(h]h ]h"]h$]h&]uh1hhjFubh)}(h!*f*, specifies if floating-point.h]h)}(hjh](j)}(h*f*h]hf}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, specifies if floating-point.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK+hjubah}(h]h ]h"]h$]h&]uh1hhjFubh)}(h=*s* or *u*, specifies if signed (2's complement) or unsigned.h]h)}(hjh](j)}(h*s*h]hs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh or }(hjhhhNhNubj)}(h*u*h]hu}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh5, specifies if signed (2’s complement) or unsigned.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK,hjubah}(h]h ]h"]h$]h&]uh1hhjFubh)}(h)*bits*, is the number of valid data bits.h]h)}(hjh](j)}(h*bits*h]hbits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh#, is the number of valid data bits.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK-hjubah}(h]h ]h"]h$]h&]uh1hhjFubh)}(hT*storagebits*, is the number of bits (after padding) that it occupies in the buffer.h]h)}(hT*storagebits*, is the number of bits (after padding) that it occupies in the buffer.h](j)}(h *storagebits*h]h storagebits}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhG, is the number of bits (after padding) that it occupies in the buffer.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK.hjubah}(h]h ]h"]h$]h&]uh1hhjFubh)}(h*repeat*, specifies the number of bits/storagebits repetitions. When the repeat element is 0 or 1, then the repeat value is omitted.h]h)}(h*repeat*, specifies the number of bits/storagebits repetitions. When the repeat element is 0 or 1, then the repeat value is omitted.h](j)}(h*repeat*h]hrepeat}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubh|, specifies the number of bits/storagebits repetitions. When the repeat element is 0 or 1, then the repeat value is omitted.}(hj+hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK0hj'ubah}(h]h ]h"]h$]h&]uh1hhjFubh)}(h_*shift*, if specified, is the shift that needs to be applied prior to masking out unused bits. h]h)}(h^*shift*, if specified, is the shift that needs to be applied prior to masking out unused bits.h](j)}(h*shift*h]hshift}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubhW, if specified, is the shift that needs to be applied prior to masking out unused bits.}(hjQhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK2hjMubah}(h]h ]h"]h$]h&]uh1hhjFubeh}(h]h ]h"]h$]h&]jjuh1hhhhK*hj#ubeh}(h]h ]h"]h$]h&]uh1hhjhhhNhNubeh}(h]h ]h"]h$]h&]jjuh1hhhhK"hjxhhubh)}(hFor example, a driver for a 3-axis accelerometer with 12 bit resolution where data is stored in two 8-bits registers as follows::h]hFor example, a driver for a 3-axis accelerometer with 12 bit resolution where data is stored in two 8-bits registers as follows:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK5hjxhhubh literal_block)}(hX? 7 6 5 4 3 2 1 0 +---+---+---+---+---+---+---+---+ |D3 |D2 |D1 |D0 | X | X | X | X | (LOW byte, address 0x06) +---+---+---+---+---+---+---+---+ 7 6 5 4 3 2 1 0 +---+---+---+---+---+---+---+---+ |D11|D10|D9 |D8 |D7 |D6 |D5 |D4 | (HIGH byte, address 0x07) +---+---+---+---+---+---+---+---+h]hX? 7 6 5 4 3 2 1 0 +---+---+---+---+---+---+---+---+ |D3 |D2 |D1 |D0 | X | X | X | X | (LOW byte, address 0x06) +---+---+---+---+---+---+---+---+ 7 6 5 4 3 2 1 0 +---+---+---+---+---+---+---+---+ |D11|D10|D9 |D8 |D7 |D6 |D5 |D4 | (HIGH byte, address 0x07) +---+---+---+---+---+---+---+---+}hjsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1jhhhK8hjxhhubh)}(h9will have the following scan element type for each axis::h]h8will have the following scan element type for each axis:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKBhjxhhubj)}(hQ$ cat /sys/bus/iio/devices/iio:device0/scan_elements/in_accel_y_type le:s12/16>>4h]hQ$ cat /sys/bus/iio/devices/iio:device0/scan_elements/in_accel_y_type le:s12/16>>4}hjsbah}(h]h ]h"]h$]h&]jjuh1jhhhKDhjxhhubh)}(hA user space application will interpret data samples read from the buffer as two byte little endian signed data, that needs a 4 bits right shift before masking out the 12 valid bits of data.h]hA user space application will interpret data samples read from the buffer as two byte little endian signed data, that needs a 4 bits right shift before masking out the 12 valid bits of data.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKGhjxhhubh)}(hmFor implementing buffer support a driver should initialize the following fields in iio_chan_spec definition::h]hlFor implementing buffer support a driver should initialize the following fields in iio_chan_spec definition:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKKhjxhhubj)}(hX3struct iio_chan_spec { /* other members */ int scan_index struct { char format; u8 realbits; u8 storagebits; u8 shift; u8 repeat; enum iio_endian endianness; } scan_type; };h]hX3struct iio_chan_spec { /* other members */ int scan_index struct { char format; u8 realbits; u8 storagebits; u8 shift; u8 repeat; enum iio_endian endianness; } scan_type; };}hjsbah}(h]h ]h"]h$]h&]jjuh1jhhhKNhjxhhubh)}(hfThe driver implementing the accelerometer described above will have the following channel definition::h]heThe driver implementing the accelerometer described above will have the following channel definition:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK[hjxhhubj)}(hXstruct iio_chan_spec accel_channels[] = { { .type = IIO_ACCEL, .modified = 1, .channel2 = IIO_MOD_X, /* other stuff here */ .scan_index = 0, .scan_type = { .format = IIO_SCAN_FORMAT_SIGNED_INT, .realbits = 12, .storagebits = 16, .shift = 4, .endianness = IIO_LE, }, } /* similar for Y (with channel2 = IIO_MOD_Y, scan_index = 1) * and Z (with channel2 = IIO_MOD_Z, scan_index = 2) axis */ }h]hXstruct iio_chan_spec accel_channels[] = { { .type = IIO_ACCEL, .modified = 1, .channel2 = IIO_MOD_X, /* other stuff here */ .scan_index = 0, .scan_type = { .format = IIO_SCAN_FORMAT_SIGNED_INT, .realbits = 12, .storagebits = 16, .shift = 4, .endianness = IIO_LE, }, } /* similar for Y (with channel2 = IIO_MOD_Y, scan_index = 1) * and Z (with channel2 = IIO_MOD_Z, scan_index = 2) axis */ }}hjsbah}(h]h ]h"]h$]h&]jjuh1jhhhK^hjxhhubh)}(hHere **scan_index** defines the order in which the enabled channels are placed inside the buffer. Channels with a lower **scan_index** will be placed before channels with a higher index. Each channel needs to have a unique **scan_index**.h](hHere }(hjhhhNhNubhstrong)}(h**scan_index**h]h scan_index}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhe defines the order in which the enabled channels are placed inside the buffer. Channels with a lower }(hjhhhNhNubj)}(h**scan_index**h]h scan_index}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhY will be placed before channels with a higher index. Each channel needs to have a unique }(hjhhhNhNubj)}(h**scan_index**h]h scan_index}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKrhjxhhubh)}(hSetting **scan_index** to -1 can be used to indicate that the specific channel does not support buffered capture. In this case no entries will be created for the channel in the scan_elements directory.h](hSetting }(hjMhhhNhNubj)}(h**scan_index**h]h scan_index}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubh to -1 can be used to indicate that the specific channel does not support buffered capture. In this case no entries will be created for the channel in the scan_elements directory.}(hjMhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKwhjxhhubeh}(h]iio-buffer-setupah ]h"]iio buffer setupah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h More detailsh]h More details}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjuhhhhhK|ubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](single/iio_push_to_buffers_with_timestamp (C function)$c.iio_push_to_buffers_with_timestamphNtauh1jhjuhhhNhNubhdesc)}(hhh](hdesc_signature)}(haint iio_push_to_buffers_with_timestamp (struct iio_dev *indio_dev, void *data, int64_t timestamp)h]hdesc_signature_line)}(h`int iio_push_to_buffers_with_timestamp(struct iio_dev *indio_dev, void *data, int64_t timestamp)h](hdesc_sig_keyword_type)}(hinth]hint}(hjhhhNhNubah}(h]h ]ktah"]h$]h&]uh1jhjhhhb/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:125: ./include/linux/iio/buffer.hhKubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjhhhjhKubh desc_name)}(h"iio_push_to_buffers_with_timestamph]h desc_sig_name)}(h"iio_push_to_buffers_with_timestamph]h"iio_push_to_buffers_with_timestamp}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&]jjuh1jhjhhhjhKubhdesc_parameterlist)}(h:(struct iio_dev *indio_dev, void *data, int64_t timestamp)h](hdesc_parameter)}(hstruct iio_dev *indio_devh](hdesc_sig_keyword)}(hstructh]hstruct}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j3 ASTIdentifier)}j.jsb$c.iio_push_to_buffers_with_timestampasbuh1hhjubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubhdesc_sig_punctuation)}(hjh]h*}(hjPhhhNhNubah}(h]h ]pah"]h$]h&]uh1jNhjubj)}(h indio_devh]h indio_dev}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(h void *datah](j)}(hvoidh]hvoid}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubjO)}(hjh]h*}(hjhhhNhNubah}(h]h ]jZah"]h$]h&]uh1jNhjsubj)}(hdatah]hdata}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hint64_t timestamph](h)}(hhh]j)}(hint64_th]hint64_t}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej. reftargetjmodnameN classnameNj2j5)}j8]j<$c.iio_push_to_buffers_with_timestampasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h timestamph]h timestamp}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jj add_permalinkuh1jsphinx_line_type declaratorhjhhhjhKubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhjhKhjhhubh desc_content)}(hhh]h)}(h"push data and timestamp to buffersh]h"push data and timestamp to buffers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:125: ./include/linux/iio/buffer.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]domainjobjtypej4desctypej4noindex noindexentrynocontentsentryuh1jhhhjuhNhNubh container)}(hX#**Parameters** ``struct iio_dev *indio_dev`` iio_dev structure for device. ``void *data`` sample data ``int64_t timestamp`` timestamp for the sample data **Description** DEPRECATED: Use iio_push_to_buffers_with_ts() instead. Returns 0 on success, a negative error code otherwise.h](h)}(h**Parameters**h]j)}(hjFh]h Parameters}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:125: ./include/linux/iio/buffer.hhKhj@ubhdefinition_list)}(hhh](hdefinition_list_item)}(h<``struct iio_dev *indio_dev`` iio_dev structure for device. h](hterm)}(h``struct iio_dev *indio_dev``h]h)}(hjkh]hstruct iio_dev *indio_dev}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjiubah}(h]h ]h"]h$]h&]uh1jghb/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:125: ./include/linux/iio/buffer.hhKhjcubh definition)}(hhh]h)}(hiio_dev structure for device.h]hiio_dev structure for device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jahjhKhj^ubjb)}(h``void *data`` sample data h](jh)}(h``void *data``h]h)}(hjh]h void *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jghb/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:125: ./include/linux/iio/buffer.hhKhjubj)}(hhh]h)}(h sample datah]h sample data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jahjhKhj^ubjb)}(h4``int64_t timestamp`` timestamp for the sample data h](jh)}(h``int64_t timestamp``h]h)}(hjh]hint64_t timestamp}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jghb/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:125: ./include/linux/iio/buffer.hhKhjubj)}(hhh]h)}(htimestamp for the sample datah]htimestamp for the sample data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jahjhKhj^ubeh}(h]h ]h"]h$]h&]uh1j\hj@ubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:125: ./include/linux/iio/buffer.hhKhj@ubh)}(h6DEPRECATED: Use iio_push_to_buffers_with_ts() instead.h]h6DEPRECATED: Use iio_push_to_buffers_with_ts() instead.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:125: ./include/linux/iio/buffer.hhKhj@ubh)}(h6Returns 0 on success, a negative error code otherwise.h]h6Returns 0 on success, a negative error code otherwise.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:125: ./include/linux/iio/buffer.hhKhj@ubeh}(h]h ] kernelindentah"]h$]h&]uh1j>hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(iio_push_to_buffers_with_ts (C function)c.iio_push_to_buffers_with_tshNtauh1jhjuhhhNhNubj)}(hhh](j)}(hmint iio_push_to_buffers_with_ts (struct iio_dev *indio_dev, void *data, size_t data_total_len, s64 timestamp)h]j)}(hlint iio_push_to_buffers_with_ts(struct iio_dev *indio_dev, void *data, size_t data_total_len, s64 timestamp)h](j)}(hinth]hint}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjhhhb/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:125: ./include/linux/iio/buffer.hhK5ubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjhhhj|hK5ubj)}(hiio_push_to_buffers_with_tsh]j)}(hiio_push_to_buffers_with_tsh]hiio_push_to_buffers_with_ts}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjjhhhj|hK5ubj)}(hM(struct iio_dev *indio_dev, void *data, size_t data_total_len, s64 timestamp)h](j)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej. reftargetjmodnameN classnameNj2j5)}j8]j;)}j.jsbc.iio_push_to_buffers_with_tsasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjO)}(hjh]h*}(hjhhhNhNubah}(h]h ]jZah"]h$]h&]uh1jNhjubj)}(h indio_devh]h indio_dev}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(h void *datah](j)}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj+ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjO)}(hjh]h*}(hj9 hhhNhNubah}(h]h ]jZah"]h$]h&]uh1jNhj ubj)}(hdatah]hdata}(hjF hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hsize_t data_total_lenh](h)}(hhh]j)}(hsize_th]hsize_t}(hjb hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ ubah}(h]h ]h"]h$]h&] refdomainjreftypej. reftargetjd modnameN classnameNj2j5)}j8]jc.iio_push_to_buffers_with_tsasbuh1hhj[ ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ ubj)}(hdata_total_lenh]hdata_total_len}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(h s64 timestamph](h)}(hhh]j)}(hs64h]hs64}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej. reftargetj modnameN classnameNj2j5)}j8]jc.iio_push_to_buffers_with_tsasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h timestamph]h timestamp}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhjjhhhj|hK5ubeh}(h]h ]h"]h$]h&]jjj uh1jj j hjfhhhj|hK5ubah}(h]jaah ](jjeh"]h$]h&]jj)jhuh1jhj|hK5hjchhubj)}(hhh]h)}(h"push data and timestamp to buffersh]h"push data and timestamp to buffers}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:125: ./include/linux/iio/buffer.hhK5hj hhubah}(h]h ]h"]h$]h&]uh1jhjchhhj|hK5ubeh}(h]h ](jfunctioneh"]h$]h&]j8jj9j j:j j;j<j=uh1jhhhjuhNhNubj?)}(hX**Parameters** ``struct iio_dev *indio_dev`` iio_dev structure for device. ``void *data`` Pointer to sample data buffer. ``size_t data_total_len`` The size of **data** in bytes. ``s64 timestamp`` Timestamp for the sample data. **Description** Pushes data to the IIO device's buffers. If timestamps are enabled for the device the function will store the supplied timestamp as the last element in the sample data buffer before pushing it to the device buffers. The sample data buffer needs to be large enough to hold the additional timestamp (usually the buffer should be at least indio->scan_bytes bytes large). **Context** Any context. **Return** 0 on success, a negative error code otherwise.h](h)}(h**Parameters**h]j)}(hj" h]h Parameters}(hj$ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:125: ./include/linux/iio/buffer.hhK9hj ubj])}(hhh](jb)}(h<``struct iio_dev *indio_dev`` iio_dev structure for device. h](jh)}(h``struct iio_dev *indio_dev``h]h)}(hjA h]hstruct iio_dev *indio_dev}(hjC hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj? ubah}(h]h ]h"]h$]h&]uh1jghb/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:125: ./include/linux/iio/buffer.hhK6hj; ubj)}(hhh]h)}(hiio_dev structure for device.h]hiio_dev structure for device.}(hjZ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjV hK6hjW ubah}(h]h ]h"]h$]h&]uh1jhj; ubeh}(h]h ]h"]h$]h&]uh1jahjV hK6hj8 ubjb)}(h.``void *data`` Pointer to sample data buffer. h](jh)}(h``void *data``h]h)}(hjz h]h void *data}(hj| hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjx ubah}(h]h ]h"]h$]h&]uh1jghb/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:125: ./include/linux/iio/buffer.hhK7hjt ubj)}(hhh]h)}(hPointer to sample data buffer.h]hPointer to sample data buffer.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK7hj ubah}(h]h ]h"]h$]h&]uh1jhjt ubeh}(h]h ]h"]h$]h&]uh1jahj hK7hj8 ubjb)}(h9``size_t data_total_len`` The size of **data** in bytes. h](jh)}(h``size_t data_total_len``h]h)}(hj h]hsize_t data_total_len}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jghb/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:125: ./include/linux/iio/buffer.hhK8hj ubj)}(hhh]h)}(hThe size of **data** in bytes.h](h The size of }(hj hhhNhNubj)}(h**data**h]hdata}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh in bytes.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj hK8hj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jahj hK8hj8 ubjb)}(h1``s64 timestamp`` Timestamp for the sample data. h](jh)}(h``s64 timestamp``h]h)}(hj h]h s64 timestamp}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jghb/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:125: ./include/linux/iio/buffer.hhK9hj ubj)}(hhh]h)}(hTimestamp for the sample data.h]hTimestamp for the sample data.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK9hj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jahj hK9hj8 ubeh}(h]h ]h"]h$]h&]uh1j\hj ubh)}(h**Description**h]j)}(hj9 h]h Description}(hj; hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7 ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:125: ./include/linux/iio/buffer.hhK;hj ubh)}(hXoPushes data to the IIO device's buffers. If timestamps are enabled for the device the function will store the supplied timestamp as the last element in the sample data buffer before pushing it to the device buffers. The sample data buffer needs to be large enough to hold the additional timestamp (usually the buffer should be at least indio->scan_bytes bytes large).h]hXqPushes data to the IIO device’s buffers. If timestamps are enabled for the device the function will store the supplied timestamp as the last element in the sample data buffer before pushing it to the device buffers. The sample data buffer needs to be large enough to hold the additional timestamp (usually the buffer should be at least indio->scan_bytes bytes large).}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:125: ./include/linux/iio/buffer.hhK:hj ubh)}(h **Context**h]j)}(hj` h]hContext}(hjb hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:125: ./include/linux/iio/buffer.hhK@hj ubh)}(h Any context.h]h Any context.}(hjv hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:125: ./include/linux/iio/buffer.hhKAhj ubh)}(h **Return**h]j)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:125: ./include/linux/iio/buffer.hhKChj ubh)}(h.0 on success, a negative error code otherwise.h]h.0 on success, a negative error code otherwise.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:125: ./include/linux/iio/buffer.hhKBhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1j>hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j*iio_validate_scan_mask_onehot (C function)c.iio_validate_scan_mask_onehothNtauh1jhjuhhhNhNubj)}(hhh](j)}(hYbool iio_validate_scan_mask_onehot (struct iio_dev *indio_dev, const unsigned long *mask)h]j)}(hXbool iio_validate_scan_mask_onehot(struct iio_dev *indio_dev, const unsigned long *mask)h](j)}(hboolh]hbool}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM7 ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hM7 ubj)}(hiio_validate_scan_mask_onehoth]j)}(hiio_validate_scan_mask_onehoth]hiio_validate_scan_mask_onehot}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj hhhj hM7 ubj)}(h6(struct iio_dev *indio_dev, const unsigned long *mask)h](j)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj' hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ ubah}(h]h ]h"]h$]h&] refdomainjreftypej. reftargetj) modnameN classnameNj2j5)}j8]j;)}j.j sbc.iio_validate_scan_mask_onehotasbuh1hhj ubj)}(h h]h }(hjG hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjO)}(hjh]h*}(hjU hhhNhNubah}(h]h ]jZah"]h$]h&]uh1jNhj ubj)}(h indio_devh]h indio_dev}(hjb hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj ubj)}(hconst unsigned long *maskh](j)}(hconsth]hconst}(hj{ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw ubj)}(hunsignedh]hunsigned}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw ubj)}(hlongh]hlong}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw ubjO)}(hjh]h*}(hj hhhNhNubah}(h]h ]jZah"]h$]h&]uh1jNhjw ubj)}(hmaskh]hmask}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj ubeh}(h]h ]h"]h$]h&]jjuh1jhj hhhj hM7 ubeh}(h]h ]h"]h$]h&]jjj uh1jj j hj hhhj hM7 ubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jhj hM7 hj hhubj)}(hhh]h)}(h.Validates that exactly one channel is selectedh]h.Validates that exactly one channel is selected}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM7 hj hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hM7 ubeh}(h]h ](jfunctioneh"]h$]h&]j8jj9j j:j j;j<j=uh1jhhhjuhNhNubj?)}(hX***Parameters** ``struct iio_dev *indio_dev`` the iio device ``const unsigned long *mask`` scan mask to be checked **Description** Return true if exactly one bit is set in the scan mask, false otherwise. It can be used for devices where only one channel can be active for sampling at a time.h](h)}(h**Parameters**h]j)}(hj( h]h Parameters}(hj* hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj& ubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM; hj" ubj])}(hhh](jb)}(h-``struct iio_dev *indio_dev`` the iio device h](jh)}(h``struct iio_dev *indio_dev``h]h)}(hjG h]hstruct iio_dev *indio_dev}(hjI hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjE ubah}(h]h ]h"]h$]h&]uh1jghi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM8 hjA ubj)}(hhh]h)}(hthe iio deviceh]hthe iio device}(hj` hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\ hM8 hj] ubah}(h]h ]h"]h$]h&]uh1jhjA ubeh}(h]h ]h"]h$]h&]uh1jahj\ hM8 hj> ubjb)}(h6``const unsigned long *mask`` scan mask to be checked h](jh)}(h``const unsigned long *mask``h]h)}(hj h]hconst unsigned long *mask}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~ ubah}(h]h ]h"]h$]h&]uh1jghi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM9 hjz ubj)}(hhh]h)}(hscan mask to be checkedh]hscan mask to be checked}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hM9 hj ubah}(h]h ]h"]h$]h&]uh1jhjz ubeh}(h]h ]h"]h$]h&]uh1jahj hM9 hj> ubeh}(h]h ]h"]h$]h&]uh1j\hj" ubh)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM; hj" ubh)}(hReturn true if exactly one bit is set in the scan mask, false otherwise. It can be used for devices where only one channel can be active for sampling at a time.h]hReturn true if exactly one bit is set in the scan mask, false otherwise. It can be used for devices where only one channel can be active for sampling at a time.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM: hj" ubeh}(h]h ] kernelindentah"]h$]h&]uh1j>hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j iio_push_to_buffers (C function)c.iio_push_to_buffershNtauh1jhjuhhhNhNubj)}(hhh](j)}(hEint iio_push_to_buffers (struct iio_dev *indio_dev, const void *data)h]j)}(hDint iio_push_to_buffers(struct iio_dev *indio_dev, const void *data)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chMf ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhjhMf ubj)}(hiio_push_to_buffersh]j)}(hiio_push_to_buffersh]hiio_push_to_buffers}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhj hhhjhMf ubj)}(h-(struct iio_dev *indio_dev, const void *data)h](j)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubh)}(hhh]j)}(hiio_devh]hiio_dev}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&] refdomainjreftypej. reftargetj]modnameN classnameNj2j5)}j8]j;)}j.j#sbc.iio_push_to_buffersasbuh1hhj9ubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubjO)}(hjh]h*}(hjhhhNhNubah}(h]h ]jZah"]h$]h&]uh1jNhj9ubj)}(h indio_devh]h indio_dev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj5ubj)}(hconst void *datah](j)}(hj} h]hconst}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjO)}(hjh]h*}(hjhhhNhNubah}(h]h ]jZah"]h$]h&]uh1jNhjubj)}(hdatah]hdata}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj5ubeh}(h]h ]h"]h$]h&]jjuh1jhj hhhjhMf ubeh}(h]h ]h"]h$]h&]jjj uh1jj j hj hhhjhMf ubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jhjhMf hj hhubj)}(hhh]h)}(hpush to a registered buffer.h]hpush to a registered buffer.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chMf hjhhubah}(h]h ]h"]h$]h&]uh1jhj hhhjhMf ubeh}(h]h ](jfunctioneh"]h$]h&]j8jj9j5j:j5j;j<j=uh1jhhhjuhNhNubj?)}(h**Parameters** ``struct iio_dev *indio_dev`` iio_dev structure for device. ``const void *data`` Full scan. **Context** Any context. **Return** 0 on success, negative error code on failure.h](h)}(h**Parameters**h]j)}(hj?h]h Parameters}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chMj hj9ubj])}(hhh](jb)}(h<``struct iio_dev *indio_dev`` iio_dev structure for device. h](jh)}(h``struct iio_dev *indio_dev``h]h)}(hj^h]hstruct iio_dev *indio_dev}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\ubah}(h]h ]h"]h$]h&]uh1jghi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chMg hjXubj)}(hhh]h)}(hiio_dev structure for device.h]hiio_dev structure for device.}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjshMg hjtubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jahjshMg hjUubjb)}(h ``const void *data`` Full scan. h](jh)}(h``const void *data``h]h)}(hjh]hconst void *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jghi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chMh hjubj)}(hhh]h)}(h Full scan.h]h Full scan.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMh hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jahjhMh hjUubeh}(h]h ]h"]h$]h&]uh1j\hj9ubh)}(h **Context**h]j)}(hjh]hContext}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chMj hj9ubh)}(h Any context.h]h Any context.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chMj hj9ubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chMl hj9ubh)}(h-0 on success, negative error code on failure.h]h-0 on success, negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chMk hj9ubeh}(h]h ] kernelindentah"]h$]h&]uh1j>hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j2iio_push_to_buffers_with_ts_unaligned (C function)'c.iio_push_to_buffers_with_ts_unalignedhNtauh1jhjuhhhNhNubj)}(hhh](j)}(hvint iio_push_to_buffers_with_ts_unaligned (struct iio_dev *indio_dev, const void *data, size_t data_sz, s64 timestamp)h]j)}(huint iio_push_to_buffers_with_ts_unaligned(struct iio_dev *indio_dev, const void *data, size_t data_sz, s64 timestamp)h](j)}(hinth]hint}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:hhhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM~ ubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:hhhjLhM~ ubj)}(h%iio_push_to_buffers_with_ts_unalignedh]j)}(h%iio_push_to_buffers_with_ts_unalignedh]h%iio_push_to_buffers_with_ts_unaligned}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj:hhhjLhM~ ubj)}(hL(struct iio_dev *indio_dev, const void *data, size_t data_sz, s64 timestamp)h](j)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej. reftargetjmodnameN classnameNj2j5)}j8]j;)}j.jasb'c.iio_push_to_buffers_with_ts_unalignedasbuh1hhjwubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubjO)}(hjh]h*}(hjhhhNhNubah}(h]h ]jZah"]h$]h&]uh1jNhjwubj)}(h indio_devh]h indio_dev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjsubj)}(hconst void *datah](j)}(hj} h]hconst}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjO)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jZah"]h$]h&]uh1jNhjubj)}(hdatah]hdata}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjsubj)}(hsize_t data_szh](h)}(hhh]j)}(hsize_th]hsize_t}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&] refdomainjreftypej. reftargetjOmodnameN classnameNj2j5)}j8]j'c.iio_push_to_buffers_with_ts_unalignedasbuh1hhjFubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj)}(hdata_szh]hdata_sz}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjsubj)}(h s64 timestamph](h)}(hhh]j)}(hs64h]hs64}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej. reftargetjmodnameN classnameNj2j5)}j8]j'c.iio_push_to_buffers_with_ts_unalignedasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h timestamph]h timestamp}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjsubeh}(h]h ]h"]h$]h&]jjuh1jhj:hhhjLhM~ ubeh}(h]h ]h"]h$]h&]jjj uh1jj j hj6hhhjLhM~ ubah}(h]j1ah ](jjeh"]h$]h&]jj)jhuh1jhjLhM~ hj3hhubj)}(hhh]h)}(h>push to registered buffer, no alignment or space requirements.h]h>push to registered buffer, no alignment or space requirements.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM~ hjhhubah}(h]h ]h"]h$]h&]uh1jhj3hhhjLhM~ ubeh}(h]h ](jfunctioneh"]h$]h&]j8jj9jj:jj;j<j=uh1jhhhjuhNhNubj?)}(hXG**Parameters** ``struct iio_dev *indio_dev`` iio_dev structure for device. ``const void *data`` channel data excluding the timestamp. ``size_t data_sz`` size of data. ``s64 timestamp`` timestamp for the sample data. **Description** This special variant of iio_push_to_buffers_with_timestamp() does not require space for the timestamp, or 8 byte alignment of data. It does however require an allocation on first call and additional copies on all calls, so should be avoided if possible. **Context** May sleep. **Return** 0 on success, negative error code on failure.h](h)}(h**Parameters**h]j)}(hj h]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM hjubj])}(hhh](jb)}(h<``struct iio_dev *indio_dev`` iio_dev structure for device. h](jh)}(h``struct iio_dev *indio_dev``h]h)}(hj,h]hstruct iio_dev *indio_dev}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*ubah}(h]h ]h"]h$]h&]uh1jghi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM hj&ubj)}(hhh]h)}(hiio_dev structure for device.h]hiio_dev structure for device.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhM hjBubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jahjAhM hj#ubjb)}(h;``const void *data`` channel data excluding the timestamp. h](jh)}(h``const void *data``h]h)}(hjeh]hconst void *data}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjcubah}(h]h ]h"]h$]h&]uh1jghi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM hj_ubj)}(hhh]h)}(h%channel data excluding the timestamp.h]h%channel data excluding the timestamp.}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjzhM hj{ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jahjzhM hj#ubjb)}(h!``size_t data_sz`` size of data. h](jh)}(h``size_t data_sz``h]h)}(hjh]hsize_t data_sz}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jghi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM hjubj)}(hhh]h)}(h size of data.h]h size of data.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jahjhM hj#ubjb)}(h1``s64 timestamp`` timestamp for the sample data. h](jh)}(h``s64 timestamp``h]h)}(hjh]h s64 timestamp}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jghi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM hjubj)}(hhh]h)}(htimestamp for the sample data.h]htimestamp for the sample data.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jahjhM hj#ubeh}(h]h ]h"]h$]h&]uh1j\hjubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM hjubh)}(hThis special variant of iio_push_to_buffers_with_timestamp() does not require space for the timestamp, or 8 byte alignment of data. It does however require an allocation on first call and additional copies on all calls, so should be avoided if possible.h]hThis special variant of iio_push_to_buffers_with_timestamp() does not require space for the timestamp, or 8 byte alignment of data. It does however require an allocation on first call and additional copies on all calls, so should be avoided if possible.}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM hjubh)}(h **Context**h]j)}(hj9h]hContext}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM hjubh)}(h May sleep.h]h May sleep.}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM hjubh)}(h **Return**h]j)}(hj`h]hReturn}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM hjubh)}(h-0 on success, negative error code on failure.h]h-0 on success, negative error code on failure.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1j>hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_buffer_get (C function)c.iio_buffer_gethNtauh1jhjuhhhNhNubj)}(hhh](j)}(h>struct iio_buffer * iio_buffer_get (struct iio_buffer *buffer)h]j)}(hhjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jiio_buffer_put (C function)c.iio_buffer_puthNtauh1jhjuhhhNhNubj)}(hhh](j)}(h/void iio_buffer_put (struct iio_buffer *buffer)h]j)}(h.void iio_buffer_put(struct iio_buffer *buffer)h](j)}(hvoidh]hvoid}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]hhhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM ubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]hhhjohM ubj)}(hiio_buffer_puth]j)}(hiio_buffer_puth]hiio_buffer_put}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj]hhhjohM ubj)}(h(struct iio_buffer *buffer)h]j)}(hstruct iio_buffer *bufferh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h iio_bufferh]h iio_buffer}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej. reftargetjmodnameN classnameNj2j5)}j8]j;)}j.jsbc.iio_buffer_putasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjO)}(hjh]h*}(hjhhhNhNubah}(h]h ]jZah"]h$]h&]uh1jNhjubj)}(hbufferh]hbuffer}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubah}(h]h ]h"]h$]h&]jjuh1jhj]hhhjohM ubeh}(h]h ]h"]h$]h&]jjj uh1jj j hjYhhhjohM ubah}(h]jTah ](jjeh"]h$]h&]jj)jhuh1jhjohM hjVhhubj)}(hhh]h)}(h#Release the reference to the bufferh]h#Release the reference to the buffer}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM hjhhubah}(h]h ]h"]h$]h&]uh1jhjVhhhjohM ubeh}(h]h ](jfunctioneh"]h$]h&]j8jj9j9j:j9j;j<j=uh1jhhhjuhNhNubj?)}(hd**Parameters** ``struct iio_buffer *buffer`` The buffer to release the reference for, may be NULLh](h)}(h**Parameters**h]j)}(hjCh]h Parameters}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM hj=ubj])}(hhh]jb)}(hR``struct iio_buffer *buffer`` The buffer to release the reference for, may be NULLh](jh)}(h``struct iio_buffer *buffer``h]h)}(hjbh]hstruct iio_buffer *buffer}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`ubah}(h]h ]h"]h$]h&]uh1jghi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM hj\ubj)}(hhh]h)}(h4The buffer to release the reference for, may be NULLh]h4The buffer to release the reference for, may be NULL}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM hjxubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jahjwhM hjYubah}(h]h ]h"]h$]h&]uh1j\hj=ubeh}(h]h ] kernelindentah"]h$]h&]uh1j>hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j%iio_device_attach_buffer (C function)c.iio_device_attach_bufferhNtauh1jhjuhhhNhNubj)}(hhh](j)}(hSint iio_device_attach_buffer (struct iio_dev *indio_dev, struct iio_buffer *buffer)h]j)}(hRint iio_device_attach_buffer(struct iio_dev *indio_dev, struct iio_buffer *buffer)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhM ubj)}(hiio_device_attach_bufferh]j)}(hiio_device_attach_bufferh]hiio_device_attach_buffer}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhM ubj)}(h6(struct iio_dev *indio_dev, struct iio_buffer *buffer)h](j)}(hstruct iio_dev *indio_devh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hiio_devh]hiio_dev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej. reftargetjmodnameN classnameNj2j5)}j8]j;)}j.jsbc.iio_device_attach_bufferasbuh1hhjubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjO)}(hjh]h*}(hjEhhhNhNubah}(h]h ]jZah"]h$]h&]uh1jNhjubj)}(h indio_devh]h indio_dev}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hstruct iio_buffer *bufferh](j)}(hjh]hstruct}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubh)}(hhh]j)}(h iio_bufferh]h iio_buffer}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej. reftargetjmodnameN classnameNj2j5)}j8]j3c.iio_device_attach_bufferasbuh1hhjgubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubjO)}(hjh]h*}(hjhhhNhNubah}(h]h ]jZah"]h$]h&]uh1jNhjgubj)}(hbufferh]hbuffer}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhjhhhjhM ubeh}(h]h ]h"]h$]h&]jjj uh1jj j hjhhhjhM ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhM hjhhubj)}(hhh]h)}(hAttach a buffer to a IIO deviceh]hAttach a buffer to a IIO device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]j8jj9jj:jj;j<j=uh1jhhhjuhNhNubj?)}(hX***Parameters** ``struct iio_dev *indio_dev`` The device the buffer should be attached to ``struct iio_buffer *buffer`` The buffer to attach to the device **Description** Return 0 if successful, negative if error. This function attaches a buffer to a IIO device. The buffer stays attached to the device until the device is freed. For legacy reasons, the first attached buffer will also be assigned to 'indio_dev->buffer'. The array allocated here, will be free'd via the iio_device_detach_buffers() call which is handled by the iio_device_free().h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM hjubj])}(hhh](jb)}(hJ``struct iio_dev *indio_dev`` The device the buffer should be attached to h](jh)}(h``struct iio_dev *indio_dev``h]h)}(hj-h]hstruct iio_dev *indio_dev}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+ubah}(h]h ]h"]h$]h&]uh1jghi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM hj'ubj)}(hhh]h)}(h+The device the buffer should be attached toh]h+The device the buffer should be attached to}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBhM hjCubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jahjBhM hj$ubjb)}(hA``struct iio_buffer *buffer`` The buffer to attach to the device h](jh)}(h``struct iio_buffer *buffer``h]h)}(hjfh]hstruct iio_buffer *buffer}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdubah}(h]h ]h"]h$]h&]uh1jghi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM hj`ubj)}(hhh]h)}(h"The buffer to attach to the deviceh]h"The buffer to attach to the device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{hM hj|ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jahj{hM hj$ubeh}(h]h ]h"]h$]h&]uh1j\hjubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM hjubh)}(h*Return 0 if successful, negative if error.h]h*Return 0 if successful, negative if error.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM hjubh)}(hXLThis function attaches a buffer to a IIO device. The buffer stays attached to the device until the device is freed. For legacy reasons, the first attached buffer will also be assigned to 'indio_dev->buffer'. The array allocated here, will be free'd via the iio_device_detach_buffers() call which is handled by the iio_device_free().h]hXRThis function attaches a buffer to a IIO device. The buffer stays attached to the device until the device is freed. For legacy reasons, the first attached buffer will also be assigned to ‘indio_dev->buffer’. The array allocated here, will be free’d via the iio_device_detach_buffers() call which is handled by the iio_device_free().}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/iio/buffers:126: ./drivers/iio/industrialio-buffer.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1j>hjuhhhNhNubeh}(h] more-detailsah ]h"] more detailsah$]h&]uh1hhhhhhhhK|ubeh}(h]buffersah ]h"]buffersah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehʌ _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jjjujrjrjojju nametypes}(jjujrjuh}(jhjrjjojxjjujjjajfj j j j j1j6jjjTjYjju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.