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_AUXDISPLAY 10 bool "auxdisplay sample" 11 depends on CC_CAN_LINK 12 13config SAMPLE_TRACE_EVENTS 14 tristate "Build trace_events examples -- loadable modules only" 15 depends on EVENT_TRACING && m 16 help 17 This build trace event example modules. 18 19config SAMPLE_TRACE_PRINTK 20 tristate "Build trace_printk module - tests various trace_printk formats" 21 depends on EVENT_TRACING && m 22 help 23 This builds a module that calls trace_printk() and can be used to 24 test various trace_printk() calls from a module. 25 26config SAMPLE_FTRACE_DIRECT 27 tristate "Build register_ftrace_direct() example" 28 depends on DYNAMIC_FTRACE_WITH_DIRECT_CALLS && m 29 depends on HAVE_SAMPLE_FTRACE_DIRECT 30 help 31 This builds an ftrace direct function example 32 that hooks to wake_up_process and prints the parameters. 33 34config SAMPLE_FTRACE_DIRECT_MULTI 35 tristate "Build register_ftrace_direct_multi() example" 36 depends on DYNAMIC_FTRACE_WITH_DIRECT_CALLS && m 37 depends on HAVE_SAMPLE_FTRACE_DIRECT_MULTI 38 help 39 This builds an ftrace direct function example 40 that hooks to wake_up_process and schedule, and prints 41 the function addresses. 42 43config SAMPLE_TRACE_ARRAY 44 tristate "Build sample module for kernel access to Ftrace instancess" 45 depends on EVENT_TRACING && m 46 help 47 This builds a module that demonstrates the use of various APIs to 48 access Ftrace instances from within the kernel. 49 50config SAMPLE_KOBJECT 51 tristate "Build kobject examples" 52 help 53 This config option will allow you to build a number of 54 different kobject sample modules showing how to use kobjects, 55 ksets, and ktypes properly. 56 57 If in doubt, say "N" here. 58 59config SAMPLE_KPROBES 60 tristate "Build kprobes examples -- loadable modules only" 61 depends on KPROBES && m 62 help 63 This build several kprobes example modules. 64 65config SAMPLE_KRETPROBES 66 tristate "Build kretprobes example -- loadable modules only" 67 default m 68 depends on SAMPLE_KPROBES && KRETPROBES 69 70config SAMPLE_HW_BREAKPOINT 71 tristate "Build kernel hardware breakpoint examples -- loadable module only" 72 depends on HAVE_HW_BREAKPOINT && m 73 help 74 This builds kernel hardware breakpoint example modules. 75 76config SAMPLE_KFIFO 77 tristate "Build kfifo examples -- loadable modules only" 78 depends on m 79 help 80 This config option will allow you to build a number of 81 different kfifo sample modules showing how to use the 82 generic kfifo API. 83 84 If in doubt, say "N" here. 85 86config SAMPLE_KDB 87 tristate "Build kdb command example -- loadable modules only" 88 depends on KGDB_KDB && m 89 help 90 Build an example of how to dynamically add the hello 91 command to the kdb shell. 92 93config SAMPLE_QMI_CLIENT 94 tristate "Build qmi client sample -- loadable modules only" 95 depends on m 96 depends on ARCH_QCOM 97 depends on NET 98 select QCOM_QMI_HELPERS 99 help 100 Build an QMI client sample driver, which demonstrates how to 101 communicate with a remote QRTR service, using QMI encoded messages. 102 103config SAMPLE_RPMSG_CLIENT 104 tristate "Build rpmsg client sample -- loadable modules only" 105 depends on RPMSG && m 106 help 107 Build an rpmsg client sample driver, which demonstrates how 108 to communicate with an AMP-configured remote processor over 109 the rpmsg bus. 110 111config SAMPLE_LIVEPATCH 112 tristate "Build live patching samples -- loadable modules only" 113 depends on LIVEPATCH && m 114 help 115 Build sample live patch demonstrations. 116 117config SAMPLE_CONFIGFS 118 tristate "Build configfs patching sample -- loadable modules only" 119 depends on CONFIGFS_FS && m 120 help 121 Builds a sample configfs interface. 122 123config SAMPLE_CONNECTOR 124 tristate "Build connector sample -- loadable modules only" 125 depends on CONNECTOR && HEADERS_INSTALL && m 126 help 127 When enabled, this builds both a sample kernel module for 128 the connector interface and a user space tool to communicate 129 with it. 130 See also Documentation/driver-api/connector.rst 131 132config SAMPLE_FANOTIFY_ERROR 133 bool "Build fanotify error monitoring sample" 134 depends on FANOTIFY && CC_CAN_LINK && HEADERS_INSTALL 135 help 136 When enabled, this builds an example code that uses the 137 FAN_FS_ERROR fanotify mechanism to monitor filesystem 138 errors. 139 See also Documentation/admin-guide/filesystem-monitoring.rst. 140 141config SAMPLE_HIDRAW 142 bool "hidraw sample" 143 depends on CC_CAN_LINK && HEADERS_INSTALL 144 145config SAMPLE_LANDLOCK 146 bool "Landlock example" 147 depends on CC_CAN_LINK && HEADERS_INSTALL 148 help 149 Build a simple Landlock sandbox manager able to start a process 150 restricted by a user-defined filesystem access control policy. 151 152config SAMPLE_PIDFD 153 bool "pidfd sample" 154 depends on CC_CAN_LINK && HEADERS_INSTALL 155 156config SAMPLE_SECCOMP 157 bool "Build seccomp sample code" 158 depends on SECCOMP_FILTER && CC_CAN_LINK && HEADERS_INSTALL 159 help 160 Build samples of seccomp filters using various methods of 161 BPF filter construction. 162 163config SAMPLE_TIMER 164 bool "Timer sample" 165 depends on CC_CAN_LINK && HEADERS_INSTALL 166 167config SAMPLE_UHID 168 bool "UHID sample" 169 depends on CC_CAN_LINK && HEADERS_INSTALL 170 help 171 Build UHID sample program. 172 173config SAMPLE_VFIO_MDEV_MTTY 174 tristate "Build VFIO mtty example mediated device sample code -- loadable modules only" 175 depends on VFIO_MDEV && m 176 help 177 Build a virtual tty sample driver for use as a VFIO 178 mediated device 179 180config SAMPLE_VFIO_MDEV_MDPY 181 tristate "Build VFIO mdpy example mediated device sample code -- loadable modules only" 182 depends on VFIO_MDEV && m 183 help 184 Build a virtual display sample driver for use as a VFIO 185 mediated device. It is a simple framebuffer and supports 186 the region display interface (VFIO_GFX_PLANE_TYPE_REGION). 187 188config SAMPLE_VFIO_MDEV_MDPY_FB 189 tristate "Build VFIO mdpy example guest fbdev driver -- loadable module only" 190 depends on FB && m 191 select FB_CFB_FILLRECT 192 select FB_CFB_COPYAREA 193 select FB_CFB_IMAGEBLIT 194 help 195 Guest fbdev driver for the virtual display sample driver. 196 197config SAMPLE_VFIO_MDEV_MBOCHS 198 tristate "Build VFIO mdpy example mediated device sample code -- loadable modules only" 199 depends on VFIO_MDEV && m 200 select DMA_SHARED_BUFFER 201 help 202 Build a virtual display sample driver for use as a VFIO 203 mediated device. It supports the region display interface 204 (VFIO_GFX_PLANE_TYPE_DMABUF). 205 Emulate enough of qemu stdvga to make bochs-drm.ko happy. 206 That is basically the vram memory bar and the bochs dispi 207 interface vbe registers in the mmio register bar. 208 Specifically it does *not* include any legacy vga stuff. 209 Device looks a lot like "qemu -device secondary-vga". 210 211config SAMPLE_ANDROID_BINDERFS 212 bool "Build Android binderfs example" 213 depends on CC_CAN_LINK && HEADERS_INSTALL 214 help 215 Builds a sample program to illustrate the use of the Android binderfs 216 filesystem. 217 218config SAMPLE_VFS 219 bool "Build example programs that use new VFS system calls" 220 depends on CC_CAN_LINK && HEADERS_INSTALL 221 help 222 Build example userspace programs that use new VFS system calls such 223 as mount API and statx(). Note that this is restricted to the x86 224 arch whilst it accesses system calls that aren't yet in all arches. 225 226config SAMPLE_INTEL_MEI 227 bool "Build example program working with intel mei driver" 228 depends on INTEL_MEI 229 depends on CC_CAN_LINK && HEADERS_INSTALL 230 help 231 Build a sample program to work with mei device. 232 233config SAMPLE_WATCHDOG 234 bool "watchdog sample" 235 depends on CC_CAN_LINK 236 237config SAMPLE_WATCH_QUEUE 238 bool "Build example watch_queue notification API consumer" 239 depends on CC_CAN_LINK && HEADERS_INSTALL 240 help 241 Build example userspace program to use the new mount_notify(), 242 sb_notify() syscalls and the KEYCTL_WATCH_KEY keyctl() function. 243 244endif # SAMPLES 245 246config HAVE_SAMPLE_FTRACE_DIRECT 247 bool 248 249config HAVE_SAMPLE_FTRACE_DIRECT_MULTI 250 bool 251