Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
9a49a528 KC |
2 | #ifndef __LKDTM_H |
3 | #define __LKDTM_H | |
4 | ||
6d2e91a6 KC |
5 | #define pr_fmt(fmt) "lkdtm: " fmt |
6 | ||
7 | #include <linux/kernel.h> | |
8 | ||
00f496c4 KC |
9 | /* lkdtm_bugs.c */ |
10 | void __init lkdtm_bugs_init(int *recur_param); | |
11 | void lkdtm_PANIC(void); | |
12 | void lkdtm_BUG(void); | |
13 | void lkdtm_WARNING(void); | |
14 | void lkdtm_EXCEPTION(void); | |
15 | void lkdtm_LOOP(void); | |
16 | void lkdtm_OVERFLOW(void); | |
17 | void lkdtm_CORRUPT_STACK(void); | |
93e78c6b | 18 | void lkdtm_CORRUPT_STACK_STRONG(void); |
00f496c4 KC |
19 | void lkdtm_UNALIGNED_LOAD_STORE_WRITE(void); |
20 | void lkdtm_SOFTLOCKUP(void); | |
21 | void lkdtm_HARDLOCKUP(void); | |
22 | void lkdtm_SPINLOCKUP(void); | |
23 | void lkdtm_HUNG_TASK(void); | |
6819d101 KC |
24 | void lkdtm_CORRUPT_LIST_ADD(void); |
25 | void lkdtm_CORRUPT_LIST_DEL(void); | |
e22aa9d7 | 26 | void lkdtm_CORRUPT_USER_DS(void); |
7b25a85c KC |
27 | void lkdtm_STACK_GUARD_PAGE_LEADING(void); |
28 | void lkdtm_STACK_GUARD_PAGE_TRAILING(void); | |
00f496c4 | 29 | |
ffc514f3 KC |
30 | /* lkdtm_heap.c */ |
31 | void lkdtm_OVERWRITE_ALLOCATION(void); | |
32 | void lkdtm_WRITE_AFTER_FREE(void); | |
33 | void lkdtm_READ_AFTER_FREE(void); | |
34 | void lkdtm_WRITE_BUDDY_AFTER_FREE(void); | |
35 | void lkdtm_READ_BUDDY_AFTER_FREE(void); | |
36 | ||
0d9eb29b KC |
37 | /* lkdtm_perms.c */ |
38 | void __init lkdtm_perms_init(void); | |
39 | void lkdtm_WRITE_RO(void); | |
40 | void lkdtm_WRITE_RO_AFTER_INIT(void); | |
41 | void lkdtm_WRITE_KERN(void); | |
42 | void lkdtm_EXEC_DATA(void); | |
43 | void lkdtm_EXEC_STACK(void); | |
44 | void lkdtm_EXEC_KMALLOC(void); | |
45 | void lkdtm_EXEC_VMALLOC(void); | |
46 | void lkdtm_EXEC_RODATA(void); | |
47 | void lkdtm_EXEC_USERSPACE(void); | |
48 | void lkdtm_ACCESS_USERSPACE(void); | |
49 | ||
95925c99 KC |
50 | /* lkdtm_refcount.c */ |
51 | void lkdtm_REFCOUNT_INC_OVERFLOW(void); | |
52 | void lkdtm_REFCOUNT_ADD_OVERFLOW(void); | |
53 | void lkdtm_REFCOUNT_INC_NOT_ZERO_OVERFLOW(void); | |
54 | void lkdtm_REFCOUNT_ADD_NOT_ZERO_OVERFLOW(void); | |
55 | void lkdtm_REFCOUNT_DEC_ZERO(void); | |
56 | void lkdtm_REFCOUNT_DEC_NEGATIVE(void); | |
57 | void lkdtm_REFCOUNT_DEC_AND_TEST_NEGATIVE(void); | |
58 | void lkdtm_REFCOUNT_SUB_AND_TEST_NEGATIVE(void); | |
59 | void lkdtm_REFCOUNT_INC_ZERO(void); | |
60 | void lkdtm_REFCOUNT_ADD_ZERO(void); | |
61 | void lkdtm_REFCOUNT_INC_SATURATED(void); | |
62 | void lkdtm_REFCOUNT_DEC_SATURATED(void); | |
63 | void lkdtm_REFCOUNT_ADD_SATURATED(void); | |
64 | void lkdtm_REFCOUNT_INC_NOT_ZERO_SATURATED(void); | |
65 | void lkdtm_REFCOUNT_ADD_NOT_ZERO_SATURATED(void); | |
66 | void lkdtm_REFCOUNT_DEC_AND_TEST_SATURATED(void); | |
67 | void lkdtm_REFCOUNT_SUB_AND_TEST_SATURATED(void); | |
c7fea488 KC |
68 | void lkdtm_REFCOUNT_TIMING(void); |
69 | void lkdtm_ATOMIC_TIMING(void); | |
95925c99 | 70 | |
a3dff71c | 71 | /* lkdtm_rodata.c */ |
9a49a528 KC |
72 | void lkdtm_rodata_do_nothing(void); |
73 | ||
a3dff71c KC |
74 | /* lkdtm_usercopy.c */ |
75 | void __init lkdtm_usercopy_init(void); | |
76 | void __exit lkdtm_usercopy_exit(void); | |
77 | void lkdtm_USERCOPY_HEAP_SIZE_TO(void); | |
78 | void lkdtm_USERCOPY_HEAP_SIZE_FROM(void); | |
e47e3118 KC |
79 | void lkdtm_USERCOPY_HEAP_WHITELIST_TO(void); |
80 | void lkdtm_USERCOPY_HEAP_WHITELIST_FROM(void); | |
a3dff71c KC |
81 | void lkdtm_USERCOPY_STACK_FRAME_TO(void); |
82 | void lkdtm_USERCOPY_STACK_FRAME_FROM(void); | |
83 | void lkdtm_USERCOPY_STACK_BEYOND(void); | |
84 | void lkdtm_USERCOPY_KERNEL(void); | |
85 | ||
9a49a528 | 86 | #endif |