# SPDX-License-Identifier: GPL-2.0

menuconfig SAMPLES_RUST
	bool "Rust samples"
	depends on RUST
	help
	  You can build sample Rust kernel code here.

	  If unsure, say N.

if SAMPLES_RUST

config SAMPLE_RUST_MINIMAL
	tristate "Minimal"
	help
	  This option builds the Rust minimal module sample.

	  To compile this as a module, choose M here:
	  the module will be called rust_minimal.

	  If unsure, say N.

config SAMPLE_RUST_MISC_DEVICE
	tristate "Misc device"
	help
	  This option builds the Rust misc device.

	  To compile this as a module, choose M here:
	  the module will be called rust_misc_device.

	  If unsure, say N.

config SAMPLE_RUST_PRINT
	tristate "Printing macros"
	help
	  This option builds the Rust printing macros sample.

	  To compile this as a module, choose M here:
	  the module will be called rust_print.

	  If unsure, say N.

config SAMPLE_RUST_DMA
	tristate "DMA Test Driver"
	depends on PCI
	help
	  This option builds the Rust DMA Test driver sample.

	  To compile this as a module, choose M here:
	  the module will be called rust_dma.

	  If unsure, say N.

config SAMPLE_RUST_DRIVER_PCI
	tristate "PCI Driver"
	depends on PCI
	help
	  This option builds the Rust PCI driver sample.

	  To compile this as a module, choose M here:
	  the module will be called driver_pci.

	  If unsure, say N.

config SAMPLE_RUST_DRIVER_PLATFORM
	tristate "Platform Driver"
	help
	  This option builds the Rust Platform driver sample.

	  To compile this as a module, choose M here:
	  the module will be called rust_driver_platform.

	  If unsure, say N.

config SAMPLE_RUST_DRIVER_FAUX
	tristate "Faux Driver"
	help
	  This option builds the Rust Faux driver sample.

	  To compile this as a module, choose M here:
	  the module will be called rust_driver_faux.

	  If unsure, say N.

config SAMPLE_RUST_HOSTPROGS
	bool "Host programs"
	help
	  This option builds the Rust host program samples.

	  If unsure, say N.

endif # SAMPLES_RUST
