\doxysection{src/isdn/v110\+\_\+ta.c File Reference}
\label{v110__ta_8c}\index{src/isdn/v110\_ta.c@{src/isdn/v110\_ta.c}}


TA (Terminal Adapter) implementation as per ITU-\/T V.\+110.  


{\ttfamily \#include $<$stdbool.\+h$>$}\newline
{\ttfamily \#include $<$stdint.\+h$>$}\newline
{\ttfamily \#include $<$errno.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/logging.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/talloc.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/utils.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/bits.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/tdef.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/fsm.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/isdn/v110.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/isdn/v110\+\_\+ta.\+h$>$}\newline
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ v110\+\_\+ta\+\_\+state}
\item 
struct \textbf{ osmo\+\_\+v110\+\_\+ta}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ S}(x)~(1 $<$$<$ (x))
\item 
\#define \textbf{ V24\+\_\+\+FLAGMASK\+\_\+\+IS\+\_\+\+ON}(\textbf{ flags},  circuit)~ (((\textbf{ flags}) \& \textbf{ S}(circuit)) != 0)
\item 
\#define \textbf{ V24\+\_\+\+FLAGMASK\+\_\+\+IS\+\_\+\+OFF}(\textbf{ flags},  circuit)~ (((\textbf{ flags}) \& \textbf{ S}(circuit)) == 0)
\item 
\#define \textbf{ V24\+\_\+\+FLAGMASK\+\_\+\+SET\+\_\+\+ON}(\textbf{ flags},  circuit)~ (\textbf{ flags}) $\vert$= \textbf{ S}(circuit)
\item 
\#define \textbf{ V24\+\_\+\+FLAGMASK\+\_\+\+SET\+\_\+\+OFF}(\textbf{ flags},  circuit)~ (\textbf{ flags}) \&= $\sim$\textbf{ S}(circuit)
\item 
\#define \textbf{ V110\+\_\+\+SX\+\_\+\+BIT\+\_\+\+ON}~0
\item 
\#define \textbf{ V110\+\_\+\+SX\+\_\+\+BIT\+\_\+\+OFF}~1
\item 
\#define \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+state\+\_\+chg}(state)
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+state} \{ \newline
\textbf{ V110\+\_\+\+TA\+\_\+\+ST\+\_\+\+IDLE\+\_\+\+READY}
, \newline
\textbf{ V110\+\_\+\+TA\+\_\+\+ST\+\_\+\+CON\+\_\+\+TA\+\_\+\+TO\+\_\+\+LINE}
, \newline
\textbf{ V110\+\_\+\+TA\+\_\+\+ST\+\_\+\+DATA\+\_\+\+TRANSFER}
, \newline
\textbf{ V110\+\_\+\+TA\+\_\+\+ST\+\_\+\+DISCONNECTING}
, \newline
\textbf{ V110\+\_\+\+TA\+\_\+\+ST\+\_\+\+RESYNCING}
 \}
\item 
enum \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+event} \{ \newline
\textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+RX\+\_\+\+FRAME\+\_\+\+IND}
, \newline
\textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+TX\+\_\+\+FRAME\+\_\+\+RTS}
, \newline
\textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+V24\+\_\+\+STATUS\+\_\+\+CHG}
, \newline
\textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+SYNC\+\_\+\+IND}
, \newline
\textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+DESYNC\+\_\+\+IND}
, \newline
\textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+TIMEOUT}
 \}
\item 
enum \textbf{ v110\+\_\+ta\+\_\+d\+\_\+bit\+\_\+mode} \{ \newline
\textbf{ V110\+\_\+\+TA\+\_\+\+DBIT\+\_\+\+M\+\_\+\+ALL\+\_\+\+ZERO} = 0
, \newline
\textbf{ V110\+\_\+\+TA\+\_\+\+DBIT\+\_\+\+M\+\_\+\+ALL\+\_\+\+ONE} = 1
, \newline
\textbf{ V110\+\_\+\+TA\+\_\+\+DBIT\+\_\+\+M\+\_\+\+FORWARD}
 \}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static bool \textbf{ v110\+\_\+df\+\_\+x\+\_\+bits\+\_\+are} (const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$df, \textbf{ ubit\+\_\+t} cmp)
\item 
static bool \textbf{ v110\+\_\+df\+\_\+s\+\_\+bits\+\_\+are} (const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$df, \textbf{ ubit\+\_\+t} cmp)
\item 
static bool \textbf{ v110\+\_\+df\+\_\+d\+\_\+bits\+\_\+are} (const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$df, \textbf{ ubit\+\_\+t} cmp)
\item 
static void \textbf{ v110\+\_\+ta\+\_\+handle\+\_\+frame} (const struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$ta, const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$df)
\item 
static void \textbf{ v110\+\_\+ta\+\_\+build\+\_\+frame} (const struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$ta, struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$df)
\item 
static void \textbf{ v110\+\_\+ta\+\_\+flags\+\_\+update} (struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$ta, unsigned int v24\+\_\+flags)
\item 
static void \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+idle\+\_\+ready\+\_\+onenter} (struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$fi, uint32\+\_\+t prev\+\_\+state)
\item 
static void \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+idle\+\_\+ready} (struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$fi, uint32\+\_\+t \textbf{ event}, void $\ast$\textbf{ data})
\item 
static void \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+connect\+\_\+ta\+\_\+to\+\_\+line\+\_\+onenter} (struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$fi, uint32\+\_\+t prev\+\_\+state)
\item 
static void \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+connect\+\_\+ta\+\_\+to\+\_\+line} (struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$fi, uint32\+\_\+t \textbf{ event}, void $\ast$\textbf{ data})
\item 
static void \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+data\+\_\+transfer\+\_\+onenter} (struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$fi, uint32\+\_\+t prev\+\_\+state)
\item 
static void \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+data\+\_\+transfer} (struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$fi, uint32\+\_\+t \textbf{ event}, void $\ast$\textbf{ data})
\item 
static void \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+disconnect\+\_\+onenter} (struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$fi, uint32\+\_\+t prev\+\_\+state)
\item 
static void \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+disconnect} (struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$fi, uint32\+\_\+t \textbf{ event}, void $\ast$\textbf{ data})
\item 
static void \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+resyncing\+\_\+onenter} (struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$fi, uint32\+\_\+t prev\+\_\+state)
\item 
static void \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+resyncing} (struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$fi, uint32\+\_\+t \textbf{ event}, void $\ast$\textbf{ data})
\item 
static int \textbf{ v110\+\_\+ta\+\_\+timer\+\_\+cb} (struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$fi)
\item 
static \textbf{ \+\_\+\+\_\+attribute\+\_\+\+\_\+} ((constructor))
\item 
struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$ \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+alloc} (void $\ast$ctx, const char $\ast$\textbf{ name}, const struct \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+cfg} $\ast$cfg)
\begin{DoxyCompactList}\small\item\em Allocate a V.\+110 TA (Terminal Adapter) instance. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+free} (struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$ta)
\begin{DoxyCompactList}\small\item\em Release memory taken by the given V.\+110 TA instance. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+set\+\_\+timer\+\_\+val\+\_\+ms} (struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$ta, enum \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+timer} timer, unsigned long val\+\_\+ms)
\begin{DoxyCompactList}\small\item\em Configure a timer of the given V.\+110 TA instance. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+frame\+\_\+in} (struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$ta, const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$in)
\begin{DoxyCompactList}\small\item\em Feed a [decoded] V.\+110 frame into the given TA instance. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+frame\+\_\+out} (struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$ta, struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$out)
\begin{DoxyCompactList}\small\item\em Pull a [decoded] V.\+110 frame out of the given TA instance. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+sync\+\_\+ind} (struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$ta)
\begin{DoxyCompactList}\small\item\em Indicate a synchronization establishment event. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+desync\+\_\+ind} (struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$ta)
\begin{DoxyCompactList}\small\item\em Indicate a synchronization loss event. \end{DoxyCompactList}\item 
unsigned int \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+get\+\_\+status} (const struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$ta)
\begin{DoxyCompactList}\small\item\em Get the V.\+24 status bit-\/mask of the given TA instance. \end{DoxyCompactList}\item 
static int \textbf{ v110\+\_\+ta\+\_\+set\+\_\+status} (struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$ta, unsigned int status)
\begin{DoxyCompactList}\small\item\em Set the V.\+24 status bit-\/mask of the given TA instance. \end{DoxyCompactList}\item 
bool \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+get\+\_\+circuit} (const struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$ta, enum \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+circuit} circuit)
\begin{DoxyCompactList}\small\item\em Get state of a V.\+24 circuit of the given TA instance. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+set\+\_\+circuit} (struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$ta, enum \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+circuit} circuit, bool active)
\begin{DoxyCompactList}\small\item\em Activate/deactivate a V.\+24 circuit of the given TA instance. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
const struct \textbf{ value\+\_\+string} \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+circuit\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+circuit\+\_\+descs} [$\,$]
\item 
static const struct \textbf{ osmo\+\_\+tdef} \textbf{ v110\+\_\+ta\+\_\+tdef} [$\,$]
\item 
static const struct \textbf{ value\+\_\+string} \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+event\+\_\+names} [$\,$]
\item 
static const struct \textbf{ osmo\+\_\+tdef\+\_\+state\+\_\+timeout} \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+timeouts} [32]
\item 
static const struct \textbf{ osmo\+\_\+fsm\+\_\+state} \textbf{ v110\+\_\+ta\+\_\+states} [$\,$]
\item 
static struct \textbf{ osmo\+\_\+fsm} \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+fsm}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
TA (Terminal Adapter) implementation as per ITU-\/T V.\+110. 



