]>
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 | ||
d58b0b1a | 9 | /* bugs.c */ |
00f496c4 KC |
10 | void __init lkdtm_bugs_init(int *recur_param); |
11 | void lkdtm_PANIC(void); | |
12 | void lkdtm_BUG(void); | |
13 | void lkdtm_WARNING(void); | |
1ee170ea | 14 | void lkdtm_WARNING_MESSAGE(void); |
00f496c4 KC |
15 | void lkdtm_EXCEPTION(void); |
16 | void lkdtm_LOOP(void); | |
24cccab4 | 17 | void lkdtm_EXHAUST_STACK(void); |
00f496c4 | 18 | void lkdtm_CORRUPT_STACK(void); |
93e78c6b | 19 | void lkdtm_CORRUPT_STACK_STRONG(void); |
00f496c4 KC |
20 | void lkdtm_UNALIGNED_LOAD_STORE_WRITE(void); |
21 | void lkdtm_SOFTLOCKUP(void); | |
22 | void lkdtm_HARDLOCKUP(void); | |
23 | void lkdtm_SPINLOCKUP(void); | |
24 | void lkdtm_HUNG_TASK(void); | |
ae2e1aad KC |
25 | void lkdtm_OVERFLOW_SIGNED(void); |
26 | void lkdtm_OVERFLOW_UNSIGNED(void); | |
27 | void lkdtm_ARRAY_BOUNDS(void); | |
6819d101 KC |
28 | void lkdtm_CORRUPT_LIST_ADD(void); |
29 | void lkdtm_CORRUPT_LIST_DEL(void); | |
7b25a85c KC |
30 | void lkdtm_STACK_GUARD_PAGE_LEADING(void); |
31 | void lkdtm_STACK_GUARD_PAGE_TRAILING(void); | |
06b32fdb | 32 | void lkdtm_UNSET_SMEP(void); |
b09511c2 | 33 | void lkdtm_DOUBLE_FAULT(void); |
6cb6982f | 34 | void lkdtm_CORRUPT_PAC(void); |
d96938da DA |
35 | void lkdtm_FORTIFY_OBJECT(void); |
36 | void lkdtm_FORTIFY_SUBOBJECT(void); | |
00f496c4 | 37 | |
d58b0b1a | 38 | /* heap.c */ |
966fede8 KC |
39 | void __init lkdtm_heap_init(void); |
40 | void __exit lkdtm_heap_exit(void); | |
ffc514f3 KC |
41 | void lkdtm_OVERWRITE_ALLOCATION(void); |
42 | void lkdtm_WRITE_AFTER_FREE(void); | |
43 | void lkdtm_READ_AFTER_FREE(void); | |
44 | void lkdtm_WRITE_BUDDY_AFTER_FREE(void); | |
45 | void lkdtm_READ_BUDDY_AFTER_FREE(void); | |
966fede8 KC |
46 | void lkdtm_SLAB_FREE_DOUBLE(void); |
47 | void lkdtm_SLAB_FREE_CROSS(void); | |
48 | void lkdtm_SLAB_FREE_PAGE(void); | |
ffc514f3 | 49 | |
d58b0b1a | 50 | /* perms.c */ |
0d9eb29b KC |
51 | void __init lkdtm_perms_init(void); |
52 | void lkdtm_WRITE_RO(void); | |
53 | void lkdtm_WRITE_RO_AFTER_INIT(void); | |
54 | void lkdtm_WRITE_KERN(void); | |
55 | void lkdtm_EXEC_DATA(void); | |
56 | void lkdtm_EXEC_STACK(void); | |
57 | void lkdtm_EXEC_KMALLOC(void); | |
58 | void lkdtm_EXEC_VMALLOC(void); | |
59 | void lkdtm_EXEC_RODATA(void); | |
60 | void lkdtm_EXEC_USERSPACE(void); | |
59a12205 | 61 | void lkdtm_EXEC_NULL(void); |
0d9eb29b | 62 | void lkdtm_ACCESS_USERSPACE(void); |
59a12205 | 63 | void lkdtm_ACCESS_NULL(void); |
0d9eb29b | 64 | |
d58b0b1a | 65 | /* refcount.c */ |
95925c99 KC |
66 | void lkdtm_REFCOUNT_INC_OVERFLOW(void); |
67 | void lkdtm_REFCOUNT_ADD_OVERFLOW(void); | |
68 | void lkdtm_REFCOUNT_INC_NOT_ZERO_OVERFLOW(void); | |
69 | void lkdtm_REFCOUNT_ADD_NOT_ZERO_OVERFLOW(void); | |
70 | void lkdtm_REFCOUNT_DEC_ZERO(void); | |
71 | void lkdtm_REFCOUNT_DEC_NEGATIVE(void); | |
72 | void lkdtm_REFCOUNT_DEC_AND_TEST_NEGATIVE(void); | |
73 | void lkdtm_REFCOUNT_SUB_AND_TEST_NEGATIVE(void); | |
74 | void lkdtm_REFCOUNT_INC_ZERO(void); | |
75 | void lkdtm_REFCOUNT_ADD_ZERO(void); | |
76 | void lkdtm_REFCOUNT_INC_SATURATED(void); | |
77 | void lkdtm_REFCOUNT_DEC_SATURATED(void); | |
78 | void lkdtm_REFCOUNT_ADD_SATURATED(void); | |
79 | void lkdtm_REFCOUNT_INC_NOT_ZERO_SATURATED(void); | |
80 | void lkdtm_REFCOUNT_ADD_NOT_ZERO_SATURATED(void); | |
81 | void lkdtm_REFCOUNT_DEC_AND_TEST_SATURATED(void); | |
82 | void lkdtm_REFCOUNT_SUB_AND_TEST_SATURATED(void); | |
c7fea488 KC |
83 | void lkdtm_REFCOUNT_TIMING(void); |
84 | void lkdtm_ATOMIC_TIMING(void); | |
95925c99 | 85 | |
d58b0b1a | 86 | /* rodata.c */ |
9a49a528 KC |
87 | void lkdtm_rodata_do_nothing(void); |
88 | ||
d58b0b1a | 89 | /* usercopy.c */ |
a3dff71c KC |
90 | void __init lkdtm_usercopy_init(void); |
91 | void __exit lkdtm_usercopy_exit(void); | |
92 | void lkdtm_USERCOPY_HEAP_SIZE_TO(void); | |
93 | void lkdtm_USERCOPY_HEAP_SIZE_FROM(void); | |
e47e3118 KC |
94 | void lkdtm_USERCOPY_HEAP_WHITELIST_TO(void); |
95 | void lkdtm_USERCOPY_HEAP_WHITELIST_FROM(void); | |
a3dff71c KC |
96 | void lkdtm_USERCOPY_STACK_FRAME_TO(void); |
97 | void lkdtm_USERCOPY_STACK_FRAME_FROM(void); | |
98 | void lkdtm_USERCOPY_STACK_BEYOND(void); | |
99 | void lkdtm_USERCOPY_KERNEL(void); | |
100 | ||
d58b0b1a | 101 | /* stackleak.c */ |
f90d1e0c AP |
102 | void lkdtm_STACKLEAK_ERASING(void); |
103 | ||
b0eb93cf KC |
104 | /* cfi.c */ |
105 | void lkdtm_CFI_FORWARD_PROTO(void); | |
106 | ||
febebaf3 FL |
107 | /* fortify.c */ |
108 | void lkdtm_FORTIFIED_STRSCPY(void); | |
109 | ||
3ba150fb GG |
110 | /* powerpc.c */ |
111 | void lkdtm_PPC_SLB_MULTIHIT(void); | |
112 | ||
9a49a528 | 113 | #endif |