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