\doxysubsection{Macro Definition Documentation}
\mbox{\label{v110__ta_8c_ac4a3ed3432929804c708f7760fb79e28}} 
\index{v110\_ta.c@{v110\_ta.c}!S@{S}}
\index{S@{S}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{S}
{\footnotesize\ttfamily \#define S(\begin{DoxyParamCaption}\item[{}]{x }\end{DoxyParamCaption})~(1 $<$$<$ (x))}

\mbox{\label{v110__ta_8c_a0984cc32776aa5a34ef9c147aed5fad4}} 
\index{v110\_ta.c@{v110\_ta.c}!V110\_SX\_BIT\_OFF@{V110\_SX\_BIT\_OFF}}
\index{V110\_SX\_BIT\_OFF@{V110\_SX\_BIT\_OFF}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{V110\_SX\_BIT\_OFF}
{\footnotesize\ttfamily \#define V110\+\_\+\+SX\+\_\+\+BIT\+\_\+\+OFF~1}

\mbox{\label{v110__ta_8c_a97ac6f222ffa080dc8773636c2f313b4}} 
\index{v110\_ta.c@{v110\_ta.c}!V110\_SX\_BIT\_ON@{V110\_SX\_BIT\_ON}}
\index{V110\_SX\_BIT\_ON@{V110\_SX\_BIT\_ON}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{V110\_SX\_BIT\_ON}
{\footnotesize\ttfamily \#define V110\+\_\+\+SX\+\_\+\+BIT\+\_\+\+ON~0}

\mbox{\label{v110__ta_8c_a108739e588bf93df9259d38c7918a34e}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_ta\_fsm\_state\_chg@{v110\_ta\_fsm\_state\_chg}}
\index{v110\_ta\_fsm\_state\_chg@{v110\_ta\_fsm\_state\_chg}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_ta\_fsm\_state\_chg}
{\footnotesize\ttfamily \#define v110\+\_\+ta\+\_\+fsm\+\_\+state\+\_\+chg(\begin{DoxyParamCaption}\item[{}]{state }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{        osmo\_tdef\_fsm\_inst\_state\_chg(fi, state, \(\backslash\)}
\DoxyCodeLine{                                     v110\_ta\_fsm\_timeouts, \(\backslash\)}
\DoxyCodeLine{                                     ((\textcolor{keyword}{struct} osmo\_v110\_ta *)(fi-\/>priv))-\/>Tdefs, \(\backslash\)}
\DoxyCodeLine{                                     0)}

\end{DoxyCode}
\mbox{\label{v110__ta_8c_a17adaddb09d7ca0b256a758561ff46c0}} 
\index{v110\_ta.c@{v110\_ta.c}!V24\_FLAGMASK\_IS\_OFF@{V24\_FLAGMASK\_IS\_OFF}}
\index{V24\_FLAGMASK\_IS\_OFF@{V24\_FLAGMASK\_IS\_OFF}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{V24\_FLAGMASK\_IS\_OFF}
{\footnotesize\ttfamily \#define V24\+\_\+\+FLAGMASK\+\_\+\+IS\+\_\+\+OFF(\begin{DoxyParamCaption}\item[{}]{\textbf{ flags},  }\item[{}]{circuit }\end{DoxyParamCaption})~ (((\textbf{ flags}) \& \textbf{ S}(circuit)) == 0)}

\mbox{\label{v110__ta_8c_acc66e8aeb511dde7cae330d7b96e6814}} 
\index{v110\_ta.c@{v110\_ta.c}!V24\_FLAGMASK\_IS\_ON@{V24\_FLAGMASK\_IS\_ON}}
\index{V24\_FLAGMASK\_IS\_ON@{V24\_FLAGMASK\_IS\_ON}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{V24\_FLAGMASK\_IS\_ON}
{\footnotesize\ttfamily \#define V24\+\_\+\+FLAGMASK\+\_\+\+IS\+\_\+\+ON(\begin{DoxyParamCaption}\item[{}]{\textbf{ flags},  }\item[{}]{circuit }\end{DoxyParamCaption})~ (((\textbf{ flags}) \& \textbf{ S}(circuit)) != 0)}

\mbox{\label{v110__ta_8c_a892a1c283ae4de249569a8bd33074907}} 
\index{v110\_ta.c@{v110\_ta.c}!V24\_FLAGMASK\_SET\_OFF@{V24\_FLAGMASK\_SET\_OFF}}
\index{V24\_FLAGMASK\_SET\_OFF@{V24\_FLAGMASK\_SET\_OFF}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{V24\_FLAGMASK\_SET\_OFF}
{\footnotesize\ttfamily \#define V24\+\_\+\+FLAGMASK\+\_\+\+SET\+\_\+\+OFF(\begin{DoxyParamCaption}\item[{}]{\textbf{ flags},  }\item[{}]{circuit }\end{DoxyParamCaption})~ (\textbf{ flags}) \&= $\sim$\textbf{ S}(circuit)}

\mbox{\label{v110__ta_8c_a2828a705c6cfe36ee1f348cc2f721a99}} 
\index{v110\_ta.c@{v110\_ta.c}!V24\_FLAGMASK\_SET\_ON@{V24\_FLAGMASK\_SET\_ON}}
\index{V24\_FLAGMASK\_SET\_ON@{V24\_FLAGMASK\_SET\_ON}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{V24\_FLAGMASK\_SET\_ON}
{\footnotesize\ttfamily \#define V24\+\_\+\+FLAGMASK\+\_\+\+SET\+\_\+\+ON(\begin{DoxyParamCaption}\item[{}]{\textbf{ flags},  }\item[{}]{circuit }\end{DoxyParamCaption})~ (\textbf{ flags}) $\vert$= \textbf{ S}(circuit)}



\doxysubsection{Enumeration Type Documentation}
\mbox{\label{v110__ta_8c_a9a2fe17f812806541cc28f1698168315}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_ta\_d\_bit\_mode@{v110\_ta\_d\_bit\_mode}}
\index{v110\_ta\_d\_bit\_mode@{v110\_ta\_d\_bit\_mode}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_ta\_d\_bit\_mode}
{\footnotesize\ttfamily enum \textbf{ v110\+\_\+ta\+\_\+d\+\_\+bit\+\_\+mode}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{V110\_TA\_DBIT\_M\_ALL\_ZERO@{V110\_TA\_DBIT\_M\_ALL\_ZERO}!v110\_ta.c@{v110\_ta.c}}\index{v110\_ta.c@{v110\_ta.c}!V110\_TA\_DBIT\_M\_ALL\_ZERO@{V110\_TA\_DBIT\_M\_ALL\_ZERO}}}\mbox{\label{v110__ta_8c_a9a2fe17f812806541cc28f1698168315ac964e3183b831a2d0356377dd5a8dc11}} 
V110\+\_\+\+TA\+\_\+\+DBIT\+\_\+\+M\+\_\+\+ALL\+\_\+\+ZERO&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{V110\_TA\_DBIT\_M\_ALL\_ONE@{V110\_TA\_DBIT\_M\_ALL\_ONE}!v110\_ta.c@{v110\_ta.c}}\index{v110\_ta.c@{v110\_ta.c}!V110\_TA\_DBIT\_M\_ALL\_ONE@{V110\_TA\_DBIT\_M\_ALL\_ONE}}}\mbox{\label{v110__ta_8c_a9a2fe17f812806541cc28f1698168315a49630c18f4349c392981d229dffe5ad8}} 
V110\+\_\+\+TA\+\_\+\+DBIT\+\_\+\+M\+\_\+\+ALL\+\_\+\+ONE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{V110\_TA\_DBIT\_M\_FORWARD@{V110\_TA\_DBIT\_M\_FORWARD}!v110\_ta.c@{v110\_ta.c}}\index{v110\_ta.c@{v110\_ta.c}!V110\_TA\_DBIT\_M\_FORWARD@{V110\_TA\_DBIT\_M\_FORWARD}}}\mbox{\label{v110__ta_8c_a9a2fe17f812806541cc28f1698168315a537aa43e1c94b2eb46713fcd49a1dbcf}} 
V110\+\_\+\+TA\+\_\+\+DBIT\+\_\+\+M\+\_\+\+FORWARD&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{v110__ta_8c_a47669572bc9958b7c3be9d17db574f89}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_ta\_fsm\_event@{v110\_ta\_fsm\_event}}
\index{v110\_ta\_fsm\_event@{v110\_ta\_fsm\_event}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_ta\_fsm\_event}
{\footnotesize\ttfamily enum \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+event}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{V110\_TA\_EV\_RX\_FRAME\_IND@{V110\_TA\_EV\_RX\_FRAME\_IND}!v110\_ta.c@{v110\_ta.c}}\index{v110\_ta.c@{v110\_ta.c}!V110\_TA\_EV\_RX\_FRAME\_IND@{V110\_TA\_EV\_RX\_FRAME\_IND}}}\mbox{\label{v110__ta_8c_a47669572bc9958b7c3be9d17db574f89a5732b6ed9e4c72bf3f5d5fa0883dd17d}} 
V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+RX\+\_\+\+FRAME\+\_\+\+IND&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{V110\_TA\_EV\_TX\_FRAME\_RTS@{V110\_TA\_EV\_TX\_FRAME\_RTS}!v110\_ta.c@{v110\_ta.c}}\index{v110\_ta.c@{v110\_ta.c}!V110\_TA\_EV\_TX\_FRAME\_RTS@{V110\_TA\_EV\_TX\_FRAME\_RTS}}}\mbox{\label{v110__ta_8c_a47669572bc9958b7c3be9d17db574f89a7f5cb1b8836bc2a6b70830f4dc9a4e79}} 
V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+TX\+\_\+\+FRAME\+\_\+\+RTS&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{V110\_TA\_EV\_V24\_STATUS\_CHG@{V110\_TA\_EV\_V24\_STATUS\_CHG}!v110\_ta.c@{v110\_ta.c}}\index{v110\_ta.c@{v110\_ta.c}!V110\_TA\_EV\_V24\_STATUS\_CHG@{V110\_TA\_EV\_V24\_STATUS\_CHG}}}\mbox{\label{v110__ta_8c_a47669572bc9958b7c3be9d17db574f89a4c1c87530e704cb654cc0bab6dacd2d7}} 
V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+V24\+\_\+\+STATUS\+\_\+\+CHG&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{V110\_TA\_EV\_SYNC\_IND@{V110\_TA\_EV\_SYNC\_IND}!v110\_ta.c@{v110\_ta.c}}\index{v110\_ta.c@{v110\_ta.c}!V110\_TA\_EV\_SYNC\_IND@{V110\_TA\_EV\_SYNC\_IND}}}\mbox{\label{v110__ta_8c_a47669572bc9958b7c3be9d17db574f89aa57e3925318222f1d7079c650fef15b7}} 
V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+SYNC\+\_\+\+IND&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{V110\_TA\_EV\_DESYNC\_IND@{V110\_TA\_EV\_DESYNC\_IND}!v110\_ta.c@{v110\_ta.c}}\index{v110\_ta.c@{v110\_ta.c}!V110\_TA\_EV\_DESYNC\_IND@{V110\_TA\_EV\_DESYNC\_IND}}}\mbox{\label{v110__ta_8c_a47669572bc9958b7c3be9d17db574f89a3ff156fe7fa890136ca3f3e946523663}} 
V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+DESYNC\+\_\+\+IND&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{V110\_TA\_EV\_TIMEOUT@{V110\_TA\_EV\_TIMEOUT}!v110\_ta.c@{v110\_ta.c}}\index{v110\_ta.c@{v110\_ta.c}!V110\_TA\_EV\_TIMEOUT@{V110\_TA\_EV\_TIMEOUT}}}\mbox{\label{v110__ta_8c_a47669572bc9958b7c3be9d17db574f89a6b15b751c8737796812ad5ab89707fbd}} 
V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+TIMEOUT&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{v110__ta_8c_a996449ee0ca06da7a9eee0d2adbb4719}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_ta\_fsm\_state@{v110\_ta\_fsm\_state}}
\index{v110\_ta\_fsm\_state@{v110\_ta\_fsm\_state}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_ta\_fsm\_state}
{\footnotesize\ttfamily enum \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+state}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{V110\_TA\_ST\_IDLE\_READY@{V110\_TA\_ST\_IDLE\_READY}!v110\_ta.c@{v110\_ta.c}}\index{v110\_ta.c@{v110\_ta.c}!V110\_TA\_ST\_IDLE\_READY@{V110\_TA\_ST\_IDLE\_READY}}}\mbox{\label{v110__ta_8c_a996449ee0ca06da7a9eee0d2adbb4719ae7a9e6699fc0f45c6762ed28fa7b10a9}} 
V110\+\_\+\+TA\+\_\+\+ST\+\_\+\+IDLE\+\_\+\+READY&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{V110\_TA\_ST\_CON\_TA\_TO\_LINE@{V110\_TA\_ST\_CON\_TA\_TO\_LINE}!v110\_ta.c@{v110\_ta.c}}\index{v110\_ta.c@{v110\_ta.c}!V110\_TA\_ST\_CON\_TA\_TO\_LINE@{V110\_TA\_ST\_CON\_TA\_TO\_LINE}}}\mbox{\label{v110__ta_8c_a996449ee0ca06da7a9eee0d2adbb4719a555febf12fae0f80e18b136922caef16}} 
V110\+\_\+\+TA\+\_\+\+ST\+\_\+\+CON\+\_\+\+TA\+\_\+\+TO\+\_\+\+LINE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{V110\_TA\_ST\_DATA\_TRANSFER@{V110\_TA\_ST\_DATA\_TRANSFER}!v110\_ta.c@{v110\_ta.c}}\index{v110\_ta.c@{v110\_ta.c}!V110\_TA\_ST\_DATA\_TRANSFER@{V110\_TA\_ST\_DATA\_TRANSFER}}}\mbox{\label{v110__ta_8c_a996449ee0ca06da7a9eee0d2adbb4719a2df2081a8ea0130fa876f9b90680cc0d}} 
V110\+\_\+\+TA\+\_\+\+ST\+\_\+\+DATA\+\_\+\+TRANSFER&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{V110\_TA\_ST\_DISCONNECTING@{V110\_TA\_ST\_DISCONNECTING}!v110\_ta.c@{v110\_ta.c}}\index{v110\_ta.c@{v110\_ta.c}!V110\_TA\_ST\_DISCONNECTING@{V110\_TA\_ST\_DISCONNECTING}}}\mbox{\label{v110__ta_8c_a996449ee0ca06da7a9eee0d2adbb4719a6d022d01faa946740a26f41b82632c0b}} 
V110\+\_\+\+TA\+\_\+\+ST\+\_\+\+DISCONNECTING&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{V110\_TA\_ST\_RESYNCING@{V110\_TA\_ST\_RESYNCING}!v110\_ta.c@{v110\_ta.c}}\index{v110\_ta.c@{v110\_ta.c}!V110\_TA\_ST\_RESYNCING@{V110\_TA\_ST\_RESYNCING}}}\mbox{\label{v110__ta_8c_a996449ee0ca06da7a9eee0d2adbb4719a6b00989b425f442fd00a2747ac799da2}} 
V110\+\_\+\+TA\+\_\+\+ST\+\_\+\+RESYNCING&\\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\mbox{\label{v110__ta_8c_a9ed16867a9394d9ccf1132194edae298}} 
\index{v110\_ta.c@{v110\_ta.c}!\_\_attribute\_\_@{\_\_attribute\_\_}}
\index{\_\_attribute\_\_@{\_\_attribute\_\_}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{\_\_attribute\_\_()}
{\footnotesize\ttfamily static \+\_\+\+\_\+attribute\+\_\+\+\_\+ (\begin{DoxyParamCaption}\item[{(constructor)}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+fsm\+\_\+register()}, and \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+fsm}.

\mbox{\label{v110__ta_8c_ad0eeb730509b01bf7cc00ebc7a6c39c3}} 
\index{v110\_ta.c@{v110\_ta.c}!osmo\_v110\_ta\_alloc@{osmo\_v110\_ta\_alloc}}
\index{osmo\_v110\_ta\_alloc@{osmo\_v110\_ta\_alloc}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{osmo\_v110\_ta\_alloc()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$ osmo\+\_\+v110\+\_\+ta\+\_\+alloc (\begin{DoxyParamCaption}\item[{void $\ast$}]{ctx,  }\item[{const char $\ast$}]{name,  }\item[{const struct \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+cfg} $\ast$}]{cfg }\end{DoxyParamCaption})}



Allocate a V.\+110 TA (Terminal Adapter) instance. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em ctx} & parent talloc context. \\
\hline
\mbox{\texttt{ in}}  & {\em name} & name of the TA instance. \\
\hline
\mbox{\texttt{ in}}  & {\em cfg} & initial configuration of the TA instance. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
pointer to allocated TA instance; NULL on error. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+v110\+\_\+ta\+::cfg}, \textbf{ DLGLOBAL}, \textbf{ osmo\+\_\+v110\+\_\+ta\+::fi}, \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+cfg\+::flow\+\_\+ctrl}, \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+cfg\+::local}, \textbf{ LOGL\+\_\+\+DEBUG}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ LOGP}, \textbf{ name}, \textbf{ osmo\+\_\+v110\+\_\+ta\+::name}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+\_\+alloc()}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+\_\+free()}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+\_\+state\+\_\+chg}, \textbf{ osmo\+\_\+tdefs\+\_\+reset()}, \textbf{ OSMO\+\_\+\+V110\+\_\+\+LOCAL\+\_\+\+FLOW\+\_\+\+CTRL\+\_\+\+NONE}, \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+fsm}, \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+cfg\+::rx\+\_\+cb}, \textbf{ osmo\+\_\+v110\+\_\+ta\+::\+Tdefs}, \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+cfg\+::tx\+\_\+cb}, \textbf{ V110\+\_\+\+TA\+\_\+\+ST\+\_\+\+IDLE\+\_\+\+READY}, and \textbf{ v110\+\_\+ta\+\_\+tdef}.

