Loading...
Searching...
No Matches
osmo_io_fd Struct Reference

`#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 |

## 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

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

## 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

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

## 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

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

## 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]

struct { ... } osmo_io_fd::msgb_alloc

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

## 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

struct osmo_fd osmo_io_fd::ofd

Referenced by iofd_poll_close(), iofd_poll_notify_connected(), iofd_poll_ofd_cb_dispatch(), iofd_poll_ofd_cb_recvmsg_sendmsg(), iofd_poll_read_disable(), iofd_poll_read_enable(), iofd_poll_register(), iofd_poll_unregister(), iofd_poll_write_disable(), and iofd_poll_write_enable().

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

## [struct]

struct { ... } osmo_io_fd::poll

Referenced by iofd_poll_close(), iofd_poll_notify_connected(), iofd_poll_read_disable(), iofd_poll_read_enable(), iofd_poll_register(), iofd_poll_unregister(), iofd_poll_write_disable(), and iofd_poll_write_enable().

## 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]

struct { ... } osmo_io_fd::tx_queue

Referenced by iofd_txqueue_dequeue(), iofd_txqueue_enqueue(), iofd_txqueue_enqueue_front(), osmo_iofd_register(), osmo_iofd_set_txqueue_max_length(), osmo_iofd_setup(), and osmo_iofd_txqueue_len().

## [union]

union { ... } osmo_io_fd::u

Referenced by iofd_poll_close(), iofd_poll_notify_connected(), iofd_poll_read_disable(), iofd_poll_read_enable(), iofd_poll_register(), iofd_poll_unregister(), iofd_poll_write_disable(), and iofd_poll_write_enable().

## [struct]

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:

- src/core/osmo_io_internal.h