\doxysection{punct.\+h} \label{punct_8h_source}\index{include/osmocom/gmr1/l1/punct.h@{include/osmocom/gmr1/l1/punct.h}} \textbf{ Go to the documentation of this file.} \begin{DoxyCode}{0} \DoxyCodeLine{1 \textcolor{comment}{/* GMR-\/1 puncturing */}} \DoxyCodeLine{2 \textcolor{comment}{/* See GMR-\/1 05.003 (ETSI TS 101 376-\/5-\/3 V3.3.1) -\/ Section 4.5 */}} \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\_PUNCT\_H\_\_}} \DoxyCodeLine{22 \textcolor{preprocessor}{\#define \_\_OSMO\_GMR1\_L1\_PUNCT\_H\_\_}} \DoxyCodeLine{23 } \DoxyCodeLine{33 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{34 } \DoxyCodeLine{35 } \DoxyCodeLine{37 \textcolor{keyword}{struct }gmr1\_puncturer \{} \DoxyCodeLine{38 \textcolor{keywordtype}{int} r; } \DoxyCodeLine{39 \textcolor{keywordtype}{int} L; } \DoxyCodeLine{40 \textcolor{keywordtype}{int} N; } \DoxyCodeLine{41 \textcolor{keyword}{const} uint8\_t mask[]; } \DoxyCodeLine{42 \};} \DoxyCodeLine{43 } \DoxyCodeLine{44 } \DoxyCodeLine{45 \textcolor{keyword}{struct }osmo\_conv\_code;} \DoxyCodeLine{46 } \DoxyCodeLine{47 \textcolor{keywordtype}{int} gmr1\_puncturer\_generate(\textcolor{keyword}{struct} osmo\_conv\_code *code,} \DoxyCodeLine{48 \textcolor{keyword}{const} \textcolor{keyword}{struct} gmr1\_puncturer *punct\_pre,} \DoxyCodeLine{49 \textcolor{keyword}{const} \textcolor{keyword}{struct} gmr1\_puncturer *punct\_main,} \DoxyCodeLine{50 \textcolor{keyword}{const} \textcolor{keyword}{struct} gmr1\_puncturer *punct\_post,} \DoxyCodeLine{51 \textcolor{keywordtype}{int} repeat);} \DoxyCodeLine{52 } \DoxyCodeLine{53 } \DoxyCodeLine{54 \textcolor{comment}{/* Various puncturing codes used in GMR-\/1 */}} \DoxyCodeLine{55 } \DoxyCodeLine{56 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k5\_12\_P23;} \DoxyCodeLine{57 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k5\_12\_P25;} \DoxyCodeLine{58 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k5\_12\_Ps25;} \DoxyCodeLine{59 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k5\_12\_P311;} \DoxyCodeLine{60 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k5\_12\_P412;} \DoxyCodeLine{61 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k5\_12\_Ps412;} \DoxyCodeLine{62 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k5\_12\_P12;} \DoxyCodeLine{63 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k5\_12\_Ps12;} \DoxyCodeLine{64 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k5\_12\_A;} \DoxyCodeLine{65 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k5\_12\_B;} \DoxyCodeLine{66 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k5\_12\_C;} \DoxyCodeLine{67 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k5\_12\_D;} \DoxyCodeLine{68 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k5\_12\_E;} \DoxyCodeLine{69 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k5\_12\_P38;} \DoxyCodeLine{70 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k5\_12\_P26;} \DoxyCodeLine{71 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k5\_12\_P37;} \DoxyCodeLine{72 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k5\_13\_P16;} \DoxyCodeLine{73 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k5\_13\_P25;} \DoxyCodeLine{74 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k5\_13\_P15;} \DoxyCodeLine{75 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k5\_13\_Ps15;} \DoxyCodeLine{76 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k5\_13\_P78;} \DoxyCodeLine{77 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k5\_15\_P23;} \DoxyCodeLine{78 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k5\_15\_P53;} \DoxyCodeLine{79 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k5\_15\_Ps53;} \DoxyCodeLine{80 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k7\_12\_P23;} \DoxyCodeLine{81 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k7\_12\_P410;} \DoxyCodeLine{82 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k7\_12\_P512;} \DoxyCodeLine{83 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k7\_12\_P116;} \DoxyCodeLine{84 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k7\_12\_P148;} \DoxyCodeLine{85 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k7\_12\_P184;} \DoxyCodeLine{86 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k7\_12\_P1152;} \DoxyCodeLine{87 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k7\_12\_P45;} \DoxyCodeLine{88 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k7\_12\_P245;} \DoxyCodeLine{89 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k9\_12\_P13;} \DoxyCodeLine{90 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k9\_12\_P47;} \DoxyCodeLine{91 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k9\_12\_P34;} \DoxyCodeLine{92 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k9\_12\_P17;} \DoxyCodeLine{93 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k9\_12\_P19;} \DoxyCodeLine{94 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k9\_12\_P26;} \DoxyCodeLine{95 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k9\_12\_P110;} \DoxyCodeLine{96 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k9\_12\_P14;} \DoxyCodeLine{97 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k9\_12\_P45;} \DoxyCodeLine{98 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k9\_12\_P234;} \DoxyCodeLine{99 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k6\_14\_P45;} \DoxyCodeLine{100 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k9\_14\_P148;} \DoxyCodeLine{101 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k9\_14\_P65;} \DoxyCodeLine{102 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k9\_13\_P12;} \DoxyCodeLine{103 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k9\_13\_P1213;} \DoxyCodeLine{104 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k9\_13\_P44;} \DoxyCodeLine{105 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k9\_13\_P33;} \DoxyCodeLine{106 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }gmr1\_puncturer gmr1\_punct\_k9\_13\_P65;} \DoxyCodeLine{107 } \DoxyCodeLine{108 } \DoxyCodeLine{111 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_\_OSMO\_GMR1\_L1\_PUNCT\_H\_\_ */}\textcolor{preprocessor}{}} \end{DoxyCode}