1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 7 #ifndef SPECSTRINGS_H 8 #define SPECSTRINGS_H 9 10 #define __specstrings 11 12 #include <sal.h> 13 14 #ifdef __cplusplus 15 #ifndef __nothrow 16 #define __nothrow __declspec(nothrow) 17 #endif 18 extern "C" { 19 #else 20 #ifndef __nothrow 21 #define __nothrow 22 #endif 23 #endif 24 25 #define SAL__deref_in 26 #define SAL__deref_in_ecount(size) 27 #define SAL__deref_in_bcount(size) 28 29 #define SAL__deref_in_opt 30 #define SAL__deref_in_ecount_opt(size) 31 #define SAL__deref_in_bcount_opt(size) 32 33 #define SAL__deref_opt_in 34 #define SAL__deref_opt_in_ecount(size) 35 #define SAL__deref_opt_in_bcount(size) 36 37 #define SAL__deref_opt_in_opt 38 #define SAL__deref_opt_in_ecount_opt(size) 39 #define SAL__deref_opt_in_bcount_opt(size) 40 41 #define SAL__out_awcount(expr,size) 42 #define SAL__in_awcount(expr,size) 43 44 /* Renamed __null to SAL__null for avoiding private keyword conflicts between 45 gcc and MS world. */ 46 #define SAL__null 47 #define SAL__notnull 48 #define SAL__maybenull 49 #define SAL__readonly 50 #define SAL__notreadonly 51 #define SAL__maybereadonly 52 #define SAL__valid 53 #define SAL__notvalid 54 #define SAL__maybevalid 55 #define SAL__readableTo(extent) 56 #define SAL__elem_readableTo(size) 57 #define SAL__byte_readableTo(size) 58 #define SAL__writableTo(size) 59 #define SAL__elem_writableTo(size) 60 #define SAL__byte_writableTo(size) 61 #define SAL__deref 62 #define SAL__pre 63 #define SAL__post 64 #define SAL__precond(expr) 65 #define SAL__postcond(expr) 66 #define SAL__exceptthat 67 #define SAL__execeptthat 68 #define SAL__inner_success(expr) 69 #define SAL__inner_checkReturn 70 #define SAL__inner_typefix(ctype) 71 #define SAL__inner_override 72 #define SAL__inner_callback 73 #define SAL__inner_blocksOn(resource) 74 #define SAL__inner_fallthrough_dec 75 #define SAL__inner_fallthrough 76 #define __refparam 77 #define SAL__inner_control_entrypoint(category) 78 #define SAL__inner_data_entrypoint(category) 79 80 #define SAL__ecount(size) 81 #define SAL__bcount(size) 82 83 #define SAL__in 84 #define SAL__in_opt 85 #define SAL__in_nz 86 #define SAL__in_nz_opt 87 #define SAL__in_z 88 #define SAL__in_z_opt 89 #define SAL__in_ecount(size) 90 #define SAL__in_ecount_nz(size) 91 #define SAL__in_ecount_z(size) 92 #define SAL__in_bcount(size) 93 #define SAL__in_bcount_z(size) 94 #define SAL__in_bcount_nz(size) 95 #define SAL__in_ecount_opt(size) 96 #define SAL__in_bcount_opt(size) 97 #define SAL__in_ecount_z_opt(size) 98 #define SAL__in_bcount_z_opt(size) 99 #define SAL__in_ecount_nz_opt(size) 100 #define SAL__in_bcount_nz_opt(size) 101 102 #define SAL__out 103 #define SAL__out_ecount(size) 104 #define SAL__out_z 105 #define SAL__out_nz 106 #define SAL__out_nz_opt 107 #define SAL__out_z_opt 108 #define SAL__out_ecount_part(size,length) 109 #define SAL__out_ecount_full(size) 110 #define SAL__out_ecount_nz(size) 111 #define SAL__out_ecount_z(size) 112 #define SAL__out_ecount_part_z(size,length) 113 #define SAL__out_ecount_full_z(size) 114 #define SAL__out_bcount(size) 115 #define SAL__out_bcount_part(size,length) 116 #define SAL__out_bcount_full(size) 117 #define SAL__out_bcount_z(size) 118 #define SAL__out_bcount_part_z(size,length) 119 #define SAL__out_bcount_full_z(size) 120 #define SAL__out_bcount_nz(size) 121 122 #define SAL__inout 123 #define SAL__inout_ecount(size) 124 #define SAL__inout_bcount(size) 125 #define SAL__inout_ecount_part(size,length) 126 #define SAL__inout_bcount_part(size,length) 127 #define SAL__inout_ecount_full(size) 128 #define SAL__inout_bcount_full(size) 129 #define SAL__inout_z 130 #define SAL__inout_ecount_z(size) 131 #define SAL__inout_bcount_z(size) 132 #define SAL__inout_nz 133 #define SAL__inout_ecount_nz(size) 134 #define SAL__inout_bcount_nz(size) 135 #define SAL__ecount_opt(size) 136 #define SAL__bcount_opt(size) 137 #define SAL__out_opt 138 #define SAL__out_ecount_opt(size) 139 #define SAL__out_bcount_opt(size) 140 #define SAL__out_ecount_part_opt(size,length) 141 #define SAL__out_bcount_part_opt(size,length) 142 #define SAL__out_ecount_full_opt(size) 143 #define SAL__out_bcount_full_opt(size) 144 #define SAL__out_ecount_z_opt(size) 145 #define SAL__out_bcount_z_opt(size) 146 #define SAL__out_ecount_part_z_opt(size,length) 147 #define SAL__out_bcount_part_z_opt(size,length) 148 #define SAL__out_ecount_full_z_opt(size) 149 #define SAL__out_bcount_full_z_opt(size) 150 #define SAL__out_ecount_nz_opt(size) 151 #define SAL__out_bcount_nz_opt(size) 152 #define SAL__inout_opt 153 #define SAL__inout_ecount_opt(size) 154 #define SAL__inout_bcount_opt(size) 155 #define SAL__inout_ecount_part_opt(size,length) 156 #define SAL__inout_bcount_part_opt(size,length) 157 #define SAL__inout_ecount_full_opt(size) 158 #define SAL__inout_bcount_full_opt(size) 159 #define SAL__inout_z_opt 160 #define SAL__inout_ecount_z_opt(size) 161 #define SAL__inout_bcount_z_opt(size) 162 #define SAL__inout_nz_opt 163 #define SAL__inout_ecount_nz_opt(size) 164 #define SAL__inout_bcount_nz_opt(size) 165 #define SAL__deref_ecount(size) 166 #define SAL__deref_bcount(size) 167 #define SAL__deref_out 168 #define SAL__deref_out_ecount(size) 169 #define SAL__deref_out_bcount(size) 170 #define SAL__deref_out_ecount_part(size,length) 171 #define SAL__deref_out_bcount_part(size,length) 172 #define SAL__deref_out_ecount_full(size) 173 #define SAL__deref_out_bcount_full(size) 174 #define SAL__deref_out_z 175 #define SAL__deref_out_ecount_z(size) 176 #define SAL__deref_out_bcount_z(size) 177 #define SAL__deref_out_nz 178 #define SAL__deref_out_ecount_nz(size) 179 #define SAL__deref_out_bcount_nz(size) 180 #define SAL__deref_inout 181 #define SAL__deref_inout_ecount(size) 182 #define SAL__deref_inout_bcount(size) 183 #define SAL__deref_inout_ecount_part(size,length) 184 #define SAL__deref_inout_bcount_part(size,length) 185 #define SAL__deref_inout_ecount_full(size) 186 #define SAL__deref_inout_bcount_full(size) 187 #define SAL__deref_inout_z 188 #define SAL__deref_inout_ecount_z(size) 189 #define SAL__deref_inout_bcount_z(size) 190 #define SAL__deref_inout_nz 191 #define SAL__deref_inout_ecount_nz(size) 192 #define SAL__deref_inout_bcount_nz(size) 193 #define SAL__deref_ecount_opt(size) 194 #define SAL__deref_bcount_opt(size) 195 #define SAL__deref_out_opt 196 #define SAL__deref_out_ecount_opt(size) 197 #define SAL__deref_out_bcount_opt(size) 198 #define SAL__deref_out_ecount_part_opt(size,length) 199 #define SAL__deref_out_bcount_part_opt(size,length) 200 #define SAL__deref_out_ecount_full_opt(size) 201 #define SAL__deref_out_bcount_full_opt(size) 202 #define SAL__deref_out_z_opt 203 #define SAL__deref_out_ecount_z_opt(size) 204 #define SAL__deref_out_bcount_z_opt(size) 205 #define SAL__deref_out_nz_opt 206 #define SAL__deref_out_ecount_nz_opt(size) 207 #define SAL__deref_out_bcount_nz_opt(size) 208 #define SAL__deref_inout_opt 209 #define SAL__deref_inout_ecount_opt(size) 210 #define SAL__deref_inout_bcount_opt(size) 211 #define SAL__deref_inout_ecount_part_opt(size,length) 212 #define SAL__deref_inout_bcount_part_opt(size,length) 213 #define SAL__deref_inout_ecount_full_opt(size) 214 #define SAL__deref_inout_bcount_full_opt(size) 215 #define SAL__deref_inout_z_opt 216 #define SAL__deref_inout_ecount_z_opt(size) 217 #define SAL__deref_inout_bcount_z_opt(size) 218 #define SAL__deref_inout_nz_opt 219 #define SAL__deref_inout_ecount_nz_opt(size) 220 #define SAL__deref_inout_bcount_nz_opt(size) 221 #define SAL__deref_opt_ecount(size) 222 #define SAL__deref_opt_bcount(size) 223 #define SAL__deref_opt_out 224 #define SAL__deref_opt_out_z 225 #define SAL__deref_opt_out_ecount(size) 226 #define SAL__deref_opt_out_bcount(size) 227 #define SAL__deref_opt_out_ecount_part(size,length) 228 #define SAL__deref_opt_out_bcount_part(size,length) 229 #define SAL__deref_opt_out_ecount_full(size) 230 #define SAL__deref_opt_out_bcount_full(size) 231 #define SAL__deref_opt_inout 232 #define SAL__deref_opt_inout_ecount(size) 233 #define SAL__deref_opt_inout_bcount(size) 234 #define SAL__deref_opt_inout_ecount_part(size,length) 235 #define SAL__deref_opt_inout_bcount_part(size,length) 236 #define SAL__deref_opt_inout_ecount_full(size) 237 #define SAL__deref_opt_inout_bcount_full(size) 238 #define SAL__deref_opt_inout_z 239 #define SAL__deref_opt_inout_ecount_z(size) 240 #define SAL__deref_opt_inout_bcount_z(size) 241 #define SAL__deref_opt_inout_nz 242 #define SAL__deref_opt_inout_ecount_nz(size) 243 #define SAL__deref_opt_inout_bcount_nz(size) 244 #define SAL__deref_opt_ecount_opt(size) 245 #define SAL__deref_opt_bcount_opt(size) 246 #define SAL__deref_opt_out_opt 247 #define SAL__deref_opt_out_ecount_opt(size) 248 #define SAL__deref_opt_out_bcount_opt(size) 249 #define SAL__deref_opt_out_ecount_part_opt(size,length) 250 #define SAL__deref_opt_out_bcount_part_opt(size,length) 251 #define SAL__deref_opt_out_ecount_full_opt(size) 252 #define SAL__deref_opt_out_bcount_full_opt(size) 253 #define SAL__deref_opt_out_z_opt 254 #define SAL__deref_opt_out_ecount_z_opt(size) 255 #define SAL__deref_opt_out_bcount_z_opt(size) 256 #define SAL__deref_opt_out_nz_opt 257 #define SAL__deref_opt_out_ecount_nz_opt(size) 258 #define SAL__deref_opt_out_bcount_nz_opt(size) 259 #define SAL__deref_opt_inout_opt 260 #define SAL__deref_opt_inout_ecount_opt(size) 261 #define SAL__deref_opt_inout_bcount_opt(size) 262 #define SAL__deref_opt_inout_ecount_part_opt(size,length) 263 #define SAL__deref_opt_inout_bcount_part_opt(size,length) 264 #define SAL__deref_opt_inout_ecount_full_opt(size) 265 #define SAL__deref_opt_inout_bcount_full_opt(size) 266 #define SAL__deref_opt_inout_z_opt 267 #define SAL__deref_opt_inout_ecount_z_opt(size) 268 #define SAL__deref_opt_inout_bcount_z_opt(size) 269 #define SAL__deref_opt_inout_nz_opt 270 #define SAL__deref_opt_inout_ecount_nz_opt(size) 271 #define SAL__deref_opt_inout_bcount_nz_opt(size) 272 273 #define SAL__success(expr) 274 #define SAL__nullterminated 275 #define SAL__nullnullterminated 276 #define SAL__reserved 277 #define SAL__checkReturn 278 #define SAL__typefix(ctype) 279 #define SAL__override 280 #define SAL__callback 281 #define SAL__format_string 282 #define SAL__blocksOn(resource) 283 #define SAL__control_entrypoint(category) 284 #define SAL__data_entrypoint(category) 285 286 #define __encoded_pointer 287 288 #ifndef __fallthrough 289 #define __fallthrough 290 #endif 291 292 #ifndef __analysis_assume 293 #define __analysis_assume(expr) 294 #endif 295 296 #ifndef __CLR_OR_THIS_CALL 297 #define __CLR_OR_THIS_CALL 298 #endif 299 300 #ifndef __CLRCALL_OR_CDECL 301 #define __CLRCALL_OR_CDECL __cdecl 302 #endif 303 304 #ifndef __STDC_WANT_SECURE_LIB__ 305 #define __STDC_WANT_SECURE_LIB__ 0 306 #endif 307 308 #ifndef _CRT_SECURE_NO_DEPRECATE 309 #define _CRT_SECURE_NO_DEPRECATE 310 #endif 311 312 #ifndef RC_INVOKED 313 #ifndef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 314 #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 0 315 #endif 316 #ifndef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT 317 #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT 0 318 #endif 319 #ifndef _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES 320 #define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES 0 321 #endif 322 #endif 323 324 #ifndef DECLSPEC_ADDRSAFE 325 #if (_MSC_VER >= 1200) && (defined(_M_ALPHA) || defined(_M_AXP64)) 326 #define DECLSPEC_ADDRSAFE __declspec(address_safe) 327 #else 328 #define DECLSPEC_ADDRSAFE 329 #endif 330 #endif /* DECLSPEC_ADDRSAFE */ 331 332 #ifdef __cplusplus 333 } 334 #endif 335 336 #include <driverspecs.h> 337 338 #endif 339