\doxysection{src/gsm/gsm44021.c File Reference}
\label{gsm44021_8c}\index{src/gsm/gsm44021.c@{src/gsm/gsm44021.c}}
{\ttfamily \#include $<$errno.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/bits.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/isdn/v110.\+h$>$}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \textbf{ osmo\+\_\+csd\+\_\+12k\+\_\+6k\+\_\+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 60-\/bit GSM 12kbit/s CSD frame present as 60 ubits into a struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame}. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+csd\+\_\+12k\+\_\+6k\+\_\+encode\+\_\+frame} (\textbf{ ubit\+\_\+t} $\ast$ra\+\_\+bits, size\+\_\+t ra\+\_\+bits\+\_\+size, const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$fr)
\item 
int \textbf{ osmo\+\_\+csd\+\_\+3k6\+\_\+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 36-\/bit GSM 3k6kbit/s CSD frame present as 36 ubits into a struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame}. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+csd\+\_\+3k6\+\_\+encode\+\_\+frame} (\textbf{ ubit\+\_\+t} $\ast$ra\+\_\+bits, size\+\_\+t ra\+\_\+bits\+\_\+size, const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$fr)
\item 
void \textbf{ osmo\+\_\+csd\+\_\+ubit\+\_\+dump} (FILE $\ast$outf, const \textbf{ ubit\+\_\+t} $\ast$fr, size\+\_\+t in\+\_\+len)
\begin{DoxyCompactList}\small\item\em Print a encoded \char`\"{}\+CSD modififed V.\+110\char`\"{} frame in the same table-\/like structure as the spec. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Function Documentation}
\mbox{\label{gsm44021_8c_ae0f80aa9e166fafe29459ff59bca5b0b}} 
\index{gsm44021.c@{gsm44021.c}!osmo\_csd\_12k\_6k\_decode\_frame@{osmo\_csd\_12k\_6k\_decode\_frame}}
\index{osmo\_csd\_12k\_6k\_decode\_frame@{osmo\_csd\_12k\_6k\_decode\_frame}!gsm44021.c@{gsm44021.c}}
\doxysubsubsection{osmo\_csd\_12k\_6k\_decode\_frame()}
{\footnotesize\ttfamily int osmo\+\_\+csd\+\_\+12k\+\_\+6k\+\_\+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 60-\/bit GSM 12kbit/s CSD frame present as 60 ubits into a struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame}. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em caller-\/allocated} & output data structure, filled by this function \\
\hline
\mbox{\texttt{ in}}  & {\em ra\+\_\+bits} & One V.\+110 frame as 60 unpacked bits. \\
\hline
\end{DoxyParams}


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{gsm44021_8c_a1db6985a1663b7d3fef8b638629597d9}} 
\index{gsm44021.c@{gsm44021.c}!osmo\_csd\_12k\_6k\_encode\_frame@{osmo\_csd\_12k\_6k\_encode\_frame}}
\index{osmo\_csd\_12k\_6k\_encode\_frame@{osmo\_csd\_12k\_6k\_encode\_frame}!gsm44021.c@{gsm44021.c}}
\doxysubsubsection{osmo\_csd\_12k\_6k\_encode\_frame()}
{\footnotesize\ttfamily int osmo\+\_\+csd\+\_\+12k\+\_\+6k\+\_\+encode\+\_\+frame (\begin{DoxyParamCaption}\item[{\textbf{ ubit\+\_\+t} $\ast$}]{ra\+\_\+bits,  }\item[{size\+\_\+t}]{ra\+\_\+bits\+\_\+size,  }\item[{const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$}]{fr }\end{DoxyParamCaption})}



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{gsm44021_8c_a692a696c6b54c0b38bdebda2d40759c1}} 
\index{gsm44021.c@{gsm44021.c}!osmo\_csd\_3k6\_decode\_frame@{osmo\_csd\_3k6\_decode\_frame}}
\index{osmo\_csd\_3k6\_decode\_frame@{osmo\_csd\_3k6\_decode\_frame}!gsm44021.c@{gsm44021.c}}
\doxysubsubsection{osmo\_csd\_3k6\_decode\_frame()}
{\footnotesize\ttfamily int osmo\+\_\+csd\+\_\+3k6\+\_\+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 36-\/bit GSM 3k6kbit/s CSD frame present as 36 ubits into a struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame}. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em caller-\/allocated} & output data structure, filled by this function \\
\hline
\mbox{\texttt{ in}}  & {\em ra\+\_\+bits} & One V.\+110 frame as 36 unpacked bits. \\
\hline
\end{DoxyParams}


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

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



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

\mbox{\label{gsm44021_8c_aa3cc527855f52b9ffcc24aac002e27e5}} 
\index{gsm44021.c@{gsm44021.c}!osmo\_csd\_ubit\_dump@{osmo\_csd\_ubit\_dump}}
\index{osmo\_csd\_ubit\_dump@{osmo\_csd\_ubit\_dump}!gsm44021.c@{gsm44021.c}}
\doxysubsubsection{osmo\_csd\_ubit\_dump()}
{\footnotesize\ttfamily void osmo\+\_\+csd\+\_\+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 \char`\"{}\+CSD modififed V.\+110\char`\"{} 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}
