\doxysection{gsm\+\_\+04\+\_\+12.\+h}
\label{gsm__04__12_8h_source}\index{include/osmocom/gsm/protocol/gsm\_04\_12.h@{include/osmocom/gsm/protocol/gsm\_04\_12.h}}
\textbf{ Go to the documentation of this file.}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 }
\DoxyCodeLine{4 \textcolor{preprocessor}{\#pragma once}}
\DoxyCodeLine{5 }
\DoxyCodeLine{6 \textcolor{preprocessor}{\#include <stdint.h>}}
\DoxyCodeLine{7 \textcolor{preprocessor}{\#include <osmocom/core/endian.h>}}
\DoxyCodeLine{8 }
\DoxyCodeLine{9 \textcolor{preprocessor}{\#define GSM412\_MSG\_LEN          88      }\textcolor{comment}{/* TS 04.12 Section 3.1 */}\textcolor{preprocessor}{}}
\DoxyCodeLine{10 \textcolor{preprocessor}{\#define GSM412\_BLOCK\_LEN        22      }\textcolor{comment}{/* TS 04.12 Section 3.1 */}\textcolor{preprocessor}{}}
\DoxyCodeLine{11 }
\DoxyCodeLine{12 \textcolor{preprocessor}{\#define GSM412\_SEQ\_FST\_BLOCK            0x0}}
\DoxyCodeLine{13 \textcolor{preprocessor}{\#define GSM412\_SEQ\_SND\_BLOCK            0x1}}
\DoxyCodeLine{14 \textcolor{preprocessor}{\#define GSM412\_SEQ\_TRD\_BLOCK            0x2}}
\DoxyCodeLine{15 \textcolor{preprocessor}{\#define GSM412\_SEQ\_FTH\_BLOCK            0x3}}
\DoxyCodeLine{16 \textcolor{preprocessor}{\#define GSM412\_SEQ\_FST\_SCHED\_BLOCK      0x8}}
\DoxyCodeLine{17 \textcolor{preprocessor}{\#define GSM412\_SEQ\_NULL\_MSG             0xf}}
\DoxyCodeLine{18 }
\DoxyCodeLine{19 \textcolor{keyword}{struct }gsm412\_block\_type \{}
\DoxyCodeLine{20 \textcolor{preprocessor}{\#if OSMO\_IS\_LITTLE\_ENDIAN}}
\DoxyCodeLine{21         uint8\_t seq\_nr : 4,}
\DoxyCodeLine{22                 lb : 1,}
\DoxyCodeLine{23                 lpd : 2,}
\DoxyCodeLine{24                 spare : 1;}
\DoxyCodeLine{25 \textcolor{preprocessor}{\#elif OSMO\_IS\_BIG\_ENDIAN}}
\DoxyCodeLine{26 \textcolor{comment}{/* auto-\/generated from the little endian part above (libosmocore/contrib/struct\_endianness.py) */}}
\DoxyCodeLine{27         uint8\_t spare:1, lpd:2, lb:1, seq\_nr:4;}
\DoxyCodeLine{28 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{29 \} \_\_attribute\_\_((packed));}
\DoxyCodeLine{30 }
\DoxyCodeLine{31 \textcolor{keyword}{struct }gsm412\_sched\_msg \{}
\DoxyCodeLine{32 \textcolor{preprocessor}{\#if OSMO\_IS\_LITTLE\_ENDIAN}}
\DoxyCodeLine{33         uint8\_t beg\_slot\_nr : 6,}
\DoxyCodeLine{34                 type : 2;}
\DoxyCodeLine{35         uint8\_t end\_slot\_nr : 6,}
\DoxyCodeLine{36                 spare1 : 1, spare2: 1;}
\DoxyCodeLine{37         uint8\_t cbsms\_msg\_map[6];}
\DoxyCodeLine{38         uint8\_t data[0];}
\DoxyCodeLine{39 \textcolor{preprocessor}{\#elif OSMO\_IS\_BIG\_ENDIAN}}
\DoxyCodeLine{40 \textcolor{comment}{/* auto-\/generated from the little endian part above (libosmocore/contrib/struct\_endianness.py) */}}
\DoxyCodeLine{41         uint8\_t type:2, beg\_slot\_nr:6;}
\DoxyCodeLine{42         uint8\_t spare2:1, spare1:1, end\_slot\_nr:6;}
\DoxyCodeLine{43         uint8\_t cbsms\_msg\_map[6];}
\DoxyCodeLine{44         uint8\_t data[0];}
\DoxyCodeLine{45 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{46 \} \_\_attribute\_\_((packed));}

\end{DoxyCode}
