cscg24-guacamole

CSCG 2024 Challenge 'Guacamole Mashup'
git clone https://git.sinitax.com/sinitax/cscg24-guacamole
Log | Files | Refs | sfeed.txt

spec.h (31605B)


      1/**
      2 * WinPR: Windows Portable Runtime
      3 * Compiler Specification Strings
      4 *
      5 * Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
      6 *
      7 * Licensed under the Apache License, Version 2.0 (the "License");
      8 * you may not use this file except in compliance with the License.
      9 * You may obtain a copy of the License at
     10 *
     11 *     http://www.apache.org/licenses/LICENSE-2.0
     12 *
     13 * Unless required by applicable law or agreed to in writing, software
     14 * distributed under the License is distributed on an "AS IS" BASIS,
     15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     16 * See the License for the specific language governing permissions and
     17 * limitations under the License.
     18 */
     19
     20#ifndef WINPR_SPEC_H
     21#define WINPR_SPEC_H
     22
     23#include <winpr/platform.h>
     24
     25#ifdef _WIN32
     26
     27#include <specstrings.h>
     28#ifndef _COM_Outptr_
     29#define _COM_Outptr_
     30#endif
     31
     32#else
     33
     34#define DUMMYUNIONNAME u
     35#define DUMMYUNIONNAME1 u1
     36#define DUMMYUNIONNAME2 u2
     37#define DUMMYUNIONNAME3 u3
     38#define DUMMYUNIONNAME4 u4
     39#define DUMMYUNIONNAME5 u5
     40#define DUMMYUNIONNAME6 u6
     41#define DUMMYUNIONNAME7 u7
     42#define DUMMYUNIONNAME8 u8
     43
     44#define DUMMYSTRUCTNAME s
     45#define DUMMYSTRUCTNAME1 s1
     46#define DUMMYSTRUCTNAME2 s2
     47#define DUMMYSTRUCTNAME3 s3
     48#define DUMMYSTRUCTNAME4 s4
     49#define DUMMYSTRUCTNAME5 s5
     50
     51#if (defined(_M_AMD64) || defined(_M_ARM)) && !defined(_WIN32)
     52#define _UNALIGNED __unaligned
     53#else
     54#define _UNALIGNED
     55#endif
     56
     57#ifndef DECLSPEC_ALIGN
     58#if defined(_MSC_VER) && (_MSC_VER >= 1300) && !defined(MIDL_PASS)
     59#define DECLSPEC_ALIGN(x) __declspec(align(x))
     60#elif defined(__GNUC__)
     61#define DECLSPEC_ALIGN(x) __attribute__((__aligned__(x)))
     62#else
     63#define DECLSPEC_ALIGN(x)
     64#endif
     65#endif /* DECLSPEC_ALIGN */
     66
     67#ifdef _M_AMD64
     68#define MEMORY_ALLOCATION_ALIGNMENT 16
     69#else
     70#define MEMORY_ALLOCATION_ALIGNMENT 8
     71#endif
     72
     73#ifdef __GNUC__
     74#ifndef __declspec
     75#define __declspec(e) __attribute__((e))
     76#endif
     77#endif
     78
     79#ifndef DECLSPEC_NORETURN
     80#if (defined(__GNUC__) || defined(_MSC_VER) || defined(__clang__))
     81#define DECLSPEC_NORETURN __declspec(noreturn)
     82#else
     83#define DECLSPEC_NORETURN
     84#endif
     85#endif /* DECLSPEC_NORETURN */
     86
     87/**
     88 * Header Annotations:
     89 * http://msdn.microsoft.com/en-us/library/windows/desktop/aa383701/
     90 */
     91
     92#define __field_bcount(size) __notnull __byte_writableTo(size)
     93#define __field_ecount(size) __notnull __elem_writableTo(size)
     94#define __post_invalid _Post_ __notvalid
     95
     96#define __deref_in
     97#define __deref_in_ecount(size)
     98#define __deref_in_bcount(size)
     99#define __deref_in_opt
    100#define __deref_in_ecount_opt(size)
    101#define __deref_in_bcount_opt(size)
    102#define __deref_opt_in
    103#define __deref_opt_in_ecount(size)
    104#define __deref_opt_in_bcount(size)
    105#define __deref_opt_in_opt
    106#define __deref_opt_in_ecount_opt(size)
    107#define __deref_opt_in_bcount_opt(size)
    108#define __out_awcount(expr, size)
    109#define __in_awcount(expr, size)
    110#define __nullnullterminated
    111#define __in_data_source(src_sym)
    112#define __kernel_entry
    113#define __out_data_source(src_sym)
    114#define __analysis_noreturn
    115#define _Check_return_opt_
    116#define _Check_return_wat_
    117
    118#define __inner_exceptthat
    119#define __inner_typefix(ctype)
    120#define _Always_(annos)
    121#define _Analysis_noreturn_
    122#define _Analysis_assume_(expr)
    123#define _At_(target, annos)
    124#define _At_buffer_(target, iter, bound, annos)
    125#define _Check_return_
    126#define _COM_Outptr_
    127#define _COM_Outptr_opt_
    128#define _COM_Outptr_opt_result_maybenull_
    129#define _COM_Outptr_result_maybenull_
    130#define _Const_
    131#define _Deref_in_bound_
    132#define _Deref_in_range_(lb, ub)
    133#define _Deref_inout_bound_
    134#define _Deref_inout_z_
    135#define _Deref_inout_z_bytecap_c_(size)
    136#define _Deref_inout_z_cap_c_(size)
    137#define _Deref_opt_out_
    138#define _Deref_opt_out_opt_
    139#define _Deref_opt_out_opt_z_
    140#define _Deref_opt_out_z_
    141#define _Deref_out_
    142#define _Deref_out_bound_
    143#define _Deref_out_opt_
    144#define _Deref_out_opt_z_
    145#define _Deref_out_range_(lb, ub)
    146#define _Deref_out_z_
    147#define _Deref_out_z_bytecap_c_(size)
    148#define _Deref_out_z_cap_c_(size)
    149#define _Deref_post_bytecap_(size)
    150#define _Deref_post_bytecap_c_(size)
    151#define _Deref_post_bytecap_x_(size)
    152#define _Deref_post_bytecount_(size)
    153#define _Deref_post_bytecount_c_(size)
    154#define _Deref_post_bytecount_x_(size)
    155#define _Deref_post_cap_(size)
    156#define _Deref_post_cap_c_(size)
    157#define _Deref_post_cap_x_(size)
    158#define _Deref_post_count_(size)
    159#define _Deref_post_count_c_(size)
    160#define _Deref_post_count_x_(size)
    161#define _Deref_post_maybenull_
    162#define _Deref_post_notnull_
    163#define _Deref_post_null_
    164#define _Deref_post_opt_bytecap_(size)
    165#define _Deref_post_opt_bytecap_c_(size)
    166#define _Deref_post_opt_bytecap_x_(size)
    167#define _Deref_post_opt_bytecount_(size)
    168#define _Deref_post_opt_bytecount_c_(size)
    169#define _Deref_post_opt_bytecount_x_(size)
    170#define _Deref_post_opt_cap_(size)
    171#define _Deref_post_opt_cap_c_(size)
    172#define _Deref_post_opt_cap_x_(size)
    173#define _Deref_post_opt_count_(size)
    174#define _Deref_post_opt_count_c_(size)
    175#define _Deref_post_opt_count_x_(size)
    176#define _Deref_post_opt_valid_
    177#define _Deref_post_opt_valid_bytecap_(size)
    178#define _Deref_post_opt_valid_bytecap_c_(size)
    179#define _Deref_post_opt_valid_bytecap_x_(size)
    180#define _Deref_post_opt_valid_cap_(size)
    181#define _Deref_post_opt_valid_cap_c_(size)
    182#define _Deref_post_opt_valid_cap_x_(size)
    183#define _Deref_post_opt_z_
    184#define _Deref_post_opt_z_bytecap_(size)
    185#define _Deref_post_opt_z_bytecap_c_(size)
    186#define _Deref_post_opt_z_bytecap_x_(size)
    187#define _Deref_post_opt_z_cap_(size)
    188#define _Deref_post_opt_z_cap_c_(size)
    189#define _Deref_post_opt_z_cap_x_(size)
    190#define _Deref_post_valid_
    191#define _Deref_post_valid_bytecap_(size)
    192#define _Deref_post_valid_bytecap_c_(size)
    193#define _Deref_post_valid_bytecap_x_(size)
    194#define _Deref_post_valid_cap_(size)
    195#define _Deref_post_valid_cap_c_(size)
    196#define _Deref_post_valid_cap_x_(size)
    197#define _Deref_post_z_
    198#define _Deref_post_z_bytecap_(size)
    199#define _Deref_post_z_bytecap_c_(size)
    200#define _Deref_post_z_bytecap_x_(size)
    201#define _Deref_post_z_cap_(size)
    202#define _Deref_post_z_cap_c_(size)
    203#define _Deref_post_z_cap_x_(size)
    204#define _Deref_pre_bytecap_(size)
    205#define _Deref_pre_bytecap_c_(size)
    206#define _Deref_pre_bytecap_x_(size)
    207#define _Deref_pre_bytecount_(size)
    208#define _Deref_pre_bytecount_c_(size)
    209#define _Deref_pre_bytecount_x_(size)
    210#define _Deref_pre_cap_(size)
    211#define _Deref_pre_cap_c_(size)
    212#define _Deref_pre_cap_x_(size)
    213#define _Deref_pre_count_(size)
    214#define _Deref_pre_count_c_(size)
    215#define _Deref_pre_count_x_(size)
    216#define _Deref_pre_invalid_
    217#define _Deref_pre_maybenull_
    218#define _Deref_pre_notnull_
    219#define _Deref_pre_null_
    220#define _Deref_pre_opt_bytecap_(size)
    221#define _Deref_pre_opt_bytecap_c_(size)
    222#define _Deref_pre_opt_bytecap_x_(size)
    223#define _Deref_pre_opt_bytecount_(size)
    224#define _Deref_pre_opt_bytecount_c_(size)
    225#define _Deref_pre_opt_bytecount_x_(size)
    226#define _Deref_pre_opt_cap_(size)
    227#define _Deref_pre_opt_cap_c_(size)
    228#define _Deref_pre_opt_cap_x_(size)
    229#define _Deref_pre_opt_count_(size)
    230#define _Deref_pre_opt_count_c_(size)
    231#define _Deref_pre_opt_count_x_(size)
    232#define _Deref_pre_opt_valid_
    233#define _Deref_pre_opt_valid_bytecap_(size)
    234#define _Deref_pre_opt_valid_bytecap_c_(size)
    235#define _Deref_pre_opt_valid_bytecap_x_(size)
    236#define _Deref_pre_opt_valid_cap_(size)
    237#define _Deref_pre_opt_valid_cap_c_(size)
    238#define _Deref_pre_opt_valid_cap_x_(size)
    239#define _Deref_pre_opt_z_
    240#define _Deref_pre_opt_z_bytecap_(size)
    241#define _Deref_pre_opt_z_bytecap_c_(size)
    242#define _Deref_pre_opt_z_bytecap_x_(size)
    243#define _Deref_pre_opt_z_cap_(size)
    244#define _Deref_pre_opt_z_cap_c_(size)
    245#define _Deref_pre_opt_z_cap_x_(size)
    246#define _Deref_pre_readonly_
    247#define _Deref_pre_valid_
    248#define _Deref_pre_valid_bytecap_(size)
    249#define _Deref_pre_valid_bytecap_c_(size)
    250#define _Deref_pre_valid_bytecap_x_(size)
    251#define _Deref_pre_valid_cap_(size)
    252#define _Deref_pre_valid_cap_c_(size)
    253#define _Deref_pre_valid_cap_x_(size)
    254#define _Deref_pre_writeonly_
    255#define _Deref_pre_z_
    256#define _Deref_pre_z_bytecap_(size)
    257#define _Deref_pre_z_bytecap_c_(size)
    258#define _Deref_pre_z_bytecap_x_(size)
    259#define _Deref_pre_z_cap_(size)
    260#define _Deref_pre_z_cap_c_(size)
    261#define _Deref_pre_z_cap_x_(size)
    262#define _Deref_prepost_bytecap_(size)
    263#define _Deref_prepost_bytecap_x_(size)
    264#define _Deref_prepost_bytecount_(size)
    265#define _Deref_prepost_bytecount_x_(size)
    266#define _Deref_prepost_cap_(size)
    267#define _Deref_prepost_cap_x_(size)
    268#define _Deref_prepost_count_(size)
    269#define _Deref_prepost_count_x_(size)
    270#define _Deref_prepost_opt_bytecap_(size)
    271#define _Deref_prepost_opt_bytecap_x_(size)
    272#define _Deref_prepost_opt_bytecount_(size)
    273#define _Deref_prepost_opt_bytecount_x_(size)
    274#define _Deref_prepost_opt_cap_(size)
    275#define _Deref_prepost_opt_cap_x_(size)
    276#define _Deref_prepost_opt_count_(size)
    277#define _Deref_prepost_opt_count_x_(size)
    278#define _Deref_prepost_opt_valid_
    279#define _Deref_prepost_opt_valid_bytecap_(size)
    280#define _Deref_prepost_opt_valid_bytecap_x_(size)
    281#define _Deref_prepost_opt_valid_cap_(size)
    282#define _Deref_prepost_opt_valid_cap_x_(size)
    283#define _Deref_prepost_opt_z_
    284#define _Deref_prepost_opt_z_bytecap_(size)
    285#define _Deref_prepost_opt_z_cap_(size)
    286#define _Deref_prepost_valid_
    287#define _Deref_prepost_valid_bytecap_(size)
    288#define _Deref_prepost_valid_bytecap_x_(size)
    289#define _Deref_prepost_valid_cap_(size)
    290#define _Deref_prepost_valid_cap_x_(size)
    291#define _Deref_prepost_z_
    292#define _Deref_prepost_z_bytecap_(size)
    293#define _Deref_prepost_z_cap_(size)
    294#define _Deref_ret_bound_
    295#define _Deref_ret_opt_z_
    296#define _Deref_ret_range_(lb, ub)
    297#define _Deref_ret_z_
    298#define _Deref2_pre_readonly_
    299#define _Field_range_(min, max)
    300#define _Field_size_(size)
    301#define _Field_size_bytes_(size)
    302#define _Field_size_bytes_full_(size)
    303#define _Field_size_bytes_full_opt_(size)
    304#define _Field_size_bytes_opt_(size)
    305#define _Field_size_bytes_part_(size, count)
    306#define _Field_size_bytes_part_opt_(size, count)
    307#define _Field_size_full_(size)
    308#define _Field_size_full_opt_(size)
    309#define _Field_size_opt_(size)
    310#define _Field_size_part_(size, count)
    311#define _Field_size_part_opt_(size, count)
    312#define _Field_z_
    313#define _Function_class_(x)
    314#define _Group_(annos)
    315#define _In_
    316#define _In_bound_
    317#define _In_bytecount_(size)
    318#define _In_bytecount_c_(size)
    319#define _In_bytecount_x_(size)
    320#define _In_count_(size)
    321#define _In_count_c_(size)
    322#define _In_count_x_(size)
    323#define _In_defensive_(annotes)
    324#define _In_opt_
    325#define _In_opt_bytecount_(size)
    326#define _In_opt_bytecount_c_(size)
    327#define _In_opt_bytecount_x_(size)
    328#define _In_opt_count_(size)
    329#define _In_opt_count_c_(size)
    330#define _In_opt_count_x_(size)
    331#define _In_opt_ptrdiff_count_(size)
    332#define _In_opt_z_
    333#define _In_opt_z_bytecount_(size)
    334#define _In_opt_z_bytecount_c_(size)
    335#define _In_opt_z_count_(size)
    336#define _In_opt_z_count_c_(size)
    337#define _In_ptrdiff_count_(size)
    338#define _In_range_(lb, ub)
    339#define _In_reads_(size)
    340#define _In_reads_bytes_(size)
    341#define _In_reads_bytes_opt_(size)
    342#define _In_reads_opt_(size)
    343#define _In_reads_opt_z_(size)
    344#define _In_reads_or_z_(size)
    345#define _In_reads_to_ptr_(ptr)
    346#define _In_reads_to_ptr_opt_(ptr)
    347#define _In_reads_to_ptr_opt_z_(ptr)
    348#define _In_reads_to_ptr_z_(ptr)
    349#define _In_reads_z_(size)
    350#define _In_z_
    351#define _In_z_bytecount_(size)
    352#define _In_z_bytecount_c_(size)
    353#define _In_z_count_(size)
    354#define _In_z_count_c_(size)
    355#define _Inout_
    356#define _Inout_bytecap_(size)
    357#define _Inout_bytecap_c_(size)
    358#define _Inout_bytecap_x_(size)
    359#define _Inout_bytecount_(size)
    360#define _Inout_bytecount_c_(size)
    361#define _Inout_bytecount_x_(size)
    362#define _Inout_cap_(size)
    363#define _Inout_cap_c_(size)
    364#define _Inout_cap_x_(size)
    365#define _Inout_count_(size)
    366#define _Inout_count_c_(size)
    367#define _Inout_count_x_(size)
    368#define _Inout_defensive_(annotes)
    369#define _Inout_opt_
    370#define _Inout_opt_bytecap_(size)
    371#define _Inout_opt_bytecap_c_(size)
    372#define _Inout_opt_bytecap_x_(size)
    373#define _Inout_opt_bytecount_(size)
    374#define _Inout_opt_bytecount_c_(size)
    375#define _Inout_opt_bytecount_x_(size)
    376#define _Inout_opt_cap_(size)
    377#define _Inout_opt_cap_c_(size)
    378#define _Inout_opt_cap_x_(size)
    379#define _Inout_opt_count_(size)
    380#define _Inout_opt_count_c_(size)
    381#define _Inout_opt_count_x_(size)
    382#define _Inout_opt_ptrdiff_count_(size)
    383#define _Inout_opt_z_
    384#define _Inout_opt_z_bytecap_(size)
    385#define _Inout_opt_z_bytecap_c_(size)
    386#define _Inout_opt_z_bytecap_x_(size)
    387#define _Inout_opt_z_bytecount_(size)
    388#define _Inout_opt_z_bytecount_c_(size)
    389#define _Inout_opt_z_cap_(size)
    390#define _Inout_opt_z_cap_c_(size)
    391#define _Inout_opt_z_cap_x_(size)
    392#define _Inout_opt_z_count_(size)
    393#define _Inout_opt_z_count_c_(size)
    394#define _Inout_ptrdiff_count_(size)
    395#define _Inout_updates_(size)
    396#define _Inout_updates_all_(size)
    397#define _Inout_updates_all_opt_(size)
    398#define _Inout_updates_bytes_(size)
    399#define _Inout_updates_bytes_all_(size)
    400#define _Inout_updates_bytes_all_opt_(size)
    401#define _Inout_updates_bytes_opt_(size)
    402#define _Inout_updates_bytes_to_(size, count)
    403#define _Inout_updates_bytes_to_opt_(size, count)
    404#define _Inout_updates_opt_(size)
    405#define _Inout_updates_opt_z_(size)
    406#define _Inout_updates_to_(size, count)
    407#define _Inout_updates_to_opt_(size, count)
    408#define _Inout_updates_z_(size)
    409#define _Inout_z_
    410#define _Inout_z_bytecap_(size)
    411#define _Inout_z_bytecap_c_(size)
    412#define _Inout_z_bytecap_x_(size)
    413#define _Inout_z_bytecount_(size)
    414#define _Inout_z_bytecount_c_(size)
    415#define _Inout_z_cap_(size)
    416#define _Inout_z_cap_c_(size)
    417#define _Inout_z_cap_x_(size)
    418#define _Inout_z_count_(size)
    419#define _Inout_z_count_c_(size)
    420#define _Interlocked_operand_
    421#define _Literal_
    422#define _Maybenull_
    423#define _Maybevalid_
    424#define _Maybe_raises_SEH_exception
    425#define _Must_inspect_result_
    426#define _Notliteral_
    427#define _Notnull_
    428#define _Notref_
    429#define _Notvalid_
    430#define _Null_
    431#define _Null_terminated_
    432#define _NullNull_terminated_
    433#define _On_failure_(annos)
    434#define _Out_
    435#define _Out_bound_
    436#define _Out_bytecap_(size)
    437#define _Out_bytecap_c_(size)
    438#define _Out_bytecap_post_bytecount_(cap, count)
    439#define _Out_bytecap_x_(size)
    440#define _Out_bytecapcount_(capcount)
    441#define _Out_bytecapcount_x_(capcount)
    442#define _Out_cap_(size)
    443#define _Out_cap_c_(size)
    444#define _Out_cap_m_(mult, size)
    445#define _Out_cap_post_count_(cap, count)
    446#define _Out_cap_x_(size)
    447#define _Out_capcount_(capcount)
    448#define _Out_capcount_x_(capcount)
    449#define _Out_defensive_(annotes)
    450#define _Out_opt_
    451#define _Out_opt_bytecap_(size)
    452#define _Out_opt_bytecap_c_(size)
    453#define _Out_opt_bytecap_post_bytecount_(cap, count)
    454#define _Out_opt_bytecap_x_(size)
    455#define _Out_opt_bytecapcount_(capcount)
    456#define _Out_opt_bytecapcount_x_(capcount)
    457#define _Out_opt_cap_(size)
    458#define _Out_opt_cap_c_(size)
    459#define _Out_opt_cap_m_(mult, size)
    460#define _Out_opt_cap_post_count_(cap, count)
    461#define _Out_opt_cap_x_(size)
    462#define _Out_opt_capcount_(capcount)
    463#define _Out_opt_capcount_x_(capcount)
    464#define _Out_opt_ptrdiff_cap_(size)
    465#define _Out_opt_z_bytecap_(size)
    466#define _Out_opt_z_bytecap_c_(size)
    467#define _Out_opt_z_bytecap_post_bytecount_(cap, count)
    468#define _Out_opt_z_bytecap_x_(size)
    469#define _Out_opt_z_bytecapcount_(capcount)
    470#define _Out_opt_z_cap_(size)
    471#define _Out_opt_z_cap_c_(size)
    472#define _Out_opt_z_cap_m_(mult, size)
    473#define _Out_opt_z_cap_post_count_(cap, count)
    474#define _Out_opt_z_cap_x_(size)
    475#define _Out_opt_z_capcount_(capcount)
    476#define _Out_ptrdiff_cap_(size)
    477#define _Out_range_(lb, ub)
    478#define _Out_writes_(size)
    479#define _Out_writes_all_(size)
    480#define _Out_writes_all_opt_(size)
    481#define _Out_writes_bytes_(size)
    482#define _Out_writes_bytes_all_(size)
    483#define _Out_writes_bytes_all_opt_(size)
    484#define _Out_writes_bytes_opt_(size)
    485#define _Out_writes_bytes_to_(size, count)
    486#define _Out_writes_bytes_to_opt_(size, count)
    487#define _Out_writes_opt_(size)
    488#define _Out_writes_opt_z_(size)
    489#define _Out_writes_to_(size, count)
    490#define _Out_writes_to_opt_(size, count)
    491#define _Out_writes_to_ptr_(ptr)
    492#define _Out_writes_to_ptr_opt_(ptr)
    493#define _Out_writes_to_ptr_opt_z_(ptr)
    494#define _Out_writes_to_ptr_z_(ptr)
    495#define _Out_writes_z_(size)
    496#define _Out_z_bytecap_(size)
    497#define _Out_z_bytecap_c_(size)
    498#define _Out_z_bytecap_post_bytecount_(cap, count)
    499#define _Out_z_bytecap_x_(size)
    500#define _Out_z_bytecapcount_(capcount)
    501#define _Out_z_cap_(size)
    502#define _Out_z_cap_c_(size)
    503#define _Out_z_cap_m_(mult, size)
    504#define _Out_z_cap_post_count_(cap, count)
    505#define _Out_z_cap_x_(size)
    506#define _Out_z_capcount_(capcount)
    507#define _Outptr_
    508#define _Outptr_opt_
    509#define _Outptr_opt_result_buffer_(size)
    510#define _Outptr_opt_result_buffer_all_(size)
    511#define _Outptr_opt_result_buffer_all_maybenull_(size)
    512#define _Outptr_opt_result_buffer_maybenull_(size)
    513#define _Outptr_opt_result_buffer_to_(size, count)
    514#define _Outptr_opt_result_buffer_to_maybenull_(size, count)
    515#define _Outptr_opt_result_bytebuffer_(size)
    516#define _Outptr_opt_result_bytebuffer_all_(size)
    517#define _Outptr_opt_result_bytebuffer_all_maybenull_(size)
    518#define _Outptr_opt_result_bytebuffer_maybenull_(size)
    519#define _Outptr_opt_result_bytebuffer_to_(size, count)
    520#define _Outptr_opt_result_bytebuffer_to_maybenull_(size, count)
    521#define _Outptr_opt_result_maybenull_
    522#define _Outptr_opt_result_maybenull_z_
    523#define _Outptr_opt_result_nullonfailure_
    524#define _Outptr_opt_result_z_
    525#define _Outptr_result_buffer_(size)
    526#define _Outptr_result_buffer_all_(size)
    527#define _Outptr_result_buffer_all_maybenull_(size)
    528#define _Outptr_result_buffer_maybenull_(size)
    529#define _Outptr_result_buffer_to_(size, count)
    530#define _Outptr_result_buffer_to_maybenull_(size, count)
    531#define _Outptr_result_bytebuffer_(size)
    532#define _Outptr_result_bytebuffer_all_(size)
    533#define _Outptr_result_bytebuffer_all_maybenull_(size)
    534#define _Outptr_result_bytebuffer_maybenull_(size)
    535#define _Outptr_result_bytebuffer_to_(size, count)
    536#define _Outptr_result_bytebuffer_to_maybenull_(size, count)
    537#define _Outptr_result_maybenull_
    538#define _Outptr_result_maybenull_z_
    539#define _Outptr_result_nullonfailure_
    540#define _Outptr_result_z_
    541#define _Outref_
    542#define _Outref_result_buffer_(size)
    543#define _Outref_result_buffer_all_(size)
    544#define _Outref_result_buffer_all_maybenull_(size)
    545#define _Outref_result_buffer_maybenull_(size)
    546#define _Outref_result_buffer_to_(size, count)
    547#define _Outref_result_buffer_to_maybenull_(size, count)
    548#define _Outref_result_bytebuffer_(size)
    549#define _Outref_result_bytebuffer_all_(size)
    550#define _Outref_result_bytebuffer_all_maybenull_(size)
    551#define _Outref_result_bytebuffer_maybenull_(size)
    552#define _Outref_result_bytebuffer_to_(size, count)
    553#define _Outref_result_bytebuffer_to_maybenull_(size, count)
    554#define _Outref_result_maybenull_
    555#define _Outref_result_nullonfailure_
    556#define _Points_to_data_
    557#define _Post_
    558#define _Post_bytecap_(size)
    559#define _Post_bytecount_(size)
    560#define _Post_bytecount_c_(size)
    561#define _Post_bytecount_x_(size)
    562#define _Post_cap_(size)
    563#define _Post_count_(size)
    564#define _Post_count_c_(size)
    565#define _Post_count_x_(size)
    566#define _Post_defensive_
    567#define _Post_equal_to_(expr)
    568#define _Post_invalid_
    569#define _Post_maybenull_
    570#define _Post_maybez_
    571#define _Post_notnull_
    572#define _Post_null_
    573#define _Post_ptr_invalid_
    574#define _Post_readable_byte_size_(size)
    575#define _Post_readable_size_(size)
    576#define _Post_satisfies_(cond)
    577#define _Post_valid_
    578#define _Post_writable_byte_size_(size)
    579#define _Post_writable_size_(size)
    580#define _Post_z_
    581#define _Post_z_bytecount_(size)
    582#define _Post_z_bytecount_c_(size)
    583#define _Post_z_bytecount_x_(size)
    584#define _Post_z_count_(size)
    585#define _Post_z_count_c_(size)
    586#define _Post_z_count_x_(size)
    587#define _Pre_
    588#define _Pre_bytecap_(size)
    589#define _Pre_bytecap_c_(size)
    590#define _Pre_bytecap_x_(size)
    591#define _Pre_bytecount_(size)
    592#define _Pre_bytecount_c_(size)
    593#define _Pre_bytecount_x_(size)
    594#define _Pre_cap_(size)
    595#define _Pre_cap_c_(size)
    596#define _Pre_cap_c_one_
    597#define _Pre_cap_for_(param)
    598#define _Pre_cap_m_(mult, size)
    599#define _Pre_cap_x_(size)
    600#define _Pre_count_(size)
    601#define _Pre_count_c_(size)
    602#define _Pre_count_x_(size)
    603#define _Pre_defensive_
    604#define _Pre_equal_to_(expr)
    605#define _Pre_invalid_
    606#define _Pre_maybenull_
    607#define _Pre_notnull_
    608#define _Pre_null_
    609#define _Pre_opt_bytecap_(size)
    610#define _Pre_opt_bytecap_c_(size)
    611#define _Pre_opt_bytecap_x_(size)
    612#define _Pre_opt_bytecount_(size)
    613#define _Pre_opt_bytecount_c_(size)
    614#define _Pre_opt_bytecount_x_(size)
    615#define _Pre_opt_cap_(size)
    616#define _Pre_opt_cap_c_(size)
    617#define _Pre_opt_cap_c_one_
    618#define _Pre_opt_cap_for_(param)
    619#define _Pre_opt_cap_m_(mult, size)
    620#define _Pre_opt_cap_x_(size)
    621#define _Pre_opt_count_(size)
    622#define _Pre_opt_count_c_(size)
    623#define _Pre_opt_count_x_(size)
    624#define _Pre_opt_ptrdiff_cap_(ptr)
    625#define _Pre_opt_ptrdiff_count_(ptr)
    626#define _Pre_opt_valid_
    627#define _Pre_opt_valid_bytecap_(size)
    628#define _Pre_opt_valid_bytecap_c_(size)
    629#define _Pre_opt_valid_bytecap_x_(size)
    630#define _Pre_opt_valid_cap_(size)
    631#define _Pre_opt_valid_cap_c_(size)
    632#define _Pre_opt_valid_cap_x_(size)
    633#define _Pre_opt_z_
    634#define _Pre_opt_z_bytecap_(size)
    635#define _Pre_opt_z_bytecap_c_(size)
    636#define _Pre_opt_z_bytecap_x_(size)
    637#define _Pre_opt_z_cap_(size)
    638#define _Pre_opt_z_cap_c_(size)
    639#define _Pre_opt_z_cap_x_(size)
    640#define _Pre_ptrdiff_cap_(ptr)
    641#define _Pre_ptrdiff_count_(ptr)
    642#define _Pre_readable_byte_size_(size)
    643#define _Pre_readable_size_(size)
    644#define _Pre_readonly_
    645#define _Pre_satisfies_(cond)
    646#define _Pre_unknown_
    647#define _Pre_valid_
    648#define _Pre_valid_bytecap_(size)
    649#define _Pre_valid_bytecap_c_(size)
    650#define _Pre_valid_bytecap_x_(size)
    651#define _Pre_valid_cap_(size)
    652#define _Pre_valid_cap_c_(size)
    653#define _Pre_valid_cap_x_(size)
    654#define _Pre_writable_byte_size_(size)
    655#define _Pre_writable_size_(size)
    656#define _Pre_writeonly_
    657#define _Pre_z_
    658#define _Pre_z_bytecap_(size)
    659#define _Pre_z_bytecap_c_(size)
    660#define _Pre_z_bytecap_x_(size)
    661#define _Pre_z_cap_(size)
    662#define _Pre_z_cap_c_(size)
    663#define _Pre_z_cap_x_(size)
    664#define _Prepost_bytecount_(size)
    665#define _Prepost_bytecount_c_(size)
    666#define _Prepost_bytecount_x_(size)
    667#define _Prepost_count_(size)
    668#define _Prepost_count_c_(size)
    669#define _Prepost_count_x_(size)
    670#define _Prepost_opt_bytecount_(size)
    671#define _Prepost_opt_bytecount_c_(size)
    672#define _Prepost_opt_bytecount_x_(size)
    673#define _Prepost_opt_count_(size)
    674#define _Prepost_opt_count_c_(size)
    675#define _Prepost_opt_count_x_(size)
    676#define _Prepost_opt_valid_
    677#define _Prepost_opt_z_
    678#define _Prepost_valid_
    679#define _Prepost_z_
    680#define _Printf_format_string_
    681#define _Raises_SEH_exception_
    682#define _Maybe_raises_SEH_exception_
    683#define _Readable_bytes_(size)
    684#define _Readable_elements_(size)
    685#define _Reserved_
    686#define _Result_nullonfailure_
    687#define _Result_zeroonfailure_
    688#define __inner_callback
    689#define _Ret_
    690#define _Ret_bound_
    691#define _Ret_bytecap_(size)
    692#define _Ret_bytecap_c_(size)
    693#define _Ret_bytecap_x_(size)
    694#define _Ret_bytecount_(size)
    695#define _Ret_bytecount_c_(size)
    696#define _Ret_bytecount_x_(size)
    697#define _Ret_cap_(size)
    698#define _Ret_cap_c_(size)
    699#define _Ret_cap_x_(size)
    700#define _Ret_count_(size)
    701#define _Ret_count_c_(size)
    702#define _Ret_count_x_(size)
    703#define _Ret_maybenull_
    704#define _Ret_maybenull_z_
    705#define _Ret_notnull_
    706#define _Ret_null_
    707#define _Ret_opt_
    708#define _Ret_opt_bytecap_(size)
    709#define _Ret_opt_bytecap_c_(size)
    710#define _Ret_opt_bytecap_x_(size)
    711#define _Ret_opt_bytecount_(size)
    712#define _Ret_opt_bytecount_c_(size)
    713#define _Ret_opt_bytecount_x_(size)
    714#define _Ret_opt_cap_(size)
    715#define _Ret_opt_cap_c_(size)
    716#define _Ret_opt_cap_x_(size)
    717#define _Ret_opt_count_(size)
    718#define _Ret_opt_count_c_(size)
    719#define _Ret_opt_count_x_(size)
    720#define _Ret_opt_valid_
    721#define _Ret_opt_z_
    722#define _Ret_opt_z_bytecap_(size)
    723#define _Ret_opt_z_bytecount_(size)
    724#define _Ret_opt_z_cap_(size)
    725#define _Ret_opt_z_count_(size)
    726#define _Ret_range_(lb, ub)
    727#define _Ret_valid_
    728#define _Ret_writes_(size)
    729#define _Ret_writes_bytes_(size)
    730#define _Ret_writes_bytes_maybenull_(size)
    731#define _Ret_writes_bytes_to_(size, count)
    732#define _Ret_writes_bytes_to_maybenull_(size, count)
    733#define _Ret_writes_maybenull_(size)
    734#define _Ret_writes_maybenull_z_(size)
    735#define _Ret_writes_to_(size, count)
    736#define _Ret_writes_to_maybenull_(size, count)
    737#define _Ret_writes_z_(size)
    738#define _Ret_z_
    739#define _Ret_z_bytecap_(size)
    740#define _Ret_z_bytecount_(size)
    741#define _Ret_z_cap_(size)
    742#define _Ret_z_count_(size)
    743#define _Return_type_success_(expr)
    744#define _Scanf_format_string_
    745#define _Scanf_s_format_string_
    746#define _Struct_size_bytes_(size)
    747#define _Success_(expr)
    748#define _Unchanged_(e)
    749#define _Use_decl_annotations_
    750#define _Valid_
    751#define _When_(expr, annos)
    752#define _Writable_bytes_(size)
    753#define _Writable_elements_(size)
    754
    755#define __bcount(size)
    756#define __bcount_opt(size)
    757#define __deref_bcount(size)
    758#define __deref_bcount_opt(size)
    759#define __deref_ecount(size)
    760#define __deref_ecount_opt(size)
    761#define __deref_in
    762#define __deref_in_bcount(size)
    763#define __deref_in_bcount_opt(size)
    764#define __deref_in_ecount(size)
    765#define __deref_in_ecount_opt(size)
    766#define __deref_in_opt
    767#define __deref_inout
    768#define __deref_inout_bcount(size)
    769#define __deref_inout_bcount_full(size)
    770#define __deref_inout_bcount_full_opt(size)
    771#define __deref_inout_bcount_opt(size)
    772#define __deref_inout_bcount_part(size, length)
    773#define __deref_inout_bcount_part_opt(size, length)
    774#define __deref_inout_ecount(size)
    775#define __deref_inout_ecount_full(size)
    776#define __deref_inout_ecount_full_opt(size)
    777#define __deref_inout_ecount_opt(size)
    778#define __deref_inout_ecount_part(size, length)
    779#define __deref_inout_ecount_part_opt(size, length)
    780#define __deref_inout_opt
    781#define __deref_opt_bcount(size)
    782#define __deref_opt_bcount_opt(size)
    783#define __deref_opt_ecount(size)
    784#define __deref_opt_ecount_opt(size)
    785#define __deref_opt_in
    786#define __deref_opt_in_bcount(size)
    787#define __deref_opt_in_bcount_opt(size)
    788#define __deref_opt_in_ecount(size)
    789#define __deref_opt_in_ecount_opt(size)
    790#define __deref_opt_in_opt
    791#define __deref_opt_inout
    792#define __deref_opt_inout_bcount(size)
    793#define __deref_opt_inout_bcount_full(size)
    794#define __deref_opt_inout_bcount_full_opt(size)
    795#define __deref_opt_inout_bcount_opt(size)
    796#define __deref_opt_inout_bcount_part(size, length)
    797#define __deref_opt_inout_bcount_part_opt(size, length)
    798#define __deref_opt_inout_ecount(size)
    799#define __deref_opt_inout_ecount_full(size)
    800#define __deref_opt_inout_ecount_full_opt(size)
    801#define __deref_opt_inout_ecount_opt(size)
    802#define __deref_opt_inout_ecount_part(size, length)
    803#define __deref_opt_inout_ecount_part_opt(size, length)
    804#define __deref_opt_inout_opt
    805#define __deref_opt_out
    806#define __deref_opt_out_bcount(size)
    807#define __deref_opt_out_bcount_full(size)
    808#define __deref_opt_out_bcount_full_opt(size)
    809#define __deref_opt_out_bcount_opt(size)
    810#define __deref_opt_out_bcount_part(size, length)
    811#define __deref_opt_out_bcount_part_opt(size, length)
    812#define __deref_opt_out_ecount(size)
    813#define __deref_opt_out_ecount_full(size)
    814#define __deref_opt_out_ecount_full_opt(size)
    815#define __deref_opt_out_ecount_opt(size)
    816#define __deref_opt_out_ecount_part(size, length)
    817#define __deref_opt_out_ecount_part_opt(size, length)
    818#define __deref_opt_out_opt
    819#define __deref_out
    820#define __deref_out_bcount(size)
    821#define __deref_out_bcount_full(size)
    822#define __deref_out_bcount_full_opt(size)
    823#define __deref_out_bcount_opt(size)
    824#define __deref_out_bcount_part(size, length)
    825#define __deref_out_bcount_part_opt(size, length)
    826#define __deref_out_ecount(size)
    827#define __deref_out_ecount_full(size)
    828#define __deref_out_ecount_full_opt(size)
    829#define __deref_out_ecount_opt(size)
    830#define __deref_out_ecount_part(size, length)
    831#define __deref_out_ecount_part_opt(size, length)
    832#define __deref_out_opt
    833#define __ecount(size)
    834#define __ecount_opt(size)
    835//#define __in			/* Conflicts with libstdc++ header macros */
    836#define __in_bcount(size)
    837#define __in_bcount_opt(size)
    838#define __in_ecount(size)
    839#define __in_ecount_opt(size)
    840#define __in_opt
    841#define __inout
    842#define __inout_bcount(size)
    843#define __inout_bcount_full(size)
    844#define __inout_bcount_full_opt(size)
    845#define __inout_bcount_opt(size)
    846#define __inout_bcount_part(size, length)
    847#define __inout_bcount_part_opt(size, length)
    848#define __inout_ecount(size)
    849#define __inout_ecount_full(size)
    850#define __inout_ecount_full_opt(size)
    851#define __inout_ecount_opt(size)
    852#define __inout_ecount_part(size, length)
    853#define __inout_ecount_part_opt(size, length)
    854#define __inout_opt
    855//#define __out			/* Conflicts with libstdc++ header macros */
    856#define __out_bcount(size)
    857#define __out_bcount_full(size)
    858#define __out_bcount_full_opt(size)
    859#define __out_bcount_opt(size)
    860#define __out_bcount_part(size, length)
    861#define __out_bcount_part_opt(size, length)
    862#define __out_ecount(size)
    863#define __out_ecount_full(size)
    864#define __out_ecount_full_opt(size)
    865#define __out_ecount_opt(size)
    866#define __out_ecount_part(size, length)
    867#define __out_ecount_part_opt(size, length)
    868#define __out_opt
    869
    870#define __blocksOn(resource)
    871#define __callback
    872#define __checkReturn
    873#define __format_string
    874#define __in_awcount(expr, size)
    875#define __nullnullterminated
    876#define __nullterminated
    877#define __out_awcount(expr, size)
    878#define __override
    879//#define __reserved			/* Conflicts with header included by CarbonCore.h on OS X */
    880#define __success(expr)
    881#define __typefix(ctype)
    882
    883#ifndef _countof
    884#ifndef __cplusplus
    885#define _countof(_Array) (sizeof(_Array) / sizeof(_Array[0]))
    886#else
    887extern "C++"
    888{
    889	template <typename _CountofType, size_t _SizeOfArray>
    890	char (*__countof_helper(_CountofType (&_Array)[_SizeOfArray]))[_SizeOfArray];
    891#define _countof(_Array) sizeof(*__countof_helper(_Array))
    892}
    893#endif
    894#endif
    895
    896/**
    897 * RTL Definitions
    898 */
    899
    900#define MINCHAR 0x80
    901#define MAXCHAR 0x7F
    902
    903#ifndef MINSHORT
    904#define MINSHORT 0x8000
    905#endif
    906
    907#ifndef MAXSHORT
    908#define MAXSHORT 0x7FFF
    909#endif
    910
    911#define MINLONG 0x80000000
    912#define MAXLONG 0x7FFFFFFF
    913#define MAXBYTE 0xFF
    914#define MAXWORD 0xFFFF
    915#define MAXDWORD 0xFFFFFFFF
    916
    917#define FIELD_OFFSET(type, field) ((LONG)(LONG_PTR) & (((type*)0)->field))
    918
    919#define RTL_FIELD_SIZE(type, field) (sizeof(((type*)0)->field))
    920
    921#define RTL_SIZEOF_THROUGH_FIELD(type, field) \
    922	(FIELD_OFFSET(type, field) + RTL_FIELD_SIZE(type, field))
    923
    924#define RTL_CONTAINS_FIELD(Struct, Size, Field) \
    925	((((PCHAR)(&(Struct)->Field)) + sizeof((Struct)->Field)) <= (((PCHAR)(Struct)) + (Size)))
    926
    927#define RTL_NUMBER_OF_V1(A) (sizeof(A) / sizeof((A)[0]))
    928#define RTL_NUMBER_OF_V2(A) RTL_NUMBER_OF_V1(A)
    929
    930#define RTL_NUMBER_OF(A) RTL_NUMBER_OF_V1(A)
    931
    932#define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)
    933#define _ARRAYSIZE(A) RTL_NUMBER_OF_V1(A)
    934
    935#define RTL_FIELD_TYPE(type, field) (((type*)0)->field)
    936
    937#define RTL_NUMBER_OF_FIELD(type, field) (RTL_NUMBER_OF(RTL_FIELD_TYPE(type, field)))
    938
    939#define RTL_PADDING_BETWEEN_FIELDS(T, F1, F2)                                  \
    940	((FIELD_OFFSET(T, F2) > FIELD_OFFSET(T, F1))                               \
    941	     ? (FIELD_OFFSET(T, F2) - FIELD_OFFSET(T, F1) - RTL_FIELD_SIZE(T, F1)) \
    942	     : (FIELD_OFFSET(T, F1) - FIELD_OFFSET(T, F2) - RTL_FIELD_SIZE(T, F2)))
    943
    944#if defined(__cplusplus)
    945#define RTL_CONST_CAST(type) const_cast<type>
    946#else
    947#define RTL_CONST_CAST(type) (type)
    948#endif
    949
    950#define RTL_BITS_OF(sizeOfArg) (sizeof(sizeOfArg) * 8)
    951
    952#define RTL_BITS_OF_FIELD(type, field) (RTL_BITS_OF(RTL_FIELD_TYPE(type, field)))
    953
    954#define CONTAINING_RECORD(address, type, field) \
    955	((type*)((PCHAR)(address) - (ULONG_PTR)(&((type*)0)->field)))
    956
    957#endif
    958
    959#if defined(_WIN32) || defined(__CYGWIN__)
    960#ifdef __GNUC__
    961#define DECLSPEC_EXPORT __attribute__((dllexport))
    962#define DECLSPEC_IMPORT __attribute__((dllimport))
    963#else
    964#define DECLSPEC_EXPORT __declspec(dllexport)
    965#define DECLSPEC_IMPORT __declspec(dllimport)
    966#endif
    967#else
    968#if defined(__GNUC__) && __GNUC__ >= 4
    969#define DECLSPEC_EXPORT __attribute__((visibility("default")))
    970#define DECLSPEC_IMPORT
    971#else
    972#define DECLSPEC_EXPORT
    973#define DECLSPEC_IMPORT
    974#endif
    975#endif
    976
    977#endif /* WINPR_SPEC_H */