rust-for-linux.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/2] rust: Add uapi crate
@ 2023-04-03  9:33 Asahi Lina
  2023-04-03  9:33 ` [PATCH v2 1/2] rust: uapi: Add UAPI crate Asahi Lina
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Asahi Lina @ 2023-04-03  9:33 UTC (permalink / raw)
  To: Miguel Ojeda, Alex Gaynor, Wedson Almeida Filho, Boqun Feng,
	Gary Guo, Björn Roy Baron, Arnd Bergmann
  Cc: Martin Rodriguez Reboredo, linux-kernel, rust-for-linux, asahi,
	Asahi Lina

In general, direct bindgen bindings for C kernel APIs are not intended
to be used by drivers outside of the `kernel` crate. However, some
drivers do need to interact directly with UAPI definitions to implement
userspace APIs.

Instead of making this an exception to the use of the `bindings` crate,
introduce a new `uapi` crate that will contain only these publicly
usable definitions. The build logic mirrors the `bindings` crate, but
there is no helper support since UAPIs are only intended to contain
constant and type definitions, not function prototypes.

In the future, we would like to extend this to also auto-derive and
validate certain safety properties for UAPI structure definitions, such
as that they are safely castable to/from "bag of bits" buffers.

The first patch introduces the `uapi` crate proper and stands on its own,
while the second patch introduces the `ioctl` module in the kernel crate
that uses it.

(Miguel: this series should apply stand-alone now)

Signed-off-by: Asahi Lina <lina@asahilina.net>
---
Changes in v2:
- Fixed the trailing '\' warning (mirroring the fix from Vicenzo
  Palazzo)
- Pulled in the ioctl module patch into this series. Per the discussion
  in the meeting, this could be moved into the uapi crate in principle,
  but we can decide to do that later since the whole buildsystem is
  likely to undergo major changes anyway.
- Link to v1: https://lore.kernel.org/r/20230329-rust-uapi-v1-0-ee78f2933726@asahilina.net

---
Asahi Lina (2):
      rust: uapi: Add UAPI crate
      rust: ioctl: Add ioctl number manipulation functions
 rust/.gitignore         |  1 +
 rust/Makefile           | 18 +++++++++++--
 rust/kernel/ioctl.rs    | 71 +++++++++++++++++++++++++++++++++++++++++++++++++
 rust/kernel/lib.rs      |  2 ++
 rust/uapi/lib.rs        | 27 +++++++++++++++++++
 rust/uapi/uapi_helper.h |  9 +++++++
 6 files changed, 126 insertions(+), 2 deletions(-)
---
base-commit: fe15c26ee26efa11741a7b632e9f23b01aca4cc6
change-id: 20230329-rust-uapi-894421e9a5d2

Thank you,
~~ Lina


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-04-21 23:48 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-03  9:33 [PATCH v2 0/2] rust: Add uapi crate Asahi Lina
2023-04-03  9:33 ` [PATCH v2 1/2] rust: uapi: Add UAPI crate Asahi Lina
2023-04-03  9:33 ` [PATCH v2 2/2] rust: ioctl: Add ioctl number manipulation functions Asahi Lina
2023-04-21 23:48 ` [PATCH v2 0/2] rust: Add uapi crate Miguel Ojeda

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).