\doxysection{src/isdn/v110.c File Reference}
\label{v110_8c}\index{src/isdn/v110.c@{src/isdn/v110.c}}
{\ttfamily \#include $<$stdint.\+h$>$}\newline
{\ttfamily \#include $<$errno.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/bits.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/isdn/v110.\+h$>$}\newline
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ F}~1
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \textbf{ osmo\+\_\+v110\+\_\+decode\+\_\+frame} (struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$fr, const \textbf{ ubit\+\_\+t} $\ast$ra\+\_\+bits, size\+\_\+t n\+\_\+bits)
\begin{DoxyCompactList}\small\item\em Decode a 80-\/bit V.\+110 frame present as 80 ubits into a struct \doxyref{osmo\+\_\+v110\+\_\+decoded\+\_\+frame}{p.}{structosmo__v110__decoded__frame}. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+v110\+\_\+encode\+\_\+frame} (\textbf{ ubit\+\_\+t} $\ast$ra\+\_\+bits, size\+\_\+t n\+\_\+bits, const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$fr)
\begin{DoxyCompactList}\small\item\em Encode a struct \doxyref{osmo\+\_\+v110\+\_\+decoded\+\_\+frame}{p.}{structosmo__v110__decoded__frame} into an 80-\/bit V.\+110 frame as ubits. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+v110\+\_\+ubit\+\_\+dump} (FILE $\ast$outf, const \textbf{ ubit\+\_\+t} $\ast$fr, size\+\_\+t in\+\_\+len)
\begin{DoxyCompactList}\small\item\em Print a encoded V.\+110 frame in the same table-\/like structure as the spec. \end{DoxyCompactList}\item 
static int \textbf{ v110\+\_\+adapt\+\_\+600\+\_\+to\+\_\+\+IR8000} (struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$fr, const \textbf{ ubit\+\_\+t} $\ast$d\+\_\+in, size\+\_\+t in\+\_\+len)
\begin{DoxyCompactList}\small\item\em Adapt from 6 synchronous 600bit/s input bits to a decoded V.\+110 frame. \end{DoxyCompactList}\item 
static int \textbf{ v110\+\_\+adapt\+\_\+\+IR8000\+\_\+to\+\_\+600} (\textbf{ ubit\+\_\+t} $\ast$d\+\_\+out, size\+\_\+t out\+\_\+len, const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$fr)
\item 
static int \textbf{ v110\+\_\+adapt\+\_\+1200\+\_\+to\+\_\+\+IR8000} (struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$fr, const \textbf{ ubit\+\_\+t} $\ast$d\+\_\+in, size\+\_\+t in\+\_\+len)
\begin{DoxyCompactList}\small\item\em Adapt from 12 synchronous 1200bit/s input bits to a decoded V.\+110 frame. \end{DoxyCompactList}\item 
static int \textbf{ v110\+\_\+adapt\+\_\+\+IR8000\+\_\+to\+\_\+1200} (\textbf{ ubit\+\_\+t} $\ast$d\+\_\+out, size\+\_\+t out\+\_\+len, const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$fr)
\item 
static int \textbf{ v110\+\_\+adapt\+\_\+2400\+\_\+to\+\_\+\+IR8000} (struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$fr, const \textbf{ ubit\+\_\+t} $\ast$d\+\_\+in, size\+\_\+t in\+\_\+len)
\begin{DoxyCompactList}\small\item\em Adapt from 24 synchronous 2400bit/s input bits to a decoded V.\+110 frame. \end{DoxyCompactList}\item 
static int \textbf{ v110\+\_\+adapt\+\_\+\+IR8000\+\_\+to\+\_\+2400} (\textbf{ ubit\+\_\+t} $\ast$d\+\_\+out, size\+\_\+t out\+\_\+len, const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$fr)
\item 
static int \textbf{ v110\+\_\+adapt\+\_\+\+Nx3600\+\_\+to\+\_\+\+IR} (struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$fr, const \textbf{ ubit\+\_\+t} $\ast$d\+\_\+in, size\+\_\+t in\+\_\+len)
\begin{DoxyCompactList}\small\item\em Adapt from 36 synchronous N x 3600bit/s input bits to a decoded V.\+110 frame. \end{DoxyCompactList}\item 
static int \textbf{ v110\+\_\+adapt\+\_\+\+IR\+\_\+to\+\_\+\+Nx3600} (\textbf{ ubit\+\_\+t} $\ast$d\+\_\+out, size\+\_\+t out\+\_\+len, const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$fr)
\item 
static int \textbf{ v110\+\_\+adapt\+\_\+\+Nx4800\+\_\+to\+\_\+\+IR} (struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$fr, const \textbf{ ubit\+\_\+t} $\ast$d\+\_\+in, size\+\_\+t in\+\_\+len)
\begin{DoxyCompactList}\small\item\em Adapt from 48 synchronous N x 4800bit/s input bits to a decoded V.\+110 frame. \end{DoxyCompactList}\item 
static int \textbf{ v110\+\_\+adapt\+\_\+\+IR\+\_\+to\+\_\+\+Nx4800} (\textbf{ ubit\+\_\+t} $\ast$d\+\_\+out, size\+\_\+t out\+\_\+len, const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$fr)
\item 
static int \textbf{ v110\+\_\+adapt\+\_\+\+Nx12000\+\_\+to\+\_\+\+IR} (struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$fr, const \textbf{ ubit\+\_\+t} $\ast$d\+\_\+in, size\+\_\+t in\+\_\+len)
\begin{DoxyCompactList}\small\item\em Adapt from 30 synchronous N x 12000bit/s input bits to a decoded V.\+110 frame. \end{DoxyCompactList}\item 
static int \textbf{ v110\+\_\+adapt\+\_\+\+IR\+\_\+to\+\_\+\+Nx12000} (\textbf{ ubit\+\_\+t} $\ast$d\+\_\+out, size\+\_\+t out\+\_\+len, const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$fr)
\item 
int \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+get\+\_\+user\+\_\+data\+\_\+chunk\+\_\+bitlen} (enum \textbf{ osmo\+\_\+v100\+\_\+sync\+\_\+ra1\+\_\+rate} rate)
\begin{DoxyCompactList}\small\item\em obtain the size (in number of bits) of the user data bits in one V.\+110 frame for specified RA1 rate \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+get\+\_\+user\+\_\+data\+\_\+rate} (enum \textbf{ osmo\+\_\+v100\+\_\+sync\+\_\+ra1\+\_\+rate} rate)
\begin{DoxyCompactList}\small\item\em obtain the user data rate (in bits/s) for specified RA1 rate \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+get\+\_\+intermediate\+\_\+rate} (enum \textbf{ osmo\+\_\+v100\+\_\+sync\+\_\+ra1\+\_\+rate} rate)
\begin{DoxyCompactList}\small\item\em obtain the intermediate rate (in bits/s) for specified RA1 rate \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+user\+\_\+to\+\_\+ir} (enum \textbf{ osmo\+\_\+v100\+\_\+sync\+\_\+ra1\+\_\+rate} rate, struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$fr, const \textbf{ ubit\+\_\+t} $\ast$d\+\_\+in, size\+\_\+t in\+\_\+len)
\begin{DoxyCompactList}\small\item\em perform V.\+110 RA1 function in user rate -\/$>$ intermediate rate direction. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+ir\+\_\+to\+\_\+user} (enum \textbf{ osmo\+\_\+v100\+\_\+sync\+\_\+ra1\+\_\+rate} rate, \textbf{ ubit\+\_\+t} $\ast$d\+\_\+out, size\+\_\+t out\+\_\+len, const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$fr)
\begin{DoxyCompactList}\small\item\em perform V.\+110 RA1 function in intermediate rate -\/$>$ user rate direction. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
const \textbf{ ubit\+\_\+t} \textbf{ osmo\+\_\+v110\+\_\+e1e2e3} [\textbf{ \+\_\+\+NUM\+\_\+\+OSMO\+\_\+\+V110\+\_\+\+SYNC\+\_\+\+RA1}][3]
\begin{DoxyCompactList}\small\item\em E1/\+E2/\+E3 bit values as per Table 5/\+V.\+110. \end{DoxyCompactList}\item 
static const struct \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1} \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+def} [\textbf{ \+\_\+\+NUM\+\_\+\+OSMO\+\_\+\+V110\+\_\+\+SYNC\+\_\+\+RA1}]
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\label{v110_8c_a42257a545daf5b7933d6e8f96adc74f2}} 
\index{v110.c@{v110.c}!F@{F}}
\index{F@{F}!v110.c@{v110.c}}
\doxysubsubsection{F}
{\footnotesize\ttfamily \#define F~1}



\doxysubsection{Function Documentation}
\mbox{\label{v110_8c_acc6f2e28e2a12d015e2dc1abd9161323}} 
\index{v110.c@{v110.c}!osmo\_v110\_decode\_frame@{osmo\_v110\_decode\_frame}}
\index{osmo\_v110\_decode\_frame@{osmo\_v110\_decode\_frame}!v110.c@{v110.c}}
\doxysubsubsection{osmo\_v110\_decode\_frame()}
{\footnotesize\ttfamily int osmo\+\_\+v110\+\_\+decode\+\_\+frame (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$}]{fr,  }\item[{const \textbf{ ubit\+\_\+t} $\ast$}]{ra\+\_\+bits,  }\item[{size\+\_\+t}]{n\+\_\+bits }\end{DoxyParamCaption})}



