1# SPDX-License-Identifier: GPL-2.0-only 2menuconfig SAMPLES 3 bool "Sample kernel code" 4 help 5 You can build and test sample kernel code here. 6 7if SAMPLES 8 9config SAMPLE_TRACE_EVENTS 10 tristate "Build trace_events examples -- loadable modules only" 11 depends on EVENT_TRACING && m 12 help 13 This build trace event example modules. 14 15config SAMPLE_TRACE_PRINTK 16 tristate "Build trace_printk module - tests various trace_printk formats" 17 depends on EVENT_TRACING && m 18 help 19 This builds a module that calls trace_printk() and can be used to 20 test various trace_printk() calls from a module. 21 22config SAMPLE_FTRACE_DIRECT 23 tristate "Build register_ftrace_direct() example" 24 depends on DYNAMIC_FTRACE_WITH_DIRECT_CALLS && m 25 depends on X86_64 # has x86_64 inlined asm 26 help 27 This builds an ftrace direct function example 28 that hooks to wake_up_process and prints the parameters. 29 30config SAMPLE_TRACE_ARRAY 31 tristate "Build sample module for kernel access to Ftrace instancess" 32 depends on EVENT_TRACING && m 33 help 34 This builds a module that demonstrates the use of various APIs to 35 access Ftrace instances from within the kernel. 36 37config SAMPLE_KOBJECT 38 tristate "Build kobject examples" 39 help 40 This config option will allow you to build a number of 41 different kobject sample modules showing how to use kobjects, 42 ksets, and ktypes properly. 43 44 If in doubt, say "N" here. 45 46config SAMPLE_KPROBES 47 tristate "Build kprobes examples -- loadable modules only" 48 depends on KPROBES && m 49 help 50 This build several kprobes example modules. 51 52config SAMPLE_KRETPROBES 53 tristate "Build kretprobes example -- loadable modules only" 54 default m 55 depends on SAMPLE_KPROBES && KRETPROBES 56 57config SAMPLE_HW_BREAKPOINT 58 tristate "Build kernel hardware breakpoint examples -- loadable module only" 59 depends on HAVE_HW_BREAKPOINT && m 60 help 61 This builds kernel hardware breakpoint example modules. 62 63config SAMPLE_KFIFO 64 tristate "Build kfifo examples -- loadable modules only" 65 depends on m 66 help 67 This config option will allow you to build a number of 68 different kfifo sample modules showing how to use the 69 generic kfifo API. 70 71 If in doubt, say "N" here. 72 73config SAMPLE_KDB 74 tristate "Build kdb command example -- loadable modules only" 75 depends on KGDB_KDB && m 76 help 77 Build an example of how to dynamically add the hello 78 command to the kdb shell. 79 80config SAMPLE_QMI_CLIENT 81 tristate "Build qmi client sample -- loadable modules only" 82 depends on m 83 depends on ARCH_QCOM 84 depends on NET 85 select QCOM_QMI_HELPERS 86 help 87 Build an QMI client sample driver, which demonstrates how to 88 communicate with a remote QRTR service, using QMI encoded messages. 89 90config SAMPLE_RPMSG_CLIENT 91 tristate "Build rpmsg client sample -- loadable modules only" 92 depends on RPMSG && m 93 help 94 Build an rpmsg client sample driver, which demonstrates how 95 to communicate with an AMP-configured remote processor over 96 the rpmsg bus. 97 98config SAMPLE_LIVEPATCH 99 tristate "Build live patching samples -- loadable modules only" 100 depends on LIVEPATCH && m 101 help 102 Build sample live patch demonstrations. 103 104config SAMPLE_CONFIGFS 105 tristate "Build configfs patching sample -- loadable modules only" 106 depends on CONFIGFS_FS && m 107 help 108 Builds a sample configfs interface. 109 110config SAMPLE_CONNECTOR 111 tristate "Build connector sample -- loadable modules only" 112 depends on CONNECTOR && HEADERS_INSTALL && m 113 help 114 When enabled, this builds both a sample kernel module for 115 the connector interface and a user space tool to communicate 116 with it. 117 See also Documentation/driver-api/connector.rst 118 119config SAMPLE_HIDRAW 120 bool "hidraw sample" 121 depends on HEADERS_INSTALL 122 123config SAMPLE_PIDFD 124 bool "pidfd sample" 125 depends on HEADERS_INSTALL 126 127config SAMPLE_SECCOMP 128 bool "Build seccomp sample code" 129 depends on SECCOMP_FILTER && HEADERS_INSTALL 130 help 131 Build samples of seccomp filters using various methods of 132 BPF filter construction. 133 134config SAMPLE_VFIO_MDEV_MTTY 135 tristate "Build VFIO mtty example mediated device sample code -- loadable modules only" 136 depends on VFIO_MDEV_DEVICE && m 137 help 138 Build a virtual tty sample driver for use as a VFIO 139 mediated device 140 141config SAMPLE_VFIO_MDEV_MDPY 142 tristate "Build VFIO mdpy example mediated device sample code -- loadable modules only" 143 depends on VFIO_MDEV_DEVICE && m 144 help 145 Build a virtual display sample driver for use as a VFIO 146 mediated device. It is a simple framebuffer and supports 147 the region display interface (VFIO_GFX_PLANE_TYPE_REGION). 148 149config SAMPLE_VFIO_MDEV_MDPY_FB 150 tristate "Build VFIO mdpy example guest fbdev driver -- loadable module only" 151 depends on FB && m 152 select FB_CFB_FILLRECT 153 select FB_CFB_COPYAREA 154 select FB_CFB_IMAGEBLIT 155 help 156 Guest fbdev driver for the virtual display sample driver. 157 158config SAMPLE_VFIO_MDEV_MBOCHS 159 tristate "Build VFIO mdpy example mediated device sample code -- loadable modules only" 160 depends on VFIO_MDEV_DEVICE && m 161 select DMA_SHARED_BUFFER 162 help 163 Build a virtual display sample driver for use as a VFIO 164 mediated device. It supports the region display interface 165 (VFIO_GFX_PLANE_TYPE_DMABUF). 166 Emulate enough of qemu stdvga to make bochs-drm.ko happy. 167 That is basically the vram memory bar and the bochs dispi 168 interface vbe registers in the mmio register bar. 169 Specifically it does *not* include any legacy vga stuff. 170 Device looks a lot like "qemu -device secondary-vga". 171 172config SAMPLE_ANDROID_BINDERFS 173 bool "Build Android binderfs example" 174 depends on CONFIG_ANDROID_BINDERFS 175 help 176 Builds a sample program to illustrate the use of the Android binderfs 177 filesystem. 178 179config SAMPLE_VFS 180 bool "Build example programs that use new VFS system calls" 181 depends on HEADERS_INSTALL 182 help 183 Build example userspace programs that use new VFS system calls such 184 as mount API and statx(). Note that this is restricted to the x86 185 arch whilst it accesses system calls that aren't yet in all arches. 186 187config SAMPLE_INTEL_MEI 188 bool "Build example program working with intel mei driver" 189 depends on INTEL_MEI 190 help 191 Build a sample program to work with mei device. 192 193 194endif # SAMPLES 195