A few questions about libiio buffer handling:
Is iio_buffer_push() blocking? Can it be configured for non-blocking with a callback upon completion? How do I know when it is safe to refill a tx buffer?
Similarly on the rx side, can iio_buffer_refill() be wrapped with a call to select() to make non-blocking? If I want to wait for a certain number of samples, can I query the number of bytes available?
Also, can a user allocated memory space be used as an iio_buffer? For example, if I reserve a large chunk of physically contiguous memory by using the "mem=" kernel command line parameter, can that memory region be used as an iio_buffer?