Decode a 80-\/bit V.\+110 frame present as 80 ubits into a struct \doxyref{osmo\+\_\+v110\+\_\+decoded\+\_\+frame}{p.}{structosmo__v110__decoded__frame}. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em fr} & caller-\/allocated output data structure, filled by this function \\
\hline
\mbox{\texttt{ in}}  & {\em ra\+\_\+bits} & One V.\+110 frame as 80 unpacked bits. \\
\hline
\mbox{\texttt{ in}}  & {\em n\+\_\+bits} & number of unpacked bits provided in ra\+\_\+bits \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 in case of success; negative on error. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::d\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::e\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::s\+\_\+bits}, and \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::x\+\_\+bits}.

\mbox{\label{v110_8c_af3cbd1398cd8f1548c12f88be13368fe}} 
\index{v110.c@{v110.c}!osmo\_v110\_encode\_frame@{osmo\_v110\_encode\_frame}}
\index{osmo\_v110\_encode\_frame@{osmo\_v110\_encode\_frame}!v110.c@{v110.c}}
\doxysubsubsection{osmo\_v110\_encode\_frame()}
{\footnotesize\ttfamily int osmo\+\_\+v110\+\_\+encode\+\_\+frame (\begin{DoxyParamCaption}\item[{\textbf{ ubit\+\_\+t} $\ast$}]{ra\+\_\+bits,  }\item[{size\+\_\+t}]{n\+\_\+bits,  }\item[{const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$}]{fr }\end{DoxyParamCaption})}



