56 lines
1.4 KiB
C
56 lines
1.4 KiB
C
#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 */
|