1 #ifndef CK
   2 #define CK(_x) void _x(int id);
   3 #define __undo_CK_def
   4 #endif
   5 
   6 CK(register_db_call_marker) /* always has to be first  */
   7 CK(register_param_used)     /* get_state_hooks have to be registered before smatch_extra */
   8 CK(register_container_of)
   9 CK(register_container_of2)
  10 CK(register_smatch_extra)   /* smatch_extra always has to be SMATCH_EXTRA */
  11 CK(register_smatch_extra_links)
  12 CK(register_modification_hooks)
  13 /*
  14  * Implications should probably be after all the modification and smatch_extra
  15  * hooks have run.
  16  *
  17  */
  18 CK(register_implications)
  19 CK(register_definition_db_callbacks)
  20 CK(register_project)
  21 CK(register_untracked_param)
  22 CK(register_buf_comparison)
  23 CK(register_buf_comparison_links)
  24 CK(register_param_compare_limit)
  25 CK(register_param_compare_limit_links)
  26 CK(register_returns_early)
  27 
  28 CK(register_smatch_ignore)
  29 CK(register_buf_size)
  30 CK(register_strlen)
  31 CK(register_strlen_equiv)
  32 CK(register_capped)
  33 CK(register_parse_call_math)
  34 CK(register_param_limit)
  35 CK(register_param_filter)
  36 CK(register_param_set)
  37 CK(register_param_cleared)
  38 CK(register_struct_assignment)
  39 CK(register_comparison)
  40 CK(register_comparison_links)
  41 CK(register_comparison_inc_dec)
  42 CK(register_comparison_inc_dec_links)
  43 CK(register_function_ptrs)
  44 CK(register_annotate)
  45 CK(register_start_states)
  46 CK(register_type_val)
  47 CK(register_data_source)
  48 CK(register_common_functions)
  49 CK(register_function_info)
  50 CK(register_type_links)
  51 CK(register_impossible)
  52 CK(register_impossible_return)
  53 CK(register_strings)
  54 CK(register_integer_overflow)
  55 CK(register_integer_overflow_links)
  56 CK(register_real_absolute)
  57 CK(register_imaginary_absolute)
  58 CK(register_bits)
  59 CK(register_fn_arg_link)
  60 CK(register_parameter_names)
  61 CK(register_return_to_param)
  62 CK(register_return_to_param_links)
  63 CK(register_constraints)
  64 CK(register_constraints_required)
  65 CK(register_about_fn_ptr_arg)
  66 CK(register_mtag)
  67 CK(register_mtag_map)
  68 CK(register_mtag_data)
  69 CK(register_param_to_mtag_data)
  70 CK(register_array_values)
  71 CK(register_nul_terminator)
  72 CK(register_nul_terminator_param_set)
  73 CK(register_statement_count)
  74 
  75 CK(register_kernel_user_data)
  76 CK(register_kernel_user_data2)
  77 
  78 CK(check_debug)
  79 
  80 CK(check_bogus_loop)
  81 
  82 CK(check_deref)
  83 CK(check_check_deref)
  84 CK(check_dereferences_param)
  85 CK(check_index_overflow)
  86 CK(check_index_overflow_loop_marker)
  87 CK(check_testing_index_after_use)
  88 CK(check_memcpy_overflow)
  89 CK(check_strcpy_overflow)
  90 CK(check_sprintf_overflow)
  91 CK(check_snprintf_overflow)
  92 CK(check_allocating_enough_data)
  93 CK(check_leaks)
  94 CK(check_type)
  95 CK(check_allocation_funcs)
  96 CK(check_frees_argument)
  97 CK(check_deref_check)
  98 CK(check_signed)
  99 CK(check_precedence)
 100 CK(check_unused_ret)
 101 CK(check_dma_on_stack)
 102 CK(check_param_mapper)
 103 CK(check_call_tree)
 104 CK(check_dev_queue_xmit)
 105 CK(check_stack)
 106 CK(check_no_return)
 107 CK(check_mod_timer)
 108 CK(check_return)
 109 CK(check_resource_size)
 110 CK(check_release_resource)
 111 CK(check_proc_create)
 112 CK(check_freeing_null)
 113 CK(check_frees_param)
 114 CK(check_free)
 115 CK(check_frees_param_strict)
 116 CK(check_free_strict)
 117 CK(check_no_effect)
 118 CK(check_kunmap)
 119 CK(check_snprintf)
 120 CK(check_macros)
 121 CK(check_return_efault)
 122 CK(check_gfp_dma)
 123 CK(check_unwind)
 124 CK(check_kmalloc_to_bugon)
 125 CK(check_platform_device_put)
 126 CK(check_info_leak)
 127 CK(check_return_enomem)
 128 CK(check_get_user_overflow)
 129 CK(check_get_user_overflow2)
 130 CK(check_access_ok_math)
 131 CK(check_container_of)
 132 CK(check_input_free_device)
 133 CK(check_select)
 134 CK(check_memset)
 135 CK(check_logical_instead_of_bitwise)
 136 CK(check_kmalloc_wrong_size)
 137 CK(check_pointer_math)
 138 CK(check_bit_shift)
 139 CK(check_macro_side_effects)
 140 CK(check_sizeof)
 141 CK(check_return_cast)
 142 CK(check_or_vs_and)
 143 CK(check_passes_sizeof)
 144 CK(check_assign_vs_compare)
 145 CK(check_missing_break)
 146 CK(check_array_condition)
 147 CK(check_struct_type)
 148 CK(check_64bit_shift)
 149 CK(check_wrong_size_arg)
 150 CK(check_cast_assign)
 151 CK(check_readl_infinite_loops)
 152 CK(check_double_checking)
 153 CK(check_shift_to_zero)
 154 CK(check_indenting)
 155 CK(check_unreachable)
 156 CK(check_no_if_block)
 157 CK(check_buffer_too_small_for_struct)
 158 CK(check_uninitialized)
 159 CK(check_signed_integer_overflow_check)
 160 CK(check_continue_vs_break)
 161 CK(check_impossible_mask)
 162 CK(check_syscall_arg_type)
 163 CK(check_trinity_generator)
 164 
 165 /* <- your test goes here */
 166 /* CK(register_template) */
 167 
 168 /* kernel specific */
 169 CK(check_kernel_printf)
 170 CK(check_locking)
 171 CK(check_puts_argument)
 172 CK(check_err_ptr)
 173 CK(check_err_ptr_deref)
 174 CK(check_expects_err_ptr)
 175 CK(check_held_dev)
 176 CK(check_return_negative_var)
 177 CK(check_rosenberg)
 178 CK(check_rosenberg2)
 179 CK(check_rosenberg3)
 180 CK(check_wait_for_common)
 181 CK(check_bogus_irqrestore)
 182 CK(check_zero_to_err_ptr)
 183 CK(check_freeing_devm)
 184 CK(check_off_by_one_relative)
 185 CK(check_capable)
 186 CK(check_ns_capable)
 187 CK(check_test_bit)
 188 CK(check_dma_mapping_error)
 189 CK(check_nospec)
 190 CK(check_nospec_barrier)
 191 CK(check_spectre)
 192 CK(check_spectre_second_half)
 193 CK(check_implicit_dependencies)
 194 
 195 /* wine specific stuff */
 196 CK(check_wine_filehandles)
 197 CK(check_wine_WtoA)
 198 
 199 CK(check_arm64_tagged)
 200 
 201 /* illumos specific */
 202 CK(check_all_func_returns)
 203 CK(check_cmn_err)
 204 
 205 #include "check_list_local.h"
 206 
 207 CK(register_scope)
 208 CK(register_stored_conditions)
 209 CK(register_stored_conditions_links)
 210 CK(register_sval)
 211 CK(register_buf_size_late)
 212 CK(register_smatch_extra_late)
 213 CK(register_assigned_expr) /* This is used by smatch_extra.c so it has to come really late */
 214 CK(register_assigned_expr_links)
 215 CK(register_modification_hooks_late)  /* has to come after smatch_extra */
 216 CK(register_comparison_late) /* has to come after modification_hooks_late */
 217 CK(register_function_hooks)
 218 CK(check_kernel)  /* this is overwriting stuff from smatch_extra_late */
 219 CK(check_wine)
 220 CK(register_returns)
 221 
 222 #ifdef __undo_CK_def
 223 #undef CK
 224 #undef __undo_CK_def
 225 #endif