\doxysection{src/gsm/gprs\+\_\+rlc.c File Reference}
\label{gprs__rlc_8c}\index{src/gsm/gprs\_rlc.c@{src/gsm/gprs\_rlc.c}}


helper functions for (E)GPRS RLC according to 3GPP TS 44.\+060.  


{\ttfamily \#include $<$errno.\+h$>$}\newline
{\ttfamily \#include $<$string.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/utils.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/coding/gsm0503\+\_\+coding.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gsm/protocol/gsm\+\_\+44\+\_\+060.\+h$>$}\newline
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ gprs\+\_\+cs\+\_\+desc}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ EGPRS\+\_\+\+CPS\+\_\+\+TYPE1\+\_\+\+TBL\+\_\+\+SZ}~29
\item 
\#define \textbf{ EGPRS\+\_\+\+CPS\+\_\+\+TYPE2\+\_\+\+TBL\+\_\+\+SZ}~8
\item 
\#define \textbf{ EGPRS\+\_\+\+CPS\+\_\+\+TYPE3\+\_\+\+TBL\+\_\+\+SZ}~16
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \textbf{ egprs\+\_\+get\+\_\+cps} (struct \textbf{ egprs\+\_\+cps} $\ast$cps, uint8\+\_\+t \textbf{ type}, uint8\+\_\+t bits)
\item 
int \textbf{ osmo\+\_\+gprs\+\_\+ul\+\_\+block\+\_\+size\+\_\+bits} (enum \textbf{ osmo\+\_\+gprs\+\_\+cs} cs)
\begin{DoxyCompactList}\small\item\em Return size of (E)GPRS uplink block for given coding scheme in bits. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+gprs\+\_\+dl\+\_\+block\+\_\+size\+\_\+bits} (enum \textbf{ osmo\+\_\+gprs\+\_\+cs} cs)
\begin{DoxyCompactList}\small\item\em Return size of (E)GPRS downlink block for given coding scheme in bits. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+gprs\+\_\+ul\+\_\+block\+\_\+size\+\_\+bytes} (enum \textbf{ osmo\+\_\+gprs\+\_\+cs} cs)
\begin{DoxyCompactList}\small\item\em Return size of (E)GPRS uplink block for given coding scheme in bytes. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+gprs\+\_\+dl\+\_\+block\+\_\+size\+\_\+bytes} (enum \textbf{ osmo\+\_\+gprs\+\_\+cs} cs)
\begin{DoxyCompactList}\small\item\em Return size of (E)GPRS downlink block for given coding scheme in bytes. \end{DoxyCompactList}\item 
enum \textbf{ osmo\+\_\+gprs\+\_\+cs} \textbf{ osmo\+\_\+gprs\+\_\+ul\+\_\+cs\+\_\+by\+\_\+block\+\_\+bytes} (uint8\+\_\+t block\+\_\+size)
\begin{DoxyCompactList}\small\item\em Return coding scheme for given (E)GPRS uplink block size. \end{DoxyCompactList}\item 
enum \textbf{ osmo\+\_\+gprs\+\_\+cs} \textbf{ osmo\+\_\+gprs\+\_\+dl\+\_\+cs\+\_\+by\+\_\+block\+\_\+bytes} (uint8\+\_\+t block\+\_\+size)
\begin{DoxyCompactList}\small\item\em Return coding scheme for given (E)GPRS downlink block size. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
static const struct \textbf{ egprs\+\_\+cps} \textbf{ egprs\+\_\+cps\+\_\+table\+\_\+type1} [\textbf{ EGPRS\+\_\+\+CPS\+\_\+\+TYPE1\+\_\+\+TBL\+\_\+\+SZ}]
\item 
static const struct \textbf{ egprs\+\_\+cps} \textbf{ egprs\+\_\+cps\+\_\+table\+\_\+type2} [\textbf{ EGPRS\+\_\+\+CPS\+\_\+\+TYPE2\+\_\+\+TBL\+\_\+\+SZ}]
\item 
static const struct \textbf{ egprs\+\_\+cps} \textbf{ egprs\+\_\+cps\+\_\+table\+\_\+type3} [\textbf{ EGPRS\+\_\+\+CPS\+\_\+\+TYPE3\+\_\+\+TBL\+\_\+\+SZ}]
\item 
const struct \textbf{ gprs\+\_\+cs\+\_\+desc} \textbf{ gprs\+\_\+cs\+\_\+desc} [\textbf{ \+\_\+\+NUM\+\_\+\+OSMO\+\_\+\+GPRS\+\_\+\+CS}]
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
helper functions for (E)GPRS RLC according to 3GPP TS 44.\+060. 

(C) 2016 by Thomas Thou (C) 2016-\/2017 by sysmocom -\/ s.\+f.\+m.\+c. GmbH (C) 2017 by Harald Welte {\texttt{ laforge@gnumonks.\+org}} All Rights Reserved.

SPDX-\/\+License-\/\+Identifier\+: GPL-\/2.\+0+ 

\doxysubsection{Macro Definition Documentation}
\mbox{\label{gprs__rlc_8c_add140e6799e7eb2f0f66324a5175a9a2}} 
\index{gprs\_rlc.c@{gprs\_rlc.c}!EGPRS\_CPS\_TYPE1\_TBL\_SZ@{EGPRS\_CPS\_TYPE1\_TBL\_SZ}}
\index{EGPRS\_CPS\_TYPE1\_TBL\_SZ@{EGPRS\_CPS\_TYPE1\_TBL\_SZ}!gprs\_rlc.c@{gprs\_rlc.c}}
\doxysubsubsection{EGPRS\_CPS\_TYPE1\_TBL\_SZ}
{\footnotesize\ttfamily \#define EGPRS\+\_\+\+CPS\+\_\+\+TYPE1\+\_\+\+TBL\+\_\+\+SZ~29}

\mbox{\label{gprs__rlc_8c_ae5b9d53b1334245ec638f86fbc6abf20}} 
\index{gprs\_rlc.c@{gprs\_rlc.c}!EGPRS\_CPS\_TYPE2\_TBL\_SZ@{EGPRS\_CPS\_TYPE2\_TBL\_SZ}}
\index{EGPRS\_CPS\_TYPE2\_TBL\_SZ@{EGPRS\_CPS\_TYPE2\_TBL\_SZ}!gprs\_rlc.c@{gprs\_rlc.c}}
\doxysubsubsection{EGPRS\_CPS\_TYPE2\_TBL\_SZ}
{\footnotesize\ttfamily \#define EGPRS\+\_\+\+CPS\+\_\+\+TYPE2\+\_\+\+TBL\+\_\+\+SZ~8}

\mbox{\label{gprs__rlc_8c_a5fb1586488873cc8df03d4beacd43005}} 
\index{gprs\_rlc.c@{gprs\_rlc.c}!EGPRS\_CPS\_TYPE3\_TBL\_SZ@{EGPRS\_CPS\_TYPE3\_TBL\_SZ}}
\index{EGPRS\_CPS\_TYPE3\_TBL\_SZ@{EGPRS\_CPS\_TYPE3\_TBL\_SZ}!gprs\_rlc.c@{gprs\_rlc.c}}
\doxysubsubsection{EGPRS\_CPS\_TYPE3\_TBL\_SZ}
{\footnotesize\ttfamily \#define EGPRS\+\_\+\+CPS\+\_\+\+TYPE3\+\_\+\+TBL\+\_\+\+SZ~16}



\doxysubsection{Function Documentation}
\mbox{\label{gprs__rlc_8c_a04590cac736a29f76fea4b9503bbf1fe}} 
\index{gprs\_rlc.c@{gprs\_rlc.c}!egprs\_get\_cps@{egprs\_get\_cps}}
\index{egprs\_get\_cps@{egprs\_get\_cps}!gprs\_rlc.c@{gprs\_rlc.c}}
\doxysubsubsection{egprs\_get\_cps()}
{\footnotesize\ttfamily int egprs\+\_\+get\+\_\+cps (\begin{DoxyParamCaption}\item[{struct \textbf{ egprs\+\_\+cps} $\ast$}]{cps,  }\item[{uint8\+\_\+t}]{type,  }\item[{uint8\+\_\+t}]{bits }\end{DoxyParamCaption})}



References \textbf{ egprs\+\_\+cps\+::bits}, \textbf{ egprs\+\_\+cps\+\_\+table\+\_\+type1}, \textbf{ egprs\+\_\+cps\+\_\+table\+\_\+type2}, \textbf{ egprs\+\_\+cps\+\_\+table\+\_\+type3}, \textbf{ EGPRS\+\_\+\+CPS\+\_\+\+TYPE1\+\_\+\+TBL\+\_\+\+SZ}, \textbf{ EGPRS\+\_\+\+CPS\+\_\+\+TYPE2\+\_\+\+TBL\+\_\+\+SZ}, \textbf{ EGPRS\+\_\+\+CPS\+\_\+\+TYPE3\+\_\+\+TBL\+\_\+\+SZ}, \textbf{ EGPRS\+\_\+\+HDR\+\_\+\+TYPE1}, \textbf{ EGPRS\+\_\+\+HDR\+\_\+\+TYPE2}, \textbf{ EGPRS\+\_\+\+HDR\+\_\+\+TYPE3}, and \textbf{ type}.

\mbox{\label{gprs__rlc_8c_ac0b2f3a41e9874e5074b4f29ae987caf}} 
\index{gprs\_rlc.c@{gprs\_rlc.c}!osmo\_gprs\_dl\_block\_size\_bits@{osmo\_gprs\_dl\_block\_size\_bits}}
\index{osmo\_gprs\_dl\_block\_size\_bits@{osmo\_gprs\_dl\_block\_size\_bits}!gprs\_rlc.c@{gprs\_rlc.c}}
\doxysubsubsection{osmo\_gprs\_dl\_block\_size\_bits()}
{\footnotesize\ttfamily int osmo\+\_\+gprs\+\_\+dl\+\_\+block\+\_\+size\+\_\+bits (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+gprs\+\_\+cs}}]{cs }\end{DoxyParamCaption})}



