|  | # 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() on multiple ips 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_FTRACE_OPS | 
|  | tristate "Build custom ftrace ops example" | 
|  | depends on FUNCTION_TRACER | 
|  | help | 
|  | This builds an ftrace ops example that hooks two functions and | 
|  | measures the time taken to invoke one function a number of times. | 
|  |  | 
|  | config SAMPLE_TRACE_ARRAY | 
|  | tristate "Build sample module for kernel access to Ftrace instances" | 
|  | 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_TSM_MR | 
|  | tristate "TSM measurement sample" | 
|  | select TSM_MEASUREMENTS | 
|  | select VIRT_DRIVERS | 
|  | help | 
|  | Build a sample module that emulates MRs (Measurement Registers) and | 
|  | exposes them to user mode applications through the TSM sysfs | 
|  | interface (/sys/class/misc/tsm_mr_sample/emulated_mr/). | 
|  |  | 
|  | The module name will be tsm-mr-sample when built as a module. | 
|  |  | 
|  | 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" | 
|  | depends on VFIO | 
|  | select VFIO_MDEV | 
|  | 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" | 
|  | depends on VFIO | 
|  | select VFIO_MDEV | 
|  | 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" | 
|  | depends on FB | 
|  | select FB_IOMEM_HELPERS | 
|  | help | 
|  | Guest fbdev driver for the virtual display sample driver. | 
|  |  | 
|  | config SAMPLE_VFIO_MDEV_MBOCHS | 
|  | tristate "Build VFIO mbochs example mediated device sample code" | 
|  | depends on VFIO | 
|  | select VFIO_MDEV | 
|  | 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_TPS6594_PFSM | 
|  | bool "Build example program working with TPS6594 PFSM driver" | 
|  | depends on HEADERS_INSTALL | 
|  | depends on CC_CAN_LINK | 
|  | help | 
|  | Build a sample program to work with PFSM devices. | 
|  |  | 
|  | 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_KMEMLEAK | 
|  | tristate "Simple test for the kernel memory leak detector" | 
|  | depends on DEBUG_KMEMLEAK && m | 
|  | help | 
|  | Build a sample program which have explicitly leaks memory to test | 
|  | kmemleak | 
|  |  | 
|  | config SAMPLE_CGROUP | 
|  | bool "Build cgroup sample code" | 
|  | depends on CGROUPS && CC_CAN_LINK && HEADERS_INSTALL | 
|  | help | 
|  | Build samples that demonstrate the usage of the cgroup API. | 
|  |  | 
|  | config SAMPLE_CHECK_EXEC | 
|  | bool "Exec secure bits examples" | 
|  | depends on CC_CAN_LINK && HEADERS_INSTALL | 
|  | help | 
|  | Build a tool to easily configure SECBIT_EXEC_RESTRICT_FILE and | 
|  | SECBIT_EXEC_DENY_INTERACTIVE, and a simple script interpreter to | 
|  | demonstrate how they should be used with execveat(2) + | 
|  | AT_EXECVE_CHECK. | 
|  |  | 
|  | config SAMPLE_HUNG_TASK | 
|  | tristate "Hung task detector test code" | 
|  | depends on DETECT_HUNG_TASK && DEBUG_FS | 
|  | help | 
|  | Build a module that provides debugfs files (e.g., mutex, semaphore, | 
|  | rw_semaphore_read, rw_semaphore_write) under <debugfs>/hung_task. | 
|  | Reading these files with multiple processes triggers hung task | 
|  | detection by holding locks for a long time (256 seconds). | 
|  |  | 
|  | source "samples/rust/Kconfig" | 
|  |  | 
|  | source "samples/damon/Kconfig" | 
|  |  | 
|  | endif # SAMPLES | 
|  |  | 
|  | config HAVE_SAMPLE_FTRACE_DIRECT | 
|  | bool | 
|  |  | 
|  | config HAVE_SAMPLE_FTRACE_DIRECT_MULTI | 
|  | bool |