no_sal2.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537
  1. //
  2. // Copyright (c) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE file in the project root for full license information.
  4. //
  5. /***
  6. * no_sal2.h - renders the SAL annotations for documenting APIs harmless.
  7. *
  8. *
  9. *Purpose:
  10. * sal.h provides a set of SAL2 annotations to describe how a function uses its
  11. * parameters - the assumptions it makes about them, and the guarantees it makes
  12. * upon finishing. This file redefines all those annotation macros to be harmless.
  13. * It is designed for use in down-level build environments where the tooling may
  14. * be unhappy with the standard SAL2 macro definitions.
  15. *
  16. * [Public]
  17. *
  18. *
  19. ****/
  20. #ifndef _NO_SAL_2_H_
  21. #define _NO_SAL_2_H_
  22. #undef __notnull
  23. #define __notnull
  24. #undef _When_
  25. #define _When_(c,a)
  26. #undef _At_
  27. #define _At_(t,a)
  28. #undef _At_buffer_
  29. #define _At_buffer_(t,i,c,a)
  30. #undef _Group_
  31. #define _Group_(a)
  32. #undef _Pre_
  33. #define _Pre_
  34. #undef _Post_
  35. #define _Post_
  36. #undef _Deref_
  37. #define _Deref_
  38. #undef _Null_
  39. #define _Null_
  40. #undef _Notnull_
  41. #define _Notnull_
  42. #undef _Maybenull_
  43. #define _Maybenull_
  44. #undef _Const_
  45. #define _Const_
  46. #undef _Check_return_
  47. #define _Check_return_
  48. #undef _Must_inspect_result_
  49. #define _Must_inspect_result_
  50. #undef _Pre_satisfies_
  51. #define _Pre_satisfies_(e)
  52. #undef _Post_satisfies_
  53. #define _Post_satisfies_(e)
  54. #undef _Writable_elements_
  55. #define _Writable_elements_(s)
  56. #undef _Writable_bytes_
  57. #define _Writable_bytes_(s)
  58. #undef _Readable_elements_
  59. #define _Readable_elements_(s)
  60. #undef _Readable_bytes_
  61. #define _Readable_bytes_(s)
  62. #undef _Null_terminated_
  63. #define _Null_terminated_
  64. #undef _NullNull_terminated_
  65. #define _NullNull_terminated_
  66. #undef _Valid_
  67. #define _Valid_
  68. #undef _Notvalid_
  69. #define _Notvalid_
  70. #undef _Success_
  71. #define _Success_(c)
  72. #undef _Return_type_success_
  73. #define _Return_type_success_(c)
  74. #undef _On_failure_
  75. #define _On_failure_(a)
  76. #undef _Always_
  77. #define _Always_(a)
  78. #undef _Use_decl_annotations_
  79. #define _Use_decl_annotations_
  80. #undef _Pre_defensive_
  81. #define _Pre_defensive_
  82. #undef _Post_defensive_
  83. #define _Post_defensive_
  84. #undef _Pre_unknown_
  85. #define _Pre_unknown_
  86. #undef _Acquires_lock_
  87. #define _Acquires_lock_(e)
  88. #undef _Releases_lock_
  89. #define _Releases_lock_(e)
  90. #undef _Requires_lock_held_
  91. #define _Requires_lock_held_(e)
  92. #undef _Requires_lock_not_held_
  93. #define _Requires_lock_not_held_(e)
  94. #undef _Requires_no_locks_held_
  95. #define _Requires_no_locks_held_
  96. #undef _Guarded_by_
  97. #define _Guarded_by_(e)
  98. #undef _Write_guarded_by_
  99. #define _Write_guarded_by_(e)
  100. #undef _Interlocked_
  101. #define _Interlocked_
  102. #undef _Post_same_lock_
  103. #define _Post_same_lock_(e1,e2)
  104. #undef _Benign_race_begin_
  105. #define _Benign_race_begin_
  106. #undef _Benign_race_end_
  107. #define _Benign_race_end_
  108. #undef _No_competing_thread_
  109. #define _No_competing_thread_
  110. #undef _No_competing_thread_begin_
  111. #define _No_competing_thread_begin_
  112. #undef _No_competing_thread_end_
  113. #define _No_competing_thread_end_
  114. #undef _Acquires_shared_lock_
  115. #define _Acquires_shared_lock_(e)
  116. #undef _Releases_shared_lock_
  117. #define _Releases_shared_lock_(e)
  118. #undef _Requires_shared_lock_held_
  119. #define _Requires_shared_lock_held_(e)
  120. #undef _Acquires_exclusive_lock_
  121. #define _Acquires_exclusive_lock_(e)
  122. #undef _Releases_exclusive_lock_
  123. #define _Releases_exclusive_lock_(e)
  124. #undef _Requires_exclusive_lock_held_
  125. #define _Requires_exclusive_lock_held_(e)
  126. #undef _Has_lock_kind_
  127. #define _Has_lock_kind_(n)
  128. #undef _Create_lock_level_
  129. #define _Create_lock_level_(n)
  130. #undef _Has_lock_level_
  131. #define _Has_lock_level_(n)
  132. #undef _Lock_level_order_
  133. #define _Lock_level_order_(n1,n2)
  134. #undef _Analysis_assume_lock_acquired_
  135. #define _Analysis_assume_lock_acquired_(e)
  136. #undef _Analysis_assume_lock_released_
  137. #define _Analysis_assume_lock_released_(e)
  138. #undef _Analysis_assume_lock_held_
  139. #define _Analysis_assume_lock_held_(e)
  140. #undef _Analysis_assume_lock_not_held_
  141. #define _Analysis_assume_lock_not_held_(e)
  142. #undef _Analysis_assume_same_lock_
  143. #define _Analysis_assume_same_lock_(e)
  144. #undef _In_
  145. #define _In_
  146. #undef _Out_
  147. #define _Out_
  148. #undef _Inout_
  149. #define _Inout_
  150. #undef _In_z_
  151. #define _In_z_
  152. #undef _Inout_z_
  153. #define _Inout_z_
  154. #undef _In_reads_
  155. #define _In_reads_(s)
  156. #undef _In_reads_bytes_
  157. #define _In_reads_bytes_(s)
  158. #undef _In_reads_z_
  159. #define _In_reads_z_(s)
  160. #undef _In_reads_or_z_
  161. #define _In_reads_or_z_(s)
  162. #undef _Out_writes_
  163. #define _Out_writes_(s)
  164. #undef _Out_writes_bytes_
  165. #define _Out_writes_bytes_(s)
  166. #undef _Out_writes_z_
  167. #define _Out_writes_z_(s)
  168. #undef _Inout_updates_
  169. #define _Inout_updates_(s)
  170. #undef _Inout_updates_bytes_
  171. #define _Inout_updates_bytes_(s)
  172. #undef _Inout_updates_z_
  173. #define _Inout_updates_z_(s)
  174. #undef _Out_writes_to_
  175. #define _Out_writes_to_(s,c)
  176. #undef _Out_writes_bytes_to_
  177. #define _Out_writes_bytes_to_(s,c)
  178. #undef _Out_writes_all_
  179. #define _Out_writes_all_(s)
  180. #undef _Out_writes_bytes_all_
  181. #define _Out_writes_bytes_all_(s)
  182. #undef _Inout_updates_to_
  183. #define _Inout_updates_to_(s,c)
  184. #undef _Inout_updates_bytes_to_
  185. #define _Inout_updates_bytes_to_(s,c)
  186. #undef _Inout_updates_all_
  187. #define _Inout_updates_all_(s)
  188. #undef _Inout_updates_bytes_all_
  189. #define _Inout_updates_bytes_all_(s)
  190. #undef _In_reads_to_ptr_
  191. #define _In_reads_to_ptr_(p)
  192. #undef _In_reads_to_ptr_z_
  193. #define _In_reads_to_ptr_z_(p)
  194. #undef _Out_writes_to_ptr_
  195. #define _Out_writes_to_ptr_(p)
  196. #undef _Out_writes_to_ptr_z_
  197. #define _Out_writes_to_ptr_z_(p)
  198. #undef _In_opt_
  199. #define _In_opt_
  200. #undef _Out_opt_
  201. #define _Out_opt_
  202. #undef _Inout_opt_
  203. #define _Inout_opt_
  204. #undef _In_opt_z_
  205. #define _In_opt_z_
  206. #undef _Inout_opt_z_
  207. #define _Inout_opt_z_
  208. #undef _In_reads_opt_
  209. #define _In_reads_opt_(s)
  210. #undef _In_reads_bytes_opt_
  211. #define _In_reads_bytes_opt_(s)
  212. #undef _Out_writes_opt_
  213. #define _Out_writes_opt_(s)
  214. #undef _Out_writes_bytes_opt_
  215. #define _Out_writes_bytes_opt_(s)
  216. #undef _Out_writes_opt_z_
  217. #define _Out_writes_opt_z_(s)
  218. #undef _Inout_updates_opt_
  219. #define _Inout_updates_opt_(s)
  220. #undef _Inout_updates_bytes_opt_
  221. #define _Inout_updates_bytes_opt_(s)
  222. #undef _Inout_updates_opt_z_
  223. #define _Inout_updates_opt_z_(s)
  224. #undef _Out_writes_to_opt_
  225. #define _Out_writes_to_opt_(s,c)
  226. #undef _Out_writes_bytes_to_opt_
  227. #define _Out_writes_bytes_to_opt_(s,c)
  228. #undef _Out_writes_all_opt_
  229. #define _Out_writes_all_opt_(s)
  230. #undef _Out_writes_bytes_all_opt_
  231. #define _Out_writes_bytes_all_opt_(s)
  232. #undef _Inout_updates_to_opt_
  233. #define _Inout_updates_to_opt_(s,c)
  234. #undef _Inout_updates_bytes_to_opt_
  235. #define _Inout_updates_bytes_to_opt_(s,c)
  236. #undef _Inout_updates_all_opt_
  237. #define _Inout_updates_all_opt_(s)
  238. #undef _Inout_updates_bytes_all_opt_
  239. #define _Inout_updates_bytes_all_opt_(s)
  240. #undef _In_reads_to_ptr_opt_
  241. #define _In_reads_to_ptr_opt_(p)
  242. #undef _In_reads_to_ptr_opt_z_
  243. #define _In_reads_to_ptr_opt_z_(p)
  244. #undef _Out_writes_to_ptr_opt_
  245. #define _Out_writes_to_ptr_opt_(p)
  246. #undef _Out_writes_to_ptr_opt_z_
  247. #define _Out_writes_to_ptr_opt_z_(p)
  248. #undef _Outptr_
  249. #define _Outptr_
  250. #undef _Outptr_opt_
  251. #define _Outptr_opt_
  252. #undef _Outptr_result_maybenull_
  253. #define _Outptr_result_maybenull_
  254. #undef _Outptr_opt_result_maybenull_
  255. #define _Outptr_opt_result_maybenull_
  256. #undef _Outptr_z_
  257. #define _Outptr_z_
  258. #undef _Outptr_opt_z_
  259. #define _Outptr_opt_z_
  260. #undef _Outptr_result_maybenull_z_
  261. #define _Outptr_result_maybenull_z_
  262. #undef _Outptr_opt_result_maybenull_z_
  263. #define _Outptr_opt_result_maybenull_z_
  264. #undef _COM_Outptr_
  265. #define _COM_Outptr_
  266. #undef _COM_Outptr_opt_
  267. #define _COM_Outptr_opt_
  268. #undef _COM_Outptr_result_maybenull_
  269. #define _COM_Outptr_result_maybenull_
  270. #undef _COM_Outptr_opt_result_maybenull_
  271. #define _COM_Outptr_opt_result_maybenull_
  272. #undef _Outptr_result_buffer_
  273. #define _Outptr_result_buffer_(s)
  274. #undef _Outptr_result_bytebuffer_
  275. #define _Outptr_result_bytebuffer_(s)
  276. #undef _Outptr_opt_result_buffer_
  277. #define _Outptr_opt_result_buffer_(s)
  278. #undef _Outptr_opt_result_bytebuffer_
  279. #define _Outptr_opt_result_bytebuffer_(s)
  280. #undef _Outptr_result_buffer_to_
  281. #define _Outptr_result_buffer_to_(s,c)
  282. #undef _Outptr_result_bytebuffer_to_
  283. #define _Outptr_result_bytebuffer_to_(s,c)
  284. #undef _Outptr_opt_result_buffer_to_
  285. #define _Outptr_opt_result_buffer_to_(s,c)
  286. #undef _Outptr_opt_result_bytebuffer_to_
  287. #define _Outptr_opt_result_bytebuffer_to_(s,c)
  288. #undef _Ret_
  289. #define _Ret_
  290. #undef _Ret_valid_
  291. #define _Ret_valid_
  292. #undef _Ret_z_
  293. #define _Ret_z_
  294. #undef _Ret_writes_
  295. #define _Ret_writes_(s)
  296. #undef _Ret_writes_bytes_
  297. #define _Ret_writes_bytes_(s)
  298. #undef _Ret_writes_z_
  299. #define _Ret_writes_z_(s)
  300. #undef _Ret_writes_to_
  301. #define _Ret_writes_to_(s,c)
  302. #undef _Ret_writes_bytes_to_
  303. #define _Ret_writes_bytes_to_(s,c)
  304. #undef _Ret_writes_maybenull_
  305. #define _Ret_writes_maybenull_(s)
  306. #undef _Ret_writes_bytes_maybenull_
  307. #define _Ret_writes_bytes_maybenull_(s)
  308. #undef _Ret_writes_to_maybenull_
  309. #define _Ret_writes_to_maybenull_(s,c)
  310. #undef _Ret_writes_bytes_to_maybenull_
  311. #define _Ret_writes_bytes_to_maybenull_(s,c)
  312. #undef _Ret_writes_maybenull_z_
  313. #define _Ret_writes_maybenull_z_(s)
  314. #undef _Ret_maybenull_
  315. #define _Ret_maybenull_
  316. #undef _Ret_maybenull_z_
  317. #define _Ret_maybenull_z_
  318. #undef _Field_size_
  319. #define _Field_size_(s)
  320. #undef _Field_size_opt_
  321. #define _Field_size_opt_(s)
  322. #undef _Field_size_bytes_
  323. #define _Field_size_bytes_(s)
  324. #undef _Field_size_bytes_opt_
  325. #define _Field_size_bytes_opt_(s)
  326. #undef _Field_size_part_
  327. #define _Field_size_part_(s,c)
  328. #undef _Field_size_part_opt_
  329. #define _Field_size_part_opt_(s,c)
  330. #undef _Field_size_bytes_part_
  331. #define _Field_size_bytes_part_(s,c)
  332. #undef _Field_size_bytes_part_opt_
  333. #define _Field_size_bytes_part_opt_(s,c)
  334. #undef _Field_size_full_
  335. #define _Field_size_full_(s)
  336. #undef _Field_size_full_opt_
  337. #define _Field_size_full_opt_(s)
  338. #undef _Field_size_bytes_full_
  339. #define _Field_size_bytes_full_(s)
  340. #undef _Field_size_bytes_full_opt_
  341. #define _Field_size_bytes_full_opt_(s)
  342. #undef _Printf_format_string_
  343. #define _Printf_format_string_
  344. #undef _Scanf_format_string_
  345. #define _Scanf_format_string_
  346. #undef _Scanf_s_format_string_
  347. #define _Scanf_s_format_string_
  348. #undef _Printf_format_string_params_
  349. #define _Printf_format_string_params_(x)
  350. #undef _Scanf_format_string_params_
  351. #define _Scanf_format_string_params_(x)
  352. #undef _Scanf_s_format_string_params_
  353. #define _Scanf_s_format_string_params_(x)
  354. #undef _In_range_
  355. #define _In_range_(l,h)
  356. #undef _Out_range_
  357. #define _Out_range_(l,h)
  358. #undef _Ret_range_
  359. #define _Ret_range_(l,h)
  360. #undef _Deref_in_range_
  361. #define _Deref_in_range_(l,h)
  362. #undef _Deref_out_range_
  363. #define _Deref_out_range_(l,h)
  364. #undef _Deref_inout_range_
  365. #define _Deref_inout_range_(l,h)
  366. #undef _Field_range_
  367. #define _Field_range_(l,h)
  368. #undef _Pre_equal_to_
  369. #define _Pre_equal_to_(e)
  370. #undef _Post_equal_to_
  371. #define _Post_equal_to_(e)
  372. #undef _Struct_size_bytes_
  373. #define _Struct_size_bytes_(s)
  374. #undef _Analysis_assume_
  375. #define _Analysis_assume_
  376. #undef _Analysis_mode_
  377. #define _Analysis_mode_(m)
  378. #undef _Analysis_noreturn_
  379. #define _Analysis_noreturn_
  380. #undef _Raises_SEH_exception_
  381. #define _Raises_SEH_exception_
  382. #undef _Maybe_raises_SEH_exception_
  383. #define _Maybe_raises_SEH_exception_
  384. #undef _Function_class_
  385. #define _Function_class_(n)
  386. #undef _Literal_
  387. #define _Literal_
  388. #undef _Notliteral_
  389. #define _Notliteral_
  390. #undef _Enum_is_bitflag_
  391. #define _Enum_is_bitflag_
  392. #undef _Strict_type_match_
  393. #define _Strict_type_match_
  394. #undef _Points_to_data_
  395. #define _Points_to_data_
  396. #undef _Interlocked_operand_
  397. #define _Interlocked_operand_
  398. #undef _IRQL_raises_
  399. #define _IRQL_raises_(i)
  400. #undef _IRQL_requires_
  401. #define _IRQL_requires_(i)
  402. #undef _IRQL_requires_max_
  403. #define _IRQL_requires_max_(i)
  404. #undef _IRQL_requires_min_
  405. #define _IRQL_requires_min_(i)
  406. #undef _IRQL_saves_
  407. #define _IRQL_saves_
  408. #undef _IRQL_saves_global_
  409. #define _IRQL_saves_global_(k,s)
  410. #undef _IRQL_restores_
  411. #define _IRQL_restores_
  412. #undef _IRQL_restores_global_
  413. #define _IRQL_restores_global_(k,s)
  414. #undef _IRQL_always_function_min_
  415. #define _IRQL_always_function_min_(i)
  416. #undef _IRQL_always_function_max_
  417. #define _IRQL_always_function_max_(i)
  418. #undef _IRQL_requires_same_
  419. #define _IRQL_requires_same_
  420. #undef _IRQL_uses_cancel_
  421. #define _IRQL_uses_cancel_
  422. #undef _IRQL_is_cancel_
  423. #define _IRQL_is_cancel_
  424. #undef _Kernel_float_saved_
  425. #define _Kernel_float_saved_
  426. #undef _Kernel_float_restored_
  427. #define _Kernel_float_restored_
  428. #undef _Kernel_float_used_
  429. #define _Kernel_float_used_
  430. #undef _Kernel_acquires_resource_
  431. #define _Kernel_acquires_resource_(k)
  432. #undef _Kernel_releases_resource_
  433. #define _Kernel_releases_resource_(k)
  434. #undef _Kernel_requires_resource_held_
  435. #define _Kernel_requires_resource_held_(k)
  436. #undef _Kernel_requires_resource_not_held_
  437. #define _Kernel_requires_resource_not_held_(k)
  438. #undef _Kernel_clear_do_init_
  439. #define _Kernel_clear_do_init_(yn)
  440. #undef _Kernel_IoGetDmaAdapter_
  441. #define _Kernel_IoGetDmaAdapter_
  442. #undef _Outref_
  443. #define _Outref_
  444. #undef _Outref_result_maybenull_
  445. #define _Outref_result_maybenull_
  446. #undef _Outref_result_buffer_
  447. #define _Outref_result_buffer_(s)
  448. #undef _Outref_result_bytebuffer_
  449. #define _Outref_result_bytebuffer_(s)
  450. #undef _Outref_result_buffer_to_
  451. #define _Outref_result_buffer_to_(s,c)
  452. #undef _Outref_result_bytebuffer_to_
  453. #define _Outref_result_bytebuffer_to_(s,c)
  454. #undef _Outref_result_buffer_all_
  455. #define _Outref_result_buffer_all_(s)
  456. #undef _Outref_result_bytebuffer_all_
  457. #define _Outref_result_bytebuffer_all_(s)
  458. #undef _Outref_result_buffer_maybenull_
  459. #define _Outref_result_buffer_maybenull_(s)
  460. #undef _Outref_result_bytebuffer_maybenull_
  461. #define _Outref_result_bytebuffer_maybenull_(s)
  462. #undef _Outref_result_buffer_to_maybenull_
  463. #define _Outref_result_buffer_to_maybenull_(s,c)
  464. #undef _Outref_result_bytebuffer_to_maybenull_
  465. #define _Outref_result_bytebuffer_to_maybenull_(s,c)
  466. #undef _Outref_result_buffer_all_maybenull_
  467. #define _Outref_result_buffer_all_maybenull_(s)
  468. #undef _Outref_result_bytebuffer_all_maybenull_
  469. #define _Outref_result_bytebuffer_all_maybenull_(s)
  470. #undef _In_defensive_
  471. #define _In_defensive_(a)
  472. #undef _Out_defensive_
  473. #define _Out_defensive_(a)
  474. #undef _Inout_defensive_
  475. #define _Inout_defensive_(a)
  476. #undef _Outptr_result_nullonfailure_
  477. #define _Outptr_result_nullonfailure_
  478. #undef _Outptr_opt_result_nullonfailure_
  479. #define _Outptr_opt_result_nullonfailure_
  480. #undef _Outref_result_nullonfailure_
  481. #define _Outref_result_nullonfailure_
  482. #undef _Result_nullonfailure_
  483. #define _Result_nullonfailure_
  484. #undef _Result_zeroonfailure_
  485. #define _Result_zeroonfailure_
  486. #undef _Acquires_nonreentrant_lock_
  487. #define _Acquires_nonreentrant_lock_(e)
  488. #undef _Releases_nonreentrant_lock_
  489. #define _Releases_nonreentrant_lock_(e)
  490. #undef _Reserved_
  491. #define _Reserved_ _Pre_equal_to_(0) _Pre_ _Null_
  492. #undef _Pre_z_
  493. #define _Pre_z_ _Pre_ _Null_terminated_
  494. #undef _Post_z_
  495. #define _Post_z_ _Post_ _Null_terminated_
  496. #undef _Prepost_z_
  497. #define _Prepost_z_ _Pre_z_ _Post_z_
  498. #undef _Pre_null_
  499. #define _Pre_null_ _Pre_ _Null_
  500. #undef _Pre_maybenull_
  501. #define _Pre_maybenull_ _Pre_ _Maybenull_
  502. #undef _Pre_notnull_
  503. #define _Pre_notnull_ _Pre_ _Notnull_
  504. #undef _Pre_valid_
  505. #define _Pre_valid_ _Pre_notnull_ _Pre_ _Valid_
  506. #undef _Pre_opt_valid_
  507. #define _Pre_opt_valid_ _Pre_maybenull_ _Pre_ _Valid_
  508. #undef _Post_valid_
  509. #define _Post_valid_ _Post_ _Valid_
  510. #undef _Post_invalid_
  511. #define _Post_invalid_ _Post_ _Deref_ _Notvalid_
  512. #undef _Post_ptr_invalid_
  513. #define _Post_ptr_invalid_ _Post_ _Notvalid_
  514. #undef _Pre_readable_size_
  515. #define _Pre_readable_size_(s) _Pre_ _Readable_elements_(s) _Pre_ _Valid_
  516. #undef _Pre_writable_size_
  517. #define _Pre_writable_size_(s) _Pre_ _Writable_elements_(s)
  518. #undef _Pre_readable_byte_size_
  519. #define _Pre_readable_byte_size_(s) _Pre_ _Readable_bytes_(s) _Pre_ _Valid_
  520. #undef _Pre_writable_byte_size_
  521. #define _Pre_writable_byte_size_(s) _Pre_ _Writable_bytes_(s)
  522. #undef _Post_readable_size_
  523. #define _Post_readable_size_(s) _Post_ _Readable_elements_(s) _Post_ _Valid_
  524. #undef _Post_writable_size_
  525. #define _Post_writable_size_(s) _Post_ _Writable_elements_(s)
  526. #undef _Post_readable_byte_size_
  527. #define _Post_readable_byte_size_(s) _Post_ _Readable_bytes_(s) _Post_ _Valid_
  528. #undef _Post_writable_byte_size_
  529. #define _Post_writable_byte_size_(s) _Post_ _Writable_bytes_(s)
  530. #endif /* _NO_SAL_2_H_ */