\mbox{\label{v110__ta_8c_adcf60687fd6b8db394afb77436753288}} 
\index{v110\_ta.c@{v110\_ta.c}!osmo\_v110\_ta\_desync\_ind@{osmo\_v110\_ta\_desync\_ind}}
\index{osmo\_v110\_ta\_desync\_ind@{osmo\_v110\_ta\_desync\_ind}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{osmo\_v110\_ta\_desync\_ind()}
{\footnotesize\ttfamily int osmo\+\_\+v110\+\_\+ta\+\_\+desync\+\_\+ind (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$}]{ta }\end{DoxyParamCaption})}



Indicate a synchronization loss event. 

This function is intended to be called when the lower layer experiences a loss of synchronization with the frame clock.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em ta} & TA instance to indicate the event to. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 in case of success; negative on error. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+v110\+\_\+ta\+::fi}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+\_\+dispatch}, and \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+DESYNC\+\_\+\+IND}.

\mbox{\label{v110__ta_8c_a99d319cad4a911b4bd47819e6797b9d3}} 
\index{v110\_ta.c@{v110\_ta.c}!osmo\_v110\_ta\_frame\_in@{osmo\_v110\_ta\_frame\_in}}
\index{osmo\_v110\_ta\_frame\_in@{osmo\_v110\_ta\_frame\_in}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{osmo\_v110\_ta\_frame\_in()}
{\footnotesize\ttfamily int osmo\+\_\+v110\+\_\+ta\+\_\+frame\+\_\+in (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$}]{ta,  }\item[{const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$}]{in }\end{DoxyParamCaption})}



