| # 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 CRYPTO_LIB_SHA256 | |
| select CRYPTO_LIB_SHA512 | |
| 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 |