libosmocore 1.11.0.30-c17053.202506162026
Osmocom core library
|
#include <osmo_io_internal.h>
Data Fields | ||
struct llist_head | list | |
linked list for internal management | ||
int | fd | |
actual operating-system level file decriptor | ||
enum osmo_io_fd_mode | mode | |
type of read/write mode to use | ||
uint32_t | flags | |
flags to guard closing/freeing of iofd | ||
char * | name | |
human-readable name to associte with fd | ||
struct osmo_io_ops | io_ops | |
send/recv (msg) callback functions | ||
struct msgb * | pending | |
Pending msgb to keep partial data during segmentation. | ||
void * | data | |
data pointer passed through to call-back function | ||
unsigned int | priv_nr | |
private number, extending data | ||
size_t | cmsg_size | |
size of iofd_msghdr.cmsg[] when allocated in recvmsg path | ||
struct { | ||
const void * ctx | ||
talloc context from which to allocate msgb when reading More... | ||
unsigned int size | ||
size of msgb to allocate (excluding headroom) More... | ||
unsigned int headroom | ||
headroom to allocate when allocating msgb's More... | ||
} | msgb_alloc | |
struct { | ||
unsigned int max_length | ||
maximum length of write queue More... | ||
unsigned int current_length | ||
current length of write queue More... | ||
struct llist_head msg_queue | ||
actual linked list implementing the transmit queue More... | ||
} | tx_queue | |
union { | ||
struct { | ||
struct osmo_fd ofd | ||
} poll | ||
struct { | ||
bool read_enabled | ||
bool write_enabled | ||
void * read_msghdr | ||
void * write_msghdr | ||
struct osmo_fd connect_ofd | ||
} uring | ||
} | u | |
size_t osmo_io_fd::cmsg_size |
size of iofd_msghdr.cmsg[] when allocated in recvmsg path
Referenced by iofd_poll_ofd_cb_recvmsg_sendmsg(), and osmo_iofd_set_cmsg_size().
talloc context from which to allocate msgb when reading
Referenced by iofd_handle_recv(), iofd_handle_segmented_read(), and osmo_iofd_setup().
current length of write queue
Referenced by iofd_txqueue_dequeue(), iofd_txqueue_enqueue(), iofd_txqueue_enqueue_front(), osmo_iofd_register(), and osmo_iofd_txqueue_len().
void* osmo_io_fd::data |
data pointer passed through to call-back function
Referenced by osmo_iofd_get_data(), osmo_iofd_set_data(), and osmo_iofd_setup().
int osmo_io_fd::fd |
actual operating-system level file decriptor
Referenced by iofd_poll_register(), osmo_iofd_close(), osmo_iofd_get_fd(), osmo_iofd_register(), and osmo_iofd_setup().
uint32_t osmo_io_fd::flags |
flags to guard closing/freeing of iofd
headroom to allocate when allocating msgb's
Referenced by iofd_msgb_alloc(), osmo_iofd_set_alloc_info(), and osmo_iofd_setup().
struct osmo_io_ops osmo_io_fd::io_ops |
send/recv (msg) callback functions
Referenced by iofd_handle_recv(), iofd_handle_segmentation(), iofd_handle_segmented_read(), iofd_handle_send_completion(), iofd_poll_ofd_cb_recvmsg_sendmsg(), osmo_iofd_get_ioops(), osmo_iofd_register(), osmo_iofd_set_ioops(), and osmo_iofd_setup().
struct llist_head osmo_io_fd::list |
linked list for internal management
maximum length of write queue
Referenced by iofd_txqueue_enqueue(), osmo_iofd_set_txqueue_max_length(), and osmo_iofd_setup().
enum osmo_io_fd_mode osmo_io_fd::mode |
type of read/write mode to use
Referenced by iofd_handle_recv(), iofd_handle_segmented_read(), iofd_poll_ofd_cb_recvmsg_sendmsg(), osmo_iofd_notify_connected(), osmo_iofd_register(), osmo_iofd_sendmsg_msgb(), osmo_iofd_sendto_msgb(), osmo_iofd_set_cmsg_size(), osmo_iofd_set_ioops(), osmo_iofd_setup(), and osmo_iofd_write_msgb().
struct llist_head osmo_io_fd::msg_queue |
actual linked list implementing the transmit queue
Referenced by iofd_txqueue_dequeue(), iofd_txqueue_enqueue(), iofd_txqueue_enqueue_front(), and osmo_iofd_setup().
struct { ... } osmo_io_fd::msgb_alloc |
Referenced by iofd_handle_recv(), iofd_handle_segmented_read(), iofd_msgb_alloc(), osmo_iofd_set_alloc_info(), and osmo_iofd_setup().
char* osmo_io_fd::name |
human-readable name to associte with fd
Referenced by osmo_iofd_get_name(), osmo_iofd_set_name(), and osmo_iofd_setup().
Pending msgb to keep partial data during segmentation.
Referenced by iofd_handle_segmented_read(), iofd_msgb_pending(), osmo_iofd_close(), and osmo_iofd_setup().
struct { ... } osmo_io_fd::poll |
private number, extending data
Referenced by osmo_iofd_get_priv_nr(), and osmo_iofd_set_priv_nr().
bool osmo_io_fd::read_enabled |
void* osmo_io_fd::read_msghdr |
size of msgb to allocate (excluding headroom)
Referenced by iofd_msgb_alloc(), osmo_iofd_set_alloc_info(), and osmo_iofd_setup().
struct { ... } osmo_io_fd::tx_queue |
union { ... } osmo_io_fd::u |
struct { ... } osmo_io_fd::uring |
bool osmo_io_fd::write_enabled |
void* osmo_io_fd::write_msghdr |