[PATCH V4 0/8] libgpiod: Add Rust bindings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

Here is another version of rust bindings for libgpiod v2.0, based of the
next/libgpiod-2.0.

Pushed here:

https://github.com/vireshk/libgpiod master

V3->V4:
- Rebased on top of new changes, and made changes accordingly.
- Added rust integration tests with gpiosim.
- Found a kernel bug with tests, sent a patch for that to LKML.

V2->V3:
- Remove naming redundancy, users just need to do this now
  use libgpiod:{Chip, Direction, LineConfig} now (Bartosz);
- Fix lifetime issues between event-buffer and edge-event modules, the event
  buffer is released after the last edge-event reference is dropped (Bartosz).
- Allow edge-event to be copied, and freed later (Bartosz).
- Add two separate rust crates, sys and wrapper (Gerard).
- Null-terminate the strings passed to libgpiod (Wedson).
- Drop unnecessary checks to validate string returned from chip:name/label/path.
- Fix SAFETY comments (Wedson).
- Drop unnecessary clone() instances (Bartosz).

V1->V2:
- Added examples (I tested everything except gpiomon.rs, didn't have right
  hardware/mock device to test).
- Build rust bindings as part of Make, update documentation.

Thanks.

--
Viresh

Viresh Kumar (8):
  libgpiod: Add libgpiod-sys rust crate
  libgpiod: Add pre generated rust bindings
  libgpiod-sys: Add support to generate gpiosim bindings
  libgpiod: Add rust wrapper crate
  libgpiod: Add rust examples
  libgpiod: Derive debug traits for few definitions
  libgpiod: Add rust tests
  libgpiod: Integrate building of rust bindings with make

 .gitignore                                   |    5 +
 README                                       |    8 +-
 TODO                                         |    8 -
 bindings/Makefile.am                         |    6 +
 bindings/rust/Cargo.toml                     |   15 +
 bindings/rust/Makefile.am                    |   18 +
 bindings/rust/examples/gpiodetect.rs         |   37 +
 bindings/rust/examples/gpiofind.rs           |   42 +
 bindings/rust/examples/gpioget.rs            |   42 +
 bindings/rust/examples/gpioinfo.rs           |   89 +
 bindings/rust/examples/gpiomon.rs            |   68 +
 bindings/rust/examples/gpioset.rs            |   52 +
 bindings/rust/libgpiod-sys/Cargo.toml        |   16 +
 bindings/rust/libgpiod-sys/README.md         |   10 +
 bindings/rust/libgpiod-sys/build.rs          |   84 +
 bindings/rust/libgpiod-sys/gpiosim_wrapper.h |    1 +
 bindings/rust/libgpiod-sys/src/bindings.rs   | 1920 ++++++++++++++++++
 bindings/rust/libgpiod-sys/src/lib.rs        |   20 +
 bindings/rust/libgpiod-sys/wrapper.h         |    2 +
 bindings/rust/src/chip.rs                    |  184 ++
 bindings/rust/src/chip_info.rs               |   70 +
 bindings/rust/src/edge_event.rs              |  105 +
 bindings/rust/src/event_buffer.rs            |   88 +
 bindings/rust/src/info_event.rs              |   68 +
 bindings/rust/src/lib.rs                     |  323 +++
 bindings/rust/src/line_config.rs             |  493 +++++
 bindings/rust/src/line_info.rs               |  190 ++
 bindings/rust/src/line_request.rs            |  249 +++
 bindings/rust/src/request_config.rs          |  122 ++
 bindings/rust/tests/chip.rs                  |   96 +
 bindings/rust/tests/common/config.rs         |  117 ++
 bindings/rust/tests/common/mod.rs            |   16 +
 bindings/rust/tests/common/sim.rs            |  306 +++
 bindings/rust/tests/edge_event.rs            |  389 ++++
 bindings/rust/tests/info_event.rs            |  126 ++
 bindings/rust/tests/line_config.rs           |  187 ++
 bindings/rust/tests/line_info.rs             |   90 +
 bindings/rust/tests/line_request.rs          |  234 +++
 bindings/rust/tests/request_config.rs        |   42 +
 configure.ac                                 |   16 +
 40 files changed, 5943 insertions(+), 11 deletions(-)
 create mode 100644 bindings/rust/Cargo.toml
 create mode 100644 bindings/rust/Makefile.am
 create mode 100644 bindings/rust/examples/gpiodetect.rs
 create mode 100644 bindings/rust/examples/gpiofind.rs
 create mode 100644 bindings/rust/examples/gpioget.rs
 create mode 100644 bindings/rust/examples/gpioinfo.rs
 create mode 100644 bindings/rust/examples/gpiomon.rs
 create mode 100644 bindings/rust/examples/gpioset.rs
 create mode 100644 bindings/rust/libgpiod-sys/Cargo.toml
 create mode 100644 bindings/rust/libgpiod-sys/README.md
 create mode 100644 bindings/rust/libgpiod-sys/build.rs
 create mode 100644 bindings/rust/libgpiod-sys/gpiosim_wrapper.h
 create mode 100644 bindings/rust/libgpiod-sys/src/bindings.rs
 create mode 100644 bindings/rust/libgpiod-sys/src/lib.rs
 create mode 100644 bindings/rust/libgpiod-sys/wrapper.h
 create mode 100644 bindings/rust/src/chip.rs
 create mode 100644 bindings/rust/src/chip_info.rs
 create mode 100644 bindings/rust/src/edge_event.rs
 create mode 100644 bindings/rust/src/event_buffer.rs
 create mode 100644 bindings/rust/src/info_event.rs
 create mode 100644 bindings/rust/src/lib.rs
 create mode 100644 bindings/rust/src/line_config.rs
 create mode 100644 bindings/rust/src/line_info.rs
 create mode 100644 bindings/rust/src/line_request.rs
 create mode 100644 bindings/rust/src/request_config.rs
 create mode 100644 bindings/rust/tests/chip.rs
 create mode 100644 bindings/rust/tests/common/config.rs
 create mode 100644 bindings/rust/tests/common/mod.rs
 create mode 100644 bindings/rust/tests/common/sim.rs
 create mode 100644 bindings/rust/tests/edge_event.rs
 create mode 100644 bindings/rust/tests/info_event.rs
 create mode 100644 bindings/rust/tests/line_config.rs
 create mode 100644 bindings/rust/tests/line_info.rs
 create mode 100644 bindings/rust/tests/line_request.rs
 create mode 100644 bindings/rust/tests/request_config.rs

-- 
2.31.1.272.g89b43f80a514




[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux