\doxysection{Cyclic Redundancy Check} \label{group__crc}\index{Cyclic Redundancy Check@{Cyclic Redundancy Check}} \doxysubsection*{Files} \begin{DoxyCompactItemize} \item file \textbf{ crc.\+h} \begin{DoxyCompactList}\small\item\em Osmocom GMR-\/1 CRC header. \end{DoxyCompactList}\item file \textbf{ crc.\+c} \begin{DoxyCompactList}\small\item\em Osmocom GMR-\/1 CRC implementation. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsection*{Variables} \begin{DoxyCompactItemize} \item \mbox{\label{group__crc_ga475488b3214308419d2d8ced50df5257}} const struct osmo\+\_\+crc8gen\+\_\+code {\bfseries gmr1\+\_\+crc8} \begin{DoxyCompactList}\small\item\em GMR-\/1 CRC8 g8(\+D) = D8 + D7 + D4 + D3 + D + 1. \end{DoxyCompactList}\item \mbox{\label{group__crc_ga39976cbbb95bf2ee17510e23e66e9662}} const struct osmo\+\_\+crc16gen\+\_\+code {\bfseries gmr1\+\_\+crc12} \begin{DoxyCompactList}\small\item\em GMR-\/1 CRC12 g12(\+D) = D12 + D11 + D3 + D2 + D + 1. \end{DoxyCompactList}\item \mbox{\label{group__crc_ga4c203dc885ad2c23dbc5e26457d2b52e}} const struct osmo\+\_\+crc16gen\+\_\+code {\bfseries gmr1\+\_\+crc16} \begin{DoxyCompactList}\small\item\em GMR-\/1 CRC16 g16(\+D) = D16 + D12 + D5 + 1. \end{DoxyCompactList}\item const struct osmo\+\_\+crc8gen\+\_\+code \textbf{ gmr1\+\_\+crc8} \begin{DoxyCompactList}\small\item\em GMR-\/1 CRC8 g8(\+D) = D8 + D7 + D4 + D3 + D + 1. \end{DoxyCompactList}\item const struct osmo\+\_\+crc16gen\+\_\+code \textbf{ gmr1\+\_\+crc12} \begin{DoxyCompactList}\small\item\em GMR-\/1 CRC12 g12(\+D) = D12 + D11 + D3 + D2 + D + 1. \end{DoxyCompactList}\item const struct osmo\+\_\+crc16gen\+\_\+code \textbf{ gmr1\+\_\+crc16} \begin{DoxyCompactList}\small\item\em GMR-\/1 CRC16 g16(\+D) = D16 + D12 + D5 + 1. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsection{Detailed Description} \doxysubsection{Variable Documentation} \mbox{\label{group__crc_ga39976cbbb95bf2ee17510e23e66e9662}} \index{Cyclic Redundancy Check@{Cyclic Redundancy Check}!gmr1\_crc12@{gmr1\_crc12}} \index{gmr1\_crc12@{gmr1\_crc12}!Cyclic Redundancy Check@{Cyclic Redundancy Check}} \doxysubsubsection{gmr1\_crc12} {\footnotesize\ttfamily const struct osmo\+\_\+crc16gen\+\_\+code gmr1\+\_\+crc12} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ .bits = 12,} \DoxyCodeLine{ .poly = 0x80f,} \DoxyCodeLine{ .init = 0x0000,} \DoxyCodeLine{ .remainder = 0x0000,} \DoxyCodeLine{\}} \end{DoxyCode} GMR-\/1 CRC12 g12(\+D) = D12 + D11 + D3 + D2 + D + 1. Referenced by \textbf{ gmr1\+\_\+rach\+\_\+encode()}. \mbox{\label{group__crc_ga4c203dc885ad2c23dbc5e26457d2b52e}} \index{Cyclic Redundancy Check@{Cyclic Redundancy Check}!gmr1\_crc16@{gmr1\_crc16}} \index{gmr1\_crc16@{gmr1\_crc16}!Cyclic Redundancy Check@{Cyclic Redundancy Check}} \doxysubsubsection{gmr1\_crc16} {\footnotesize\ttfamily const struct osmo\+\_\+crc16gen\+\_\+code gmr1\+\_\+crc16} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ .bits = 16,} \DoxyCodeLine{ .poly = 0x1021,} \DoxyCodeLine{ .init = 0x0000,} \DoxyCodeLine{ .remainder = 0x0000,} \DoxyCodeLine{\}} \end{DoxyCode} GMR-\/1 CRC16 g16(\+D) = D16 + D12 + D5 + 1. Referenced by \textbf{ gmr1\+\_\+bcch\+\_\+encode()}, \textbf{ gmr1\+\_\+ccch\+\_\+encode()}, \textbf{ gmr1\+\_\+facch3\+\_\+encode()}, \textbf{ gmr1\+\_\+facch9\+\_\+encode()}, and \textbf{ gmr1\+\_\+xch\+\_\+dc12\+\_\+encode()}. \mbox{\label{group__crc_ga475488b3214308419d2d8ced50df5257}} \index{Cyclic Redundancy Check@{Cyclic Redundancy Check}!gmr1\_crc8@{gmr1\_crc8}} \index{gmr1\_crc8@{gmr1\_crc8}!Cyclic Redundancy Check@{Cyclic Redundancy Check}} \doxysubsubsection{gmr1\_crc8} {\footnotesize\ttfamily const struct osmo\+\_\+crc8gen\+\_\+code gmr1\+\_\+crc8} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ .bits = 8,} \DoxyCodeLine{ .poly = 0x9b,} \DoxyCodeLine{ .init = 0x00,} \DoxyCodeLine{ .remainder = 0x00,} \DoxyCodeLine{\}} \end{DoxyCode} GMR-\/1 CRC8 g8(\+D) = D8 + D7 + D4 + D3 + D + 1. Referenced by \textbf{ gmr1\+\_\+rach\+\_\+encode()}.