|
MediaProcessors
|
#include "fifo.h"#include <stdio.h>#include <stdlib.h>#include <fcntl.h>#include <unistd.h>#include <string.h>#include <sys/mman.h>#include <sys/shm.h>#include <sys/stat.h>#include <pthread.h>#include <errno.h>#include "check_utils.h"#include "log.h"#include "stat_codes.h"
Go to the source code of this file.
Classes | |
| struct | fifo_elem_ctx_s |
| struct | fifo_ctx_s |
Macros | |
| #define | SIZEOF_FIFO_ELEM_CTX_T(FLAG_USE_SHM, CHUNK_SIZE_MAX) (size_t)(sizeof(fifo_elem_ctx_t)+ (FLAG_USE_SHM== 0? 1: CHUNK_SIZE_MAX)) |
| #define | FIFO_FILE_NAME_MAX_SIZE 1024 |
Typedefs | |
| typedef struct fifo_elem_ctx_s | fifo_elem_ctx_t |
| typedef struct fifo_ctx_s | fifo_ctx_t |
Functions | |
| static void | fifo_close_internal (fifo_ctx_t **ref_fifo_ctx, int flag_deinit) |
| static int | fifo_init (fifo_ctx_t *fifo_ctx, size_t slots_max, size_t chunk_size_max, uint32_t flags, const char *fifo_file_name, const fifo_elem_alloc_fxn_t *fifo_elem_alloc_fxn) |
| static void | fifo_deinit (fifo_ctx_t *fifo_ctx) |
| static int | fifo_input (fifo_ctx_t *fifo_ctx, void **ref_elem, size_t elem_size, int dup_flag) |
| static int | fifo_output (fifo_ctx_t *fifo_ctx, void **ref_elem, size_t *ref_elem_size, int flush_flag, int64_t tout_usecs) |
| static int | fifo_mutex_init (pthread_mutex_t *const pthread_mutex_p, int flag_use_shm, log_ctx_t *log_ctx) |
| static int | fifo_cond_init (pthread_cond_t *const pthread_cond_p, int flag_use_shm, log_ctx_t *log_ctx) |
| 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) |
| 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_shm_exec_open (size_t slots_max, size_t chunk_size_max, uint32_t flags, const char *fifo_file_name) |
| void | fifo_close (fifo_ctx_t **ref_fifo_ctx) |
| void | fifo_set_blocking_mode (fifo_ctx_t *fifo_ctx, int do_block) |
| int | fifo_put_dup (fifo_ctx_t *fifo_ctx, const void *elem, size_t elem_size) |
| int | fifo_put (fifo_ctx_t *fifo_ctx, void **ref_elem, size_t elem_size) |
| int | fifo_get (fifo_ctx_t *fifo_ctx, void **ref_elem, size_t *ref_elem_size) |
| int | fifo_timedget (fifo_ctx_t *fifo_ctx, void **ref_elem, size_t *ref_elem_size, int64_t tout_usecs) |
| int | fifo_show (fifo_ctx_t *fifo_ctx, void **ref_elem, size_t *ref_elem_size) |
| ssize_t | fifo_get_buffer_level (fifo_ctx_t *fifo_ctx) |
| 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) |
| void | fifo_empty (fifo_ctx_t *fifo_ctx) |
Definition in file fifo.c.
| #define FIFO_FILE_NAME_MAX_SIZE 1024 |
| #define SIZEOF_FIFO_ELEM_CTX_T | ( | FLAG_USE_SHM, | |
| CHUNK_SIZE_MAX | |||
| ) | (size_t)(sizeof(fifo_elem_ctx_t)+ (FLAG_USE_SHM== 0? 1: CHUNK_SIZE_MAX)) |
Size of structure type 'fifo_elem_ctx_t'. In the case FLAG_USE_SHM flag is set, fifo_elem_ctx_t::shm_elem_pool will be actually a predefined buffer with a maximum fixed size of 'CHUNK_SIZE_MAX' octets. Otherwise, member fifo_elem_ctx_t::shm_elem_pool will not be used (giving a minimum legacy size).
| typedef struct fifo_ctx_s fifo_ctx_t |
FIFO context structure.
| typedef struct fifo_elem_ctx_s fifo_elem_ctx_t |
FIFO element context structure.
| void fifo_close | ( | fifo_ctx_t ** | ref_fifo_ctx | ) |
|
static |
|
static |
| void fifo_empty | ( | fifo_ctx_t * | fifo_ctx | ) |
| int fifo_get | ( | fifo_ctx_t * | fifo_ctx, |
| void ** | ref_elem, | ||
| size_t * | ref_elem_size | ||
| ) |
| ssize_t fifo_get_buffer_level | ( | fifo_ctx_t * | fifo_ctx | ) |
|
static |
| 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 | ||
| ) |
| int fifo_put | ( | fifo_ctx_t * | fifo_ctx, |
| void ** | ref_elem, | ||
| size_t | elem_size | ||
| ) |
| 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 | ||
| ) |
| fifo_ctx_t* fifo_shm_open | ( | size_t | slots_max, |
| size_t | chunk_size_max, | ||
| uint32_t | flags, | ||
| const char * | fifo_file_name | ||
| ) |
| int fifo_show | ( | fifo_ctx_t * | fifo_ctx, |
| void ** | elem, | ||
| size_t * | elem_size | ||
| ) |
| int fifo_timedget | ( | fifo_ctx_t * | fifo_ctx, |
| void ** | ref_elem, | ||
| size_t * | ref_elem_size, | ||
| int64_t | tout_usecs | ||
| ) |
| int fifo_traverse | ( | fifo_ctx_t * | fifo_ctx, |
| int | elem_cnt, | ||
| void(*)(void *elem, ssize_t elem_size, int idx, void *it_arg, int *ref_flag_break) | it_fxn, | ||
| void * | it_arg | ||
| ) |
1.8.11