Encode a struct \doxyref{osmo\+\_\+v110\+\_\+decoded\+\_\+frame}{p.}{structosmo__v110__decoded__frame} into an 80-\/bit V.\+110 frame as ubits. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em ra\+\_\+bits} & caller-\/provided output buffer at leat 80 ubits large \\
\hline
\mbox{\texttt{ in}}  & {\em n\+\_\+bits} & length of ra\+\_\+bits. Must be at least 80. \\
\hline
\mbox{\texttt{ in}}  & {\em input} & data structure \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bits written to ra\+\_\+bits 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::d\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::e\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::s\+\_\+bits}, and \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::x\+\_\+bits}.

\mbox{\label{v110_8c_a02c02ce33eadc13d32721deef44cee7b}} 
\index{v110.c@{v110.c}!osmo\_v110\_sync\_ra1\_get\_intermediate\_rate@{osmo\_v110\_sync\_ra1\_get\_intermediate\_rate}}
\index{osmo\_v110\_sync\_ra1\_get\_intermediate\_rate@{osmo\_v110\_sync\_ra1\_get\_intermediate\_rate}!v110.c@{v110.c}}
\doxysubsubsection{osmo\_v110\_sync\_ra1\_get\_intermediate\_rate()}
{\footnotesize\ttfamily int osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+get\+\_\+intermediate\+\_\+rate (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+v100\+\_\+sync\+\_\+ra1\+\_\+rate}}]{rate }\end{DoxyParamCaption})}



obtain the intermediate rate (in bits/s) for specified RA1 rate 



References \textbf{ \+\_\+\+NUM\+\_\+\+OSMO\+\_\+\+V110\+\_\+\+SYNC\+\_\+\+RA1}, \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+::intermediate\+\_\+rate}, and \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+def}.

\mbox{\label{v110_8c_ac4e7ce7e4a6b6b3aa224cfeecf62ac3f}} 
\index{v110.c@{v110.c}!osmo\_v110\_sync\_ra1\_get\_user\_data\_chunk\_bitlen@{osmo\_v110\_sync\_ra1\_get\_user\_data\_chunk\_bitlen}}
\index{osmo\_v110\_sync\_ra1\_get\_user\_data\_chunk\_bitlen@{osmo\_v110\_sync\_ra1\_get\_user\_data\_chunk\_bitlen}!v110.c@{v110.c}}
\doxysubsubsection{osmo\_v110\_sync\_ra1\_get\_user\_data\_chunk\_bitlen()}
{\footnotesize\ttfamily int osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+get\+\_\+user\+\_\+data\+\_\+chunk\+\_\+bitlen (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+v100\+\_\+sync\+\_\+ra1\+\_\+rate}}]{rate }\end{DoxyParamCaption})}



obtain the size (in number of bits) of the user data bits in one V.\+110 frame for specified RA1 rate 



References \textbf{ \+\_\+\+NUM\+\_\+\+OSMO\+\_\+\+V110\+\_\+\+SYNC\+\_\+\+RA1}, \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+def}, and \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+::user\+\_\+data\+\_\+chunk\+\_\+bits}.



Referenced by \textbf{ v110\+\_\+ta\+\_\+build\+\_\+frame()}, and \textbf{ v110\+\_\+ta\+\_\+handle\+\_\+frame()}.

\mbox{\label{v110_8c_af0943d3c316d70dcd9061a0f3fc0540a}} 
\index{v110.c@{v110.c}!osmo\_v110\_sync\_ra1\_get\_user\_data\_rate@{osmo\_v110\_sync\_ra1\_get\_user\_data\_rate}}
\index{osmo\_v110\_sync\_ra1\_get\_user\_data\_rate@{osmo\_v110\_sync\_ra1\_get\_user\_data\_rate}!v110.c@{v110.c}}
\doxysubsubsection{osmo\_v110\_sync\_ra1\_get\_user\_data\_rate()}
{\footnotesize\ttfamily int osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+get\+\_\+user\+\_\+data\+\_\+rate (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+v100\+\_\+sync\+\_\+ra1\+\_\+rate}}]{rate }\end{DoxyParamCaption})}



