|  | # SPDX-License-Identifier: GPL-2.0-only | 
|  | menuconfig SAMPLES | 
|  | bool "Sample kernel code" | 
|  | help | 
|  | You can build and test sample kernel code here. | 
|  |  | 
|  | if SAMPLES | 
|  |  | 
|  | config SAMPLE_AUXDISPLAY | 
|  | bool "auxdisplay sample" | 
|  | depends on CC_CAN_LINK | 
|  |  | 
|  | config SAMPLE_TRACE_EVENTS | 
|  | tristate "Build trace_events examples -- loadable modules only" | 
|  | depends on EVENT_TRACING && m | 
|  | help | 
|  | This builds the trace event example module. | 
|  |  | 
|  | config SAMPLE_TRACE_CUSTOM_EVENTS | 
|  | tristate "Build custom trace event example -- loadable modules only" | 
|  | depends on EVENT_TRACING && m | 
|  | help | 
|  | This builds the custom trace event example module. | 
|  |  | 
|  | config SAMPLE_TRACE_PRINTK | 
|  | tristate "Build trace_printk module - tests various trace_printk formats" | 
|  | depends on EVENT_TRACING && m | 
|  | help | 
|  | This builds a module that calls trace_printk() and can be used to | 
|  | test various trace_printk() calls from a module. | 
|  |  | 
|  | config SAMPLE_FTRACE_DIRECT | 
|  | tristate "Build register_ftrace_direct() example" | 
|  | depends on DYNAMIC_FTRACE_WITH_DIRECT_CALLS && m | 
|  | depends on HAVE_SAMPLE_FTRACE_DIRECT | 
|  | help | 
|  | This builds an ftrace direct function example | 
|  | that hooks to wake_up_process and prints the parameters. | 
|  |  | 
|  | config SAMPLE_FTRACE_DIRECT_MULTI | 
|  | tristate "Build register_ftrace_direct_multi() example" | 
|  | depends on DYNAMIC_FTRACE_WITH_DIRECT_CALLS && m | 
|  | depends on HAVE_SAMPLE_FTRACE_DIRECT_MULTI | 
|  | help | 
|  | This builds an ftrace direct function example | 
|  | that hooks to wake_up_process and schedule, and prints | 
|  | the function addresses. | 
|  |  | 
|  | config SAMPLE_TRACE_ARRAY | 
|  | tristate "Build sample module for kernel access to Ftrace instancess" | 
|  | depends on EVENT_TRACING && m | 
|  | help | 
|  | This builds a module that demonstrates the use of various APIs to | 
|  | access Ftrace instances from within the kernel. | 
|  |  | 
|  | config SAMPLE_KOBJECT | 
|  | tristate "Build kobject examples" | 
|  | help | 
|  | This config option will allow you to build a number of | 
|  | different kobject sample modules showing how to use kobjects, | 
|  | ksets, and ktypes properly. | 
|  |  | 
|  | If in doubt, say "N" here. | 
|  |  | 
|  | config SAMPLE_KPROBES | 
|  | tristate "Build kprobes examples -- loadable modules only" | 
|  | depends on KPROBES && m | 
|  | help | 
|  | This build several kprobes example modules. | 
|  |  | 
|  | config SAMPLE_KRETPROBES | 
|  | tristate "Build kretprobes example -- loadable modules only" | 
|  | default m | 
|  | depends on SAMPLE_KPROBES && KRETPROBES | 
|  |  | 
|  | config SAMPLE_HW_BREAKPOINT | 
|  | tristate "Build kernel hardware breakpoint examples -- loadable module only" | 
|  | depends on HAVE_HW_BREAKPOINT && m | 
|  | help | 
|  | This builds kernel hardware breakpoint example modules. | 
|  |  | 
|  | config SAMPLE_FPROBE | 
|  | tristate "Build fprobe examples -- loadable modules only" | 
|  | depends on FPROBE && m | 
|  | help | 
|  | This builds a fprobe example module. This module has an option 'symbol'. | 
|  | You can specify a probed symbol or symbols separated with ','. | 
|  |  | 
|  | config SAMPLE_KFIFO | 
|  | tristate "Build kfifo examples -- loadable modules only" | 
|  | depends on m | 
|  | help | 
|  | This config option will allow you to build a number of | 
|  | different kfifo sample modules showing how to use the | 
|  | generic kfifo API. | 
|  |  | 
|  | If in doubt, say "N" here. | 
|  |  | 
|  | config SAMPLE_KDB | 
|  | tristate "Build kdb command example -- loadable modules only" | 
|  | depends on KGDB_KDB && m | 
|  | help | 
|  | Build an example of how to dynamically add the hello | 
|  | command to the kdb shell. | 
|  |  | 
|  | config SAMPLE_QMI_CLIENT | 
|  | tristate "Build qmi client sample -- loadable modules only" | 
|  | depends on m | 
|  | depends on ARCH_QCOM | 
|  | depends on NET | 
|  | select QCOM_QMI_HELPERS | 
|  | help | 
|  | Build an QMI client sample driver, which demonstrates how to | 
|  | communicate with a remote QRTR service, using QMI encoded messages. | 
|  |  | 
|  | config SAMPLE_RPMSG_CLIENT | 
|  | tristate "Build rpmsg client sample -- loadable modules only" | 
|  | depends on RPMSG && m | 
|  | help | 
|  | Build an rpmsg client sample driver, which demonstrates how | 
|  | to communicate with an AMP-configured remote processor over | 
|  | the rpmsg bus. | 
|  |  | 
|  | config SAMPLE_LIVEPATCH | 
|  | tristate "Build live patching samples -- loadable modules only" | 
|  | depends on LIVEPATCH && m | 
|  | help | 
|  | Build sample live patch demonstrations. | 
|  |  | 
|  | config SAMPLE_CONFIGFS | 
|  | tristate "Build configfs patching sample -- loadable modules only" | 
|  | depends on CONFIGFS_FS && m | 
|  | help | 
|  | Builds a sample configfs interface. | 
|  |  | 
|  | config SAMPLE_CONNECTOR | 
|  | tristate "Build connector sample -- loadable modules only" | 
|  | depends on CONNECTOR && HEADERS_INSTALL && m | 
|  | help | 
|  | When enabled, this builds both a sample kernel module for | 
|  | the connector interface and a user space tool to communicate | 
|  | with it. | 
|  | See also Documentation/driver-api/connector.rst | 
|  |  | 
|  | config SAMPLE_FANOTIFY_ERROR | 
|  | bool "Build fanotify error monitoring sample" | 
|  | depends on FANOTIFY && CC_CAN_LINK && HEADERS_INSTALL | 
|  | help | 
|  | When enabled, this builds an example code that uses the | 
|  | FAN_FS_ERROR fanotify mechanism to monitor filesystem | 
|  | errors. | 
|  | See also Documentation/admin-guide/filesystem-monitoring.rst. | 
|  |  | 
|  | config SAMPLE_HIDRAW | 
|  | bool "hidraw sample" | 
|  | depends on CC_CAN_LINK && HEADERS_INSTALL | 
|  |  | 
|  | config SAMPLE_LANDLOCK | 
|  | bool "Landlock example" | 
|  | depends on CC_CAN_LINK && HEADERS_INSTALL | 
|  | help | 
|  | Build a simple Landlock sandbox manager able to start a process | 
|  | restricted by a user-defined filesystem access control policy. | 
|  |  | 
|  | config SAMPLE_PIDFD | 
|  | bool "pidfd sample" | 
|  | depends on CC_CAN_LINK && HEADERS_INSTALL | 
|  |  | 
|  | config SAMPLE_SECCOMP | 
|  | bool "Build seccomp sample code" | 
|  | depends on SECCOMP_FILTER && CC_CAN_LINK && HEADERS_INSTALL | 
|  | help | 
|  | Build samples of seccomp filters using various methods of | 
|  | BPF filter construction. | 
|  |  | 
|  | config SAMPLE_TIMER | 
|  | bool "Timer sample" | 
|  | depends on CC_CAN_LINK && HEADERS_INSTALL | 
|  |  | 
|  | config SAMPLE_UHID | 
|  | bool "UHID sample" | 
|  | depends on CC_CAN_LINK && HEADERS_INSTALL | 
|  | help | 
|  | Build UHID sample program. | 
|  |  | 
|  | config SAMPLE_VFIO_MDEV_MTTY | 
|  | tristate "Build VFIO mtty example mediated device sample code -- loadable modules only" | 
|  | depends on VFIO_MDEV && m | 
|  | help | 
|  | Build a virtual tty sample driver for use as a VFIO | 
|  | mediated device | 
|  |  | 
|  | config SAMPLE_VFIO_MDEV_MDPY | 
|  | tristate "Build VFIO mdpy example mediated device sample code -- loadable modules only" | 
|  | depends on VFIO_MDEV && m | 
|  | help | 
|  | Build a virtual display sample driver for use as a VFIO | 
|  | mediated device.  It is a simple framebuffer and supports | 
|  | the region display interface (VFIO_GFX_PLANE_TYPE_REGION). | 
|  |  | 
|  | config SAMPLE_VFIO_MDEV_MDPY_FB | 
|  | tristate "Build VFIO mdpy example guest fbdev driver -- loadable module only" | 
|  | depends on FB && m | 
|  | select FB_CFB_FILLRECT | 
|  | select FB_CFB_COPYAREA | 
|  | select FB_CFB_IMAGEBLIT | 
|  | help | 
|  | Guest fbdev driver for the virtual display sample driver. | 
|  |  | 
|  | config SAMPLE_VFIO_MDEV_MBOCHS | 
|  | tristate "Build VFIO mdpy example mediated device sample code -- loadable modules only" | 
|  | depends on VFIO_MDEV && m | 
|  | select DMA_SHARED_BUFFER | 
|  | help | 
|  | Build a virtual display sample driver for use as a VFIO | 
|  | mediated device.  It supports the region display interface | 
|  | (VFIO_GFX_PLANE_TYPE_DMABUF). | 
|  | Emulate enough of qemu stdvga to make bochs-drm.ko happy. | 
|  | That is basically the vram memory bar and the bochs dispi | 
|  | interface vbe registers in the mmio register bar. | 
|  | Specifically it does *not* include any legacy vga stuff. | 
|  | Device looks a lot like "qemu -device secondary-vga". | 
|  |  | 
|  | config SAMPLE_ANDROID_BINDERFS | 
|  | bool "Build Android binderfs example" | 
|  | depends on CC_CAN_LINK && HEADERS_INSTALL | 
|  | help | 
|  | Builds a sample program to illustrate the use of the Android binderfs | 
|  | filesystem. | 
|  |  | 
|  | config SAMPLE_VFS | 
|  | bool "Build example programs that use new VFS system calls" | 
|  | depends on CC_CAN_LINK && HEADERS_INSTALL | 
|  | help | 
|  | Build example userspace programs that use new VFS system calls such | 
|  | as mount API and statx().  Note that this is restricted to the x86 | 
|  | arch whilst it accesses system calls that aren't yet in all arches. | 
|  |  | 
|  | config SAMPLE_INTEL_MEI | 
|  | bool "Build example program working with intel mei driver" | 
|  | depends on INTEL_MEI | 
|  | depends on CC_CAN_LINK && HEADERS_INSTALL | 
|  | help | 
|  | Build a sample program to work with mei device. | 
|  |  | 
|  | config SAMPLE_WATCHDOG | 
|  | bool "watchdog sample" | 
|  | depends on CC_CAN_LINK | 
|  |  | 
|  | config SAMPLE_WATCH_QUEUE | 
|  | bool "Build example watch_queue notification API consumer" | 
|  | depends on CC_CAN_LINK && HEADERS_INSTALL | 
|  | help | 
|  | Build example userspace program to use the new mount_notify(), | 
|  | sb_notify() syscalls and the KEYCTL_WATCH_KEY keyctl() function. | 
|  |  | 
|  | config SAMPLE_CORESIGHT_SYSCFG | 
|  | tristate "Build example loadable module for CoreSight config" | 
|  | depends on CORESIGHT && m | 
|  | help | 
|  | Build an example loadable module that adds new CoreSight features | 
|  | and configuration using the CoreSight system configuration API. | 
|  | This demonstrates how a user may create their own CoreSight | 
|  | configurations and easily load them into the system at runtime. | 
|  |  | 
|  | config SAMPLE_GUNYAH | 
|  | bool "Build example Gunyah Virtual Machine Manager" | 
|  | depends on CC_CAN_LINK && HEADERS_INSTALL | 
|  | depends on GUNYAH | 
|  | help | 
|  | Build an example Gunyah VMM userspace program capable of launching | 
|  | a basic virtual machine under the Gunyah hypervisor. | 
|  | This demonstrates how to create a virtual machine under the Gunyah | 
|  | hypervisor. | 
|  |  | 
|  | source "samples/rust/Kconfig" | 
|  |  | 
|  | endif # SAMPLES | 
|  |  | 
|  | config HAVE_SAMPLE_FTRACE_DIRECT | 
|  | bool | 
|  |  | 
|  | config HAVE_SAMPLE_FTRACE_DIRECT_MULTI | 
|  | bool |