db/fixup_kernel.sh: fix clear_user() handling
[smatch.git] / check_list.h
blob7115b069c07dcf4e3469520cd651299884fe7e49
1 #ifndef CK
2 #define CK(_x) void _x(int id);
3 #define __undo_CK_def
4 #endif
6 CK(register_db_call_marker) /* always has to be first */
7 CK(register_mtag_data) /* before smatch_extra to clear cache at start of function */
8 CK(register_param_used) /* get_state_hooks have to be registered before smatch_extra */
9 CK(register_container_of)
10 CK(register_container_of2)
11 CK(register_smatch_extra)
12 CK(register_smatch_extra_links)
13 CK(register_buf_comparison)
14 CK(register_buf_comparison_links)
15 CK(register_buf_comparison2)
16 CK(register_modification_hooks)
17 CK(register_hooks)
20 * Implications should probably be after all the modification and smatch_extra
21 * hooks have run.
24 CK(register_implications)
25 CK(register_function_hooks_early)
26 CK(register_definition_db_callbacks)
27 CK(register_project) /* has to be early to set up some global stuff */
28 CK(register_untracked_param)
29 CK(register_param_compare_limit)
30 CK(register_param_compare_limit_links)
31 CK(register_returns_early)
33 CK(register_param_cleared) /* param_set relies on param_cleared */
34 CK(register_param_limit) /* param limit has to be before param_set */
35 CK(register_param_set)
37 CK(register_dereferences)
38 CK(register_smatch_ignore)
39 CK(register_buf_size)
40 CK(register_strlen)
41 CK(register_strlen_equiv)
42 CK(register_capped)
43 CK(register_parse_call_math)
44 CK(register_param_filter)
45 CK(register_struct_assignment)
46 CK(register_comparison)
47 CK(register_comparison_links)
48 CK(register_comparison_inc_dec)
49 CK(register_comparison_inc_dec_links)
50 CK(register_function_ptrs)
51 CK(register_annotate)
52 CK(register_start_states)
53 CK(register_type_val)
54 CK(register_data_source)
55 CK(register_common_functions)
56 CK(register_function_info)
57 CK(register_type_links)
58 CK(register_impossible)
59 CK(register_impossible_return)
60 CK(register_strings)
61 CK(register_integer_overflow)
62 CK(register_integer_overflow_links)
63 CK(register_real_absolute)
64 CK(register_imaginary_absolute)
65 CK(register_bits)
66 CK(register_power_of_two)
67 CK(register_fn_arg_link)
68 CK(register_parameter_names)
69 CK(register_return_to_param)
70 CK(register_return_to_param_links)
71 CK(register_constraints)
72 CK(register_constraints_required)
73 CK(register_about_fn_ptr_arg)
74 CK(register_mtag)
75 CK(register_mtag_map)
76 CK(register_param_to_mtag_data)
77 CK(register_array_values)
78 CK(register_nul_terminator)
79 CK(register_nul_terminator_param_set)
80 CK(register_statement_count)
81 CK(register_fresh_alloc)
82 CK(register_ssa)
83 CK(register_unconstant_macros)
84 CK(register_state_assigned)
85 CK(register_points_to_container)
86 CK(register_allocations)
87 CK(register_units)
88 CK(register_goto_tracker)
89 CK(register_refcount)
90 CK(register_refcount_info)
91 CK(register_kernel_atomic_dec_test_path)
93 CK(register_kernel_user_data)
94 CK(register_kernel_user_data2)
95 CK(register_points_to_user_data)
97 CK(register_kernel_host_data)
98 CK(register_points_to_host_data)
99 CK(register_kernel_netdev_priv)
100 CK(register_kernel_err_ptr)
101 CK(register_kernel_has_devm_cleanup)
102 CK(register_kernel_irq_context)
103 CK(register_kernel_task_state)
104 CK(register_kernel_task_state_info)
105 CK(register_kernel_kref_put)
106 CK(register_kernel_xa_err)
108 CK(check_debug)
110 CK(check_bogus_loop)
112 CK(check_deref)
113 CK(check_check_deref)
114 CK(check_dereferences_param)
115 CK(check_index_overflow)
116 CK(check_index_overflow_loop_marker)
117 CK(check_testing_index_after_use)
118 CK(check_memcpy_overflow)
119 CK(check_strcpy_overflow)
120 CK(check_sprintf_overflow)
121 CK(check_snprintf_overflow)
122 CK(check_allocating_enough_data)
123 CK(check_leaks)
124 CK(check_type)
125 CK(check_allocation_funcs)
126 CK(check_frees_argument)
127 CK(check_deref_check)
128 CK(check_signed)
129 CK(check_unsigned_lt_zero)
130 CK(check_precedence)
131 CK(check_unused_ret)
132 CK(check_dma_on_stack)
133 CK(check_param_mapper)
134 CK(check_call_tree)
135 CK(check_dev_queue_xmit)
136 CK(check_stack)
137 CK(check_no_return)
138 CK(check_mod_timer)
139 CK(check_return)
140 CK(check_resource_size)
141 CK(check_release_resource)
142 CK(check_proc_create)
143 CK(check_freeing_null)
144 CK(check_frees_param)
145 CK(check_free)
146 CK(check_frees_param_strict)
147 CK(check_free_strict)
148 CK(check_no_effect)
149 CK(check_kunmap)
150 CK(check_snprintf)
151 CK(check_macros)
152 CK(check_return_efault)
153 CK(check_gfp_dma)
154 CK(check_unwind)
155 CK(check_unwind_info)
156 CK(check_kmalloc_to_bugon)
157 CK(check_platform_device_put)
158 CK(check_info_leak)
159 CK(check_return_enomem)
160 CK(check_get_user_overflow)
161 CK(check_get_user_overflow2)
162 CK(check_access_ok_math)
163 CK(check_container_of)
164 CK(check_input_free_device)
165 CK(check_select)
166 CK(check_memset)
167 CK(check_logical_instead_of_bitwise)
168 CK(check_kmalloc_wrong_size)
169 CK(check_pointer_math)
170 CK(check_bit_shift)
171 CK(check_macro_side_effects)
172 CK(check_sizeof)
173 CK(check_not_passing_gfp)
174 CK(check_return_cast)
175 CK(check_or_vs_and)
176 CK(check_passes_sizeof)
177 CK(check_assign_vs_compare)
178 CK(check_array_condition)
179 CK(check_struct_type)
180 CK(check_64bit_shift)
181 CK(check_wrong_size_arg)
182 CK(check_cast_assign)
183 CK(check_double_checking)
184 CK(check_shift_to_zero)
185 CK(check_indenting)
186 CK(check_unreachable)
187 CK(check_missing_error_code)
188 CK(check_missing_error_code2)
189 CK(check_no_if_block)
190 CK(check_buffer_too_small_for_struct)
191 CK(check_uninitialized)
192 CK(check_signed_integer_overflow_check)
193 CK(check_continue_vs_break)
194 CK(check_impossible_mask)
195 CK(check_postop_timeout)
196 CK(check_select_type)
197 CK(check_preempt)
198 CK(check_preempt_info)
199 CK(check_sleep_info)
200 CK(check_scheduling_in_atomic)
201 CK(check_checking_for_null_instead_of_err_ptr)
202 CK(check_syscall_arg_type)
203 CK(register_param_bits_set)
204 CK(register_param_bits_clear)
205 CK(check_do_while_loop_limit)
206 CK(check_ida_alloc)
207 CK(check_divide_condition)
208 CK(check_units)
209 CK(check_impossible_compare)
210 CK(check_always_true)
212 /* <- your test goes here */
213 /* CK(register_template) */
215 /* kernel specific */
216 CK(check_kernel_printf)
217 CK(check_locking)
218 CK(check_puts_argument)
219 CK(check_err_ptr)
220 CK(check_err_ptr_deref)
221 CK(check_expects_err_ptr)
222 CK(check_return_negative_var)
223 CK(check_rosenberg)
224 CK(check_rosenberg2)
225 CK(check_rosenberg3)
226 CK(check_wait_for_common)
227 CK(check_bogus_irqrestore)
228 CK(check_zero_to_err_ptr)
229 CK(check_freeing_devm)
230 CK(check_off_by_one_relative)
231 CK(check_capable)
232 CK(check_ns_capable)
233 CK(check_test_bit)
234 CK(check_nospec)
235 CK(check_nospec_barrier)
236 CK(check_spectre)
237 CK(check_spectre_second_half)
238 CK(check_implicit_dependencies)
239 CK(check_bogus_address_param)
240 CK(check_pm_runtime_get_sync)
241 CK(check_iterator_outside_loop)
242 CK(check_list_add)
243 CK(check_list_add_late)
244 CK(check_sscanf_return)
245 CK(check_kvmalloc_array_zero)
246 CK(check_returns_negative_error_code)
247 CK(check_platform_get_irq_return)
248 CK(check_kvmalloc_NOFS)
249 CK(check_uaf_netdev_priv)
250 //CK(check_host_input)
251 CK(check_direct_return_instead_of_goto)
252 CK(check_double_fget)
253 CK(check_negative_error_code_type_promoted)
254 CK(check_uninitialized_kobj)
256 /* wine specific stuff */
257 CK(check_wine_filehandles)
258 CK(check_wine_WtoA)
260 CK(check_arm64_tagged)
262 /* illumos specific */
263 CK(check_all_func_returns)
264 CK(check_cmn_err)
266 #include "check_list_local.h"
268 CK(register_scope)
269 CK(register_stored_conditions)
270 CK(register_stored_conditions_links)
271 CK(register_parsed_conditions)
272 CK(register_sval)
273 CK(register_buf_size_late)
274 CK(register_smatch_extra_late)
275 CK(register_assigned_expr) /* This is used by smatch_extra.c so it has to come really late */
276 CK(register_assigned_expr_links)
277 CK(register_modification_hooks_late) /* has to come after smatch_extra */
278 CK(register_param_key) /* has to come after smatch_extra */
279 CK(register_comparison_late) /* has to come after modification_hooks_late */
280 CK(register_function_hooks)
281 CK(register_definition_db_callbacks_late) /* has to come after register_function_hooks() */
282 CK(check_kernel) /* this is overwriting stuff from smatch_extra_late */
283 CK(check_wine)
284 CK(register_returns)
286 #ifdef __undo_CK_def
287 #undef CK
288 #undef __undo_CK_def
289 #endif