xref: /linux/drivers/android/Kconfig (revision 4f38da1f027ea2c9f01bb71daa7a299c191b6940)
1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
2777783e0SGreg Kroah-Hartmanmenu "Android"
3777783e0SGreg Kroah-Hartman
4777783e0SGreg Kroah-Hartmanconfig ANDROID_BINDER_IPC
5777783e0SGreg Kroah-Hartman	bool "Android Binder IPC Driver"
68ced0c62STodd Kjos	depends on MMU
763740349SLi Li	depends on NET
8777783e0SGreg Kroah-Hartman	default n
9a7f7f624SMasahiro Yamada	help
10777783e0SGreg Kroah-Hartman	  Binder is used in Android for both communication between processes,
11777783e0SGreg Kroah-Hartman	  and remote method invocation.
12777783e0SGreg Kroah-Hartman
13777783e0SGreg Kroah-Hartman	  This means one Android process can call a method/routine in another
14777783e0SGreg Kroah-Hartman	  Android process, using Binder to identify, invoke and pass arguments
15777783e0SGreg Kroah-Hartman	  between said processes.
16777783e0SGreg Kroah-Hartman
17*eafedbc7SAlice Ryhlconfig ANDROID_BINDER_IPC_RUST
18*eafedbc7SAlice Ryhl	bool "Rust version of Android Binder IPC Driver"
19*eafedbc7SAlice Ryhl	depends on RUST && MMU && !ANDROID_BINDER_IPC
20*eafedbc7SAlice Ryhl	help
21*eafedbc7SAlice Ryhl	  This enables the Rust implementation of the Binder driver.
22*eafedbc7SAlice Ryhl
23*eafedbc7SAlice Ryhl	  Binder is used in Android for both communication between processes,
24*eafedbc7SAlice Ryhl	  and remote method invocation.
25*eafedbc7SAlice Ryhl
26*eafedbc7SAlice Ryhl	  This means one Android process can call a method/routine in another
27*eafedbc7SAlice Ryhl	  Android process, using Binder to identify, invoke and pass arguments
28*eafedbc7SAlice Ryhl	  between said processes.
29*eafedbc7SAlice Ryhl
303ad20fe3SChristian Braunerconfig ANDROID_BINDERFS
313ad20fe3SChristian Brauner	bool "Android Binderfs filesystem"
323ad20fe3SChristian Brauner	depends on ANDROID_BINDER_IPC
333ad20fe3SChristian Brauner	default n
34a7f7f624SMasahiro Yamada	help
353ad20fe3SChristian Brauner	  Binderfs is a pseudo-filesystem for the Android Binder IPC driver
363ad20fe3SChristian Brauner	  which can be mounted per-ipc namespace allowing to run multiple
373ad20fe3SChristian Brauner	  instances of Android.
383ad20fe3SChristian Brauner	  Each binderfs mount initially only contains a binder-control device.
393ad20fe3SChristian Brauner	  It can be used to dynamically allocate new binder IPC devices via
403ad20fe3SChristian Brauner	  ioctls.
413ad20fe3SChristian Brauner
42ac4812c5SMartijn Coenenconfig ANDROID_BINDER_DEVICES
43ac4812c5SMartijn Coenen	string "Android Binder devices"
44*eafedbc7SAlice Ryhl	depends on ANDROID_BINDER_IPC || ANDROID_BINDER_IPC_RUST
459e18d0c8SMartijn Coenen	default "binder,hwbinder,vndbinder"
46a7f7f624SMasahiro Yamada	help
47ac4812c5SMartijn Coenen	  Default value for the binder.devices parameter.
48ac4812c5SMartijn Coenen
49ac4812c5SMartijn Coenen	  The binder.devices parameter is a comma-separated list of strings
50ac4812c5SMartijn Coenen	  that specifies the names of the binder device nodes that will be
51ac4812c5SMartijn Coenen	  created. Each binder device has its own context manager, and is
52ac4812c5SMartijn Coenen	  therefore logically separated from the other devices.
53ac4812c5SMartijn Coenen
545e024582STiffany Yangconfig ANDROID_BINDER_ALLOC_KUNIT_TEST
555e024582STiffany Yang	tristate "KUnit Tests for Android Binder Alloc" if !KUNIT_ALL_TESTS
565e024582STiffany Yang	depends on ANDROID_BINDER_IPC && KUNIT
575e024582STiffany Yang	default KUNIT_ALL_TESTS
585e024582STiffany Yang	help
595e024582STiffany Yang	  This feature builds the binder alloc KUnit tests.
605e024582STiffany Yang
615e024582STiffany Yang	  Each test case runs using a pared-down binder_alloc struct and
625e024582STiffany Yang	  test-specific freelist, which allows this KUnit module to be loaded
635e024582STiffany Yang	  for testing without interfering with a running system.
645e024582STiffany Yang
65777783e0SGreg Kroah-Hartmanendmenu
66