|
static void * | fsh_alloc_aligned (fifo_segment_header_t *fsh, uword size, uword align) |
|
static void * | fsh_alloc (fifo_segment_header_t *fsh, uword size) |
|
static fifo_segment_slice_t * | fsh_slice_get (fifo_segment_header_t *fsh, u32 slice_index) |
|
static fifo_slice_private_t * | fs_slice_private_get (fifo_segment_t *fs, u32 slice_index) |
|
static uword | fsh_n_free_bytes (fifo_segment_header_t *fsh) |
|
static void | fsh_cached_bytes_add (fifo_segment_header_t *fsh, uword size) |
|
static void | fsh_cached_bytes_sub (fifo_segment_header_t *fsh, uword size) |
|
static uword | fsh_n_cached_bytes (fifo_segment_header_t *fsh) |
|
static void | fsh_active_fifos_update (fifo_segment_header_t *fsh, int inc) |
|
static u32 | fsh_n_active_fifos (fifo_segment_header_t *fsh) |
|
static uword | fsh_virtual_mem (fifo_segment_header_t *fsh) |
|
void | fsh_virtual_mem_update (fifo_segment_header_t *fsh, u32 slice_index, int n_bytes) |
|
static int | fss_chunk_fl_index_is_valid (fifo_segment_slice_t *fss, u32 fl_index) |
|
static svm_fifo_chunk_t * | fss_chunk_free_list_head (fifo_segment_header_t *fsh, fifo_segment_slice_t *fss, u32 fl_index) |
|
static void | fss_chunk_free_list_push (fifo_segment_header_t *fsh, fifo_segment_slice_t *fss, u32 fl_index, svm_fifo_chunk_t *c) |
|
static void | fss_chunk_free_list_push_list (fifo_segment_header_t *fsh, fifo_segment_slice_t *fss, u32 fl_index, svm_fifo_chunk_t *head, svm_fifo_chunk_t *tail) |
|
static svm_fifo_chunk_t * | fss_chunk_free_list_pop (fifo_segment_header_t *fsh, fifo_segment_slice_t *fss, u32 fl_index) |
|
static void | fss_fifo_free_list_push (fifo_segment_header_t *fsh, fifo_segment_slice_t *fss, svm_fifo_shared_t *sf) |
|
static void | fss_fifo_free_list_push_list (fifo_segment_header_t *fsh, fifo_segment_slice_t *fss, svm_fifo_shared_t *head, svm_fifo_shared_t *tail) |
|
svm_fifo_shared_t * | fss_fifo_free_list_pop (fifo_segment_header_t *fsh, fifo_segment_slice_t *fss) |
|
static void | pfss_fifo_add_active_list (fifo_slice_private_t *pfss, svm_fifo_t *f) |
|
static void | pfss_fifo_del_active_list (fifo_slice_private_t *pfss, svm_fifo_t *f) |
|
static uword | fss_fl_chunk_bytes (fifo_segment_slice_t *fss) |
|
static void | fss_fl_chunk_bytes_add (fifo_segment_slice_t *fss, uword size) |
|
static void | fss_fl_chunk_bytes_sub (fifo_segment_slice_t *fss, uword size) |
|
int | fifo_segment_init (fifo_segment_t *fs) |
| Initialize fifo segment shared header. More...
|
|
int | fifo_segment_create (fifo_segment_main_t *sm, fifo_segment_create_args_t *a) |
| Create a fifo segment and initialize as master. More...
|
|
int | fifo_segment_attach (fifo_segment_main_t *sm, fifo_segment_create_args_t *a) |
| Attach as slave to a fifo segment. More...
|
|
void | fifo_segment_delete (fifo_segment_main_t *sm, fifo_segment_t *s) |
|
u32 | fifo_segment_index (fifo_segment_main_t *sm, fifo_segment_t *s) |
|
fifo_segment_t * | fifo_segment_get_segment (fifo_segment_main_t *sm, u32 segment_index) |
|
fifo_segment_t * | fifo_segment_get_segment_if_valid (fifo_segment_main_t *sm, u32 segment_index) |
|
void | fifo_segment_info (fifo_segment_t *seg, char **address, size_t *size) |
|
void | fifo_segment_main_init (fifo_segment_main_t *sm, u64 baseva, u32 timeout_in_seconds) |
|
static u32 | fs_freelist_for_size (u32 size) |
|
static u32 | fs_freelist_index_to_size (u32 fl_index) |
|
static int | fs_chunk_size_is_valid (fifo_segment_header_t *fsh, u32 size) |
|
svm_fifo_chunk_t * | fs_try_alloc_multi_chunk (fifo_segment_header_t *fsh, fifo_segment_slice_t *fss, u32 data_bytes) |
|
static int | fsh_try_alloc_fifo_hdr_batch (fifo_segment_header_t *fsh, fifo_segment_slice_t *fss, u32 batch_size) |
|
static int | fsh_try_alloc_chunk_batch (fifo_segment_header_t *fsh, fifo_segment_slice_t *fss, u32 fl_index, u32 batch_size) |
|
static int | fs_try_alloc_fifo_batch (fifo_segment_header_t *fsh, fifo_segment_slice_t *fss, u32 fl_index, u32 batch_size) |
|
static svm_fifo_shared_t * | fsh_try_alloc_fifo_hdr (fifo_segment_header_t *fsh, fifo_segment_slice_t *fss) |
|
static svm_fifo_chunk_t * | fsh_try_alloc_chunk (fifo_segment_header_t *fsh, fifo_segment_slice_t *fss, u32 data_bytes) |
|
static svm_fifo_shared_t * | fs_try_alloc_fifo (fifo_segment_header_t *fsh, u32 slice_index, u32 data_bytes) |
| Try to allocate new fifo. More...
|
|
svm_fifo_chunk_t * | fsh_alloc_chunk (fifo_segment_header_t *fsh, u32 slice_index, u32 chunk_size) |
| Allocate chunks in fifo segment. More...
|
|
static void | fsh_slice_collect_chunks (fifo_segment_header_t *fsh, fifo_segment_slice_t *fss, svm_fifo_chunk_t *c) |
|
void | fsh_collect_chunks (fifo_segment_header_t *fsh, u32 slice_index, svm_fifo_chunk_t *c) |
| Return chunks to fifo segment. More...
|
|
svm_fifo_t * | fs_fifo_alloc (fifo_segment_t *fs, u32 slice_index) |
|
void | fs_fifo_free (fifo_segment_t *fs, svm_fifo_t *f, u32 slice_index) |
|
void | fifo_segment_cleanup (fifo_segment_t *fs) |
|
svm_fifo_t * | fifo_segment_alloc_fifo_w_slice (fifo_segment_t *fs, u32 slice_index, u32 data_bytes, fifo_segment_ftype_t ftype) |
| Allocate fifo in fifo segment. More...
|
|
svm_fifo_t * | fifo_segment_alloc_fifo_w_offset (fifo_segment_t *fs, uword offset) |
|
svm_fifo_t * | fifo_segment_duplicate_fifo (fifo_segment_t *fs, svm_fifo_t *f) |
|
void | fifo_segment_free_fifo (fifo_segment_t *fs, svm_fifo_t *f) |
| Free fifo allocated in fifo segment. More...
|
|
void | fifo_segment_free_client_fifo (fifo_segment_t *fs, svm_fifo_t *f) |
| Free fifo allocated by external applications. More...
|
|
void | fifo_segment_detach_fifo (fifo_segment_t *fs, svm_fifo_t **f) |
|
void | fifo_segment_attach_fifo (fifo_segment_t *fs, svm_fifo_t **f, u32 slice_index) |
|
uword | fifo_segment_fifo_offset (svm_fifo_t *f) |
|
svm_fifo_chunk_t * | fifo_segment_alloc_chunk_w_slice (fifo_segment_t *fs, u32 slice_index, u32 chunk_size) |
|
void | fifo_segment_collect_chunk (fifo_segment_t *fs, u32 slice_index, svm_fifo_chunk_t *c) |
|
uword | fifo_segment_chunk_offset (fifo_segment_t *fs, svm_fifo_chunk_t *c) |
|
svm_msg_q_t * | fifo_segment_msg_q_alloc (fifo_segment_t *fs, u32 mq_index, svm_msg_q_cfg_t *cfg) |
| Allocate message queue on segment. More...
|
|
svm_msg_q_t * | fifo_segment_msg_q_attach (fifo_segment_t *fs, uword offset, u32 mq_index) |
| Attach message queue at fifo segment offset. More...
|
|
void | fifo_segment_msg_qs_discover (fifo_segment_t *fs, int *fds, u32 n_fds) |
| Discover mqs on mq only segment. More...
|
|
uword | fifo_segment_msg_q_offset (fifo_segment_t *fs, u32 mq_index) |
| Message queue offset on segment. More...
|
|
int | fifo_segment_prealloc_fifo_hdrs (fifo_segment_t *fs, u32 slice_index, u32 batch_size) |
| Try to preallocate fifo headers. More...
|
|
int | fifo_segment_prealloc_fifo_chunks (fifo_segment_t *fs, u32 slice_index, u32 chunk_size, u32 batch_size) |
| Try to preallocate fifo chunks on segment. More...
|
|
void | fifo_segment_preallocate_fifo_pairs (fifo_segment_t *fs, u32 rx_fifo_size, u32 tx_fifo_size, u32 *n_fifo_pairs) |
| Pre-allocates fifo pairs in fifo segment. More...
|
|
u32 | fifo_segment_num_fifos (fifo_segment_t *fs) |
| Get number of active fifos. More...
|
|
static u32 | fs_slice_num_free_fifos (fifo_segment_header_t *fsh, fifo_segment_slice_t *fss) |
|
u32 | fifo_segment_num_free_fifos (fifo_segment_t *fs) |
|
static u32 | fs_slice_num_free_chunks (fifo_segment_header_t *fsh, fifo_segment_slice_t *fss, u32 size) |
|
u32 | fifo_segment_num_free_chunks (fifo_segment_t *fs, u32 size) |
| Find number of free chunks of given size. More...
|
|
uword | fifo_segment_size (fifo_segment_t *fs) |
| Fifo segment allocated size. More...
|
|
u8 | fsh_has_reached_mem_limit (fifo_segment_header_t *fsh) |
| Fifo segment has reached mem limit. More...
|
|
void | fsh_reset_mem_limit (fifo_segment_header_t *fsh) |
| Fifo segment reset mem limit flag. More...
|
|
void * | fifo_segment_alloc (fifo_segment_t *fs, uword size) |
| Fifo segment reset mem limit flag. More...
|
|
uword | fifo_segment_free_bytes (fifo_segment_t *fs) |
| Fifo segment estimate of number of free bytes. More...
|
|
uword | fifo_segment_cached_bytes (fifo_segment_t *fs) |
| Fifo segment number of cached bytes. More...
|
|
uword | fifo_segment_available_bytes (fifo_segment_t *fs) |
|
uword | fifo_segment_fl_chunk_bytes (fifo_segment_t *fs) |
| Number of bytes on chunk free lists. More...
|
|
u8 | fifo_segment_has_fifos (fifo_segment_t *fs) |
|
svm_fifo_t * | fifo_segment_get_slice_fifo_list (fifo_segment_t *fs, u32 slice_index) |
|
u8 | fifo_segment_get_mem_usage (fifo_segment_t *fs) |
|
fifo_segment_mem_status_t | fifo_segment_determine_status (fifo_segment_header_t *fsh, u8 usage) |
|
fifo_segment_mem_status_t | fifo_segment_get_mem_status (fifo_segment_t *fs) |
|
u8 * | format_fifo_segment_type (u8 *s, va_list *args) |
|
u8 * | format_fifo_segment (u8 *s, va_list *args) |
| Segment format function. More...
|
|