obtain the user data rate (in bits/s) for specified RA1 rate 



References \textbf{ \+\_\+\+NUM\+\_\+\+OSMO\+\_\+\+V110\+\_\+\+SYNC\+\_\+\+RA1}, \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+::data\+\_\+rate}, and \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+def}.

\mbox{\label{v110_8c_ae7646c097b11e07bd7f8892ecf7e5883}} 
\index{v110.c@{v110.c}!osmo\_v110\_sync\_ra1\_ir\_to\_user@{osmo\_v110\_sync\_ra1\_ir\_to\_user}}
\index{osmo\_v110\_sync\_ra1\_ir\_to\_user@{osmo\_v110\_sync\_ra1\_ir\_to\_user}!v110.c@{v110.c}}
\doxysubsubsection{osmo\_v110\_sync\_ra1\_ir\_to\_user()}
{\footnotesize\ttfamily int osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+ir\+\_\+to\+\_\+user (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+v100\+\_\+sync\+\_\+ra1\+\_\+rate}}]{rate,  }\item[{\textbf{ ubit\+\_\+t} $\ast$}]{d\+\_\+out,  }\item[{size\+\_\+t}]{out\+\_\+len,  }\item[{const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$}]{fr }\end{DoxyParamCaption})}



perform V.\+110 RA1 function in intermediate rate -\/$>$ user rate direction. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rate} & specification of the user bitrate \\
\hline
\mbox{\texttt{ out}}  & {\em d\+\_\+out} & caller-\/allocated output user data (unpacked bits) \\
\hline
\mbox{\texttt{ out}}  & {\em out\+\_\+len} & length of d\+\_\+out output buffer \\
\hline
\mbox{\texttt{ in}}  & {\em fr} & [decoded] V.\+110 frame used as input \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of unpacked bits written to d\+\_\+out on success; negative in case of error 
\end{DoxyReturn}


References \textbf{ \+\_\+\+NUM\+\_\+\+OSMO\+\_\+\+V110\+\_\+\+SYNC\+\_\+\+RA1}, \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+::adapt\+\_\+ir\+\_\+to\+\_\+user}, and \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+def}.



Referenced by \textbf{ v110\+\_\+ta\+\_\+handle\+\_\+frame()}.

\mbox{\label{v110_8c_a8919fd7d95ea3d611c1ccbdf50d4b6b1}} 
\index{v110.c@{v110.c}!osmo\_v110\_sync\_ra1\_user\_to\_ir@{osmo\_v110\_sync\_ra1\_user\_to\_ir}}
\index{osmo\_v110\_sync\_ra1\_user\_to\_ir@{osmo\_v110\_sync\_ra1\_user\_to\_ir}!v110.c@{v110.c}}
\doxysubsubsection{osmo\_v110\_sync\_ra1\_user\_to\_ir()}
{\footnotesize\ttfamily int osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+user\+\_\+to\+\_\+ir (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+v100\+\_\+sync\+\_\+ra1\+\_\+rate}}]{rate,  }\item[{struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$}]{fr,  }\item[{const \textbf{ ubit\+\_\+t} $\ast$}]{d\+\_\+in,  }\item[{size\+\_\+t}]{in\+\_\+len }\end{DoxyParamCaption})}



perform V.\+110 RA1 function in user rate -\/$>$ intermediate rate direction. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rate} & specification of the user bitrate \\
\hline
\mbox{\texttt{ out}}  & {\em fr} & caller-\/allocated output buffer for the [decoded] V.\+110 frame generated \\
\hline
\mbox{\texttt{ in}}  & {\em d\+\_\+in} & input user data (unpacked bits) \\
\hline
\mbox{\texttt{ in}}  & {\em in\+\_\+len} & length of user input data (in number of bits) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative in case of error 
\end{DoxyReturn}


References \textbf{ \+\_\+\+NUM\+\_\+\+OSMO\+\_\+\+V110\+\_\+\+SYNC\+\_\+\+RA1}, \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+::adapt\+\_\+user\+\_\+to\+\_\+ir}, and \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+def}.



Referenced by \textbf{ v110\+\_\+ta\+\_\+build\+\_\+frame()}.

\mbox{\label{v110_8c_a65f773ea9a57fde1f2e4367b14d58dda}} 
\index{v110.c@{v110.c}!osmo\_v110\_ubit\_dump@{osmo\_v110\_ubit\_dump}}
\index{osmo\_v110\_ubit\_dump@{osmo\_v110\_ubit\_dump}!v110.c@{v110.c}}
\doxysubsubsection{osmo\_v110\_ubit\_dump()}
{\footnotesize\ttfamily void osmo\+\_\+v110\+\_\+ubit\+\_\+dump (\begin{DoxyParamCaption}\item[{FILE $\ast$}]{outf,  }\item[{const \textbf{ ubit\+\_\+t} $\ast$}]{fr,  }\item[{size\+\_\+t}]{in\+\_\+len }\end{DoxyParamCaption})}



