blob: 5a1f2b0806a8a5c49041b6045d805254662300a2 [file] [log] [blame]
#ifndef KMP_TASK_DEPS_H
#define KMP_TASK_DEPS_H
#include <stddef.h> /* size_t */
// ---------------------------------------------------------------------------
// internal data to emulate compiler codegen
typedef struct DEP {
size_t addr;
size_t len;
unsigned char flags;
} dep;
typedef struct task {
void **shareds;
void *entry;
int part_id;
void *destr_thunk;
int priority;
long long device_id;
int f_priv;
} kmp_task_t;
typedef int (*entry_t)(int, kmp_task_t *);
typedef struct ID {
int reserved_1;
int flags;
int reserved_2;
int reserved_3;
char *psource;
} id;
#define TIED 1
struct kmp_depnode_list;
typedef struct kmp_base_depnode {
struct kmp_depnode_list *successors;
/* [...] more stuff down here */
} kmp_base_depnode_t;
typedef struct kmp_depnode_list {
struct kmp_base_depnode *node;
struct kmp_depnode_list *next;
} kmp_depnode_list_t;
static id loc = {0, 2, 0, 0, ";file;func;0;0;;"};
kmp_task_t *__kmpc_omp_task_alloc(id *loc, int gtid, int flags, size_t sz,
size_t shar, entry_t rtn);
int __kmpc_omp_task_with_deps(id *loc, int gtid, kmp_task_t *task, int nd,
dep *dep_lst, int nd_noalias,
dep *noalias_dep_lst);
kmp_depnode_list_t *__kmpc_task_get_successors(kmp_task_t *task);
kmp_base_depnode_t *__kmpc_task_get_depnode(kmp_task_t *task);
int __kmpc_global_thread_num(id *);
#endif /* KMP_TASK_DEPS_H */