Feed a [decoded] V.\+110 frame into the given TA instance. 

This function, like its {\itshape out counterpart, is intended to be used by the lower layers receiving V.\+110 frames over some medium. The caller of this function is responsible for finding the synchronization pattern (if needed), aligning to the frame boundaries, and decoding frames using \doxyref{osmo\+\_\+v110\+\_\+decode\+\_\+frame()}{p.}{v110_8h_acc6f2e28e2a12d015e2dc1abd9161323} or osmo\+\_\+csd}$\ast$\+\_\+decode\+\_\+frame().

Bits E1/\+E2/\+E3 are expected to be set by the caller (if not being transmitted over the medium) in accordance with the configured synchronous user rate.

Bits D1..D48 are passed to the bit rate adaption function RA1. The resulting output is then passed to the upper layer (application) via the configured .rx\+\_\+cb(). Though, in certain states of the TA\textquotesingle{}s FSM, bits D1..D48 are ignored and the upper layer gets a sequence of binary \textquotesingle{}0\textquotesingle{} or \textquotesingle{}1\textquotesingle{}.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em ta} & TA instance to feed the given frame into. \\
\hline
\mbox{\texttt{ in}}  & {\em in} & pointer to a [decoded] V.\+110 frame. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 in case of success; negative on error. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+v110\+\_\+ta\+::fi}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+\_\+dispatch}, and \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+RX\+\_\+\+FRAME\+\_\+\+IND}.

\mbox{\label{v110__ta_8c_aa8a0dbcbe6b0aee794156274cc49efe1}} 
\index{v110\_ta.c@{v110\_ta.c}!osmo\_v110\_ta\_frame\_out@{osmo\_v110\_ta\_frame\_out}}
\index{osmo\_v110\_ta\_frame\_out@{osmo\_v110\_ta\_frame\_out}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{osmo\_v110\_ta\_frame\_out()}
{\footnotesize\ttfamily int osmo\+\_\+v110\+\_\+ta\+\_\+frame\+\_\+out (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$}]{ta,  }\item[{struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$}]{out }\end{DoxyParamCaption})}



Pull a [decoded] V.\+110 frame out of the given TA instance. 

This function, like its {\itshape in counterpart, is intended to be used by the lower layers transmitting V.\+110 frames over some medium. The caller of this function is responsible for encoding the output frame using \doxyref{osmo\+\_\+v110\+\_\+encode\+\_\+frame()}{p.}{v110_8h_af3cbd1398cd8f1548c12f88be13368fe} or osmo\+\_\+csd}$\ast$\+\_\+encode\+\_\+frame().

Bits E1/\+E2/\+E3 are set in accordance with the configured synchronous user rate. Bits E4/\+E5/\+E6/\+E7 are unconditionally set to binary \textquotesingle{}1\textquotesingle{}.

Bits D1..D48 are set depending on the state of TA\textquotesingle{}s FSM\+:


\begin{DoxyItemize}
\item In data transfer mode, the user bits are obtained from the upper layer (application) via the configured .tx\+\_\+cb(), and then passed to the bit rate adaption function RA1, which generates bits D1..D48.
\item In other modes, bits D1..D48 are all set to binary \textquotesingle{}0\textquotesingle{} or \textquotesingle{}1\textquotesingle{}.
\end{DoxyItemize}


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em ta} & TA instance to pull a frame from. \\
\hline
\mbox{\texttt{ out}}  & {\em out} & where to store a [decoded] V.\+110 frame. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 in case of success; negative on error. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+v110\+\_\+ta\+::fi}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+\_\+dispatch}, and \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+TX\+\_\+\+FRAME\+\_\+\+RTS}.

\mbox{\label{v110__ta_8c_a63cf615faccd81eae9fded389959a652}} 
\index{v110\_ta.c@{v110\_ta.c}!osmo\_v110\_ta\_free@{osmo\_v110\_ta\_free}}
\index{osmo\_v110\_ta\_free@{osmo\_v110\_ta\_free}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{osmo\_v110\_ta\_free()}
{\footnotesize\ttfamily void osmo\+\_\+v110\+\_\+ta\+\_\+free (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$}]{ta }\end{DoxyParamCaption})}



Release memory taken by the given V.\+110 TA instance. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em ta} & TA instance to be free()d. \\
\hline
\end{DoxyParams}


References \textbf{ osmo\+\_\+v110\+\_\+ta\+::fi}, and \textbf{ osmo\+\_\+fsm\+\_\+inst\+\_\+free()}.

\mbox{\label{v110__ta_8c_a371c4a31253b3deabf2ec7f6e63ffcda}} 
\index{v110\_ta.c@{v110\_ta.c}!osmo\_v110\_ta\_get\_circuit@{osmo\_v110\_ta\_get\_circuit}}
\index{osmo\_v110\_ta\_get\_circuit@{osmo\_v110\_ta\_get\_circuit}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{osmo\_v110\_ta\_get\_circuit()}
{\footnotesize\ttfamily bool osmo\+\_\+v110\+\_\+ta\+\_\+get\+\_\+circuit (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$}]{ta,  }\item[{enum \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+circuit}}]{circuit }\end{DoxyParamCaption})}



Get state of a V.\+24 circuit of the given TA instance. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em ta} & TA instance to get the circuit state. \\
\hline
\mbox{\texttt{ in}}  & {\em circuit} & a V.\+24 circuit, one of OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+C\+\_\+$\ast$. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
circuit state\+: active (true) or inactive (false). 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+v110\+\_\+ta\+::state}, \textbf{ V24\+\_\+\+FLAGMASK\+\_\+\+IS\+\_\+\+ON}, and \textbf{ v110\+\_\+ta\+\_\+state\+::v24\+\_\+flags}.

\mbox{\label{v110__ta_8c_a9806b327f303a8d76c25bcafd421ce86}} 
\index{v110\_ta.c@{v110\_ta.c}!osmo\_v110\_ta\_get\_status@{osmo\_v110\_ta\_get\_status}}
\index{osmo\_v110\_ta\_get\_status@{osmo\_v110\_ta\_get\_status}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{osmo\_v110\_ta\_get\_status()}
{\footnotesize\ttfamily unsigned int osmo\+\_\+v110\+\_\+ta\+\_\+get\+\_\+status (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$}]{ta }\end{DoxyParamCaption})}



Get the V.\+24 status bit-\/mask of the given TA instance. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em ta} & TA instance to get the circuit bit-\/mask. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
bitmask of OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+C\+\_\+$\ast$. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+v110\+\_\+ta\+::state}, and \textbf{ v110\+\_\+ta\+\_\+state\+::v24\+\_\+flags}.

\mbox{\label{v110__ta_8c_aebdf2e129196caf25edce055d36a0aa7}} 
\index{v110\_ta.c@{v110\_ta.c}!osmo\_v110\_ta\_set\_circuit@{osmo\_v110\_ta\_set\_circuit}}
\index{osmo\_v110\_ta\_set\_circuit@{osmo\_v110\_ta\_set\_circuit}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{osmo\_v110\_ta\_set\_circuit()}
{\footnotesize\ttfamily int osmo\+\_\+v110\+\_\+ta\+\_\+set\+\_\+circuit (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$}]{ta,  }\item[{enum \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+circuit}}]{circuit,  }\item[{bool}]{active }\end{DoxyParamCaption})}



Activate/deactivate a V.\+24 circuit of the given TA instance. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em ta} & TA instance to update the circuit state. \\
\hline
\mbox{\texttt{ in}}  & {\em circuit} & a V.\+24 circuit, one of OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+C\+\_\+$\ast$ (DTE-\/$>$DCE). \\
\hline
\mbox{\texttt{ in}}  & {\em active} & activate (true) or deactivate (false) the circuit. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative on error. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+v110\+\_\+ta\+::fi}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ LOGPFSML}, \textbf{ OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+C\+\_\+105}, \textbf{ OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+C\+\_\+108}, \textbf{ OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+C\+\_\+133}, \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+circuit\+\_\+name()}, \textbf{ osmo\+\_\+v110\+\_\+ta\+::state}, \textbf{ v110\+\_\+ta\+\_\+set\+\_\+status()}, \textbf{ V24\+\_\+\+FLAGMASK\+\_\+\+SET\+\_\+\+OFF}, \textbf{ V24\+\_\+\+FLAGMASK\+\_\+\+SET\+\_\+\+ON}, and \textbf{ v110\+\_\+ta\+\_\+state\+::v24\+\_\+flags}.

