mirror of
https://github.com/nxp-imx/linux-imx.git
synced 2025-07-06 01:15:20 +02:00
ANDROID: rust_binder: define a Rust binder driver
Define the Rust binder driver, and set up the helpers for making C types accessible from Rust. Link: https://lore.kernel.org/rust-for-linux/20231101-rust-binder-v1-1-08ba9197f637@google.com/ Change-Id: Ia216cfa72cad8506b39f1dcc815231ea1b4b65d0 Co-developed-by: Alice Ryhl <aliceryhl@google.com> Signed-off-by: Wedson Almeida Filho <wedsonaf@gmail.com> Signed-off-by: Alice Ryhl <aliceryhl@google.com> Bug: 278052745
This commit is contained in:
parent
ae2f23944e
commit
adfa541d88
|
@ -13,6 +13,17 @@ config ANDROID_BINDER_IPC
|
|||
Android process, using Binder to identify, invoke and pass arguments
|
||||
between said processes.
|
||||
|
||||
config ANDROID_BINDER_IPC_RUST
|
||||
bool "Android Binder IPC Driver in Rust"
|
||||
depends on MMU && RUST
|
||||
help
|
||||
Binder is used in Android for both communication between processes,
|
||||
and remote method invocation.
|
||||
|
||||
This means one Android process can call a method/routine in another
|
||||
Android process, using Binder to identify, invoke and pass arguments
|
||||
between said processes.
|
||||
|
||||
config ANDROID_BINDERFS
|
||||
bool "Android Binderfs filesystem"
|
||||
depends on ANDROID_BINDER_IPC
|
||||
|
|
|
@ -4,5 +4,6 @@ ccflags-y += -I$(src) # needed for trace events
|
|||
obj-$(CONFIG_ANDROID_BINDERFS) += binderfs.o
|
||||
obj-$(CONFIG_ANDROID_BINDER_IPC) += binder.o binder_alloc.o
|
||||
obj-$(CONFIG_ANDROID_BINDER_IPC_SELFTEST) += binder_alloc_selftest.o
|
||||
obj-$(CONFIG_ANDROID_BINDER_IPC_RUST) += binder/rust_binder.o
|
||||
obj-$(CONFIG_ANDROID_VENDOR_HOOKS) += vendor_hooks.o
|
||||
obj-$(CONFIG_ANDROID_DEBUG_KINFO) += debug_kinfo.o
|
||||
|
|
23
drivers/android/binder/rust_binder.rs
Normal file
23
drivers/android/binder/rust_binder.rs
Normal file
|
@ -0,0 +1,23 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
// Copyright (C) 2024 Google LLC.
|
||||
|
||||
//! Binder -- the Android IPC mechanism.
|
||||
|
||||
use kernel::prelude::*;
|
||||
|
||||
module! {
|
||||
type: BinderModule,
|
||||
name: "rust_binder",
|
||||
author: "Wedson Almeida Filho, Alice Ryhl",
|
||||
description: "Android Binder",
|
||||
license: "GPL",
|
||||
}
|
||||
|
||||
struct BinderModule {}
|
||||
|
||||
impl kernel::Module for BinderModule {
|
||||
fn init(_module: &'static kernel::ThisModule) -> Result<Self> {
|
||||
Ok(Self {})
|
||||
}
|
||||
}
|
|
@ -23,6 +23,7 @@
|
|||
#include <linux/sched.h>
|
||||
#include <linux/task_work.h>
|
||||
#include <linux/workqueue.h>
|
||||
#include <uapi/linux/android/binder.h>
|
||||
|
||||
/* `bindgen` gets confused at certain things. */
|
||||
const size_t RUST_CONST_HELPER_ARCH_SLAB_MINALIGN = ARCH_SLAB_MINALIGN;
|
||||
|
|
Loading…
Reference in New Issue
Block a user