xref: /openbmc/linux/include/linux/kcov.h (revision 5c9a8750a6409c63a0f01d51a9024861022f6593)
1*5c9a8750SDmitry Vyukov #ifndef _LINUX_KCOV_H
2*5c9a8750SDmitry Vyukov #define _LINUX_KCOV_H
3*5c9a8750SDmitry Vyukov 
4*5c9a8750SDmitry Vyukov #include <uapi/linux/kcov.h>
5*5c9a8750SDmitry Vyukov 
6*5c9a8750SDmitry Vyukov struct task_struct;
7*5c9a8750SDmitry Vyukov 
8*5c9a8750SDmitry Vyukov #ifdef CONFIG_KCOV
9*5c9a8750SDmitry Vyukov 
10*5c9a8750SDmitry Vyukov void kcov_task_init(struct task_struct *t);
11*5c9a8750SDmitry Vyukov void kcov_task_exit(struct task_struct *t);
12*5c9a8750SDmitry Vyukov 
13*5c9a8750SDmitry Vyukov enum kcov_mode {
14*5c9a8750SDmitry Vyukov 	/* Coverage collection is not enabled yet. */
15*5c9a8750SDmitry Vyukov 	KCOV_MODE_DISABLED = 0,
16*5c9a8750SDmitry Vyukov 	/*
17*5c9a8750SDmitry Vyukov 	 * Tracing coverage collection mode.
18*5c9a8750SDmitry Vyukov 	 * Covered PCs are collected in a per-task buffer.
19*5c9a8750SDmitry Vyukov 	 */
20*5c9a8750SDmitry Vyukov 	KCOV_MODE_TRACE = 1,
21*5c9a8750SDmitry Vyukov };
22*5c9a8750SDmitry Vyukov 
23*5c9a8750SDmitry Vyukov #else
24*5c9a8750SDmitry Vyukov 
25*5c9a8750SDmitry Vyukov static inline void kcov_task_init(struct task_struct *t) {}
26*5c9a8750SDmitry Vyukov static inline void kcov_task_exit(struct task_struct *t) {}
27*5c9a8750SDmitry Vyukov 
28*5c9a8750SDmitry Vyukov #endif /* CONFIG_KCOV */
29*5c9a8750SDmitry Vyukov #endif /* _LINUX_KCOV_H */
30