A misc device is generally the best place to start with your first Rust driver, so having abstractions for miscdevice in Rust will be important for our ability to teach Rust to kernel developers. I intend to add a sample driver using these abstractions, and I also intend to use it in Rust Binder to handle the case where binderfs is turned off. To avoid having a dependency on files, this patchset does not provide the file operations callbacks a pointer to the file. This means that they cannot check file properties such as O_NONBLOCK (which Binder needs). Support for that can be added as a follow-up. To avoid having a dependency on vma, this patchset does not provide any way to implement mmap (which Binder needs). Support for that can be added as a follow-up. Signed-off-by: Alice Ryhl <aliceryhl@xxxxxxxxxx> --- Changes in v2: - Remove dependency on vma and file patchsets. - Remove mmap, llseek, read_iter functions. - Drop file position commit. - Reword commit messages. - Link to v1: https://lore.kernel.org/r/20240926-b4-miscdevice-v1-0-7349c2b2837a@xxxxxxxxxx --- Alice Ryhl (2): rust: types: add Opaque::try_ffi_init rust: miscdevice: add base miscdevice abstraction rust/bindings/bindings_helper.h | 1 + rust/kernel/lib.rs | 1 + rust/kernel/miscdevice.rs | 241 ++++++++++++++++++++++++++++++++++++++++ rust/kernel/types.rs | 16 +++ 4 files changed, 259 insertions(+) --- base-commit: 9852d85ec9d492ebef56dc5f229416c925758edc change-id: 20240926-b4-miscdevice-29a0fd8438b1 Best regards, -- Alice Ryhl <aliceryhl@xxxxxxxxxx>