github analogdevicesinc/libiio v1.0.0
Libiio release v1.0.0

5 hours ago

Libiio v1.0.0

First stable release of Libiio. This release breaks both the API and the ABI
of the v0.x series
: an application built against Libiio v0.x will not run
against Libiio v1.x, and source changes are required to rebuild against it.

Two guides cover everything that needs to change:

  • Libiio 0.x to 1.x API update guide
  • Libiio 0.x to 1.x command-line tools migration guide

Backward compatibility

Even though the API and the ABI both changed, existing v0.x deployments keep
working — on the wire and at the binary level:

  • IIOD still serves v0.x clients. The server is built with
    WITH_IIOD_V0_COMPAT enabled by default, so it starts up speaking the v0.x
    text protocol and only switches to the new binary protocol when a v1.x client
    asks for it. An unmodified v0.26 client can talk to a v1.0 IIOD.
  • A compatibility layer keeps existing v0.x binaries running. The
    LIBIIO_COMPAT option, also enabled by default, builds a libiio.so.0
    library that exposes the old v0.x ABI and forwards every call to the v1.x
    library, which it loads at runtime. Applications that were compiled and
    linked against Libiio v0.x therefore continue to run against a v1.0
    installation without being recompiled or relinked.

Breaking changes

  • iio.h moved into an iio subdirectory: include <iio/iio.h> instead of <iio.h>.
  • Functions returning a pointer no longer return NULL on error; they return a
    pointer-encoded error code, retrieved with iio_err. errno is no longer used
    to report errors.
  • Attributes are now accessed through a dedicated iio_attr object rather than
    by index and name.
  • Buffers are pre-existing objects owned by the driver, enumerated with
    iio_device_get_buffers_count / iio_device_get_buffer and opened for
    streaming with iio_buffer_open, which returns an iio_buffer_stream.
  • The low-level streaming API is now block based.
  • Context behaviour is configured through a public iio_context_params structure.
  • iio_readdev and iio_writedev were merged into a single iio_rwdev tool.
  • SONAME is now libiio.so.1, and the exported ABI is frozen by a linker
    version script (libiio.map).

Highlights

  • New binary IIOD protocol, negotiated at connection time. The client probes
    the server with a BINARY command on connect and upgrades to the binary
    protocol when the server accepts it, transparently falling back to the v0.x
    text protocol when it does not. The binary protocol multiplexes commands and
    data over one connection instead of serialising ASCII exchanges.
  • Multi-buffer support. A device may expose more than one buffer; they are
    enumerated with iio_device_get_buffers_count and retrieved by index with
    iio_device_get_buffer, so several buffers of the same device can be streamed
    independently.
  • Blocks are now exposed to applications. Where v0.x only handed out a
    buffer and refilled it in place, v1.x lets applications create individual
    blocks with iio_buffer_stream_create_block and manage them explicitly via
    iio_block_enqueue / iio_block_dequeue. Several blocks can be kept in
    flight at once, which gives far more control over memory and throughput than
    the single implicit buffer of v0.x.
  • DMA-BUF support. Blocks can be backed by DMA-BUF objects, so capture and
    transmit memory can be shared with other DMA-BUF aware drivers and subsystems
    without copying it through user space. iio_block_get_dmabuf_fd returns the
    file descriptor of the underlying object, and iio_block_disable_cpu_access
    hands a block over to the device without the CPU touching its samples. It is
    enabled by default in the local backend (WITH_LOCAL_DMABUF_API), and IIOD
    can carry it over USB with WITH_IIOD_USB_DMABUF.
  • Non-blocking capture and transmit. iio_block_dequeue takes a nonblock
    flag and returns -EBUSY instead of waiting when no block is ready, so data
    paths can be driven from an event loop rather than a dedicated thread.
    IIO_TIMEOUT_NONBLOCK provides the same behaviour for context-level timeouts.
  • New IIO events API. iio_device_create_event_stream opens a stream of
    hardware events (threshold crossings, and so on), read with
    iio_event_stream_read, which is also able to operate without blocking.
    iio_event_get_type, iio_event_get_direction and iio_event_get_channel
    decode the events, and the new iio_event tool exposes them on the command
    line.
  • Event attributes, a new family of attributes alongside the regular and
    debug ones, expose the controls that configure IIO events — enabling an
    event and setting its threshold, for instance. They exist on both devices and
    channels, enumerated with iio_device_get_event_attrs_count /
    iio_device_get_event_attr and iio_channel_get_event_attrs_count /
    iio_channel_get_event_attr, with iio_device_find_event_attr and
    iio_channel_find_event_attr for lookup by name.
  • New public headers: <iio/iio-debug.h> (logging macros), <iio/iio-lock.h>
    (OS-independent mutex and thread helpers), <iio/iio-backend.h> and
    <iio/iiod-client.h> (for out-of-tree plug-in backends).
  • Backends can now be built as loadable modules, including a new emulation
    backend (WITH_EMU_BACKEND) and the iiod-emu server.
  • Zephyr support, for running Libiio and IIOD on RTOS targets.
  • tinyiiod, a minimal IIOD implementation for constrained devices.
  • New command-line tools: iio_ping and iio_event.
  • Reworked C++, Python and C# bindings tracking the new API.
  • Much of the core library was relicensed from LGPL-2.1 to MIT (see
    COPYING_MIT.txt), including the public headers (iio.h, iio-backend.h,
    iio-debug.h, iio-lock.h), the core object implementations (attr,
    backend, block, buffer, channel, context, device, events,
    mask, scan, stream, task, xml and others), parts of IIOD, and the
    whole of tinyiiod. This makes static linking practical on microcontroller,
    baremetal/no-OS and Zephyr targets. The library as a whole remains
    LGPL-2.1-or-later, and the utils and the examples remain GPL-2.0-or-later.
  • The C# bindings were relicensed from LGPL-2.1 to the MIT license, making
    them easier to reuse in closed-source and commercially licensed applications.

Changes:

  • 9a92966 iiod-client: Validate data chunk received for cmd READBUF
  • 128625d doc: fix Doxygen group nesting hiding public API docs
  • 8c3f172 CI: prepare_assets.sh: fix the release asset preparation
  • 8146fae iio-debug: don't pass a null pointer to a "%s" directive
  • 3e5c55f zephyr: iiod: uart: migrate off deprecated ring_buf claim/finish API
  • bb0d832 zephyr: iiod: usb: update get_desc() return type for zephyr bump
  • 083eb3a bindings: csharp: build a .NET 5+ target so the resolver actually ships
  • 0813e90 bindings: csharp: Load the native library by its real name on .NET
  • 8633598 bindings: csharp: Fix UTF-8 string marshaling on .NET
  • 90be4d0 doc: document tool changes from v0.26 to v1.0
