\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 <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\_PUNCT\_H\_\_}}
\DoxyCodeLine{22 \textcolor{preprocessor}{\#define \_\_OSMO\_GMR1\_L1\_PUNCT\_H\_\_}}
\DoxyCodeLine{23 }
\DoxyCodeLine{33 \textcolor{preprocessor}{\#include <stdint.h>}}
\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}
