30 while (accel->
tasks == 0)
99 __sync_fetch_and_add(&(accel->
revision), 1);
113 if ( (vaccel->
phys) == accel)
122 if ( (vaccel->
phys) != accel) {
130 accel->
tasks += tasks;
134 vaccel->
phys = accel;
169 accel->
tasks -= (tasks - 1);
187 fprintf(stderr,
"Erasing physical accelerator %s "
188 "with %lu attached virtual accelerators!\n",
190 arax_assert(
"Erasing physical accelerator with dangling virtual accels");
struct arax_pipe arax_pipe_s
enum arax_accel_state arax_accel_state_e
enum arax_accel_type arax_accel_type_e
struct arax_accel_stats arax_accel_stats_s
#define arax_assert(EXPR)
#define arax_assert_obj(OBJ, TYPE)
#define ARAX_THROTTLE_DEBUG_ACCEL_PARAMS
#define ARAX_THROTTLE_DEBUG_ACCEL_FUNC(FUNC)
#define ARAX_OBJ_DTOR_DECL(TYPE)
void async_condition_wait(async_condition_s *cond)
void async_condition_unlock(async_condition_s *cond)
void async_condition_notify(async_condition_s *cond)
void async_condition_init(async_meta_s *meta, async_condition_s *cond)
void async_condition_lock(async_condition_s *cond)
arax_accel_s * arax_accel_init(arax_pipe_s *pipe, const char *name, arax_accel_type_e type, size_t size, size_t capacity)
size_t arax_accel_get_total_size(arax_accel *accel)
size_t arax_accel_pending_tasks(arax_accel_s *accel)
size_t arax_accel_get_available_size(arax_accel *accel)
void arax_accel_wait_for_task(arax_accel_s *accel)
arax_accel_state_e arax_accel_get_stat(arax_accel_s *accel, arax_accel_stats_s *stat)
const char * arax_accel_get_name(arax_accel_s *accel)
void ARAX_THROTTLE_DEBUG_ACCEL_FUNC arax_accel_size_inc(arax_accel *accel, size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS)
void ARAX_THROTTLE_DEBUG_ACCEL_FUNC arax_accel_size_dec(arax_accel *accel, size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS)
size_t arax_accel_get_assigned_vaccels(arax_accel_s *accel, arax_vaccel_s ***vaccel)
void arax_accel_del_vaccel(arax_accel_s *accel, arax_vaccel_s *vaccel)
void arax_accel_add_task(arax_accel_s *accel)
size_t arax_accel_get_revision(arax_accel_s *accel)
void arax_accel_inc_revision(arax_accel_s *accel)
void arax_accel_add_vaccel(arax_accel_s *accel, arax_vaccel_s *vaccel)
arax_object_s * arax_object_register(arax_object_repo_s *repo, arax_object_type_e type, const char *name, size_t size, const int ref_count)
void arax_pipe_remove_orphan_vaccel(arax_pipe_s *pipe, arax_vaccel_s *vac)
size_t arax_throttle_get_available_size(arax_throttle_s *thr)
void ARAX_THROTTLE_DEBUG_FUNC arax_throttle_size_dec(arax_throttle_s *thr, size_t sz ARAX_THROTTLE_DEBUG_PARAMS)
void ARAX_THROTTLE_DEBUG_FUNC arax_throttle_size_inc(arax_throttle_s *thr, size_t sz ARAX_THROTTLE_DEBUG_PARAMS)
void arax_throttle_init(async_meta_s *meta, arax_throttle_s *thr, size_t a_sz, size_t t_sz)
size_t arax_throttle_get_total_size(arax_throttle_s *thr)
arax_vaccel_s * arax_vaccel_init(arax_pipe_s *pipe, const char *name, arax_accel_type_e type, arax_accel_s *accel)
unsigned int arax_vaccel_queue_size(arax_vaccel_s *vaccel)
utils_list_node_s * utils_list_del(utils_list_s *list, utils_list_node_s *node)
utils_list_s * utils_list_init(void *mem)
void utils_list_add(utils_list_s *list, utils_list_node_s *node)
size_t utils_list_to_array(utils_list_s *list, void **array)
#define utils_spinlock_lock(V)
#define utils_spinlock_unlock(V)
void arax_accel_release(arax_accel **accel)
arax_object_repo_s * repo
utils_list_node_s vaccels