\doxysection{gsm\+\_\+04\+\_\+14.\+h}
\label{gsm__04__14_8h_source}\index{include/osmocom/gsm/protocol/gsm\_04\_14.h@{include/osmocom/gsm/protocol/gsm\_04\_14.h}}
\textbf{ Go to the documentation of this file.}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 }
\DoxyCodeLine{3 \textcolor{preprocessor}{\#pragma once}}
\DoxyCodeLine{4 }
\DoxyCodeLine{5 \textcolor{preprocessor}{\#include <stdint.h>}}
\DoxyCodeLine{6 \textcolor{preprocessor}{\#include <osmocom/core/endian.h>}}
\DoxyCodeLine{7 \textcolor{preprocessor}{\#include <osmocom/core/utils.h>}}
\DoxyCodeLine{8 }
\DoxyCodeLine{9 \textcolor{comment}{/* According to 3GPP TS 44.014 / GSM TS 04.14 */}}
\DoxyCodeLine{10 }
\DoxyCodeLine{11 \textcolor{preprocessor}{\#define GSM414\_MT\_CLOSE\_TCH\_LOOP\_CMD    0x00    }\textcolor{comment}{/* 8.1 */}\textcolor{preprocessor}{}}
\DoxyCodeLine{12 \textcolor{keyword}{enum} gsm414\_tch\_loop\_mode \{}
\DoxyCodeLine{13         GSM414\_LOOP\_A      = 0x00,}
\DoxyCodeLine{14         GSM414\_LOOP\_B      = 0x01,}
\DoxyCodeLine{15         GSM414\_LOOP\_C      = 0x02,}
\DoxyCodeLine{16         GSM414\_LOOP\_D      = 0x04,}
\DoxyCodeLine{17         GSM414\_LOOP\_E      = 0x08,}
\DoxyCodeLine{18         GSM414\_LOOP\_F      = 0x0c,}
\DoxyCodeLine{19         GSM414\_LOOP\_I      = 0x1c,}
\DoxyCodeLine{20 \};}
\DoxyCodeLine{21 }
\DoxyCodeLine{22 \textcolor{preprocessor}{\#define GSM414\_MT\_CLOSE\_TCH\_LOOP\_ACK    0x01    }\textcolor{comment}{/* 8.2 */}\textcolor{preprocessor}{}}
\DoxyCodeLine{23 \textcolor{preprocessor}{\#define GSM414\_MT\_OPEN\_LOOP\_CMD         0x06    }\textcolor{comment}{/* 8.3 */}\textcolor{preprocessor}{}}
\DoxyCodeLine{24 \textcolor{preprocessor}{\#define GSM414\_OPEN\_LOOP\_ACK\_IE         0x81}}
\DoxyCodeLine{25 }
\DoxyCodeLine{26 \textcolor{preprocessor}{\#define GSM414\_MT\_CLOSE\_MSLOT\_LOOP\_CMD  0x20    }\textcolor{comment}{/* 8.4 */}\textcolor{preprocessor}{}}
\DoxyCodeLine{27 \textcolor{keyword}{struct }gsm414\_close\_mslot\_loop\_cmd \{}
\DoxyCodeLine{28 \textcolor{preprocessor}{\#if OSMO\_IS\_LITTLE\_ENDIAN}}
\DoxyCodeLine{29         uint8\_t chc:2,}
\DoxyCodeLine{30                 loop\_mech:3,}
\DoxyCodeLine{31                 tn:3;}
\DoxyCodeLine{32 \textcolor{preprocessor}{\#elif OSMO\_IS\_BIG\_ENDIAN}}
\DoxyCodeLine{33 \textcolor{comment}{/* auto-\/generated from the little endian part above (libosmocore/contrib/struct\_endianness.py) */}}
\DoxyCodeLine{34         uint8\_t tn:3, loop\_mech:3, chc:2;}
\DoxyCodeLine{35 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{36 \} \_\_attribute\_\_((packed));}
\DoxyCodeLine{37 }
\DoxyCodeLine{38 \textcolor{preprocessor}{\#define GSM414\_MT\_CLOSE\_MSLOT\_LOOP\_ACK  0x21    }\textcolor{comment}{/* 8.5 */}\textcolor{preprocessor}{}}
\DoxyCodeLine{39 \textcolor{keyword}{struct }gsm414\_close\_mslot\_loop\_ack \{}
\DoxyCodeLine{40 \textcolor{preprocessor}{\#if OSMO\_IS\_LITTLE\_ENDIAN}}
\DoxyCodeLine{41         uint8\_t err\_ind:1,}
\DoxyCodeLine{42                 loop\_mech:3,}
\DoxyCodeLine{43                 chc:2,}
\DoxyCodeLine{44                 spare:2;}
\DoxyCodeLine{45 \textcolor{preprocessor}{\#elif OSMO\_IS\_BIG\_ENDIAN}}
\DoxyCodeLine{46 \textcolor{comment}{/* auto-\/generated from the little endian part above (libosmocore/contrib/struct\_endianness.py) */}}
\DoxyCodeLine{47         uint8\_t spare:2, chc:2, loop\_mech:3, err\_ind:1;}
\DoxyCodeLine{48 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{49 \} \_\_attribute\_\_((packed));}
\DoxyCodeLine{50 }
\DoxyCodeLine{51 \textcolor{preprocessor}{\#define GSM414\_MT\_OPEN\_MSLOT\_LOOP\_CMD   0x22    }\textcolor{comment}{/* 8.6 */}\textcolor{preprocessor}{}}
\DoxyCodeLine{52 \textcolor{preprocessor}{\#define GSM414\_MT\_OPEN\_MSLOT\_LOOP\_ACK   0x23    }\textcolor{comment}{/* 8.7 */}\textcolor{preprocessor}{}}
\DoxyCodeLine{53 \textcolor{preprocessor}{\#define GSM414\_MT\_ACT\_EMMI\_CMD          0x0c    }\textcolor{comment}{/* 8.8 */}\textcolor{preprocessor}{}}
\DoxyCodeLine{54 \textcolor{preprocessor}{\#define GSM414\_MT\_ACT\_EMMI\_ACK          0x0d    }\textcolor{comment}{/* 8.9 */}\textcolor{preprocessor}{}}
\DoxyCodeLine{55 \textcolor{preprocessor}{\#define GSM414\_MT\_DEACT\_EMMI\_CMD        0x80    }\textcolor{comment}{/* 8.10 */}\textcolor{preprocessor}{}}
\DoxyCodeLine{56 \textcolor{preprocessor}{\#define GSM414\_MT\_TEST\_INTERFACE        0x84    }\textcolor{comment}{/* 8.11 */}\textcolor{preprocessor}{}}
\DoxyCodeLine{57 }
\DoxyCodeLine{58 \textcolor{comment}{/* 8.12 Timers (milli-\/seconds) */}}
\DoxyCodeLine{59 \textcolor{preprocessor}{\#define GSM414\_TT01\_MS  2500}}
\DoxyCodeLine{60 \textcolor{preprocessor}{\#define GSM414\_TT02\_MS  2500}}
\DoxyCodeLine{61 \textcolor{preprocessor}{\#define GSM414\_TT03\_MS  50}}
\DoxyCodeLine{62 }
\DoxyCodeLine{63 \textcolor{preprocessor}{\#define GSM414\_MT\_GPRS\_TEST\_MODE\_CMD    0x24    }\textcolor{comment}{/* 8.13 */}\textcolor{preprocessor}{}}
\DoxyCodeLine{64 \textcolor{keyword}{struct }gsm414\_gprs\_test\_mode\_cmd \{}
\DoxyCodeLine{65 \textcolor{preprocessor}{\#if OSMO\_IS\_LITTLE\_ENDIAN}}
\DoxyCodeLine{66         uint16\_t d:12,}
\DoxyCodeLine{67                 spare:3,}
\DoxyCodeLine{68                 l:1;}
\DoxyCodeLine{69         uint8\_t m:1,}
\DoxyCodeLine{70                 dl\_tx\_offset:3,}
\DoxyCodeLine{71                 \_spare:4;}
\DoxyCodeLine{72 \textcolor{preprocessor}{\#elif OSMO\_IS\_BIG\_ENDIAN}}
\DoxyCodeLine{73 \textcolor{comment}{/* auto-\/generated from the little endian part above (libosmocore/contrib/struct\_endianness.py) */}}
\DoxyCodeLine{74         uint16\_t d:12,}
\DoxyCodeLine{75                 spare:3,}
\DoxyCodeLine{76                 l:1;}
\DoxyCodeLine{77         uint8\_t \_spare:4, dl\_tx\_offset:3, m:1;}
\DoxyCodeLine{78 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{79 \} \_\_attribute\_\_((packed));}
\DoxyCodeLine{80 }
\DoxyCodeLine{81 }
\DoxyCodeLine{82 \textcolor{preprocessor}{\#define GSM414\_MT\_EGPRS\_ST\_RB\_LOOP\_CMD  0x25    }\textcolor{comment}{/* 8.14 */}\textcolor{preprocessor}{}}
\DoxyCodeLine{83 \textcolor{keyword}{struct }gsm414\_egprs\_st\_sb\_loop\_cmd \{}
\DoxyCodeLine{84 \textcolor{preprocessor}{\#if OSMO\_IS\_LITTLE\_ENDIAN}}
\DoxyCodeLine{85         uint8\_t \_spare:4,}
\DoxyCodeLine{86                 dl\_tx\_offset:3,}
\DoxyCodeLine{87                 m:1;}
\DoxyCodeLine{88 \textcolor{preprocessor}{\#elif OSMO\_IS\_BIG\_ENDIAN}}
\DoxyCodeLine{89 \textcolor{comment}{/* auto-\/generated from the little endian part above (libosmocore/contrib/struct\_endianness.py) */}}
\DoxyCodeLine{90         uint8\_t m:1, dl\_tx\_offset:3, \_spare:4;}
\DoxyCodeLine{91 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{92 \} \_\_attribute\_\_((packed));}
\DoxyCodeLine{93 }
\DoxyCodeLine{94 \textcolor{preprocessor}{\#define GSM414\_MT\_RESET\_MS\_POS\_STORED   0x26    }\textcolor{comment}{/* 8.15 */}\textcolor{preprocessor}{}}
\DoxyCodeLine{95 \textcolor{preprocessor}{\#define GSM414\_MS\_POS\_TECH\_AGPS         0x00}}
\DoxyCodeLine{96 \textcolor{preprocessor}{\#define GSM414\_MS\_POS\_TECH\_AGNSS        0x01}}
\DoxyCodeLine{97 }
\DoxyCodeLine{98 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }value\_string gsm414\_msgt\_names[];}

\end{DoxyCode}
