26 #define LIBMEMIF_VERSION "3.1" 28 #define MEMIF_DEFAULT_APP_NAME "libmemif-app" 31 #include <sys/timerfd.h> 89 #define MEMIF_FD_EVENT_READ (1 << 0) 90 #define MEMIF_FD_EVENT_WRITE (1 << 1) 92 #define MEMIF_FD_EVENT_ERROR (1 << 2) 94 #define MEMIF_FD_EVENT_DEL (1 << 3) 96 #define MEMIF_FD_EVENT_MOD (1 << 4) 205 int *fd,
void *private_ctx);
305 uint8_t interface_name[32];
329 #define MEMIF_BUFFER_FLAG_NEXT (1 << 0) 331 #define MEMIF_BUFFER_FLAG_RX (1 << 1) 359 #define MEMIF_QUEUE_FLAG_POLLING 1 476 char *buf, ssize_t buflen);
599 pt_main,
int fd, uint8_t events);
626 uint16_t * count_out);
640 uint16_t * count_out, uint16_t
size);
651 uint16_t
count, uint16_t headroom);
714 #define MEMIF_HAVE_CANCEL_POLL_EVENT 1 747 struct itimerspec timer);
787 const char *filename,
void *private_ctx);
int memif_per_thread_poll_event(memif_per_thread_main_handle_t pt_main, int timeout)
Memif poll event.
int on_disconnect(memif_conn_handle_t conn, void *private_ctx)
memif_socket_handle_t socket
uint8_t * remote_inst_name
int memif_refill_queue(memif_conn_handle_t conn, uint16_t qid, uint16_t count, uint16_t headroom)
Memif refill ring.
int on_connect(memif_conn_handle_t conn, void *private_ctx)
const char * memif_get_socket_filename(memif_socket_handle_t sock)
Get socket filename.
int memif_get_details(memif_conn_handle_t conn, memif_details_t *md, char *buf, ssize_t buflen)
Memif get details.
memif_interface_mode_t mode
int memif_per_thread_init(memif_per_thread_main_handle_t *pt_main, void *private_ctx, memif_control_fd_update_t *on_control_fd_update, char *app_name, memif_alloc_t *memif_alloc, memif_realloc_t *memif_realloc, memif_free_t *memif_free)
Memif per thread initialization.
char * memif_strerror(int err_code)
Memif strerror.
void memif_per_thread_register_external_region(memif_per_thread_main_handle_t pt_main, memif_add_external_region_t *ar, memif_get_external_region_addr_t *gr, memif_del_external_region_t *dr, memif_get_external_buffer_offset_t *go)
Register external region.
uint8_t * socket_filename
int() memif_add_external_region_t(void **addr, uint32_t size, int *fd, void *private_ctx)
Add external region.
int memif_set_rx_mode(memif_conn_handle_t conn, memif_rx_mode_t rx_mode, uint16_t qid)
Memif set rx mode.
void * memif_socket_handle_t
Memif socket handle pointer of type void, pointing to internal structure.
int() memif_del_external_region_t(void *addr, uint32_t size, int fd, void *private_ctx)
Delete external region.
int memif_create_socket(memif_socket_handle_t *sock, const char *filename, void *private_ctx)
Create memif socket.
int() memif_interrupt_t(memif_conn_handle_t conn, void *private_ctx, uint16_t qid)
Memif interrupt occured (callback function)
int memif_init(memif_control_fd_update_t *on_control_fd_update, char *app_name, memif_alloc_t *memif_alloc, memif_realloc_t *memif_realloc, memif_free_t *memif_free)
Memif initialization.
int() memif_connection_update_t(memif_conn_handle_t conn, void *private_ctx)
Memif connection status update (callback function)
int memif_get_queue_efd(memif_conn_handle_t conn, uint16_t qid, int *fd)
Memif get queue event file descriptor.
int memif_buffer_enq_tx(memif_conn_handle_t conn, uint16_t qid, memif_buffer_t *bufs, uint16_t count, uint16_t *count_out)
Memif buffer enq tx.
int on_interrupt(memif_conn_handle_t conn, void *private_ctx, uint16_t qid)
int memif_per_thread_create_socket(memif_per_thread_main_handle_t pt_main, memif_socket_handle_t *sock, const char *filename, void *private_ctx)
Create memif socket.
int memif_tx_burst(memif_conn_handle_t conn, uint16_t qid, memif_buffer_t *bufs, uint16_t count, uint16_t *tx)
Memif transmit buffer burst.
void() memif_free_t(void *ptr)
Memif allocator free.
int memif_buffer_alloc(memif_conn_handle_t conn, uint16_t qid, memif_buffer_t *bufs, uint16_t count, uint16_t *count_out, uint16_t size)
Memif buffer alloc.
int memif_poll_event(int timeout)
Memif poll event.
memif_queue_details_t * rx_queues
int memif_per_thread_control_fd_handler(memif_per_thread_main_handle_t pt_main, int fd, uint8_t events)
Memif per thread control file descriptor handler.
void *() memif_realloc_t(void *ptr, size_t size)
Memif realloc.
int memif_cleanup()
Memif cleanup.
uint32_t() memif_get_external_buffer_offset_t(void *private_ctx)
Get external buffer offset (optional)
int memif_create(memif_conn_handle_t *conn, memif_conn_args_t *args, memif_connection_update_t *on_connect, memif_connection_update_t *on_disconnect, memif_interrupt_t *on_interrupt, void *private_ctx)
Memory interface create function.
void * memif_per_thread_main_handle_t
Memif per thread main handle Pointer of type void, pointing to internal structure.
void * memif_conn_handle_t
Memif connection handle pointer of type void, pointing to internal structure.
int memif_per_thread_set_connection_request_timer(memif_per_thread_main_handle_t pt_main, struct itimerspec timer)
Set connection request timer value.
int memif_set_connection_request_timer(struct itimerspec timer)
Set connection request timer value.
int memif_control_fd_handler(int fd, uint8_t events)
Memif control file descriptor handler.
int memif_request_connection(memif_conn_handle_t conn)
Send connection request.
int memif_rx_burst(memif_conn_handle_t conn, uint16_t qid, memif_buffer_t *bufs, uint16_t count, uint16_t *rx)
Memif receive buffer burst.
void *() memif_alloc_t(size_t size)
Memif allocator alloc.
void *() memif_get_external_region_addr_t(uint32_t size, int fd, void *private_ctx)
Get external region address.
int memif_delete(memif_conn_handle_t *conn)
Memif delete.
int memif_per_thread_cleanup(memif_per_thread_main_handle_t *pt_main)
Memif per thread cleanup.
int memif_per_thread_cancel_poll_event(memif_per_thread_main_handle_t pt_main)
Send signal to stop concurrently running memif_poll_event().
memif_region_details_t * regions
int memif_cancel_poll_event()
memif_queue_details_t * tx_queues
int memif_delete_socket(memif_socket_handle_t *sock)
Delete memif socket.
uint16_t memif_get_version()
Memif get version.
Memif connection arguments.
void memif_register_external_region(memif_add_external_region_t *ar, memif_get_external_region_addr_t *gr, memif_del_external_region_t *dr, memif_get_external_buffer_offset_t *go)
Register external region.
int() memif_control_fd_update_t(int fd, uint8_t events, void *private_ctx)
Memif control file descriptor update (callback function)