| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607 |
- /**
- * Salieri
- * v1
- *
- * Salieri is a header which contains definitions for the Microsoft
- * source-code annotation language (SAL). It is *not* an
- * implementation of SAL; that's for compilers and static analyzers.
- * For the most part we just define macros to nothing.
- *
- * The goal is to allow projects to use SAL without creating a hard
- * dependency on it (i.e., you can still use compilers other than
- * MSVC). Simply include `salieri.h`, which you can/should distribute
- * with your code, instead of `<sal.h>`.
- *
- * Multiple copies of Salieri can be included safely, even different
- * versions. Including a newer version will simiply replace older
- * definitions with newer ones, and including older versions will have
- * no effect.
- *
- * I don't think anything in here is copyrightable, but just in case:
- *
- * To the extent possible under law, the author(s) have dedicated
- * all copyright and related and neighboring rights to this software
- * to the public domain worldwide. This software is distributed
- * without any warranty.
- *
- * For details, see <http://creativecommons.org/publicdomain/zero/1.0/>.
- */
- #if !defined(SALIERI_VERSION) || (SALIERI_VERSION < 1)
- /* TODO: figure out when <sal.h> first appeared. */
- #if defined(_MSC_VER)
- # include <sal.h>
- #endif
- /* The main concern for the implementation is that we don't want to
- * replace annotations from <sal.h>, but we *do* want to replace
- * annotations from older versions of Salieri. To keep track of
- * everything, when we (Salieri) define a SAL annotation, we also
- * define SALIERI_DEFINED_${annotation} (with the leading and trailing
- * '-' stripped). Then, before redefining an annotation macro we
- * check to make sure SALIERI_DEFINED_${annontation} is defined.
- *
- * This means you can safely use Salieri in a public header in your
- * project.
- */
- /* Function Parameters & Return Value
- *
- * https://msdn.microsoft.com/en-us/library/hh916382.aspx
- *****/
- /* Pointer Parameters */
- #if defined(_In_) && defined(SALIERI_DEFINED_In)
- # undef _In_
- #endif
- #if !defined(_In_)
- # define _In_
- # define SALIERI_DEFINED_In
- #endif
- #if defined(__in_bcount) && defined(SALIERI_DEFINED__in_bcount)
- # undef __in_bcount
- #endif
- #if !defined(__in_bcount)
- # define __in_bcount(s)
- # define SALIERI_DEFINED__in_bcount(s)
- #endif
- #if defined(__in_ecount) && defined(SALIERI_DEFINED__in_ecount)
- # undef __in_ecount
- #endif
- #if !defined(__in_ecount)
- # define __in_ecount(s)
- # define SALIERI_DEFINED__in_ecount(s)
- #endif
- #if defined(__in_ecount_opt) && defined(SALIERI_DEFINED__in_ecount_opt)
- # undef __in_ecount_opt
- #endif
- #if !defined(__in_ecount_opt)
- # define __in_ecount_opt(s)
- # define SALIERI_DEFINED__in_ecount_opt(s)
- #endif
- #if defined(_Out_) && defined(SALIERI_DEFINED_Out)
- # undef _Out_
- #endif
- #if !defined(_Out_)
- # define _Out_
- # define SALIERI_DEFINED_Out
- #endif
- #if defined(_Inout_) && defined(SALIERI_DEFINED_Inout)
- # undef _Inout_
- #endif
- #if !defined(_Inout_)
- # define _Inout_
- # define SALIERI_DEFINED_Inout
- #endif
- #if defined(_In_z_) && defined(SALIERI_DEFINED_In_z)
- # undef _In_z_
- #endif
- #if !defined(_In_z_)
- # define _In_z_
- # define SALIERI_DEFINED_In_z
- #endif
- #if defined(_Inout_z_) && defined(SALIERI_DEFINED_Inout_z)
- # undef _Inout_z_
- #endif
- #if !defined(_Inout_z_)
- # define _Inout_z_
- # define SALIERI_DEFINED_Inout_z
- #endif
- #if defined(_In_reads_) && defined(SALIERI_DEFINED_In_reads)
- # undef _In_reads_
- #endif
- #if !defined(_In_reads_)
- # define _In_reads_(s)
- # define SALIERI_DEFINED_In_reads
- #endif
- #if defined(_In_reads_bytes_) && defined(SALIERI_DEFINED_In_reads_bytes)
- # undef _In_reads_bytes_
- #endif
- #if !defined(_In_reads_bytes_)
- # define _In_reads_bytes_(s)
- # define SALIERI_DEFINED_In_reads_bytes
- #endif
- #if defined(_In_reads_z_) && defined(SALIERI_DEFINED_In_reads_z)
- # undef _In_reads_z_
- #endif
- #if !defined(_In_reads_z_)
- # define _In_reads_z_(s)
- # define SALIERI_DEFINED_In_reads_z
- #endif
- #if defined(_In_reads_or_z_) && defined(SALIERI_DEFINED_In_reads_or_z)
- # undef _In_reads_or_z_
- #endif
- #if !defined(_In_reads_or_z_)
- # define _In_reads_or_z_(s)
- # define SALIERI_DEFINED_In_reads_or_z
- #endif
- #if defined(_Out_writes_) && defined(SALIERI_DEFINED_Out_writes)
- # undef _Out_writes_
- #endif
- #if !defined(_Out_writes_)
- # define _Out_writes_(s)
- # define SALIERI_DEFINED_Out_writes
- #endif
- #if defined(_Out_writes_bytes_) && defined(SALIERI_DEFINED_Out_writes_bytes)
- # undef _Out_writes_bytes_
- #endif
- #if !defined(_Out_writes_bytes_)
- # define _Out_writes_bytes_(s)
- # define SALIERI_DEFINED_Out_writes_bytes
- #endif
- #if defined(_Out_writes_bytes_opt_) && defined(SALIERI_DEFINED_Out_writes_bytes_opt_)
- # undef _Out_writes_bytes_opt_
- #endif
- #if !defined(_Out_writes_bytes_opt_)
- # define _Out_writes_bytes_opt_(s)
- # define SALIERI_DEFINED_Out_writes_bytes_opt_
- #endif
- #if defined(_Out_writes_z_) && defined(SALIERI_DEFINED_Out_writes_z)
- # undef _Out_writes_z_
- #endif
- #if !defined(_Out_writes_z_)
- # define _Out_writes_z_(s)
- # define SALIERI_DEFINED_Out_writes_z
- #endif
- #if defined(_Inout_updates_) && defined(SALIERI_DEFINED_Inout_updates)
- # undef _Inout_updates_
- #endif
- #if !defined(_Inout_updates_)
- # define _Inout_updates_(s)
- # define SALIERI_DEFINED_Inout_updates
- #endif
- #if defined(_Inout_updates_bytes_) && defined(SALIERI_DEFINED_Inout_updates_bytes)
- # undef _Inout_updates_bytes_
- #endif
- #if !defined(_Inout_updates_bytes_)
- # define _Inout_updates_bytes_(s)
- # define SALIERI_DEFINED_Inout_updates_bytes
- #endif
- #if defined(_Inout_updates_z_) && defined(SALIERI_DEFINED_Inout_updates_z)
- # undef _Inout_updates_z_
- #endif
- #if !defined(_Inout_updates_z_)
- # define _Inout_updates_z_(s)
- # define SALIERI_DEFINED_Inout_updates_z
- #endif
- #if defined(_Out_writes_to_) && defined(SALIERI_DEFINED_Out_writes_to)
- # undef _Out_writes_to_
- #endif
- #if !defined(_Out_writes_to_)
- # define _Out_writes_to_(s,c)
- # define SALIERI_DEFINED_Out_writes_to
- #endif
- #if defined(_Out_writes_bytes_to_) && defined(SALIERI_DEFINED_Out_writes_bytes_to)
- # undef _Out_writes_bytes_to_
- #endif
- #if !defined(_Out_writes_bytes_to_)
- # define _Out_writes_bytes_to_(s,c)
- # define SALIERI_DEFINED_Out_writes_bytes_to
- #endif
- #if defined(_Out_writes_all_) && defined(SALIERI_DEFINED_Out_writes_all)
- # undef _Out_writes_all_
- #endif
- #if !defined(_Out_writes_all_)
- # define _Out_writes_all_(s)
- # define SALIERI_DEFINED_Out_writes_all
- #endif
- #if defined(_Out_writes_bytes_all_) && defined(SALIERI_DEFINED_Out_writes_bytes_all)
- # undef _Out_writes_bytes_all_
- #endif
- #if !defined(_Out_writes_bytes_all_)
- # define _Out_writes_bytes_all_(s)
- # define SALIERI_DEFINED_Out_writes_bytes_all
- #endif
- #if defined(_In_updates_to_) && defined(SALIERI_DEFINED_In_updates_to)
- # undef _In_updates_to_
- #endif
- #if !defined(_In_updates_to_)
- # define _In_updates_to_(s,c)
- # define SALIERI_DEFINED_In_updates_to
- #endif
- #if defined(_In_updates_bytes_to_) && defined(SALIERI_DEFINED_In_updates_bytes_to)
- # undef _In_updates_bytes_to_
- #endif
- #if !defined(_In_updates_bytes_to_)
- # define _In_updates_bytes_to_(s,c)
- # define SALIERI_DEFINED_In_updates_bytes_to
- #endif
- #if defined(_Inout_updates_z_) && defined(SALIERI_DEFINED_Inout_updates_z)
- # undef _Inout_updates_z_
- #endif
- #if !defined(_Inout_updates_z_)
- # define _Inout_updates_z_(s)
- # define SALIERI_DEFINED_Inout_updates_z
- #endif
- #if defined(_Out_writes_to_) && defined(SALIERI_DEFINED_Out_writes_to)
- # undef _Out_writes_to_
- #endif
- #if !defined(_Out_writes_to_)
- # define _Out_writes_to_(s,c)
- # define SALIERI_DEFINED_Out_writes_to
- #endif
- #if defined(_Out_writes_bytes_to_) && defined(SALIERI_DEFINED_Out_writes_bytes_to)
- # undef _Out_writes_bytes_to_
- #endif
- #if !defined(_Out_writes_bytes_to_)
- # define _Out_writes_bytes_to_(s,c)
- # define SALIERI_DEFINED_Out_writes_bytes_to
- #endif
- #if defined(_Out_writes_all_) && defined(SALIERI_DEFINED_Out_writes_all)
- # undef _Out_writes_all_
- #endif
- #if !defined(_Out_writes_all_)
- # define _Out_writes_all_(s)
- # define SALIERI_DEFINED_Out_writes_all
- #endif
- #if defined(_Out_writes_bytes_all_) && defined(SALIERI_DEFINED_Out_writes_bytes_all)
- # undef _Out_writes_bytes_all_
- #endif
- #if !defined(_Out_writes_bytes_all_)
- # define _Out_writes_bytes_all_(s)
- # define SALIERI_DEFINED_Out_writes_bytes_all
- #endif
- #if defined(_Inout_updates_to_) && defined(SALIERI_DEFINED_Inout_updates_to)
- # undef _Inout_updates_to_
- #endif
- #if !defined(_Inout_updates_to_)
- # define _Inout_updates_to_(s,c)
- # define SALIERI_DEFINED_Inout_updates_to
- #endif
- #if defined(_Inout_updates_bytes_to_) && defined(SALIERI_DEFINED_Inout_updates_bytes_to)
- # undef _Inout_updates_bytes_to_
- #endif
- #if !defined(_Inout_updates_bytes_to_)
- # define _Inout_updates_bytes_to_(s,c)
- # define SALIERI_DEFINED_Inout_updates_bytes_to
- #endif
- #if defined(_Inout_updates_all_) && defined(SALIERI_DEFINED_Inout_updates_all)
- # undef _Inout_updates_all_
- #endif
- #if !defined(_Inout_updates_all_)
- # define _Inout_updates_all_(s)
- # define SALIERI_DEFINED_Inout_updates_all
- #endif
- #if defined(_Inout_updates_bytes_all_) && defined(SALIERI_DEFINED_Inout_updates_bytes_all)
- # undef _Inout_updates_bytes_all_
- #endif
- #if !defined(_Inout_updates_bytes_all_)
- # define _Inout_updates_bytes_all_(s)
- # define SALIERI_DEFINED_Inout_updates_bytes_all
- #endif
- #if defined(_In_reads_to_ptr_) && defined(SALIERI_DEFINED_In_reads_to_ptr)
- # undef _In_reads_to_ptr_
- #endif
- #if !defined(_In_reads_to_ptr_)
- # define _In_reads_to_ptr_(p)
- # define SALIERI_DEFINED_In_reads_to_ptr
- #endif
- #if defined(_In_reads_to_ptr_z_) && defined(SALIERI_DEFINED_In_reads_to_ptr_z)
- # undef _In_reads_to_ptr_z_
- #endif
- #if !defined(_In_reads_to_ptr_z_)
- # define _In_reads_to_ptr_z_(p)
- # define SALIERI_DEFINED_In_reads_to_ptr_z
- #endif
- #if defined(_Out_writes_to_ptr_) && defined(SALIERI_DEFINED_Out_writes_to_ptr)
- # undef _Out_writes_to_ptr_
- #endif
- #if !defined(_Out_writes_to_ptr_)
- # define _Out_writes_to_ptr_(p)
- # define SALIERI_DEFINED_Out_writes_to_ptr
- #endif
- #if defined(_Out_writes_to_ptr_z_) && defined(SALIERI_DEFINED_Out_writes_to_ptr_z)
- # undef _Out_writes_to_ptr_z_
- #endif
- #if !defined(_Out_writes_to_ptr_z_)
- # define _Out_writes_to_ptr_z_(p)
- # define SALIERI_DEFINED_Out_writes_to_ptr_z
- #endif
- /* Optional Pointer Parameters */
- #if defined(_In_opt_) && defined(SALIERI_DEFINED_In_opt)
- # undef _In_opt_
- #endif
- #if !defined(_In_opt_)
- # define _In_opt_
- # define SALIERI_DEFINED_In_opt
- #endif
- #if defined(_Out_opt_) && defined(SALIERI_DEFINED_Out_opt)
- # undef _Out_opt_
- #endif
- #if !defined(_Out_opt_)
- # define _Out_opt_
- # define SALIERI_DEFINED_Out_opt
- #endif
- #if defined(_Inout_opt_) && defined(SALIERI_DEFINED_Inout_opt)
- # undef _Inout_opt_
- #endif
- #if !defined(_Inout_opt_)
- # define _Inout_opt_
- # define SALIERI_DEFINED_Inout_opt
- #endif
- #if defined(_In_opt_z_) && defined(SALIERI_DEFINED_In_opt_z)
- # undef _In_opt_z_
- #endif
- #if !defined(_In_opt_z_)
- # define _In_opt_z_
- # define SALIERI_DEFINED_In_opt_z
- #endif
- #if defined(_Inout_opt_z_) && defined(SALIERI_DEFINED_Inout_opt_z)
- # undef _Inout_opt_z_
- #endif
- #if !defined(_Inout_opt_z_)
- # define _Inout_opt_z_
- # define SALIERI_DEFINED_Inout_opt_z
- #endif
- #if defined(_Inout_opt_bytecount_) && defined(SALIERI_DEFINED_Inout_opt_bytecount_)
- # undef _Inout_opt_bytecount_
- #endif
- #if !defined(_Inout_opt_bytecount_)
- # define _Inout_opt_bytecount_(s)
- # define SALIERI_DEFINED_Inout_opt_bytecount_(s)
- #endif
- #if defined(_In_reads_opt_) && defined(SALIERI_DEFINED_In_reads_opt)
- # undef _In_reads_opt_
- #endif
- #if !defined(_In_reads_opt_)
- # define _In_reads_opt_(s)
- # define SALIERI_DEFINED_In_reads_opt
- #endif
- #if defined(_In_reads_bytes_opt_) && defined(SALIERI_DEFINED_In_reads_bytes_opt)
- # undef _In_reads_bytes_opt_
- #endif
- #if !defined(_In_reads_bytes_opt_)
- # define _In_reads_bytes_opt_(s)
- # define SALIERI_DEFINED_In_reads_bytes_opt
- #endif
- #if defined(_In_reads_opt_z_) && defined(SALIERI_DEFINED_In_reads_opt_z)
- # undef _In_reads_opt_z_
- #endif
- #if !defined(_In_reads_opt_z_)
- # define _In_reads_opt_z_(s)
- # define SALIERI_DEFINED_In_reads_opt_z
- #endif
- #if defined(_Out_writes_opt_) && defined(SALIERI_DEFINED_Out_writes_opt)
- # undef _Out_writes_opt_
- #endif
- #if !defined(_Out_writes_opt_)
- # define _Out_writes_opt_(s)
- # define SALIERI_DEFINED_Out_writes_opt
- #endif
- #if defined(_Out_writes_bytes_) && defined(SALIERI_DEFINED_Out_writes_bytes)
- # undef _Out_writes_bytes_
- #endif
- #if !defined(_Out_writes_bytes_)
- # define _Out_writes_bytes_(s)
- # define SALIERI_DEFINED_Out_writes_bytes
- #endif
- #if defined(_Out_writes_opt_z_) && defined(SALIERI_DEFINED_Out_writes_opt_z)
- # undef _Out_writes_opt_z_
- #endif
- #if !defined(_Out_writes_opt_z_)
- # define _Out_writes_opt_z_(s)
- # define SALIERI_DEFINED_Out_writes_opt_z
- #endif
- #if defined(_Inout_updates_opt_) && defined(SALIERI_DEFINED_Inout_updates_opt)
- # undef _Inout_updates_opt_
- #endif
- #if !defined(_Inout_updates_opt_)
- # define _Inout_updates_opt_(s)
- # define SALIERI_DEFINED_Inout_updates_opt
- #endif
- #if defined(_Inout_updates_bytes_opt_) && defined(SALIERI_DEFINED_Inout_updates_bytes_opt)
- # undef _Inout_updates_bytes_opt_
- #endif
- #if !defined(_Inout_updates_bytes_opt_)
- # define _Inout_updates_bytes_opt_(s)
- # define SALIERI_DEFINED_Inout_updates_bytes_opt
- #endif
- #if defined(_Inout_updates_opt_z_) && defined(SALIERI_DEFINED_Inout_updates_opt_z)
- # undef _Inout_updates_opt_z_
- #endif
- #if !defined(_Inout_updates_opt_z_)
- # define _Inout_updates_opt_z_(s)
- # define SALIERI_DEFINED_Inout_updates_opt_z
- #endif
- #if defined(_Out_writes_to_opt_) && defined(SALIERI_DEFINED_Out_writes_to_opt)
- # undef _Out_writes_to_opt_
- #endif
- #if !defined(_Out_writes_to_opt_)
- # define _Out_writes_to_opt_(s,c)
- # define SALIERI_DEFINED_Out_writes_to_opt
- #endif
- #if defined(_Out_writes_bytes_to_opt_) && defined(SALIERI_DEFINED_Out_writes_bytes_to_opt)
- # undef _Out_writes_bytes_to_opt_
- #endif
- #if !defined(_Out_writes_bytes_to_opt_)
- # define _Out_writes_bytes_to_opt_(s,c)
- # define SALIERI_DEFINED_Out_writes_bytes_to_opt
- #endif
- #if defined(_Out_writes_all_opt_) && defined(SALIERI_DEFINED_Out_writes_all_opt)
- # undef _Out_writes_all_opt_
- #endif
- #if !defined(_Out_writes_all_opt_)
- # define _Out_writes_all_opt_(s)
- # define SALIERI_DEFINED_Out_writes_all_opt
- #endif
- #if defined(_Out_writes_bytes_all_opt_) && defined(SALIERI_DEFINED_Out_writes_bytes_all_opt)
- # undef _Out_writes_bytes_all_opt_
- #endif
- #if !defined(_Out_writes_bytes_all_opt_)
- # define _Out_writes_bytes_all_opt_(s)
- # define SALIERI_DEFINED_Out_writes_bytes_all_opt
- #endif
- #if defined(_In_updates_to_opt_) && defined(SALIERI_DEFINED_In_updates_to_opt)
- # undef _In_updates_to_opt_
- #endif
- #if !defined(_In_updates_to_opt_)
- # define _In_updates_to_opt_(s,c)
- # define SALIERI_DEFINED_In_updates_to_opt
- #endif
- #if defined(_In_updates_bytes_to_opt_) && defined(SALIERI_DEFINED_In_updates_bytes_to_opt)
- # undef _In_updates_bytes_to_opt_
- #endif
- #if !defined(_In_updates_bytes_to_opt_)
- # define _In_updates_bytes_to_opt_(s,c)
- # define SALIERI_DEFINED_In_updates_bytes_to_opt
- #endif
- #if defined(_Inout_updates_all_opt_) && defined(SALIERI_DEFINED_Inout_updates_all_opt)
- # undef _Inout_updates_all_opt_
- #endif
- #if !defined(_Inout_updates_all_opt_)
- # define _Inout_updates_all_opt_(s)
- # define SALIERI_DEFINED_Inout_updates_all_opt
- #endif
- #if defined(_Inout_updates_bytes_all_opt_) && defined(SALIERI_DEFINED_Inout_updates_bytes_all_opt)
- # undef _Inout_updates_bytes_all_opt_
- #endif
- #if !defined(_Inout_updates_bytes_all_opt_)
- # define _Inout_updates_bytes_all_opt_(s)
- # define SALIERI_DEFINED_Inout_updates_bytes_all_opt
- #endif
- #if defined(_In_reads_to_ptr_opt_) && defined(SALIERI_DEFINED_In_reads_to_ptr_opt)
- # undef _In_reads_to_ptr_opt_
- #endif
- #if !defined(_In_reads_to_ptr_opt_)
- # define _In_reads_to_ptr_opt_(p)
- # define SALIERI_DEFINED_In_reads_to_ptr_opt
- #endif
- #if defined(_In_reads_to_ptr_opt_z_) && defined(SALIERI_DEFINED_In_reads_to_ptr_opt_z)
- # undef _In_reads_to_ptr_opt_z_
- #endif
- #if !defined(_In_reads_to_ptr_opt_z_)
- # define _In_reads_to_ptr_opt_z_(p)
- # define SALIERI_DEFINED_In_reads_to_ptr_opt_z
- #endif
- #if defined(_Out_writes_to_ptr_opt_) && defined(SALIERI_DEFINED_Out_writes_to_ptr_opt)
- # undef _Out_writes_to_ptr_opt_
- #endif
- #if !defined(_Out_writes_to_ptr_opt_)
- # define _Out_writes_to_ptr_opt_(p)
- # define SALIERI_DEFINED_Out_writes_to_ptr_opt
- #endif
- #if defined(_Out_writes_to_ptr_opt_z_) && defined(SALIERI_DEFINED_Out_writes_to_ptr_opt_z)
- # undef _Out_writes_to_ptr_opt_z_
- #endif
- #if !defined(_Out_writes_to_ptr_opt_z_)
- # define _Out_writes_to_ptr_opt_z_(p)
- # define SALIERI_DEFINED_Out_writes_to_ptr_opt_z
- #endif
- /* Output Pointer Parameters */
- #if defined(_Outptr_) && defined(SALIERI_DEFINED_Outptr)
- # undef _Outptr_
- #endif
- #if !defined(_Outptr_)
- # define _Outptr_
- # define SALIERI_DEFINED_Outptr
- #endif
- #if defined(_Outptr_opt_) && defined(SALIERI_DEFINED_Outptr_opt)
- # undef _Outptr_opt_
- #endif
- #if !defined(_Outptr_opt_)
- # define _Outptr_opt_
- # define SALIERI_DEFINED_Outptr_opt
- #endif
- #if defined(_Outptr_result_maybenull_) && defined(SALIERI_DEFINED_Outptr_result_maybenull)
- # undef _Outptr_result_maybenull_
- #endif
- #if !defined(_Outptr_result_maybenull_)
- # define _Outptr_result_maybenull_
- # define SALIERI_DEFINED_Outptr_result_maybenull
- #endif
- #if defined(_Outptr_opt_result_maybenull_) && defined(SALIERI_DEFINED_Outptr_opt_result_maybenull)
- # undef _Outptr_opt_result_maybenull_
- #endif
- #if !defined(_Outptr_opt_result_maybenull_)
- # define _Outptr_opt_result_maybenull_
- # define SALIERI_DEFINED_Outptr_opt_result_maybenull
- #endif
- #if defined(_Outptr_result_z_) && defined(SALIERI_DEFINED_Outptr_result_z)
- # undef _Outptr_result_z_
- #endif
- #if !defined(_Outptr_result_z_)
- # define _Outptr_result_z_
- # define SALIERI_DEFINED_Outptr_result_z
- #endif
- #if defined(_Outptr_opt_result_z_) && defined(SALIERI_DEFINED_Outptr_opt_result_z)
- # undef _Outptr_opt_result_z_
- #endif
- #if !defined(_Outptr_opt_result_z_)
- # define _Outptr_opt_result_z_
- # define SALIERI_DEFINED_Outptr_opt_result_z
- #endif
- #if defined(_Outptr_result_maybenull_z_) && defined(SALIERI_DEFINED_Outptr_result_maybenull_z)
- # undef _Outptr_result_maybenull_z_
- #endif
- #if !defined(_Outptr_result_maybenull_z_)
- # define _Outptr_result_maybenull_z_
- # define SALIERI_DEFINED_Outptr_result_maybenull_z
- #endif
- #if defined(_Outptr_opt_result_maybenull_z_) && defined(SALIERI_DEFINED_Outptr_opt_result_maybenull_z)
- # undef _Outptr_opt_result_maybenull_z_
- #endif
- #if !defined(_Outptr_opt_result_maybenull_z_)
- # define _Outptr_opt_result_maybenull_z_
- # define SALIERI_DEFINED_Outptr_opt_result_maybenull_z
- #endif
- #if defined(_COM_Outptr_) && defined(SALIERI_DEFINED_COM_Outptr)
- # undef _COM_Outptr_
- #endif
- #if !defined(_COM_Outptr_)
- # define _COM_Outptr_
- # define SALIERI_DEFINED_COM_Outptr
- #endif
- #if defined(_COM_Outptr_opt_) && defined(SALIERI_DEFINED_COM_Outptr_opt)
- # undef _COM_Outptr_opt_
- #endif
- #if !defined(_COM_Outptr_opt_)
- # define _COM_Outptr_opt_
- # define SALIERI_DEFINED_COM_Outptr_opt
- #endif
- #if defined(_COM_Outptr_result_maybenull_) && defined(SALIERI_DEFINED_COM_Outptr_result_maybenull)
- # undef _COM_Outptr_result_maybenull_
- #endif
- #if !defined(_COM_Outptr_result_maybenull_)
- # define _COM_Outptr_result_maybenull_
- # define SALIERI_DEFINED_COM_Outptr_result_maybenull
- #endif
- #if defined(_COM_Outptr_opt_result_maybenull_) && defined(SALIERI_DEFINED_COM_Outptr_opt_result_maybenull)
- # undef _COM_Outptr_opt_result_maybenull_
- #endif
- #if !defined(_COM_Outptr_opt_result_maybenull_)
- # define _COM_Outptr_opt_result_maybenull_
- # define SALIERI_DEFINED_COM_Outptr_opt_result_maybenull
- #endif
- #if defined(_Outptr_opt_result_maybenull_) && defined(SALIERI_DEFINED_Outptr_opt_result_maybenull)
- # undef _Outptr_opt_result_maybenull_
- #endif
- #if !defined(_Outptr_opt_result_maybenull_)
- # define _Outptr_opt_result_maybenull_
- # define SALIERI_DEFINED_Outptr_opt_result_maybenull
- #endif
- #if defined(_Outptr_result_buffer_) && defined(SALIERI_DEFINED_Outptr_result_buffer)
- # undef _Outptr_result_buffer_
- #endif
- #if !defined(_Outptr_result_buffer_)
- # define _Outptr_result_buffer_(s)
- # define SALIERI_DEFINED_Outptr_result_buffer
- #endif
- #if defined(_Outptr_result_bytebuffer_) && defined(SALIERI_DEFINED_Outptr_result_bytebuffer)
- # undef _Outptr_result_bytebuffer_
- #endif
- #if !defined(_Outptr_result_bytebuffer_)
- # define _Outptr_result_bytebuffer_(s)
- # define SALIERI_DEFINED_Outptr_result_bytebuffer
- #endif
- #if defined(_Outptr_opt_result_buffer_) && defined(SALIERI_DEFINED_Outptr_opt_result_buffer)
- # undef _Outptr_opt_result_buffer_
- #endif
- #if !defined(_Outptr_opt_result_buffer_)
- # define _Outptr_opt_result_buffer_(s)
- # define SALIERI_DEFINED_Outptr_opt_result_buffer
- #endif
- #if defined(_Outptr_opt_result_bytebuffer_) && defined(SALIERI_DEFINED_Outptr_opt_result_bytebuffer)
- # undef _Outptr_opt_result_bytebuffer_
- #endif
- #if !defined(_Outptr_opt_result_bytebuffer_)
- # define _Outptr_opt_result_bytebuffer_(s)
- # define SALIERI_DEFINED_Outptr_opt_result_bytebuffer
- #endif
- #if defined(_Outptr_result_buffer_to_) && defined(SALIERI_DEFINED_Outptr_result_buffer_to)
- # undef _Outptr_result_buffer_to_
- #endif
- #if !defined(_Outptr_result_buffer_to_)
- # define _Outptr_result_buffer_to_(s,c)
- # define SALIERI_DEFINED_Outptr_result_buffer_to
- #endif
- #if defined(_Outptr_result_bytebuffer_to_) && defined(SALIERI_DEFINED_Outptr_result_bytebuffer_to)
- # undef _Outptr_result_bytebuffer_to_
- #endif
- #if !defined(_Outptr_result_bytebuffer_to_)
- # define _Outptr_result_bytebuffer_to_(s,c)
- # define SALIERI_DEFINED_Outptr_result_bytebuffer_to
- #endif
- #if defined(_Outptr_opt_result_buffer_to_) && defined(SALIERI_DEFINED_Outptr_opt_result_buffer_to)
- # undef _Outptr_opt_result_buffer_to_
- #endif
- #if !defined(_Outptr_opt_result_buffer_to_)
- # define _Outptr_opt_result_buffer_to_(s,c)
- # define SALIERI_DEFINED_Outptr_opt_result_buffer_to
- #endif
- #if defined(_Outptr_opt_result_bytebuffer_to_) && defined(SALIERI_DEFINED_Outptr_opt_result_bytebuffer_to)
- # undef _Outptr_opt_result_bytebuffer_to_
- #endif
- #if !defined(_Outptr_opt_result_bytebuffer_to_)
- # define _Outptr_opt_result_bytebuffer_to_(s,c)
- # define SALIERI_DEFINED_Outptr_opt_result_bytebuffer_to
- #endif
- #if defined(_Result_nullonfailure_) && defined(SALIERI_DEFINED_Result_nullonfailure)
- # undef _Result_nullonfailure_
- #endif
- #if !defined(_Result_nullonfailure_)
- # define _Result_nullonfailure_
- # define SALIERI_DEFINED_Result_nullonfailure
- #endif
- #if defined(_Result_zeroonfailure_) && defined(SALIERI_DEFINED_Result_zeroonfailure)
- # undef _Result_zeroonfailure_
- #endif
- #if !defined(_Result_zeroonfailure_)
- # define _Result_zeroonfailure_
- # define SALIERI_DEFINED_Result_zeroonfailure
- #endif
- #if defined(_Outptr_result_nullonfailure_) && defined(SALIERI_DEFINED_Outptr_result_nullonfailure)
- # undef _Outptr_result_nullonfailure_
- #endif
- #if !defined(_Outptr_result_nullonfailure_)
- # define _Outptr_result_nullonfailure_
- # define SALIERI_DEFINED_Outptr_result_nullonfailure
- #endif
- #if defined(_Outptr_opt_result_nullonfailure_) && defined(SALIERI_DEFINED_Outptr_opt_result_nullonfailure)
- # undef _Outptr_opt_result_nullonfailure_
- #endif
- #if !defined(_Outptr_opt_result_nullonfailure_)
- # define _Outptr_opt_result_nullonfailure_
- # define SALIERI_DEFINED_Outptr_opt_result_nullonfailure
- #endif
- #if defined(_Outref_result_nullonfailure_) && defined(SALIERI_DEFINED_Outref_result_nullonfailure)
- # undef _Outref_result_nullonfailure_
- #endif
- #if !defined(_Outref_result_nullonfailure_)
- # define _Outref_result_nullonfailure_
- # define SALIERI_DEFINED_Outref_result_nullonfailure
- #endif
- /* Output Reference Parameters */
- #if defined(_Outref_) && defined(SALIERI_DEFINED_Outref)
- # undef _Outref_
- #endif
- #if !defined(_Outref_)
- # define _Outref_
- # define SALIERI_DEFINED_Outref
- #endif
- #if defined(_Outref_result_maybenull_) && defined(SALIERI_DEFINED_Outref_result_maybenull)
- # undef _Outref_result_maybenull_
- #endif
- #if !defined(_Outref_result_maybenull_)
- # define _Outref_result_maybenull_
- # define SALIERI_DEFINED_Outref_result_maybenull
- #endif
- #if defined(_Outref_result_buffer_) && defined(SALIERI_DEFINED_Outref_result_buffer)
- # undef _Outref_result_buffer_
- #endif
- #if !defined(_Outref_result_buffer_)
- # define _Outref_result_buffer_(s)
- # define SALIERI_DEFINED_Outref_result_buffer
- #endif
- #if defined(_Outref_result_bytebuffer_) && defined(SALIERI_DEFINED_Outref_result_bytebuffer)
- # undef _Outref_result_bytebuffer_
- #endif
- #if !defined(_Outref_result_bytebuffer_)
- # define _Outref_result_bytebuffer_(s)
- # define SALIERI_DEFINED_Outref_result_bytebuffer
- #endif
- #if defined(_Outref_result_buffer_to_) && defined(SALIERI_DEFINED_Outref_result_buffer_to)
- # undef _Outref_result_buffer_to_
- #endif
- #if !defined(_Outref_result_buffer_to_)
- # define _Outref_result_buffer_to_(s,c)
- # define SALIERI_DEFINED_Outref_result_buffer_to
- #endif
- #if defined(_Outref_result_bytebuffer_to_) && defined(SALIERI_DEFINED_Outref_result_bytebuffer_to)
- # undef _Outref_result_bytebuffer_to_
- #endif
- #if !defined(_Outref_result_bytebuffer_to_)
- # define _Outref_result_bytebuffer_to_(s,c)
- # define SALIERI_DEFINED_Outref_result_bytebuffer_to
- #endif
- #if defined(_Outref_result_buffer_all_) && defined(SALIERI_DEFINED_Outref_result_buffer_all)
- # undef _Outref_result_buffer_all_
- #endif
- #if !defined(_Outref_result_buffer_all_)
- # define _Outref_result_buffer_all_(s)
- # define SALIERI_DEFINED_Outref_result_buffer_all
- #endif
- #if defined(_Outref_result_bytebuffer_all_) && defined(SALIERI_DEFINED_Outref_result_bytebuffer_all)
- # undef _Outref_result_bytebuffer_all_
- #endif
- #if !defined(_Outref_result_bytebuffer_all_)
- # define _Outref_result_bytebuffer_all_(s)
- # define SALIERI_DEFINED_Outref_result_bytebuffer_all
- #endif
- #if defined(_Outref_result_buffer_maybenull_) && defined(SALIERI_DEFINED_Outref_result_buffer_maybenull)
- # undef _Outref_result_buffer_maybenull_
- #endif
- #if !defined(_Outref_result_buffer_maybenull_)
- # define _Outref_result_buffer_maybenull_(s)
- # define SALIERI_DEFINED_Outref_result_buffer_maybenull
- #endif
- #if defined(_Outref_result_bytebuffer_maybenull_) && defined(SALIERI_DEFINED_Outref_result_bytebuffer_maybenull)
- # undef _Outref_result_bytebuffer_maybenull_
- #endif
- #if !defined(_Outref_result_bytebuffer_maybenull_)
- # define _Outref_result_bytebuffer_maybenull_(s)
- # define SALIERI_DEFINED_Outref_result_bytebuffer_maybenull
- #endif
- #if defined(_Outref_result_buffer_to_maybenull_) && defined(SALIERI_DEFINED_Outref_result_buffer_to_maybenull)
- # undef _Outref_result_buffer_to_maybenull_
- #endif
- #if !defined(_Outref_result_buffer_to_maybenull_)
- # define _Outref_result_buffer_to_maybenull_(s,c)
- # define SALIERI_DEFINED_Outref_result_buffer_to_maybenull
- #endif
- #if defined(_Outref_result_bytebuffer_to_maybenull_) && defined(SALIERI_DEFINED_Outref_result_bytebuffer_to_maybenull)
- # undef _Outref_result_bytebuffer_to_maybenull_
- #endif
- #if !defined(_Outref_result_bytebuffer_to_maybenull_)
- # define _Outref_result_bytebuffer_to_maybenull_(s,c)
- # define SALIERI_DEFINED_Outref_result_bytebuffer_to_maybenull
- #endif
- #if defined(_Outref_result_buffer_all_maybenull_) && defined(SALIERI_DEFINED_Outref_result_buffer_all_maybenull)
- # undef _Outref_result_buffer_all_maybenull_
- #endif
- #if !defined(_Outref_result_buffer_all_maybenull_)
- # define _Outref_result_buffer_all_maybenull_(s)
- # define SALIERI_DEFINED_Outref_result_buffer_all_maybenull
- #endif
- #if defined(_Outref_result_bytebuffer_all_maybenull_) && defined(SALIERI_DEFINED_Outref_result_bytebuffer_all_maybenull)
- # undef _Outref_result_bytebuffer_all_maybenull_
- #endif
- #if !defined(_Outref_result_bytebuffer_all_maybenull_)
- # define _Outref_result_bytebuffer_all_maybenull_(s)
- # define SALIERI_DEFINED_Outref_result_bytebuffer_all_maybenull
- #endif
- /* Return Values */
- #if defined(_Ret_z_) && defined(SALIERI_DEFINED_Ret_z)
- # undef _Ret_z_
- #endif
- #if !defined(_Ret_z_)
- # define _Ret_z_
- # define SALIERI_DEFINED_Ret_z
- #endif
- #if defined(_Ret_writes_) && defined(SALIERI_DEFINED_Ret_writes)
- # undef _Ret_writes_
- #endif
- #if !defined(_Ret_writes_)
- # define _Ret_writes_(s)
- # define SALIERI_DEFINED_Ret_writes
- #endif
- #if defined(_Ret_writes_bytes_) && defined(SALIERI_DEFINED_Ret_writes_bytes)
- # undef _Ret_writes_bytes_
- #endif
- #if !defined(_Ret_writes_bytes_)
- # define _Ret_writes_bytes_(s)
- # define SALIERI_DEFINED_Ret_writes_bytes
- #endif
- #if defined(_Ret_writes_z_) && defined(SALIERI_DEFINED_Ret_writes_z)
- # undef _Ret_writes_z_
- #endif
- #if !defined(_Ret_writes_z_)
- # define _Ret_writes_z_(s)
- # define SALIERI_DEFINED_Ret_writes_z
- #endif
- #if defined(_Ret_writes_to_) && defined(SALIERI_DEFINED_Ret_writes_to)
- # undef _Ret_writes_to_
- #endif
- #if !defined(_Ret_writes_to_)
- # define _Ret_writes_to_(s,c)
- # define SALIERI_DEFINED_Ret_writes_to
- #endif
- #if defined(_Ret_writes_maybenull_) && defined(SALIERI_DEFINED_Ret_writes_maybenull)
- # undef _Ret_writes_maybenull_
- #endif
- #if !defined(_Ret_writes_maybenull_)
- # define _Ret_writes_maybenull_(s)
- # define SALIERI_DEFINED_Ret_writes_maybenull
- #endif
- #if defined(_Ret_writes_to_maybenull_) && defined(SALIERI_DEFINED_Ret_writes_to_maybenull)
- # undef _Ret_writes_to_maybenull_
- #endif
- #if !defined(_Ret_writes_to_maybenull_)
- # define _Ret_writes_to_maybenull_(s)
- # define SALIERI_DEFINED_Ret_writes_to_maybenull
- #endif
- #if defined(_Ret_writes_maybenull_z_) && defined(SALIERI_DEFINED_Ret_writes_maybenull_z)
- # undef _Ret_writes_maybenull_z_
- #endif
- #if !defined(_Ret_writes_maybenull_z_)
- # define _Ret_writes_maybenull_z_(s)
- # define SALIERI_DEFINED_Ret_writes_maybenull_z
- #endif
- #if defined(_Ret_maybenull_) && defined(SALIERI_DEFINED_Ret_maybenull)
- # undef _Ret_maybenull_
- #endif
- #if !defined(_Ret_maybenull_)
- # define _Ret_maybenull_
- # define SALIERI_DEFINED_Ret_maybenull
- #endif
- #if defined(_Ret_maybenull_z_) && defined(SALIERI_DEFINED_Ret_maybenull_z)
- # undef _Ret_maybenull_z_
- #endif
- #if !defined(_Ret_maybenull_z_)
- # define _Ret_maybenull_z_
- # define SALIERI_DEFINED_Ret_maybenull_z
- #endif
- #if defined(_Ret_null_) && defined(SALIERI_DEFINED_Ret_null)
- # undef _Ret_null_
- #endif
- #if !defined(_Ret_null_)
- # define _Ret_null_
- # define SALIERI_DEFINED_Ret_null
- #endif
- #if defined(_Ret_notnull_) && defined(SALIERI_DEFINED_Ret_notnull)
- # undef _Ret_notnull_
- #endif
- #if !defined(_Ret_notnull_)
- # define _Ret_notnull_
- # define SALIERI_DEFINED_Ret_notnull
- #endif
- #if defined(_Ret_writes_bytes_to_) && defined(SALIERI_DEFINED_Ret_writes_bytes_to)
- # undef _Ret_writes_bytes_to_
- #endif
- #if !defined(_Ret_writes_bytes_to_)
- # define _Ret_writes_bytes_to_
- # define SALIERI_DEFINED_Ret_writes_bytes_to
- #endif
- #if defined(_Ret_writes_bytes_to_) && defined(SALIERI_DEFINED_Ret_writes_bytes_to)
- # undef _Ret_writes_bytes_to_
- #endif
- #if !defined(_Ret_writes_bytes_to_)
- # define _Ret_writes_bytes_to_
- # define SALIERI_DEFINED_Ret_writes_bytes_to
- #endif
- #if defined(_Ret_writes_bytes_maybenull_) && defined(SALIERI_DEFINED_Ret_writes_bytes_maybenull)
- # undef _Ret_writes_bytes_maybenull_
- #endif
- #if !defined(_Ret_writes_bytes_maybenull_)
- # define _Ret_writes_bytes_maybenull_
- # define SALIERI_DEFINED_Ret_writes_bytes_maybenull
- #endif
- #if defined(_Ret_writes_bytes_to_maybenull_) && defined(SALIERI_DEFINED_Ret_writes_bytes_to_maybenull)
- # undef _Ret_writes_bytes_to_maybenull_
- #endif
- #if !defined(_Ret_writes_bytes_to_maybenull_)
- # define _Ret_writes_bytes_to_maybenull_
- # define SALIERI_DEFINED_Ret_writes_bytes_to_maybenull
- #endif
- /* Other Common Annotations */
- #if defined(_In_range_) && defined(SALIERI_DEFINED_In_range)
- # undef _In_range_
- #endif
- #if !defined(_In_range_)
- # define _In_range_(low, hi)
- # define SALIERI_DEFINED_In_range
- #endif
- #if defined(_Out_range_) && defined(SALIERI_DEFINED_Out_range)
- # undef _Out_range_
- #endif
- #if !defined(_Out_range_)
- # define _Out_range_(low, hi)
- # define SALIERI_DEFINED_Out_range
- #endif
- #if defined(_Ret_range_) && defined(SALIERI_DEFINED_Ret_range)
- # undef _Ret_range_
- #endif
- #if !defined(_Ret_range_)
- # define _Ret_range_(low, hi)
- # define SALIERI_DEFINED_Ret_range
- #endif
- #if defined(_Deref_in_range_) && defined(SALIERI_DEFINED_Deref_in_range)
- # undef _Deref_in_range_
- #endif
- #if !defined(_Deref_in_range_)
- # define _Deref_in_range_(low, hi)
- # define SALIERI_DEFINED_Deref_in_range
- #endif
- #if defined(_Deref_out_range_) && defined(SALIERI_DEFINED_Deref_out_range)
- # undef _Deref_out_range_
- #endif
- #if !defined(_Deref_out_range_)
- # define _Deref_out_range_(low, hi)
- # define SALIERI_DEFINED_Deref_out_range
- #endif
- #if defined(_Deref_inout_range_) && defined(SALIERI_DEFINED_Deref_inout_range)
- # undef _Deref_inout_range_
- #endif
- #if !defined(_Deref_inout_range_)
- # define _Deref_inout_range_(low, hi)
- # define SALIERI_DEFINED_Deref_inout_range
- #endif
- #if defined(_Field_range_) && defined(SALIERI_DEFINED_Field_range)
- # undef _Field_range_
- #endif
- #if !defined(_Field_range_)
- # define _Field_range_(low, hi)
- # define SALIERI_DEFINED_Field_range
- #endif
- #if defined(_Pre_equal_to_) && defined(SALIERI_DEFINED_Pre_equal_to)
- # undef _Pre_equal_to_
- #endif
- #if !defined(_Pre_equal_to_)
- # define _Pre_equal_to_(expr)
- # define SALIERI_DEFINED_Pre_equal_to
- #endif
- #if defined(_Post_equal_to_) && defined(SALIERI_DEFINED_Post_equal_to)
- # undef _Post_equal_to_
- #endif
- #if !defined(_Post_equal_to_)
- # define _Post_equal_to_(expr)
- # define SALIERI_DEFINED_Post_equal_to
- #endif
- #if defined(_Struct_size_bytes_) && defined(SALIERI_DEFINED_Struct_size_bytes)
- # undef _Struct_size_bytes_
- #endif
- #if !defined(_Struct_size_bytes_)
- # define _Struct_size_bytes_(size)
- # define SALIERI_DEFINED_Struct_size_bytes
- #endif
- /* Annotating Function Behavior
- *
- * https://msdn.microsoft.com/en-us/library/jj159529.aspx
- *****/
- #if defined(_Called_from_function_class_) && defined(SALIERI_DEFINED_Called_from_function_class)
- # undef _Called_from_function_class_
- #endif
- #if !defined(_Called_from_function_class_)
- # define _Called_from_function_class_(name)
- # define SALIERI_DEFINED_Called_from_function_class
- #endif
- #if defined(_Check_return_) && defined(SALIERI_DEFINED_Check_return)
- # undef _Check_return_
- #endif
- #if !defined(_Check_return_)
- # define _Check_return_
- # define SALIERI_DEFINED_Check_return
- #endif
- #if defined(_Function_class_) && defined(SALIERI_DEFINED_Function_class)
- # undef _Function_class_
- #endif
- #if !defined(_Function_class_)
- # define _Function_class_(name)
- # define SALIERI_DEFINED_Function_class
- #endif
- #if defined(_Raises_SEH_exception_) && defined(SALIERI_DEFINED_Raises_SEH_exception)
- # undef _Raises_SEH_exception_
- #endif
- #if !defined(_Raises_SEH_exception_)
- # define _Raises_SEH_exception_
- # define SALIERI_DEFINED_Raises_SEH_exception
- #endif
- #if defined(_Must_inspect_result_) && defined(SALIERI_DEFINED_Must_inspect_result)
- # undef _Must_inspect_result_
- #endif
- #if !defined(_Must_inspect_result_)
- # define _Must_inspect_result_
- # define SALIERI_DEFINED_Must_inspect_result
- #endif
- #if defined(_Use_decl_annotations_) && defined(SALIERI_DEFINED_Use_decl_annotations)
- # undef _Use_decl_annotations_
- #endif
- #if !defined(_Use_decl_annotations_)
- # define _Use_decl_annotations_
- # define SALIERI_DEFINED_Use_decl_annotations
- #endif
- #if defined(_Always_) && defined(SALIERI_DEFINED_Always)
- # undef _Always_
- #endif
- #if !defined(_Always_)
- # define _Always_(anno_list)
- # define SALIERI_DEFINED_Always
- #endif
- #if defined(_On_failure_) && defined(SALIERI_DEFINED_On_failure)
- # undef _On_failure_
- #endif
- #if !defined(_On_failure_)
- # define _On_failure_(anno_list)
- # define SALIERI_DEFINED_On_failure
- #endif
- #if defined(_Return_type_success_) && defined(SALIERI_DEFINED_Return_type_success)
- # undef _Return_type_success_
- #endif
- #if !defined(_Return_type_success_)
- # define _Return_type_success_(expr)
- # define SALIERI_DEFINED_Return_type_success
- #endif
- #if defined(_Success_) && defined(SALIERI_DEFINED_Success)
- # undef _Success_
- #endif
- #if !defined(_Success_)
- # define _Success_(expr)
- # define SALIERI_DEFINED_Success
- #endif
- /* Annotating Structs and Classes
- *
- * https://msdn.microsoft.com/en-us/library/jj159528.aspx
- *****/
- #if defined(_Field_range_) && defined(SALIERI_DEFINED_Field_range)
- # undef _Field_range_
- #endif
- #if !defined(_Field_range_)
- # define _Field_range_(low, high)
- # define SALIERI_DEFINED_Field_range
- #endif
- #if defined(_Field_size_) && defined(SALIERI_DEFINED_Field_size)
- # undef _Field_size_
- #endif
- #if !defined(_Field_size_)
- # define _Field_size_(size)
- # define SALIERI_DEFINED_Field_size
- #endif
- #if defined(_Field_size_part_) && defined(SALIERI_DEFINED_Field_size_part)
- # undef _Field_size_part_
- #endif
- #if !defined(_Field_size_part_)
- # define _Field_size_part_(size)
- # define SALIERI_DEFINED_Field_size_part
- #endif
- #if defined(_Field_size_opt_) && defined(SALIERI_DEFINED_Field_size_opt)
- # undef _Field_size_opt_
- #endif
- #if !defined(_Field_size_opt_)
- # define _Field_size_opt_(size)
- # define SALIERI_DEFINED_Field_size_opt
- #endif
- #if defined(_Field_size_bytes_) && defined(SALIERI_DEFINED_Field_size_bytes)
- # undef _Field_size_bytes_
- #endif
- #if !defined(_Field_size_bytes_)
- # define _Field_size_bytes_(size)
- # define SALIERI_DEFINED_Field_size_bytes
- #endif
- #if defined(_Field_size_bytes_opt_) && defined(SALIERI_DEFINED_Field_size_bytes_opt)
- # undef _Field_size_bytes_opt_
- #endif
- #if !defined(_Field_size_bytes_opt_)
- # define _Field_size_bytes_opt_(size)
- # define SALIERI_DEFINED_Field_size_bytes_opt
- #endif
- #if defined(_Field_size_part_) && defined(SALIERI_DEFINED_Field_size_part)
- # undef _Field_size_part_
- #endif
- #if !defined(_Field_size_part_)
- # define _Field_size_part_(size, count)
- # define SALIERI_DEFINED_Field_size_part
- #endif
- #if defined(_Field_size_part_opt_) && defined(SALIERI_DEFINED_Field_size_part_opt)
- # undef _Field_size_part_opt_
- #endif
- #if !defined(_Field_size_part_opt_)
- # define _Field_size_part_opt_(size, count)
- # define SALIERI_DEFINED_Field_size_part_opt
- #endif
- #if defined(_Field_size_bytes_part_) && defined(SALIERI_DEFINED_Field_size_bytes_part)
- # undef _Field_size_bytes_part_
- #endif
- #if !defined(_Field_size_bytes_part_)
- # define _Field_size_bytes_part_(size, count)
- # define SALIERI_DEFINED_Field_size_bytes_part
- #endif
- #if defined(_Field_size_bytes_part_opt_) && defined(SALIERI_DEFINED_Field_size_bytes_part_opt)
- # undef _Field_size_bytes_part_opt_
- #endif
- #if !defined(_Field_size_bytes_part_opt_)
- # define _Field_size_bytes_part_opt_(size, count)
- # define SALIERI_DEFINED_Field_size_bytes_part_opt
- #endif
- #if defined(_Field_size_full_) && defined(SALIERI_DEFINED_Field_size_full)
- # undef _Field_size_full_
- #endif
- #if !defined(_Field_size_full_)
- # define _Field_size_full_(size)
- # define SALIERI_DEFINED_Field_size_full
- #endif
- #if defined(_Field_size_full_opt_) && defined(SALIERI_DEFINED_Field_size_full_opt)
- # undef _Field_size_full_opt_
- #endif
- #if !defined(_Field_size_full_opt_)
- # define _Field_size_full_opt_(size)
- # define SALIERI_DEFINED_Field_size_full_opt
- #endif
- #if defined(_Field_size_bytes_full_) && defined(SALIERI_DEFINED_Field_size_bytes_full)
- # undef _Field_size_bytes_full_
- #endif
- #if !defined(_Field_size_bytes_full_)
- # define _Field_size_bytes_full_(size)
- # define SALIERI_DEFINED_Field_size_bytes_full
- #endif
- #if defined(_Field_size_bytes_full_opt_) && defined(SALIERI_DEFINED_Field_size_bytes_full_opt)
- # undef _Field_size_bytes_full_opt_
- #endif
- #if !defined(_Field_size_bytes_full_opt_)
- # define _Field_size_bytes_full_opt_(size)
- # define SALIERI_DEFINED_Field_size_bytes_full_opt
- #endif
- #if defined(_Struct_size_bytes_) && defined(SALIERI_DEFINED_Struct_size_bytes)
- # undef _Struct_size_bytes_
- #endif
- #if !defined(_Struct_size_bytes_)
- # define _Struct_size_bytes_(size)
- # define SALIERI_DEFINED_Struct_size_bytes
- #endif
- /* Annotating Locking Behavior
- *
- * https://msdn.microsoft.com/en-us/library/hh916381.aspx
- *****/
- #if defined(_Acquires_exclusive_lock_) && defined(SALIERI_DEFINED_Acquires_exclusive_lock)
- # undef _Acquires_exclusive_lock_
- #endif
- #if !defined(_Acquires_exclusive_lock_)
- # define _Acquires_exclusive_lock_(expr)
- # define SALIERI_DEFINED_Acquires_exclusive_lock
- #endif
- #if defined(_Acquires_lock_) && defined(SALIERI_DEFINED_Acquires_lock)
- # undef _Acquires_lock_
- #endif
- #if !defined(_Acquires_lock_)
- # define _Acquires_lock_(expr)
- # define SALIERI_DEFINED_Acquires_lock
- #endif
- #if defined(_Acquires_nonreentrant_lock_) && defined(SALIERI_DEFINED_Acquires_nonreentrant_lock)
- # undef _Acquires_nonreentrant_lock_
- #endif
- #if !defined(_Acquires_nonreentrant_lock_)
- # define _Acquires_nonreentrant_lock_(expr)
- # define SALIERI_DEFINED_Acquires_nonreentrant_lock
- #endif
- #if defined(_Acquires_shared_lock_) && defined(SALIERI_DEFINED_Acquires_shared_lock)
- # undef _Acquires_shared_lock_
- #endif
- #if !defined(_Acquires_shared_lock_)
- # define _Acquires_shared_lock_(expr)
- # define SALIERI_DEFINED_Acquires_shared_lock
- #endif
- #if defined(_Create_lock_level_) && defined(SALIERI_DEFINED_Create_lock_level)
- # undef _Create_lock_level_
- #endif
- #if !defined(_Create_lock_level_)
- # define _Create_lock_level_(name)
- # define SALIERI_DEFINED_Create_lock_level
- #endif
- #if defined(_Has_lock_kind_) && defined(SALIERI_DEFINED_Has_lock_kind)
- # undef _Has_lock_kind_
- #endif
- #if !defined(_Has_lock_kind_)
- # define _Has_lock_kind_(kind)
- # define SALIERI_DEFINED_Has_lock_kind
- #endif
- #if defined(_Has_lock_level_) && defined(SALIERI_DEFINED_Has_lock_level)
- # undef _Has_lock_level_
- #endif
- #if !defined(_Has_lock_level_)
- # define _Has_lock_level_(name)
- # define SALIERI_DEFINED_Has_lock_level
- #endif
- #if defined(_Lock_level_order_) && defined(SALIERI_DEFINED_Lock_level_order)
- # undef _Lock_level_order_
- #endif
- #if !defined(_Lock_level_order_)
- # define _Lock_level_order_(name1, name2)
- # define SALIERI_DEFINED_Lock_level_order
- #endif
- #if defined(_Post_same_lock_) && defined(SALIERI_DEFINED_Post_same_lock)
- # undef _Post_same_lock_
- #endif
- #if !defined(_Post_same_lock_)
- # define _Post_same_lock_(expr1, expr2)
- # define SALIERI_DEFINED_Post_same_lock
- #endif
- #if defined(_Releases_exclusive_lock_) && defined(SALIERI_DEFINED_Releases_exclusive_lock)
- # undef _Releases_exclusive_lock_
- #endif
- #if !defined(_Releases_exclusive_lock_)
- # define _Releases_exclusive_lock_(expr)
- # define SALIERI_DEFINED_Releases_exclusive_lock
- #endif
- #if defined(_Releases_lock_) && defined(SALIERI_DEFINED_Releases_lock)
- # undef _Releases_lock_
- #endif
- #if !defined(_Releases_lock_)
- # define _Releases_lock_(expr)
- # define SALIERI_DEFINED_Releases_lock
- #endif
- #if defined(_Releases_nonreentrant_lock_) && defined(SALIERI_DEFINED_Releases_nonreentrant_lock)
- # undef _Releases_nonreentrant_lock_
- #endif
- #if !defined(_Releases_nonreentrant_lock_)
- # define _Releases_nonreentrant_lock_(expr)
- # define SALIERI_DEFINED_Releases_nonreentrant_lock
- #endif
- #if defined(_Releases_shared_lock_) && defined(SALIERI_DEFINED_Releases_shared_lock)
- # undef _Releases_shared_lock_
- #endif
- #if !defined(_Releases_shared_lock_)
- # define _Releases_shared_lock_(expr)
- # define SALIERI_DEFINED_Releases_shared_lock
- #endif
- #if defined(_Requires_lock_held_) && defined(SALIERI_DEFINED_Requires_lock_held)
- # undef _Requires_lock_held_
- #endif
- #if !defined(_Requires_lock_held_)
- # define _Requires_lock_held_(expr)
- # define SALIERI_DEFINED_Requires_lock_held
- #endif
- #if defined(_Requires_lock_not_held_) && defined(SALIERI_DEFINED_Requires_lock_not_held)
- # undef _Requires_lock_not_held_
- #endif
- #if !defined(_Requires_lock_not_held_)
- # define _Requires_lock_not_held_(expr)
- # define SALIERI_DEFINED_Requires_lock_not_held
- #endif
- #if defined(_Requires_no_locks_held_) && defined(SALIERI_DEFINED_Requires_no_locks_held)
- # undef _Requires_no_locks_held_
- #endif
- #if !defined(_Requires_no_locks_held_)
- # define _Requires_no_locks_held_
- # define SALIERI_DEFINED_Requires_no_locks_held
- #endif
- #if defined(_Requires_shared_lock_held_) && defined(SALIERI_DEFINED_Requires_shared_lock_held)
- # undef _Requires_shared_lock_held_
- #endif
- #if !defined(_Requires_shared_lock_held_)
- # define _Requires_shared_lock_held_(expr)
- # define SALIERI_DEFINED_Requires_shared_lock_held
- #endif
- #if defined(_Requires_exclusive_lock_held_) && defined(SALIERI_DEFINED_Requires_exclusive_lock_held)
- # undef _Requires_exclusive_lock_held_
- #endif
- #if !defined(_Requires_exclusive_lock_held_)
- # define _Requires_exclusive_lock_held_(expr)
- # define SALIERI_DEFINED_Requires_exclusive_lock_held
- #endif
- /* Shared Data Access Annotations */
- #if defined(_Guarded_by_) && defined(SALIERI_DEFINED_Guarded_by)
- # undef _Guarded_by_
- #endif
- #if !defined(_Guarded_by_)
- # define _Guarded_by_(expr)
- # define SALIERI_DEFINED_Guarded_by
- #endif
- #if defined(_Interlocked_) && defined(SALIERI_DEFINED_Interlocked)
- # undef _Interlocked_
- #endif
- #if !defined(_Interlocked_)
- # define _Interlocked_
- # define SALIERI_DEFINED_Interlocked
- #endif
- #if defined(_Interlocked_operand_) && defined(SALIERI_DEFINED_Interlocked_operand)
- # undef _Interlocked_operand_
- #endif
- #if !defined(_Interlocked_operand_)
- # define _Interlocked_operand_
- # define SALIERI_DEFINED_Interlocked_operand
- #endif
- #if defined(_Write_guarded_by_) && defined(SALIERI_DEFINED_Write_guarded_by)
- # undef _Write_guarded_by_
- #endif
- #if !defined(_Write_guarded_by_)
- # define _Write_guarded_by_(expr)
- # define SALIERI_DEFINED_Write_guarded_by
- #endif
- /* Specifying When and Where an Annotation Applies
- *
- * https://msdn.microsoft.com/en-us/library/jj159526.aspx
- *****/
- #if defined(_At_) && defined(SALIERI_DEFINED_At)
- # undef _At_
- #endif
- #if !defined(_At_)
- # define _At_(expr, anno_list)
- # define SALIERI_DEFINED_At
- #endif
- #if defined(_At_buffer_) && defined(SALIERI_DEFINED_At_buffer)
- # undef _At_buffer_
- #endif
- #if !defined(_At_buffer_)
- # define _At_buffer_(expr, iter, elem_count, anno_list)
- # define SALIERI_DEFINED_At_buffer
- #endif
- #if defined(_Group_) && defined(SALIERI_DEFINED_Group)
- # undef _Group_
- #endif
- #if !defined(_Group_)
- # define _Group_(anno_list)
- # define SALIERI_DEFINED_Group
- #endif
- #if defined(_When_) && defined(SALIERI_DEFINED_When)
- # undef _When_
- #endif
- #if !defined(_When_)
- # define _When_(expr, anno_list)
- # define SALIERI_DEFINED_When
- #endif
- /* Intrinsic Functions
- *
- * https://msdn.microsoft.com/en-us/library/jj159527.aspx
- *****/
- /* General Purpose */
- #if defined(_Curr_) && defined(SALIERI_DEFINED_Curr)
- # undef _Curr_
- #endif
- #if !defined(_Curr_)
- # define _Curr_
- # define SALIERI_DEFINED_Curr
- #endif
- #if defined(_Inexpressible_) && defined(SALIERI_DEFINED_Inexpressible)
- # undef _Inexpressible_
- #endif
- #if !defined(_Inexpressible_)
- # define _Inexpressible_(expr)
- # define SALIERI_DEFINED_Inexpressible
- #endif
- #if defined(_Nullterm_length_) && defined(SALIERI_DEFINED_Nullterm_length)
- # undef _Nullterm_length_
- #endif
- #if !defined(_Nullterm_length_)
- # define _Nullterm_length_(param)
- # define SALIERI_DEFINED_Nullterm_length
- #endif
- #if defined(_Old_) && defined(SALIERI_DEFINED_Old)
- # undef _Old_
- #endif
- #if !defined(_Old_)
- # define _Old_(expr)
- # define SALIERI_DEFINED_Old
- #endif
- #if defined(_Param_) && defined(SALIERI_DEFINED_Param)
- # undef _Param_
- #endif
- #if !defined(_Param_)
- # define _Param_(n)
- # define SALIERI_DEFINED_Param
- #endif
- /* String Specific */
- #if defined(_String_length_) && defined(SALIERI_DEFINED_String_length)
- # undef _String_length_
- #endif
- #if !defined(_String_length_)
- # define _String_length_(param)
- # define SALIERI_DEFINED_String_length
- #endif
- #if defined(SALIERI_VERSION)
- # undef SALIERI_VERSION
- #endif
- #define SALIERI_VERSION 1
- #endif /* !defined(SALIERI_VERSION) || (SALIERI_VERSION < X) */
|