\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 }} \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 .}} \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}