Return size of (E)GPRS downlink block for given coding scheme in bits. 



References \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ gprs\+\_\+cs\+\_\+desc\+::bits}, \textbf{ gprs\+\_\+cs\+\_\+desc\+::bytes}, and \textbf{ gprs\+\_\+cs\+\_\+desc\+::downlink}.

\mbox{\label{gprs__rlc_8c_af055f7f89f53cb054f9b6c3433642ca6}} 
\index{gprs\_rlc.c@{gprs\_rlc.c}!osmo\_gprs\_dl\_block\_size\_bytes@{osmo\_gprs\_dl\_block\_size\_bytes}}
\index{osmo\_gprs\_dl\_block\_size\_bytes@{osmo\_gprs\_dl\_block\_size\_bytes}!gprs\_rlc.c@{gprs\_rlc.c}}
\doxysubsubsection{osmo\_gprs\_dl\_block\_size\_bytes()}
{\footnotesize\ttfamily int osmo\+\_\+gprs\+\_\+dl\+\_\+block\+\_\+size\+\_\+bytes (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+gprs\+\_\+cs}}]{cs }\end{DoxyParamCaption})}



Return size of (E)GPRS downlink block for given coding scheme in bytes. 



References \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ gprs\+\_\+cs\+\_\+desc\+::bytes}, and \textbf{ gprs\+\_\+cs\+\_\+desc\+::downlink}.



Referenced by \textbf{ osmo\+\_\+gprs\+\_\+dl\+\_\+cs\+\_\+by\+\_\+block\+\_\+bytes()}.

\mbox{\label{gprs__rlc_8c_a8133c5f5101a21ca5debc0fb7534b750}} 
\index{gprs\_rlc.c@{gprs\_rlc.c}!osmo\_gprs\_dl\_cs\_by\_block\_bytes@{osmo\_gprs\_dl\_cs\_by\_block\_bytes}}
\index{osmo\_gprs\_dl\_cs\_by\_block\_bytes@{osmo\_gprs\_dl\_cs\_by\_block\_bytes}!gprs\_rlc.c@{gprs\_rlc.c}}
\doxysubsubsection{osmo\_gprs\_dl\_cs\_by\_block\_bytes()}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+gprs\+\_\+cs} osmo\+\_\+gprs\+\_\+dl\+\_\+cs\+\_\+by\+\_\+block\+\_\+bytes (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{block\+\_\+size }\end{DoxyParamCaption})}



Return coding scheme for given (E)GPRS downlink block size. 



References \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ OSMO\+\_\+\+GPRS\+\_\+\+CS\+\_\+\+NONE}, and \textbf{ osmo\+\_\+gprs\+\_\+dl\+\_\+block\+\_\+size\+\_\+bytes()}.