\mbox{\label{v110__ta_8c_a6078e0dd1bcc9edd5fa1f9374f398c90}} 
\index{v110\_ta.c@{v110\_ta.c}!osmo\_v110\_ta\_set\_timer\_val\_ms@{osmo\_v110\_ta\_set\_timer\_val\_ms}}
\index{osmo\_v110\_ta\_set\_timer\_val\_ms@{osmo\_v110\_ta\_set\_timer\_val\_ms}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{osmo\_v110\_ta\_set\_timer\_val\_ms()}
{\footnotesize\ttfamily int osmo\+\_\+v110\+\_\+ta\+\_\+set\+\_\+timer\+\_\+val\+\_\+ms (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$}]{ta,  }\item[{enum \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+timer}}]{timer,  }\item[{unsigned long}]{val\+\_\+ms }\end{DoxyParamCaption})}



Configure a timer of the given V.\+110 TA instance. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em ta} & TA instance to be configured. \\
\hline
\mbox{\texttt{ in}}  & {\em timer} & a timer to be configured. \\
\hline
\mbox{\texttt{ in}}  & {\em val\+\_\+ms} & the new timeout value to set (in milliseconds). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 in case of success; negative on error. 
\end{DoxyReturn}


References \textbf{ OSMO\+\_\+\+TDEF\+\_\+\+MS}, \textbf{ osmo\+\_\+tdef\+\_\+set()}, and \textbf{ osmo\+\_\+v110\+\_\+ta\+::\+Tdefs}.

\mbox{\label{v110__ta_8c_af1155bfc692c13776dfe4a30e4df838b}} 
\index{v110\_ta.c@{v110\_ta.c}!osmo\_v110\_ta\_sync\_ind@{osmo\_v110\_ta\_sync\_ind}}
\index{osmo\_v110\_ta\_sync\_ind@{osmo\_v110\_ta\_sync\_ind}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{osmo\_v110\_ta\_sync\_ind()}
{\footnotesize\ttfamily int osmo\+\_\+v110\+\_\+ta\+\_\+sync\+\_\+ind (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$}]{ta }\end{DoxyParamCaption})}



Indicate a synchronization establishment event. 

This function is intended to be called when the lower layer achieves synchronization to the frame clock.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em ta} & TA instance to indicate the event to. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 in case of success; negative on error. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+v110\+\_\+ta\+::fi}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+\_\+dispatch}, and \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+SYNC\+\_\+\+IND}.

\mbox{\label{v110__ta_8c_afc9a20bd50c02eb6cb524ad6b723e590}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_df\_d\_bits\_are@{v110\_df\_d\_bits\_are}}
\index{v110\_df\_d\_bits\_are@{v110\_df\_d\_bits\_are}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_df\_d\_bits\_are()}
{\footnotesize\ttfamily static bool v110\+\_\+df\+\_\+d\+\_\+bits\+\_\+are (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$}]{df,  }\item[{\textbf{ ubit\+\_\+t}}]{cmp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::d\+\_\+bits}, and \textbf{ MAX\+\_\+\+D\+\_\+\+BITS}.



Referenced by \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+data\+\_\+transfer()}.

\mbox{\label{v110__ta_8c_a78e430ad5a41ede8d69ee1c6942d8763}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_df\_s\_bits\_are@{v110\_df\_s\_bits\_are}}
\index{v110\_df\_s\_bits\_are@{v110\_df\_s\_bits\_are}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_df\_s\_bits\_are()}
{\footnotesize\ttfamily static bool v110\+\_\+df\+\_\+s\+\_\+bits\+\_\+are (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$}]{df,  }\item[{\textbf{ ubit\+\_\+t}}]{cmp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ ARRAY\+\_\+\+SIZE}, and \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::s\+\_\+bits}.



Referenced by \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+connect\+\_\+ta\+\_\+to\+\_\+line()}, \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+data\+\_\+transfer()}, and \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+disconnect()}.

\mbox{\label{v110__ta_8c_aacb94ee96e54adc254a471eeb4c8bb5a}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_df\_x\_bits\_are@{v110\_df\_x\_bits\_are}}
\index{v110\_df\_x\_bits\_are@{v110\_df\_x\_bits\_are}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_df\_x\_bits\_are()}
{\footnotesize\ttfamily static bool v110\+\_\+df\+\_\+x\+\_\+bits\+\_\+are (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$}]{df,  }\item[{\textbf{ ubit\+\_\+t}}]{cmp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::x\+\_\+bits}.



Referenced by \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+connect\+\_\+ta\+\_\+to\+\_\+line()}.

\mbox{\label{v110__ta_8c_ad06815305ac5d5a76c6f616207d8fc43}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_ta\_build\_frame@{v110\_ta\_build\_frame}}
\index{v110\_ta\_build\_frame@{v110\_ta\_build\_frame}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_ta\_build\_frame()}
{\footnotesize\ttfamily static void v110\+\_\+ta\+\_\+build\+\_\+frame (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$}]{ta,  }\item[{struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$}]{df }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+v110\+\_\+ta\+::cfg}, \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::d\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::e\+\_\+bits}, \textbf{ MAX\+\_\+\+D\+\_\+\+BITS}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+get\+\_\+user\+\_\+data\+\_\+chunk\+\_\+bitlen()}, \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+user\+\_\+to\+\_\+ir()}, \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+cfg\+::priv}, \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+cfg\+::rate}, \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::s\+\_\+bits}, \textbf{ osmo\+\_\+v110\+\_\+ta\+::state}, \textbf{ ts}, \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+cfg\+::tx\+\_\+cb}, \textbf{ V110\+\_\+\+TA\+\_\+\+DBIT\+\_\+\+M\+\_\+\+ALL\+\_\+\+ONE}, \textbf{ V110\+\_\+\+TA\+\_\+\+DBIT\+\_\+\+M\+\_\+\+ALL\+\_\+\+ZERO}, \textbf{ V110\+\_\+\+TA\+\_\+\+DBIT\+\_\+\+M\+\_\+\+FORWARD}, and \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame\+::x\+\_\+bits}.



Referenced by \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+connect\+\_\+ta\+\_\+to\+\_\+line()}, \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+data\+\_\+transfer()}, \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+disconnect()}, \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+idle\+\_\+ready()}, and \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+resyncing()}.

\mbox{\label{v110__ta_8c_a75bad58d0f9076952a8527d9a1a24f97}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_ta\_flags\_update@{v110\_ta\_flags\_update}}
\index{v110\_ta\_flags\_update@{v110\_ta\_flags\_update}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_ta\_flags\_update()}
{\footnotesize\ttfamily static void v110\+\_\+ta\+\_\+flags\+\_\+update (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$}]{ta,  }\item[{unsigned int}]{v24\+\_\+flags }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+v110\+\_\+ta\+::cfg}, \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+cfg\+::priv}, \textbf{ osmo\+\_\+v110\+\_\+ta\+::state}, \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+cfg\+::status\+\_\+update\+\_\+cb}, and \textbf{ v110\+\_\+ta\+\_\+state\+::v24\+\_\+flags}.



Referenced by \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+connect\+\_\+ta\+\_\+to\+\_\+line()}, \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+data\+\_\+transfer()}, \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+data\+\_\+transfer\+\_\+onenter()}, \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+disconnect\+\_\+onenter()}, \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+idle\+\_\+ready\+\_\+onenter()}, and \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+resyncing()}.

\mbox{\label{v110__ta_8c_ad2f431d1cb837e39cc931f04a200fa7a}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_ta\_fsm\_connect\_ta\_to\_line@{v110\_ta\_fsm\_connect\_ta\_to\_line}}
\index{v110\_ta\_fsm\_connect\_ta\_to\_line@{v110\_ta\_fsm\_connect\_ta\_to\_line}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_ta\_fsm\_connect\_ta\_to\_line()}
{\footnotesize\ttfamily static void v110\+\_\+ta\+\_\+fsm\+\_\+connect\+\_\+ta\+\_\+to\+\_\+line (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$}]{fi,  }\item[{uint32\+\_\+t}]{event,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ data}, \textbf{ osmo\+\_\+v110\+\_\+ta\+::fi}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+timer\+\_\+del()}, \textbf{ OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+C\+\_\+106}, \textbf{ OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+C\+\_\+107}, \textbf{ OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+C\+\_\+108}, \textbf{ OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+C\+\_\+109}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+::priv}, \textbf{ osmo\+\_\+v110\+\_\+ta\+::state}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+::timer}, \textbf{ ts}, \textbf{ v110\+\_\+df\+\_\+s\+\_\+bits\+\_\+are()}, \textbf{ v110\+\_\+df\+\_\+x\+\_\+bits\+\_\+are()}, \textbf{ V110\+\_\+\+SX\+\_\+\+BIT\+\_\+\+ON}, \textbf{ v110\+\_\+ta\+\_\+build\+\_\+frame()}, \textbf{ V110\+\_\+\+TA\+\_\+\+DBIT\+\_\+\+M\+\_\+\+FORWARD}, \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+RX\+\_\+\+FRAME\+\_\+\+IND}, \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+SYNC\+\_\+\+IND}, \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+TIMEOUT}, \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+TX\+\_\+\+FRAME\+\_\+\+RTS}, \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+V24\+\_\+\+STATUS\+\_\+\+CHG}, \textbf{ v110\+\_\+ta\+\_\+flags\+\_\+update()}, \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+state\+\_\+chg}, \textbf{ v110\+\_\+ta\+\_\+handle\+\_\+frame()}, \textbf{ V110\+\_\+\+TA\+\_\+\+ST\+\_\+\+DATA\+\_\+\+TRANSFER}, \textbf{ V110\+\_\+\+TA\+\_\+\+ST\+\_\+\+IDLE\+\_\+\+READY}, \textbf{ V24\+\_\+\+FLAGMASK\+\_\+\+IS\+\_\+\+OFF}, \textbf{ V24\+\_\+\+FLAGMASK\+\_\+\+IS\+\_\+\+ON}, \textbf{ V24\+\_\+\+FLAGMASK\+\_\+\+SET\+\_\+\+ON}, and \textbf{ v110\+\_\+ta\+\_\+state\+::v24\+\_\+flags}.

