\doxysection{osmo\+\_\+io\+\_\+fd Struct Reference}
\label{structosmo__io__fd}\index{osmo\_io\_fd@{osmo\_io\_fd}}


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

\doxysubsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ llist\+\_\+head} \textbf{ list}
\begin{DoxyCompactList}\small\item\em linked list for internal management \end{DoxyCompactList}\item 
int \textbf{ fd}
\begin{DoxyCompactList}\small\item\em actual operating-\/system level file decriptor \end{DoxyCompactList}\item 
enum \textbf{ osmo\+\_\+io\+\_\+fd\+\_\+mode} \textbf{ mode}
\begin{DoxyCompactList}\small\item\em type of read/write mode to use \end{DoxyCompactList}\item 
uint32\+\_\+t \textbf{ flags}
\begin{DoxyCompactList}\small\item\em flags to guard closing/freeing of iofd \end{DoxyCompactList}\item 
char $\ast$ \textbf{ name}
\begin{DoxyCompactList}\small\item\em human-\/readable name to associte with fd \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+io\+\_\+ops} \textbf{ io\+\_\+ops}
\begin{DoxyCompactList}\small\item\em send/recv (msg) callback functions \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ pending}
\begin{DoxyCompactList}\small\item\em Pending msgb to keep partial data during segmentation. \end{DoxyCompactList}\item 
void $\ast$ \textbf{ data}
\begin{DoxyCompactList}\small\item\em data pointer passed through to call-\/back function \end{DoxyCompactList}\item 
unsigned int \textbf{ priv\+\_\+nr}
\begin{DoxyCompactList}\small\item\em private number, extending {\itshape data} \end{DoxyCompactList}\item 
size\+\_\+t \textbf{ cmsg\+\_\+size}
\begin{DoxyCompactList}\small\item\em size of \doxyref{iofd\+\_\+msghdr.\+cmsg}{p.}{structiofd__msghdr_a0b6ce942c09182b4e4283ce1fd5c56a1}[] when allocated in recvmsg path \end{DoxyCompactList}\item 
\begin{tabbing}
xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill
struct \{\\
\>const void $\ast$ \textbf{ ctx}\\
\>\>{\em talloc context from which to allocate msgb when reading }\\
\>unsigned int \textbf{ size}\\
\>\>{\em size of msgb to allocate (excluding headroom) }\\
\>unsigned int \textbf{ headroom}\\
\>\>{\em headroom to allocate when allocating msgb\textquotesingle{}s }\\
\} \textbf{ msgb\_alloc}\\

\end{tabbing}\item 
\begin{tabbing}
xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill
struct \{\\
\>unsigned int \textbf{ max\_length}\\
\>\>{\em maximum length of write queue }\\
\>unsigned int \textbf{ current\_length}\\
\>\>{\em current length of write queue }\\
\>struct \textbf{ llist\_head} \textbf{ msg\_queue}\\
\>\>{\em actual linked list implementing the transmit queue }\\
\} \textbf{ tx\_queue}\\

\end{tabbing}\item 
\begin{tabbing}
xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill
union \{\\
\>struct \{\\
\>\>struct \textbf{ osmo\_fd} \textbf{ ofd}\\
\>\} \textbf{ poll}\\
\>struct \{\\
\>\>bool \textbf{ read\_enabled}\\
\>\>bool \textbf{ write\_enabled}\\
\>\>void $\ast$ \textbf{ read\_msghdr}\\
\>\>void $\ast$ \textbf{ write\_msghdr}\\
\>\>struct \textbf{ osmo\_fd} \textbf{ connect\_ofd}\\
\>\} \textbf{ uring}\\
\} \textbf{ u}\\

\end{tabbing}\end{DoxyCompactItemize}