\mbox{\label{gprs__rlc_8c_a0580dc84205412e51e93c765544acc78}} 
\index{gprs\_rlc.c@{gprs\_rlc.c}!osmo\_gprs\_ul\_block\_size\_bits@{osmo\_gprs\_ul\_block\_size\_bits}}
\index{osmo\_gprs\_ul\_block\_size\_bits@{osmo\_gprs\_ul\_block\_size\_bits}!gprs\_rlc.c@{gprs\_rlc.c}}
\doxysubsubsection{osmo\_gprs\_ul\_block\_size\_bits()}
{\footnotesize\ttfamily int osmo\+\_\+gprs\+\_\+ul\+\_\+block\+\_\+size\+\_\+bits (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+gprs\+\_\+cs}}]{cs }\end{DoxyParamCaption})}



Return size of (E)GPRS uplink block for given coding scheme in bits. 



References \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ gprs\+\_\+cs\+\_\+desc\+::bits}, \textbf{ gprs\+\_\+cs\+\_\+desc\+::bytes}, and \textbf{ gprs\+\_\+cs\+\_\+desc\+::uplink}.

\mbox{\label{gprs__rlc_8c_a71e7c0cb4eee33bc7e4565f4471de3f5}} 
\index{gprs\_rlc.c@{gprs\_rlc.c}!osmo\_gprs\_ul\_block\_size\_bytes@{osmo\_gprs\_ul\_block\_size\_bytes}}
\index{osmo\_gprs\_ul\_block\_size\_bytes@{osmo\_gprs\_ul\_block\_size\_bytes}!gprs\_rlc.c@{gprs\_rlc.c}}
\doxysubsubsection{osmo\_gprs\_ul\_block\_size\_bytes()}
{\footnotesize\ttfamily int osmo\+\_\+gprs\+\_\+ul\+\_\+block\+\_\+size\+\_\+bytes (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+gprs\+\_\+cs}}]{cs }\end{DoxyParamCaption})}



Return size of (E)GPRS uplink block for given coding scheme in bytes. 



References \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ gprs\+\_\+cs\+\_\+desc\+::bytes}, and \textbf{ gprs\+\_\+cs\+\_\+desc\+::uplink}.



Referenced by \textbf{ osmo\+\_\+gprs\+\_\+ul\+\_\+cs\+\_\+by\+\_\+block\+\_\+bytes()}.

\mbox{\label{gprs__rlc_8c_a89d80e4e90cc4a074f90b9c0cbc15008}} 
\index{gprs\_rlc.c@{gprs\_rlc.c}!osmo\_gprs\_ul\_cs\_by\_block\_bytes@{osmo\_gprs\_ul\_cs\_by\_block\_bytes}}
\index{osmo\_gprs\_ul\_cs\_by\_block\_bytes@{osmo\_gprs\_ul\_cs\_by\_block\_bytes}!gprs\_rlc.c@{gprs\_rlc.c}}
\doxysubsubsection{osmo\_gprs\_ul\_cs\_by\_block\_bytes()}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+gprs\+\_\+cs} osmo\+\_\+gprs\+\_\+ul\+\_\+cs\+\_\+by\+\_\+block\+\_\+bytes (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{block\+\_\+size }\end{DoxyParamCaption})}



Return coding scheme for given (E)GPRS uplink block size. 



References \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ OSMO\+\_\+\+GPRS\+\_\+\+CS\+\_\+\+NONE}, and \textbf{ osmo\+\_\+gprs\+\_\+ul\+\_\+block\+\_\+size\+\_\+bytes()}.



\doxysubsection{Variable Documentation}
\mbox{\label{gprs__rlc_8c_ab6f7ad9afc32155a67f970ad03bdd4fd}} 
\index{gprs\_rlc.c@{gprs\_rlc.c}!egprs\_cps\_table\_type1@{egprs\_cps\_table\_type1}}
\index{egprs\_cps\_table\_type1@{egprs\_cps\_table\_type1}!gprs\_rlc.c@{gprs\_rlc.c}}
\doxysubsubsection{egprs\_cps\_table\_type1}
{\footnotesize\ttfamily const struct \textbf{ egprs\+\_\+cps} egprs\+\_\+cps\+\_\+table\+\_\+type1[\textbf{ EGPRS\+\_\+\+CPS\+\_\+\+TYPE1\+\_\+\+TBL\+\_\+\+SZ}]\hspace{0.3cm}{\ttfamily [static]}}



Referenced by \textbf{ egprs\+\_\+get\+\_\+cps()}.

