libosmocore 1.9.0.196-9975
Osmocom core library
osmo_io_fd Struct Reference

#include <osmo_io_internal.h>

Data Fields

struct llist_head list
 linked list for internal management More...
 
int fd
 actual operating-system level file decriptor More...
 
enum osmo_io_fd_mode mode
 type of read/write mode to use More...
 
uint32_t flags
 flags to guard closing/freeing of iofd More...
 
char * name
 human-readable name to associte with fd More...
 
struct osmo_io_ops io_ops
 send/recv (msg) callback functions More...
 
struct msgbpending
 Pending msgb to keep partial data during segmentation. More...
 
void * data
 data pointer passed through to call-back function More...
 
unsigned int priv_nr
 private number, extending data More...
 
size_t cmsg_size
 size of iofd_msghdr.cmsg[] when allocated in recvmsg path More...
 
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
 

Field Documentation

◆ cmsg_size

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().

◆ connect_ofd

struct osmo_fd osmo_io_fd::connect_ofd

◆ ctx

const void* osmo_io_fd::ctx

talloc context from which to allocate msgb when reading

Referenced by iofd_handle_recv(), and osmo_iofd_setup().

◆ current_length

unsigned int osmo_io_fd::current_length

◆ data

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().

◆ fd

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().

◆ flags

uint32_t osmo_io_fd::flags

flags to guard closing/freeing of iofd

◆ headroom

unsigned int osmo_io_fd::headroom

headroom to allocate when allocating msgb's

Referenced by iofd_msgb_alloc(), osmo_iofd_set_alloc_info(), and osmo_iofd_setup().

◆ io_ops

◆ list

struct llist_head osmo_io_fd::list

linked list for internal management

◆ max_length

unsigned int osmo_io_fd::max_length

maximum length of write queue

Referenced by iofd_txqueue_enqueue(), osmo_iofd_set_txqueue_max_length(), and osmo_iofd_setup().

◆ mode

◆ msg_queue

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

◆ name

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().

◆ ofd

◆ pending

struct msgb* osmo_io_fd::pending

Pending msgb to keep partial data during segmentation.

Referenced by iofd_handle_segmented_read(), iofd_msgb_pending(), osmo_iofd_close(), and osmo_iofd_setup().

◆ 

◆ priv_nr

unsigned int osmo_io_fd::priv_nr

private number, extending data

Referenced by osmo_iofd_get_priv_nr(), and osmo_iofd_set_priv_nr().

◆ read_enabled

bool osmo_io_fd::read_enabled

◆ read_msghdr

void* osmo_io_fd::read_msghdr

◆ size

unsigned int osmo_io_fd::size

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::uring

◆ write_enabled

bool osmo_io_fd::write_enabled

◆ write_msghdr

void* osmo_io_fd::write_msghdr

The documentation for this struct was generated from the following file: