xdf_define_arrays man page
xdf_define_arrays — Specify the number of input/output arrays
int xdf_define_arrays(struct xdf* xdf,
unsigned int narrays, const size_t *strides);
xdf_define_arrays() specifies the number of arrays and its strides for upcoming calls to xdf_write(3) and xdf_read(3) using xdf. This function is used to configure the upcoming transfer. As such, it must be called before xdf_prepare_transfer(3) (calling it after will produce an error). However the function may be called several times but only the last call is meaningful for the transfer.
narrays specifies the number of arrays that will be provided in the argument list of xdf_write(3) or xdf_read(3).
strides argument should point to an array of narrays unsigned int corresponding respectively to the stride of each arrays that will be supplied to the upcoming call to xdf_write(3) or xdf_read(3). The stride corresponds to the length in byte between two consecutive samples of the same channel in the array.
xdf_define_arrays() returns 0 in case of success, otherwise -1 and errno is set appropriately.
The system is unable to allocate resources.
xdf_prepare_transfer(3), xdf_read(3), xdf_write(3)
xdf_prepare_transfer(3), xdf_read(3), xdf_seek(3), xdf_write(3).