2026 — 499 commits
  • ae7ca81 tests: check that libiio.map still matches the public API
  • 22f96a6 core: fix iio_register_get_ticks_us_cb never being defined
  • 65f3e85 build: freeze the exported ABI with a linker version script
  • 11144b4 bindings: check the block accessors for pointer-encoded errors
  • b13a522 iio: document that the block pointer accessors may fail
  • e1a4b12 iio: document DMABUF descriptor ownership and the missing return values
  • e16184f iiod-client: fix iio_block_dequeue() returning byte count, not 0
  • 50b652e zephyr: Upload UF2 files for the built samples
  • a5e9b5a CI: Link all public headers into usr/local/include/iio
  • 4bc83cb emu: allow the emulation backend to be built as a module
  • 8531e9c iio: let modules use iio_parse_format_string()
  • 2569a49 iiod-emu: shut down cleanly on SIGINT and SIGTERM
  • 6976acb iiod-emu: wait for a connection instead of blocking in accept()
  • eeca283 iiod-emu: break client sockets before joining them
  • e09564e iiod-responder: check the read before looking at the command
  • f19fd4b CI: Enable iiod-emu in most of the builds
  • 8151273 context: allow buffers with no channels in the DTD
  • 9c174c6 iiod-emu: take a context URI instead of an XML path
  • 8671cfb emu: serialize access to the shared context state
  • f343111 iiod-emu: compress the served context description
  • 71330e3 iiod-emu: retry accept() failures that are not fatal
  • c52afe5 iiod: make the narrowing conversions in responder.c explicit
  • 86e2047 iiod: use standard inline in ops.h
  • a565a6c iiod-emu: Implement IIOD that uses tinyiiod and is reachable over network
  • 2f89570 iiod-emu: Initial commit
  • 7a16aed zephyr: Real sample setup, move tests out of samples dir
  • c95f049 CMake: Fix missing public headers in macOS framework bundle
  • 77289dc zephyr: iiod: reduce the network client thread stack to a measured size
  • 85f2702 zephyr: tests: pin the thread pool to the connection count
  • b8604c8 zephyr: size the thread pool for one thread per connection
  • 58166c1 iiod: responder: run the server's reader loop on the calling thread
  • f056319 iiod: responder: choose the reader mode by thread pointer
  • f09a17f zephyr: tests: cover a refused enqueue in the iiod responder
  • 9e428b1 treewide: don't store a failed iio_task_enqueue() result
  • 9a712b9 doc: Add a Windows installer description
  • a898db2 zephyr: USB backend fix for pipe reset for different timing sequences
  • 982f681 tests: Add tests that cover the float channel data format
  • 25ba886 doc: Mention how channel data convert function handle float values
  • 2ac2cb1 bindings: Extend the channel data format to include whether samples are float
  • c158ea2 treewide: Handle new scan element format: 'f'
  • 27c4449 zephyr: Add DNS-SD support to the Zephyr network backend
  • a51ca01 examples: README: Add the missing C examples
  • e5e370f examples: README: List where the other languages' examples live
  • c4c582e examples: Turn iiostream_helper into an object
  • a72379b cmake: Skip printing that EMU backend is enabled
  • c7af7d9 cmake: Format main cmake
  • a56b3d4 zephyr: iiod: uart: fix RX ring buffer overflow on write_attr
  • 1a1684f zephyr: dt-bindings: sensor-channels: add channels introduced after v4.4
  • e81c490 zephyr: samples: iiod: fix adltc2990 measurement mode for SENSOR_CHAN_ALL
  • cc3033d zephyr: select REQUIRES_FLOAT_PRINTF for the scan element scale
  • e8d7031 zephyr: samples: iiod: fix the compatible on the ADC overlays
  • 371c7e4 examples: Add example of using iio blocks for ad9361
  • c6c41f8 ci: zephyr: Run twister over the new tests root
  • 2388389 zephyr: iiod: Imply libiio multithreading for network and USB
  • e391ffd zephyr: tests: Add a concurrent iiod client test
  • 3b5e6e0 zephyr: tests: Add ztest coverage for the lock and task layers
  • f31f57c zephyr: samples: iiod: Add a multithreaded twister scenario
  • dbfdd99 zephyr: Add Zephyr implementation of the libiio lock and thread API
  • 3aeb46c iiod: responder: Handle iiod_responder_create() error pointer
  • 2099582 ci: update expected MSVC compat library name in artifact manifest
  • bfed479 inno: install the compat layer DLL
  • fefa103 cmake: fix compat library naming inconsistency on MSVC
  • ed1b0ec cmake: derive compat layer library name from the real build target
  • e4994a4 ci: fix format.sh auto-running on source in FormatCheck
  • 3fb4525 CI: Include iio event tests in tinyiiod-linux tests
  • 0398638 examples: tinyiiod-linux: Add tests for iio events
  • b05ef0b examples: tinyiiod-linux: Simulate a rising-edge event for first channel
  • 7294d92 treewide: Format code that slipped through formatting
  • 2ca4cd0 zephyr: iiod: usb: Give the IIO class its own buffer pools
  • a80e1e6 doc: add Zephyr port page
  • 81b4e2b ci: zephyr: add USB IIOD regression job (native_sim + USB/IP)
  • c19607e zephyr: iiod: samples: add USB transport pytest coverage
  • 6dc4b70 zephyr: snippets: iiod-usb: switch native_sim networking to TAP/zeth
  • a6cdd08 zephyr: iiod: usb: fix pipe 0 desync after RESET_PIPES
  • 4e79a96 docs/conf: Rename documentation -> system-level
  • 86ea985 .github/docs: Use dirhtml instead of html
  • e948707 tests: Add tests that executes the TLS steps in the userguide
  • f76770f doc: Add TLS encription user guide
  • 539b3e2 iiod-client: use -1 for the event stream's infinite timeout
  • 9e1512a utils: iio_event: Check if context is invalid before using it
  • 444134e iiod: don't pre-enqueue empty blocks on output buffers
  • d7ef090 compat: queue every input block before starting the stream
  • d5875a2 compat: add the channel sample read and write helpers
  • e2bd589 usb: only clear io_ctx->transfer if it still points to its own transfer
  • 8eb5c0b CI: Add GitHub Actions workflow for tinyiiod-linux tests
  • f46f6da Add multi-threaded client handling for buffer streaming support
  • 67eb8d6 Add buffer support infrastructure for ADC streaming
  • 67dac36 examples: Add testing infrastructure for tinyiiod-linux
  • dc790d1 Add realistic ADC simulation with multiple channels
  • 5947820 examples: Add basic example of a tinyiiod implementation
  • 7df73ea zephyr: Add support for the Zephyr SENSOR_CHAN_LIGHT channel
  • 56dec71 treewide: Update kernel types
  • 59927a5 iiod: Display patch version in startup message
  • 9c82aa0 tests: Update API tests to include patch version
  • 0047036 bindings: Add patch version support to Python, C#, and C++ bindings
  • bde288c utils: Display patch version in --version output
  • 1267e70 backend: Add patch parameter to get_version callback
  • c3b61bb treewide: Add iio_context_get_version_patch() to public API
  • 50fafde treewide: Add patch version field and update all backends
  • ef7066e cmake: Add patch version to libiio versioning system
  • 9333a85 zephyr: Remove reg devicetree property from IIO devices
  • d91cdf2 zephyr: samples: iiod: add a USB transport build test
  • a35cfe1 zephyr: samples: iiod: document the USB transport
  • eb6c383 zephyr: snippets: iiod-usb: add native_sim support
  • 2181a49 zephyr: snippets: add iiod-usb snippet
  • 9f11555 zephyr: iiod: add USB device stack initialization
  • 223efac zephyr: iiod: usb: add data pipes for buffer streaming
  • 608099e zephyr: iiod: add USB transport
  • ab799f4 zephyr: dts: bindings: add adi,iio-usb binding
  • 3357322 zephyr: Upgrade to zephyr mainline for USB device-next API changes
  • 4e3cfe6 csharp: standardize URI handling across examples
  • 6c5aed1 bindings/csharp: harden remaining classes and add dispose guards
  • f058b1f bindings/csharp: harden Context.cs and Scan.cs against invalid native pointers
  • f98ffee bindings/csharp: harden Device.cs against invalid native pointers
  • 5833acc csharp: harden EventStream.cs and IIOEvent.cs
  • d417e9c bindings/csharp: Harden Channel.cs against invalid native pointers
  • 72c6ef4 bindings/csharp: Harden Block.cs against invalid native pointers
  • 6e7143c bindings/csharp: Add ThrowIfDisposed() guard to IIOObject base class
  • 8cea400 iiod: responder: don't treat a negative response code as a discard length
  • 184a145 ci: add Ubuntu 26.04 build to Azure Pipelines
  • bb200b5 utils: turn iio_tests_helper into an OBJECT lib, rename it
  • 911c339 csharp: Add ErrorCode property to IIOException
  • f32f916 iiod: guard invalidate_sample_size_cache for non-v0 builds
  • bf9723a csharp: remove unreachable Dispose() in event example
  • 87ce9b0 tests: api: skip instead of crashing on null context
  • 278e988 usb, serial: guard refresh_format with binary check
  • 718648f network: guard refresh_format with binary check
  • cd0049b context: Refresh channel format at creation
  • ffd8ecd bindings: Add refresh_format() for C++, C#, and Python
  • a7a6b65 channel: Add runtime format refresh with IIOD protocol support
  • 182271d local: fix mmap/dmabuf block hang on small block sizes
  • 6461404 bindings: python: fix iio_device_get_trigger for v1.0 API
  • 05ccb4b cmake: Fix macOS framework installation path for OSX_PACKAGE=OFF
  • 45d2bd5 zephyr: dt-bindings: sensor-channels: sync channels to Zephyr v4.4
  • ca33fc7 zephyr: dt-bindings: sensor-channels: use relative value expressions
  • ca8a5f7 iiod-client: fix reg_write not waiting for its actual response
  • 27b0d3c zephyr: samples: overlays: introduce typed iio-sensors/iio-adcs sub-bus hierarchy
  • 62a9ca5 zephyr: iiod: network: consolidate hex debug with LOG_HEXDUMP_DBG
  • 3d2783b doc: add libiio 0.x to 1.x API migration guide
  • 049c0b4 zephyr: samples: iiod: remove redundant network console test
  • 2d617ce zephyr: Update sensor-channels.h
  • a475335 Relicense C# bindings under MIT license
  • 10aa862 Python bindings: define license as a string SPDX expression
  • 14387cf bindings/csharp: Reorganize Device.cs following C# conventions
  • facba37 libiio.iss: set LIBIIO_VERSION system environment variable
  • 90730f8 bindings/csharp: Improve and update mainpage.dox documentation
  • 3d444fb Revert "CSharp binding: fix syntax"
  • ba60d61 stream: Send DISABLE/CLOSE command on stream destroy
  • 6ea4de8 bindings/python: Fix Python on embedded systems without dev tools
  • a1900b0 docs: Add libserialport installation guide to README_BUILD.md
  • 6ebe43c cmake: Enable serial backend by default [ #1272 ]
  • e1d2205 emu: Fix buffer detection for legacy XML with scan-elements
  • 4db632e xml: Fix buffer detection for v0.x XML with v1.0 client
  • 47ff13d iio_stresstest: fix hang and improve shutdown responsiveness
  • 9b534c4 iiod: fix race in handle_open_buffer
  • b61bcfd lock-windows: Close thread handle after join
  • 8f37206 network: Fix pipe2() fallback handling
  • 46047d5 treeview: Update kernel types
  • 5ca0bde azure-pipelines: Fix Builds stage being skipped on non-PR runs
  • 4d741d9 zephyr: iiod: poll port instead of waiting for DUT log line
  • f7464ea ci: zephyr: Turn the tests on
  • c2d0b5c zephyr: iiod: fix network pytest readiness check and timeout
  • 1a80546 ci: zephyr: Fix cmake arguments
  • cf13d82 ci: zephyr: add regression tests job against native_sim IIOD backend
  • 0541ff8 tests: api: skip duration check when connection fails before timeout
  • d8e7ad3 zephyr: iiod: fix ADC channel naming and pytest fixture scope
  • 6ec5e58 bindings/cpp: add iio_context_ping support
  • b3a679a bindings/python: add iio_context_ping support
  • f56e21a bindings/csharp: add iio_context_ping support
  • c37a692 man: add iio_ping man page
  • e1ebc64 emu: add ping support
  • c1a37c3 utils: add iio_ping utility
  • 1ebe6cd local: add ping support
  • ecde4e1 serial: add ping support via iiod_client_nop
  • 1081f88 usb: add ping support via iiod_client_nop
  • 3ae7109 treewide: add IIOD_OP_NOP command for connection liveness testing
  • 283d516 git subrepo clone https://github.com/mjansson/mdns deps/mdns
  • 68a057e git subrepo clone https://github.com/alex85k/wingetopt.git deps/wingetopt
  • 9e1a9d6 git subrepo clone https://github.com/pcercuei/libini.git deps/libini
  • c001079 zephyr: iiod: README document pytest local run and fix pyadi-iio
  • e228deb ci: fix tags.json generation script and reduce deployment noise
  • 9b62796 zephyr: CMakeLists edit to include libiio log messages
  • 868399b zephyr: logging: Add of
  • 45be7df zephyr: network: Change name of log module
  • 07ba005 zephyr: logging: Zephyr-specific implementation of iio_prm_printf.
  • f2920f9 context: sort scan elements by hardware index on init
  • c66e2fc CI: add versioned doc deployment with tags.json support
  • cd9810d git-blame: Ignore formatting commit f357618
  • da71144 azure-pipelines: Add code formatting check for Pull Requests
  • 5b43a23 ci: zephyr: Upgrade to action-zephyr-setup v1.0.14
  • f357618 treewide: Format entire codebase
  • cb754e2 code-format: Don't let formatter alter the include order for dns files
  • 7f5d56e code-format: Add script that formats entire code base
  • bd5be2e general tweaks for code updates - no functional changes
  • 8359d69 clang-format: Don't align backslashes
  • 3ef1660 add default formatting templates for clang-format and cmake-format [ #397, #411 ]
  • 8c40f33 zephyr: Fix build failure after adding device event attributes
  • bae9d68 zephyr: iiod: Extend pytest suite to cover UART transport
  • 8ee5ce3 zephyr: iiod: Add pytest integration test suite for network sample
  • 54596b8 ci: zephyr: Build libiio and install Python bindings from source
  • ef3c98a zephyr: Enable iiod-console snippet on native_sim
  • de02ac6 zephyr: Configure native_sim to use offloaded sockets
  • 63f34ae bindings/csharp: build examples in CI
  • 9815c0e bindings/csharp: pluto example
  • 926fa0b doc: suppress sphinx-csharp xref warnings for IReadOnly types
  • 8da8c50 bindings/csharp: use IReadOnly interfaces for Context and Scan collections
  • e904ee0 bindings/csharp: include label in get_device() and get_channel()
  • 64e10ab bindings/csharp/IOBuffer: cache scan_elements as IReadOnlyList in IOBuffer
  • 4330e56 bindings/csharp/IOBuffer: use IReadOnly interfaces for IOBuffer collections
  • 4eca264 bindings/csharp/Channel: use IReadOnly interfaces for Channel collections
  • a987d20 bindings/csharp/Trigger: use ContainsKey for frequency attr lookup
  • b190cb6 bindings/csharp/Device: use IReadOnly interfaces for Device collections
  • c329558 bindings/csharp/Context: fix wrong comment in Context.cs
  • cdf4653 tests: Add comprehensive event attributes tests
  • d38d4c4 Add EMU backend support for event attributes
  • 769ab8d bindings: Add support for event attributes
  • 93ef6cc Add IIOD protocol support for event attributes
  • 2d314be utils: Add event attributes support to iio_info and iio_attr
  • afabcb2 iio: Add event attribute API for devices and channels
  • c2dca36 treewide: Add storage infrastructure for event attributes
  • 0a2c336 iio-backend: Add device and channel event types
  • 080a4f6 tests: Reduce test execution time by avoiding DNS timeout delays
  • f29fea6 tests: Optimise test_context wait times for EMU backend
  • 486cf1a zephyr: Upgrade to zephyr v4.4.1
  • b497d7b ci: Drop macos-15-intel from zephyr workflow
  • bb12392 zephyr: samples: Update README
  • a8a1cf3 CI: Grant write permissions for GitHub Pages deployment
  • efd5034 ci: Make linkcheck non-blocking in documentation workflow
  • 675cd4e docs: Add documentation contributor guide
  • 630cf0a docs: Add C++ bindings documentation
  • bf343d9 docs: Suppress unavoidable C# xref warnings for CI compatibility
  • 9ac2a1e docs: Add C# API classes documentation
  • 03da98a docs: Use Breathe for C# bindings documentation integration
  • 8b809c6 doc: Apply layout and styling improvements
  • a7d477a doc: Convert index from Markdown to RST and add framework logos
  • a49a8d8 doc: Fix linkcheck timeouts and redirects
  • 936e74a ci: Override MinAlertLevel to error in Vale CI job
  • 7027223 doc: Small tweaks based on what vale tool found
  • 8aab82b ci: Configure Vale to only fail on errors, not warnings
  • 89f1120 vale: Ignore URLs and links in linting
  • 88de9fe vale: Reduce errors by lowering autogen severity
  • a2edf63 doc: Configure linkcheck to treat timeouts as warnings
  • e1fff53 doc: Fix broken and redirect links
  • 03d5c71 doc: Sync the .rst man pages with the current implementation
  • 688091a doc: Fix typo "is is" in man pages and tool documentation
  • 45895f3 vale: Add technical terms to vocabulary accept list
  • acfea43 vale: Ignore code blocks to reduce false positives
  • 2bdb5d8 vale: Add regex patterns for C identifiers to accept list
  • d578d61 doc: Update Sphinx version requirements >=8.2
  • 10f8854 CI: Update Python version from 3.8 to 3.11 in doc.yml
  • e5b0acf doc: Add custom.css with generic styling improvements
  • 78f6037 ci: Use Python virtual environment in documentation workflow
  • dbae90d doc: Update documentation build section in README_BUILD.md
  • 9af414f doc: Update adi-doctools minimum version to 0.4.33
  • 9f1e888 doc: Add ADI project cross-references
  • 960814d CI: Install docutils to fix Vale lintRST runtime error
  • 91b8706 doc: Remove invalid transition in source.md
  • b66222c doc: Fix duplicate C++ declaration warning in scan.rst
  • b36607f doc: Fix issue found by codespell check
  • 37b0899 CI: Set explicit permissions block for GITHUB_TOKEN
  • fecab0e cmake: Remove old Doxygen-based documentation infrastructure
  • 8edfadf CI: Deploy doc to /v{VERSION} directory when new tag is pushed
  • b1407df CI: Use Github Actions to deploy doc into main folder
  • c4edfd2 azure-pipelines: Stop building and deploying documentation
  • 4536a4f doc: Use 'doxygengroup' directive in scan.rst
  • a684702 Add CI for sphinx doc builds
  • ef99154 Add Sphinx doc and helper scripts
  • f84d708 Remove old doxygen based doc
  • 2b39510 zephyr: iiod: Replace startup sleep with Connection Manager wait
  • bd1d63b device: fall back to attr method if backend reg op returns -ENOSYS
  • f33c913 bindings/csharp: expose iio_buffer_get_scan_element APIs
  • 6c117cd bindings/cpp: expose iio_buffer_get_scan_element APIs
  • 4ab5e9c bindings/python: expose iio_buffer_get_scan_element APIs
  • aa50c16 emu: Add multi-buffer support
  • 20d0c73 fix: V-001 security vulnerability
  • b5f51f6 zephyr: iiod: Remove double ctx create in uart.c
  • be9f7de utils: iio_attr: Remove unused buffer allocations
  • 8c58a83 utils: iio_attr: Remove unused dev parameter from print_attribute_value
  • 278a999 utils: gen_code: Support multi-buffer code generation
  • 85e9c88 utils: iio_attr: Support multiple buffers
  • f55520f doc: Update mainpage for multi-buffer support
  • 6592724 man: iio_rwdev: Document -i/--buffer-index option
  • 5e49045 utils: iio_rwdev: Fix TX cyclic transfers
  • 6e0c90e utils: iio_rwdev: Support multiple buffers
  • 0248cdf utils: iio_info: Support dumping multiple buffers
  • 7af35bd buffer: Add API to get scan elements per buffer
  • 7bfba52 xml: Deserialize buffer scan elements
  • 2926550 device: Serialize per buffer scan elements
  • 0b5e9ce local: Support creating multiple buffers in create_device()
  • d3e54d9 treewide: Refactor how scan elements are handled
  • 16cc88f local: Factor out adding channel attr when creating
  • 6dd8b94 local: Fix create_device() error path
  • 8921109 zephyr: Extend iiod sample to support eval_adxl362_ardz shield
  • 92d5b96 zephyr: Extend iiod sample application to support frdm_k64f sensor
  • 4b6e582 packaging: Map Kuiper Linux to deb package
  • beedd89 zephyr: Set device names in iiod sample application
  • 71c2d2d zephyr: Refactor devicetree properties into a shared base binding
  • 520574e zephyr: Handle reads for larger LIBIIO_IIOD_UART_RX_BUF_SIZE values
  • 16b2daf tests: add documentation for test suite
  • 75f728b codespell: ignore IST timezone abbreviation in fmcomms2.xml
  • 9cb6c52 tests: remove pluto.xml and update C# bindings to use fmcomms3.xml
  • 823c4f2 tests/CI: run API tests against the emu backend
  • 32af424 zephyr: sensor: Remove unused variables
  • 9d51bb3 zephyr: sensor: Add handling of drivers without SENSOR_CHAN_ALL
  • cbf5951 zephyr: Extend iiod sample application to support pmod_acl shield
  • 90984b3 zephyr: Refactor iiod sample application build configuration
  • 7f9554e zephyr: Remove undefined iio_device api function implementation
  • b09cc43 zephyr: Add missing sensor devicetree binding
  • 574a3d1 zephyr: samples: Add of emulated, adxl345 and multi sensor exxamples
  • be219e9 zephyr: sensor: Add of sensor infrastructure
  • 4cc1ac7 treewide: switch to iio_fopen() for cross-platform file opening
  • e93496c utilities: add iio_fopen() cross-platform wrapper
  • 1aa9ef2 CMakeLists: allow compat layer enablement on MacOS.
  • f70c138 emu: use device names for buffer filenames
  • cd7c465 cmake: add emu backend to feature summary
  • 9b2203b iiod: responder: Simplify handle_close_buffer()
  • 5bc9c4a iiod: responder: Fix buflist deadlock
  • b10c0cf iio_common: remove dead prefix-URI path from handle_common_opts
  • 5e32d5d iio_common: forward params for local and prefix backends
  • 58cf6a2 zephyr: drivers: Fix io_channels CI/CD issue
  • b7b2fda zephyr: samples: adc-emul
  • 87f1497 serial: Increase the timeout x10 as this is the slowest backend
  • 5385b39 iio: add v0/v1 timeout backward compatibility
  • 20cd004 network: use context timeout for buffer socket connections
  • 4e6809f tests: add test cases for new timeout semantics
  • 7cb6cff bindings: update timeout parameter type to signed int
  • cf86d37 utils: update timeout handling for new signed int semantics
  • decd305 iiod: update timeout handling for signed int
  • 09b757d iio: update backend code for signed timeout convention
  • 92b6921 iio: add timeout resolution logic at boundary points
  • 721e46a iio: change timeout type from unsigned int to signed int in headers
  • 596daa6 emu: parse context metadata from XML attributes
  • 0ac657e emu: replace ENODATA with EIO for FreeBSD compatibility
  • d5b6e75 emu: fix MSVC build warnings
  • 565ec60 iiod-client: null-terminate XML string in non-ZSTD path
  • 69935d4 bindings/csharp: Add readme for C# tests
  • a9fa854 CI: Integrate C# bindings tests into CI pipeline
  • 51129fc CI: Include the emu backend in all Posix builds
  • 8f00051 bindings/csharp: Add integration tests with emulation backend
  • 078b74a tests: Add XML test resources directory for emulation backend tests
  • c59d763 bindings/csharp: Add smoke tests and test framework
  • ba6ec92 bindings/csharp: Add DLL dependency collector for C# tests
  • 5bfafd8 bindings/csharp: expose local library version via IioLib
  • f254960 emu: add register read/write support
  • 64efb49 emu: move context creation message to debug level
  • 10653d4 emu: add file-based buffer streaming support
  • 3d8107c iio_reg: fix context leak on successful register access
  • a2573e7 doc: iio_attr: document -f flag
  • a6cca32 iio_attr: add -f flag to write raw bytes from a file
  • 7c23776 emu: fix sscanf MSVC build warning
  • 8b2bff8 zephyr: iio_channels: Increase the scale decimal accuracy
  • 678c291 zephyr: Refactor the ADC iio_device to more flexible io channels
  • 75796e8 zephyr: iio: Allow overriding the IO device name
  • b963cc2 cmake: preserve CMAKE_REQUIRED_DEFINITIONS on BSD
  • b0f3d1e cmake: align check_symbol_exists with build flags
  • 930f30c CI: Temporarly disable license check for Windows builds
  • 90696c6 CODEOWNERS: Remove deleted user
  • e49f8b6 bindings: csharp: Add IOBuffer.output property
  • 01cc592 bindings: python: Add Buffer.output property
  • a0cbb73 bindings: cpp: Add Buffer::is_output()
  • 8c02614 iio: Remove iio_device_is_tx()
  • 569e98a compat: Use iio_buffer_is_output() instead of local iio_device_is_tx()
  • 3066d97 iiod: responder: Use iio_buffer_is_output() instead of local iio_buffer_is_tx()
  • 3bf4d01 local-mmap: Use iio_buffer_is_output() instead of iio_device_is_tx()
  • 21965df iiod-client: Use iio_buffer_is_output() instead of iio_device_is_tx()
  • 8935713 stream: Use iio_buffer_is_output() instead of iio_device_is_tx()
  • f288502 block: Use iio_buffer_is_output() instead of iio_device_is_tx()
  • 0afcc10 iio: Add public API iio_buffer_is_output()
  • 3b774ce xml: Deserialize buffer direction from XML
  • d2152d9 device: Serialize buffer direction in XML output
  • 0fcb9aa local: Add direction field to struct iio_buffer and read it from sysfs
  • 387f807 emu: make _available attributes read-only
  • 9e7584e emu: validate writes against _available attributes
  • 22134f7 treewide: register the emulation backend
  • 2d43caf cmake: add CMake support for the emulation backend
  • 94e723b emu: Add emulation backend for XML-based contexts
  • be371a8 iio.h: remove __pure from functions that write via pointers
  • 09fc51b test freebsd
  • d93aaf7 test on windows builds
  • e012bfb debug
  • 2aa1660 debug these scripts in CI
  • 3a036f3 utils: add POSIX_C_SOURCE for internal library
  • d43e96e temporarily turn this on to check syntax on various systems
  • bdb1a65 docs: add detailed license warning to main libiio header
  • 0f9cef4 make: add SPDX license audit script for compliance checking
  • 51d5640 iiod/dns-sd : Update SPDX-License-Identifier
  • fa80fc9 licenses : Add or clarify SPDX
  • b875040 dns-sd : fix capitilization on SPDX line
  • 656081b zephyr: Add a test for MAX32 ADC
  • d136133 zephyr: Raw channel attribute upgrade
  • 69c8f82 zephyr: Add differential channel attribute
  • fb8045d zephyr: Add reference channel attribute
  • 0e8ad43 zephyr: Add process channel attribute
  • 183727b zephyr: Add gain channel attribute
  • b31357d zephyr: Implement scale attribute
  • 4c99a73 zephyr: Add internal reference voltage attribute
  • 91d64c0 zephyr: Scale attribute presence check
  • 2a9093a zephyr: Add checking of attribute type
  • 855729c Doxyfile: Remove compat layer from documentation
  • 833a815 CMakeLists: Fix man2html conversion for utility man pages
  • e206f84 Doxyfile: Include static function description in Doxygen
  • a17e7fb CMakeLists: Add correct path to iio.h for Doxygen
  • 716bd84 treewide: docs: Update to the new API
  • 2705994 treewide: Complete iio_stream conversion
  • e743926 compat: Convert to the new APIs
  • dd9e5d9 channel: Use the new iio_block_get_buffer_stream() API
  • 246315c bindings: csharp: Convert to the new API
  • fda2703 bindings: python: Convert to the new API
  • 118a533 bindings: cpp: Convert to the new API
  • e8aee4e tests: test_buffer: Use stream APIs for open/enable/cancel paths
  • 2e14ca8 tests: test_ad9364: Convert to new stream API
  • 360f314 examples: iio_adi_xflow_check: Convert to new stream API
  • df41bc0 examples: dummy-iiostream: Convert to new stream API
  • 2586faf examples: adrv9002-iiostream: Convert to new stream API
  • 16091e1 examples: adrv9009-iiostream: Convert to new stream API
  • ca4d891 examples: ad9371-iiostream: Convert to new stream API
  • 6d5241d examples: ad9361-iiostream: Convert to new stream API
  • 2037563 utils: iio_stresstest: Convert to the new stream API
  • 7ebd936 utils: iio_rwdev: Convert to the new stream API
  • 5f98447 iiod: Update to use the new buffer_stream API
  • e062edf stream: Add new stream API based on buffer_stream
  • 3aaedfc block: Add new API based on buffer_stream
  • 8214a73 buffer: Add new buffer_stream API
  • 410f936 iio: document hwmon device verification for channel type functions
  • a4f1a0b README_BUILD: Fix wrong include path for Libusb
  • 40ae30d treewide: New OPCODES for register read & write
  • 0bd1490 libiio: backend: Add atomic register access support for local backend
  • ba1c2a8 iio_genxml: Add -e flag to include attribute values in XML
  • 3dc79fb utils: Extend handle_common_opts to accept context params
  • ddae85d context: Add attribute value reading for XML generation
  • 08ec141 treewide: Extend XML generation to support optional attribute values
  • a8572a5 treewide: Add attribute value arrays to device, buffer and channel structs
  • 230b077 iio.h: Add flags field to iio_context_params
  • 98ce127 utils: Add buffer attribute code generation
  • e488659 utils: Use attr type instead of string prefix for debug attributes
  • bbb9b04 utils: Drop extra ctx argument from iio_attr_get_static_value()
  • 270a4c8 utils: Add missing const to iio_attr in generated code
  • db4c663 fix C# bindings on macOS framework installs using DllMap
  • 4a3954a add NativeLibrary resolver for macOS framework installs to fix c#-bindings
  • 72ef2eb fix library loading on macOS framework installs for python bindings
  • 60ea22a CI: improve MSVC pipeline to support multiple build configurations
  • 1ca0594 README_BUILD: Add support info for VS2026 build
  • 4f4332c zephyr: Include required posix headers directly
  • fb37bbc csharp: Use byte buffer instead of StringBuilder
  • e7f64f2 bindings: c#: Use UTF-8 for bytes conversion
  • d95678d bindings: python: Use UTF-8 for bytes conversion
  • e98438c README_DEVELOPERS: Update Readme to cover VS2026 build artifacts
  • 04b06c5 azure-pipeline: Add windows and VS 2025
  • 009e2de windows_build_deps: Add VS 2026 compiler
  • baf17c1 README_BUILD: Add a table of contents
  • 0f82e5b README_BUILD: Add building instruction for Windows
  • 4b0a74a iiod: Rename binary opcodes CREATE/FREE_BUFFER to OPEN/CLOSE_BUFFER
  • 96074ae treewide: Rename create_buffer/free_buffer to open_buffer/close_buffer
  • 4af08b2 api: test_buffer: Use pre-allocated buffer
  • 9d0524b utils: iio_attr: Use pre-allocated buffer
  • 3ad075f utils: iio_info: Use pre-allocated buffer
  • 1f9004c iiod: Make use of pre-allocated buffer
  • bca7c56 treewide: Don't add buffer attributes to the device list
  • b3fce76 buffer: don't copy attrs from buffers in device
  • 016781d xml: Deserialize pre-allocated buffers
  • 2fd4c15 device: Serialize pre-allocated buffer
  • dd78d94 device: Add public API to get buffers
  • d4b5481 treewide: create buffers when adding devices
  • 3ed608c network-windows: Fix race condition in wait_cancellable
  • 6b3a0e9 dns_sd: Improve time at scanning
  • 2cdd4b5 zephyr: iiod: account for null terminator in xml_len
  • 9e5eaff README_BUILD: Now build supports Debug, update readme.
  • c93b090 CMakeLists: Fix build in debug mode using MSVC compiler
  • cf0c004 ci: Ignore rsource in codespell check
  • 769fd21 ci: Add a zephyr workflow
  • 466a65d zephyr: Add iiod sample application
  • d26866e zephyr: Add iiod network interface snippet
  • 9aebdd1 zephyr: Add console snippet
  • e32c754 zephyr: Add usb cdc-acm snippet
  • c68f43b zephyr: Add iiod server over a network interface
  • 10742a9 zephyr: Add iiod server over a uart interface
  • 981ea7f zephyr: Introduce zephyr backend
  • 31932b2 zephyr: Add adc emulator signal generator driver
  • 89eb17e zephyr: Implement iio device driver class for adc
  • 8a5da49 zephyr: Introduce iio device driver class
  • dc3de73 zephyr: Integrate libiio into the zephyr build system
  • aa40137 tinyiiod: Enable support for multiple parallel clients
  • 263a05e iiod: responder: Reduce stack-allocated buffer sizes for tinyiiod builds
  • 9815eca iiod: Fix iio-config.h include path
  • 703933b treewide: Replace BIT* macros with IIO_BIT*
  • 18e5f74 treewide: Replace IF_ENABLED macro with IIO_IF_ENABLED
  • e7742ec treewide: Replace ARRAY_SIZE macro with IIO_ARRAY_SIZE
  • 6ec5309 iiod: responder: Simplify get_iio_buffer()
  • 4ea8e6b iiod: responder: Fix possible leak and use after free
  • c971edc iiod: responder: Remove unused netinet/in.h header
  • db00070 Revert "iiod: responder: Define own ntohl() when not available"
  • 2c08f3f attr: Use HEAP memory instead of large variables on stack
  • 7ccfbda CI:azure:windows_build_deps.cmd: Enforce MSVC libxml build
  • ba372ae utils: Fix iio_attr not showing relevant attr info
  • c6b39cf azure-pipelines: Avoid unsupported mapping values
  • 0c481a2 ci: ensure proper build type for releases and nightlies
  • df0606b CI: Fix Windows installer generation for VS 2022 runtime
  • 638f9e7 CI: Remove no longer supported windows-2019
  • 0f6b8be attr: Fix available detection for buffers
2025 — 272 commits
  • fa3811c CI: Stop creating artifacts for macOS-13
  • 84ef407 gh-actions: Add explicit read permissions for tests
  • 3dd0a23 cmake: Filter unwanted files from coverage report
  • 9e279bc tests: Add README for the API tests
  • d1059fd tests: Add a test runner that runs all api tests
  • 1a5cacb tests: Add tests for for low-level functions
  • 70eb3a9 tests: Add tests for iio buffer
  • 3dd6be7 tests: Add tests for typed iio attributes
  • 91bf722 tests: Add tests for iio attributes
  • 06d29a6 tests: Add tests for iio channel
  • 1de5f58 tests: Add hwmon tests
  • 8f3d3f4 tests: Add tests for iio events
  • 6fa8f0e tests: Add tests for iio device
  • f8216f4 tests: Add tests for iio context
  • 29e8266 tests: Add tests for iio backends and iio_strerr
  • 2a485da tests: Add tests for iio scanning
  • 5aee387 tests: Add testing framework and error handling tests
  • 6735e85 cmake: Use modern cmake call to add coverage flags
  • 958fcb0 tests/hardware/cmake: Refactor to easily add more tests
  • 49f65e3 CMake: lcov -d needs the directory where the .gcda/.gcno file are
  • 9215792 Add TESTS flags to build readme
  • 2dda06d Add github action for tests
  • fdf6f87 Add initial testing with coverage
  • 843d30f cmake: Add option to install iiod hotplug udev rules
  • 0daf475 CI: Remove no longer supported macos-13
  • 26e76f6 network-unix: do_select should be able to wait indefinitely
  • 51313c5 utils: iio-common: Fix --timeout=0 cmdline option to work as documented
  • d96f3c1 treewide: Add support for infinite timeout in context parameters
  • 1f80205 README_BUILD: Document DMA path environment var
  • cc84d3c local: Enable users to configure the DMA allocator via an env var
  • a841be8 man: Remove references of 'cma'
  • c2769cf Revert "task: Added struct iio_buffer_params for future use"
  • 84e8c02 Revert "task: Implement iio_buffer_params struct and make CMA selectable at runtime"
  • dcca5b5 Revert "task: Added -C option in iio_rwdev.c and iio_stresstest.c"
  • c496331 Revert "buffer: add reserved space to struct iio_buffer_params"
  • 9c3e7e4 Revert "iiod: fix struct iio_buffer_params not being handled"
  • 4847133 Revert "examples: update call iio_device_create_buffer()"
  • 71848cf Revert "utils: update call iio_device_create_buffer()"
  • e4dae5c Revert "iiod: ops: update call iio_device_create_buffer()"
  • 44bb23a utils: iio_rwdev: no error on missing trigger frequency attr
  • 7371098 README_BUILD: Point to the Python bindings README
  • 0acdac3 README_BUILD: Fix CMake Options table for COMPILE_WARNING_AS_ERROR
  • db62b72 CI: Update path to libiio python bindings
  • de824ed Remove python from Windows CI
  • 81b8077 Add CI for python bindings
  • c6e0b7c Update python bindings errors when looking for lib
  • 7c91551 Update python bindings packaging
  • e97f159 Remove python from CMake
  • de2676e network: Normalize getaddrinfo() return codes.
  • 5a56ecb dnssd: Handle WSA errors that select() can return
  • a9124eb network: Don't rely on errno when on Windows
  • 16f88f9 utils-windows: Add more WSA error codes
  • 6d64df5 CMake: Bring back lost NO_THREADS definition
  • 24ec0eb CI: Simplify check_kernel.sh by removing 'set +/-e'
  • dc0d73f CI: Don't exist when grep command returns non zero
  • 3f651bc CI: Fix CI by installing the right cmake package
  • dec23ee CI: Update actions to latest version (v5)
  • 0f95942 CI: Update vmactions/freebsd-vm to latest version
  • f9bdf36 iiod: responder: Return -EEXIST when block already exists
  • 0259c18 iiod: responder: Add missing discard() function
  • ad11b8f iiod: responder: Protect against creating the same buffer more than once
  • 4f541b5 iiod: responder: Add get_iio_buffer_unlocked()
  • 6a1cfc9 bindings: python: Sync IIO channel types and modifiers with kernel
  • bfe730e bindings: csharp: Sync IIO channel types and modifiers with kernel
  • e0dac68 treewide: Sync IIO channel types and modifiers with latest kernel
  • a6d9fe6 network: Improve cross-platform SO_ERROR handling
  • 8a47cf2 dnssd: Translate WSA error code to POSIX
  • c160df7 network: Translate WSA error codes to POSIX codes
  • 8e038d0 network: Move Windows WSAStartup to platform-specific init function
  • 432e495 utils-windows: Add comprehensive WSA to POSIX error translation
  • e1a6000 network: Properly handle return values of WSAStartup()
  • 9f6dd68 dns_sd_windows: Fix access violation crash in query_callback
  • daeae9c CI: Update name of the libxml dll used in the MinGW job
  • 571ed98 CMake: Link ws2_32 for windows client
  • 7e5b2ad CMake: Create a separate library for wingetopt
  • 37b7852 examples: adrv9002-iiostream: Initialize local var to please compiler
  • d7787d0 examples: adrv9002-iiostream: Error message when fail to create iio masks
  • aeee544 examples: ad9361-iiostream: Cast value that errchk() takes
  • 9229498 examples: dummy-iiostream: Cast error code when passed to dev_perror
  • 53749d1 examples: dummy-iiostream: Split shutdown() into cleanup and exit
  • add551c examples: adrv9009-iiostream: Split shutdown() into cleanup and exit
  • 6aba4fe examples: ad9371-iiostream: Split shutdown() into cleanup and exit
  • bc8097d examples: ad9361-iiostream: Split shutdown() into cleanup and exit
  • 31a2bfd azure-pipelines: Enable building examples for Ubuntu 24
  • 81a043d CI: Enable building examples for MSVC builds
  • 4da4cd3 examples: adrv9009-iiostream: Take URI via cmdline
  • 01d868e examples: adrv9002-iiostream: Take URI via cmdline
  • f382116 examples: ad9371-iiostream: Take URI via cmdline
  • 645cbcb README: Add adrv9002 to the list of examples
  • 43f8771 artifact_manifest: Remove duplicates. Add missing iio_genxml
  • 1a3b3d3 examples: adrv9002: Fix windows build
  • a8e97e2 README_BUILD: Fix grammar (use 'affect' instead of 'effect')
  • fd9a03c CMake: Fix typo (iod -> iiod) when displaying status of iiod features
  • 1935245 cmake: Treat iio-monitor, iio_adi_xflow_check entirely as examples
  • a34938a cmake: Rename old name of variable storing utils targets
  • e5830be network: add flag to convert SIGPIPE to EPIPE
  • 098e713 local: Properly initialize device fd
  • 6a6c502 bindings/csharp: Update C# API that binds with the builtin backends api
  • 0796835 iiod-client: Export Event symbols
  • 90e5f66 utils: Enhance the display of attributes with _available
  • b230939 iio_info: Make use of new API that can list range & available list
  • 4a77971 Add helpers to extract range and items from _available attributes
  • 2c95cd9 bindings/csharp: Enable retrieving context parameters
  • d33a45d bindings/csharp: Enable setting context parameters upon context creation
  • e741611 bindings/csharp: Remove both C and C# calls that clone context
  • 5304ac5 utils: Update how iio.h is included in the generated code
  • 41942b1 utils: Swap attr name with read/write in code generation
  • 9990fd0 CI: Skip comment lines when parsing CMakeLists.txt files
  • 839d4ef CI: Make check_README_BUILD.sh support iio_option()
  • a950da3 CI: Extend the iio_toggle_feature() checking by looking at OPTIONS_LISTS
  • 39dd290 iiod: responder: Define own ntohl() when not available
  • 0ab9b9f azure-pipelines: Add check for MCU (ARM Cortex-M4) configuration
  • be999f7 treewide: Allow users defined implementations when time isn't available
  • 2bf6af8 README_BUILD.md: Create 2 instruction sets: Linux/BSD/Win and MCU
  • 05fc402 CMake: Add cmake toolchain file for cross compiling for ARM
  • 0d65a5f CMake: Group options based on POSIX or MCU configurations
  • 68f9962 CMake: Defer adding subproject features to ON/OFF lists until the end
  • 374f96c CMake: Enable/disable C++ examples independently of the C++ bindings
  • 8a2c6bc sort: Make sure to qsort valid lists with at least 2 elements
  • ccc184b attr: Fix context attributes getting out of sync with their values
  • 8f1ffd6 iiod: Print the data when ZSTD compression fails
  • 5435328 channel: Provide an error message if sample size is to big
  • dfca99a iiod: Use the correct variable when printing ZSTD error
  • 78c8e7c CI: Remove broken libxml2-config.cmake
  • 99cfdac CI: Install pkgconf
  • 4b30094 xml: Call xmlMemoryDump() only if not deprecated
  • f36e8f8 CI: Update FreeBSD to 13.5
  • 253cb8b man: Update iio_rwdev
  • b24e9d2 man: Update iiod
  • 575e115 man: Update iio_attr
  • 9c01a95 man: Update iio_info
  • 92da68c man: Update iio_stresstest
  • 4d1c9ff man: Move timeout option (-T) into the common options
  • 2d5b71e utils: Update the entire iio_stresstest options description
  • f4e335b utils: Remove unused option 's' from iio_stresstest
  • 5158087 utils: Remove from iio_genxml unused but documented options
  • 2ba90d8 utils: Remove from iio_info an unused but documented option
  • 7e4664b utils: Fix improper end of option list
  • 5b4ff3c utils: iio_info: add options to control reading sysfs and debugfs attributes
  • df7e8a5 local: log channel label read errors as debug
  • 5c8de09 utils: iio_attr: add option to not readback when writing
  • 5cd7c46 utils: Fix iio_device_create_buffer() called with wrong parameters
  • e383ceb stream: improve readability in iio_stream_destroy()
  • edb8a76 utilities: Remove unused function iio_list_has_elemt()
  • 7b88c0d python: Remove deprecated license classifier. Use 'license' key instead.
  • 874bf89 usb: Fix warning generated by newer version of MSVC
  • e8fed44 github: fix PR template spelling
  • f79608e CI/azure/generateDocumentation: update branch to main
  • 89987cb azure-pipelines.yml: add support for new macOS distributions
  • 45b6b3e iio.h: Fix description for API that returns an iio_attr struct
  • 125ec7b git subrepo pull deps/libini
  • 189dcd2 deps/libini: Fix parent commit hash
  • 40cb499 cpp bindings/cmake: Prefer std::optional, fall back to Boost for compatibility
  • 5ec0cf7 rename iiopp.h to iio.hpp
  • cfd04fa cmake:add_requirements2tar.sh.in: modify regex
  • 2570ac4 azure-pipelines.yml: remove centos7
  • ee37da6 azure-pipelines.yml: add support for ubuntu-24.04
  • 88151f1 CMake: Use linker flag -Bsymbolic only on the shared library
  • 4ba3334 CMake: Require cmake version 3.13 or higher
  • 9e6895c iiod: ops: update call iio_device_create_buffer()
  • 95dc678 utils: update call iio_device_create_buffer()
  • 58e333d examples: update call iio_device_create_buffer()
  • 733a681 iiod: fix struct iio_buffer_params not being handled
  • 5f52c98 buffer: add reserved space to struct iio_buffer_params
  • c99e649 mingw64 - fix CI issues
  • ac2602d Relicense specific files under MIT license #1210 [ #1210 ]
  • bbe33cb CI: Update FreeBSD to 13.4
  • 4f158a6 cmake: ensure cmake options are printed out
  • 6a2b93c iio.h: Fix desctiption for iio_device_create_buffer()
  • b38692e local: Fix disabling of IIO buffers in local_enable_buffer
  • fe11ae8 cmake/doc: Ensure users see the default install path [ #1276 ]
  • c94fac9 CMake: Find ZSTD library for the backends that need it
  • 16531a7 cmake: Detect better when ZSTD dependency is required
  • e567781 local-dmabuf: Improve checks for DMABUF interface support
  • ca3cbca treewide: CMakeLists: make sure to log all CMake options
  • 821c36d azure-pipelines: Disable ASLR for pcc64le builds to pass
  • 56ca7ee azure-pipeline.yml: remove libraries installation
  • 8b43b0e azure-pipeline.yml: modify qemu package to qemu-user-static
  • 7591666 iiod: dns-sd: avoid -Wstrict-prototypes
  • 5cdfcfa local-mmap: fix -Wsign-compare
  • d59b548 iiod: responder: drop useless iio_context_get_device()
  • 2eed97d iiod: interpreter: fix some unused variables
  • 29d1663 utils: Update iio event and direction with latest kernel
  • 8185cfc python: Update iio event and direction with latest kernel
  • 46761b6 bindings/csharp: Update iio event and direction with latest kernel
  • 5d59c09 iio.h: Update iio event and direction with latest kernel
  • b0f296f CMake: Install public header iio-backend.h along with the rest
  • c6760ad doc: Update device.rst to remove no longer existing items
  • 1b204a0 python: Raise exception when an actual error occured
  • aa867f0 task: Added -C option in iio_rwdev.c and iio_stresstest.c
  • 8291539 task: Implement iio_buffer_params struct and make CMA selectable at runtime
  • a7d0450 task: Added struct iio_buffer_params for future use
  • 53c3160 iiod: responder: make sure to unlock buffer_entry lock
  • 0313659 git subrepo pull deps/mdns
  • 6e30df3 deps/mdns: Fix parent commit hash
  • 20fb5b5 iiod: Apply compiler flags to lexer/parser files after these are created
  • e8ed446 examples/adrv9002-iiostream: Remove set but unused variable
  • c4ea043 iiod: Avoid void * pointer arithmetic warnings
  • d2e2c7f iiod: responder: Silence warning about skipping middle term
  • 56d6c20 iiod: responder: Remove unused variables
  • c4a3308 iiod: responder: Fix warning about operand ?: changing signedness
  • bf083c8 utils/iio-common: Fix comparsion between signed and unsigned
  • 5d8348c utils/iio-common: Fix warning about condition always true
  • e984aea cmake-treewide: Apply a subset of settings to in-house libiio clients
  • 34cdfa8 device.c: Avoid reordering channels for XML based iio contexts
  • 495f430 README_DEVELOPERS.md: Provide a statement about the purpose of this file
  • 2cbb41a README_DEVELOPERS.md: No longer show unsupported OSes
  • e9e9793 README.md: Add table with latest release artifacts
  • 1530554 README.md: Reference the page with the libiio packages table
  • 1a2eb90 README.md: Move libiio packages table to make it less prominent
  • c64284e utils: iio_rwdev: try clean exit before cancelling the buffer
  • b8dec3c stream: dequeue blocks on stream destroy
  • 29b5052 iiod/interpreter: Define 'readfd_io' & 'writefd_io' only when needed
  • 555a09a Revert "iiod/interpreter: Remove unused functions"
  • 5bf1b08 lock: fix build when HAS_PTHREAD_SETNAME_NP is not set
  • a7bd832 Update FreeBSD GH Action to run on PRs
  • 25943bf iiod: responder: fix race with IIO blocks
  • b295ee6 task: add iio_task_cancel_sync() helper
  • 63913cb task: add API to fully control struct iio_task_token
  • eb4a009 task: add iio_task_token_do_enqueue()
  • 4fe522f task: add iio_task_token_find()
  • 1d1190e task: allow to control token lifetime in iio_task_sync()
  • e8b20d1 iiod: responder: simplify handle_free_block()
  • be8966d iiod: responder: properly sync free_blocks() with enqueuing
  • 16c8928 iiod-responder: properly lock io write_token
  • 2c5c1f8 lock: support naming threads
  • 0a0c48e cmake: add an Utilities library
  • c8cdb46 iiod-responder: shorten the thread names
  • f510a19 buffer: shorten the thread name
  • 92fdcf0 iiod: responder: shorten the thread names
  • 0866966 iiod: network: shorten network main thread name
  • 63dc4a7 iiod: thread-pool: make sure to include iio-config.h
  • 73bba25 lock: Fix passing the wrong parameter when creating threads on Windows
  • e54973a [FIX] missed inlines in C++ binding
  • 5953771 iio.h: Remove c++ access to c only functions
  • 4537c21 CMake: fix installing c++ bindings
  • 83d9564 examples/ad9371-iiostream: Fix comment and variables
  • 4ff3e75 examples/ad9361-iiostream: Remove unused variables
  • 2cf643d examples/adrv9009-iiostream: Fix comment and variables
  • ec9373e examples/adrv9002-iiostream: Remove unused variable
  • 749f7b8 examples: Remove unused wr_ch_str() function
  • 6b463b5 iiod/responder: Remove unused variables
  • e06b175 iiod/responder: Initialize code before sending
  • a80a312 iiod/interpreter: Remove unused functions
  • d687ea3 iiod/ops: Remove unused functions
  • cfe2b96 iiod: Remove unused variables
  • 1ef78a7 tinyiiod: Add missing return statements
  • e808b9d utils: iio_common: Set timeout specified at CLI immediately
  • b0b5d3f context: Handle if description is NULL and ctx->description exists [ #1121 ]
  • e8c251b utils: iio_rwdev: fix cancelling streaming
  • fd60090 local: stylistic changes
  • ba5b2ff local: add waiting_for_supplier to denylist
  • eb401ec CI: Check Python enums are in sync with latest kernel
  • 548cd3b CI: Check C# enums are in sync with latest kernel
  • 7dc8952 python: Keep channel types and modifiers in sync
  • 2398bbd c#: Add new channel type entry (attention)
  • 32f9afa dox: Fix minor spell error reported by CI
  • a50b705 iio-monitor: Display the channel label if it exists
  • 59ab0e3 iio_attr: Display channel label if present
  • dfbbb0e iio_info: Display channel label if present
  • ed250b9 python: Add channel method to get label
  • ee14ae2 c#: Add channel method to get label
  • c816a9c c++: Add channel method to get label
  • 697fc3e treewide: Enhance iio_device_find_channel() to use labels
  • fc7ab0e treewide: Add API function iio_channel_get_label()
  • f7af85f treewide: Init channel label when found
  • 3e76e90 examples: Check the encoded error in returned iio structures
  • ddaef97 utils: Check the encoded error in returned iio structures
  • 3edff24 cmake: Replace deprecated exec_program() with execute_process()
  • cc53821 CI: Stop creating artifacts for macOS-12
  • 0532d97 CI: Remove support for macos-12 as it's no longer hosted on azure
  • d3ac7a6 iio.h: Add new iio_chan_type entry ('attention')
2024 — 104 commits
  • 9c579e4 Fixed invalid IIOD_EXTRA_OPTS assignment [ #1142 ]
  • 61ede80 iiod: Drop unnecesary include
  • 790a6c9 artifact_manifest.txt.cmakein: update artifact manifest
  • 84905ab azure-pipelines.yml: export dependencies sources
  • 7e818cb CI: integrate dependencies build script for msvc
  • 7708cf5 CI:azure:windows_build_deps.cmd: builds windows msvc dependencies
  • 32f815a azure-pipelines.yml: build mingw with msys2 bash
  • 35176b8 CI:azure:build_mingw.sh: add build file for mingw on windows
  • 422a72f iiod: ensure service starts with only hwmon devs
  • 9f24ce5 local-dmabuf: only set dmabuf_supported in the end
  • 9485e10 README_BUILD.md: Document WITH_IIOD_USB_DMABUF
  • b241232 iiod: Support zero-copy to USB
  • 6333e09 local: Implement .get_dmabuf_fd() callback
  • ac9859a local: Implement .disable_cpu_access() callback
  • dc59ac0 local: Update to new DMABUF-based kernel API
  • 3ba7170 iio.h: Add API function iio_block_get_dmabuf_fd()
  • 9a66ed7 iio.h: Add API function iio_block_disable_cpu_access()
  • 8bce8b3 CI: ensure we also check the modifier strings against mainline kernel [ #1176 ]
  • 3dba184 channel: Correct linear x/y/z modifier names
  • fea2a83 CI/publish_deps: copy libzstd to BUILD_ARTIFACTSTAGINGDIRECTORY
  • ec969c7 libiio.iss.cmakein: add libzstd to iss
  • fc4fc75 fix general spelling issues
  • b456b2d artifact_manifest.txt.cmakein: update file with the build arihitectures
  • a692920 CI: add support for Debian12-arm in release_artifacts
  • 5a82086 remove support for ubuntu-18.04 and macOS-11
  • 47da83a Fix: correct wrong comparison of return value in create_device()
  • 0d1d8cb serial.c: force DTR serial connection flag to ON for Windows clients
  • 24a7b09 CI: fix ghc version
  • 10b08bf azure-pipelines.yml: change link to artifacts from swdownlods
  • 6de223a azure-pipelines.yml: add build for bookworm arm architecture
  • f562a61 readme: Switch to using the term 'main' branch
  • 6eb69d7 Increase attribute read buffer space
  • b4c9511 Add CODEOWNERS and PULL_REQUEST_TEMPLATE files
  • 8f019fd serial: Fix misleading error message
  • 344cc0f context: Drop old function _iio_context_add_device()
  • cbbae4c local: Use the new iio_context_add_device()
  • 5f4f760 xml: Decouple from private API and use new backend functions
  • 785fdf2 iio-backend: Update and export iio_context_create_from_backend()
  • 97f7a25 iio-backend: Add functions iio_{context,device,channel}_add_attr()
  • f68d00f iio-backend: Add function iio_device_add_channel()
  • 27f8668 iio-backend: Add iio_context_add_device()
  • 19d1e58 Rename private function iio_context_add_device()
  • 28e2608 attr: Sort attributes after adding new ones
  • e3d4c9f azure_pipelines.yml: Fix macos CIs
  • b33304f Return optionals where the C-API might return NULL for "no object", assertions to check non-null of all C-API pointers passed to wrapper ctors
  • 2d22c17 compat: Fix behaviour of attributes write functions [ #1140 ]
  • 14aff9d dns-sd: Fix error handling in dnssd_add_scan_result()
  • 7ba23c8 iiod: Add default env var to service file [ #1142 ]
  • 7ae4836 c++: Channel offset defaults to 0, not 1 [ #1135 ]
  • 4883444 iiod-client: Use fallback client to destroy blocks and buffers
  • 0036a9e iiod-responder: Fix unprotected access to readers list
  • 39d0fb7 iiod: Cancel buffer before freeing it
  • 5a9be31 iiod: Identify blocks using command code
  • e69bfe6 bindings/csharp: Update the C# bindings to match the new libiio API.
  • 0973e72 c++: Free XML string after use
  • c00e6f6 python: Free XML string after use
  • a676fe3 iiod: Free XML string after use
  • 0de586d utils: iio_genxml: Free XML string after use
  • 407f93d compat: Pre-allocate XML string for contexts
  • 6f43ba0 iio.h: Update iio_context_get_xml()
  • 26d5f6e xml: Shrink header size used to detect XML string embedded in URI
  • fe546b2 iiod: Handle event reads in tinyiiod
  • 3aeb69a iiod: Add support for building libtinyiiod
  • b07408d iiod: Remove non-standard includes from ops.h
  • cf22f32 iiod: Move poll_nointr() to iiod.c
  • f6d0afe iiod: Use <iio/iio-backend.h> instead of duplicating code
  • c0c4dd1 iiod: Move read_all/write_all to new file
  • fd93e8f iiod: Use iio_mutex locks instead of using pthread directly
  • 57d8e49 iiod: Start thread-less enqueue/dequeue tasks before enabling buffer
  • 91d2fec iiod: Support new protocol without ZSTD
  • 73e2dc2 iiod-client: Support new protocol without ZSTD
  • 4b77687 iiod-client: Drop unused function iiod_client_set_kernel_buffers_count()
  • dd82fd6 iiod-responder: Remove unused field
  • d2fb662 iiod-responder: Support running without threads
  • e79daff task: Support running thread-less
  • c81c4fe CMake: Add support for building a thread-less library
  • 145b555 CMake: Add support for external backend
  • 201bfc3 CMake: Allow to compile IIOD without local backend
  • 7eae624 iiod: Start enqueue/dequeue tasks when creating buffer
  • d03140d utilities: Avoid inclusion of network headers
  • 1af94f2 iio.h: Add IIO_MOD_LIGHT_UVA/UVB modifiers [ #1130 ]
  • d30d9b2 iio.h: Documentation cleanups
  • 1138a3b utils: iio_rwdev: Add support for setting trigger rate [ #1055 ]
  • 35a0e4d utils: iio_info: Drop leftover -s option
  • 77343f1 azure-pipeline.yml: add debian bookworm build
  • 10fd9f5 CI: fix ghc version
  • 7b973b5 local: Fix double-free of context pdata
  • c661ed2 local: Fix use-after-free
  • 37454b1 iio-responder: Remove useless local variable
  • 5c6b74c iiod-responder: Fix potential use-after-free caused by race
  • 757904f context: Fix non-working concatenation of context descriptions
  • 814083e network: Fix memory leak in network_create_context()
  • a14b37d buffer: Free attributes list when destroying buffer
  • 23caa4f utils: iio_rwdev: Fix out-of-scope reference to stack variable
  • fcfb5d1 iiod: Add support for IIOD_OP_RETRY_DEQUEUE_BLOCK command
  • 64074a3 iiod: responder: Differentiate enqueue/dequeue errors in return code
  • e48f8b3 iiod-client: Send block dequeue request when previous one failed
  • 4d980fa local: mmap: Decouple mask of enqueued/dequeued blocks
  • a6d3859 Disabled CPP_BINDINGS for CentOS 7 build
  • 49c24e6 Use std::optional instead of boost::optional for MSVC 2017 and later
  • 01e7973 C++ API updated for new C-API
  • c203dc3 local: Avoid keeping buffer FD opened at all times
  • e9436eb iiod: Open non-blocking sockets only when not using AIO
  • 024ebe4 Update CODE_OF_CONDUCT.md
2023 — 180 commits
  • 61fdbe7 iio.py: fix Trigger instantiation [ #1107 ]
  • 1a3a6e1 iiod: Print error message when more parameters are needed
  • 36a1b69 iiod: Support compiling without network support
  • 68c30c6 iiod: Split network code into its own network.c file
  • 312902f iiod: Use IIO_PERROR() macro where it makes sense
  • 72e8276 iiod: Remove option to run with asynchronous I/O
  • 23773c9 iiod: Reuse --debug as a way to increase log level
  • 1787a5f iiod: Remove option to run in debug mode
  • 14623fe iiod: Remove option to run interactively
  • aa2aa8e iiod: thread-pool: Add thread_pool_wait() function
  • 1b1258d examples/*-iiostream: Fix [rx|tx]_sample_sz initialization
  • de9fd5e Rework cyclic block enqueue when talking to v0.x IIOD
  • 4527fac Add "cyclic" parameter to .buffer_enable() backend callback
  • fc5cb38 iiod: Fix segmentation fault when buffer creation failed
  • d905a5b utils/iio-common: Use CLOCK_MONOTONIC clock for timeouts
  • bb688d0 xml: Fix compatibility with libxml 2.12
  • 6fdb616 utils: iio_info: Remove unused local variables
  • 1270272 utils: iio_info: Explicitely cast error codes to int
  • 71c069f utils: iio_info: Work around MSVC not handling error codes
  • 5b8a54a utils: iio_genxml: Remove unused local variable
  • e625d60 utils: iio_event: Remove unused goto label
  • 77f4298 utils: iio_event: Fix invalid print format
  • a7da2bf utils: iio_common: Avoid signed/unsigned comparisons
  • 3464bf5 iiod-responder: Use explicit uint64_t -> unsigned int cast
  • f2a6130 iiod-responder: Use int32_t instead of intptr_t for return codes
  • ee2a0f5 iiod: Fix forward declaration of yylex()
  • 2653677 iiod: Fix invalid print format
  • ef711d4 CMake: Build everything with -Werror
  • a87bd33 iiod: Support compiling without v0.x compatibility
  • 50cbf50 iiod: Move interpreter function to interpreter.c
  • 4480422 cmake: ensure WITH_AIO=0 and WITH_IIOD_USBD=1 fails [ #984 ]
  • 300c8c2 README: add libzstd-dev to the list of prerequisites [ #1045 ]
  • d9cd027 task: Fix deadlock between thread and iio_task_stop()
  • 9ceecfd compat: Fix behaviour of iio_context_clone()
  • 3ff2aad iiod-responder: Handle BINARY command in binary mode
  • f7c5f8e serial: Implement .readbuf / .writebuf
  • 39ee152 serial: Remove dangerous debug print
  • 045c129 serial: Use non-blocking reads in a polling loop
  • cc65317 CMake: Add option to specify the maximum log level
  • d7772bb iiod: Switch to use the new Libiio debug macros
  • 33fadc9 iiod: Fix handling of error code for init_usb_daemon()
  • 608485b attr: Simplify debug messages
  • ff66ea9 iio.h: Add padding at the end of iio_context_params
  • 0b9a934 Add support for timestamps in messages
  • 35527e7 iio.h: Add timestamp_level field to iio_context_params
  • 0530bba Move library init/exit to its own library.c file
  • b9ae198 iio_info: Advertise support for IIO events
  • 3f40717 iio_info: Color output
  • 029877c iio_info: Print errors in-line
  • b812657 iio_info: Factorize code
  • 1a274b7 utilities: Accept negative values in iio_strerror
  • ba02014 iio-debug.h: Print device/channel IDs in their print macros
  • a11524a network: Rename backend to 'ip'
  • 0a0cbdb compat: Implement iio_channel_attr_get_filename()
  • edd71e1 compat: Improve attributes R/W functions
  • e22af56 iiod: Restore support for reading/writing all attributes
  • 81580d6 channel: Fix iio_channel_read()
  • f5b7f6a python: Fix Channel.read() / Channel.write()
  • e6c6ddc iio.h: Fix invalid number of attributes in C11 generic macros
  • 7d97827 python: Add support for IIO events
  • e0d7ca8 utils: Add 'iio_event' program
  • 079fb08 utils: Fix invalid parameters passed to fprintf
  • 577ec74 serial: Add support for IIO events
  • a9a36a2 usb: Add support for IIO events
  • 58c4d71 network: Add support for IIO events
  • 2a923f2 iiod: Add support for events
  • a49cc58 iiod: Avoid uninitialized pointer deference
  • 94a09da iiod: Constify iio_device pointer
  • f0a9a2e iiod-client: Add functions to support events
  • 63d7c11 iiod-responder: Add function iiod_io_set_timeout()
  • d08a16a local: Add callbacks to support events
  • 949e35f local: Populate channels with new IIO events attributes
  • aba77ca local: Keep file descriptor of dev node opened
  • c555a7d Add support for IIO events
  • 5f395d3 iio.h: Add new iio_chan_type entries
  • 1562985 Update freebsd vm to latest version
  • 65a5a5f python: Add offset to data format structure
  • 7881bb5 local: Remove custom code to set scale in the data format structure
  • 24915ea context: Update channels' scale/offset after creating context
  • b2026ec iio-private: Add padding after iio_data_format in iio_channel struct
  • ebb2aef iio.h: Add offset to iio_data_format
  • 5d982bc CMake: Add "compat" flag to enabled/disabled features
  • fb47a11 CMake: Fix Libiio calling symbols from the compat layer
  • 66525fb compat: Fix channel pdata pointer computed incorrectly
  • 841a3b1 iiod: Make sure network is alive before poking avahi [ #1072, #2 ]
  • 877b9b0 CI:switch to new macOS arm64 agent
  • 43bcd0e python: Update to new IIO attributes API
  • 460575c python: Update to updated backends API
  • 71dd005 examples: Update to new attributes API
  • b3ed30e compat: Update to new attributes API
  • e955b90 iiod: Update to new attributes API
  • 8e15667 iiod: Make bufferlist global
  • 09b7e1b iiod: Move blocklist to buffer list entries
  • f0d11ae utils: Update to new attributes API
  • b4a934e iiod-client: Remove iiod_client_{read,write}_attr
  • 65ecaf2 iio-backend: Drop old attribute read/write callbacks
  • adc8b02 serial: Switch to new attribute API callbacks
  • d2a2523 usb: Switch to new attribute API callbacks
  • c363f7c network: Switch to new attribute API callbacks
  • 4e8c756 device: Switch to new iio_attr API
  • 5553267 channel: Switch to new iio_attr API
  • ea6d71e iiod-client: Update to use new iio_attr API
  • b28ce79 sort: Remove unused functions
  • 7a050f0 xml: Switch to new iio_attr API
  • 5120da3 local: Remove old attribute read/write backend ops
  • 7f8d181 local: Switch to new iio_attr API
  • 60b31d3 local: Implement local_{read,write}_attr()
  • 6d35fac local: Avoid using old API to read attributes
  • 40657a3 local: Handle reading multi-buffer attributes
  • 797b7d4 context: Update iio_context_get_attr() and switch to use iio_attr
  • 99886d6 dns-sd: Use the new attribute API functions
  • c76ab9a Add API function iio_context_find_attr()
  • c85689e sort: Add function iio_sort_attrs()
  • 1687c65 buffer: Add new iio_attr API functions
  • 0e5780c Add new iio_attr API
  • c317bf0 context: Fix prototype of iio_xml_print_and_sanitized_param()
  • fb0c0db sort: Make iio_{channel,device}_compare() static
  • f727f70 context: Order channels with iio_sort_channels()
  • 7a0fe07 local: Order devices with iio_sort_devices()
  • 169a4ef sort: Add functions iio_sort_{devices,channels}
  • f062049 sort: Update iio_channel_compare()
  • 7d902c1 CI: Limit FreeBSD CI time to 30 minutes
  • b599961 CI:publish_deps.ps1: fix MinGW build
  • 27276d0 CI/build_win.ps1: Fix cmake using the wrong python version
  • 26957d9 iiod: Refuse to enqueue blocks of size 0
  • 349320f iiod: Fix use of uninitialized variable
  • a258058 stream: Simplify iio_stream_get_next_block()
  • c66f1f2 iio.h: Default to full buffer if bytes_used == 0 in iio_block_enqueue()
  • a1f4423 iio.h: Also use bytes_used field in iio_block_enqueue() for RX transfers
  • 92c108c block: Sanitize bytes_used in iio_block_enqueue()
  • 58a807d iiod: Update to new iio_device_get_trigger() prototype
  • 8f2bfda utils: Update to new iio_device_get_trigger() prototype
  • e2fb979 serial: Update serial_get_trigger() callback
  • edf49c8 usb: Update usb_get_trigger() callback
  • 3fc18e0 network: Update network_get_trigger() callback
  • bc59041 iiod-client: Update iiod_client_get_trigger()
  • 9d24e03 local: Update local_get_trigger() callback
  • 111f23b compat: Update iio_device_get_trigger()
  • 00dcb61 Update prototype of API function iio_device_get_trigger()
  • bacf087 local: Fix reading of empty attributes [ #1061 ]
  • 4aa6e20 utils: Update to the new backend functions
  • 109b741 compat: Update to new backend functions
  • ea08e80 iio: Support dynamic backends in iio_has_backend()
  • c1cb4c1 iio: Rework API functions to get backends
  • b7b20e8 dynamic: Remove duplicated error message
  • 4b98ab0 context: Constify 'iio_backends' array
  • 48bf262 utils: Fix description of --scan feature
  • fe47213 man: Fix description of --scan feature [ #1037 ]
  • 5eec433 cmake: Fix man pages installation
  • 9dd294c c++: Add missing "inline" keywords [ #1066 ]
  • aa8f946 CI: Fix MinGW build
  • c672f39 local: Fix typo
  • 53765a1 azure-pipelines: add trigger for libiio-v0 branch
  • 5587ef2 examples: Update to use new paths
  • 78f3f8c CI: Update to use new paths
  • eb3d58f utils: Make -a, -u and -S mutually exclusive
  • f1b6706 utils: Remove deprecated parameters
  • 3358209 tests: Rename to utils
  • 4c9c927 iio.h: Remove iio_device_identify_filename()
  • a0a42ff compat: Implement alternative for iio_device_identify_filename()
  • 268ca96 CI: Add FreeBSD CI build
  • 002872c CI: add next_stable branch to pr trigger
  • 38bdc0b CI: change condition for ManageArtifacts stage
  • 9a82e37 local-mmap: Fix block allocation [ #1042 ]
  • 6b56557 CMake: Handle discovering libusb without pkg-config [ #1027 ]
  • 5bd3ef5 CI: Fix MinGW build
  • 58cf11d README.md: Add info about compatibility layer
  • 96d7ab3 README.md: Add warning about new API
  • d09a8ac README_BUILD.md: Fix typo
  • 1473823 codespell: Ignore 'thid'
  • 5f99974 iiod-client.c: Fix typos
  • 37f7402 iio-private.h: Fix typo
  • 6711950 Fix: move iio_device_set_kernel_buffers_count() decl. into iio-compat.h
  • 8fb4b64 task.c: Fix race between thread and iio_task_sync()
  • a3a137a task.c: Free task in iio_task_destroy()
  • 042eb2e cmake: Install: add PUBLIC_HEADER DESTINATION
  • 7561f5f CMake: Fix cyclic dependency under MinGW
  • db0e9cc channel: Support attribute names that start with the channel's label
  • 1b33411 usb: Destroy USB I/O context after IIOD client
  • b1fbd66 iiod-client: Restore support for tinyiiod based programs
2022 — 145 commits
  • 3859679 network: Avoid SIGPIPE on send()
  • 500e954 ad9361-iiostream: Fix rf_port_select for PlutoSDR devices
  • 7772721 python: Remove Context.clone()
  • 4f06a44 iiod: Use one AIO context per transfer direction
  • 4139a47 local-mmap: Check buffer ready before dequeueing each block [ #4, #1 ]
  • ee7e984 compat: Compatibility layer overhaul
  • 43a0111 iio.h: Add functions iio_context_{get,set}_data()
  • 7a73241 dynamic: Handle symbols mapped at 0x0 in iio_dlsym
  • 6a018c4 dynamic: Change prototype of iio_dlsym()
  • 3dcb1f9 stream: Avoid dequeueing already dequeued buffers [ #901 ]
  • bf0a91e stream: Fix buffer enabled too soon for TX buffers
  • 3d9a165 block: Return -EPERM if trying to enqueue or dequeue twice in a row
  • f8766a4 iiod-client: Return -EPERM if trying to enqueue/dequeue twice in a row
  • d6e2910 local: Return -EPERM if trying to enqueue or dequeue twice in a row
  • 1023d89 usb: Update to work with new interface
  • 22c8372 network: Fix error reporting in context creation
  • 7d6a87d usb: Fix error reporting in context creation
  • d816893 usb: Create IIOD client after opening main pipe
  • 4820ec4 CMake: Fix libraries not installed to the right path on older CMake [ #889 ]
  • 2bde8da iiod: Fix writing of attributes [ #890 ]
  • 439aa1d block: Cancel any I/O before destroying block
  • f69cc3e context: Remove carriage returns in prm_perror() messages
  • 03a4f8c iio.h: Fix prototype of iio_buffer_get_channels_mask()
  • 1a1c82a dynamic: Fix code
  • a7c574f network: Fix buffers' iiod_client not properly destroyed
  • 230f703 iiod-client: Return -ENOENT if trying to read/write unknown attribute
  • bed1c5f iiod: Add support for writing attributes in responder
  • 3cb8c2b usb: Provide cancel callback in iiod_client_ops
  • eb6b7b6 network: Provide cancel callback in iiod_client_ops
  • 6a44548 iiod-client: Use new cancel callback before destroying responder
  • 3b9574c iiod-responder: Add support for infinite timeouts
  • 859d4ed iiod-responder: Add iiod_io_cond_wait() helper function
  • 2b21f0d iio-backend.h: Remove .clone() backend function
  • 2d9047c network: Remove .clone() backend function
  • 5e66d2e local: Remove .clone() backend function
  • 13af557 xml: Remove .clone() backend function
  • d8c2f0c iio.h: Remove iio_context_clone()
  • d3219f4 doxygen reproducible build
  • 18bf294 fix make man
  • c2e9795 available
  • a66925d service documentation
  • c659c7b csharp: Update binding to latest IIO API
  • d376e56 python: Update binding to latest IIO API
  • 61568c4 CI: Build libiio with ZSTD support
  • 3ecd84d CI: Update path to libiio windows deps ZIP
  • cd5445b Remove old APIs
  • 42ea610 serial: Remove old API
  • 17167e8 usb: Remove old API
  • 33d6c38 network: Remove old API
  • f92ebc3 local: Remove old API
  • bdb9551 iiod: Rework "set kernel buffers count" operation
  • 859f8ec iiod: Use long-lived structure for device pdata
  • ee9a5f1 iiod: Add support for binary protocol
  • a974d1e iiod: Update to use the new APIs
  • a179b85 iiod: Simplify get_mask()
  • 99688f2 examples: Update to the new API
  • 976e4a0 tools: Update to use new API
  • b7be634 serial: Add support for new API
  • 573db4e usb: Add support for new API
  • 73e14a1 network: Add support for new API
  • a7c224a local: Add support for MMAP interface with the new iio_block API
  • ec6ce01 local: Add support for DMABUF interface
  • b474a02 local: Add support for new API
  • c954d41 local: Standardize write of buffer attributes
  • 7c628c5 iiod-client: Add support for async. binary interface
  • 1b70fcd serial: Remove .set_timeout() and let iiod-client handle timeouts
  • 9b87b20 usb: Let iiod-client handle timeouts
  • ff39058 network: Let iiod-client handle timeouts
  • 02e8d22 iiod-client: Add a timeout_ms parameter to .read/.write callbacks
  • 7ca29ba network: Remove .read_line() implementation
  • 617a522 serial: Remove .read_line implementation
  • a1fbcba iiod-client: Add fall-back mechanism for .read_line callback
  • 9118221 iiod-client: Set remote timeout when creating new iiod-client
  • 4f3fdcc network: Make wait_cancellable() take a timeout argument
  • 2342454 network: Don't set timeout on socket
  • a121b6d network: Create per-dev iiod-client instances when opening
  • 6cea28f network: Allow all sockets to be cancelled
  • 6c7731e Add IIOD responder
  • 6362faa channel: Add fast paths in iio_channel_{read,write}
  • 3cd871f iio.h: Update iio_channel_{read,write} functions
  • 114a0b0 Add new iio_stream API
  • f6965aa Add new iio_block API
  • 59a11b9 iio.h: Update iio_channel_{enable,disable,is_enabled}
  • 308436b iio.h: Remove iio_device_get_channels_mask()
  • 48256fd iio.h: Add API functions to create and destroy channels masks
  • 9958d44 context: Don't create channels mask when IIO device has 0 channels
  • 3e7d3b4 Add support for Tasks
  • 0e9db86 Make .set_timeout() an optional callback
  • cc077aa lock: Update iio_cond_wait() to accept a timeout parameter
  • efb4d83 CMake: Unconditionally enable threads support
  • 741a001 CMake: Enable WITH_ZSTD by default
  • aa4a7be xml: Make function xml_create_context_mem() static
  • 18f75d4 iio.h: Remove obsolete function iio_create_xml_context_mem()
  • 8870392 iiod-client: Create XML context using iio_create_context
  • dc21adc iio_genxml: Update to new API
  • 52dac78 xml: Support URIs with embedded XML
  • 7f4c8bb context: Remove leftover function iio_create_context_from_uri()
  • 7fc674b azure: Sync APT repositories before installing packages
  • cec94f5 cmake: Fix build on OSX
  • 623409a dnssd: Fix wrong parameters passed to prm_dbg() on Windows
  • 3c5c5ed dnssd: Fix warning about unused variable on Windows
  • d04467f dnssd: Add missing include on Windows
  • 77b2cd8 iio.h: Fix misleading function attribute names
  • fd573d5 iio-debug.h: Don't set errno variable
  • b6a0bad tests: Rename iio_readdev to iio_rwdev
  • d85e550 tests: Remove iio_writedev
  • a84ca8a tests/iio_readdev: Add write support
  • 4227321 tests: Code cleanups
  • 82f5a1e tests: Properly handle errors
  • 03866e7 iio-debug.h: Make prm_perror() take a negative err value
  • 07f40a6 CMake: Install public headers into iio/ folder
  • 8231f78 iio-debug.h: Move implementation of iio_prm_printf to utilities.c
  • 86f04f4 iio.h: Add buffer ID argument to buffer attribute read/write functions
  • 38ef053 Add buffer_id to attribute read/write backend callbacks
  • 2f97660 iio.h: Use generic macros to read/write attributes
  • affff25 Rename attribute read/write functions
  • 0e3fa6b iio.h: Remove leftover iio_device*attr*_all() functions
  • 93288ad local: Don't use a boolean for an enum value
  • a83c8d4 Inno Setup: Update script to point to new libiio
  • 3a79b45 CMake: Fix archive named iio1.lib instead of libiio1.lib on MSVC
  • 67aff53 windows DNS-SD: Fix missing function call parameters
  • 42667a0 examples: Fix build
  • 8414f4d local: Remove support for reading multiple attributes at once
  • f215dc4 Remove iio_{device,buffer,debug,channel}attr{read,write}_all()
  • 2cbb5be iiod: iiod-serial: Fix memory leak
  • 93a8d62 iio.h: Make iio_device_create_buffer() return a pointer-encoded error
  • 7c7403f iio.h: Make iio_create_context() return a pointer-encoded error
  • 2079627 scan: Change API function to return pointer-encoded errors
  • 3c2ebd3 iiod-client: Change functions to return pointer-encoded errors
  • d065b85 lock: Make iio_{mutex,cond}_create() return a pointer-encoded error
  • 4bfb9b0 Use new functions to handle pointer-encoded errors
  • 1262403 iio.h: Add functions to handle pointer-encoded errors
  • 480173b iio.h: Add API function iio_device_get_channels_mask()
  • 9170a63 Use mask in .get_buffer backend callback
  • 93dd5bb Use mask in .read backend callback
  • 377cf18 Update iio_device_get_sample_size()
  • 8b7907a buffer: Use a iio_channels_mask internally
  • 7a82246 device: Use a iio_channels_mask internally
  • 2f33d3b Introduce iio_channels_mask private struct
  • 46f760f dynamic: Remove iio_dynamic_scan
  • 4dacf29 scan: rework scanning feature
  • d894014 dynamic: Clean up API
  • 6323ecc context: Fix implicit cast from ssize_t to int
  • b115021 usb: Reorder code to avoid warnings from MSVC
  • 2e175c1 bindings: csharp: Fix iio.Version()
2021 — 142 commits
  • cce9d3e iiod: Fix build with serial feature enabled
  • 9ff0b16 serial: Fix build
  • 05f33be CMake: Fix linking against Avahi
  • ef8aab8 compat: Move iio_{context,library}_get_version() to compat lib
  • 5830dbb examples/dummy_iiostream: Use new iio_context_get_version_* API
  • 224a9b1 iio_info: Use new iio_context_get_version_* API
  • 2326eb5 C#: Use new iio_context_get_version_* API
  • c4c251c python: Use new iio_context_get_version_* API
  • 9ff9a49 context: Add API functions iio_context_get_version_{minor,major,tag}
  • 32bd909 iiod-client: Update prototype of open/close functions
  • 8998474 iiod-client: Don't carry pointer to iio_context_pdata
  • ec021ae iiod-client: Set iiod_client_pdata pointer on creation
  • 3a2df03 iiod-client: Add iiod_client_{read,write} and remove unlocked variant
  • a7f23bf iio-backend.h: Add PTR_ERR_OR_ZERO()
  • 6b53ebf usb: Store pointer to iio_context_pdata in iiod_client_pdata
  • 125b316 usb: Use one iiod_client per endpoint couple
  • b8baa81 usb: Rework error handling in usb_open()
  • 57651fa network: Store pointer to iio_context_pdata in iiod_client_pdata
  • 9c27bb4 network: Remove useless local variables
  • 56493c7 network: Use one iiod_client instance per device
  • 1e79758 network: Remove .get_buffer
  • 4e852f4 network: Don't send EXIT command
  • cd3ef15 iiod: Ignore EXIT command
  • 3f5d1f9 lock: Add support for threads
  • 483d106 lock: Add support for condition variables
  • 24ba54d lock: split Windows-specific code into lock-windows.c
  • 96e0711 Move PTR_ERR macros to iio-backend.h
  • edf92fb CMake: Support building the network backend as module
  • 3446bec dns_sd*.c: Remove dependency on iio-private.h
  • 848538c CMake: Support building the USB backend as module
  • fed355d usb: Pass context attrs to iiod_client_create_context()
  • 68bd5e2 usb: Don't override context params
  • db8d9d1 usb: Pass iio_backend pointer and description
  • 9712da3 usb: Reduce dependency on iio-private.h
  • 7d53e1a usb: Require libusb >= 1.0.10
  • a5d3226 Add support for scanning dynamic contexts
  • 51cdf11 dynamic.c: Add functions to browse directories
  • a6a1c63 Move iio_context_info struct to scan.c
  • 36a8362 scan.c: Inline struct iio_scan_result into iio_scan
  • e2733df scan.c: Remove iio_scan_result_add()
  • ebfdeec network: Implement and use new .scan callback
  • 40f1961 local: Implement and use new .scan callback
  • 40447e2 usb: Implement and use new .scan callback
  • 3637921 scan.c: Add iio_scan_add_result()
  • b72bd0e scan.c: Also scan through the backend's .scan callback
  • 84760db iio-backend: Add scan callback in backend ops structure
  • 5834825 Python: Update bindings to use latest 1.x scan API
  • 888a0dd scan.c: Remove useless pointer indirection
  • d6c771e Move iio_scan_context API to compat lib
  • e00e7b6 Move iio_scan_block API to compat lib
  • 5984d5b examples: Update to use 1.x scan API
  • 4687428 tests: Update to use 1.x scan API
  • 0f9bf57 usb: Use new scan API
  • 675f140 Add new scan API
  • 4b9c225 utilities.c: Add function iio_list_has_elem()
  • 58773de Move iio_create_context_from_uri() to compat lib
  • 732b299 Move iio_create_default_context() to compat lib
  • d646dd3 Move iio_create_network_context() to compat lib
  • e26a1fa Move iio_create_xml_context() to compat lib
  • a719618 Move iio_create_local_context() to compat lib
  • bca4c06 Python: Update bindings to latest 1.x API
  • c8c4c8e examples: Update to use latest 1.x API
  • 3939e9e tests: Update to use latest 1.x API
  • f80f7a2 iiod: Create context with iio_create_context()
  • e410291 network: Clone context with current params
  • 57394ad context: Improve iio_create_context()
  • b06b2bc CMake: Add option to build a libiio 0.x compat library
  • 463a0d3 CMake: Put soname in library name on Windows
  • 93697e6 CMake: Support building the serial backend as module
  • 3336ba0 CMake: Add support for dynamically-loaded module backends
  • 8bfe0a1 CMake: Install iio-lock.h, iio-backend.h and iiod-client.h
  • 7db7e90 xml: Create context through backend create callback
  • 2de844e local: Create context through backend create callback
  • ee0700e serial: Drop dependency on iio-private.h
  • 96358ab serial: Create context through backend create callback
  • b73e5ac network: Create context through backend create callback
  • 6cb9faf dns_sd.c: Avoid use of private function
  • 4136cff network: Remove dependency on iio-private.h
  • 2b1d866 network: Simplify context creation
  • a627b48 usb: Create context through backend create callback
  • 2e8c64c context: Support creating context through backend create callback
  • a93e1be iio-backend: Add default_timeout_ms field
  • 1e52569 context: Call backend functions from iio_create_context_from_uri() only
  • 19e5c61 iio-backend: Add create callback in backend ops structure
  • a1fde88 iiod-client: Export symbols
  • 5415ccd iio-lock.h: Export lock functions as API
  • d1db51d Export iio_snprintf(), iio_strlcpy() and iio_strdup()
  • 56c6c3e Move zalloc(), iio_snprintf() and macros to iio-backend.h
  • 6bc0bb0 iiod-client: Change prototype of iiod_client_create_context
  • dcb7f5e Add function iio_create_context_from_xml
  • 7fce9d9 Add public getters and setters for context/device/channel pdata
  • e2b8920 Define tokens iio_api_{import,export} and __iio_api in <iio.h>
  • ac783a6 iio_backend: Remove sizeof_context_pdata field
  • bb7e217 iio.h: Work around Doxygen complaints for undocumented macros
  • 8853e48 CMake: Fix CMAKE_HTML_DEST_DIR not available in Python bindings
  • d5e7f0c CMake: bindings: Bump required CMake version to 3.10
  • 3ae9edd iio-debug.h: Fix err code printed twice in perror macros
  • 7f53abf iio-debug.h: Fix default log level ignored when params == NULL
  • 6bc92c1 CI: Add workaround to get CMake 3.10 on Xenial
  • a3959a0 iiod: Simplify CMakeLists.txt script
  • 66617f4 tests: Simplify CMakeLists.txt script
  • 33cfb9c CMake: Update top-level CMakeLists.txt script
  • 38786f1 CMake: Split install-related rules to cmake/Install.cmake
  • 58694cb CMake: use VERSION / LIBIIO_VERSION variables
  • 42caf4b CMake: Set LIBIIO_VERSION after LIBIIO_VERSION_GIT
  • 3c08734 CMake: Move install rules for IIOD to IIOD's CMake script
  • 00647ca CMake: Use standard PROJECT_VERSION variables
  • a97da40 CMake: Bump CMake requirement to 3.10
  • cee7b68 IIOD: Move debug.h to iiod folder
  • e9a4d7d dns_sd: Use new log macros
  • 6c0a8b2 iiod-client: Use new log macros
  • f72f80d network: Use new log macros
  • 910381e usb: Use new log macros
  • c4bfe6d serial: Use new log macros
  • 235e903 serial: Rename serial_parse_params() to serial_parse_options()
  • 3041499 top-level: Use new log macros
  • a1d71df xml: Use new log macros
  • 840e8aa local: Use new log macros
  • c5ea830 local: Pass context pointer to foreach_in_dir()
  • a173feb Change prototype of add_iio_dev_attr()
  • 91b2aad Add public {prm,ctx,dev,chn}_perror print macros
  • ea037ef Add public {prm,ctx,dev,chn}_{dbg,info,warn,err} print macros
  • 3e20469 Add log levels to context params
  • 2f4e35e network: Support timeout_ms context param
  • 4735905 network: Add timeout argument to create_socket()
  • 6d85454 dns_sd: Pass params pointer to DNS-SD functions
  • 763b803 network: Split FD select code to platform-specific C files
  • 098582f usb: Support timeout_ms context param
  • 08cb8bf serial: Support timeout_ms context param
  • 0a95ee1 local: Support timeout_ms context param
  • ee44ccc iio.h: Add "timeout_ms" context param
  • 1524ef9 usb: Allow creating context with params
  • 592e169 network: Allow creating context with params
  • 0122c69 serial: Allow creating context with params
  • c2290bd iiod-client: Support params
  • a6e0bfe local: Allow creating context with params
  • 41a6f6a xml: Allow creating context with params
  • cd36e2e Add API function iio_create_context()
  • 2f2b457 Add private function get_default_params()
  • 227d889 Add API function iio_context_get_params()
  • 55a0d41 ci,azure-pipelines: Also build the dev branch
  • 8ebd706 CMake: Bump libiio version to 1.0

Don't miss a new libiio release

NewReleases is sending notifications on new releases.