Changes v3 -> v4: - tests require kernel v5.5.0 - use std::map for bias mappings in cxx bindings - drop gpiod_line_is_requested_values - various formatting and coding style fixes - relocate common tool code into tools-common - tools bail on bad command line parameters - add drive option to gpioset in a separate patch - split out documentation update for gpiod_line_set_value_bulk - split out change to vals variable in gpiod_Line_set_value This patch series adds support for changes to the GPIO uAPI that are on track to be included in the v5.5 kernel. There are two components to the uAPI changes - the addition of bias flags and a new SET_CONFIG ioctl. This series adds support to the libgpiod API, and to both C++ and Python bindings, for both of those components. The libgpiod tools are also updated, where appropriate, to support the bias flags. The series is based on the current libgpiod master: master@00418df tests: fix a typo in comment Kent Gibson (20): core: add support for bias flags tests: add tests for bias flags bindings: cxx: add support for bias flags bindings: cxx: tests: add tests for bias flags bindings: python: add support for bias flags bindings: python: tests: add tests for bias flags core: add support for SET_CONFIG tests: add tests for SET_CONFIG bindings: cxx: add support for SET_CONFIG bindings: cxx: tests: add tests for SET_CONFIG methods bindings: python: move tuple to int array conversion into helper function bindings: python: add support for SET_CONFIG bindings: python: tests: add tests for SET_CONFIG methods tools: add support for bias flags tools: add tests for bias flags tools: gpioset: add support for drive flags tools: add tests for drive flags core: document gpiod_line_set_value_bulk NULL values behaviour bindings: cxx: fix indentation of wrapped field descriptions bindings: python: make vals in gpiod_Line_set_value consistent with other functions bindings/cxx/gpiod.hpp | 85 ++++- bindings/cxx/line.cpp | 56 +++ bindings/cxx/line_bulk.cpp | 89 +++++ bindings/cxx/tests/gpiod-cxx-test.cpp | 2 +- bindings/cxx/tests/tests-line.cpp | 215 +++++++++++ bindings/python/gpiodmodule.c | 485 +++++++++++++++++++++++-- bindings/python/tests/gpiod_py_test.py | 256 ++++++++++++- include/gpiod.h | 297 +++++++++++++++ lib/core.c | 214 ++++++++++- lib/ctxless.c | 114 +++++- tests/gpiod-test.c | 4 +- tests/tests-ctxless.c | 64 +++- tests/tests-event.c | 120 ++++++ tests/tests-line.c | 468 +++++++++++++++++++++++- tools/gpio-tools-test | 2 +- tools/gpio-tools-test.bats | 175 +++++++++ tools/gpioget.c | 17 +- tools/gpiomon.c | 21 +- tools/gpioset.c | 41 ++- tools/tools-common.c | 22 ++ tools/tools-common.h | 2 + 21 files changed, 2679 insertions(+), 70 deletions(-) -- 2.24.0