Arax -8d09c51940345c86062e8ef2427c705ae66e5926
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
Loading...
Searching...
No Matches
arax.h
Go to the documentation of this file.
1#ifndef ARAX_TALK
2#define ARAX_TALK
3
4#include <stdio.h>
5#include <stddef.h>
6#include "arax_types.h"
8#ifdef __cplusplus
9extern "C" {
10#endif /* ifdef __cplusplus */
11
16
26
30void arax_exit();
31
38int arax_clean();
39
41
46
62int arax_accel_list(arax_accel_type_e type, int physical, arax_accel ***accels);
63
72
78void arax_accel_list_free(arax_accel **accels);
79
87
97
110
122
134void arax_accel_release(arax_accel **accel);
135
137
142
158arax_proc* arax_proc_register(const char *func_name);
159
170arax_proc* arax_proc_get(const char *func_name);
171
180int arax_proc_put(arax_proc *func);
181
183
188
207arax_task* arax_task_issue(arax_accel *accel, arax_proc *proc, const void *host_init,
208 size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count,
209 arax_data **dev_out);
210
224arax_task_state_e arax_task_issue_sync(arax_accel *accel, arax_proc *proc, void *host_init,
225 size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count,
226 arax_data **dev_out);
227
228
242
253
260void arax_task_free(arax_task *task);
261
263
268
275arax_buffer_s ARAX_BUFFER(size_t size);
276
278
282#define ARAX_HANDLER(FN, ARCH) \
283 extern "C" arax_task_state_e FN ## _ARAX_FN_ ## ARCH(arax_task_msg_s \
284 * task) __attribute__((section(".ARAX_HANDLERS"))); \
285 extern "C" arax_task_state_e FN ## _ARAX_FN_ ## ARCH(arax_task_msg_s * task)
286
291#define ARAX_HANDLER_EX(FN, ARCH, EX) \
292 extern "C" arax_task_state_e FN ## _ARAX_FN_ ## ARCH(arax_task_msg_s \
293 * task, EX) __attribute__((section(".ARAX_HANDLERS"))); \
294 extern "C" arax_task_state_e FN ## _ARAX_FN_ ## ARCH(arax_task_msg_s * task, EX)
295
296
297#ifdef __cplusplus
298}
299#endif /* ifdef __cplusplus */
300
301#endif /* ifndef ARAX_TALK */
struct arax_pipe arax_pipe_s
void arax_task
Definition arax_types.h:51
enum arax_accel_state arax_accel_state_e
void arax_accel
Definition arax_types.h:9
enum arax_accel_type arax_accel_type_e
void arax_proc
Definition arax_types.h:14
struct arax_task_stats arax_task_stats_s
arax_accel_type
Definition arax_types.h:83
arax_task_state_e
Definition arax_types.h:62
struct arax_accel_stats arax_accel_stats_s
void * arax_buffer_s
Definition arax_types.h:102
void arax_data
Definition arax_types.h:56
int arax_clean()
Definition impl.c:193
void arax_exit()
Definition impl.c:156
arax_pipe_s * arax_init()
Definition impl.c:132
arax_accel * arax_accel_acquire_type(arax_accel_type_e type)
Definition impl.c:354
void arax_accel_set_physical(arax_accel *vaccel, arax_accel *phys)
Definition impl.c:209
void arax_accel_list_free(arax_accel **accels)
Definition impl.c:283
void arax_accel_release(arax_accel **accel)
Definition impl.c:366
int arax_accel_list(arax_accel_type_e type, int physical, arax_accel ***accels)
Definition impl.c:221
arax_accel_state_e arax_accel_stat(arax_accel *accel, arax_accel_stats_s *stat)
Definition impl.c:314
int arax_accel_acquire_phys(arax_accel **accel)
Definition impl.c:335
int arax_proc_put(arax_proc *func)
Definition impl.c:413
arax_proc * arax_proc_get(const char *func_name)
Definition impl.c:400
arax_proc * arax_proc_register(const char *func_name)
Definition impl.c:384
arax_task_state_e arax_task_issue_sync(arax_accel *accel, arax_proc *proc, void *host_init, size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count, arax_data **dev_out)
Definition impl.c:490
void arax_task_free(arax_task *task)
Definition impl.c:524
arax_task * arax_task_issue(arax_accel *accel, arax_proc *proc, const void *host_init, size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count, arax_data **dev_out)
Definition impl.c:467
arax_task_state_e arax_task_wait(arax_task *task)
Definition impl.c:515
arax_task_state_e arax_task_stat(arax_task *task, arax_task_stats_s *stats)
Definition impl.c:502
arax_buffer_s ARAX_BUFFER(size_t size)
Definition impl.c:531