Arax -8d09c51940345c86062e8ef2427c705ae66e5926
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
Loading...
Searching...
No Matches
arax_accel.h
Go to the documentation of this file.
1#ifndef ARAX_ACCEL_HEADER
2#define ARAX_ACCEL_HEADER
3#include <arax.h>
5
6#include "async.h"
7#include "core/arax_vaccel.h"
9
10#ifdef __cplusplus
11extern "C" {
12#endif /* ifdef __cplusplus */
13
28
37arax_accel_s* arax_accel_init(arax_pipe_s *pipe, const char *name,
38 arax_accel_type_e type, size_t size, size_t capacity);
39
47
56
61
65const char* arax_accel_get_name(arax_accel_s *accel);
66
73
80
88
89
90#ifdef ARAX_THROTTLE_DEBUG
91#define ARAX_THROTTLE_DEBUG_ACCEL_PARAMS , const char *parent
92#define ARAX_THROTTLE_DEBUG_ACCEL_FUNC(FUNC) __ ## FUNC
93#define arax_accel_size_inc(vac, sz) __arax_accel_size_inc(vac, sz, __func__)
94#define arax_accel_size_dec(vac, sz) __arax_accel_size_dec(vac, sz, __func__)
95#else
96#define ARAX_THROTTLE_DEBUG_ACCEL_PARAMS
97#define ARAX_THROTTLE_DEBUG_ACCEL_FUNC(FUNC) FUNC
98#endif
99
108
117
125
133
147
159
169
170#ifdef __cplusplus
171}
172#endif /* ifdef __cplusplus */
173
174#endif /* ifndef ARAX_ACCEL_HEADER */
struct arax_pipe arax_pipe_s
enum arax_accel_state arax_accel_state_e
void arax_accel
Definition arax_types.h:9
enum arax_accel_type arax_accel_type_e
struct arax_accel_stats arax_accel_stats_s
arax_accel_s * arax_accel_init(arax_pipe_s *pipe, const char *name, arax_accel_type_e type, size_t size, size_t capacity)
Definition arax_accel.c:5
size_t arax_accel_get_total_size(arax_accel *accel)
Definition arax_accel.c:75
size_t arax_accel_pending_tasks(arax_accel_s *accel)
Definition arax_accel.c:46
size_t arax_accel_get_available_size(arax_accel *accel)
Definition arax_accel.c:67
void arax_accel_wait_for_task(arax_accel_s *accel)
Definition arax_accel.c:26
arax_accel_state_e arax_accel_get_stat(arax_accel_s *accel, arax_accel_stats_s *stat)
Definition arax_accel.c:89
const char * arax_accel_get_name(arax_accel_s *accel)
Definition arax_accel.c:83
size_t arax_accel_get_assigned_vaccels(arax_accel_s *accel, arax_vaccel_s ***vaccel)
Definition arax_accel.c:143
void arax_accel_del_vaccel(arax_accel_s *accel, arax_vaccel_s *vaccel)
Definition arax_accel.c:156
void arax_accel_add_task(arax_accel_s *accel)
Definition arax_accel.c:38
#define ARAX_THROTTLE_DEBUG_ACCEL_PARAMS
Definition arax_accel.h:96
#define ARAX_THROTTLE_DEBUG_ACCEL_FUNC(FUNC)
Definition arax_accel.h:97
size_t arax_accel_get_revision(arax_accel_s *accel)
Definition arax_accel.c:102
void arax_accel_inc_revision(arax_accel_s *accel)
Definition arax_accel.c:96
void arax_accel_add_vaccel(arax_accel_s *accel, arax_vaccel_s *vaccel)
Definition arax_accel.c:108
void ARAX_THROTTLE_DEBUG_ACCEL_FUNC arax_accel_size_inc(arax_accel *accel, size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS)
Definition arax_accel.c:51
void ARAX_THROTTLE_DEBUG_ACCEL_FUNC arax_accel_size_dec(arax_accel *accel, size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS)
Definition arax_accel.c:59
size_t tasks
Definition arax_accel.h:21
arax_throttle_s throttle
Definition arax_accel.h:23
utils_list_s vaccels
Definition arax_accel.h:20
async_condition_s lock
Definition arax_accel.h:19
arax_object_s obj
Definition arax_accel.h:16
arax_accel_state_e state
Definition arax_accel.h:18
arax_accel_stats_s stats
Definition arax_accel.h:24
arax_accel_type_e type
Definition arax_accel.h:17
arax_vaccel_s * free_vaq
Definition arax_accel.h:25
size_t revision
Definition arax_accel.h:22