|  | Arax -8d09c51940345c86062e8ef2427c705ae66e5926
    A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators | 
#include "async.h" Include dependency graph for mutex/async.c:
 Include dependency graph for mutex/async.c:Go to the source code of this file.
| Functions | |
| void | async_meta_init_once (async_meta_s *meta, arch_alloc_s *alloc) | 
| void | async_meta_init_always (async_meta_s *meta) | 
| void | async_completion_init (async_meta_s *meta, async_completion_s *completion) | 
| void | async_completion_complete (async_completion_s *completion) | 
| void | async_completion_wait (async_completion_s *completion) | 
| int | async_completion_check (async_completion_s *completion) | 
| void | async_semaphore_init (async_meta_s *meta, async_semaphore_s *sem) | 
| int | async_semaphore_value (async_semaphore_s *sem) | 
| void | async_semaphore_inc (async_semaphore_s *sem) | 
| void | async_semaphore_dec (async_semaphore_s *sem) | 
| void | async_condition_init (async_meta_s *meta, async_condition_s *cond) | 
| void | async_condition_lock (async_condition_s *cond) | 
| void | async_condition_wait (async_condition_s *cond) | 
| void | async_condition_notify (async_condition_s *cond) | 
| void | async_condition_unlock (async_condition_s *cond) | 
| void | async_meta_exit (async_meta_s *meta) | 
| int async_completion_check | ( | async_completion_s * | completion | ) | 
Check if completion has been marked as completed.
| completion | Completion to be checked. | 
Definition at line 28 of file mutex/async.c.
References async_completion_s::mutex.
| void async_completion_complete | ( | async_completion_s * | completion | ) | 
Mark compl as completed and notify pending async_completion_wait() callers.
| completion | Completion to be marked as completed. | 
Definition at line 17 of file mutex/async.c.
References async_completion_s::mutex.
Referenced by async_condition_unlock().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void async_completion_init | ( | async_meta_s * | meta, | 
| async_completion_s * | completion ) | 
Create and register async_completion_s objects created in buff.
| meta | Pointer to async_meta_s that will 'own' this completion. | 
| completion | Completion to be initialized | 
Definition at line 9 of file mutex/async.c.
References async_completion_s::attr, and async_completion_s::mutex.
Referenced by async_condition_init().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void async_completion_wait | ( | async_completion_s * | completion | ) | 
Wait for compl to be completed with async_completion_complete().
| completion | Sleep untill it has been completed with async_completion_complete. | 
Definition at line 23 of file mutex/async.c.
References async_completion_s::mutex.
Referenced by async_condition_lock().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void async_condition_init | ( | async_meta_s * | meta, | 
| async_condition_s * | cond ) | 
Initialize semaphore.
| meta | Pointer to async_meta_s that will 'own' this semaphore. | 
| cond | Condition to be initialized | 
Definition at line 60 of file mutex/async.c.
References async_completion_init(), async_condition_unlock(), async_condition_s::c_attr, async_condition_s::condition, and async_condition_s::mutex.
 Here is the call graph for this function:
 Here is the call graph for this function:| void async_condition_lock | ( | async_condition_s * | cond | ) | 
Lock on condition cond.
| cond | Condition to be read. | 
Definition at line 69 of file mutex/async.c.
References async_completion_wait(), and async_condition_s::mutex.
 Here is the call graph for this function:
 Here is the call graph for this function:| void async_condition_notify | ( | async_condition_s * | cond | ) | 
Notify cond.
cond must be locked using async_condition_lock().| cond | Condition to be notified. | 
Definition at line 79 of file mutex/async.c.
References async_condition_s::condition.
| void async_condition_unlock | ( | async_condition_s * | cond | ) | 
Lock on condition cond.
cond must be locked using async_condition_lock().| cond | Condition to be read. | 
Definition at line 84 of file mutex/async.c.
References async_completion_complete(), and async_condition_s::mutex.
Referenced by async_condition_init().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| void async_condition_wait | ( | async_condition_s * | cond | ) | 
Wait on cond.
cond must be locked using async_condition_lock().| cond | Condition to be read. | 
Definition at line 74 of file mutex/async.c.
References async_condition_s::condition, async_completion_s::mutex, and async_condition_s::mutex.
| void async_meta_exit | ( | async_meta_s * | meta | ) | 
De initialize an async_meta_s object.
| meta | The async_meta_s object to be uninitialized. | 
Definition at line 89 of file mutex/async.c.
| void async_meta_init_always | ( | async_meta_s * | meta | ) | 
Initialize a async_meta_s object on every node.
This will be called multiple times, once for every node.
| meta | An uninitialized async_meta_s object. | 
Definition at line 6 of file mutex/async.c.
| void async_meta_init_once | ( | async_meta_s * | meta, | 
| arch_alloc_s * | alloc ) | 
Initialize a async_meta_s object once.
This will be called only once, on the first node.
| meta | An uninitialized async_meta_s object. | 
| alloc | Allocator instance to be used for internall allocations. | 
Definition at line 3 of file mutex/async.c.
| void async_semaphore_dec | ( | async_semaphore_s * | sem | ) | 
Decrease semaphore.
Decrease(ie consume) sem by one. This function will block if async_semaphore_value() == 0.
| sem | Semaphore to be increased. | 
Definition at line 55 of file mutex/async.c.
References async_semaphore_s::sem.
| void async_semaphore_inc | ( | async_semaphore_s * | sem | ) | 
Increase semaphore.
Increase(ie produce) sem by one. This function will never block.
| sem | Semaphore to be increased. | 
Definition at line 50 of file mutex/async.c.
References async_semaphore_s::sem.
| void async_semaphore_init | ( | async_meta_s * | meta, | 
| async_semaphore_s * | sem ) | 
Initialize semaphore.
| meta | Pointer to async_meta_s that will 'own' this semaphore. | 
| sem | Semaphore to be initialized | 
Definition at line 37 of file mutex/async.c.
References async_semaphore_s::sem.
| int async_semaphore_value | ( | async_semaphore_s * | sem | ) | 
Return value of sem. 
| sem | Semaphore to be initialized | 
Definition at line 42 of file mutex/async.c.
References async_semaphore_s::sem.