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 CC_CAN_LINK && HEADERS_INSTALL 122 123config SAMPLE_PIDFD 124 bool "pidfd sample" 125 depends on CC_CAN_LINK && HEADERS_INSTALL 126 127config SAMPLE_SECCOMP 128 bool "Build seccomp sample code" 129 depends on SECCOMP_FILTER && CC_CAN_LINK && HEADERS_INSTALL 130 help 131 Build samples of seccomp filters using various methods of 132 BPF filter construction. 133 134config SAMPLE_UHID 135 bool "UHID sample" 136 depends on CC_CAN_LINK && HEADERS_INSTALL 137 help 138 Build UHID sample program. 139 140config SAMPLE_VFIO_MDEV_MTTY 141 tristate "Build VFIO mtty example mediated device sample code -- loadable modules only" 142 depends on VFIO_MDEV_DEVICE && m 143 help 144 Build a virtual tty sample driver for use as a VFIO 145 mediated device 146 147config SAMPLE_VFIO_MDEV_MDPY 148 tristate "Build VFIO mdpy example mediated device sample code -- loadable modules only" 149 depends on VFIO_MDEV_DEVICE && m 150 help 151 Build a virtual display sample driver for use as a VFIO 152 mediated device. It is a simple framebuffer and supports 153 the region display interface (VFIO_GFX_PLANE_TYPE_REGION). 154 155config SAMPLE_VFIO_MDEV_MDPY_FB 156 tristate "Build VFIO mdpy example guest fbdev driver -- loadable module only" 157 depends on FB && m 158 select FB_CFB_FILLRECT 159 select FB_CFB_COPYAREA 160 select FB_CFB_IMAGEBLIT 161 help 162 Guest fbdev driver for the virtual display sample driver. 163 164config SAMPLE_VFIO_MDEV_MBOCHS 165 tristate "Build VFIO mdpy example mediated device sample code -- loadable modules only" 166 depends on VFIO_MDEV_DEVICE && m 167 select DMA_SHARED_BUFFER 168 help 169 Build a virtual display sample driver for use as a VFIO 170 mediated device. It supports the region display interface 171 (VFIO_GFX_PLANE_TYPE_DMABUF). 172 Emulate enough of qemu stdvga to make bochs-drm.ko happy. 173 That is basically the vram memory bar and the bochs dispi 174 interface vbe registers in the mmio register bar. 175 Specifically it does *not* include any legacy vga stuff. 176 Device looks a lot like "qemu -device secondary-vga". 177 178config SAMPLE_ANDROID_BINDERFS 179 bool "Build Android binderfs example" 180 depends on CONFIG_ANDROID_BINDERFS 181 help 182 Builds a sample program to illustrate the use of the Android binderfs 183 filesystem. 184 185config SAMPLE_VFS 186 bool "Build example programs that use new VFS system calls" 187 depends on CC_CAN_LINK && HEADERS_INSTALL 188 help 189 Build example userspace programs that use new VFS system calls such 190 as mount API and statx(). Note that this is restricted to the x86 191 arch whilst it accesses system calls that aren't yet in all arches. 192 193config SAMPLE_INTEL_MEI 194 bool "Build example program working with intel mei driver" 195 depends on INTEL_MEI 196 help 197 Build a sample program to work with mei device. 198 199 200endif # SAMPLES 201