\doxysection{iofd\+\_\+msghdr Struct Reference}
\label{structiofd__msghdr}\index{iofd\_msghdr@{iofd\_msghdr}}


serialized version of \textquotesingle{}struct msghdr\textquotesingle{} employed by sendmsg/recvmsg  




{\ttfamily \#include $<$osmo\+\_\+io\+\_\+internal.\+h$>$}

\doxysubsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ llist\+\_\+head} \textbf{ list}
\begin{DoxyCompactList}\small\item\em entry into osmo\+\_\+io\+\_\+fd.\+tx\+\_\+queue.\+msg\+\_\+queue \end{DoxyCompactList}\item 
enum \textbf{ iofd\+\_\+msg\+\_\+action} \textbf{ action}
\item 
struct msghdr \textbf{ hdr}
\begin{DoxyCompactList}\small\item\em the \textquotesingle{}struct msghdr\textquotesingle{} we are wrapping/ecapsulating here \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+sockaddr} \textbf{ osa}
\begin{DoxyCompactList}\small\item\em socket address of the remote peer \end{DoxyCompactList}\item 
struct iovec \textbf{ iov} [1]
\begin{DoxyCompactList}\small\item\em io-\/vector we need to pass as argument to sendmsg/recvmsg; is set up to point into msg below \end{DoxyCompactList}\item 
int \textbf{ flags}
\begin{DoxyCompactList}\small\item\em flags we pass as argument to sendmsg / recvmsg \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ msg}
\begin{DoxyCompactList}\small\item\em message-\/buffer containing data for this I/O operation \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+io\+\_\+fd} $\ast$ \textbf{ iofd}
\begin{DoxyCompactList}\small\item\em I/O file descriptor on which we perform this I/O operation. \end{DoxyCompactList}\item 
char \textbf{ cmsg} [0]
\begin{DoxyCompactList}\small\item\em control message buffer for passing sctp\+\_\+sndrcvinfo along \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
serialized version of \textquotesingle{}struct msghdr\textquotesingle{} employed by sendmsg/recvmsg 

\doxysubsection{Field Documentation}
\mbox{\label{structiofd__msghdr_a3bf8f4a1f8e47093a7440bc344f0450e}} 
\index{iofd\_msghdr@{iofd\_msghdr}!action@{action}}
\index{action@{action}!iofd\_msghdr@{iofd\_msghdr}}
\doxysubsubsection{action}
{\footnotesize\ttfamily enum \textbf{ iofd\+\_\+msg\+\_\+action} iofd\+\_\+msghdr\+::action}



Referenced by \textbf{ iofd\+\_\+handle\+\_\+send\+\_\+completion()}, and \textbf{ iofd\+\_\+msghdr\+\_\+alloc()}.

\mbox{\label{structiofd__msghdr_a0b6ce942c09182b4e4283ce1fd5c56a1}} 
\index{iofd\_msghdr@{iofd\_msghdr}!cmsg@{cmsg}}
\index{cmsg@{cmsg}!iofd\_msghdr@{iofd\_msghdr}}
\doxysubsubsection{cmsg}
{\footnotesize\ttfamily char iofd\+\_\+msghdr\+::cmsg[0]}



control message buffer for passing sctp\+\_\+sndrcvinfo along 



Referenced by \textbf{ osmo\+\_\+iofd\+\_\+sendmsg\+\_\+msgb()}.

\mbox{\label{structiofd__msghdr_a23bf1102e388cb2dc93a55d8d1f7fdf6}} 
\index{iofd\_msghdr@{iofd\_msghdr}!flags@{flags}}
\index{flags@{flags}!iofd\_msghdr@{iofd\_msghdr}}
\doxysubsubsection{flags}
{\footnotesize\ttfamily int iofd\+\_\+msghdr\+::flags}



flags we pass as argument to sendmsg / recvmsg 



Referenced by \textbf{ iofd\+\_\+poll\+\_\+ofd\+\_\+cb\+\_\+recvmsg\+\_\+sendmsg()}, \textbf{ osmo\+\_\+iofd\+\_\+sendto\+\_\+msgb()}, and \textbf{ osmo\+\_\+iofd\+\_\+write\+\_\+msgb()}.

\mbox{\label{structiofd__msghdr_abed8f13020d302064dfc1f22f1247c8d}} 
\index{iofd\_msghdr@{iofd\_msghdr}!hdr@{hdr}}
\index{hdr@{hdr}!iofd\_msghdr@{iofd\_msghdr}}
\doxysubsubsection{hdr}
{\footnotesize\ttfamily struct msghdr iofd\+\_\+msghdr\+::hdr}



the \textquotesingle{}struct msghdr\textquotesingle{} we are wrapping/ecapsulating here 



Referenced by \textbf{ iofd\+\_\+msghdr\+\_\+alloc()}, \textbf{ iofd\+\_\+poll\+\_\+ofd\+\_\+cb\+\_\+recvmsg\+\_\+sendmsg()}, \textbf{ osmo\+\_\+iofd\+\_\+sendmsg\+\_\+msgb()}, \textbf{ osmo\+\_\+iofd\+\_\+sendto\+\_\+msgb()}, \textbf{ osmo\+\_\+iofd\+\_\+txqueue\+\_\+clear()}, and \textbf{ osmo\+\_\+iofd\+\_\+write\+\_\+msgb()}.

\mbox{\label{structiofd__msghdr_a0c84222c2eaef3f466fd1e3a52402d48}} 
\index{iofd\_msghdr@{iofd\_msghdr}!iofd@{iofd}}
\index{iofd@{iofd}!iofd\_msghdr@{iofd\_msghdr}}
\doxysubsubsection{iofd}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+io\+\_\+fd}$\ast$ iofd\+\_\+msghdr\+::iofd}



