# 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 build trace event example modules. 
 | 
  
 | 
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 X86_64 # has x86_64 inlined asm 
 | 
    help 
 | 
      This builds an ftrace direct function example 
 | 
      that hooks to wake_up_process and prints the parameters. 
 | 
  
 | 
config SAMPLE_TRACE_ARRAY 
 | 
        tristate "Build sample module for kernel access to Ftrace instancess" 
 | 
    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_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_HIDRAW 
 | 
    bool "hidraw sample" 
 | 
    depends on CC_CAN_LINK && HEADERS_INSTALL 
 | 
  
 | 
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_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 -- loadable modules only" 
 | 
    depends on VFIO_MDEV_DEVICE && m 
 | 
    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 -- loadable modules only" 
 | 
    depends on VFIO_MDEV_DEVICE && m 
 | 
    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 -- loadable module only" 
 | 
    depends on FB && m 
 | 
    select FB_CFB_FILLRECT 
 | 
    select FB_CFB_COPYAREA 
 | 
    select FB_CFB_IMAGEBLIT 
 | 
    help 
 | 
      Guest fbdev driver for the virtual display sample driver. 
 | 
  
 | 
config SAMPLE_VFIO_MDEV_MBOCHS 
 | 
    tristate "Build VFIO mdpy example mediated device sample code -- loadable modules only" 
 | 
    depends on VFIO_MDEV_DEVICE && m 
 | 
    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_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. 
 | 
  
 | 
endif # SAMPLES 
 |