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 |
8 | typedef struct DEP { |
9 | size_t addr; |
10 | size_t len; |
11 | unsigned char flags; |
12 | } dep; |
13 | |
14 | typedef 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; |
23 | typedef int (*entry_t)(int, kmp_task_t *); |
24 | typedef 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 | |
34 | struct kmp_depnode_list; |
35 | |
36 | typedef struct kmp_base_depnode { |
37 | struct kmp_depnode_list *successors; |
38 | /* [...] more stuff down here */ |
39 | } kmp_base_depnode_t; |
40 | |
41 | typedef struct kmp_depnode_list { |
42 | struct kmp_base_depnode *node; |
43 | struct kmp_depnode_list *next; |
44 | } kmp_depnode_list_t; |
45 | |
46 | static id loc = {0, 2, 0, 0, ";file;func;0;0;;" }; |
47 | kmp_task_t *__kmpc_omp_task_alloc(id *loc, int gtid, int flags, size_t sz, |
48 | size_t shar, entry_t rtn); |
49 | int __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); |
52 | kmp_depnode_list_t *__kmpc_task_get_successors(kmp_task_t *task); |
53 | kmp_base_depnode_t *__kmpc_task_get_depnode(kmp_task_t *task); |
54 | int __kmpc_global_thread_num(id *); |
55 | |
56 | #endif /* KMP_TASK_DEPS_H */ |
57 | |