I/O file descriptor on which we perform this I/O operation. 



Referenced by \textbf{ iofd\+\_\+msghdr\+\_\+alloc()}, \textbf{ iofd\+\_\+poll\+\_\+ofd\+\_\+cb\+\_\+recvmsg\+\_\+sendmsg()}, \textbf{ osmo\+\_\+iofd\+\_\+close()}, \textbf{ osmo\+\_\+iofd\+\_\+free()}, \textbf{ osmo\+\_\+iofd\+\_\+get\+\_\+data()}, \textbf{ osmo\+\_\+iofd\+\_\+get\+\_\+fd()}, \textbf{ osmo\+\_\+iofd\+\_\+get\+\_\+ioops()}, \textbf{ osmo\+\_\+iofd\+\_\+get\+\_\+name()}, \textbf{ osmo\+\_\+iofd\+\_\+get\+\_\+priv\+\_\+nr()}, \textbf{ osmo\+\_\+iofd\+\_\+notify\+\_\+connected()}, \textbf{ osmo\+\_\+iofd\+\_\+sendmsg\+\_\+msgb()}, \textbf{ osmo\+\_\+iofd\+\_\+sendto\+\_\+msgb()}, \textbf{ osmo\+\_\+iofd\+\_\+set\+\_\+alloc\+\_\+info()}, \textbf{ osmo\+\_\+iofd\+\_\+set\+\_\+data()}, \textbf{ osmo\+\_\+iofd\+\_\+set\+\_\+ioops()}, \textbf{ osmo\+\_\+iofd\+\_\+set\+\_\+name()}, \textbf{ osmo\+\_\+iofd\+\_\+set\+\_\+priv\+\_\+nr()}, \textbf{ osmo\+\_\+iofd\+\_\+set\+\_\+txqueue\+\_\+max\+\_\+length()}, \textbf{ osmo\+\_\+iofd\+\_\+txqueue\+\_\+clear()}, and \textbf{ osmo\+\_\+iofd\+\_\+write\+\_\+msgb()}.

\mbox{\label{structiofd__msghdr_a88af822e09fb74ab0f348ded9a71bda3}} 
\index{iofd\_msghdr@{iofd\_msghdr}!iov@{iov}}
\index{iov@{iov}!iofd\_msghdr@{iofd\_msghdr}}
\doxysubsubsection{iov}
{\footnotesize\ttfamily struct iovec iofd\+\_\+msghdr\+::iov[1]}



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



Referenced by \textbf{ iofd\+\_\+handle\+\_\+send\+\_\+completion()}, \textbf{ osmo\+\_\+iofd\+\_\+sendmsg\+\_\+msgb()}, \textbf{ osmo\+\_\+iofd\+\_\+sendto\+\_\+msgb()}, and \textbf{ osmo\+\_\+iofd\+\_\+write\+\_\+msgb()}.

\mbox{\label{structiofd__msghdr_a0dfbe11ea42c9518405b45147ab2fee1}} 
\index{iofd\_msghdr@{iofd\_msghdr}!list@{list}}
\index{list@{list}!iofd\_msghdr@{iofd\_msghdr}}
\doxysubsubsection{list}
{\footnotesize\ttfamily struct \textbf{ llist\+\_\+head} iofd\+\_\+msghdr\+::list}



entry into osmo\+\_\+io\+\_\+fd.\+tx\+\_\+queue.\+msg\+\_\+queue 



Referenced by \textbf{ iofd\+\_\+txqueue\+\_\+enqueue()}, and \textbf{ iofd\+\_\+txqueue\+\_\+enqueue\+\_\+front()}.

\mbox{\label{structiofd__msghdr_a87017add79f592790522ae1d6dab9147}} 
\index{iofd\_msghdr@{iofd\_msghdr}!msg@{msg}}
\index{msg@{msg}!iofd\_msghdr@{iofd\_msghdr}}
\doxysubsubsection{msg}
{\footnotesize\ttfamily struct \textbf{ msgb}$\ast$ iofd\+\_\+msghdr\+::msg}



message-\/buffer containing data for this I/O operation 



Referenced by \textbf{ iofd\+\_\+handle\+\_\+send\+\_\+completion()}, \textbf{ iofd\+\_\+msghdr\+\_\+alloc()}, \textbf{ iofd\+\_\+poll\+\_\+ofd\+\_\+cb\+\_\+recvmsg\+\_\+sendmsg()}, \textbf{ osmo\+\_\+iofd\+\_\+sendmsg\+\_\+msgb()}, \textbf{ osmo\+\_\+iofd\+\_\+sendto\+\_\+msgb()}, and \textbf{ osmo\+\_\+iofd\+\_\+write\+\_\+msgb()}.

\mbox{\label{structiofd__msghdr_ada7e6f56c63ed3fcb30ec97bf75903e2}} 
\index{iofd\_msghdr@{iofd\_msghdr}!osa@{osa}}
\index{osa@{osa}!iofd\_msghdr@{iofd\_msghdr}}
\doxysubsubsection{osa}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+sockaddr} iofd\+\_\+msghdr\+::osa}



socket address of the remote peer 



Referenced by \textbf{ iofd\+\_\+handle\+\_\+send\+\_\+completion()}, \textbf{ osmo\+\_\+iofd\+\_\+sendmsg\+\_\+msgb()}, and \textbf{ osmo\+\_\+iofd\+\_\+sendto\+\_\+msgb()}.



The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
src/core/\textbf{ osmo\+\_\+io\+\_\+internal.\+h}\end{DoxyCompactItemize}
