15 #ifndef __included_ssvm_fifo_segment_h__ 16 #define __included_ssvm_fifo_segment_h__ 76 return fifo_segment->
h->
fifos != 0;
82 return fifo_segment->
h->
fifos;
85 #define foreach_ssvm_fifo_segment_api_error \ 86 _(OUT_OF_SPACE, "Out of space in segment", -200) 90 #define _(n,s,c) SSVM_FIFO_SEGMENT_API_ERROR_##n = c, 102 u32 data_size_in_bytes,
ssvm_fifo_segment_api_error_enum_t
svm_fifo_segment_freelist_t
struct _svm_fifo svm_fifo_t
u32 svm_fifo_segment_index(svm_fifo_segment_private_t *s)
#define vec_elt_at_index(v, i)
Get vector value at index i checking that i is in bounds.
void svm_fifo_segment_delete(svm_fifo_segment_private_t *s)
svm_fifo_t * svm_fifo_segment_alloc_fifo(svm_fifo_segment_private_t *s, u32 data_size_in_bytes, svm_fifo_segment_freelist_t index)
static svm_fifo_t * svm_fifo_segment_get_fifo_list(svm_fifo_segment_private_t *fifo_segment)
svm_fifo_segment_main_t svm_fifo_segment_main
svm_fifo_segment_header_t * h
#define foreach_ssvm_fifo_segment_api_error
int svm_fifo_segment_create(svm_fifo_segment_create_args_t *a)
(master) create an svm fifo segment
static u8 svm_fifo_segment_has_fifos(svm_fifo_segment_private_t *fifo_segment)
void svm_fifo_segment_free_fifo(svm_fifo_segment_private_t *s, svm_fifo_t *f, svm_fifo_segment_freelist_t index)
int svm_fifo_segment_create_process_private(svm_fifo_segment_create_args_t *a)
Create an svm fifo segment in process-private memory.
static svm_fifo_segment_private_t * svm_fifo_get_segment(u32 segment_index)
void svm_fifo_segment_init(u64 baseva, u32 timeout_in_seconds)
int svm_fifo_segment_attach(svm_fifo_segment_create_args_t *a)
(slave) attach to an svm fifo segment
svm_fifo_segment_private_t * segments
pool of segments
u32 preallocated_fifo_pairs