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_ */ 1086