\mbox{\label{v110__ta_8c_a3de30e5a1579395076c85aa3d608c08a}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_ta\_fsm\_connect\_ta\_to\_line\_onenter@{v110\_ta\_fsm\_connect\_ta\_to\_line\_onenter}}
\index{v110\_ta\_fsm\_connect\_ta\_to\_line\_onenter@{v110\_ta\_fsm\_connect\_ta\_to\_line\_onenter}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_ta\_fsm\_connect\_ta\_to\_line\_onenter()}
{\footnotesize\ttfamily static void v110\+\_\+ta\+\_\+fsm\+\_\+connect\+\_\+ta\+\_\+to\+\_\+line\+\_\+onenter (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$}]{fi,  }\item[{uint32\+\_\+t}]{prev\+\_\+state }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+v110\+\_\+ta\+::fi}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+TIMER\+\_\+\+T1}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+::priv}, \textbf{ osmo\+\_\+v110\+\_\+ta\+::state}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+::T}, \textbf{ ts}, \textbf{ V110\+\_\+\+SX\+\_\+\+BIT\+\_\+\+OFF}, and \textbf{ V110\+\_\+\+TA\+\_\+\+DBIT\+\_\+\+M\+\_\+\+ALL\+\_\+\+ONE}.

\mbox{\label{v110__ta_8c_a2679ff19a96bc861b55c8b57285781b5}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_ta\_fsm\_data\_transfer@{v110\_ta\_fsm\_data\_transfer}}
\index{v110\_ta\_fsm\_data\_transfer@{v110\_ta\_fsm\_data\_transfer}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_ta\_fsm\_data\_transfer()}
{\footnotesize\ttfamily static void v110\+\_\+ta\+\_\+fsm\+\_\+data\+\_\+transfer (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$}]{fi,  }\item[{uint32\+\_\+t}]{event,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ data}, \textbf{ osmo\+\_\+v110\+\_\+ta\+::fi}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+C\+\_\+107}, \textbf{ OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+C\+\_\+108}, \textbf{ OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+C\+\_\+109}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+::priv}, \textbf{ osmo\+\_\+v110\+\_\+ta\+::state}, \textbf{ ts}, \textbf{ v110\+\_\+df\+\_\+d\+\_\+bits\+\_\+are()}, \textbf{ v110\+\_\+df\+\_\+s\+\_\+bits\+\_\+are()}, \textbf{ V110\+\_\+\+SX\+\_\+\+BIT\+\_\+\+OFF}, \textbf{ v110\+\_\+ta\+\_\+build\+\_\+frame()}, \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+DESYNC\+\_\+\+IND}, \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+RX\+\_\+\+FRAME\+\_\+\+IND}, \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+TX\+\_\+\+FRAME\+\_\+\+RTS}, \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+V24\+\_\+\+STATUS\+\_\+\+CHG}, \textbf{ v110\+\_\+ta\+\_\+flags\+\_\+update()}, \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+state\+\_\+chg}, \textbf{ v110\+\_\+ta\+\_\+handle\+\_\+frame()}, \textbf{ V110\+\_\+\+TA\+\_\+\+ST\+\_\+\+DISCONNECTING}, \textbf{ V110\+\_\+\+TA\+\_\+\+ST\+\_\+\+RESYNCING}, \textbf{ V24\+\_\+\+FLAGMASK\+\_\+\+IS\+\_\+\+ON}, \textbf{ V24\+\_\+\+FLAGMASK\+\_\+\+SET\+\_\+\+OFF}, and \textbf{ v110\+\_\+ta\+\_\+state\+::v24\+\_\+flags}.

\mbox{\label{v110__ta_8c_a0317f0e246f87c7cd173d98f10faa7b4}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_ta\_fsm\_data\_transfer\_onenter@{v110\_ta\_fsm\_data\_transfer\_onenter}}
\index{v110\_ta\_fsm\_data\_transfer\_onenter@{v110\_ta\_fsm\_data\_transfer\_onenter}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_ta\_fsm\_data\_transfer\_onenter()}
{\footnotesize\ttfamily static void v110\+\_\+ta\+\_\+fsm\+\_\+data\+\_\+transfer\+\_\+onenter (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$}]{fi,  }\item[{uint32\+\_\+t}]{prev\+\_\+state }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+v110\+\_\+ta\+::cfg}, \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+cfg\+::end\+\_\+to\+\_\+end}, \textbf{ osmo\+\_\+v110\+\_\+ta\+::fi}, \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+cfg\+::flow\+\_\+ctrl}, \textbf{ OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+C\+\_\+106}, \textbf{ OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+C\+\_\+107}, \textbf{ OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+C\+\_\+109}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+::priv}, \textbf{ osmo\+\_\+v110\+\_\+ta\+::state}, \textbf{ ts}, \textbf{ V110\+\_\+\+SX\+\_\+\+BIT\+\_\+\+ON}, \textbf{ V110\+\_\+\+TA\+\_\+\+DBIT\+\_\+\+M\+\_\+\+FORWARD}, \textbf{ v110\+\_\+ta\+\_\+flags\+\_\+update()}, \textbf{ V24\+\_\+\+FLAGMASK\+\_\+\+SET\+\_\+\+ON}, and \textbf{ v110\+\_\+ta\+\_\+state\+::v24\+\_\+flags}.

\mbox{\label{v110__ta_8c_ae1366c3a540a2196de2e0f496cdea952}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_ta\_fsm\_disconnect@{v110\_ta\_fsm\_disconnect}}
\index{v110\_ta\_fsm\_disconnect@{v110\_ta\_fsm\_disconnect}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_ta\_fsm\_disconnect()}
{\footnotesize\ttfamily static void v110\+\_\+ta\+\_\+fsm\+\_\+disconnect (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$}]{fi,  }\item[{uint32\+\_\+t}]{event,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ data}, \textbf{ osmo\+\_\+v110\+\_\+ta\+::fi}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+::priv}, \textbf{ v110\+\_\+df\+\_\+s\+\_\+bits\+\_\+are()}, \textbf{ V110\+\_\+\+SX\+\_\+\+BIT\+\_\+\+OFF}, \textbf{ v110\+\_\+ta\+\_\+build\+\_\+frame()}, \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+DESYNC\+\_\+\+IND}, \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+RX\+\_\+\+FRAME\+\_\+\+IND}, \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+TIMEOUT}, \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+TX\+\_\+\+FRAME\+\_\+\+RTS}, \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+V24\+\_\+\+STATUS\+\_\+\+CHG}, \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+state\+\_\+chg}, \textbf{ v110\+\_\+ta\+\_\+handle\+\_\+frame()}, and \textbf{ V110\+\_\+\+TA\+\_\+\+ST\+\_\+\+IDLE\+\_\+\+READY}.

\mbox{\label{v110__ta_8c_a40d4cd148c2999489372c40d45ba7a24}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_ta\_fsm\_disconnect\_onenter@{v110\_ta\_fsm\_disconnect\_onenter}}
\index{v110\_ta\_fsm\_disconnect\_onenter@{v110\_ta\_fsm\_disconnect\_onenter}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_ta\_fsm\_disconnect\_onenter()}
{\footnotesize\ttfamily static void v110\+\_\+ta\+\_\+fsm\+\_\+disconnect\+\_\+onenter (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$}]{fi,  }\item[{uint32\+\_\+t}]{prev\+\_\+state }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+v110\+\_\+ta\+::fi}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+C\+\_\+106}, \textbf{ OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+TIMER\+\_\+\+T2}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+::priv}, \textbf{ osmo\+\_\+v110\+\_\+ta\+::state}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+::T}, \textbf{ ts}, \textbf{ V110\+\_\+\+SX\+\_\+\+BIT\+\_\+\+OFF}, \textbf{ V110\+\_\+\+TA\+\_\+\+DBIT\+\_\+\+M\+\_\+\+ALL\+\_\+\+ZERO}, \textbf{ v110\+\_\+ta\+\_\+flags\+\_\+update()}, \textbf{ V24\+\_\+\+FLAGMASK\+\_\+\+SET\+\_\+\+OFF}, and \textbf{ v110\+\_\+ta\+\_\+state\+::v24\+\_\+flags}.

