1*c2c66affSColin Finck /* 2*c2c66affSColin Finck * sal_old.h 3*c2c66affSColin Finck * 4*c2c66affSColin Finck * Old style Standard Annotation Language (SAL) definitions 5*c2c66affSColin Finck * 6*c2c66affSColin Finck * This file is part of the ReactOS PSDK package. 7*c2c66affSColin Finck * 8*c2c66affSColin Finck * Contributors: 9*c2c66affSColin Finck * Timo Kreuzer (timo.kreuzer@reactos.org) 10*c2c66affSColin Finck * 11*c2c66affSColin Finck * THIS SOFTWARE IS NOT COPYRIGHTED 12*c2c66affSColin Finck * 13*c2c66affSColin Finck * This source code is offered for use in the public domain. You may 14*c2c66affSColin Finck * use, modify or distribute it freely. 15*c2c66affSColin Finck * 16*c2c66affSColin Finck * This code is distributed in the hope that it will be useful but 17*c2c66affSColin Finck * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 18*c2c66affSColin Finck * DISCLAIMED. This includes but is not limited to warranties of 19*c2c66affSColin Finck * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 20*c2c66affSColin Finck * 21*c2c66affSColin Finck */ 22*c2c66affSColin Finck 23*c2c66affSColin Finck #pragma once 24*c2c66affSColin Finck #define __specstrings 25*c2c66affSColin Finck 26*c2c66affSColin Finck #ifdef __cplusplus 27*c2c66affSColin Finck #ifndef __nothrow 28*c2c66affSColin Finck #define __nothrow __declspec(nothrow) 29*c2c66affSColin Finck #endif 30*c2c66affSColin Finck #else 31*c2c66affSColin Finck #ifndef __nothrow 32*c2c66affSColin Finck #define __nothrow 33*c2c66affSColin Finck #endif 34*c2c66affSColin Finck #endif 35*c2c66affSColin Finck 36*c2c66affSColin Finck 37*c2c66affSColin Finck #if defined(_PREFAST_) && !defined(__midl) 38*c2c66affSColin Finck 39*c2c66affSColin Finck #define SPECSTRINGIZE(x) #x 40*c2c66affSColin Finck #define __byte_readableTo(size) __declspec("SAL_readableTo(byteCount("SPECSTRINGIZE(size)"))") 41*c2c66affSColin Finck #define __byte_writableTo(size) __declspec("SAL_writableTo(byteCount("SPECSTRINGIZE(size)"))") 42*c2c66affSColin Finck #define __deref __declspec("SAL_deref") 43*c2c66affSColin Finck #define __elem_readableTo(size) __declspec("SAL_readableTo(elementCount("SPECSTRINGIZE(size)"))") 44*c2c66affSColin Finck #define __elem_writableTo(size) __declspec("SAL_writableTo(elementCount("SPECSTRINGIZE(size)"))") 45*c2c66affSColin Finck #define __exceptthat __declspec("SAL_except") 46*c2c66affSColin Finck #define __execeptthat __exceptthat 47*c2c66affSColin Finck #define __inner_blocksOn(resource) __declspec("SAL_blocksOn("SPECSTRINGIZE(resource)")") 48*c2c66affSColin Finck #define __inner_checkReturn __declspec("SAL_checkReturn") 49*c2c66affSColin Finck #define __inner_control_entrypoint(category) __declspec("SAL_entrypoint(controlEntry, "SPECSTRINGIZE(category)")") 50*c2c66affSColin Finck #define __inner_data_entrypoint(category) __declspec("SAL_entrypoint(dataEntry, "SPECSTRINGIZE(category)")") 51*c2c66affSColin Finck #define __inner_fallthrough __FallThrough(); 52*c2c66affSColin Finck #define __inner_fallthrough_dec __inline __nothrow void __FallThrough() {} 53*c2c66affSColin Finck #define __inner_override __declspec("__override") 54*c2c66affSColin Finck #define __inner_success(expr) __declspec("SAL_success("SPECSTRINGIZE(expr)")") 55*c2c66affSColin Finck #define __maybenull __declspec("SAL_maybenull") 56*c2c66affSColin Finck #define __maybereadonly __declspec("SAL_maybereadonly") 57*c2c66affSColin Finck #define __maybevalid __declspec("SAL_maybevalid") 58*c2c66affSColin Finck #define __notnull __declspec("SAL_notnull") 59*c2c66affSColin Finck #define __notreadonly __declspec("SAL_notreadonly") 60*c2c66affSColin Finck #define __notvalid __declspec("SAL_notvalid") 61*c2c66affSColin Finck #define __null __declspec("SAL_null") 62*c2c66affSColin Finck #define __post __declspec("SAL_post") 63*c2c66affSColin Finck #define __postcond(expr) __post 64*c2c66affSColin Finck #define __pre __declspec("SAL_pre") 65*c2c66affSColin Finck #define __precond(expr) __pre 66*c2c66affSColin Finck #define __readableTo(extent) __declspec("SAL_readableTo("SPECSTRINGIZE(extent)")") 67*c2c66affSColin Finck #define __readonly __declspec("SAL_readonly") 68*c2c66affSColin Finck #define __refparam __deref __notreadonly 69*c2c66affSColin Finck #define __valid __declspec("SAL_valid") 70*c2c66affSColin Finck #define __writableTo(size) __declspec("SAL_writableTo("SPECSTRINGIZE(size)")") 71*c2c66affSColin Finck 72*c2c66affSColin Finck #else 73*c2c66affSColin Finck 74*c2c66affSColin Finck #define __byte_readableTo(size) 75*c2c66affSColin Finck #define __byte_writableTo(size) 76*c2c66affSColin Finck #define __deref 77*c2c66affSColin Finck #define __elem_readableTo(size) 78*c2c66affSColin Finck #define __elem_writableTo(size) 79*c2c66affSColin Finck #define __exceptthat 80*c2c66affSColin Finck #define __execeptthat 81*c2c66affSColin Finck #define __inner_blocksOn(resource) 82*c2c66affSColin Finck #define __inner_checkReturn 83*c2c66affSColin Finck #define __inner_control_entrypoint(category) 84*c2c66affSColin Finck #define __inner_data_entrypoint(category) 85*c2c66affSColin Finck #define __inner_fallthrough 86*c2c66affSColin Finck #define __inner_fallthrough_dec 87*c2c66affSColin Finck #define __inner_override 88*c2c66affSColin Finck #define __inner_success(expr) 89*c2c66affSColin Finck #define __inner_typefix(ctype) 90*c2c66affSColin Finck #define __maybenull 91*c2c66affSColin Finck #define __maybereadonly 92*c2c66affSColin Finck #define __maybevalid 93*c2c66affSColin Finck #define __notnull 94*c2c66affSColin Finck #define __notreadonly 95*c2c66affSColin Finck #define __notvalid 96*c2c66affSColin Finck #define __null 97*c2c66affSColin Finck #define __post 98*c2c66affSColin Finck #define __postcond(expr) 99*c2c66affSColin Finck #define __pre 100*c2c66affSColin Finck #define __precond(expr) 101*c2c66affSColin Finck #define __readableTo(extent) 102*c2c66affSColin Finck #define __readonly 103*c2c66affSColin Finck #define __refparam 104*c2c66affSColin Finck #define __valid 105*c2c66affSColin Finck #define __writableTo(size) 106*c2c66affSColin Finck 107*c2c66affSColin Finck #endif /* defined(_PREFAST_) && !defined(__midl) */ 108*c2c66affSColin Finck 109*c2c66affSColin Finck #define __bcount_opt(size) __bcount(size) __exceptthat __maybenull 110*c2c66affSColin Finck #define __bcount(size) __notnull __byte_writableTo(size) 111*c2c66affSColin Finck #define __blocksOn(resource) __inner_blocksOn(resource) 112*c2c66affSColin Finck #define __callback __inner_callback 113*c2c66affSColin Finck #define __checkReturn __inner_checkReturn 114*c2c66affSColin Finck #define __control_entrypoint(category) __inner_control_entrypoint(category) 115*c2c66affSColin Finck #define __data_entrypoint(category) __inner_data_entrypoint(category) 116*c2c66affSColin Finck #define __deref_bcount_opt(size) __deref_bcount(size) __post __deref __exceptthat __maybenull 117*c2c66affSColin Finck #define __deref_bcount(size) __ecount(1) __post __elem_readableTo(1) __post __deref __notnull __post __deref __byte_writableTo(size) 118*c2c66affSColin Finck #define __deref_ecount_opt(size) __deref_ecount(size) __post __deref __exceptthat __maybenull 119*c2c66affSColin Finck #define __deref_ecount(size) __ecount(1) __post __elem_readableTo(1) __post __deref __notnull __post __deref __elem_writableTo(size) 120*c2c66affSColin Finck #define __deref_inout __notnull __elem_readableTo(1) __pre __deref __valid __post __deref __valid __refparam 121*c2c66affSColin Finck #define __deref_inout_bcount_full_opt(size) __deref_inout_bcount_full(size) __pre __deref __exceptthat __maybenull __post __deref __exceptthat __maybenull 122*c2c66affSColin Finck #define __deref_inout_bcount_full(size) __deref_inout_bcount_part(size,size) 123*c2c66affSColin Finck #define __deref_inout_bcount_nz_opt(size) __deref_inout_bcount_opt(size) 124*c2c66affSColin Finck #define __deref_inout_bcount_nz(size) __deref_inout_ecount(size) 125*c2c66affSColin Finck #define __deref_inout_bcount_opt(size) __deref_inout_bcount(size) __pre __deref __exceptthat __maybenull __post __deref __exceptthat __maybenull 126*c2c66affSColin Finck #define __deref_inout_bcount_part_opt(size,length) __deref_inout_bcount_part(size,length) __pre __deref __exceptthat __maybenull __post __deref __exceptthat __maybenull 127*c2c66affSColin Finck #define __deref_inout_bcount_part(size,length) __deref_inout_bcount(size) __pre __deref __byte_readableTo(length) __post __deref __byte_readableTo(length) 128*c2c66affSColin Finck #define __deref_inout_bcount_z_opt(size) __deref_inout_bcount_opt(size) __pre __deref __nullterminated __post __deref __nullterminated 129*c2c66affSColin Finck #define __deref_inout_bcount_z(size) __deref_inout_bcount(size) __pre __deref __nullterminated __post __deref __nullterminated 130*c2c66affSColin Finck #define __deref_inout_bcount(size) __deref_inout __pre __deref __byte_writableTo(size) __post __deref __byte_writableTo(size) 131*c2c66affSColin Finck #define __deref_inout_ecount_full_opt(size) __deref_inout_ecount_full(size) __pre __deref __exceptthat __maybenull __post __deref __exceptthat __maybenull 132*c2c66affSColin Finck #define __deref_inout_ecount_full(size) __deref_inout_ecount_part(size,size) 133*c2c66affSColin Finck #define __deref_inout_ecount_nz_opt(size) __deref_inout_ecount_opt(size) 134*c2c66affSColin Finck #define __deref_inout_ecount_nz(size) __deref_inout_ecount(size) 135*c2c66affSColin Finck #define __deref_inout_ecount_opt(size) __deref_inout_ecount(size) __pre __deref __exceptthat __maybenull __post __deref __exceptthat __maybenull 136*c2c66affSColin Finck #define __deref_inout_ecount_part_opt(size,length) __deref_inout_ecount_part(size,length) __pre __deref __exceptthat __maybenull __post __deref __exceptthat __maybenull 137*c2c66affSColin Finck #define __deref_inout_ecount_part(size,length) __deref_inout_ecount(size) __pre __deref __elem_readableTo(length) __post __deref __elem_readableTo(length) 138*c2c66affSColin Finck #define __deref_inout_ecount_z_opt(size) __deref_inout_ecount_opt(size) __pre __deref __nullterminated __post __deref __nullterminated 139*c2c66affSColin Finck #define __deref_inout_ecount_z(size) __deref_inout_ecount(size) __pre __deref __nullterminated __post __deref __nullterminated 140*c2c66affSColin Finck #define __deref_inout_ecount(size) __deref_inout __pre __deref __elem_writableTo(size) __post __deref __elem_writableTo(size) 141*c2c66affSColin Finck #define __deref_inout_nz __deref_inout 142*c2c66affSColin Finck #define __deref_inout_nz_opt __deref_inout_opt 143*c2c66affSColin Finck #define __deref_inout_opt __deref_inout __pre __deref __exceptthat __maybenull __post __deref __exceptthat __maybenull 144*c2c66affSColin Finck #define __deref_inout_z __deref_inout __pre __deref __nullterminated __post __deref __nullterminated 145*c2c66affSColin Finck #define __deref_inout_z_opt __deref_inout_opt __pre __deref __nullterminated __post __deref __nullterminated 146*c2c66affSColin Finck #define __deref_opt_bcount_opt(size) __deref_bcount_opt(size) __exceptthat __maybenull 147*c2c66affSColin Finck #define __deref_opt_bcount(size) __deref_bcount(size) __exceptthat __maybenull 148*c2c66affSColin Finck #define __deref_opt_ecount_opt(size) __deref_ecount_opt(size) __exceptthat __maybenull 149*c2c66affSColin Finck #define __deref_opt_ecount(size) __deref_ecount(size) __exceptthat __maybenull 150*c2c66affSColin Finck #define __deref_opt_inout __deref_inout __exceptthat __maybenull 151*c2c66affSColin Finck #define __deref_opt_inout_bcount_full_opt(size) __deref_inout_bcount_full_opt(size) __exceptthat __maybenull 152*c2c66affSColin Finck #define __deref_opt_inout_bcount_full(size) __deref_inout_bcount_full(size) __exceptthat __maybenull 153*c2c66affSColin Finck #define __deref_opt_inout_bcount_nz_opt(size) __deref_opt_inout_bcount_opt(size) 154*c2c66affSColin Finck #define __deref_opt_inout_bcount_nz(size) __deref_opt_inout_bcount(size) 155*c2c66affSColin Finck #define __deref_opt_inout_bcount_opt(size) __deref_inout_bcount_opt(size) __exceptthat __maybenull 156*c2c66affSColin Finck #define __deref_opt_inout_bcount_part_opt(size,length) __deref_inout_bcount_part_opt(size,length) __exceptthat __maybenull 157*c2c66affSColin Finck #define __deref_opt_inout_bcount_part(size,length) __deref_inout_bcount_part(size,length) __exceptthat __maybenull 158*c2c66affSColin Finck #define __deref_opt_inout_bcount_z_opt(size) __deref_opt_inout_bcount_opt(size) __pre __deref __nullterminated __post __deref __nullterminated 159*c2c66affSColin Finck #define __deref_opt_inout_bcount_z(size) __deref_opt_inout_bcount(size) __pre __deref __nullterminated __post __deref __nullterminated 160*c2c66affSColin Finck #define __deref_opt_inout_bcount(size) __deref_inout_bcount(size) __exceptthat __maybenull 161*c2c66affSColin Finck #define __deref_opt_inout_ecount_full_opt(size) __deref_inout_ecount_full_opt(size) __exceptthat __maybenull 162*c2c66affSColin Finck #define __deref_opt_inout_ecount_full(size) __deref_inout_ecount_full(size) __exceptthat __maybenull 163*c2c66affSColin Finck #define __deref_opt_inout_ecount_nz_opt(size) __deref_opt_inout_ecount_opt(size) 164*c2c66affSColin Finck #define __deref_opt_inout_ecount_nz(size) __deref_opt_inout_ecount(size) 165*c2c66affSColin Finck #define __deref_opt_inout_ecount_opt(size) __deref_inout_ecount_opt(size) __exceptthat __maybenull 166*c2c66affSColin Finck #define __deref_opt_inout_ecount_part_opt(size,length) __deref_inout_ecount_part_opt(size,length) __exceptthat __maybenull 167*c2c66affSColin Finck #define __deref_opt_inout_ecount_part(size,length) __deref_inout_ecount_part(size,length) __exceptthat __maybenull 168*c2c66affSColin Finck #define __deref_opt_inout_ecount_z_opt(size) __deref_opt_inout_ecount_opt(size) __pre __deref __nullterminated __post __deref __nullterminated 169*c2c66affSColin Finck #define __deref_opt_inout_ecount_z(size) __deref_opt_inout_ecount(size) __pre __deref __nullterminated __post __deref __nullterminated 170*c2c66affSColin Finck #define __deref_opt_inout_ecount(size) __deref_inout_ecount(size) __exceptthat __maybenull 171*c2c66affSColin Finck #define __deref_opt_inout_nz __deref_opt_inout 172*c2c66affSColin Finck #define __deref_opt_inout_nz_opt __deref_opt_inout_opt 173*c2c66affSColin Finck #define __deref_opt_inout_opt __deref_inout_opt __exceptthat __maybenull 174*c2c66affSColin Finck #define __deref_opt_inout_z __deref_opt_inout __pre __deref __nullterminated __post __deref __nullterminated 175*c2c66affSColin Finck #define __deref_opt_inout_z_opt __deref_opt_inout_opt __pre __deref __nullterminated __post __deref __nullterminated 176*c2c66affSColin Finck #define __deref_opt_out __deref_out __exceptthat __maybenull 177*c2c66affSColin Finck #define __deref_opt_out_bcount_full_opt(size) __deref_out_bcount_full_opt(size) __exceptthat __maybenull 178*c2c66affSColin Finck #define __deref_opt_out_bcount_full(size) __deref_out_bcount_full(size) __exceptthat __maybenull 179*c2c66affSColin Finck #define __deref_opt_out_bcount_nz_opt(size) __deref_opt_out_bcount_opt(size) 180*c2c66affSColin Finck #define __deref_opt_out_bcount_opt(size) __deref_out_bcount_opt(size) __exceptthat __maybenull 181*c2c66affSColin Finck #define __deref_opt_out_bcount_part_opt(size,length) __deref_out_bcount_part_opt(size,length) __exceptthat __maybenull 182*c2c66affSColin Finck #define __deref_opt_out_bcount_part(size,length) __deref_out_bcount_part(size,length) __exceptthat __maybenull 183*c2c66affSColin Finck #define __deref_opt_out_bcount_z_opt(size) __deref_opt_out_bcount_opt(size) __post __deref __nullterminated 184*c2c66affSColin Finck #define __deref_opt_out_bcount(size) __deref_out_bcount(size) __exceptthat __maybenull 185*c2c66affSColin Finck #define __deref_opt_out_ecount_full_opt(size) __deref_out_ecount_full_opt(size) __exceptthat __maybenull 186*c2c66affSColin Finck #define __deref_opt_out_ecount_full(size) __deref_out_ecount_full(size) __exceptthat __maybenull 187*c2c66affSColin Finck #define __deref_opt_out_ecount_nz_opt(size) __deref_opt_out_ecount_opt(size) 188*c2c66affSColin Finck #define __deref_opt_out_ecount_opt(size) __deref_out_ecount_opt(size) __exceptthat __maybenull 189*c2c66affSColin Finck #define __deref_opt_out_ecount_part_opt(size,length) __deref_out_ecount_part_opt(size,length) __exceptthat __maybenull 190*c2c66affSColin Finck #define __deref_opt_out_ecount_part(size,length) __deref_out_ecount_part(size,length) __exceptthat __maybenull 191*c2c66affSColin Finck #define __deref_opt_out_ecount_z_opt(size) __deref_opt_out_ecount_opt(size) __post __deref __nullterminated 192*c2c66affSColin Finck #define __deref_opt_out_ecount(size) __deref_out_ecount(size) __exceptthat __maybenull 193*c2c66affSColin Finck #define __deref_opt_out_nz_opt __deref_opt_out_opt 194*c2c66affSColin Finck #define __deref_opt_out_opt __deref_out_opt __exceptthat __maybenull 195*c2c66affSColin Finck #define __deref_opt_out_z __deref_opt_out __post __deref __nullterminated 196*c2c66affSColin Finck #define __deref_opt_out_z_opt __post __deref __valid __refparam __exceptthat __maybenull __pre __deref __exceptthat __maybenull __post __deref __exceptthat __maybenull __post __deref __nullterminated 197*c2c66affSColin Finck #define __deref_out __deref_ecount(1) __post __deref __valid __refparam 198*c2c66affSColin Finck #define __deref_out_bcount_full_opt(size) __deref_out_bcount_full(size) __post __deref __exceptthat __maybenull 199*c2c66affSColin Finck #define __deref_out_bcount_full(size) __deref_out_bcount_part(size,size) 200*c2c66affSColin Finck #define __deref_out_bcount_nz_opt(size) __deref_out_bcount_opt(size) 201*c2c66affSColin Finck #define __deref_out_bcount_nz(size) __deref_out_ecount(size) 202*c2c66affSColin Finck #define __deref_out_bcount_opt(size) __deref_out_bcount(size) __post __deref __exceptthat __maybenull 203*c2c66affSColin Finck #define __deref_out_bcount_part_opt(size,length) __deref_out_bcount_part(size,length) __post __deref __exceptthat __maybenull 204*c2c66affSColin Finck #define __deref_out_bcount_part(size,length) __deref_out_bcount(size) __post __deref __byte_readableTo(length) 205*c2c66affSColin Finck #define __deref_out_bcount_z_opt(size) __deref_out_bcount_opt(size) __post __deref __nullterminated 206*c2c66affSColin Finck #define __deref_out_bcount_z(size) __deref_out_ecount(size) __post __deref __nullterminated 207*c2c66affSColin Finck #define __deref_out_bcount(size) __deref_bcount(size) __post __deref __valid __refparam 208*c2c66affSColin Finck #define __deref_out_ecount_full_opt(size) __deref_out_ecount_full(size) __post __deref __exceptthat __maybenull 209*c2c66affSColin Finck #define __deref_out_ecount_full(size) __deref_out_ecount_part(size,size) 210*c2c66affSColin Finck #define __deref_out_ecount_nz_opt(size) __deref_out_ecount_opt(size) 211*c2c66affSColin Finck #define __deref_out_ecount_nz(size) __deref_out_ecount(size) 212*c2c66affSColin Finck #define __deref_out_ecount_opt(size) __deref_out_ecount(size) __post __deref __exceptthat __maybenull 213*c2c66affSColin Finck #define __deref_out_ecount_part_opt(size,length) __deref_out_ecount_part(size,length) __post __deref __exceptthat __maybenull 214*c2c66affSColin Finck #define __deref_out_ecount_part(size,length) __deref_out_ecount(size) __post __deref __elem_readableTo(length) 215*c2c66affSColin Finck #define __deref_out_ecount_z_opt(size) __deref_out_ecount_opt(size) __post __deref __nullterminated 216*c2c66affSColin Finck #define __deref_out_ecount_z(size) __deref_out_ecount(size) __post __deref __nullterminated 217*c2c66affSColin Finck #define __deref_out_ecount(size) __deref_ecount(size) __post __deref __valid __refparam 218*c2c66affSColin Finck #define __deref_out_nz __deref_out 219*c2c66affSColin Finck #define __deref_out_nz_opt __deref_out_opt 220*c2c66affSColin Finck #define __deref_out_range(x,y) /* FIXME */ 221*c2c66affSColin Finck #define __deref_out_opt __deref_out __post __deref __exceptthat __maybenull 222*c2c66affSColin Finck #define __deref_out_z __post __deref __valid __refparam __post __deref __nullterminated 223*c2c66affSColin Finck #define __deref_out_z_opt __post __deref __valid __refparam __execeptthat __maybenull __post __deref __nullterminated 224*c2c66affSColin Finck #define __ecount_opt(size) __ecount(size) __exceptthat __maybenull 225*c2c66affSColin Finck #define __ecount(size) __notnull __elem_writableTo(size) 226*c2c66affSColin Finck #define __format_string 227*c2c66affSColin Finck #define __in __pre __valid __pre __deref __readonly 228*c2c66affSColin Finck #define __in_bcount_nz_opt(size) __in_bcount_opt(size) 229*c2c66affSColin Finck #define __in_bcount_nz(size) __in_bcount(size) 230*c2c66affSColin Finck #define __in_bcount_opt(size) __in_bcount(size) __exceptthat __maybenull 231*c2c66affSColin Finck #define __in_bcount_z_opt(size) __in_bcount_opt(size) __pre __nullterminated 232*c2c66affSColin Finck #define __in_bcount_z(size) __in_bcount(size) __pre __nullterminated 233*c2c66affSColin Finck #define __in_bcount(size) __in __pre __byte_readableTo(size) 234*c2c66affSColin Finck #define __in_ecount_nz_opt(size) __in_ecount_opt(size) 235*c2c66affSColin Finck #define __in_ecount_nz(size) __in_ecount(size) 236*c2c66affSColin Finck #define __in_ecount_opt(size) __in_ecount(size) __exceptthat __maybenull 237*c2c66affSColin Finck #define __in_ecount_z_opt(size) __in_ecount_opt(size) __pre __nullterminated 238*c2c66affSColin Finck #define __in_ecount_z(size) __in_ecount(size) __pre __nullterminated 239*c2c66affSColin Finck #define __in_ecount(size) __in __pre __elem_readableTo(size) 240*c2c66affSColin Finck #define __in_nz __in 241*c2c66affSColin Finck #define __in_nz_opt __in_opt 242*c2c66affSColin Finck #define __in_opt __in __exceptthat __maybenull 243*c2c66affSColin Finck #define __in_z __in __pre __nullterminated 244*c2c66affSColin Finck #define __in_z_opt __in_opt __pre __nullterminated 245*c2c66affSColin Finck #define __inout __pre __valid __post __valid __refparam 246*c2c66affSColin Finck #define __inout_bcount_full_opt(size) __inout_bcount_full(size) __exceptthat __maybenull 247*c2c66affSColin Finck #define __inout_bcount_full(size) __inout_bcount_part(size,size) 248*c2c66affSColin Finck #define __inout_bcount_nz_opt(size) __inout_bcount_opt(size) 249*c2c66affSColin Finck #define __inout_bcount_nz(size) __inout_bcount(size) 250*c2c66affSColin Finck #define __inout_bcount_opt(size) __inout_bcount(size) __exceptthat __maybenull 251*c2c66affSColin Finck #define __inout_bcount_part_opt(size,length) __inout_bcount_part(size,length) __exceptthat __maybenull 252*c2c66affSColin Finck #define __inout_bcount_part(size,length) __out_bcount_part(size,length) __pre __valid __pre __byte_readableTo(length) 253*c2c66affSColin Finck #define __inout_bcount_z_opt(size) __inout_bcount_opt(size) 254*c2c66affSColin Finck #define __inout_bcount_z(size) __inout_bcount(size) __pre __nullterminated __post __nullterminated 255*c2c66affSColin Finck #define __inout_bcount(size) __out_bcount(size) __pre __valid 256*c2c66affSColin Finck #define __inout_ecount_full_opt(size) __inout_ecount_full(size) __exceptthat __maybenull 257*c2c66affSColin Finck #define __inout_ecount_full(size) __inout_ecount_part(size,size) 258*c2c66affSColin Finck #define __inout_ecount_nz_opt(size) __inout_ecount_opt(size) 259*c2c66affSColin Finck #define __inout_ecount_nz(size) __inout_ecount(size) 260*c2c66affSColin Finck #define __inout_ecount_opt(size) __inout_ecount(size) __exceptthat __maybenull 261*c2c66affSColin Finck #define __inout_ecount_part_opt(size,length) __inout_ecount_part(size,length) __exceptthat __maybenull 262*c2c66affSColin Finck #define __inout_ecount_part(size,length) __out_ecount_part(size,length) __pre __valid __pre __elem_readableTo(length) 263*c2c66affSColin Finck #define __inout_ecount_z_opt(size) __inout_ecount_opt(size) __pre __nullterminated __post __nullterminated 264*c2c66affSColin Finck #define __inout_ecount_z(size) __inout_ecount(size) __pre __nullterminated __post __nullterminated 265*c2c66affSColin Finck #define __inout_ecount(size) __out_ecount(size) __pre __valid 266*c2c66affSColin Finck #define __inout_nz __inout 267*c2c66affSColin Finck #define __inout_nz_opt __inout_opt 268*c2c66affSColin Finck #define __inout_opt __inout __exceptthat __maybenull 269*c2c66affSColin Finck #define __inout_z __inout __pre __nullterminated __post __nullterminated 270*c2c66affSColin Finck #define __inout_z_opt __inout_opt __pre __nullterminated __post __nullterminated 271*c2c66affSColin Finck #define __nullnullterminated 272*c2c66affSColin Finck #define __nullterminated __readableTo(sentinel(0)) 273*c2c66affSColin Finck #define __out __ecount(1) __post __valid __refparam 274*c2c66affSColin Finck #define __out_bcount_full_opt(size) __out_bcount_full(size) __exceptthat __maybenull 275*c2c66affSColin Finck #define __out_bcount_full_z_opt(size) __out_bcount_full_opt(size) __post __nullterminated 276*c2c66affSColin Finck #define __out_bcount_full_z(size) __out_bcount_full(size) __post __nullterminated 277*c2c66affSColin Finck #define __out_bcount_full(size) __out_bcount_part(size,size) 278*c2c66affSColin Finck #define __out_bcount_nz_opt(size) __out_bcount_opt(size) __post __nullterminated 279*c2c66affSColin Finck #define __out_bcount_nz(size) __bcount(size) __post __valid __refparam 280*c2c66affSColin Finck #define __out_bcount_opt(size) __out_bcount(size) __exceptthat __maybenull 281*c2c66affSColin Finck #define __out_bcount_part_opt(size,length) __out_bcount_part(size,length) __exceptthat __maybenull 282*c2c66affSColin Finck #define __out_bcount_part_z_opt(size,length) __out_bcount_part_opt(size,length) __post __nullterminated 283*c2c66affSColin Finck #define __out_bcount_part_z(size,length) __out_bcount_part(size,length) __post __nullterminated 284*c2c66affSColin Finck #define __out_bcount_part(size,length) __out_bcount(size) __post __byte_readableTo(length) 285*c2c66affSColin Finck #define __out_bcount_z_opt(size) __out_bcount_opt(size) __post __nullterminated 286*c2c66affSColin Finck #define __out_bcount_z(size) __bcount(size) __post __valid __refparam __post __nullterminated 287*c2c66affSColin Finck #define __out_bcount(size) __bcount(size) __post __valid __refparam 288*c2c66affSColin Finck #define __out_ecount_full_opt(size) __out_ecount_full(size) __exceptthat __maybenull 289*c2c66affSColin Finck #define __out_ecount_full_z_opt(size) __out_ecount_full_opt(size) __post __nullterminated 290*c2c66affSColin Finck #define __out_ecount_full_z(size) __out_ecount_full(size) __post __nullterminated 291*c2c66affSColin Finck #define __out_ecount_full(size) __out_ecount_part(size,size) 292*c2c66affSColin Finck #define __out_ecount_nz_opt(size) __out_ecount_opt(size) __post __nullterminated 293*c2c66affSColin Finck #define __out_ecount_nz(size) __ecount(size) __post __valid __refparam 294*c2c66affSColin Finck #define __out_ecount_opt(size) __out_ecount(size) __exceptthat __maybenull 295*c2c66affSColin Finck #define __out_ecount_part_opt(size,length) __out_ecount_part(size,length) __exceptthat __maybenull 296*c2c66affSColin Finck #define __out_ecount_part_z_opt(size,length) __out_ecount_part_opt(size,length) __post __nullterminated 297*c2c66affSColin Finck #define __out_ecount_part_z(size,length) __out_ecount_part(size,length) __post __nullterminated 298*c2c66affSColin Finck #define __out_ecount_part(size,length) __out_ecount(size) __post __elem_readableTo(length) 299*c2c66affSColin Finck #define __out_ecount_z_opt(size) __out_ecount_opt(size) __post __nullterminated 300*c2c66affSColin Finck #define __out_ecount_z(size) __ecount(size) __post __valid __refparam __post __nullterminated 301*c2c66affSColin Finck #define __out_ecount(size) __ecount(size) __post __valid __refparam 302*c2c66affSColin Finck #define __out_nz __post __valid __refparam __post 303*c2c66affSColin Finck #define __out_nz_opt __post __valid __refparam __post __exceptthat __maybenull 304*c2c66affSColin Finck #define __out_opt __out __exceptthat __maybenull 305*c2c66affSColin Finck #define __out_z __post __valid __refparam __post __nullterminated 306*c2c66affSColin Finck #define __out_z_opt __post __valid __refparam __post __nullterminated __exceptthat __maybenull 307*c2c66affSColin Finck #define __override __inner_override 308*c2c66affSColin Finck #define __reserved __pre __null 309*c2c66affSColin Finck #define __success(expr) __inner_success(expr) 310*c2c66affSColin Finck #define __typefix(ctype) __inner_typefix(ctype) 311*c2c66affSColin Finck 312*c2c66affSColin Finck #ifndef __fallthrough 313*c2c66affSColin Finck __inner_fallthrough_dec 314*c2c66affSColin Finck #define __fallthrough __inner_fallthrough 315*c2c66affSColin Finck #endif 316*c2c66affSColin Finck 317