Print a encoded V.\+110 frame in the same table-\/like structure as the spec. 


\begin{DoxyParams}[1]{Parameters}
 & {\em outf} & output FILE stream to which to dump \\
\hline
\mbox{\texttt{ in}}  & {\em fr} & unpacked bits to dump \\
\hline
\mbox{\texttt{ in}}  & {\em in\+\_\+len} & length of unpacked bits available at fr. \\
\hline
\end{DoxyParams}
\mbox{\label{v110_8c_a5b0b7c7e5b1f594d91025fd90b8bd394}} 
\index{v110.c@{v110.c}!v110\_adapt\_1200\_to\_IR8000@{v110\_adapt\_1200\_to\_IR8000}}
\index{v110\_adapt\_1200\_to\_IR8000@{v110\_adapt\_1200\_to\_IR8000}!v110.c@{v110.c}}
\doxysubsubsection{v110\_adapt\_1200\_to\_IR8000()}
{\footnotesize\ttfamily static int v110\+\_\+adapt\+\_\+1200\+\_\+to\+\_\+\+IR8000 (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$}]{fr,  }\item[{const \textbf{ ubit\+\_\+t} $\ast$}]{d\+\_\+in,  }\item[{size\+\_\+t}]{in\+\_\+len }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Adapt from 12 synchronous 1200bit/s input bits to a decoded V.\+110 frame. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em fr} & caller-\/allocated output frame to which E+D bits are stored \\
\hline
\mbox{\texttt{ in}}  & {\em d\+\_\+in} & input user bits \\
\hline
\mbox{\texttt{ in}}  & {\em in\+\_\+len} & number of bits in d\+\_\+in. Must be 12. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative in case of error. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::d\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::e\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+e1e2e3\+\_\+set}, and \textbf{ OSMO\+\_\+\+V110\+\_\+\+SYNC\+\_\+\+RA1\+\_\+1200}.

\mbox{\label{v110_8c_ab3a3333c739fad6f834773aea3167afa}} 
\index{v110.c@{v110.c}!v110\_adapt\_2400\_to\_IR8000@{v110\_adapt\_2400\_to\_IR8000}}
\index{v110\_adapt\_2400\_to\_IR8000@{v110\_adapt\_2400\_to\_IR8000}!v110.c@{v110.c}}
\doxysubsubsection{v110\_adapt\_2400\_to\_IR8000()}
{\footnotesize\ttfamily static int v110\+\_\+adapt\+\_\+2400\+\_\+to\+\_\+\+IR8000 (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$}]{fr,  }\item[{const \textbf{ ubit\+\_\+t} $\ast$}]{d\+\_\+in,  }\item[{size\+\_\+t}]{in\+\_\+len }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Adapt from 24 synchronous 2400bit/s input bits to a decoded V.\+110 frame. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em fr} & caller-\/allocated output frame to which E+D bits are stored \\
\hline
\mbox{\texttt{ in}}  & {\em d\+\_\+in} & input user bits \\
\hline
\mbox{\texttt{ in}}  & {\em in\+\_\+len} & number of bits in d\+\_\+in. Must be 24. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative in case of error. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::d\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::e\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+e1e2e3\+\_\+set}, and \textbf{ OSMO\+\_\+\+V110\+\_\+\+SYNC\+\_\+\+RA1\+\_\+2400}.

\mbox{\label{v110_8c_aef03bf16d02cfe8c41d935fb293726fc}} 
\index{v110.c@{v110.c}!v110\_adapt\_600\_to\_IR8000@{v110\_adapt\_600\_to\_IR8000}}
\index{v110\_adapt\_600\_to\_IR8000@{v110\_adapt\_600\_to\_IR8000}!v110.c@{v110.c}}
\doxysubsubsection{v110\_adapt\_600\_to\_IR8000()}
{\footnotesize\ttfamily static int v110\+\_\+adapt\+\_\+600\+\_\+to\+\_\+\+IR8000 (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$}]{fr,  }\item[{const \textbf{ ubit\+\_\+t} $\ast$}]{d\+\_\+in,  }\item[{size\+\_\+t}]{in\+\_\+len }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Adapt from 6 synchronous 600bit/s input bits to a decoded V.\+110 frame. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em fr} & caller-\/allocated output frame to which E+D bits are stored \\
\hline
\mbox{\texttt{ in}}  & {\em d\+\_\+in} & input user bits \\
\hline
\mbox{\texttt{ in}}  & {\em in\+\_\+len} & number of bits in d\+\_\+in. Must be 6. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative in case of error. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::d\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::e\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+e1e2e3\+\_\+set}, and \textbf{ OSMO\+\_\+\+V110\+\_\+\+SYNC\+\_\+\+RA1\+\_\+600}.

