Arax
-8d09c51940345c86062e8ef2427c705ae66e5926
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
Loading...
Searching...
No Matches
ivshmem/async.h
Go to the documentation of this file.
1
#ifndef ASYNC_HEADER
2
#define ASYNC_HEADER
3
#include "
core/arax_object.h
"
4
#include "
utils/list.h
"
5
#include "pthread.h"
6
#include "arch/alloc.h"
7
8
typedef
struct
ivshmem
ivshmem_s
;
9
10
typedef
struct
async_meta_s
11
{
12
utils_spinlock
lock
;
13
utils_list_s
outstanding
;
14
ivshmem_s
*
regs
;
15
arch_alloc_s
*
alloc
;
16
pthread_t
thread
;
17
volatile
int
fd
;
18
}
async_meta_s
;
19
20
typedef
struct
async_completion_s
21
{
22
async_meta_s
*
meta
;
23
utils_list_node_s
outstanding
;
24
size_t
vm_id
;
25
volatile
size_t
completed
;
26
pthread_mutex_t
mutex
;
27
pthread_mutexattr_t
attr
;
28
}
async_completion_s
;
29
30
typedef
struct
31
{
32
async_meta_s
*
meta
;
33
utils_list_s
pending_list
;
34
utils_spinlock
pending_lock
;
35
volatile
size_t
value
;
36
}
37
async_semaphore_s
;
38
39
typedef
struct
40
{
41
async_meta_s
*
meta
;
42
async_completion_s
mutex
;
43
async_semaphore_s
semaphore
;
44
}
async_condition_s
;
45
46
#include "
async_api.h
"
47
#endif
// ifndef ASYNC_HEADER
list.h
utils_list_node_s
struct utils_list_node utils_list_node_s
utils_spinlock
volatile uint32_t utils_spinlock
Definition
spinlock.h:10
arax_object.h
async_api.h
arch_alloc_s
Definition
alloc.h:18
ivshmem
Definition
ivshmem/async.c:22
async_meta_s
Definition
ivshmem/async.h:11
async_meta_s::thread
pthread_t thread
Definition
ivshmem/async.h:16
async_meta_s::lock
utils_spinlock lock
Definition
ivshmem/async.h:12
async_meta_s::outstanding
utils_list_s outstanding
Definition
ivshmem/async.h:13
async_meta_s::fd
volatile int fd
Definition
ivshmem/async.h:17
async_meta_s::alloc
arch_alloc_s * alloc
Definition
ivshmem/async.h:15
async_meta_s::regs
ivshmem_s * regs
Definition
ivshmem/async.h:14
async_completion_s
Definition
ivshmem/async.h:21
async_completion_s::meta
async_meta_s * meta
Definition
ivshmem/async.h:22
async_completion_s::vm_id
size_t vm_id
Definition
ivshmem/async.h:24
async_completion_s::mutex
pthread_mutex_t mutex
Definition
ivshmem/async.h:26
async_completion_s::completed
volatile size_t completed
Definition
ivshmem/async.h:25
async_completion_s::attr
pthread_mutexattr_t attr
Definition
ivshmem/async.h:27
async_completion_s::outstanding
utils_list_node_s outstanding
Definition
ivshmem/async.h:23
async_semaphore_s
Definition
ivshmem/async.h:31
async_semaphore_s::meta
async_meta_s * meta
Definition
ivshmem/async.h:32
async_semaphore_s::pending_lock
utils_spinlock pending_lock
Definition
ivshmem/async.h:34
async_semaphore_s::pending_list
utils_list_s pending_list
Definition
ivshmem/async.h:33
async_semaphore_s::value
volatile size_t value
Definition
ivshmem/async.h:35
async_condition_s
Definition
ivshmem/async.h:40
async_condition_s::meta
async_meta_s * meta
Definition
ivshmem/async.h:41
async_condition_s::semaphore
async_semaphore_s semaphore
Definition
ivshmem/async.h:43
async_condition_s::mutex
async_completion_s mutex
Definition
ivshmem/async.h:42
utils_list_s
Definition
list.h:17
ivshmem_s
struct ivshmem ivshmem_s
Definition
ivshmem/async.h:8
src
async
ivshmem
async.h
Generated by
1.13.2