menuconfig SAMPLES
	bool "Sample kernel code"
	help
	  You can build and test sample kernel code here.

if SAMPLES

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_KOBJECT
	tristate "Build kobject examples -- loadable modules only"
	depends on m
	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_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 sample -- loadable modules only"
	depends on LIVEPATCH && m
	help
	  Builds a sample live patch that replaces the procfs handler
	  for /proc/cmdline to print "this has been live patched".

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 && 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/connector/connector.txt

config SAMPLE_SECCOMP
	tristate "Build seccomp sample code -- loadable modules only"
	depends on SECCOMP_FILTER && m
	help
	  Build samples of seccomp filters using various methods of
	  BPF filter construction.

config SAMPLE_BLACKFIN_GPTIMERS
	tristate "Build blackfin gptimers sample code -- loadable modules only"
	depends on BLACKFIN && BFIN_GPTIMERS && m
	help
	  Build samples of blackfin gptimers sample module.

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_STATX
	bool "Build example extended-stat using code"
	depends on BROKEN
	help
	  Build example userspace program to use the new extended-stat syscall.

endif # SAMPLES