\mbox{\label{v110_8c_acbb52fe669183821940db715e486aa23}} 
\index{v110.c@{v110.c}!v110\_adapt\_IR8000\_to\_1200@{v110\_adapt\_IR8000\_to\_1200}}
\index{v110\_adapt\_IR8000\_to\_1200@{v110\_adapt\_IR8000\_to\_1200}!v110.c@{v110.c}}
\doxysubsubsection{v110\_adapt\_IR8000\_to\_1200()}
{\footnotesize\ttfamily static int v110\+\_\+adapt\+\_\+\+IR8000\+\_\+to\+\_\+1200 (\begin{DoxyParamCaption}\item[{\textbf{ ubit\+\_\+t} $\ast$}]{d\+\_\+out,  }\item[{size\+\_\+t}]{out\+\_\+len,  }\item[{const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$}]{fr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::d\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::e\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+e1e2e3\+\_\+cmp}, and \textbf{ OSMO\+\_\+\+V110\+\_\+\+SYNC\+\_\+\+RA1\+\_\+1200}.

\mbox{\label{v110_8c_a63df12b4f85293ba4f38b7a489628fe8}} 
\index{v110.c@{v110.c}!v110\_adapt\_IR8000\_to\_2400@{v110\_adapt\_IR8000\_to\_2400}}
\index{v110\_adapt\_IR8000\_to\_2400@{v110\_adapt\_IR8000\_to\_2400}!v110.c@{v110.c}}
\doxysubsubsection{v110\_adapt\_IR8000\_to\_2400()}
{\footnotesize\ttfamily static int v110\+\_\+adapt\+\_\+\+IR8000\+\_\+to\+\_\+2400 (\begin{DoxyParamCaption}\item[{\textbf{ ubit\+\_\+t} $\ast$}]{d\+\_\+out,  }\item[{size\+\_\+t}]{out\+\_\+len,  }\item[{const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$}]{fr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::d\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::e\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+e1e2e3\+\_\+cmp}, and \textbf{ OSMO\+\_\+\+V110\+\_\+\+SYNC\+\_\+\+RA1\+\_\+2400}.

\mbox{\label{v110_8c_a05c7a6895e4572ad670f279463d4bf2c}} 
\index{v110.c@{v110.c}!v110\_adapt\_IR8000\_to\_600@{v110\_adapt\_IR8000\_to\_600}}
\index{v110\_adapt\_IR8000\_to\_600@{v110\_adapt\_IR8000\_to\_600}!v110.c@{v110.c}}
\doxysubsubsection{v110\_adapt\_IR8000\_to\_600()}
{\footnotesize\ttfamily static int v110\+\_\+adapt\+\_\+\+IR8000\+\_\+to\+\_\+600 (\begin{DoxyParamCaption}\item[{\textbf{ ubit\+\_\+t} $\ast$}]{d\+\_\+out,  }\item[{size\+\_\+t}]{out\+\_\+len,  }\item[{const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$}]{fr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::d\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::e\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+e1e2e3\+\_\+cmp}, and \textbf{ OSMO\+\_\+\+V110\+\_\+\+SYNC\+\_\+\+RA1\+\_\+600}.

\mbox{\label{v110_8c_aa72d66251ca742e85d127dd36171e393}} 
\index{v110.c@{v110.c}!v110\_adapt\_IR\_to\_Nx12000@{v110\_adapt\_IR\_to\_Nx12000}}
\index{v110\_adapt\_IR\_to\_Nx12000@{v110\_adapt\_IR\_to\_Nx12000}!v110.c@{v110.c}}
\doxysubsubsection{v110\_adapt\_IR\_to\_Nx12000()}
{\footnotesize\ttfamily static int v110\+\_\+adapt\+\_\+\+IR\+\_\+to\+\_\+\+Nx12000 (\begin{DoxyParamCaption}\item[{\textbf{ ubit\+\_\+t} $\ast$}]{d\+\_\+out,  }\item[{size\+\_\+t}]{out\+\_\+len,  }\item[{const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$}]{fr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::d\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::e\+\_\+bits}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+v110\+\_\+e1e2e3\+\_\+cmp}, and \textbf{ OSMO\+\_\+\+V110\+\_\+\+SYNC\+\_\+\+RA1\+\_\+12000}.

\mbox{\label{v110_8c_af6737ade70dc3813e737ddcfdbc6080b}} 
\index{v110.c@{v110.c}!v110\_adapt\_IR\_to\_Nx3600@{v110\_adapt\_IR\_to\_Nx3600}}
\index{v110\_adapt\_IR\_to\_Nx3600@{v110\_adapt\_IR\_to\_Nx3600}!v110.c@{v110.c}}
\doxysubsubsection{v110\_adapt\_IR\_to\_Nx3600()}
{\footnotesize\ttfamily static int v110\+\_\+adapt\+\_\+\+IR\+\_\+to\+\_\+\+Nx3600 (\begin{DoxyParamCaption}\item[{\textbf{ ubit\+\_\+t} $\ast$}]{d\+\_\+out,  }\item[{size\+\_\+t}]{out\+\_\+len,  }\item[{const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$}]{fr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::d\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::e\+\_\+bits}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+v110\+\_\+e1e2e3\+\_\+cmp}, and \textbf{ OSMO\+\_\+\+V110\+\_\+\+SYNC\+\_\+\+RA1\+\_\+7200}.

\mbox{\label{v110_8c_a822d86e2e71073df8335d59644b8dbd6}} 
\index{v110.c@{v110.c}!v110\_adapt\_IR\_to\_Nx4800@{v110\_adapt\_IR\_to\_Nx4800}}
\index{v110\_adapt\_IR\_to\_Nx4800@{v110\_adapt\_IR\_to\_Nx4800}!v110.c@{v110.c}}
\doxysubsubsection{v110\_adapt\_IR\_to\_Nx4800()}
{\footnotesize\ttfamily static int v110\+\_\+adapt\+\_\+\+IR\+\_\+to\+\_\+\+Nx4800 (\begin{DoxyParamCaption}\item[{\textbf{ ubit\+\_\+t} $\ast$}]{d\+\_\+out,  }\item[{size\+\_\+t}]{out\+\_\+len,  }\item[{const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$}]{fr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::d\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::e\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+e1e2e3\+\_\+cmp}, and \textbf{ OSMO\+\_\+\+V110\+\_\+\+SYNC\+\_\+\+RA1\+\_\+4800}.

\mbox{\label{v110_8c_a336d83e507c0d4e1c7c7af0213927242}} 
\index{v110.c@{v110.c}!v110\_adapt\_Nx12000\_to\_IR@{v110\_adapt\_Nx12000\_to\_IR}}
\index{v110\_adapt\_Nx12000\_to\_IR@{v110\_adapt\_Nx12000\_to\_IR}!v110.c@{v110.c}}
\doxysubsubsection{v110\_adapt\_Nx12000\_to\_IR()}
{\footnotesize\ttfamily static int v110\+\_\+adapt\+\_\+\+Nx12000\+\_\+to\+\_\+\+IR (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$}]{fr,  }\item[{const \textbf{ ubit\+\_\+t} $\ast$}]{d\+\_\+in,  }\item[{size\+\_\+t}]{in\+\_\+len }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Adapt from 30 synchronous N x 12000bit/s input bits to a decoded V.\+110 frame. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em fr} & caller-\/allocated output frame to which E+D bits are stored \\
\hline
\mbox{\texttt{ in}}  & {\em d\+\_\+in} & input user bits \\
\hline
\mbox{\texttt{ in}}  & {\em in\+\_\+len} & number of bits in d\+\_\+in. Must be 30. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative in case of error. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::d\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::e\+\_\+bits}, \textbf{ F}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+v110\+\_\+e1e2e3\+\_\+set}, and \textbf{ OSMO\+\_\+\+V110\+\_\+\+SYNC\+\_\+\+RA1\+\_\+12000}.

\mbox{\label{v110_8c_aec09cd0973e39f113a48dd7ada3efdd7}} 
\index{v110.c@{v110.c}!v110\_adapt\_Nx3600\_to\_IR@{v110\_adapt\_Nx3600\_to\_IR}}
\index{v110\_adapt\_Nx3600\_to\_IR@{v110\_adapt\_Nx3600\_to\_IR}!v110.c@{v110.c}}
\doxysubsubsection{v110\_adapt\_Nx3600\_to\_IR()}
{\footnotesize\ttfamily static int v110\+\_\+adapt\+\_\+\+Nx3600\+\_\+to\+\_\+\+IR (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$}]{fr,  }\item[{const \textbf{ ubit\+\_\+t} $\ast$}]{d\+\_\+in,  }\item[{size\+\_\+t}]{in\+\_\+len }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Adapt from 36 synchronous N x 3600bit/s input bits to a decoded V.\+110 frame. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em fr} & caller-\/allocated output frame to which E+D bits are stored \\
\hline
\mbox{\texttt{ in}}  & {\em d\+\_\+in} & input user bits \\
\hline
\mbox{\texttt{ in}}  & {\em in\+\_\+len} & number of bits in d\+\_\+in. Must be 36. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative in case of error. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::d\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::e\+\_\+bits}, \textbf{ F}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+v110\+\_\+e1e2e3\+\_\+set}, and \textbf{ OSMO\+\_\+\+V110\+\_\+\+SYNC\+\_\+\+RA1\+\_\+7200}.

\mbox{\label{v110_8c_a23842e1b7f09ba67b9784db0245a95d9}} 
\index{v110.c@{v110.c}!v110\_adapt\_Nx4800\_to\_IR@{v110\_adapt\_Nx4800\_to\_IR}}
\index{v110\_adapt\_Nx4800\_to\_IR@{v110\_adapt\_Nx4800\_to\_IR}!v110.c@{v110.c}}
\doxysubsubsection{v110\_adapt\_Nx4800\_to\_IR()}
{\footnotesize\ttfamily static int v110\+\_\+adapt\+\_\+\+Nx4800\+\_\+to\+\_\+\+IR (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$}]{fr,  }\item[{const \textbf{ ubit\+\_\+t} $\ast$}]{d\+\_\+in,  }\item[{size\+\_\+t}]{in\+\_\+len }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Adapt from 48 synchronous N x 4800bit/s input bits to a decoded V.\+110 frame. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em fr} & caller-\/allocated output frame to which E+D bits are stored \\
\hline
\mbox{\texttt{ in}}  & {\em d\+\_\+in} & input user bits \\
\hline
\mbox{\texttt{ in}}  & {\em in\+\_\+len} & number of bits in d\+\_\+in. Must be 48. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative in case of error. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::d\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::e\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+e1e2e3\+\_\+set}, and \textbf{ OSMO\+\_\+\+V110\+\_\+\+SYNC\+\_\+\+RA1\+\_\+4800}.



\doxysubsection{Variable Documentation}
\mbox{\label{v110_8c_a7d9a7b0b64b999c831d36a657b4aca46}} 
\index{v110.c@{v110.c}!osmo\_v110\_e1e2e3@{osmo\_v110\_e1e2e3}}
\index{osmo\_v110\_e1e2e3@{osmo\_v110\_e1e2e3}!v110.c@{v110.c}}
\doxysubsubsection{osmo\_v110\_e1e2e3}
{\footnotesize\ttfamily const \textbf{ ubit\+\_\+t} osmo\+\_\+v110\+\_\+e1e2e3[\textbf{ \+\_\+\+NUM\+\_\+\+OSMO\+\_\+\+V110\+\_\+\+SYNC\+\_\+\+RA1}][3]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        [OSMO\_V110\_SYNC\_RA1\_600]  = \{ 1, 0, 0 \},}
\DoxyCodeLine{        [OSMO\_V110\_SYNC\_RA1\_1200]        = \{ 0, 1, 0 \},}
\DoxyCodeLine{        [OSMO\_V110\_SYNC\_RA1\_2400]        = \{ 1, 1, 0 \},}
\DoxyCodeLine{        [OSMO\_V110\_SYNC\_RA1\_4800]        = \{ 0, 1, 1 \},}
\DoxyCodeLine{        [OSMO\_V110\_SYNC\_RA1\_7200]        = \{ 1, 0, 1 \},}
\DoxyCodeLine{        [OSMO\_V110\_SYNC\_RA1\_9600]        = \{ 0, 1, 1 \},}
\DoxyCodeLine{        [OSMO\_V110\_SYNC\_RA1\_12000]      = \{ 0, 0, 1 \},}
\DoxyCodeLine{        [OSMO\_V110\_SYNC\_RA1\_14400]      = \{ 1, 0, 1 \},}
\DoxyCodeLine{        [OSMO\_V110\_SYNC\_RA1\_19200]      = \{ 0, 1, 1 \},}
\DoxyCodeLine{        [OSMO\_V110\_SYNC\_RA1\_24000]      = \{ 0, 0, 1 \},}
\DoxyCodeLine{        [OSMO\_V110\_SYNC\_RA1\_28800]      = \{ 1, 0, 1 \},}
\DoxyCodeLine{        [OSMO\_V110\_SYNC\_RA1\_38400]      = \{ 0, 1, 1 \},}
\DoxyCodeLine{\}}

\end{DoxyCode}


E1/\+E2/\+E3 bit values as per Table 5/\+V.\+110. 

\mbox{\label{v110_8c_a0b286ce4273e68e56a8698b7cdf36cf8}} 
\index{v110.c@{v110.c}!osmo\_v110\_sync\_ra1\_def@{osmo\_v110\_sync\_ra1\_def}}
\index{osmo\_v110\_sync\_ra1\_def@{osmo\_v110\_sync\_ra1\_def}!v110.c@{v110.c}}
\doxysubsubsection{osmo\_v110\_sync\_ra1\_def}
{\footnotesize\ttfamily const struct \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1} osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+def[\textbf{ \+\_\+\+NUM\+\_\+\+OSMO\+\_\+\+V110\+\_\+\+SYNC\+\_\+\+RA1}]\hspace{0.3cm}{\ttfamily [static]}}



Referenced by \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+get\+\_\+intermediate\+\_\+rate()}, \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+get\+\_\+user\+\_\+data\+\_\+chunk\+\_\+bitlen()}, \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+get\+\_\+user\+\_\+data\+\_\+rate()}, \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+ir\+\_\+to\+\_\+user()}, and \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+user\+\_\+to\+\_\+ir()}.

