From: Viresh Kumar <viresh.kumar@linaro.org>
To: Linus Walleij <linus.walleij@linaro.org>,
Bartosz Golaszewski <brgl@bgdev.pl>,
Kent Gibson <warthog618@gmail.com>
Cc: "Viresh Kumar" <viresh.kumar@linaro.org>,
"Vincent Guittot" <vincent.guittot@linaro.org>,
linux-gpio@vger.kernel.org,
"Miguel Ojeda" <miguel.ojeda.sandonis@gmail.com>,
"Wedson Almeida Filho" <wedsonaf@google.com>,
"Alex Bennée" <alex.bennee@linaro.org>,
stratos-dev@op-lists.linaro.org,
"Gerard Ryan" <g.m0n3y.2503@gmail.com>
Subject: [PATCH V5 0/8] libgpiod: Add Rust bindings
Date: Tue, 2 Aug 2022 17:48:04 +0530 [thread overview]
Message-ID: <cover.1659442066.git.viresh.kumar@linaro.org> (raw)
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
Kent, I hope I haven't missed any of your comments, there were too many of them.
Thanks for your review.
V4->V5:
- Arrange as workspace with crates for libgpiod-sys, libgpiod, gpiosim.
- Use static libgpiod and libgpiosim libraries instead of rebuilding again.
- Arrange in modules instead of flattened approach.
- New enums like Setting and SettingKind and new types based on them SettingMap
and SettingKindMap.
- New property independent helpers for line_config, like set_prop_default().
- Improved tests/examples, new example for gpiowatch.
- Add pre-built bindings for gpiosim too.
- Many other changes.
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-sys: Add pre generated rust bindings
libgpiod: Add rust wrapper crate
libgpiod: Add rust examples
libgpiod: Add gpiosim rust crate
gpiosim: Add pre generated rust bindings
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 | 7 +
bindings/rust/Makefile.am | 18 +
bindings/rust/gpiosim/Cargo.toml | 18 +
bindings/rust/gpiosim/README.md | 11 +
bindings/rust/gpiosim/build.rs | 43 +
bindings/rust/gpiosim/src/bindings.rs | 180 ++
bindings/rust/gpiosim/src/lib.rs | 25 +
bindings/rust/gpiosim/src/sim.rs | 323 ++++
bindings/rust/libgpiod-sys/Cargo.toml | 15 +
bindings/rust/libgpiod-sys/README.md | 11 +
bindings/rust/libgpiod-sys/build.rs | 41 +
bindings/rust/libgpiod-sys/src/bindings.rs | 1535 +++++++++++++++++
bindings/rust/libgpiod-sys/src/lib.rs | 13 +
bindings/rust/libgpiod/Cargo.toml | 16 +
bindings/rust/libgpiod/examples/gpiodetect.rs | 30 +
bindings/rust/libgpiod/examples/gpiofind.rs | 35 +
bindings/rust/libgpiod/examples/gpioget.rs | 44 +
bindings/rust/libgpiod/examples/gpioinfo.rs | 95 +
bindings/rust/libgpiod/examples/gpiomon.rs | 71 +
bindings/rust/libgpiod/examples/gpioset.rs | 64 +
bindings/rust/libgpiod/examples/gpiowatch.rs | 54 +
bindings/rust/libgpiod/src/chip.rs | 253 +++
bindings/rust/libgpiod/src/edge_event.rs | 102 ++
bindings/rust/libgpiod/src/event_buffer.rs | 90 +
bindings/rust/libgpiod/src/info_event.rs | 68 +
bindings/rust/libgpiod/src/lib.rs | 477 +++++
bindings/rust/libgpiod/src/line_config.rs | 586 +++++++
bindings/rust/libgpiod/src/line_info.rs | 180 ++
bindings/rust/libgpiod/src/line_request.rs | 246 +++
bindings/rust/libgpiod/src/request_config.rs | 119 ++
bindings/rust/libgpiod/tests/chip.rs | 97 ++
bindings/rust/libgpiod/tests/common/config.rs | 142 ++
bindings/rust/libgpiod/tests/common/mod.rs | 10 +
bindings/rust/libgpiod/tests/edge_event.rs | 294 ++++
bindings/rust/libgpiod/tests/info_event.rs | 120 ++
bindings/rust/libgpiod/tests/line_config.rs | 293 ++++
bindings/rust/libgpiod/tests/line_info.rs | 272 +++
bindings/rust/libgpiod/tests/line_request.rs | 473 +++++
.../rust/libgpiod/tests/request_config.rs | 42 +
configure.ac | 16 +
44 files changed, 6545 insertions(+), 11 deletions(-)
create mode 100644 bindings/rust/Cargo.toml
create mode 100644 bindings/rust/Makefile.am
create mode 100644 bindings/rust/gpiosim/Cargo.toml
create mode 100644 bindings/rust/gpiosim/README.md
create mode 100644 bindings/rust/gpiosim/build.rs
create mode 100644 bindings/rust/gpiosim/src/bindings.rs
create mode 100644 bindings/rust/gpiosim/src/lib.rs
create mode 100644 bindings/rust/gpiosim/src/sim.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/src/bindings.rs
create mode 100644 bindings/rust/libgpiod-sys/src/lib.rs
create mode 100644 bindings/rust/libgpiod/Cargo.toml
create mode 100644 bindings/rust/libgpiod/examples/gpiodetect.rs
create mode 100644 bindings/rust/libgpiod/examples/gpiofind.rs
create mode 100644 bindings/rust/libgpiod/examples/gpioget.rs
create mode 100644 bindings/rust/libgpiod/examples/gpioinfo.rs
create mode 100644 bindings/rust/libgpiod/examples/gpiomon.rs
create mode 100644 bindings/rust/libgpiod/examples/gpioset.rs
create mode 100644 bindings/rust/libgpiod/examples/gpiowatch.rs
create mode 100644 bindings/rust/libgpiod/src/chip.rs
create mode 100644 bindings/rust/libgpiod/src/edge_event.rs
create mode 100644 bindings/rust/libgpiod/src/event_buffer.rs
create mode 100644 bindings/rust/libgpiod/src/info_event.rs
create mode 100644 bindings/rust/libgpiod/src/lib.rs
create mode 100644 bindings/rust/libgpiod/src/line_config.rs
create mode 100644 bindings/rust/libgpiod/src/line_info.rs
create mode 100644 bindings/rust/libgpiod/src/line_request.rs
create mode 100644 bindings/rust/libgpiod/src/request_config.rs
create mode 100644 bindings/rust/libgpiod/tests/chip.rs
create mode 100644 bindings/rust/libgpiod/tests/common/config.rs
create mode 100644 bindings/rust/libgpiod/tests/common/mod.rs
create mode 100644 bindings/rust/libgpiod/tests/edge_event.rs
create mode 100644 bindings/rust/libgpiod/tests/info_event.rs
create mode 100644 bindings/rust/libgpiod/tests/line_config.rs
create mode 100644 bindings/rust/libgpiod/tests/line_info.rs
create mode 100644 bindings/rust/libgpiod/tests/line_request.rs
create mode 100644 bindings/rust/libgpiod/tests/request_config.rs
--
2.31.1.272.g89b43f80a514
next reply other threads:[~2022-08-02 12:18 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-02 12:18 Viresh Kumar [this message]
2022-08-02 12:18 ` [PATCH V5 1/8] libgpiod: Add libgpiod-sys rust crate Viresh Kumar
2022-08-02 12:18 ` [PATCH V5 2/8] libgpiod-sys: Add pre generated rust bindings Viresh Kumar
2022-08-02 12:18 ` [PATCH V5 3/8] libgpiod: Add rust wrapper crate Viresh Kumar
2022-08-02 12:18 ` [PATCH V5 4/8] libgpiod: Add rust examples Viresh Kumar
2022-08-02 12:18 ` [PATCH V5 5/8] libgpiod: Add gpiosim rust crate Viresh Kumar
2022-08-02 12:18 ` [PATCH V5 6/8] gpiosim: Add pre generated rust bindings Viresh Kumar
2022-08-02 12:18 ` [PATCH V5 7/8] libgpiod: Add rust tests Viresh Kumar
2022-08-02 12:18 ` [PATCH V5 8/8] libgpiod: Integrate building of rust bindings with make Viresh Kumar
2022-08-05 14:25 ` [PATCH V5 0/8] libgpiod: Add Rust bindings Bartosz Golaszewski
2022-08-09 5:59 ` Viresh Kumar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1659442066.git.viresh.kumar@linaro.org \
--to=viresh.kumar@linaro.org \
--cc=alex.bennee@linaro.org \
--cc=brgl@bgdev.pl \
--cc=g.m0n3y.2503@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=miguel.ojeda.sandonis@gmail.com \
--cc=stratos-dev@op-lists.linaro.org \
--cc=vincent.guittot@linaro.org \
--cc=warthog618@gmail.com \
--cc=wedsonaf@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).