\mbox{\label{gprs__rlc_8c_a7652091c7ebea2eb3e2ee2aa51f73ade}} 
\index{gprs\_rlc.c@{gprs\_rlc.c}!egprs\_cps\_table\_type2@{egprs\_cps\_table\_type2}}
\index{egprs\_cps\_table\_type2@{egprs\_cps\_table\_type2}!gprs\_rlc.c@{gprs\_rlc.c}}
\doxysubsubsection{egprs\_cps\_table\_type2}
{\footnotesize\ttfamily const struct \textbf{ egprs\+\_\+cps} egprs\+\_\+cps\+\_\+table\+\_\+type2[\textbf{ EGPRS\+\_\+\+CPS\+\_\+\+TYPE2\+\_\+\+TBL\+\_\+\+SZ}]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ .bits =  0, .mcs = EGPRS\_MCS6, .p = \{ EGPRS\_CPS\_P1, EGPRS\_CPS\_NONE \} \},}
\DoxyCodeLine{        \{ .bits =  1, .mcs = EGPRS\_MCS6, .p = \{ EGPRS\_CPS\_P2, EGPRS\_CPS\_NONE \} \},}
\DoxyCodeLine{        \{ .bits =  2, .mcs = EGPRS\_MCS6, .p = \{ EGPRS\_CPS\_P1, EGPRS\_CPS\_NONE \} \},}
\DoxyCodeLine{        \{ .bits =  3, .mcs = EGPRS\_MCS6, .p = \{ EGPRS\_CPS\_P2, EGPRS\_CPS\_NONE \} \},}
\DoxyCodeLine{        \{ .bits =  4, .mcs = EGPRS\_MCS5, .p = \{ EGPRS\_CPS\_P1, EGPRS\_CPS\_NONE \} \},}
\DoxyCodeLine{        \{ .bits =  5, .mcs = EGPRS\_MCS5, .p = \{ EGPRS\_CPS\_P2, EGPRS\_CPS\_NONE \} \},}
\DoxyCodeLine{        \{ .bits =  6, .mcs = EGPRS\_MCS6, .p = \{ EGPRS\_CPS\_P1, EGPRS\_CPS\_NONE \} \},}
\DoxyCodeLine{        \{ .bits =  7, .mcs = EGPRS\_MCS6, .p = \{ EGPRS\_CPS\_P2, EGPRS\_CPS\_NONE \} \},}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ egprs\+\_\+get\+\_\+cps()}.

\mbox{\label{gprs__rlc_8c_a1fc61b915c3313bf87eb4a4adcaf43df}} 
\index{gprs\_rlc.c@{gprs\_rlc.c}!egprs\_cps\_table\_type3@{egprs\_cps\_table\_type3}}
\index{egprs\_cps\_table\_type3@{egprs\_cps\_table\_type3}!gprs\_rlc.c@{gprs\_rlc.c}}
\doxysubsubsection{egprs\_cps\_table\_type3}
{\footnotesize\ttfamily const struct \textbf{ egprs\+\_\+cps} egprs\+\_\+cps\+\_\+table\+\_\+type3[\textbf{ EGPRS\+\_\+\+CPS\+\_\+\+TYPE3\+\_\+\+TBL\+\_\+\+SZ}]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ .bits =  0, .mcs = EGPRS\_MCS4, .p = \{ EGPRS\_CPS\_P1, EGPRS\_CPS\_NONE \} \},}
\DoxyCodeLine{        \{ .bits =  1, .mcs = EGPRS\_MCS4, .p = \{ EGPRS\_CPS\_P2, EGPRS\_CPS\_NONE \} \},}
\DoxyCodeLine{        \{ .bits =  2, .mcs = EGPRS\_MCS4, .p = \{ EGPRS\_CPS\_P3, EGPRS\_CPS\_NONE \} \},}
\DoxyCodeLine{        \{ .bits =  3, .mcs = EGPRS\_MCS3, .p = \{ EGPRS\_CPS\_P1, EGPRS\_CPS\_NONE \} \},}
\DoxyCodeLine{        \{ .bits =  4, .mcs = EGPRS\_MCS3, .p = \{ EGPRS\_CPS\_P2, EGPRS\_CPS\_NONE \} \},}
\DoxyCodeLine{        \{ .bits =  5, .mcs = EGPRS\_MCS3, .p = \{ EGPRS\_CPS\_P3, EGPRS\_CPS\_NONE \} \},}
\DoxyCodeLine{        \{ .bits =  6, .mcs = EGPRS\_MCS3, .p = \{ EGPRS\_CPS\_P1, EGPRS\_CPS\_NONE \} \},}
\DoxyCodeLine{        \{ .bits =  7, .mcs = EGPRS\_MCS3, .p = \{ EGPRS\_CPS\_P2, EGPRS\_CPS\_NONE \} \},}
\DoxyCodeLine{        \{ .bits =  8, .mcs = EGPRS\_MCS3, .p = \{ EGPRS\_CPS\_P3, EGPRS\_CPS\_NONE \} \},}
\DoxyCodeLine{        \{ .bits =  9, .mcs = EGPRS\_MCS2, .p = \{ EGPRS\_CPS\_P1, EGPRS\_CPS\_NONE \} \},}
\DoxyCodeLine{        \{ .bits = 10, .mcs = EGPRS\_MCS2, .p = \{ EGPRS\_CPS\_P2, EGPRS\_CPS\_NONE \} \},}
\DoxyCodeLine{        \{ .bits = 11, .mcs = EGPRS\_MCS1, .p = \{ EGPRS\_CPS\_P1, EGPRS\_CPS\_NONE \} \},}
\DoxyCodeLine{        \{ .bits = 12, .mcs = EGPRS\_MCS1, .p = \{ EGPRS\_CPS\_P2, EGPRS\_CPS\_NONE \} \},}
\DoxyCodeLine{        \{ .bits = 13, .mcs = EGPRS\_MCS2, .p = \{ EGPRS\_CPS\_P1, EGPRS\_CPS\_NONE \} \},}
\DoxyCodeLine{        \{ .bits = 14, .mcs = EGPRS\_MCS2, .p = \{ EGPRS\_CPS\_P2, EGPRS\_CPS\_NONE \} \},}
\DoxyCodeLine{        \{ .bits = 15, .mcs = EGPRS\_MCS0, .p = \{ EGPRS\_CPS\_NONE, EGPRS\_CPS\_NONE \} \},}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ egprs\+\_\+get\+\_\+cps()}.

