libosmocore 1.13.1.12-8e6ea
Osmocom core library
iofd_msghdr Struct Reference

serialized version of 'struct msghdr' employed by sendmsg/recvmsg More...

#include <osmo_io_internal.h>

Public Member Functions

char _Alignas (struct cmsghdr) cmsg[0]
 control message buffer for passing sctp_sndrcvinfo along. More...
 

Data Fields

struct llist_head list
 entry into osmo_io_fd.tx_queue.msg_queue More...
 
enum iofd_msg_action action
 
struct msghdr hdr
 the 'struct msghdr' we are wrapping/ecapsulating here More...
 
struct osmo_sockaddr osa
 socket address of the remote peer More...
 
struct iovec iov [IOFD_MSGHDR_IO_BUFFERS]
 io-vector we need to pass as argument to sendmsg/recvmsg; is set up to point into msg below More...
 
int flags
 flags we pass as argument to sendmsg / recvmsg More...
 
uint8_t io_len
 current number of message-buffers that are stored More...
 
struct msgbmsg [IOFD_MSGHDR_IO_BUFFERS]
 message-buffer containing data for this I/O operation More...
 
struct osmo_io_fdiofd
 I/O file descriptor on which we perform this I/O operation. More...
 
bool in_cancel_queue
 msghdr is in the cancel_queue list More...
 

Detailed Description

serialized version of 'struct msghdr' employed by sendmsg/recvmsg

Member Function Documentation

◆ _Alignas()

char iofd_msghdr::_Alignas ( struct cmsghdr  )

control message buffer for passing sctp_sndrcvinfo along.

Size is determined by iofd->cmsg_size on recvmsg, and by mcghdr->msg_controllen on sendmsg. Alignment of the array is required due to cast to "struct cmsghdr", eg. by CMSG_FIRSTHDR().

Field Documentation

◆ action

◆ flags

int iofd_msghdr::flags

flags we pass as argument to sendmsg / recvmsg

Referenced by iofd_poll_ofd_cb_recvmsg_sendmsg(), osmo_iofd_sendto_msgb(), and osmo_iofd_write_msgb().

◆ hdr

◆ in_cancel_queue

bool iofd_msghdr::in_cancel_queue

msghdr is in the cancel_queue list

◆ io_len

uint8_t iofd_msghdr::io_len

◆ iofd

◆ iov

struct iovec iofd_msghdr::iov[IOFD_MSGHDR_IO_BUFFERS]

io-vector we need to pass as argument to sendmsg/recvmsg; is set up to point into msg below

Referenced by iofd_handle_send_completion(), iofd_poll_handle_recv(), iofd_poll_ofd_cb_recvmsg_sendmsg(), iofd_txqueue_dequeue(), osmo_iofd_sendmsg_msgb(), osmo_iofd_sendto_msgb(), and osmo_iofd_write_msgb().

◆ list

struct llist_head iofd_msghdr::list

entry into osmo_io_fd.tx_queue.msg_queue

Referenced by iofd_txqueue_dequeue(), iofd_txqueue_enqueue(), and iofd_txqueue_enqueue_front().

◆ msg

◆ osa

struct osmo_sockaddr iofd_msghdr::osa

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