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