1 /* 2 * PROJECT: ReactOS PSDK 3 * LICENSE: MIT (https://spdx.org/licenses/MIT) 4 * PURPOSE: Undefines SAL definitions 5 * COPYRIGHT: Copyright 2020 Timo Kreuzer <timo.kreuzer@reactos.org> 6 */ 7 8 #pragma once 9 10 #undef __ecount 11 #undef __bcount 12 #undef __xcount 13 #undef __in 14 #undef __in_ecount 15 #undef __in_bcount 16 #undef __in_xcount 17 #undef __in_z 18 #undef __in_ecount_z 19 #undef __in_bcount_z 20 #undef __out 21 #undef __out_ecount 22 #undef __out_bcount 23 #undef __out_xcount 24 #undef __out_ecount_part 25 #undef __out_bcount_part 26 #undef __out_xcount_part 27 #undef __out_ecount_full 28 #undef __out_bcount_full 29 #undef __out_xcount_full 30 #undef __out_z 31 #undef __out_ecount_z 32 #undef __out_bcount_z 33 #undef __inout 34 #undef __inout_ecount 35 #undef __inout_bcount 36 #undef __inout_xcount 37 #undef __inout_ecount_part 38 #undef __inout_bcount_part 39 #undef __inout_xcount_part 40 #undef __inout_ecount_full 41 #undef __inout_bcount_full 42 #undef __inout_xcount_full 43 #undef __inout_z 44 #undef __inout_ecount_z 45 #undef __inout_bcount_z 46 #undef __ecount_opt 47 #undef __bcount_opt 48 #undef __xcount_opt 49 #undef __in_opt 50 #undef __in_ecount_opt 51 #undef __in_bcount_opt 52 #undef __in_z_opt 53 #undef __in_ecount_z_opt 54 #undef __in_bcount_z_opt 55 #undef __in_xcount_opt 56 #undef __out_opt 57 #undef __out_ecount_opt 58 #undef __out_bcount_opt 59 #undef __out_xcount_opt 60 #undef __out_ecount_part_opt 61 #undef __out_bcount_part_opt 62 #undef __out_xcount_part_opt 63 #undef __out_ecount_full_opt 64 #undef __out_bcount_full_opt 65 #undef __out_xcount_full_opt 66 #undef __out_ecount_z_opt 67 #undef __out_bcount_z_opt 68 #undef __inout_opt 69 #undef __inout_ecount_opt 70 #undef __inout_bcount_opt 71 #undef __inout_xcount_opt 72 #undef __inout_ecount_part_opt 73 #undef __inout_bcount_part_opt 74 #undef __inout_xcount_part_opt 75 #undef __inout_ecount_full_opt 76 #undef __inout_bcount_full_opt 77 #undef __inout_xcount_full_opt 78 #undef __inout_z_opt 79 #undef __inout_ecount_z_opt 80 #undef __inout_ecount_z_opt 81 #undef __inout_bcount_z_opt 82 #undef __deref_ecount 83 #undef __deref_bcount 84 #undef __deref_xcount 85 #undef __deref_in 86 #undef __deref_in_ecount 87 #undef __deref_in_bcount 88 #undef __deref_in_xcount 89 #undef __deref_out 90 #undef __deref_out_ecount 91 #undef __deref_out_bcount 92 #undef __deref_out_xcount 93 #undef __deref_out_ecount_part 94 #undef __deref_out_bcount_part 95 #undef __deref_out_xcount_part 96 #undef __deref_out_ecount_full 97 #undef __deref_out_bcount_full 98 #undef __deref_out_xcount_full 99 #undef __deref_out_z 100 #undef __deref_out_ecount_z 101 #undef __deref_out_bcount_z 102 #undef __deref_inout 103 #undef __deref_inout_ecount 104 #undef __deref_inout_bcount 105 #undef __deref_inout_xcount 106 #undef __deref_inout_ecount_part 107 #undef __deref_inout_bcount_part 108 #undef __deref_inout_xcount_part 109 #undef __deref_inout_ecount_full 110 #undef __deref_inout_bcount_full 111 #undef __deref_inout_xcount_full 112 #undef __deref_inout_z 113 #undef __deref_inout_ecount_z 114 #undef __deref_inout_bcount_z 115 #undef __deref_ecount_opt 116 #undef __deref_bcount_opt 117 #undef __deref_xcount_opt 118 #undef __deref_in_opt 119 #undef __deref_in_opt_out 120 #undef __deref_in_ecount_opt 121 #undef __deref_in_bcount_opt 122 #undef __deref_in_xcount_opt 123 #undef __deref_out_opt 124 #undef __deref_out_ecount_opt 125 #undef __deref_out_bcount_opt 126 #undef __deref_out_xcount_opt 127 #undef __deref_out_ecount_part_opt 128 #undef __deref_out_bcount_part_opt 129 #undef __deref_out_xcount_part_opt 130 #undef __deref_out_ecount_full_opt 131 #undef __deref_out_bcount_full_opt 132 #undef __deref_out_xcount_full_opt 133 #undef __deref_out_z_opt 134 #undef __deref_out_ecount_z_opt 135 #undef __deref_out_bcount_z_opt 136 #undef __deref_inout_opt 137 #undef __deref_inout_ecount_opt 138 #undef __deref_inout_bcount_opt 139 #undef __deref_inout_xcount_opt 140 #undef __deref_inout_ecount_part_opt 141 #undef __deref_inout_bcount_part_opt 142 #undef __deref_inout_xcount_part_opt 143 #undef __deref_inout_ecount_full_opt 144 #undef __deref_inout_bcount_full_opt 145 #undef __deref_inout_xcount_full_opt 146 #undef __deref_inout_z_opt 147 #undef __deref_inout_ecount_z_opt 148 #undef __deref_inout_bcount_z_opt 149 #undef __deref_opt_ecount 150 #undef __deref_opt_bcount 151 #undef __deref_opt_xcount 152 #undef __deref_opt_in 153 #undef __deref_opt_in_ecount 154 #undef __deref_opt_in_bcount 155 #undef __deref_opt_in_xcount 156 #undef __deref_opt_out 157 #undef __deref_opt_out_ecount 158 #undef __deref_opt_out_bcount 159 #undef __deref_opt_out_xcount 160 #undef __deref_opt_out_ecount_part 161 #undef __deref_opt_out_bcount_part 162 #undef __deref_opt_out_xcount_part 163 #undef __deref_opt_out_ecount_full 164 #undef __deref_opt_out_bcount_full 165 #undef __deref_opt_out_xcount_full 166 #undef __deref_opt_inout 167 #undef __deref_opt_inout_ecount 168 #undef __deref_opt_inout_bcount 169 #undef __deref_opt_inout_xcount 170 #undef __deref_opt_inout_ecount_part 171 #undef __deref_opt_inout_bcount_part 172 #undef __deref_opt_inout_xcount_part 173 #undef __deref_opt_inout_ecount_full 174 #undef __deref_opt_inout_bcount_full 175 #undef __deref_opt_inout_xcount_full 176 #undef __deref_opt_inout_z 177 #undef __deref_opt_inout_ecount_z 178 #undef __deref_opt_inout_bcount_z 179 #undef __deref_opt_ecount_opt 180 #undef __deref_opt_bcount_opt 181 #undef __deref_opt_xcount_opt 182 #undef __deref_opt_in_opt 183 #undef __deref_opt_in_ecount_opt 184 #undef __deref_opt_in_bcount_opt 185 #undef __deref_opt_in_xcount_opt 186 #undef __deref_opt_out_opt 187 #undef __deref_opt_out_ecount_opt 188 #undef __deref_opt_out_bcount_opt 189 #undef __deref_opt_out_xcount_opt 190 #undef __deref_opt_out_ecount_part_opt 191 #undef __deref_opt_out_bcount_part_opt 192 #undef __deref_opt_out_xcount_part_opt 193 #undef __deref_opt_out_ecount_full_opt 194 #undef __deref_opt_out_bcount_full_opt 195 #undef __deref_opt_out_xcount_full_opt 196 #undef __deref_opt_out_z_opt 197 #undef __deref_opt_out_ecount_z_opt 198 #undef __deref_opt_out_bcount_z_opt 199 #undef __deref_opt_inout_opt 200 #undef __deref_opt_inout_ecount_opt 201 #undef __deref_opt_inout_bcount_opt 202 #undef __deref_opt_inout_xcount_opt 203 #undef __deref_opt_inout_ecount_part_opt 204 #undef __deref_opt_inout_bcount_part_opt 205 #undef __deref_opt_inout_xcount_part_opt 206 #undef __deref_opt_inout_ecount_full_opt 207 #undef __deref_opt_inout_bcount_full_opt 208 #undef __deref_opt_inout_xcount_full_opt 209 #undef __deref_opt_inout_z_opt 210 #undef __deref_opt_inout_ecount_z_opt 211 #undef __deref_opt_inout_bcount_z_opt 212 #undef __deref_in_ecount_iterator 213 #undef __deref_out_ecount_iterator 214 #undef __deref_inout_ecount_iterator 215 #undef __deref_realloc_bcount 216 217 /************************************************************************ 218 * SAL 2 _Ouptr_ family of annotations 219 ************************************************************************/ 220 221 #undef _Outptr_ 222 #undef _Outptr_result_maybenull_ 223 #undef _Outptr_opt_ 224 #undef _Outptr_opt_result_maybenull_ 225 #undef _Outptr_result_z_ 226 #undef _Outptr_opt_result_z_ 227 #undef _Outptr_result_maybenull_z_ 228 #undef _Outptr_opt_result_maybenull_z_ 229 #undef _Outptr_result_nullonfailure_ 230 #undef _Outptr_opt_result_nullonfailure_ 231 #undef _COM_Outptr_ 232 #undef _COM_Outptr_result_maybenull_ 233 #undef _COM_Outptr_opt_ 234 #undef _COM_Outptr_opt_result_maybenull_ 235 #undef _Outptr_result_buffer_ 236 #undef _Outptr_opt_result_buffer_ 237 #undef _Outptr_result_buffer_to_ 238 #undef _Outptr_opt_result_buffer_to_ 239 #undef _Outptr_result_buffer_all_ 240 #undef _Outptr_opt_result_buffer_all_ 241 #undef _Outptr_result_buffer_maybenull_ 242 #undef _Outptr_opt_result_buffer_maybenull_ 243 #undef _Outptr_result_buffer_to_maybenull_ 244 #undef _Outptr_opt_result_buffer_to_maybenull_ 245 #undef _Outptr_result_buffer_all_maybenull_ 246 #undef _Outptr_opt_result_buffer_all_maybenull_ 247 #undef _Outptr_result_bytebuffer_ 248 #undef _Outptr_opt_result_bytebuffer_ 249 #undef _Outptr_result_bytebuffer_to_ 250 #undef _Outptr_opt_result_bytebuffer_to_ 251 #undef _Outptr_result_bytebuffer_all_ 252 #undef _Outptr_opt_result_bytebuffer_all_ 253 #undef _Outptr_result_bytebuffer_maybenull_ 254 #undef _Outptr_opt_result_bytebuffer_maybenull_ 255 #undef _Outptr_result_bytebuffer_to_maybenull_ 256 #undef _Outptr_opt_result_bytebuffer_to_maybenull_ 257 #undef _Outptr_result_bytebuffer_all_maybenull_ 258 #undef _Outptr_opt_result_bytebuffer_all_maybenull_ 259 260 /************************************************************************ 261 * Orcas SAL 262 ************************************************************************/ 263 #undef _Deref_out_ 264 #undef _Deref_out_opt_ 265 #undef _Deref_opt_out_ 266 #undef _Deref_opt_out_opt_ 267 #undef _In_count_ 268 #undef _In_opt_count_ 269 #undef _In_bytecount_ 270 #undef _In_opt_bytecount_ 271 #undef _Out_cap_ 272 #undef _Out_opt_cap_ 273 #undef _Out_bytecap_ 274 #undef _Out_opt_bytecap_ 275 #undef _Deref_post_count_ 276 #undef _Deref_post_opt_count_ 277 #undef _Deref_post_bytecount_ 278 #undef _Deref_post_opt_bytecount_ 279 #undef _Deref_post_cap_ 280 #undef _Deref_post_opt_cap_ 281 #undef _Deref_post_bytecap_ 282 #undef _Deref_post_opt_bytecap_ 283 284 /************************************************************************ 285 * Advanced Annotations 286 ************************************************************************/ 287 #undef _At_ 288 #undef _When_ 289 #undef __success 290 #undef __out_awcount 291 #undef __in_awcount 292 #undef __nullterminated 293 #undef __nullnullterminated 294 #undef __reserved 295 #undef __checkReturn 296 #undef __typefix 297 #undef __override 298 #undef __callback 299 #undef __format_string 300 #undef __blocksOn 301 #undef __fallthrough 302 #undef __range 303 #undef __in_range 304 #undef __out_range 305 #undef __deref_in_range 306 #undef __deref_out_range 307 #undef __deref_inout_range 308 #undef __field_range 309 #undef __range_max 310 #undef __range_min 311 #undef __bound 312 #undef __in_bound 313 #undef __out_bound 314 #undef __deref_out_bound 315 #undef __assume_bound 316 #undef __analysis_assume_nullterminated 317 #undef __allocator 318 #undef __deallocate 319 #undef __deallocate_opt 320 #undef __post_invalid 321 #undef __post_nullnullterminated 322 /*************************************************************************** 323 * Expert Macros 324 ***************************************************************************/ 325 #undef __null 326 #undef __notnull 327 #undef __maybenull 328 #undef __exceptthat 329 /*************************************************************************** 330 * Macros to classify fields of structures. 331 ****************************************************************************/ 332 #undef __field_ecount 333 #undef __field_bcount 334 #undef __field_xcount 335 #undef __field_ecount_opt 336 #undef __field_bcount_opt 337 #undef __field_xcount_opt 338 #undef __field_ecount_part 339 #undef __field_bcount_part 340 #undef __field_xcount_part 341 #undef __field_ecount_part_opt 342 #undef __field_bcount_part_opt 343 #undef __field_xcount_part_opt 344 #undef __field_ecount_full 345 #undef __field_bcount_full 346 #undef __field_xcount_full 347 #undef __field_ecount_full_opt 348 #undef __field_bcount_full_opt 349 #undef __field_xcount_full_opt 350 #undef __field_nullterminated 351 #undef __struct_bcount 352 #undef __struct_xcount 353 354 /*************************************************************************** 355 * Macros to classify the entrypoints and indicate their category. 356 ***************************************************************************/ 357 #undef __control_entrypoint 358 #undef __rpc_entry 359 #undef __kernel_entry 360 #undef __gdi_entry 361 362 /*************************************************************************** 363 * Macros to track untrusted data and their validation. 364 ***************************************************************************/ 365 #undef __in_data_source 366 #undef __out_data_source 367 #undef __field_data_source 368 #undef __this_out_data_source 369 370 /************************************************************************** 371 * Macros to tag file parsing code. 372 **************************************************************************/ 373 #undef __out_validated 374 #undef __this_out_validated 375 #undef __file_parser 376 #undef __file_parser_class 377 #undef __file_parser_library 378 379 /*************************************************************************** 380 * Macros to track the code content in the file. 381 ***************************************************************************/ 382 #undef __source_code_content 383 384 /*************************************************************************** 385 * Macros to track the code content in the class. 386 ***************************************************************************/ 387 #undef __class_code_content 388 389 /************************************************************************* 390 * Macros to tag encoded function pointers 391 **************************************************************************/ 392 #undef __encoded_pointer 393 #undef __encoded_array 394 #undef __field_encoded_pointer 395 #undef __field_encoded_array 396 397 #undef __transfer 398 #undef __assume_validated 399 400 /************************************************************************* 401 * __analysis_assume 402 *************************************************************************/ 403 #undef __analysis_assume 404 #undef __analysis_assert 405 406 /************************************************************************* 407 * __analysis_hint 408 *************************************************************************/ 409 #undef __analysis_hint 410 411 /************************************************************************* 412 * Macros to encode abstract properties of values. Used by SALadt.h 413 *************************************************************************/ 414 #undef __type_has_adt_prop 415 #undef __out_has_adt_prop 416 #undef __out_not_has_adt_prop 417 #undef __out_transfer_adt_prop 418 #undef __out_has_type_adt_props 419 420 /************************************************************************* 421 * Macros used by Prefast for Drivers 422 *************************************************************************/ 423 #undef __possibly_notnullterminated 424 425 /************************************************************************* 426 * Advanced macros 427 *************************************************************************/ 428 #undef __volatile 429 #undef __deref_volatile 430 #undef __nonvolatile 431 #undef __deref_nonvolatile 432 433 /************************************************************************* 434 * Macros deprecated with strict level greater then 1. 435 **************************************************************************/ 436 #undef __in_nz 437 #undef __in_ecount_nz 438 #undef __in_bcount_nz 439 #undef __out_nz 440 #undef __out_nz_opt 441 #undef __out_ecount_nz 442 #undef __out_bcount_nz 443 #undef __inout_nz 444 #undef __inout_ecount_nz 445 #undef __inout_bcount_nz 446 #undef __in_nz_opt 447 #undef __in_ecount_nz_opt 448 #undef __in_bcount_nz_opt 449 #undef __out_ecount_nz_opt 450 #undef __out_bcount_nz_opt 451 #undef __inout_nz_opt 452 #undef __inout_ecount_nz_opt 453 #undef __inout_bcount_nz_opt 454 #undef __deref_out_nz 455 #undef __deref_out_ecount_nz 456 #undef __deref_out_bcount_nz 457 #undef __deref_inout_nz 458 #undef __deref_inout_ecount_nz 459 #undef __deref_inout_bcount_nz 460 #undef __deref_out_nz_opt 461 #undef __deref_out_ecount_nz_opt 462 #undef __deref_out_bcount_nz_opt 463 #undef __deref_inout_nz_opt 464 #undef __deref_inout_ecount_nz_opt 465 #undef __deref_inout_bcount_nz_opt 466 #undef __deref_opt_inout_nz 467 #undef __deref_opt_inout_ecount_nz 468 #undef __deref_opt_inout_bcount_nz 469 #undef __deref_opt_out_nz_opt 470 #undef __deref_opt_out_ecount_nz_opt 471 #undef __deref_opt_out_bcount_nz_opt 472 #undef __deref_opt_inout_nz_opt 473 #undef __deref_opt_inout_ecount_nz_opt 474 #undef __deref_opt_inout_bcount_nz_opt 475 #undef __deref 476 #undef __pre 477 #undef __post 478 #undef __readableTo 479 #undef __writableTo 480 #undef __maybevalid 481 #undef __inexpressible_readableTo 482 #undef __data_entrypoint 483 #undef __readonly 484 #undef __byte_writableTo 485 #undef __byte_readableTo 486 #undef __elem_readableTo 487 #undef __elem_writableTo 488 #undef __valid 489 #undef __notvalid 490 #undef __refparam 491 #undef __precond 492