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_FPROBE 77 tristate "Build fprobe examples -- loadable modules only" 78 depends on FPROBE && m 79 help 80 This builds a fprobe example module. This module has an option 'symbol'. 81 You can specify a probed symbol or symbols separated with ','. 82 83config SAMPLE_KFIFO 84 tristate "Build kfifo examples -- loadable modules only" 85 depends on m 86 help 87 This config option will allow you to build a number of 88 different kfifo sample modules showing how to use the 89 generic kfifo API. 90 91 If in doubt, say "N" here. 92 93config SAMPLE_KDB 94 tristate "Build kdb command example -- loadable modules only" 95 depends on KGDB_KDB && m 96 help 97 Build an example of how to dynamically add the hello 98 command to the kdb shell. 99 100config SAMPLE_QMI_CLIENT 101 tristate "Build qmi client sample -- loadable modules only" 102 depends on m 103 depends on ARCH_QCOM 104 depends on NET 105 select QCOM_QMI_HELPERS 106 help 107 Build an QMI client sample driver, which demonstrates how to 108 communicate with a remote QRTR service, using QMI encoded messages. 109 110config SAMPLE_RPMSG_CLIENT 111 tristate "Build rpmsg client sample -- loadable modules only" 112 depends on RPMSG && m 113 help 114 Build an rpmsg client sample driver, which demonstrates how 115 to communicate with an AMP-configured remote processor over 116 the rpmsg bus. 117 118config SAMPLE_LIVEPATCH 119 tristate "Build live patching samples -- loadable modules only" 120 depends on LIVEPATCH && m 121 help 122 Build sample live patch demonstrations. 123 124config SAMPLE_CONFIGFS 125 tristate "Build configfs patching sample -- loadable modules only" 126 depends on CONFIGFS_FS && m 127 help 128 Builds a sample configfs interface. 129 130config SAMPLE_CONNECTOR 131 tristate "Build connector sample -- loadable modules only" 132 depends on CONNECTOR && HEADERS_INSTALL && m 133 help 134 When enabled, this builds both a sample kernel module for 135 the connector interface and a user space tool to communicate 136 with it. 137 See also Documentation/driver-api/connector.rst 138 139config SAMPLE_FANOTIFY_ERROR 140 bool "Build fanotify error monitoring sample" 141 depends on FANOTIFY && CC_CAN_LINK && HEADERS_INSTALL 142 help 143 When enabled, this builds an example code that uses the 144 FAN_FS_ERROR fanotify mechanism to monitor filesystem 145 errors. 146 See also Documentation/admin-guide/filesystem-monitoring.rst. 147 148config SAMPLE_HIDRAW 149 bool "hidraw sample" 150 depends on CC_CAN_LINK && HEADERS_INSTALL 151 152config SAMPLE_LANDLOCK 153 bool "Landlock example" 154 depends on CC_CAN_LINK && HEADERS_INSTALL 155 help 156 Build a simple Landlock sandbox manager able to start a process 157 restricted by a user-defined filesystem access control policy. 158 159config SAMPLE_PIDFD 160 bool "pidfd sample" 161 depends on CC_CAN_LINK && HEADERS_INSTALL 162 163config SAMPLE_SECCOMP 164 bool "Build seccomp sample code" 165 depends on SECCOMP_FILTER && CC_CAN_LINK && HEADERS_INSTALL 166 help 167 Build samples of seccomp filters using various methods of 168 BPF filter construction. 169 170config SAMPLE_TIMER 171 bool "Timer sample" 172 depends on CC_CAN_LINK && HEADERS_INSTALL 173 174config SAMPLE_UHID 175 bool "UHID sample" 176 depends on CC_CAN_LINK && HEADERS_INSTALL 177 help 178 Build UHID sample program. 179 180config SAMPLE_VFIO_MDEV_MTTY 181 tristate "Build VFIO mtty example mediated device sample code -- loadable modules only" 182 depends on VFIO_MDEV && m 183 help 184 Build a virtual tty sample driver for use as a VFIO 185 mediated device 186 187config SAMPLE_VFIO_MDEV_MDPY 188 tristate "Build VFIO mdpy example mediated device sample code -- loadable modules only" 189 depends on VFIO_MDEV && m 190 help 191 Build a virtual display sample driver for use as a VFIO 192 mediated device. It is a simple framebuffer and supports 193 the region display interface (VFIO_GFX_PLANE_TYPE_REGION). 194 195config SAMPLE_VFIO_MDEV_MDPY_FB 196 tristate "Build VFIO mdpy example guest fbdev driver -- loadable module only" 197 depends on FB && m 198 select FB_CFB_FILLRECT 199 select FB_CFB_COPYAREA 200 select FB_CFB_IMAGEBLIT 201 help 202 Guest fbdev driver for the virtual display sample driver. 203 204config SAMPLE_VFIO_MDEV_MBOCHS 205 tristate "Build VFIO mdpy example mediated device sample code -- loadable modules only" 206 depends on VFIO_MDEV && m 207 select DMA_SHARED_BUFFER 208 help 209 Build a virtual display sample driver for use as a VFIO 210 mediated device. It supports the region display interface 211 (VFIO_GFX_PLANE_TYPE_DMABUF). 212 Emulate enough of qemu stdvga to make bochs-drm.ko happy. 213 That is basically the vram memory bar and the bochs dispi 214 interface vbe registers in the mmio register bar. 215 Specifically it does *not* include any legacy vga stuff. 216 Device looks a lot like "qemu -device secondary-vga". 217 218config SAMPLE_ANDROID_BINDERFS 219 bool "Build Android binderfs example" 220 depends on CC_CAN_LINK && HEADERS_INSTALL 221 help 222 Builds a sample program to illustrate the use of the Android binderfs 223 filesystem. 224 225config SAMPLE_VFS 226 bool "Build example programs that use new VFS system calls" 227 depends on CC_CAN_LINK && HEADERS_INSTALL 228 help 229 Build example userspace programs that use new VFS system calls such 230 as mount API and statx(). Note that this is restricted to the x86 231 arch whilst it accesses system calls that aren't yet in all arches. 232 233config SAMPLE_INTEL_MEI 234 bool "Build example program working with intel mei driver" 235 depends on INTEL_MEI 236 depends on CC_CAN_LINK && HEADERS_INSTALL 237 help 238 Build a sample program to work with mei device. 239 240config SAMPLE_WATCHDOG 241 bool "watchdog sample" 242 depends on CC_CAN_LINK 243 244config SAMPLE_WATCH_QUEUE 245 bool "Build example watch_queue notification API consumer" 246 depends on CC_CAN_LINK && HEADERS_INSTALL 247 help 248 Build example userspace program to use the new mount_notify(), 249 sb_notify() syscalls and the KEYCTL_WATCH_KEY keyctl() function. 250 251config SAMPLE_CORESIGHT_SYSCFG 252 tristate "Build example loadable module for CoreSight config" 253 depends on CORESIGHT && m 254 help 255 Build an example loadable module that adds new CoreSight features 256 and configuration using the CoreSight system configuration API. 257 This demonstrates how a user may create their own CoreSight 258 configurations and easily load them into the system at runtime. 259 260endif # SAMPLES 261 262config HAVE_SAMPLE_FTRACE_DIRECT 263 bool 264 265config HAVE_SAMPLE_FTRACE_DIRECT_MULTI 266 bool 267