36 #ifndef UTILS_SRC_FIFO_H_ 37 #define UTILS_SRC_FIFO_H_ 39 #include <sys/types.h> 50 #define FIFO_O_NONBLOCK 1 56 #define FIFO_PROCESS_SHARED 2 61 typedef void*(fifo_elem_ctx_dup_fxn_t)(
const void*);
62 typedef void(fifo_elem_ctx_release_fxn_t)(
void**);
65 fifo_elem_ctx_dup_fxn_t *elem_ctx_dup;
66 fifo_elem_ctx_release_fxn_t *elem_ctx_release;
85 uint32_t flags,
const char *fifo_file_name);
86 fifo_ctx_t* fifo_shm_exec_open(
size_t slots_max,
size_t chunk_size_max,
87 uint32_t flags,
const char *fifo_file_name);
135 void (*it_fxn)(
void *elem, ssize_t elem_size,
int idx,
void *it_arg,
136 int *ref_flag_break),
int fifo_put(fifo_ctx_t *fifo_ctx, void **ref_elem, size_t elem_size)
int fifo_traverse(fifo_ctx_t *fifo_ctx, int elem_cnt, void(*it_fxn)(void *elem, ssize_t elem_size, int idx, void *it_arg, int *ref_flag_break), void *it_arg)
int fifo_timedget(fifo_ctx_t *fifo_ctx, void **ref_elem, size_t *ref_elem_size, int64_t tout_usecs)
int fifo_get(fifo_ctx_t *fifo_ctx, void **ref_elem, size_t *ref_elem_size)
fifo_ctx_t * fifo_shm_open(size_t slots_max, size_t chunk_size_max, uint32_t flags, const char *fifo_file_name)
fifo_ctx_t * fifo_open(size_t slots_max, size_t chunk_size_max, uint32_t flags, const fifo_elem_alloc_fxn_t *fifo_elem_alloc_fxn)
ssize_t fifo_get_buffer_level(fifo_ctx_t *fifo_ctx)
int fifo_put_dup(fifo_ctx_t *fifo_ctx, const void *elem, size_t elem_size)
void fifo_set_blocking_mode(fifo_ctx_t *fifo_ctx, int do_block)
int fifo_show(fifo_ctx_t *fifo_ctx, void **elem, size_t *elem_size)
void fifo_close(fifo_ctx_t **ref_fifo_ctx)
void fifo_empty(fifo_ctx_t *fifo_ctx)