\mbox{\label{v110__ta_8c_a4c37d03bcb8b182dd77e8971da0e6cee}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_ta\_fsm\_idle\_ready@{v110\_ta\_fsm\_idle\_ready}}
\index{v110\_ta\_fsm\_idle\_ready@{v110\_ta\_fsm\_idle\_ready}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_ta\_fsm\_idle\_ready()}
{\footnotesize\ttfamily static void v110\+\_\+ta\+\_\+fsm\+\_\+idle\+\_\+ready (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$}]{fi,  }\item[{uint32\+\_\+t}]{event,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ data}, \textbf{ osmo\+\_\+v110\+\_\+ta\+::fi}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+C\+\_\+108}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+::priv}, \textbf{ osmo\+\_\+v110\+\_\+ta\+::state}, \textbf{ ts}, \textbf{ v110\+\_\+ta\+\_\+build\+\_\+frame()}, \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+RX\+\_\+\+FRAME\+\_\+\+IND}, \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+TX\+\_\+\+FRAME\+\_\+\+RTS}, \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+V24\+\_\+\+STATUS\+\_\+\+CHG}, \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+state\+\_\+chg}, \textbf{ v110\+\_\+ta\+\_\+handle\+\_\+frame()}, \textbf{ V110\+\_\+\+TA\+\_\+\+ST\+\_\+\+CON\+\_\+\+TA\+\_\+\+TO\+\_\+\+LINE}, and \textbf{ V24\+\_\+\+FLAGMASK\+\_\+\+IS\+\_\+\+ON}.

\mbox{\label{v110__ta_8c_a80a10b7cecb885ecb6fd9290aef1d6cc}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_ta\_fsm\_idle\_ready\_onenter@{v110\_ta\_fsm\_idle\_ready\_onenter}}
\index{v110\_ta\_fsm\_idle\_ready\_onenter@{v110\_ta\_fsm\_idle\_ready\_onenter}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_ta\_fsm\_idle\_ready\_onenter()}
{\footnotesize\ttfamily static void v110\+\_\+ta\+\_\+fsm\+\_\+idle\+\_\+ready\+\_\+onenter (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$}]{fi,  }\item[{uint32\+\_\+t}]{prev\+\_\+state }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+v110\+\_\+ta\+::fi}, \textbf{ OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+C\+\_\+106}, \textbf{ OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+C\+\_\+107}, \textbf{ OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+C\+\_\+109}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+::priv}, \textbf{ osmo\+\_\+v110\+\_\+ta\+::state}, \textbf{ ts}, \textbf{ V110\+\_\+\+SX\+\_\+\+BIT\+\_\+\+OFF}, \textbf{ V110\+\_\+\+TA\+\_\+\+DBIT\+\_\+\+M\+\_\+\+ALL\+\_\+\+ONE}, \textbf{ v110\+\_\+ta\+\_\+flags\+\_\+update()}, \textbf{ V24\+\_\+\+FLAGMASK\+\_\+\+SET\+\_\+\+OFF}, and \textbf{ v110\+\_\+ta\+\_\+state\+::v24\+\_\+flags}.

\mbox{\label{v110__ta_8c_ae4ebb02d3a07916a518e28edf5ffeabf}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_ta\_fsm\_resyncing@{v110\_ta\_fsm\_resyncing}}
\index{v110\_ta\_fsm\_resyncing@{v110\_ta\_fsm\_resyncing}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_ta\_fsm\_resyncing()}
{\footnotesize\ttfamily static void v110\+\_\+ta\+\_\+fsm\+\_\+resyncing (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$}]{fi,  }\item[{uint32\+\_\+t}]{event,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ data}, \textbf{ osmo\+\_\+v110\+\_\+ta\+::fi}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+C\+\_\+107}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+::priv}, \textbf{ osmo\+\_\+v110\+\_\+ta\+::state}, \textbf{ ts}, \textbf{ V110\+\_\+\+SX\+\_\+\+BIT\+\_\+\+OFF}, \textbf{ V110\+\_\+\+SX\+\_\+\+BIT\+\_\+\+ON}, \textbf{ v110\+\_\+ta\+\_\+build\+\_\+frame()}, \textbf{ V110\+\_\+\+TA\+\_\+\+DBIT\+\_\+\+M\+\_\+\+ALL\+\_\+\+ZERO}, \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+SYNC\+\_\+\+IND}, \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+TIMEOUT}, \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+TX\+\_\+\+FRAME\+\_\+\+RTS}, \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+V24\+\_\+\+STATUS\+\_\+\+CHG}, \textbf{ v110\+\_\+ta\+\_\+flags\+\_\+update()}, \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+state\+\_\+chg}, \textbf{ V110\+\_\+\+TA\+\_\+\+ST\+\_\+\+DATA\+\_\+\+TRANSFER}, \textbf{ V110\+\_\+\+TA\+\_\+\+ST\+\_\+\+DISCONNECTING}, \textbf{ V24\+\_\+\+FLAGMASK\+\_\+\+SET\+\_\+\+OFF}, and \textbf{ v110\+\_\+ta\+\_\+state\+::v24\+\_\+flags}.

\mbox{\label{v110__ta_8c_adb181c7101b67a7282238fa79d52e8e3}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_ta\_fsm\_resyncing\_onenter@{v110\_ta\_fsm\_resyncing\_onenter}}
\index{v110\_ta\_fsm\_resyncing\_onenter@{v110\_ta\_fsm\_resyncing\_onenter}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_ta\_fsm\_resyncing\_onenter()}
{\footnotesize\ttfamily static void v110\+\_\+ta\+\_\+fsm\+\_\+resyncing\+\_\+onenter (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$}]{fi,  }\item[{uint32\+\_\+t}]{prev\+\_\+state }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+v110\+\_\+ta\+::fi}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+TIMER\+\_\+\+X1}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+::priv}, \textbf{ osmo\+\_\+v110\+\_\+ta\+::state}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+::T}, \textbf{ ts}, \textbf{ V110\+\_\+\+SX\+\_\+\+BIT\+\_\+\+OFF}, and \textbf{ V110\+\_\+\+TA\+\_\+\+DBIT\+\_\+\+M\+\_\+\+ALL\+\_\+\+ONE}.

\mbox{\label{v110__ta_8c_a85f827cde632d6dd1300f1514fc6381c}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_ta\_handle\_frame@{v110\_ta\_handle\_frame}}
\index{v110\_ta\_handle\_frame@{v110\_ta\_handle\_frame}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_ta\_handle\_frame()}
{\footnotesize\ttfamily static void v110\+\_\+ta\+\_\+handle\+\_\+frame (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$}]{ta,  }\item[{const struct \textbf{ osmo\+\_\+v110\+\_\+decoded\+\_\+frame} $\ast$}]{df }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+v110\+\_\+ta\+::cfg}, \textbf{ MAX\+\_\+\+D\+\_\+\+BITS}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+get\+\_\+user\+\_\+data\+\_\+chunk\+\_\+bitlen()}, \textbf{ osmo\+\_\+v110\+\_\+sync\+\_\+ra1\+\_\+ir\+\_\+to\+\_\+user()}, \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+cfg\+::priv}, \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+cfg\+::rate}, \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+cfg\+::rx\+\_\+cb}, \textbf{ osmo\+\_\+v110\+\_\+ta\+::state}, \textbf{ ts}, \textbf{ V110\+\_\+\+TA\+\_\+\+DBIT\+\_\+\+M\+\_\+\+ALL\+\_\+\+ONE}, \textbf{ V110\+\_\+\+TA\+\_\+\+DBIT\+\_\+\+M\+\_\+\+ALL\+\_\+\+ZERO}, and \textbf{ V110\+\_\+\+TA\+\_\+\+DBIT\+\_\+\+M\+\_\+\+FORWARD}.



Referenced by \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+connect\+\_\+ta\+\_\+to\+\_\+line()}, \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+data\+\_\+transfer()}, \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+disconnect()}, and \textbf{ v110\+\_\+ta\+\_\+fsm\+\_\+idle\+\_\+ready()}.

\mbox{\label{v110__ta_8c_ad757525337c6b272d24e82fafcb70a8e}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_ta\_set\_status@{v110\_ta\_set\_status}}
\index{v110\_ta\_set\_status@{v110\_ta\_set\_status}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_ta\_set\_status()}
{\footnotesize\ttfamily static int v110\+\_\+ta\+\_\+set\+\_\+status (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+v110\+\_\+ta} $\ast$}]{ta,  }\item[{unsigned int}]{status }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Set the V.\+24 status bit-\/mask of the given TA instance. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em ta} & TA instance to update the circuit state. \\
\hline
\mbox{\texttt{ in}}  & {\em status} & bit-\/mask of OSMO\+\_\+\+V110\+\_\+\+TA\+\_\+\+C\+\_\+$\ast$. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative on error. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+v110\+\_\+ta\+::fi}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+\_\+dispatch}, \textbf{ osmo\+\_\+v110\+\_\+ta\+::state}, \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+V24\+\_\+\+STATUS\+\_\+\+CHG}, and \textbf{ v110\+\_\+ta\+\_\+state\+::v24\+\_\+flags}.



Referenced by \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+set\+\_\+circuit()}.

