LCOV - code coverage report
Current view: top level - zephyr/sys - util_loops.h Hit Total Coverage
Test: new.info Lines: 1 1 100.0 %
Date: 2024-12-22 00:14:23

          Line data    Source code
       1           1 : /*
       2             :  * Copyright (c) 2021, Nordic Semiconductor ASA
       3             :  *
       4             :  * SPDX-License-Identifier: Apache-2.0
       5             :  */
       6             : 
       7             : /**
       8             :  * @file
       9             :  * @brief Internals for looping macros
      10             :  *
      11             :  * Repetitive or obscure helper macros needed by sys/util.h.
      12             :  */
      13             : 
      14             : #ifndef ZEPHYR_INCLUDE_SYS_UTIL_LOOPS_H_
      15             : #define ZEPHYR_INCLUDE_SYS_UTIL_LOOPS_H_
      16             : 
      17             : #define Z_FOR_LOOP_GET_ARG(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, \
      18             :                                 _12, _13, _14, _15, _16, _17, _18, _19, _20, \
      19             :                                 _21, _22, _23, _24, _25, _26, _27, _28, _29, \
      20             :                                 _30, _31, _32, _33, _34, _35, _36, _37, _38, \
      21             :                                 _39, _40, _41, _42, _43, _44, _45, _46, _47, \
      22             :                                 _48, _49, _50, _51, _52, _53, _54, _55, _56, \
      23             :                                 _57, _58, _59, _60, _61, _62, _63, _64, N, ...) N
      24             : 
      25             : #define Z_FOR_LOOP_0(z_call, sep, fixed_arg0, fixed_arg1, ...)
      26             : 
      27             : #define Z_FOR_LOOP_1(z_call, sep, fixed_arg0, fixed_arg1, x) \
      28             :         z_call(0, x, fixed_arg0, fixed_arg1)
      29             : 
      30             : #define Z_FOR_LOOP_2(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
      31             :         Z_FOR_LOOP_1(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
      32             :         __DEBRACKET sep \
      33             :         z_call(1, x, fixed_arg0, fixed_arg1)
      34             : 
      35             : #define Z_FOR_LOOP_3(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
      36             :         Z_FOR_LOOP_2(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
      37             :         __DEBRACKET sep \
      38             :         z_call(2, x, fixed_arg0, fixed_arg1)
      39             : 
      40             : #define Z_FOR_LOOP_4(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
      41             :         Z_FOR_LOOP_3(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
      42             :         __DEBRACKET sep \
      43             :         z_call(3, x, fixed_arg0, fixed_arg1)
      44             : 
      45             : #define Z_FOR_LOOP_5(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
      46             :         Z_FOR_LOOP_4(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
      47             :         __DEBRACKET sep \
      48             :         z_call(4, x, fixed_arg0, fixed_arg1)
      49             : 
      50             : #define Z_FOR_LOOP_6(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
      51             :         Z_FOR_LOOP_5(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
      52             :         __DEBRACKET sep \
      53             :         z_call(5, x, fixed_arg0, fixed_arg1)
      54             : 
      55             : #define Z_FOR_LOOP_7(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
      56             :         Z_FOR_LOOP_6(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
      57             :         __DEBRACKET sep \
      58             :         z_call(6, x, fixed_arg0, fixed_arg1)
      59             : 
      60             : #define Z_FOR_LOOP_8(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
      61             :         Z_FOR_LOOP_7(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
      62             :         __DEBRACKET sep \
      63             :         z_call(7, x, fixed_arg0, fixed_arg1)
      64             : 
      65             : #define Z_FOR_LOOP_9(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
      66             :         Z_FOR_LOOP_8(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
      67             :         __DEBRACKET sep \
      68             :         z_call(8, x, fixed_arg0, fixed_arg1)
      69             : 
      70             : #define Z_FOR_LOOP_10(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
      71             :         Z_FOR_LOOP_9(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
      72             :         __DEBRACKET sep \
      73             :         z_call(9, x, fixed_arg0, fixed_arg1)
      74             : 
      75             : #define Z_FOR_LOOP_11(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
      76             :         Z_FOR_LOOP_10(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
      77             :         __DEBRACKET sep \
      78             :         z_call(10, x, fixed_arg0, fixed_arg1)
      79             : 
      80             : #define Z_FOR_LOOP_12(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
      81             :         Z_FOR_LOOP_11(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
      82             :         __DEBRACKET sep \
      83             :         z_call(11, x, fixed_arg0, fixed_arg1)
      84             : 
      85             : #define Z_FOR_LOOP_13(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
      86             :         Z_FOR_LOOP_12(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
      87             :         __DEBRACKET sep \
      88             :         z_call(12, x, fixed_arg0, fixed_arg1)
      89             : 
      90             : #define Z_FOR_LOOP_14(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
      91             :         Z_FOR_LOOP_13(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
      92             :         __DEBRACKET sep \
      93             :         z_call(13, x, fixed_arg0, fixed_arg1)
      94             : 
      95             : #define Z_FOR_LOOP_15(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
      96             :         Z_FOR_LOOP_14(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
      97             :         __DEBRACKET sep \
      98             :         z_call(14, x, fixed_arg0, fixed_arg1)
      99             : 
     100             : #define Z_FOR_LOOP_16(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     101             :         Z_FOR_LOOP_15(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     102             :         __DEBRACKET sep \
     103             :         z_call(15, x, fixed_arg0, fixed_arg1)
     104             : 
     105             : #define Z_FOR_LOOP_17(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     106             :         Z_FOR_LOOP_16(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     107             :         __DEBRACKET sep \
     108             :         z_call(16, x, fixed_arg0, fixed_arg1)
     109             : 
     110             : #define Z_FOR_LOOP_18(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     111             :         Z_FOR_LOOP_17(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     112             :         __DEBRACKET sep \
     113             :         z_call(17, x, fixed_arg0, fixed_arg1)
     114             : 
     115             : #define Z_FOR_LOOP_19(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     116             :         Z_FOR_LOOP_18(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     117             :         __DEBRACKET sep \
     118             :         z_call(18, x, fixed_arg0, fixed_arg1)
     119             : 
     120             : #define Z_FOR_LOOP_20(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     121             :         Z_FOR_LOOP_19(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     122             :         __DEBRACKET sep \
     123             :         z_call(19, x, fixed_arg0, fixed_arg1)
     124             : 
     125             : #define Z_FOR_LOOP_21(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     126             :         Z_FOR_LOOP_20(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     127             :         __DEBRACKET sep \
     128             :         z_call(20, x, fixed_arg0, fixed_arg1)
     129             : 
     130             : #define Z_FOR_LOOP_22(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     131             :         Z_FOR_LOOP_21(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     132             :         __DEBRACKET sep \
     133             :         z_call(21, x, fixed_arg0, fixed_arg1)
     134             : 
     135             : #define Z_FOR_LOOP_23(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     136             :         Z_FOR_LOOP_22(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     137             :         __DEBRACKET sep \
     138             :         z_call(22, x, fixed_arg0, fixed_arg1)
     139             : 
     140             : #define Z_FOR_LOOP_24(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     141             :         Z_FOR_LOOP_23(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     142             :         __DEBRACKET sep \
     143             :         z_call(23, x, fixed_arg0, fixed_arg1)
     144             : 
     145             : #define Z_FOR_LOOP_25(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     146             :         Z_FOR_LOOP_24(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     147             :         __DEBRACKET sep \
     148             :         z_call(24, x, fixed_arg0, fixed_arg1)
     149             : 
     150             : #define Z_FOR_LOOP_26(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     151             :         Z_FOR_LOOP_25(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     152             :         __DEBRACKET sep \
     153             :         z_call(25, x, fixed_arg0, fixed_arg1)
     154             : 
     155             : #define Z_FOR_LOOP_27(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     156             :         Z_FOR_LOOP_26(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     157             :         __DEBRACKET sep \
     158             :         z_call(26, x, fixed_arg0, fixed_arg1)
     159             : 
     160             : #define Z_FOR_LOOP_28(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     161             :         Z_FOR_LOOP_27(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     162             :         __DEBRACKET sep \
     163             :         z_call(27, x, fixed_arg0, fixed_arg1)
     164             : 
     165             : #define Z_FOR_LOOP_29(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     166             :         Z_FOR_LOOP_28(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     167             :         __DEBRACKET sep \
     168             :         z_call(28, x, fixed_arg0, fixed_arg1)
     169             : 
     170             : #define Z_FOR_LOOP_30(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     171             :         Z_FOR_LOOP_29(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     172             :         __DEBRACKET sep \
     173             :         z_call(29, x, fixed_arg0, fixed_arg1)
     174             : 
     175             : #define Z_FOR_LOOP_31(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     176             :         Z_FOR_LOOP_30(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     177             :         __DEBRACKET sep \
     178             :         z_call(30, x, fixed_arg0, fixed_arg1)
     179             : 
     180             : #define Z_FOR_LOOP_32(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     181             :         Z_FOR_LOOP_31(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     182             :         __DEBRACKET sep \
     183             :         z_call(31, x, fixed_arg0, fixed_arg1)
     184             : 
     185             : #define Z_FOR_LOOP_33(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     186             :         Z_FOR_LOOP_32(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     187             :         __DEBRACKET sep \
     188             :         z_call(32, x, fixed_arg0, fixed_arg1)
     189             : 
     190             : #define Z_FOR_LOOP_34(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     191             :         Z_FOR_LOOP_33(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     192             :         __DEBRACKET sep \
     193             :         z_call(33, x, fixed_arg0, fixed_arg1)
     194             : 
     195             : #define Z_FOR_LOOP_35(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     196             :         Z_FOR_LOOP_34(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     197             :         __DEBRACKET sep \
     198             :         z_call(34, x, fixed_arg0, fixed_arg1)
     199             : 
     200             : #define Z_FOR_LOOP_36(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     201             :         Z_FOR_LOOP_35(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     202             :         __DEBRACKET sep \
     203             :         z_call(35, x, fixed_arg0, fixed_arg1)
     204             : 
     205             : #define Z_FOR_LOOP_37(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     206             :         Z_FOR_LOOP_36(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     207             :         __DEBRACKET sep \
     208             :         z_call(36, x, fixed_arg0, fixed_arg1)
     209             : 
     210             : #define Z_FOR_LOOP_38(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     211             :         Z_FOR_LOOP_37(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     212             :         __DEBRACKET sep \
     213             :         z_call(37, x, fixed_arg0, fixed_arg1)
     214             : 
     215             : #define Z_FOR_LOOP_39(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     216             :         Z_FOR_LOOP_38(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     217             :         __DEBRACKET sep \
     218             :         z_call(38, x, fixed_arg0, fixed_arg1)
     219             : 
     220             : #define Z_FOR_LOOP_40(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     221             :         Z_FOR_LOOP_39(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     222             :         __DEBRACKET sep \
     223             :         z_call(39, x, fixed_arg0, fixed_arg1)
     224             : 
     225             : #define Z_FOR_LOOP_41(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     226             :         Z_FOR_LOOP_40(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     227             :         __DEBRACKET sep \
     228             :         z_call(40, x, fixed_arg0, fixed_arg1)
     229             : 
     230             : #define Z_FOR_LOOP_42(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     231             :         Z_FOR_LOOP_41(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     232             :         __DEBRACKET sep \
     233             :         z_call(41, x, fixed_arg0, fixed_arg1)
     234             : 
     235             : #define Z_FOR_LOOP_43(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     236             :         Z_FOR_LOOP_42(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     237             :         __DEBRACKET sep \
     238             :         z_call(42, x, fixed_arg0, fixed_arg1)
     239             : 
     240             : #define Z_FOR_LOOP_44(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     241             :         Z_FOR_LOOP_43(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     242             :         __DEBRACKET sep \
     243             :         z_call(43, x, fixed_arg0, fixed_arg1)
     244             : 
     245             : #define Z_FOR_LOOP_45(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     246             :         Z_FOR_LOOP_44(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     247             :         __DEBRACKET sep \
     248             :         z_call(44, x, fixed_arg0, fixed_arg1)
     249             : 
     250             : #define Z_FOR_LOOP_46(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     251             :         Z_FOR_LOOP_45(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     252             :         __DEBRACKET sep \
     253             :         z_call(45, x, fixed_arg0, fixed_arg1)
     254             : 
     255             : #define Z_FOR_LOOP_47(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     256             :         Z_FOR_LOOP_46(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     257             :         __DEBRACKET sep \
     258             :         z_call(46, x, fixed_arg0, fixed_arg1)
     259             : 
     260             : #define Z_FOR_LOOP_48(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     261             :         Z_FOR_LOOP_47(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     262             :         __DEBRACKET sep \
     263             :         z_call(47, x, fixed_arg0, fixed_arg1)
     264             : 
     265             : #define Z_FOR_LOOP_49(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     266             :         Z_FOR_LOOP_48(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     267             :         __DEBRACKET sep \
     268             :         z_call(48, x, fixed_arg0, fixed_arg1)
     269             : 
     270             : #define Z_FOR_LOOP_50(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     271             :         Z_FOR_LOOP_49(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     272             :         __DEBRACKET sep \
     273             :         z_call(49, x, fixed_arg0, fixed_arg1)
     274             : 
     275             : #define Z_FOR_LOOP_51(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     276             :         Z_FOR_LOOP_50(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     277             :         __DEBRACKET sep \
     278             :         z_call(50, x, fixed_arg0, fixed_arg1)
     279             : 
     280             : #define Z_FOR_LOOP_52(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     281             :         Z_FOR_LOOP_51(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     282             :         __DEBRACKET sep \
     283             :         z_call(51, x, fixed_arg0, fixed_arg1)
     284             : 
     285             : #define Z_FOR_LOOP_53(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     286             :         Z_FOR_LOOP_52(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     287             :         __DEBRACKET sep \
     288             :         z_call(52, x, fixed_arg0, fixed_arg1)
     289             : 
     290             : #define Z_FOR_LOOP_54(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     291             :         Z_FOR_LOOP_53(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     292             :         __DEBRACKET sep \
     293             :         z_call(53, x, fixed_arg0, fixed_arg1)
     294             : 
     295             : #define Z_FOR_LOOP_55(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     296             :         Z_FOR_LOOP_54(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     297             :         __DEBRACKET sep \
     298             :         z_call(54, x, fixed_arg0, fixed_arg1)
     299             : 
     300             : #define Z_FOR_LOOP_56(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     301             :         Z_FOR_LOOP_55(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     302             :         __DEBRACKET sep \
     303             :         z_call(55, x, fixed_arg0, fixed_arg1)
     304             : 
     305             : #define Z_FOR_LOOP_57(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     306             :         Z_FOR_LOOP_56(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     307             :         __DEBRACKET sep \
     308             :         z_call(56, x, fixed_arg0, fixed_arg1)
     309             : 
     310             : #define Z_FOR_LOOP_58(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     311             :         Z_FOR_LOOP_57(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     312             :         __DEBRACKET sep \
     313             :         z_call(57, x, fixed_arg0, fixed_arg1)
     314             : 
     315             : #define Z_FOR_LOOP_59(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     316             :         Z_FOR_LOOP_58(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     317             :         __DEBRACKET sep \
     318             :         z_call(58, x, fixed_arg0, fixed_arg1)
     319             : 
     320             : #define Z_FOR_LOOP_60(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     321             :         Z_FOR_LOOP_59(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     322             :         __DEBRACKET sep \
     323             :         z_call(59, x, fixed_arg0, fixed_arg1)
     324             : 
     325             : #define Z_FOR_LOOP_61(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     326             :         Z_FOR_LOOP_60(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     327             :         __DEBRACKET sep \
     328             :         z_call(60, x, fixed_arg0, fixed_arg1)
     329             : 
     330             : #define Z_FOR_LOOP_62(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     331             :         Z_FOR_LOOP_61(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     332             :         __DEBRACKET sep \
     333             :         z_call(61, x, fixed_arg0, fixed_arg1)
     334             : 
     335             : #define Z_FOR_LOOP_63(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     336             :         Z_FOR_LOOP_62(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     337             :         __DEBRACKET sep \
     338             :         z_call(62, x, fixed_arg0, fixed_arg1)
     339             : 
     340             : #define Z_FOR_LOOP_64(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
     341             :         Z_FOR_LOOP_63(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
     342             :         __DEBRACKET sep \
     343             :         z_call(63, x, fixed_arg0, fixed_arg1)
     344             : 
     345             : #define Z_FOR_EACH_ENGINE(x, sep, fixed_arg0, fixed_arg1, ...) \
     346             :         Z_FOR_LOOP_GET_ARG(__VA_ARGS__, \
     347             :                 Z_FOR_LOOP_64, \
     348             :                 Z_FOR_LOOP_63, \
     349             :                 Z_FOR_LOOP_62, \
     350             :                 Z_FOR_LOOP_61, \
     351             :                 Z_FOR_LOOP_60, \
     352             :                 Z_FOR_LOOP_59, \
     353             :                 Z_FOR_LOOP_58, \
     354             :                 Z_FOR_LOOP_57, \
     355             :                 Z_FOR_LOOP_56, \
     356             :                 Z_FOR_LOOP_55, \
     357             :                 Z_FOR_LOOP_54, \
     358             :                 Z_FOR_LOOP_53, \
     359             :                 Z_FOR_LOOP_52, \
     360             :                 Z_FOR_LOOP_51, \
     361             :                 Z_FOR_LOOP_50, \
     362             :                 Z_FOR_LOOP_49, \
     363             :                 Z_FOR_LOOP_48, \
     364             :                 Z_FOR_LOOP_47, \
     365             :                 Z_FOR_LOOP_46, \
     366             :                 Z_FOR_LOOP_45, \
     367             :                 Z_FOR_LOOP_44, \
     368             :                 Z_FOR_LOOP_43, \
     369             :                 Z_FOR_LOOP_42, \
     370             :                 Z_FOR_LOOP_41, \
     371             :                 Z_FOR_LOOP_40, \
     372             :                 Z_FOR_LOOP_39, \
     373             :                 Z_FOR_LOOP_38, \
     374             :                 Z_FOR_LOOP_37, \
     375             :                 Z_FOR_LOOP_36, \
     376             :                 Z_FOR_LOOP_35, \
     377             :                 Z_FOR_LOOP_34, \
     378             :                 Z_FOR_LOOP_33, \
     379             :                 Z_FOR_LOOP_32, \
     380             :                 Z_FOR_LOOP_31, \
     381             :                 Z_FOR_LOOP_30, \
     382             :                 Z_FOR_LOOP_29, \
     383             :                 Z_FOR_LOOP_28, \
     384             :                 Z_FOR_LOOP_27, \
     385             :                 Z_FOR_LOOP_26, \
     386             :                 Z_FOR_LOOP_25, \
     387             :                 Z_FOR_LOOP_24, \
     388             :                 Z_FOR_LOOP_23, \
     389             :                 Z_FOR_LOOP_22, \
     390             :                 Z_FOR_LOOP_21, \
     391             :                 Z_FOR_LOOP_20, \
     392             :                 Z_FOR_LOOP_19, \
     393             :                 Z_FOR_LOOP_18, \
     394             :                 Z_FOR_LOOP_17, \
     395             :                 Z_FOR_LOOP_16, \
     396             :                 Z_FOR_LOOP_15, \
     397             :                 Z_FOR_LOOP_14, \
     398             :                 Z_FOR_LOOP_13, \
     399             :                 Z_FOR_LOOP_12, \
     400             :                 Z_FOR_LOOP_11, \
     401             :                 Z_FOR_LOOP_10, \
     402             :                 Z_FOR_LOOP_9, \
     403             :                 Z_FOR_LOOP_8, \
     404             :                 Z_FOR_LOOP_7, \
     405             :                 Z_FOR_LOOP_6, \
     406             :                 Z_FOR_LOOP_5, \
     407             :                 Z_FOR_LOOP_4, \
     408             :                 Z_FOR_LOOP_3, \
     409             :                 Z_FOR_LOOP_2, \
     410             :                 Z_FOR_LOOP_1, \
     411             :                 Z_FOR_LOOP_0)(x, sep, fixed_arg0, fixed_arg1, __VA_ARGS__)
     412             : 
     413             : #define Z_GET_ARG_1(_0, ...) _0
     414             : 
     415             : #define Z_GET_ARG_2(_0, _1, ...) _1
     416             : 
     417             : #define Z_GET_ARG_3(_0, _1, _2, ...) _2
     418             : 
     419             : #define Z_GET_ARG_4(_0, _1, _2, _3, ...) _3
     420             : 
     421             : #define Z_GET_ARG_5(_0, _1, _2, _3, _4, ...) _4
     422             : 
     423             : #define Z_GET_ARG_6(_0, _1, _2, _3, _4, _5, ...) _5
     424             : 
     425             : #define Z_GET_ARG_7(_0, _1, _2, _3, _4, _5, _6, ...) _6
     426             : 
     427             : #define Z_GET_ARG_8(_0, _1, _2, _3, _4, _5, _6, _7, ...) _7
     428             : 
     429             : #define Z_GET_ARG_9(_0, _1, _2, _3, _4, _5, _6, _7, _8, ...) _8
     430             : 
     431             : #define Z_GET_ARG_10(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, ...) _9
     432             : 
     433             : #define Z_GET_ARG_11(_0, _1, _2, _3, _4, _5, \
     434             :                           _6, _7, _8, _9, _10, ...) _10
     435             : 
     436             : #define Z_GET_ARG_12(_0, _1, _2, _3, _4, _5, _6,\
     437             :                           _7, _8, _9, _10, _11, ...) _11
     438             : 
     439             : #define Z_GET_ARG_13(_0, _1, _2, _3, _4, _5, _6, \
     440             :                           _7, _8, _9, _10, _11, _12, ...) _12
     441             : 
     442             : #define Z_GET_ARG_14(_0, _1, _2, _3, _4, _5, _6, \
     443             :                           _7, _8, _9, _10, _11, _12, _13, ...) _13
     444             : 
     445             : #define Z_GET_ARG_15(_0, _1, _2, _3, _4, _5, _6, _7, \
     446             :                           _8, _9, _10, _11, _12, _13, _14, ...) _14
     447             : 
     448             : #define Z_GET_ARG_16(_0, _1, _2, _3, _4, _5, _6, _7, \
     449             :                           _8, _9, _10, _11, _12, _13, _14, _15, ...) _15
     450             : 
     451             : #define Z_GET_ARG_17(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     452             :                           _11, _12, _13, _14, _15, _16, ...) _16
     453             : 
     454             : #define Z_GET_ARG_18(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     455             :                           _11, _12, _13, _14, _15, _16, _17, ...) _17
     456             : 
     457             : #define Z_GET_ARG_19(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     458             :                           _11, _12, _13, _14, _15, _16, _17, _18, ...) _18
     459             : 
     460             : #define Z_GET_ARG_20(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     461             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     462             :                           ...) _19
     463             : 
     464             : #define Z_GET_ARG_21(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     465             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     466             :                           _20, ...) _20
     467             : 
     468             : #define Z_GET_ARG_22(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     469             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     470             :                           _20, _21, ...) _21
     471             : 
     472             : #define Z_GET_ARG_23(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     473             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     474             :                           _20, _21, _22, ...) _22
     475             : 
     476             : #define Z_GET_ARG_24(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     477             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     478             :                           _20, _21, _22, _23, ...) _23
     479             : 
     480             : #define Z_GET_ARG_25(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     481             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     482             :                           _20, _21, _22, _23, _24, ...) _24
     483             : 
     484             : #define Z_GET_ARG_26(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     485             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     486             :                           _20, _21, _22, _23, _24, _25, ...) _25
     487             : 
     488             : #define Z_GET_ARG_27(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     489             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     490             :                           _20, _21, _22, _23, _24, _25, _26, ...) _26
     491             : 
     492             : #define Z_GET_ARG_28(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     493             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     494             :                           _20, _21, _22, _23, _24, _25, _26, _27, ...) _27
     495             : 
     496             : #define Z_GET_ARG_29(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     497             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     498             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     499             :                           ...) _28
     500             : 
     501             : #define Z_GET_ARG_30(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     502             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     503             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     504             :                           _29, ...) _29
     505             : 
     506             : #define Z_GET_ARG_31(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     507             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     508             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     509             :                           _29, _30, ...) _30
     510             : 
     511             : #define Z_GET_ARG_32(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     512             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     513             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     514             :                           _29, _30, _31, ...) _31
     515             : 
     516             : #define Z_GET_ARG_33(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     517             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     518             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     519             :                           _29, _30, _31, _32, ...) _32
     520             : 
     521             : #define Z_GET_ARG_34(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     522             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     523             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     524             :                           _29, _30, _31, _32, _33, ...) _33
     525             : 
     526             : #define Z_GET_ARG_35(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     527             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     528             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     529             :                           _29, _30, _31, _32, _33, _34, ...) _34
     530             : 
     531             : #define Z_GET_ARG_36(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     532             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     533             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     534             :                           _29, _30, _31, _32, _33, _34, _35, ...) _35
     535             : 
     536             : #define Z_GET_ARG_37(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     537             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     538             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     539             :                           _29, _30, _31, _32, _33, _34, _35, _36, ...) _36
     540             : 
     541             : #define Z_GET_ARG_38(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     542             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     543             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     544             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, ...) _37
     545             : 
     546             : #define Z_GET_ARG_39(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     547             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     548             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     549             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     550             :                           _38, ...) _38
     551             : 
     552             : #define Z_GET_ARG_40(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     553             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     554             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     555             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     556             :                           _38, _39, ...) _39
     557             : 
     558             : #define Z_GET_ARG_41(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     559             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     560             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     561             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     562             :                           _38, _39, _40, ...) _40
     563             : 
     564             : #define Z_GET_ARG_42(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     565             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     566             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     567             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     568             :                           _38, _39, _40, _41, ...) _41
     569             : 
     570             : #define Z_GET_ARG_43(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     571             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     572             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     573             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     574             :                           _38, _39, _40, _41, _42, ...) _42
     575             : 
     576             : #define Z_GET_ARG_44(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     577             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     578             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     579             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     580             :                           _38, _39, _40, _41, _42, _43, ...) _43
     581             : 
     582             : #define Z_GET_ARG_45(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     583             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     584             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     585             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     586             :                           _38, _39, _40, _41, _42, _43, _44, ...) _44
     587             : 
     588             : #define Z_GET_ARG_46(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     589             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     590             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     591             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     592             :                           _38, _39, _40, _41, _42, _43, _44, _45, ...) _45
     593             : 
     594             : #define Z_GET_ARG_47(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     595             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     596             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     597             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     598             :                           _38, _39, _40, _41, _42, _43, _44, _45, _46, ...) _46
     599             : 
     600             : #define Z_GET_ARG_48(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     601             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     602             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     603             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     604             :                           _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     605             :                           _47, ...) _47
     606             : 
     607             : #define Z_GET_ARG_49(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     608             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     609             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     610             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     611             :                           _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     612             :                           _47, _48, ...) _48
     613             : 
     614             : #define Z_GET_ARG_50(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     615             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     616             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     617             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     618             :                           _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     619             :                           _47, _48, _49, ...) _49
     620             : 
     621             : #define Z_GET_ARG_51(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     622             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     623             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     624             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     625             :                           _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     626             :                           _47, _48, _49, _50, ...) _50
     627             : 
     628             : #define Z_GET_ARG_52(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     629             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     630             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     631             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     632             :                           _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     633             :                           _47, _48, _49, _50, _51, ...) _51
     634             : 
     635             : #define Z_GET_ARG_53(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     636             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     637             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     638             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     639             :                           _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     640             :                           _47, _48, _49, _50, _51, _52, ...) _52
     641             : 
     642             : #define Z_GET_ARG_54(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     643             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     644             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     645             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     646             :                           _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     647             :                           _47, _48, _49, _50, _51, _52, _53, ...) _53
     648             : 
     649             : #define Z_GET_ARG_55(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     650             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     651             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     652             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     653             :                           _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     654             :                           _47, _48, _49, _50, _51, _52, _53, _54, ...) _54
     655             : 
     656             : #define Z_GET_ARG_56(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     657             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     658             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     659             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     660             :                           _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     661             :                           _47, _48, _49, _50, _51, _52, _53, _54, _55, ...) _55
     662             : 
     663             : #define Z_GET_ARG_57(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     664             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     665             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     666             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     667             :                           _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     668             :                           _47, _48, _49, _50, _51, _52, _53, _54, _55, \
     669             :                           _56, ...) _56
     670             : 
     671             : #define Z_GET_ARG_58(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     672             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     673             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     674             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     675             :                           _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     676             :                           _47, _48, _49, _50, _51, _52, _53, _54, _55, \
     677             :                           _56, _57, ...) _57
     678             : 
     679             : #define Z_GET_ARG_59(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     680             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     681             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     682             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     683             :                           _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     684             :                           _47, _48, _49, _50, _51, _52, _53, _54, _55, \
     685             :                           _56, _57, _58, ...) _58
     686             : 
     687             : #define Z_GET_ARG_60(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     688             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     689             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     690             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     691             :                           _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     692             :                           _47, _48, _49, _50, _51, _52, _53, _54, _55, \
     693             :                           _56, _57, _58, _59, ...) _59
     694             : 
     695             : #define Z_GET_ARG_61(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     696             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     697             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     698             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     699             :                           _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     700             :                           _47, _48, _49, _50, _51, _52, _53, _54, _55, \
     701             :                           _56, _57, _58, _59, _60, ...) _60
     702             : 
     703             : #define Z_GET_ARG_62(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     704             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     705             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     706             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     707             :                           _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     708             :                           _47, _48, _49, _50, _51, _52, _53, _54, _55, \
     709             :                           _56, _57, _58, _59, _60, _61, ...) _61
     710             : 
     711             : #define Z_GET_ARG_63(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     712             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     713             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     714             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     715             :                           _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     716             :                           _47, _48, _49, _50, _51, _52, _53, _54, _55, \
     717             :                           _56, _57, _58, _59, _60, _61, _62, ...) _62
     718             : 
     719             : #define Z_GET_ARG_64(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     720             :                           _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     721             :                           _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     722             :                           _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     723             :                           _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     724             :                           _47, _48, _49, _50, _51, _52, _53, _54, _55, \
     725             :                           _56, _57, _58, _59, _60, _61, _62, _63, ...) _63
     726             : 
     727             : #define Z_GET_ARGS_LESS_0(...) __VA_ARGS__
     728             : 
     729             : #define Z_GET_ARGS_LESS_1(_0, ...) __VA_ARGS__
     730             : 
     731             : #define Z_GET_ARGS_LESS_2(_0, _1, ...) __VA_ARGS__
     732             : 
     733             : #define Z_GET_ARGS_LESS_3(_0, _1, _2, ...) __VA_ARGS__
     734             : 
     735             : #define Z_GET_ARGS_LESS_4(_0, _1, _2, _3, ...) __VA_ARGS__
     736             : 
     737             : #define Z_GET_ARGS_LESS_5(_0, _1, _2, _3, _4, ...) __VA_ARGS__
     738             : 
     739             : #define Z_GET_ARGS_LESS_6(_0, _1, _2, _3, _4, _5, ...) __VA_ARGS__
     740             : 
     741             : #define Z_GET_ARGS_LESS_7(_0, _1, _2, _3, _4, _5, _6, ...) __VA_ARGS__
     742             : 
     743             : #define Z_GET_ARGS_LESS_8(_0, _1, _2, _3, _4, _5, \
     744             :                                 _6, _7, ...) __VA_ARGS__
     745             : 
     746             : #define Z_GET_ARGS_LESS_9(_0, _1, _2, _3, _4, _5, \
     747             :                                 _6, _7, _8, ...) __VA_ARGS__
     748             : 
     749             : #define Z_GET_ARGS_LESS_10(_0, _1, _2, _3, _4, _5, \
     750             :                                 _6, _7, _8, _9, ...) __VA_ARGS__
     751             : 
     752             : #define Z_GET_ARGS_LESS_11(_0, _1, _2, _3, _4, _5, \
     753             :                                 _6, _7, _8, _9, _10, ...) __VA_ARGS__
     754             : 
     755             : #define Z_GET_ARGS_LESS_12(_0, _1, _2, _3, _4, _5, _6,\
     756             :                                 _7, _8, _9, _10, _11, ...) __VA_ARGS__
     757             : 
     758             : #define Z_GET_ARGS_LESS_13(_0, _1, _2, _3, _4, _5, _6, \
     759             :                                 _7, _8, _9, _10, _11, _12, ...) __VA_ARGS__
     760             : 
     761             : #define Z_GET_ARGS_LESS_14(_0, _1, _2, _3, _4, _5, _6, \
     762             :                                 _7, _8, _9, _10, _11, _12, _13, \
     763             :                                 ...) __VA_ARGS__
     764             : 
     765             : #define Z_GET_ARGS_LESS_15(_0, _1, _2, _3, _4, _5, _6, _7, \
     766             :                                 _8, _9, _10, _11, _12, _13, _14, \
     767             :                                 ...) __VA_ARGS__
     768             : 
     769             : #define Z_GET_ARGS_LESS_16(_0, _1, _2, _3, _4, _5, _6, _7, \
     770             :                                 _8, _9, _10, _11, _12, _13, _14, _15, ...) \
     771             :                                 __VA_ARGS__
     772             : 
     773             : #define Z_GET_ARGS_LESS_17(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     774             :                                 _11, _12, _13, _14, _15, _16, ...) __VA_ARGS__
     775             : 
     776             : #define Z_GET_ARGS_LESS_18(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     777             :                                 _11, _12, _13, _14, _15, _16, _17, ...) \
     778             :                                 __VA_ARGS__
     779             : 
     780             : #define Z_GET_ARGS_LESS_19(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     781             :                                 _11, _12, _13, _14, _15, _16, _17, _18, ...) \
     782             :                                 __VA_ARGS__
     783             : 
     784             : #define Z_GET_ARGS_LESS_20(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     785             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     786             :                                 ...) __VA_ARGS__
     787             : 
     788             : #define Z_GET_ARGS_LESS_21(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     789             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     790             :                                 _20, ...) __VA_ARGS__
     791             : 
     792             : #define Z_GET_ARGS_LESS_22(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     793             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     794             :                                 _20, _21, ...) __VA_ARGS__
     795             : 
     796             : #define Z_GET_ARGS_LESS_23(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     797             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     798             :                                 _20, _21, _22, ...) __VA_ARGS__
     799             : 
     800             : #define Z_GET_ARGS_LESS_24(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     801             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     802             :                                 _20, _21, _22, _23, ...) __VA_ARGS__
     803             : 
     804             : #define Z_GET_ARGS_LESS_25(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     805             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     806             :                                 _20, _21, _22, _23, _24, ...) __VA_ARGS__
     807             : 
     808             : #define Z_GET_ARGS_LESS_26(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     809             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     810             :                                 _20, _21, _22, _23, _24, _25, ...) __VA_ARGS__
     811             : 
     812             : #define Z_GET_ARGS_LESS_27(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     813             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     814             :                                 _20, _21, _22, _23, _24, _25, _26, ...) \
     815             :                                 __VA_ARGS__
     816             : 
     817             : #define Z_GET_ARGS_LESS_28(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     818             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     819             :                                 _20, _21, _22, _23, _24, _25, _26, _27, \
     820             :                                 ...) __VA_ARGS__
     821             : 
     822             : #define Z_GET_ARGS_LESS_29(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     823             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     824             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     825             :                                 ...) __VA_ARGS__
     826             : 
     827             : #define Z_GET_ARGS_LESS_30(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     828             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     829             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     830             :                                 _29, ...) __VA_ARGS__
     831             : 
     832             : #define Z_GET_ARGS_LESS_31(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     833             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     834             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     835             :                                 _29, _30, ...) __VA_ARGS__
     836             : 
     837             : #define Z_GET_ARGS_LESS_32(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     838             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     839             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     840             :                                 _29, _30, _31, ...) __VA_ARGS__
     841             : 
     842             : #define Z_GET_ARGS_LESS_33(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     843             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     844             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     845             :                                 _29, _30, _31, _32, ...) __VA_ARGS__
     846             : 
     847             : #define Z_GET_ARGS_LESS_34(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     848             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     849             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     850             :                                 _29, _30, _31, _32, _33, ...) __VA_ARGS__
     851             : 
     852             : #define Z_GET_ARGS_LESS_35(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     853             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     854             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     855             :                                 _29, _30, _31, _32, _33, _34, ...) __VA_ARGS__
     856             : 
     857             : #define Z_GET_ARGS_LESS_36(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     858             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     859             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     860             :                                 _29, _30, _31, _32, _33, _34, _35, ...) __VA_ARGS__
     861             : 
     862             : #define Z_GET_ARGS_LESS_37(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     863             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     864             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     865             :                                 _29, _30, _31, _32, _33, _34, _35, _36, ...) __VA_ARGS__
     866             : 
     867             : #define Z_GET_ARGS_LESS_38(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     868             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     869             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     870             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, ...) __VA_ARGS__
     871             : 
     872             : #define Z_GET_ARGS_LESS_39(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     873             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     874             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     875             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     876             :                                 _38, ...) __VA_ARGS__
     877             : 
     878             : #define Z_GET_ARGS_LESS_40(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     879             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     880             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     881             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     882             :                                 _38, _39, ...) __VA_ARGS__
     883             : 
     884             : #define Z_GET_ARGS_LESS_41(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     885             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     886             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     887             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     888             :                                 _38, _39, _40, ...) __VA_ARGS__
     889             : 
     890             : #define Z_GET_ARGS_LESS_42(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     891             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     892             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     893             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     894             :                                 _38, _39, _40, _41, ...) __VA_ARGS__
     895             : 
     896             : #define Z_GET_ARGS_LESS_43(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     897             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     898             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     899             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     900             :                                 _38, _39, _40, _41, _42, ...) __VA_ARGS__
     901             : 
     902             : #define Z_GET_ARGS_LESS_44(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     903             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     904             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     905             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     906             :                                 _38, _39, _40, _41, _42, _43, ...) __VA_ARGS__
     907             : 
     908             : #define Z_GET_ARGS_LESS_45(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     909             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     910             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     911             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     912             :                                 _38, _39, _40, _41, _42, _43, _44, ...) __VA_ARGS__
     913             : 
     914             : #define Z_GET_ARGS_LESS_46(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     915             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     916             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     917             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     918             :                                 _38, _39, _40, _41, _42, _43, _44, _45, ...) __VA_ARGS__
     919             : 
     920             : #define Z_GET_ARGS_LESS_47(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     921             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     922             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     923             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     924             :                                 _38, _39, _40, _41, _42, _43, _44, _45, _46, ...) __VA_ARGS__
     925             : 
     926             : #define Z_GET_ARGS_LESS_48(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     927             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     928             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     929             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     930             :                                 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     931             :                                 _47, ...) __VA_ARGS__
     932             : 
     933             : #define Z_GET_ARGS_LESS_49(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     934             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     935             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     936             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     937             :                                 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     938             :                                 _47, _48, ...) __VA_ARGS__
     939             : 
     940             : #define Z_GET_ARGS_LESS_50(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     941             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     942             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     943             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     944             :                                 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     945             :                                 _47, _48, _49, ...) __VA_ARGS__
     946             : 
     947             : #define Z_GET_ARGS_LESS_51(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     948             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     949             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     950             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     951             :                                 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     952             :                                 _47, _48, _49, _50, ...) __VA_ARGS__
     953             : 
     954             : #define Z_GET_ARGS_LESS_52(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     955             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     956             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     957             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     958             :                                 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     959             :                                 _47, _48, _49, _50, _51, ...) __VA_ARGS__
     960             : 
     961             : #define Z_GET_ARGS_LESS_53(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     962             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     963             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     964             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     965             :                                 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     966             :                                 _47, _48, _49, _50, _51, _52, ...) __VA_ARGS__
     967             : 
     968             : #define Z_GET_ARGS_LESS_54(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     969             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     970             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     971             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     972             :                                 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     973             :                                 _47, _48, _49, _50, _51, _52, _53, ...) __VA_ARGS__
     974             : 
     975             : #define Z_GET_ARGS_LESS_55(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     976             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     977             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     978             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     979             :                                 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     980             :                                 _47, _48, _49, _50, _51, _52, _53, _54, ...) __VA_ARGS__
     981             : 
     982             : #define Z_GET_ARGS_LESS_56(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     983             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     984             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     985             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     986             :                                 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     987             :                                 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
     988             :                                 ...) __VA_ARGS__
     989             : 
     990             : #define Z_GET_ARGS_LESS_57(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     991             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
     992             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
     993             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
     994             :                                 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
     995             :                                 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
     996             :                                 _56, ...) __VA_ARGS__
     997             : 
     998             : #define Z_GET_ARGS_LESS_58(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
     999             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
    1000             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
    1001             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
    1002             :                                 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
    1003             :                                 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
    1004             :                                 _56, _57, ...) __VA_ARGS__
    1005             : 
    1006             : #define Z_GET_ARGS_LESS_59(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
    1007             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
    1008             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
    1009             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
    1010             :                                 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
    1011             :                                 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
    1012             :                                 _56, _57, _58, ...) __VA_ARGS__
    1013             : 
    1014             : #define Z_GET_ARGS_LESS_60(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
    1015             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
    1016             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
    1017             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
    1018             :                                 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
    1019             :                                 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
    1020             :                                 _56, _57, _58, _59, ...) __VA_ARGS__
    1021             : 
    1022             : #define Z_GET_ARGS_LESS_61(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
    1023             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
    1024             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
    1025             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
    1026             :                                 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
    1027             :                                 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
    1028             :                                 _56, _57, _58, _59, _60, ...) __VA_ARGS__
    1029             : 
    1030             : #define Z_GET_ARGS_LESS_62(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
    1031             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
    1032             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
    1033             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
    1034             :                                 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
    1035             :                                 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
    1036             :                                 _56, _57, _58, _59, _60, _61, ...) __VA_ARGS__
    1037             : 
    1038             : #define Z_GET_ARGS_LESS_63(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
    1039             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
    1040             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
    1041             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
    1042             :                                 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
    1043             :                                 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
    1044             :                                 _56, _57, _58, _59, _60, _61, _62, ...) __VA_ARGS__
    1045             : 
    1046             : #define Z_GET_ARGS_LESS_64(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
    1047             :                                 _11, _12, _13, _14, _15, _16, _17, _18, _19, \
    1048             :                                 _20, _21, _22, _23, _24, _25, _26, _27, _28, \
    1049             :                                 _29, _30, _31, _32, _33, _34, _35, _36, _37, \
    1050             :                                 _38, _39, _40, _41, _42, _43, _44, _45, _46, \
    1051             :                                 _47, _48, _49, _50, _51, _52, _53, _54, _55, \
    1052             :                                 _56, _57, _58, _59, _60, _61, _62, _63, ...) __VA_ARGS__
    1053             : 
    1054             : #define Z_FOR_EACH_IDX_FIXED_ARG_EXEC(idx, x, fixed_arg0, fixed_arg1) \
    1055             :         fixed_arg0(idx, x, fixed_arg1)
    1056             : 
    1057             : #define Z_FOR_EACH_IDX_FIXED_ARG(F, sep, fixed_arg, ...) \
    1058             :         Z_FOR_EACH_ENGINE(Z_FOR_EACH_IDX_FIXED_ARG_EXEC, sep, \
    1059             :                              F, fixed_arg, __VA_ARGS__)
    1060             : 
    1061             : #define Z_FOR_EACH_FIXED_ARG_EXEC(idx, x, fixed_arg0, fixed_arg1) \
    1062             :         fixed_arg0(x, fixed_arg1)
    1063             : 
    1064             : #define Z_FOR_EACH_FIXED_ARG(F, sep, fixed_arg, ...) \
    1065             :         Z_FOR_EACH_ENGINE(Z_FOR_EACH_FIXED_ARG_EXEC, sep, \
    1066             :                              F, fixed_arg, __VA_ARGS__)
    1067             : 
    1068             : #define Z_FOR_EACH_IDX_EXEC(idx, x, fixed_arg0, fixed_arg1) \
    1069             :         fixed_arg0(idx, x)
    1070             : 
    1071             : #define Z_FOR_EACH_IDX(F, sep, ...) \
    1072             :         Z_FOR_EACH_ENGINE(Z_FOR_EACH_IDX_EXEC, sep, F, _, __VA_ARGS__)
    1073             : 
    1074             : #define Z_FOR_EACH_EXEC(idx, x, fixed_arg0, fixed_arg1) \
    1075             :         fixed_arg0(x)
    1076             : 
    1077             : #define Z_FOR_EACH(F, sep, ...) \
    1078             :         Z_FOR_EACH_ENGINE(Z_FOR_EACH_EXEC, sep, F, _, __VA_ARGS__)
    1079             : 
    1080             : #define Z_BYPASS(x) x
    1081             : 
    1082             : /* Set of UTIL_LISTIFY particles */
    1083             : #include "util_listify.h"
    1084             : 
    1085             : #endif /* ZEPHYR_INCLUDE_SYS_UTIL_LOOPS_H_ */

Generated by: LCOV version 1.14