rust-for-linux.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/5] use custom FFI integer types
@ 2024-09-13 21:29 Gary Guo
  2024-09-13 21:29 ` [PATCH 1/5] rust: fix size_t in bindgen prototypes of C builtins Gary Guo
                   ` (6 more replies)
  0 siblings, 7 replies; 20+ messages in thread
From: Gary Guo @ 2024-09-13 21:29 UTC (permalink / raw)
  To: Miguel Ojeda, Alex Gaynor, Wedson Almeida Filho, Boqun Feng,
	Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg,
	Alice Ryhl, Trevor Gross
  Cc: rust-for-linux

This patch series aim to reduce the unnecessary type casts needed in
Rust code doing FFI calls.

With this series, we can ensure:

* `size_t` is mapped to usize. Currently this is mostly true except for
  C builtin functions, which gets translated by bindgen to c_ulong/c_uint.

* `__kernel_size_t` is mapped to usize. Currently this is mapped to
  c_ulong/c_uint.

* `unsigned long` is mapped to usize. Currently this is mapped by Rust
  libcore to either u32 or u64.

* `char` is mapped to `u8`. Currently this is mapped by Rust libcore to
  either i8 or u8.

After this series, FFI code needs to use `kernel::ffi` types instead of
`core::ffi`.

Gary Guo (5):
  rust: fix size_t in bindgen prototypes of C builtins
  rust: map `__kernel_size_t` and friends also to usize/isize
  rust: use custom FFI integer types
  rust: map `long` to `isize` and `char` to `u8`
  rust: cleanup unnecessary casts

 rust/Makefile                      | 24 ++++++++++-----
 rust/bindgen_parameters            |  5 ++++
 rust/bindings/lib.rs               |  5 ++++
 rust/ffi.rs                        | 48 ++++++++++++++++++++++++++++++
 rust/kernel/alloc/allocator.rs     |  4 +--
 rust/kernel/block/mq/operations.rs | 18 +++++------
 rust/kernel/block/mq/raw_writer.rs |  2 +-
 rust/kernel/block/mq/tag_set.rs    |  2 +-
 rust/kernel/error.rs               | 25 +++++++---------
 rust/kernel/firmware.rs            |  2 +-
 rust/kernel/init.rs                |  2 +-
 rust/kernel/kunit.rs               | 10 ++-----
 rust/kernel/lib.rs                 |  2 ++
 rust/kernel/net/phy.rs             | 14 ++++-----
 rust/kernel/print.rs               |  4 +--
 rust/kernel/str.rs                 | 10 +++----
 rust/kernel/sync/arc.rs            |  6 ++--
 rust/kernel/sync/condvar.rs        |  2 +-
 rust/kernel/sync/lock.rs           |  2 +-
 rust/kernel/sync/lock/mutex.rs     |  2 +-
 rust/kernel/sync/lock/spinlock.rs  |  2 +-
 rust/kernel/task.rs                |  8 ++---
 rust/kernel/time.rs                |  4 +--
 rust/kernel/types.rs               | 26 ++++++++--------
 rust/kernel/uaccess.rs             | 31 ++++++-------------
 rust/macros/module.rs              |  8 ++---
 rust/uapi/lib.rs                   |  5 ++++
 27 files changed, 161 insertions(+), 112 deletions(-)
 create mode 100644 rust/ffi.rs


base-commit: 93dc3be19450447a3a7090bd1dfb9f3daac3e8d2
-- 
2.44.1


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

end of thread, other threads:[~2024-12-15 22:25 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-13 21:29 [PATCH 0/5] use custom FFI integer types Gary Guo
2024-09-13 21:29 ` [PATCH 1/5] rust: fix size_t in bindgen prototypes of C builtins Gary Guo
2024-09-29 21:00   ` Trevor Gross
2024-10-05 22:10     ` Gary Guo
2024-09-13 21:29 ` [PATCH 2/5] rust: map `__kernel_size_t` and friends also to usize/isize Gary Guo
2024-09-23  9:20   ` Alice Ryhl
2024-09-29 21:02   ` Trevor Gross
2024-09-13 21:29 ` [PATCH 3/5] rust: use custom FFI integer types Gary Guo
2024-09-13 21:29 ` [PATCH 4/5] rust: map `long` to `isize` and `char` to `u8` Gary Guo
2024-09-23  9:20   ` Alice Ryhl
2024-09-13 21:29 ` [PATCH 5/5] rust: cleanup unnecessary casts Gary Guo
2024-09-23  9:19   ` Alice Ryhl
2024-09-13 21:42 ` [PATCH 0/5] use custom FFI integer types Benno Lossin
     [not found]   ` <CAOcBZOS6BAJ1FTFkB3x6jdag_hL7zrLbFy7TxkvZWKxRZ_+ggA@mail.gmail.com>
2024-09-14  2:51     ` Ramon de C Valle
2024-09-14  8:52       ` Alice Ryhl
2024-09-14 23:52       ` Gary Guo
2024-09-16 17:17         ` Ramon de C Valle
2024-09-16 17:26           ` Miguel Ojeda
2024-11-11  0:14 ` Miguel Ojeda
2024-12-15 22:25   ` 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).