\mbox{\label{v110__ta_8c_a6af71ebe9d3b24c2c9329d4b10309cec}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_ta\_timer\_cb@{v110\_ta\_timer\_cb}}
\index{v110\_ta\_timer\_cb@{v110\_ta\_timer\_cb}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_ta\_timer\_cb()}
{\footnotesize\ttfamily static int v110\+\_\+ta\+\_\+timer\+\_\+cb (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$}]{fi }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+v110\+\_\+ta\+::fi}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+\_\+dispatch}, and \textbf{ V110\+\_\+\+TA\+\_\+\+EV\+\_\+\+TIMEOUT}.



\doxysubsection{Variable Documentation}
\mbox{\label{v110__ta_8c_a08e4007d6bda086965e900c6afefa55d}} 
\index{v110\_ta.c@{v110\_ta.c}!osmo\_v110\_ta\_circuit\_descs@{osmo\_v110\_ta\_circuit\_descs}}
\index{osmo\_v110\_ta\_circuit\_descs@{osmo\_v110\_ta\_circuit\_descs}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{osmo\_v110\_ta\_circuit\_descs}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} osmo\+\_\+v110\+\_\+ta\+\_\+circuit\+\_\+descs[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ OSMO\_V110\_TA\_C\_105, \textcolor{stringliteral}{"{}Request to Send"{}} \},}
\DoxyCodeLine{        \{ OSMO\_V110\_TA\_C\_106, \textcolor{stringliteral}{"{}Clear to Send"{}} \},}
\DoxyCodeLine{        \{ OSMO\_V110\_TA\_C\_107, \textcolor{stringliteral}{"{}Data Set Ready"{}} \},}
\DoxyCodeLine{        \{ OSMO\_V110\_TA\_C\_108, \textcolor{stringliteral}{"{}Data Terminal Ready"{}} \},}
\DoxyCodeLine{        \{ OSMO\_V110\_TA\_C\_109, \textcolor{stringliteral}{"{}Data Carrier Detect"{}} \},}
\DoxyCodeLine{        \{ OSMO\_V110\_TA\_C\_133, \textcolor{stringliteral}{"{}Ready for receiving"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+circuit\+\_\+desc()}.

\mbox{\label{v110__ta_8c_a09ef610f36ad607fd2c31f09da599a95}} 
\index{v110\_ta.c@{v110\_ta.c}!osmo\_v110\_ta\_circuit\_names@{osmo\_v110\_ta\_circuit\_names}}
\index{osmo\_v110\_ta\_circuit\_names@{osmo\_v110\_ta\_circuit\_names}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{osmo\_v110\_ta\_circuit\_names}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} osmo\+\_\+v110\+\_\+ta\+\_\+circuit\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ OSMO\_V110\_TA\_C\_105, \textcolor{stringliteral}{"{}105/RTS"{}} \},}
\DoxyCodeLine{        \{ OSMO\_V110\_TA\_C\_106, \textcolor{stringliteral}{"{}106/CTS"{}} \},}
\DoxyCodeLine{        \{ OSMO\_V110\_TA\_C\_107, \textcolor{stringliteral}{"{}107/DSR"{}} \},}
\DoxyCodeLine{        \{ OSMO\_V110\_TA\_C\_108, \textcolor{stringliteral}{"{}108/DTR"{}} \},}
\DoxyCodeLine{        \{ OSMO\_V110\_TA\_C\_109, \textcolor{stringliteral}{"{}109/DCD"{}} \},}
\DoxyCodeLine{        \{ OSMO\_V110\_TA\_C\_133, \textcolor{stringliteral}{"{}133"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+circuit\+\_\+name()}.

\mbox{\label{v110__ta_8c_a530bb71be6734fae15e164ad4ea59d6d}} 
\index{v110\_ta.c@{v110\_ta.c}!osmo\_v110\_ta\_fsm@{osmo\_v110\_ta\_fsm}}
\index{osmo\_v110\_ta\_fsm@{osmo\_v110\_ta\_fsm}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{osmo\_v110\_ta\_fsm}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+fsm} osmo\+\_\+v110\+\_\+ta\+\_\+fsm\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .name = \textcolor{stringliteral}{"{}V110-\/TA"{}},}
\DoxyCodeLine{        .states = v110\_ta\_states,}
\DoxyCodeLine{        .num\_states = ARRAY\_SIZE(v110\_ta\_states),}
\DoxyCodeLine{        .timer\_cb = v110\_ta\_timer\_cb,}
\DoxyCodeLine{        .log\_subsys = DLGLOBAL,}
\DoxyCodeLine{        .event\_names = v110\_ta\_fsm\_event\_names,}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ \+\_\+\+\_\+attribute\+\_\+\+\_\+()}, and \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+alloc()}.

\mbox{\label{v110__ta_8c_ae03cca70aff7b0c7b30279948e21b6a7}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_ta\_fsm\_event\_names@{v110\_ta\_fsm\_event\_names}}
\index{v110\_ta\_fsm\_event\_names@{v110\_ta\_fsm\_event\_names}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_ta\_fsm\_event\_names}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} v110\+\_\+ta\+\_\+fsm\+\_\+event\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ V110\_TA\_EV\_RX\_FRAME\_IND,       \textcolor{stringliteral}{"{}RX\_FRAME\_IND"{}} \},}
\DoxyCodeLine{        \{ V110\_TA\_EV\_TX\_FRAME\_RTS,       \textcolor{stringliteral}{"{}TX\_FRAME\_RTS"{}} \},}
\DoxyCodeLine{        \{ V110\_TA\_EV\_V24\_STATUS\_CHG,   \textcolor{stringliteral}{"{}V24\_STATUS\_CHG"{}} \},}
\DoxyCodeLine{        \{ V110\_TA\_EV\_SYNC\_IND,               \textcolor{stringliteral}{"{}SYNC\_IND"{}} \},}
\DoxyCodeLine{        \{ V110\_TA\_EV\_DESYNC\_IND,   \textcolor{stringliteral}{"{}DESYNC\_IND"{}} \},}
\DoxyCodeLine{        \{ V110\_TA\_EV\_TIMEOUT,         \textcolor{stringliteral}{"{}TIMEOUT"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{v110__ta_8c_a5a12e94956a5b704bd5171528fba1d48}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_ta\_fsm\_timeouts@{v110\_ta\_fsm\_timeouts}}
\index{v110\_ta\_fsm\_timeouts@{v110\_ta\_fsm\_timeouts}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_ta\_fsm\_timeouts}
{\footnotesize\ttfamily const struct \textbf{ osmo\+\_\+tdef\+\_\+state\+\_\+timeout} v110\+\_\+ta\+\_\+fsm\+\_\+timeouts[32]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        [V110\_TA\_ST\_RESYNCING]              = \{ .T = OSMO\_V110\_TA\_TIMER\_X1 \},}
\DoxyCodeLine{        [V110\_TA\_ST\_CON\_TA\_TO\_LINE]    = \{ .T = OSMO\_V110\_TA\_TIMER\_T1 \},}
\DoxyCodeLine{        [V110\_TA\_ST\_DISCONNECTING]      = \{ .T = OSMO\_V110\_TA\_TIMER\_T2 \},}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{v110__ta_8c_a9e9a19ca3428a4584d41bf9db9c5c28c}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_ta\_states@{v110\_ta\_states}}
\index{v110\_ta\_states@{v110\_ta\_states}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_ta\_states}
{\footnotesize\ttfamily const struct \textbf{ osmo\+\_\+fsm\+\_\+state} v110\+\_\+ta\+\_\+states[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\label{v110__ta_8c_aa5755cb092246b1a2c657be12057b54a}} 
\index{v110\_ta.c@{v110\_ta.c}!v110\_ta\_tdef@{v110\_ta\_tdef}}
\index{v110\_ta\_tdef@{v110\_ta\_tdef}!v110\_ta.c@{v110\_ta.c}}
\doxysubsubsection{v110\_ta\_tdef}
{\footnotesize\ttfamily const struct \textbf{ osmo\+\_\+tdef} v110\+\_\+ta\+\_\+tdef[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ .T = OSMO\_V110\_TA\_TIMER\_X1,}
\DoxyCodeLine{          .unit = OSMO\_TDEF\_MS, .default\_val = 3000, }
\DoxyCodeLine{          .desc = \textcolor{stringliteral}{"{}ITU-\/T V.110 7.1.5 Loss of frame synchronization: sync recovery timer"{}} \},}
\DoxyCodeLine{        \{ .T = OSMO\_V110\_TA\_TIMER\_T1,}
\DoxyCodeLine{          .unit = OSMO\_TDEF\_MS, .default\_val = 10000, }
\DoxyCodeLine{          .desc = \textcolor{stringliteral}{"{}ITU-\/T V.110 7.1.2 Connect TA to line: sync establishment timer"{}} \},}
\DoxyCodeLine{        \{ .T = OSMO\_V110\_TA\_TIMER\_T2,}
\DoxyCodeLine{          .unit = OSMO\_TDEF\_MS, .default\_val = 5000, }
\DoxyCodeLine{          .desc = \textcolor{stringliteral}{"{}ITU-\/T V.110 7.1.4 Disconnect mode: disconnect confirmation timer"{}} \},}
\DoxyCodeLine{        \{  \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ osmo\+\_\+v110\+\_\+ta\+\_\+alloc()}.

