Arax -8d09c51940345c86062e8ef2427c705ae66e5926
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
Loading...
Searching...
No Matches
arax_proc.h
Go to the documentation of this file.
1#ifndef ARAX_PROC_HEADER
2#define ARAX_PROC_HEADER
3#include <arax.h>
4#include "core/arax_object.h"
5
6#ifdef __cplusplus
7extern "C" {
8#endif /* ifdef __cplusplus */
9
10#if ARAX_ACCEL_TYPES > 64
11#error More accel types, than can fit in arax_proc_s.canrun
12#endif
13
14
15typedef struct
16{
18 uint64_t canrun; // < One bit set for each ARAX_ACCEL_TYPE that has a functor
20 /* To add more as needed */
22
30arax_proc_s* arax_proc_init(arax_object_repo_s *repo, const char *name);
31
37
46
57
58#ifdef __cplusplus
59}
60#endif /* ifdef __cplusplus */
61
62#endif /* ifndef ARAX_PROC_HEADER */
arax_task_state_e AraxFunctor(arax_task *)
Definition arax_types.h:108
enum arax_accel_type arax_accel_type_e
@ ARAX_ACCEL_TYPES
Definition arax_types.h:93
AraxFunctor * arax_proc_get_functor(arax_proc_s *proc, arax_accel_type_e type)
Definition arax_proc.c:16
arax_proc_s * arax_proc_init(arax_object_repo_s *repo, const char *name)
Definition arax_proc.c:4
int arax_proc_can_run_at(arax_proc_s *proc, arax_accel_type_e type)
Definition arax_proc.c:33
AraxFunctor * arax_proc_set_functor(arax_proc_s *proc, arax_accel_type_e type, AraxFunctor *vfn)
Definition arax_proc.c:22
AraxFunctor * functors[ARAX_ACCEL_TYPES]
Definition arax_proc.h:19
uint64_t canrun
Definition arax_proc.h:18
arax_object_s obj
Definition arax_proc.h:17