| 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 | |