\doxysection{src/l1/punct.c File Reference} \label{punct_8c}\index{src/l1/punct.c@{src/l1/punct.c}} Osmocom GMR-\/1 puncturing implementation. {\ttfamily \#include $<$osmocom/core/conv.\+h$>$}\newline {\ttfamily \#include $<$osmocom/gmr1/l1/punct.\+h$>$}\newline {\ttfamily \#include $<$errno.\+h$>$}\newline {\ttfamily \#include $<$stdlib.\+h$>$}\newline \doxysubsection*{Functions} \begin{DoxyCompactItemize} \item int \textbf{ gmr1\+\_\+puncturer\+\_\+generate} (struct \textbf{ osmo\+\_\+conv\+\_\+code} $\ast$code, const struct \textbf{ gmr1\+\_\+puncturer} $\ast$punct\+\_\+pre, const struct \textbf{ gmr1\+\_\+puncturer} $\ast$punct\+\_\+main, const struct \textbf{ gmr1\+\_\+puncturer} $\ast$punct\+\_\+post, int repeat) \begin{DoxyCompactList}\small\item\em Generate convolutional code puncturing array for a \textbf{ osmo\+\_\+conv\+\_\+code}. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsection*{Variables} \begin{DoxyCompactItemize} \item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k5\+\_\+12\+\_\+\+P23} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(2;3) puncturing code for the K=5 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k5\+\_\+12\+\_\+\+P25} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(2;5) puncturing code for the K=5 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k5\+\_\+12\+\_\+\+Ps25} \begin{DoxyCompactList}\small\item\em GMR-\/1 Ps(2;5) puncturing code for the K=5 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k5\+\_\+12\+\_\+\+P311} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(3;11) puncturing code for the K=5 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k5\+\_\+12\+\_\+\+P412} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(4;12) puncturing code for the K=5 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k5\+\_\+12\+\_\+\+Ps412} \begin{DoxyCompactList}\small\item\em GMR-\/1 Ps(4;12) puncturing code for the K=5 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k5\+\_\+12\+\_\+\+P12} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(1;2) puncturing code for the K=5 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k5\+\_\+12\+\_\+\+Ps12} \begin{DoxyCompactList}\small\item\em GMR-\/1 Ps(1;2) puncturing code for the K=5 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k5\+\_\+12\+\_\+A} \begin{DoxyCompactList}\small\item\em GMR-\/1 A puncturing code for the K=5 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k5\+\_\+12\+\_\+B} \begin{DoxyCompactList}\small\item\em GMR-\/1 B puncturing code for the K=5 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k5\+\_\+12\+\_\+C} \begin{DoxyCompactList}\small\item\em GMR-\/1 C puncturing code for the K=5 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k5\+\_\+12\+\_\+D} \begin{DoxyCompactList}\small\item\em GMR-\/1 D puncturing code for the K=5 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k5\+\_\+12\+\_\+E} \begin{DoxyCompactList}\small\item\em GMR-\/1 E puncturing code for the K=5 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k5\+\_\+12\+\_\+\+P38} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(3;8) puncturing code for the K=5 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k5\+\_\+12\+\_\+\+P26} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(2;6) puncturing code for the K=5 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k5\+\_\+12\+\_\+\+P37} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(3;7) puncturing code for the K=5 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k5\+\_\+13\+\_\+\+P16} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(1;6) puncturing code for the K=5 rate 1/3 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k5\+\_\+13\+\_\+\+P25} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(2;5) puncturing code for the K=5 rate 1/3 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k5\+\_\+13\+\_\+\+P15} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(1;5) puncturing code for the K=5 rate 1/3 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k5\+\_\+13\+\_\+\+Ps15} \begin{DoxyCompactList}\small\item\em GMR-\/1 Ps(1;5) puncturing code for the K=5 rate 1/3 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k5\+\_\+13\+\_\+\+P78} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(7;8) puncturing code for the K=5 rate 1/3 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k5\+\_\+15\+\_\+\+P23} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(2;3) puncturing code for the K=5 rate 1/5 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k5\+\_\+15\+\_\+\+P53} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(5;3) puncturing code for the K=5 rate 1/5 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k5\+\_\+15\+\_\+\+Ps53} \begin{DoxyCompactList}\small\item\em GMR-\/1 Ps(5;3) puncturing code for the K=5 rate 1/5 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k7\+\_\+12\+\_\+\+P23} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(2;3) puncturing code for the K=7 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k7\+\_\+12\+\_\+\+P410} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(4;10) puncturing code for the K=7 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k7\+\_\+12\+\_\+\+P512} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(5;12) puncturing code for the K=7 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k7\+\_\+12\+\_\+\+P116} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(1;16) puncturing code for the K=7 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} {\bfseries gmr1\+\_\+punct\+\_\+k7\+\_\+12\+\_\+\+P148} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(1;48) puncturing code for the K=7 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} {\bfseries gmr1\+\_\+punct\+\_\+k7\+\_\+12\+\_\+\+P184} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(1;84) puncturing code for the K=7 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} {\bfseries gmr1\+\_\+punct\+\_\+k7\+\_\+12\+\_\+\+P1152} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(1;152) puncturing code for the K=7 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k7\+\_\+12\+\_\+\+P45} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(4;5) puncturing code for the K=7 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k7\+\_\+12\+\_\+\+P245} \begin{DoxyCompactList}\small\item\em GMR-\/1 P2(4;5) puncturing code for the K=7 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k9\+\_\+12\+\_\+\+P13} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(1;3) puncturing code for the K=9 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k9\+\_\+12\+\_\+\+P47} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(4;7) puncturing code for the K=9 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k9\+\_\+12\+\_\+\+P34} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(3;4) puncturing code for the K=9 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k9\+\_\+12\+\_\+\+P17} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(1;7) puncturing code for the K=9 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k9\+\_\+12\+\_\+\+P19} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(1;9) puncturing code for the K=9 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k9\+\_\+12\+\_\+\+P26} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(2;6) puncturing code for the K=9 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k9\+\_\+12\+\_\+\+P110} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(1;10) puncturing code for the K=9 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k9\+\_\+12\+\_\+\+P14} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(1;4) puncturing code for the K=9 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k9\+\_\+12\+\_\+\+P45} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(4;5) puncturing code for the K=9 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k9\+\_\+12\+\_\+\+P234} \begin{DoxyCompactList}\small\item\em GMR-\/1 P2(3;4) puncturing code for the K=9 rate 1/2 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k6\+\_\+14\+\_\+\+P45} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(4;5) puncturing code for the K=6 rate 1/4 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k9\+\_\+14\+\_\+\+P148} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(14;8) puncturing code for the K=9 rate 1/4 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k9\+\_\+14\+\_\+\+P65} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(6;5) puncturing code for the K=9 rate 1/4 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k9\+\_\+13\+\_\+\+P12} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(1;2) puncturing code for the K=9 rate 1/3 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k9\+\_\+13\+\_\+\+P1213} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(12;13) puncturing code for the K=9 rate 1/3 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k9\+\_\+13\+\_\+\+P44} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(4;4) puncturing code for the K=9 rate 1/3 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k9\+\_\+13\+\_\+\+P33} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(3;3) puncturing code for the K=9 rate 1/3 conv coder. \end{DoxyCompactList}\item const struct \textbf{ gmr1\+\_\+puncturer} \textbf{ gmr1\+\_\+punct\+\_\+k9\+\_\+13\+\_\+\+P65} \begin{DoxyCompactList}\small\item\em GMR-\/1 P(6;5) puncturing code for the K=9 rate 1/3 conv coder. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsection{Detailed Description} Osmocom GMR-\/1 puncturing implementation.