\doxysection{interleave.\+h}
\label{interleave_8h_source}\index{include/osmocom/gmr1/l1/interleave.h@{include/osmocom/gmr1/l1/interleave.h}}
\textbf{ Go to the documentation of this file.}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* GMR-\/1 interleaving */}}
\DoxyCodeLine{2 \textcolor{comment}{/* See GMR-\/1 05.003 (ETSI TS 101 376-\/5-\/3 V1.2.1) -\/ Section 4.8 */}}
\DoxyCodeLine{3 }
\DoxyCodeLine{4 \textcolor{comment}{/* (C) 2011-\/2019 by Sylvain Munaut <tnt@246tNt.com>}}
\DoxyCodeLine{5 \textcolor{comment}{ * All Rights Reserved}}
\DoxyCodeLine{6 \textcolor{comment}{ *}}
\DoxyCodeLine{7 \textcolor{comment}{ * This program is free software; you can redistribute it and/or modify}}
\DoxyCodeLine{8 \textcolor{comment}{ * it under the terms of the GNU Affero General Public License as published by}}
\DoxyCodeLine{9 \textcolor{comment}{ * the Free Software Foundation; either version 3 of the License, or}}
\DoxyCodeLine{10 \textcolor{comment}{ * (at your option) any later version.}}
\DoxyCodeLine{11 \textcolor{comment}{ *}}
\DoxyCodeLine{12 \textcolor{comment}{ * This program is distributed in the hope that it will be useful,}}
\DoxyCodeLine{13 \textcolor{comment}{ * but WITHOUT ANY WARRANTY; without even the implied warranty of}}
\DoxyCodeLine{14 \textcolor{comment}{ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the}}
\DoxyCodeLine{15 \textcolor{comment}{ * GNU Affero General Public License for more details.}}
\DoxyCodeLine{16 \textcolor{comment}{ *}}
\DoxyCodeLine{17 \textcolor{comment}{ * You should have received a copy of the GNU Affero General Public License}}
\DoxyCodeLine{18 \textcolor{comment}{ * along with this program.  If not, see <http://www.gnu.org/licenses/>.}}
\DoxyCodeLine{19 \textcolor{comment}{ */}}
\DoxyCodeLine{20 }
\DoxyCodeLine{21 \textcolor{preprocessor}{\#ifndef \_\_OSMO\_GMR1\_L1\_INTERLEAVE\_H\_\_}}
\DoxyCodeLine{22 \textcolor{preprocessor}{\#define \_\_OSMO\_GMR1\_L1\_INTERLEAVE\_H\_\_}}
\DoxyCodeLine{23 }
\DoxyCodeLine{34 \textcolor{comment}{/* Intra burst interleaving */}}
\DoxyCodeLine{35 }
\DoxyCodeLine{36 \textcolor{keywordtype}{void} gmr1\_interleave\_intra(\textcolor{keywordtype}{void} *out, \textcolor{keyword}{const} \textcolor{keywordtype}{void} *in, \textcolor{keywordtype}{int} N);}
\DoxyCodeLine{37 \textcolor{keywordtype}{void} gmr1\_deinterleave\_intra(\textcolor{keywordtype}{void} *out, \textcolor{keyword}{const} \textcolor{keywordtype}{void} *in, \textcolor{keywordtype}{int} N);}
\DoxyCodeLine{38 }
\DoxyCodeLine{39 }
\DoxyCodeLine{40 \textcolor{comment}{/* Inter burst interleaving */}}
\DoxyCodeLine{41 }
\DoxyCodeLine{43 \textcolor{keyword}{struct }gmr1\_interleaver}
\DoxyCodeLine{44 \{}
\DoxyCodeLine{45         \textcolor{keywordtype}{int} N;                 }
\DoxyCodeLine{46         \textcolor{keywordtype}{int} K;                 }
\DoxyCodeLine{47         \textcolor{keywordtype}{int} n;                 }
\DoxyCodeLine{48         uint8\_t *bits\_cpp;      }
\DoxyCodeLine{49 \};}
\DoxyCodeLine{50 }
\DoxyCodeLine{51 \textcolor{keywordtype}{int}  gmr1\_interleaver\_init(\textcolor{keyword}{struct} gmr1\_interleaver *il, \textcolor{keywordtype}{int} N, \textcolor{keywordtype}{int} K);}
\DoxyCodeLine{52 \textcolor{keywordtype}{void} gmr1\_interleaver\_fini(\textcolor{keyword}{struct} gmr1\_interleaver *il);}
\DoxyCodeLine{53 \textcolor{keywordtype}{void} gmr1\_interleave\_inter(\textcolor{keyword}{struct} gmr1\_interleaver *il,}
\DoxyCodeLine{54                            \textcolor{keywordtype}{void} *bits\_epp, \textcolor{keywordtype}{void} *bits\_ep);}
\DoxyCodeLine{55 \textcolor{keywordtype}{void} gmr1\_deinterleave\_inter(\textcolor{keyword}{struct} gmr1\_interleaver *il,}
\DoxyCodeLine{56                              \textcolor{keywordtype}{void} *bits\_ep, \textcolor{keywordtype}{void} *bits\_epp);}
\DoxyCodeLine{57 }
\DoxyCodeLine{58 }
\DoxyCodeLine{61 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_\_OSMO\_GMR1\_L1\_INTERLEAVE\_H\_\_ */}\textcolor{preprocessor}{}}

\end{DoxyCode}
