# SPDX-License-Identifier: GPL-2.0
menu "Android"

config ANDROID_BINDER_IPC
	bool "Android Binder IPC Driver"
	depends on MMU
	depends on NET
	default n
	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_BINDER_IPC_RUST
	bool "Rust version of Android Binder IPC Driver"
	depends on RUST && MMU && !ANDROID_BINDER_IPC
	help
	  This enables the Rust implementation of the Binder driver.

	  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
	default n
	help
	  Binderfs is a pseudo-filesystem for the Android Binder IPC driver
	  which can be mounted per-ipc namespace allowing to run multiple
	  instances of Android.
	  Each binderfs mount initially only contains a binder-control device.
	  It can be used to dynamically allocate new binder IPC devices via
	  ioctls.

config ANDROID_BINDER_DEVICES
	string "Android Binder devices"
	depends on ANDROID_BINDER_IPC || ANDROID_BINDER_IPC_RUST
	default "binder,hwbinder,vndbinder"
	help
	  Default value for the binder.devices parameter.

	  The binder.devices parameter is a comma-separated list of strings
	  that specifies the names of the binder device nodes that will be
	  created. Each binder device has its own context manager, and is
	  therefore logically separated from the other devices.

config ANDROID_BINDER_ALLOC_KUNIT_TEST
	tristate "KUnit Tests for Android Binder Alloc" if !KUNIT_ALL_TESTS
	depends on ANDROID_BINDER_IPC && KUNIT
	default KUNIT_ALL_TESTS
	help
	  This feature builds the binder alloc KUnit tests.

	  Each test case runs using a pared-down binder_alloc struct and
	  test-specific freelist, which allows this KUnit module to be loaded
	  for testing without interfering with a running system.

endmenu