\doxysubsection{Field Documentation}
\mbox{\label{structosmo__io__fd_aa7166045d288e12b889f1f398eeb4923}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!cmsg\_size@{cmsg\_size}}
\index{cmsg\_size@{cmsg\_size}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{cmsg\_size}
{\footnotesize\ttfamily size\+\_\+t osmo\+\_\+io\+\_\+fd\+::cmsg\+\_\+size}



size of \doxyref{iofd\+\_\+msghdr.\+cmsg}{p.}{structiofd__msghdr_a0b6ce942c09182b4e4283ce1fd5c56a1}[] when allocated in recvmsg path 



Referenced by \textbf{ iofd\+\_\+poll\+\_\+ofd\+\_\+cb\+\_\+recvmsg\+\_\+sendmsg()}, and \textbf{ osmo\+\_\+iofd\+\_\+set\+\_\+cmsg\+\_\+size()}.

\mbox{\label{structosmo__io__fd_ab226b1d7438d7c4c8e3485818aba5af6}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!connect\_ofd@{connect\_ofd}}
\index{connect\_ofd@{connect\_ofd}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{connect\_ofd}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+fd} osmo\+\_\+io\+\_\+fd\+::connect\+\_\+ofd}

\mbox{\label{structosmo__io__fd_ae927ca249f6d0178585fa9323c28e060}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!ctx@{ctx}}
\index{ctx@{ctx}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{ctx}
{\footnotesize\ttfamily const void$\ast$ osmo\+\_\+io\+\_\+fd\+::ctx}



talloc context from which to allocate msgb when reading 



Referenced by \textbf{ iofd\+\_\+handle\+\_\+recv()}, and \textbf{ osmo\+\_\+iofd\+\_\+setup()}.

\mbox{\label{structosmo__io__fd_a200497bb7aa734ce827aa795863d5742}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!current\_length@{current\_length}}
\index{current\_length@{current\_length}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{current\_length}
{\footnotesize\ttfamily unsigned int osmo\+\_\+io\+\_\+fd\+::current\+\_\+length}



current length of write queue 



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

\mbox{\label{structosmo__io__fd_aed3261fb71ffa29f7563c943c4c21bf6}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!data@{data}}
\index{data@{data}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{data}
{\footnotesize\ttfamily void$\ast$ osmo\+\_\+io\+\_\+fd\+::data}



data pointer passed through to call-\/back function 



Referenced by \textbf{ osmo\+\_\+iofd\+\_\+get\+\_\+data()}, \textbf{ osmo\+\_\+iofd\+\_\+set\+\_\+data()}, and \textbf{ osmo\+\_\+iofd\+\_\+setup()}.

\mbox{\label{structosmo__io__fd_ae4105adcc04d3423d489ea4a6a1ee76c}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!fd@{fd}}
\index{fd@{fd}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{fd}
{\footnotesize\ttfamily int osmo\+\_\+io\+\_\+fd\+::fd}



actual operating-\/system level file decriptor 



Referenced by \textbf{ iofd\+\_\+poll\+\_\+register()}, \textbf{ osmo\+\_\+iofd\+\_\+close()}, \textbf{ osmo\+\_\+iofd\+\_\+get\+\_\+fd()}, \textbf{ osmo\+\_\+iofd\+\_\+register()}, and \textbf{ osmo\+\_\+iofd\+\_\+setup()}.

\mbox{\label{structosmo__io__fd_a1be0f2518b2491bced3bc149fb4a6bac}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!flags@{flags}}
\index{flags@{flags}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{flags}
{\footnotesize\ttfamily uint32\+\_\+t osmo\+\_\+io\+\_\+fd\+::flags}



flags to guard closing/freeing of iofd 

\mbox{\label{structosmo__io__fd_acbce65b1ab089adbc5739b4bfc4f9052}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!headroom@{headroom}}
\index{headroom@{headroom}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{headroom}
{\footnotesize\ttfamily unsigned int osmo\+\_\+io\+\_\+fd\+::headroom}



headroom to allocate when allocating msgb\textquotesingle{}s 



Referenced by \textbf{ iofd\+\_\+msgb\+\_\+alloc()}, \textbf{ osmo\+\_\+iofd\+\_\+set\+\_\+alloc\+\_\+info()}, and \textbf{ osmo\+\_\+iofd\+\_\+setup()}.

\mbox{\label{structosmo__io__fd_aeb5665cca4207f3c8f3de690d292e376}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!io\_ops@{io\_ops}}
\index{io\_ops@{io\_ops}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{io\_ops}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+io\+\_\+ops} osmo\+\_\+io\+\_\+fd\+::io\+\_\+ops}



send/recv (msg) callback functions 



Referenced by \textbf{ iofd\+\_\+handle\+\_\+recv()}, \textbf{ iofd\+\_\+handle\+\_\+segmentation()}, \textbf{ iofd\+\_\+handle\+\_\+segmented\+\_\+read()}, \textbf{ iofd\+\_\+handle\+\_\+send\+\_\+completion()}, \textbf{ iofd\+\_\+poll\+\_\+ofd\+\_\+cb\+\_\+recvmsg\+\_\+sendmsg()}, \textbf{ osmo\+\_\+iofd\+\_\+get\+\_\+ioops()}, \textbf{ osmo\+\_\+iofd\+\_\+register()}, \textbf{ osmo\+\_\+iofd\+\_\+set\+\_\+ioops()}, and \textbf{ osmo\+\_\+iofd\+\_\+setup()}.

\mbox{\label{structosmo__io__fd_a93750af36d608cf1d894114ac4caae1e}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!list@{list}}
\index{list@{list}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{list}
{\footnotesize\ttfamily struct \textbf{ llist\+\_\+head} osmo\+\_\+io\+\_\+fd\+::list}



linked list for internal management 

\mbox{\label{structosmo__io__fd_a96bc1b363cb47d0c2c035e97af3eb416}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!max\_length@{max\_length}}
\index{max\_length@{max\_length}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{max\_length}
{\footnotesize\ttfamily unsigned int osmo\+\_\+io\+\_\+fd\+::max\+\_\+length}



maximum length of write queue 



Referenced by \textbf{ iofd\+\_\+txqueue\+\_\+enqueue()}, \textbf{ osmo\+\_\+iofd\+\_\+set\+\_\+txqueue\+\_\+max\+\_\+length()}, and \textbf{ osmo\+\_\+iofd\+\_\+setup()}.

\mbox{\label{structosmo__io__fd_a9010665e5a9acb070a111d0953be8360}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!mode@{mode}}
\index{mode@{mode}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{mode}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+io\+\_\+fd\+\_\+mode} osmo\+\_\+io\+\_\+fd\+::mode}



type of read/write mode to use 



Referenced by \textbf{ iofd\+\_\+handle\+\_\+recv()}, \textbf{ iofd\+\_\+handle\+\_\+segmented\+\_\+read()}, \textbf{ iofd\+\_\+poll\+\_\+ofd\+\_\+cb\+\_\+recvmsg\+\_\+sendmsg()}, \textbf{ osmo\+\_\+iofd\+\_\+notify\+\_\+connected()}, \textbf{ osmo\+\_\+iofd\+\_\+register()}, \textbf{ osmo\+\_\+iofd\+\_\+sendmsg\+\_\+msgb()}, \textbf{ osmo\+\_\+iofd\+\_\+sendto\+\_\+msgb()}, \textbf{ osmo\+\_\+iofd\+\_\+set\+\_\+cmsg\+\_\+size()}, \textbf{ osmo\+\_\+iofd\+\_\+set\+\_\+ioops()}, \textbf{ osmo\+\_\+iofd\+\_\+setup()}, and \textbf{ osmo\+\_\+iofd\+\_\+write\+\_\+msgb()}.

\mbox{\label{structosmo__io__fd_a7cbdd5a0ee276c444a31acae133a3dd0}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!msg\_queue@{msg\_queue}}
\index{msg\_queue@{msg\_queue}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{msg\_queue}
{\footnotesize\ttfamily struct \textbf{ llist\+\_\+head} osmo\+\_\+io\+\_\+fd\+::msg\+\_\+queue}



actual linked list implementing the transmit queue 



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

\mbox{\label{structosmo__io__fd_a9072a04386c2f7995b335335cd795995}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!msgb\_alloc@{msgb\_alloc}}
\index{msgb\_alloc@{msgb\_alloc}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{}
{\footnotesize\ttfamily struct  \{ ... \}  osmo\+\_\+io\+\_\+fd\+::msgb\+\_\+alloc}



Referenced by \textbf{ iofd\+\_\+handle\+\_\+recv()}, \textbf{ iofd\+\_\+msgb\+\_\+alloc()}, \textbf{ osmo\+\_\+iofd\+\_\+set\+\_\+alloc\+\_\+info()}, and \textbf{ osmo\+\_\+iofd\+\_\+setup()}.

\mbox{\label{structosmo__io__fd_a90b320d50581f9c4484406477ce1212a}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!name@{name}}
\index{name@{name}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{name}
{\footnotesize\ttfamily char$\ast$ osmo\+\_\+io\+\_\+fd\+::name}



human-\/readable name to associte with fd 



Referenced by \textbf{ osmo\+\_\+iofd\+\_\+get\+\_\+name()}, \textbf{ osmo\+\_\+iofd\+\_\+set\+\_\+name()}, and \textbf{ osmo\+\_\+iofd\+\_\+setup()}.

\mbox{\label{structosmo__io__fd_accdbc778efe3b90e15a487beaa2a90d4}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!ofd@{ofd}}
\index{ofd@{ofd}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{ofd}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+fd} osmo\+\_\+io\+\_\+fd\+::ofd}



Referenced by \textbf{ iofd\+\_\+poll\+\_\+close()}, \textbf{ iofd\+\_\+poll\+\_\+notify\+\_\+connected()}, \textbf{ iofd\+\_\+poll\+\_\+ofd\+\_\+cb\+\_\+dispatch()}, \textbf{ iofd\+\_\+poll\+\_\+ofd\+\_\+cb\+\_\+recvmsg\+\_\+sendmsg()}, \textbf{ iofd\+\_\+poll\+\_\+read\+\_\+disable()}, \textbf{ iofd\+\_\+poll\+\_\+read\+\_\+enable()}, \textbf{ iofd\+\_\+poll\+\_\+register()}, \textbf{ iofd\+\_\+poll\+\_\+unregister()}, \textbf{ iofd\+\_\+poll\+\_\+write\+\_\+disable()}, and \textbf{ iofd\+\_\+poll\+\_\+write\+\_\+enable()}.

\mbox{\label{structosmo__io__fd_a4447413cf79fb318796546dab9817844}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!pending@{pending}}
\index{pending@{pending}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{pending}
{\footnotesize\ttfamily struct \textbf{ msgb}$\ast$ osmo\+\_\+io\+\_\+fd\+::pending}



Pending msgb to keep partial data during segmentation. 



Referenced by \textbf{ iofd\+\_\+handle\+\_\+segmented\+\_\+read()}, \textbf{ iofd\+\_\+msgb\+\_\+pending()}, \textbf{ osmo\+\_\+iofd\+\_\+close()}, and \textbf{ osmo\+\_\+iofd\+\_\+setup()}.

\mbox{\label{structosmo__io__fd_ab39aee024d7d0cab58ee9cc3a68eead9}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!poll@{poll}}
\index{poll@{poll}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{}
{\footnotesize\ttfamily struct  \{ ... \}  osmo\+\_\+io\+\_\+fd\+::poll}



Referenced by \textbf{ iofd\+\_\+poll\+\_\+close()}, \textbf{ iofd\+\_\+poll\+\_\+notify\+\_\+connected()}, \textbf{ iofd\+\_\+poll\+\_\+read\+\_\+disable()}, \textbf{ iofd\+\_\+poll\+\_\+read\+\_\+enable()}, \textbf{ iofd\+\_\+poll\+\_\+register()}, \textbf{ iofd\+\_\+poll\+\_\+unregister()}, \textbf{ iofd\+\_\+poll\+\_\+write\+\_\+disable()}, and \textbf{ iofd\+\_\+poll\+\_\+write\+\_\+enable()}.

\mbox{\label{structosmo__io__fd_af090fe2bb7ea35d1d7284214fd1977f5}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!priv\_nr@{priv\_nr}}
\index{priv\_nr@{priv\_nr}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{priv\_nr}
{\footnotesize\ttfamily unsigned int osmo\+\_\+io\+\_\+fd\+::priv\+\_\+nr}



private number, extending {\itshape data} 



Referenced by \textbf{ osmo\+\_\+iofd\+\_\+get\+\_\+priv\+\_\+nr()}, and \textbf{ osmo\+\_\+iofd\+\_\+set\+\_\+priv\+\_\+nr()}.

\mbox{\label{structosmo__io__fd_a4f8d8b22eca00dee89977ab9cceb28f7}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!read\_enabled@{read\_enabled}}
\index{read\_enabled@{read\_enabled}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{read\_enabled}
{\footnotesize\ttfamily bool osmo\+\_\+io\+\_\+fd\+::read\+\_\+enabled}

\mbox{\label{structosmo__io__fd_a33f72d65e89ac8dab2fe3a1c7cef643f}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!read\_msghdr@{read\_msghdr}}
\index{read\_msghdr@{read\_msghdr}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{read\_msghdr}
{\footnotesize\ttfamily void$\ast$ osmo\+\_\+io\+\_\+fd\+::read\+\_\+msghdr}

\mbox{\label{structosmo__io__fd_ade7aca1fe0e03f3eb29c666f23a370bb}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!size@{size}}
\index{size@{size}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{size}
{\footnotesize\ttfamily unsigned int osmo\+\_\+io\+\_\+fd\+::size}



size of msgb to allocate (excluding headroom) 



Referenced by \textbf{ iofd\+\_\+msgb\+\_\+alloc()}, \textbf{ osmo\+\_\+iofd\+\_\+set\+\_\+alloc\+\_\+info()}, and \textbf{ osmo\+\_\+iofd\+\_\+setup()}.

\mbox{\label{structosmo__io__fd_a5dba59d70073fa5d06a727733c7d6ac5}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!tx\_queue@{tx\_queue}}
\index{tx\_queue@{tx\_queue}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{}
{\footnotesize\ttfamily struct  \{ ... \}  osmo\+\_\+io\+\_\+fd\+::tx\+\_\+queue}



Referenced by \textbf{ iofd\+\_\+txqueue\+\_\+dequeue()}, \textbf{ iofd\+\_\+txqueue\+\_\+enqueue()}, \textbf{ iofd\+\_\+txqueue\+\_\+enqueue\+\_\+front()}, \textbf{ osmo\+\_\+iofd\+\_\+register()}, \textbf{ osmo\+\_\+iofd\+\_\+set\+\_\+txqueue\+\_\+max\+\_\+length()}, \textbf{ osmo\+\_\+iofd\+\_\+setup()}, and \textbf{ osmo\+\_\+iofd\+\_\+txqueue\+\_\+len()}.

\mbox{\label{structosmo__io__fd_a60bc7b9213310db03257cecebd289ea3}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!u@{u}}
\index{u@{u}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{}
{\footnotesize\ttfamily union  \{ ... \}  osmo\+\_\+io\+\_\+fd\+::u}



Referenced by \textbf{ iofd\+\_\+poll\+\_\+close()}, \textbf{ iofd\+\_\+poll\+\_\+notify\+\_\+connected()}, \textbf{ iofd\+\_\+poll\+\_\+read\+\_\+disable()}, \textbf{ iofd\+\_\+poll\+\_\+read\+\_\+enable()}, \textbf{ iofd\+\_\+poll\+\_\+register()}, \textbf{ iofd\+\_\+poll\+\_\+unregister()}, \textbf{ iofd\+\_\+poll\+\_\+write\+\_\+disable()}, and \textbf{ iofd\+\_\+poll\+\_\+write\+\_\+enable()}.

\mbox{\label{structosmo__io__fd_ab419b429755fa5ea559f5df92b3f2ba2}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!uring@{uring}}
\index{uring@{uring}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{}
{\footnotesize\ttfamily struct  \{ ... \}  osmo\+\_\+io\+\_\+fd\+::uring}

\mbox{\label{structosmo__io__fd_a8ff5cfaba30131facea429858146fde8}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!write\_enabled@{write\_enabled}}
\index{write\_enabled@{write\_enabled}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{write\_enabled}
{\footnotesize\ttfamily bool osmo\+\_\+io\+\_\+fd\+::write\+\_\+enabled}

\mbox{\label{structosmo__io__fd_a69db3024abddea0b2ee69901240e5537}} 
\index{osmo\_io\_fd@{osmo\_io\_fd}!write\_msghdr@{write\_msghdr}}
\index{write\_msghdr@{write\_msghdr}!osmo\_io\_fd@{osmo\_io\_fd}}
\doxysubsubsection{write\_msghdr}
{\footnotesize\ttfamily void$\ast$ osmo\+\_\+io\+\_\+fd\+::write\+\_\+msghdr}



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