#define __noinline __attribute__ ( ( noinline ) )
#define __always_inline __attribute__ ( ( always_inline ) )
#define __noreturn __attribute__ ( ( noreturn ) )
#define __unused __attribute__ ( ( unused ) )
#define __warn_unused_result __attribute__ ( ( warn_unused_result ) )
#define __packed __attribute__ ( ( __packed__ ) )
#define __aligned ( x ) __attribute__ ( ( aligned ( x ) ) )
#define __cache_aligned __attribute__ ( ( aligned ( 64 ) ) )
#define __used __attribute__ ( ( used ) )
#define __section ( x ) __attribute__ ( ( section ( x ) ) )
#define __hidden __attribute__ ( ( visibility ( " hidden " ) ) )
#define __export __attribute__ ( ( visibility ( " default " ) ) )
#define likely ( x ) __builtin_expect ( ! ! ( x ) , 1 )
#define unlikely ( x ) __builtin_expect ( ! ! ( x ) , 0 )
#define __no_sanitize_address __attribute__ ( ( no_sanitize ( " address " ) ) )
#define __deprecated __attribute__ ( ( deprecated ) )
#define __deprecated_msg ( msg ) __attribute__ ( ( deprecated ( msg ) ) )
#define __pure __attribute__ ( ( pure ) )
#define __constfn __attribute__ ( ( const ) )
#define __noclone __attribute__ ( ( noclone ) )
#define __malloc_like __attribute__ ( ( malloc ) )
#define __nullable __attribute__ ( ( nullable ) )
#define __naked __attribute__ ( ( naked ) )
#define __returns_nonnull __attribute__ ( ( returns_nonnull ) )
#define __returns_twice __attribute__ ( ( returns_twice ) )
#define __may_alias __attribute__ ( ( __may_alias__ ) )
#define __weak __attribute__ ( ( weak ) )
#define __weakref ( sym ) __attribute__ ( ( weakref ( #sym ) ) )
#define __alias ( sym ) __attribute__ ( ( alias ( #sym ) ) )
#define __no_sanitize_undefined __attribute__ ( ( no_sanitize ( " undefined " ) ) )
#define __no_sanitize_thread __attribute__ ( ( no_sanitize ( " thread " ) ) )
#define __no_sanitize_memory __attribute__ ( ( no_sanitize ( " memory " ) ) )
#define __no_sanitize_coverage __attribute__ ( ( no_sanitize ( " coverage " ) ) )
#define __printf_like ( fmt_idx , arg_idx ) \
__attribute__ ( ( format ( printf , fmt_idx , arg_idx ) ) )
#define __constructor ( prio ) __attribute__ ( ( constructor ( prio ) ) )
#define __destructor ( prio ) __attribute__ ( ( destructor ( prio ) ) )
#define __fallthrough __attribute__ ( ( fallthrough ) )
#define __restrict __restrict__
#define __restrict
#define static_assert_struct_size_eq ( __struct , __want ) \
_Static_assert ( sizeof ( struct __struct ) == __want , \
" size of struct " # __struct \
" does not match expected size " # __want )
#define static_assert_1 ( cond ) _Static_assert ( cond , #cond )
#define static_assert_2 ( cond , msg ) _Static_assert ( cond , msg )
#define static_assert ( ... ) \
_DISPATCH ( static_assert , PP_NARG ( __VA_ARGS__ ) ) ( __VA_ARGS__ )
#define smp_mb ( ) atomic_thread_fence ( memory_order_seq_cst )
#define smp_rmb ( ) atomic_thread_fence ( memory_order_acquire )
#define smp_wmb ( ) atomic_thread_fence ( memory_order_release )
#define _DISPATCH_ ( name , n ) name ## _ # #n
#define _DISPATCH ( name , n ) _DISPATCH_ ( name , n )
#define PP_ARG_N ( _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , \
_15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , \
_27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , \
_39 , _40 , _41 , _42 , _43 , _44 , _45 , _46 , _47 , _48 , _49 , _50 , \
_51 , _52 , _53 , _54 , _55 , _56 , _57 , _58 , _59 , _60 , _61 , _62 , \
_63 , _64 , N , ... ) \
N
#define PP_RSEQ_N ( ) \
63 , 62 , 61 , 60 , 59 , 58 , 57 , 56 , 55 , 54 , 53 , 52 , 51 , 50 , 49 , 48 , 47 , 46 , \
45 , 44 , 43 , 42 , 41 , 40 , 39 , 38 , 37 , 36 , 35 , 34 , 33 , 32 , 31 , 30 , 29 , \
28 , 27 , 26 , 25 , 24 , 23 , 22 , 21 , 20 , 19 , 18 , 17 , 16 , 15 , 14 , 13 , 12 , \
11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0
#define PP_NARG_HELPER ( ... ) PP_ARG_N ( __VA_ARGS__ )
#define PP_NARG ( ... ) PP_NARG_HELPER ( _ , ## __VA_ARGS__ , PP_RSEQ_N ( ) )
#define CONCAT_ ( a , b ) a # #b
#define CONCAT ( a , b ) CONCAT_ ( a , b )