xref: /linux/samples/Kconfig (revision d8dc09a4db45e49cc1ee5170632833ec11fafa7e)
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