1#ifndef KMP_TASK_DEPS_H
2#define KMP_TASK_DEPS_H
3
4#include <stddef.h> /* size_t */
5
6// ---------------------------------------------------------------------------
7// internal data to emulate compiler codegen
8typedef struct DEP {
9 size_t addr;
10 size_t len;
11 unsigned char flags;
12} dep;
13
14typedef struct task {
15 void **shareds;
16 void *entry;
17 int part_id;
18 void *destr_thunk;
19 int priority;
20 long long device_id;
21 int f_priv;
22} kmp_task_t;
23typedef int (*entry_t)(int, kmp_task_t *);
24typedef struct ID {
25 int reserved_1;
26 int flags;
27 int reserved_2;
28 int reserved_3;
29 char *psource;
30} id;
31
32#define TIED 1
33
34struct kmp_depnode_list;
35
36typedef struct kmp_base_depnode {
37 struct kmp_depnode_list *successors;
38 /* [...] more stuff down here */
39} kmp_base_depnode_t;
40
41typedef struct kmp_depnode_list {
42 struct kmp_base_depnode *node;
43 struct kmp_depnode_list *next;
44} kmp_depnode_list_t;
45
46static id loc = {0, 2, 0, 0, ";file;func;0;0;;"};
47kmp_task_t *__kmpc_omp_task_alloc(id *loc, int gtid, int flags, size_t sz,
48 size_t shar, entry_t rtn);
49int __kmpc_omp_task_with_deps(id *loc, int gtid, kmp_task_t *task, int nd,
50 dep *dep_lst, int nd_noalias,
51 dep *noalias_dep_lst);
52kmp_depnode_list_t *__kmpc_task_get_successors(kmp_task_t *task);
53kmp_base_depnode_t *__kmpc_task_get_depnode(kmp_task_t *task);
54int __kmpc_global_thread_num(id *);
55
56#endif /* KMP_TASK_DEPS_H */
57

source code of openmp/runtime/test/tasking/kmp_task_deps.h