\doxysection{gsm23236.\+h}
\label{gsm23236_8h_source}\index{include/osmocom/gsm/gsm23236.h@{include/osmocom/gsm/gsm23236.h}}
\textbf{ Go to the documentation of this file.}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 }
\DoxyCodeLine{5 \textcolor{preprocessor}{\#pragma once}}
\DoxyCodeLine{6 }
\DoxyCodeLine{7 \textcolor{preprocessor}{\#include <stdint.h>}}
\DoxyCodeLine{8 \textcolor{preprocessor}{\#include <stdbool.h>}}
\DoxyCodeLine{9 }
\DoxyCodeLine{10 \textcolor{preprocessor}{\#include <osmocom/core/linuxlist.h>}}
\DoxyCodeLine{11 }
\DoxyCodeLine{12 \textcolor{preprocessor}{\#define OSMO\_NRI\_BITLEN\_MIN 1}}
\DoxyCodeLine{13 \textcolor{preprocessor}{\#define OSMO\_NRI\_BITLEN\_MAX 15}}
\DoxyCodeLine{14 \textcolor{preprocessor}{\#define OSMO\_NRI\_BITLEN\_DEFAULT 10}}
\DoxyCodeLine{15 }
\DoxyCodeLine{19 \textcolor{keyword}{struct }osmo\_nri\_range \{}
\DoxyCodeLine{20         \textcolor{keyword}{struct }llist\_head entry;}
\DoxyCodeLine{21 }
\DoxyCodeLine{23         int16\_t first;}
\DoxyCodeLine{25         int16\_t last;}
\DoxyCodeLine{26 \};}
\DoxyCodeLine{27 }
\DoxyCodeLine{35 \textcolor{keyword}{struct }osmo\_nri\_ranges \{}
\DoxyCodeLine{36         \textcolor{comment}{/* List of struct osmo\_nri\_range entries, talloc allocated from the parent struct osmo\_nri\_ranges. */}}
\DoxyCodeLine{37         \textcolor{keyword}{struct }llist\_head entries;}
\DoxyCodeLine{38 \};}
\DoxyCodeLine{39 }
\DoxyCodeLine{40 \textcolor{keywordtype}{int} osmo\_nri\_v\_validate(int16\_t nri\_v, uint8\_t nri\_bitlen);}
\DoxyCodeLine{41 \textcolor{keywordtype}{bool} osmo\_nri\_v\_matches\_ranges(int16\_t nri\_v, \textcolor{keyword}{const} \textcolor{keyword}{struct} osmo\_nri\_ranges *nri\_ranges);}
\DoxyCodeLine{42 \textcolor{keywordtype}{int} osmo\_nri\_v\_limit\_by\_ranges(int16\_t *nri\_v, \textcolor{keyword}{const} \textcolor{keyword}{struct} osmo\_nri\_ranges *nri\_ranges, uint32\_t nri\_bitlen);}
\DoxyCodeLine{43 }
\DoxyCodeLine{44 \textcolor{keywordtype}{int} osmo\_tmsi\_nri\_v\_get(int16\_t *nri\_v, uint32\_t tmsi, uint8\_t nri\_bitlen);}
\DoxyCodeLine{45 \textcolor{keywordtype}{int} osmo\_tmsi\_nri\_v\_set(uint32\_t *tmsi, int16\_t nri\_v, uint8\_t nri\_bitlen);}
\DoxyCodeLine{46 \textcolor{keywordtype}{int} osmo\_tmsi\_nri\_v\_limit\_by\_ranges(uint32\_t *tmsi, \textcolor{keyword}{const} \textcolor{keyword}{struct} osmo\_nri\_ranges *nri\_ranges, uint8\_t nri\_bitlen);}
\DoxyCodeLine{47 }
\DoxyCodeLine{48 \textcolor{keywordtype}{int} osmo\_nri\_range\_validate(\textcolor{keyword}{const} \textcolor{keyword}{struct} osmo\_nri\_range *range, uint8\_t nri\_bitlen);}
\DoxyCodeLine{49 \textcolor{keywordtype}{bool} osmo\_nri\_range\_overlaps\_ranges(\textcolor{keyword}{const} \textcolor{keyword}{struct} osmo\_nri\_range *range, \textcolor{keyword}{const} \textcolor{keyword}{struct} osmo\_nri\_ranges *nri\_ranges);}
\DoxyCodeLine{50 }
\DoxyCodeLine{51 \textcolor{keyword}{struct }osmo\_nri\_ranges *osmo\_nri\_ranges\_alloc(\textcolor{keywordtype}{void} *ctx);}
\DoxyCodeLine{52 \textcolor{keywordtype}{void} osmo\_nri\_ranges\_free(\textcolor{keyword}{struct} osmo\_nri\_ranges *nri\_ranges);}
\DoxyCodeLine{53 \textcolor{keywordtype}{int} osmo\_nri\_ranges\_add(\textcolor{keyword}{struct} osmo\_nri\_ranges *nri\_ranges, \textcolor{keyword}{const} \textcolor{keyword}{struct} osmo\_nri\_range *add);}
\DoxyCodeLine{54 \textcolor{keywordtype}{int} osmo\_nri\_ranges\_del(\textcolor{keyword}{struct} osmo\_nri\_ranges *nri\_ranges, \textcolor{keyword}{const} \textcolor{keyword}{struct} osmo\_nri\_range *del);}
\DoxyCodeLine{55 \textcolor{keywordtype}{int} osmo\_nri\_ranges\_vty\_add(\textcolor{keyword}{const} \textcolor{keywordtype}{char} **message, \textcolor{keyword}{struct} osmo\_nri\_range *added\_range,}
\DoxyCodeLine{56                             \textcolor{keyword}{struct} osmo\_nri\_ranges *nri\_ranges, \textcolor{keywordtype}{int} argc, \textcolor{keyword}{const} \textcolor{keywordtype}{char} **argv, uint8\_t nri\_bitlen);}
\DoxyCodeLine{57 \textcolor{keywordtype}{int} osmo\_nri\_ranges\_vty\_del(\textcolor{keyword}{const} \textcolor{keywordtype}{char} **message, \textcolor{keyword}{struct} osmo\_nri\_range *removed\_range,}
\DoxyCodeLine{58                             \textcolor{keyword}{struct} osmo\_nri\_ranges *nri\_ranges, \textcolor{keywordtype}{int} argc, \textcolor{keyword}{const} \textcolor{keywordtype}{char} **argv);}
\DoxyCodeLine{59 \textcolor{keywordtype}{int} osmo\_nri\_ranges\_to\_str\_buf(\textcolor{keywordtype}{char} *buf, \textcolor{keywordtype}{size\_t} buflen, \textcolor{keyword}{const} \textcolor{keyword}{struct} osmo\_nri\_ranges *nri\_ranges);}
\DoxyCodeLine{60 \textcolor{keywordtype}{char} *osmo\_nri\_ranges\_to\_str\_c(\textcolor{keywordtype}{void} *ctx, \textcolor{keyword}{const} \textcolor{keyword}{struct} osmo\_nri\_ranges *nri\_ranges);}

\end{DoxyCode}
