11f5207b7SJohn Levon #ifndef CK 21f5207b7SJohn Levon #define CK(_x) void _x(int id); 31f5207b7SJohn Levon #define __undo_CK_def 41f5207b7SJohn Levon #endif 51f5207b7SJohn Levon 61f5207b7SJohn Levon CK(register_db_call_marker) /* always has to be first */ 71f5207b7SJohn Levon CK(register_param_used) /* get_state_hooks have to be registered before smatch_extra */ 81f5207b7SJohn Levon CK(register_container_of) 91f5207b7SJohn Levon CK(register_container_of2) 101f5207b7SJohn Levon CK(register_smatch_extra) /* smatch_extra always has to be SMATCH_EXTRA */ 111f5207b7SJohn Levon CK(register_smatch_extra_links) 121f5207b7SJohn Levon CK(register_modification_hooks) 131f5207b7SJohn Levon /* 141f5207b7SJohn Levon * Implications should probably be after all the modification and smatch_extra 151f5207b7SJohn Levon * hooks have run. 161f5207b7SJohn Levon * 171f5207b7SJohn Levon */ 181f5207b7SJohn Levon CK(register_implications) 191f5207b7SJohn Levon CK(register_definition_db_callbacks) 201f5207b7SJohn Levon CK(register_project) 211f5207b7SJohn Levon CK(register_untracked_param) 221f5207b7SJohn Levon CK(register_buf_comparison) 231f5207b7SJohn Levon CK(register_buf_comparison_links) 241f5207b7SJohn Levon CK(register_param_compare_limit) 251f5207b7SJohn Levon CK(register_param_compare_limit_links) 261f5207b7SJohn Levon CK(register_returns_early) 271f5207b7SJohn Levon 28*5a0e240fSJohn Levon CK(register_param_cleared) /* param_set relies on param_cleared */ 29*5a0e240fSJohn Levon CK(register_param_set) 30*5a0e240fSJohn Levon 311f5207b7SJohn Levon CK(register_smatch_ignore) 321f5207b7SJohn Levon CK(register_buf_size) 331f5207b7SJohn Levon CK(register_strlen) 341f5207b7SJohn Levon CK(register_strlen_equiv) 351f5207b7SJohn Levon CK(register_capped) 361f5207b7SJohn Levon CK(register_parse_call_math) 371f5207b7SJohn Levon CK(register_param_filter) 381f5207b7SJohn Levon CK(register_struct_assignment) 391f5207b7SJohn Levon CK(register_comparison) 401f5207b7SJohn Levon CK(register_comparison_links) 411f5207b7SJohn Levon CK(register_comparison_inc_dec) 421f5207b7SJohn Levon CK(register_comparison_inc_dec_links) 431f5207b7SJohn Levon CK(register_function_ptrs) 441f5207b7SJohn Levon CK(register_annotate) 451f5207b7SJohn Levon CK(register_start_states) 461f5207b7SJohn Levon CK(register_type_val) 471f5207b7SJohn Levon CK(register_data_source) 481f5207b7SJohn Levon CK(register_common_functions) 491f5207b7SJohn Levon CK(register_function_info) 501f5207b7SJohn Levon CK(register_type_links) 511f5207b7SJohn Levon CK(register_impossible) 521f5207b7SJohn Levon CK(register_impossible_return) 531f5207b7SJohn Levon CK(register_strings) 54efe51d0cSJohn Levon CK(register_integer_overflow) 55efe51d0cSJohn Levon CK(register_integer_overflow_links) 561f5207b7SJohn Levon CK(register_real_absolute) 571f5207b7SJohn Levon CK(register_imaginary_absolute) 58efe51d0cSJohn Levon CK(register_bits) 591f5207b7SJohn Levon CK(register_fn_arg_link) 601f5207b7SJohn Levon CK(register_parameter_names) 61*5a0e240fSJohn Levon CK(register_param_limit) 621f5207b7SJohn Levon CK(register_return_to_param) 631f5207b7SJohn Levon CK(register_return_to_param_links) 641f5207b7SJohn Levon CK(register_constraints) 651f5207b7SJohn Levon CK(register_constraints_required) 661f5207b7SJohn Levon CK(register_about_fn_ptr_arg) 671f5207b7SJohn Levon CK(register_mtag) 681f5207b7SJohn Levon CK(register_mtag_map) 691f5207b7SJohn Levon CK(register_mtag_data) 701f5207b7SJohn Levon CK(register_param_to_mtag_data) 711f5207b7SJohn Levon CK(register_array_values) 721f5207b7SJohn Levon CK(register_nul_terminator) 731f5207b7SJohn Levon CK(register_nul_terminator_param_set) 741f5207b7SJohn Levon CK(register_statement_count) 751f5207b7SJohn Levon 76efe51d0cSJohn Levon CK(register_kernel_user_data) 771f5207b7SJohn Levon CK(register_kernel_user_data2) 781f5207b7SJohn Levon 791f5207b7SJohn Levon CK(check_debug) 801f5207b7SJohn Levon 811f5207b7SJohn Levon CK(check_bogus_loop) 821f5207b7SJohn Levon 831f5207b7SJohn Levon CK(check_deref) 841f5207b7SJohn Levon CK(check_check_deref) 851f5207b7SJohn Levon CK(check_dereferences_param) 861f5207b7SJohn Levon CK(check_index_overflow) 871f5207b7SJohn Levon CK(check_index_overflow_loop_marker) 881f5207b7SJohn Levon CK(check_testing_index_after_use) 891f5207b7SJohn Levon CK(check_memcpy_overflow) 901f5207b7SJohn Levon CK(check_strcpy_overflow) 911f5207b7SJohn Levon CK(check_sprintf_overflow) 921f5207b7SJohn Levon CK(check_snprintf_overflow) 931f5207b7SJohn Levon CK(check_allocating_enough_data) 941f5207b7SJohn Levon CK(check_leaks) 951f5207b7SJohn Levon CK(check_type) 961f5207b7SJohn Levon CK(check_allocation_funcs) 971f5207b7SJohn Levon CK(check_frees_argument) 981f5207b7SJohn Levon CK(check_deref_check) 991f5207b7SJohn Levon CK(check_signed) 1001f5207b7SJohn Levon CK(check_precedence) 1011f5207b7SJohn Levon CK(check_unused_ret) 1021f5207b7SJohn Levon CK(check_dma_on_stack) 1031f5207b7SJohn Levon CK(check_param_mapper) 1041f5207b7SJohn Levon CK(check_call_tree) 1051f5207b7SJohn Levon CK(check_dev_queue_xmit) 1061f5207b7SJohn Levon CK(check_stack) 1071f5207b7SJohn Levon CK(check_no_return) 1081f5207b7SJohn Levon CK(check_mod_timer) 1091f5207b7SJohn Levon CK(check_return) 1101f5207b7SJohn Levon CK(check_resource_size) 1111f5207b7SJohn Levon CK(check_release_resource) 1121f5207b7SJohn Levon CK(check_proc_create) 1131f5207b7SJohn Levon CK(check_freeing_null) 1141f5207b7SJohn Levon CK(check_frees_param) 1151f5207b7SJohn Levon CK(check_free) 1161f5207b7SJohn Levon CK(check_frees_param_strict) 1171f5207b7SJohn Levon CK(check_free_strict) 1181f5207b7SJohn Levon CK(check_no_effect) 1191f5207b7SJohn Levon CK(check_kunmap) 1201f5207b7SJohn Levon CK(check_snprintf) 1211f5207b7SJohn Levon CK(check_macros) 1221f5207b7SJohn Levon CK(check_return_efault) 1231f5207b7SJohn Levon CK(check_gfp_dma) 1241f5207b7SJohn Levon CK(check_unwind) 1251f5207b7SJohn Levon CK(check_kmalloc_to_bugon) 1261f5207b7SJohn Levon CK(check_platform_device_put) 1271f5207b7SJohn Levon CK(check_info_leak) 1281f5207b7SJohn Levon CK(check_return_enomem) 1291f5207b7SJohn Levon CK(check_get_user_overflow) 1301f5207b7SJohn Levon CK(check_get_user_overflow2) 1311f5207b7SJohn Levon CK(check_access_ok_math) 1321f5207b7SJohn Levon CK(check_container_of) 1331f5207b7SJohn Levon CK(check_input_free_device) 1341f5207b7SJohn Levon CK(check_select) 1351f5207b7SJohn Levon CK(check_memset) 1361f5207b7SJohn Levon CK(check_logical_instead_of_bitwise) 1371f5207b7SJohn Levon CK(check_kmalloc_wrong_size) 1381f5207b7SJohn Levon CK(check_pointer_math) 1391f5207b7SJohn Levon CK(check_bit_shift) 1401f5207b7SJohn Levon CK(check_macro_side_effects) 1411f5207b7SJohn Levon CK(check_sizeof) 1421f5207b7SJohn Levon CK(check_return_cast) 1431f5207b7SJohn Levon CK(check_or_vs_and) 1441f5207b7SJohn Levon CK(check_passes_sizeof) 1451f5207b7SJohn Levon CK(check_assign_vs_compare) 1461f5207b7SJohn Levon CK(check_missing_break) 1471f5207b7SJohn Levon CK(check_array_condition) 1481f5207b7SJohn Levon CK(check_struct_type) 1491f5207b7SJohn Levon CK(check_64bit_shift) 1501f5207b7SJohn Levon CK(check_wrong_size_arg) 1511f5207b7SJohn Levon CK(check_cast_assign) 1521f5207b7SJohn Levon CK(check_readl_infinite_loops) 1531f5207b7SJohn Levon CK(check_double_checking) 1541f5207b7SJohn Levon CK(check_shift_to_zero) 1551f5207b7SJohn Levon CK(check_indenting) 1561f5207b7SJohn Levon CK(check_unreachable) 1571f5207b7SJohn Levon CK(check_no_if_block) 1581f5207b7SJohn Levon CK(check_buffer_too_small_for_struct) 1591f5207b7SJohn Levon CK(check_uninitialized) 1601f5207b7SJohn Levon CK(check_signed_integer_overflow_check) 1611f5207b7SJohn Levon CK(check_continue_vs_break) 1621f5207b7SJohn Levon CK(check_impossible_mask) 1631f5207b7SJohn Levon CK(check_syscall_arg_type) 1641f5207b7SJohn Levon CK(check_trinity_generator) 1651f5207b7SJohn Levon 1661f5207b7SJohn Levon /* <- your test goes here */ 1671f5207b7SJohn Levon /* CK(register_template) */ 1681f5207b7SJohn Levon 1691f5207b7SJohn Levon /* kernel specific */ 1701f5207b7SJohn Levon CK(check_kernel_printf) 1711f5207b7SJohn Levon CK(check_locking) 1721f5207b7SJohn Levon CK(check_puts_argument) 1731f5207b7SJohn Levon CK(check_err_ptr) 1741f5207b7SJohn Levon CK(check_err_ptr_deref) 1751f5207b7SJohn Levon CK(check_expects_err_ptr) 1761f5207b7SJohn Levon CK(check_held_dev) 1771f5207b7SJohn Levon CK(check_return_negative_var) 1781f5207b7SJohn Levon CK(check_rosenberg) 1791f5207b7SJohn Levon CK(check_rosenberg2) 180c85f09ccSJohn Levon CK(check_rosenberg3) 1811f5207b7SJohn Levon CK(check_wait_for_common) 1821f5207b7SJohn Levon CK(check_bogus_irqrestore) 1831f5207b7SJohn Levon CK(check_zero_to_err_ptr) 1841f5207b7SJohn Levon CK(check_freeing_devm) 1851f5207b7SJohn Levon CK(check_off_by_one_relative) 1861f5207b7SJohn Levon CK(check_capable) 1871f5207b7SJohn Levon CK(check_ns_capable) 1881f5207b7SJohn Levon CK(check_test_bit) 1891f5207b7SJohn Levon CK(check_dma_mapping_error) 1901f5207b7SJohn Levon CK(check_nospec) 1911f5207b7SJohn Levon CK(check_nospec_barrier) 1921f5207b7SJohn Levon CK(check_spectre) 193efe51d0cSJohn Levon CK(check_spectre_second_half) 1941f5207b7SJohn Levon CK(check_implicit_dependencies) 1951f5207b7SJohn Levon 1961f5207b7SJohn Levon /* wine specific stuff */ 1971f5207b7SJohn Levon CK(check_wine_filehandles) 1981f5207b7SJohn Levon CK(check_wine_WtoA) 1991f5207b7SJohn Levon 200c85f09ccSJohn Levon CK(check_arm64_tagged) 201c85f09ccSJohn Levon 2021f5207b7SJohn Levon /* illumos specific */ 2031f5207b7SJohn Levon CK(check_all_func_returns) 204efe51d0cSJohn Levon CK(check_cmn_err) 2051f5207b7SJohn Levon 2061f5207b7SJohn Levon #include "check_list_local.h" 2071f5207b7SJohn Levon 2081f5207b7SJohn Levon CK(register_scope) 2091f5207b7SJohn Levon CK(register_stored_conditions) 2101f5207b7SJohn Levon CK(register_stored_conditions_links) 211*5a0e240fSJohn Levon CK(register_parsed_conditions) 2121f5207b7SJohn Levon CK(register_sval) 2131f5207b7SJohn Levon CK(register_buf_size_late) 2141f5207b7SJohn Levon CK(register_smatch_extra_late) 2151f5207b7SJohn Levon CK(register_assigned_expr) /* This is used by smatch_extra.c so it has to come really late */ 2161f5207b7SJohn Levon CK(register_assigned_expr_links) 2171f5207b7SJohn Levon CK(register_modification_hooks_late) /* has to come after smatch_extra */ 2181f5207b7SJohn Levon CK(register_comparison_late) /* has to come after modification_hooks_late */ 2191f5207b7SJohn Levon CK(register_function_hooks) 2201f5207b7SJohn Levon CK(check_kernel) /* this is overwriting stuff from smatch_extra_late */ 2211f5207b7SJohn Levon CK(check_wine) 2221f5207b7SJohn Levon CK(register_returns) 2231f5207b7SJohn Levon 2241f5207b7SJohn Levon #ifdef __undo_CK_def 2251f5207b7SJohn Levon #undef CK 2261f5207b7SJohn Levon #undef __undo_CK_def 2271f5207b7SJohn Levon #endif 228