\mbox{\label{gprs__rlc_8c_a2568894b71f6a618df6d91ba2311be15}} 
\index{gprs\_rlc.c@{gprs\_rlc.c}!gprs\_cs\_desc@{gprs\_cs\_desc}}
\index{gprs\_cs\_desc@{gprs\_cs\_desc}!gprs\_rlc.c@{gprs\_rlc.c}}
\doxysubsubsection{gprs\_cs\_desc}
{\footnotesize\ttfamily const struct \textbf{ gprs\+\_\+cs\+\_\+desc} \textbf{ gprs\+\_\+cs\+\_\+desc}[\textbf{ \+\_\+\+NUM\+\_\+\+OSMO\+\_\+\+GPRS\+\_\+\+CS}]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        [OSMO\_GPRS\_CS1]            = \{ \{23, 0\},    \{23, 0\} \},}
\DoxyCodeLine{        [OSMO\_GPRS\_CS2]            = \{ \{33, 7\},    \{33, 7\} \},}
\DoxyCodeLine{        [OSMO\_GPRS\_CS3]            = \{ \{39, 3\},    \{39, 3\} \},}
\DoxyCodeLine{        [OSMO\_GPRS\_CS4]            = \{ \{53, 7\},    \{53, 7\} \},}
\DoxyCodeLine{}
\DoxyCodeLine{        [OSMO\_GPRS\_MCS1]  = \{ \{26, 1\},    \{26, 1\} \},}
\DoxyCodeLine{        [OSMO\_GPRS\_MCS2]  = \{ \{32, 1\},    \{32, 1\} \},}
\DoxyCodeLine{        [OSMO\_GPRS\_MCS3]  = \{ \{41, 1\},    \{41, 1\} \},}
\DoxyCodeLine{        [OSMO\_GPRS\_MCS4]  = \{ \{48, 1\},    \{48, 1\} \},}
\DoxyCodeLine{}
\DoxyCodeLine{        [OSMO\_GPRS\_MCS5]  = \{ \{60, 7\},    \{59, 6\} \},}
\DoxyCodeLine{        [OSMO\_GPRS\_MCS6]  = \{ \{78, 7\},    \{77, 6\} \},}
\DoxyCodeLine{        [OSMO\_GPRS\_MCS7]  = \{ \{118, 2\},   \{117, 4\} \},}
\DoxyCodeLine{        [OSMO\_GPRS\_MCS8]  = \{ \{142, 2\},   \{141, 4\} \},}
\DoxyCodeLine{        [OSMO\_GPRS\_MCS9]  = \{ \{154, 2\},   \{153, 4\} \},}
\DoxyCodeLine{\}}

\end{DoxyCode}
