5#if !(KMP_ARCH_X86 || KMP_ARCH_X86_64 || KMP_MIC || KMP_ARCH_AARCH64 || \
6 KMP_ARCH_PPC64 || KMP_ARCH_RISCV64 || KMP_ARCH_LOONGARCH64 || \
7 KMP_ARCH_ARM || KMP_ARCH_VE || KMP_ARCH_S390X || KMP_ARCH_PPC_XCOFF || \
12template <
size_t... Indices>
14 void *p_argv[], std::index_sequence<Indices...>) {
18 using typed_microtask_t =
20 (*(typed_microtask_t)pkfn)(gtid, tid, p_argv[Indices]...);
36#define KMP_INVOKE_MICROTASK_CASE(N) \
38 invokeMicrotask(pkfn, >id, &tid, p_argv, std::make_index_sequence<N>{}); \
59 fprintf(stderr,
"Too many args to microtask: %d!\n", argc);
64#undef KMP_INVOKE_MICROTASK_CASE
void * microtask_argument_t
#define KMP_INVOKE_MICROTASK_CASE(N)
int __kmp_invoke_microtask(microtask_t pkfn, int gtid, int tid, int argc, void *p_argv[])
static void invokeMicrotask(microtask_t pkfn, int *gtid, int *tid, void *p_argv[], std::index_sequence< Indices... >)
void(* microtask_t)(int *gtid, int *npr,...)
#define OMPT_GET_FRAME_ADDRESS(level)