\doxysection{include/osmocom/gsm/sysinfo.h File Reference}
\label{sysinfo_8h}\index{include/osmocom/gsm/sysinfo.h@{include/osmocom/gsm/sysinfo.h}}
{\ttfamily \#include $<$stdbool.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/defs.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/utils.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gsm/protocol/gsm\+\_\+04\+\_\+08.\+h$>$}\newline
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ osmo\+\_\+earfcn\+\_\+si2q}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ OSMO\+\_\+\+EARFCN\+\_\+\+INVALID}~666
\item 
\#define \textbf{ OSMO\+\_\+\+EARFCN\+\_\+\+MEAS\+\_\+\+INVALID}~0xff
\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef uint8\+\_\+t \textbf{ sysinfo\+\_\+buf\+\_\+t}[\textbf{ GSM\+\_\+\+MACBLOCK\+\_\+\+LEN}]
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \textbf{ osmo\+\_\+sysinfo\+\_\+type} \{ \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+\+NONE}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+1}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+2}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+3}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+4}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+5}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+6}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+7}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+8}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+9}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+10}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+13}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+16}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+17}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+18}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+19}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+20}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+2bis}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+2ter}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+2quater}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+5bis}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+5ter}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+\+EMO}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+\+MEAS\+\_\+\+INFO}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+13alt}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+15}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+2n}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+21}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+22}
, \newline
\textbf{ SYSINFO\+\_\+\+TYPE\+\_\+23}
, \newline
\textbf{ \+\_\+\+MAX\+\_\+\+SYSINFO\+\_\+\+TYPE}
 \}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \textbf{ osmo\+\_\+earfcn\+\_\+add} (struct \textbf{ osmo\+\_\+earfcn\+\_\+si2q} $\ast$e, uint16\+\_\+t \textbf{ arfcn}, uint8\+\_\+t meas\+\_\+bw)
\begin{DoxyCompactList}\small\item\em Add pair of arfcn and measurement bandwith value to earfcn struct. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+earfcn\+\_\+del} (struct \textbf{ osmo\+\_\+earfcn\+\_\+si2q} $\ast$e, uint16\+\_\+t \textbf{ arfcn})
\begin{DoxyCompactList}\small\item\em Delete arfcn (and corresponding measurement bandwith) from earfcn struct. \end{DoxyCompactList}\item 
size\+\_\+t \textbf{ osmo\+\_\+earfcn\+\_\+bit\+\_\+size} (const struct \textbf{ osmo\+\_\+earfcn\+\_\+si2q} $\ast$e) \textbf{ OSMO\+\_\+\+DEPRECATED}(\char`\"{}Use \textbf{ osmo\+\_\+earfcn\+\_\+bit\+\_\+size\+\_\+ext}()instead.\char`\"{})
\begin{DoxyCompactList}\small\item\em Return number of bits necessary to represent earfcn struct as Repeated E-\/\+UTRAN Neighbour Cells IE from 3GPP TS 44.\+018 Table 10.\+5.\+2.\+33b.\+1. \end{DoxyCompactList}\item 
size\+\_\+t \textbf{ osmo\+\_\+earfcn\+\_\+bit\+\_\+size\+\_\+ext} (const struct \textbf{ osmo\+\_\+earfcn\+\_\+si2q} $\ast$e, size\+\_\+t offset)
\begin{DoxyCompactList}\small\item\em Return number of bits necessary to represent earfcn struct as Repeated E-\/\+UTRAN Neighbour Cells IE from 3GPP TS 44.\+018 Table 10.\+5.\+2.\+33b.\+1. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+earfcn\+\_\+init} (struct \textbf{ osmo\+\_\+earfcn\+\_\+si2q} $\ast$e)
\begin{DoxyCompactList}\small\item\em Initialize earfcn struct. \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ osmo\+\_\+sitype2rsl} (enum \textbf{ osmo\+\_\+sysinfo\+\_\+type} si\+\_\+type)
\item 
enum \textbf{ osmo\+\_\+sysinfo\+\_\+type} \textbf{ osmo\+\_\+rsl2sitype} (uint8\+\_\+t rsl\+\_\+si)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
const struct \textbf{ value\+\_\+string} \textbf{ osmo\+\_\+sitype\+\_\+strs} [\textbf{ \+\_\+\+MAX\+\_\+\+SYSINFO\+\_\+\+TYPE}]
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\label{sysinfo_8h_ac357c90bf32b34d342bb86332f792af2}} 
\index{sysinfo.h@{sysinfo.h}!OSMO\_EARFCN\_INVALID@{OSMO\_EARFCN\_INVALID}}
\index{OSMO\_EARFCN\_INVALID@{OSMO\_EARFCN\_INVALID}!sysinfo.h@{sysinfo.h}}
\doxysubsubsection{OSMO\_EARFCN\_INVALID}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+EARFCN\+\_\+\+INVALID~666}

\mbox{\label{sysinfo_8h_aa2362049fb4589a3aaa7a00ede019aed}} 
\index{sysinfo.h@{sysinfo.h}!OSMO\_EARFCN\_MEAS\_INVALID@{OSMO\_EARFCN\_MEAS\_INVALID}}
\index{OSMO\_EARFCN\_MEAS\_INVALID@{OSMO\_EARFCN\_MEAS\_INVALID}!sysinfo.h@{sysinfo.h}}
\doxysubsubsection{OSMO\_EARFCN\_MEAS\_INVALID}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+EARFCN\+\_\+\+MEAS\+\_\+\+INVALID~0xff}



\doxysubsection{Typedef Documentation}
\mbox{\label{sysinfo_8h_a68d31106da0ac8260d457ec67e351d03}} 
\index{sysinfo.h@{sysinfo.h}!sysinfo\_buf\_t@{sysinfo\_buf\_t}}
\index{sysinfo\_buf\_t@{sysinfo\_buf\_t}!sysinfo.h@{sysinfo.h}}
\doxysubsubsection{sysinfo\_buf\_t}
{\footnotesize\ttfamily typedef uint8\+\_\+t sysinfo\+\_\+buf\+\_\+t[\textbf{ GSM\+\_\+\+MACBLOCK\+\_\+\+LEN}]}



\doxysubsection{Enumeration Type Documentation}
\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357}} 
\index{sysinfo.h@{sysinfo.h}!osmo\_sysinfo\_type@{osmo\_sysinfo\_type}}
\index{osmo\_sysinfo\_type@{osmo\_sysinfo\_type}!sysinfo.h@{sysinfo.h}}
\doxysubsubsection{osmo\_sysinfo\_type}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+sysinfo\+\_\+type}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_NONE@{SYSINFO\_TYPE\_NONE}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_NONE@{SYSINFO\_TYPE\_NONE}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357a07ef458d994f6ebbfb05a294a31a88b0}} 
SYSINFO\+\_\+\+TYPE\+\_\+\+NONE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_1@{SYSINFO\_TYPE\_1}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_1@{SYSINFO\_TYPE\_1}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357a2c7999c6def7e55404ed0a66515314d9}} 
SYSINFO\+\_\+\+TYPE\+\_\+1&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_2@{SYSINFO\_TYPE\_2}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_2@{SYSINFO\_TYPE\_2}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357a6552c0a3c741c11c11afc8a6c0bdeebb}} 
SYSINFO\+\_\+\+TYPE\+\_\+2&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_3@{SYSINFO\_TYPE\_3}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_3@{SYSINFO\_TYPE\_3}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357a5aa41712b1308c0f275bfeaff2f137f4}} 
SYSINFO\+\_\+\+TYPE\+\_\+3&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_4@{SYSINFO\_TYPE\_4}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_4@{SYSINFO\_TYPE\_4}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357a0561a7c296ff833d3c764fbfbe3fc1f7}} 
SYSINFO\+\_\+\+TYPE\+\_\+4&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_5@{SYSINFO\_TYPE\_5}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_5@{SYSINFO\_TYPE\_5}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357a398dfe04c0c404920de3683f4d273395}} 
SYSINFO\+\_\+\+TYPE\+\_\+5&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_6@{SYSINFO\_TYPE\_6}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_6@{SYSINFO\_TYPE\_6}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357ac188fe600d3e3c7658c3c663d47c640d}} 
SYSINFO\+\_\+\+TYPE\+\_\+6&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_7@{SYSINFO\_TYPE\_7}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_7@{SYSINFO\_TYPE\_7}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357ab693887c42924ac548e8233140298169}} 
SYSINFO\+\_\+\+TYPE\+\_\+7&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_8@{SYSINFO\_TYPE\_8}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_8@{SYSINFO\_TYPE\_8}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357a3a30355b5ad1486894b2a61847723b1d}} 
SYSINFO\+\_\+\+TYPE\+\_\+8&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_9@{SYSINFO\_TYPE\_9}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_9@{SYSINFO\_TYPE\_9}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357a6d7ed53f2feeb839a61c0dfd8b591a2b}} 
SYSINFO\+\_\+\+TYPE\+\_\+9&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_10@{SYSINFO\_TYPE\_10}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_10@{SYSINFO\_TYPE\_10}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357a170bd709453e34bb15acd204f1fe5dd0}} 
SYSINFO\+\_\+\+TYPE\+\_\+10&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_13@{SYSINFO\_TYPE\_13}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_13@{SYSINFO\_TYPE\_13}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357acc1b2725cb18481ebd993b7d85858042}} 
SYSINFO\+\_\+\+TYPE\+\_\+13&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_16@{SYSINFO\_TYPE\_16}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_16@{SYSINFO\_TYPE\_16}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357a553497716a95550c91483deb50e61719}} 
SYSINFO\+\_\+\+TYPE\+\_\+16&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_17@{SYSINFO\_TYPE\_17}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_17@{SYSINFO\_TYPE\_17}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357a7b7efaf3aeb64d4e259e9cd138b4cc2f}} 
SYSINFO\+\_\+\+TYPE\+\_\+17&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_18@{SYSINFO\_TYPE\_18}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_18@{SYSINFO\_TYPE\_18}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357a23a4c1f3051f4c6976f3bda66a061d75}} 
SYSINFO\+\_\+\+TYPE\+\_\+18&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_19@{SYSINFO\_TYPE\_19}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_19@{SYSINFO\_TYPE\_19}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357acda1b4b84104bc1edf4bbc6a9b1a06bb}} 
SYSINFO\+\_\+\+TYPE\+\_\+19&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_20@{SYSINFO\_TYPE\_20}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_20@{SYSINFO\_TYPE\_20}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357ae25ad33152d4f1f74f76ce39810091e1}} 
SYSINFO\+\_\+\+TYPE\+\_\+20&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_2bis@{SYSINFO\_TYPE\_2bis}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_2bis@{SYSINFO\_TYPE\_2bis}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357ab96412c60a4bf7c2046186b9f2b8127d}} 
SYSINFO\+\_\+\+TYPE\+\_\+2bis&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_2ter@{SYSINFO\_TYPE\_2ter}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_2ter@{SYSINFO\_TYPE\_2ter}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357af1c30acb2d8a273df86c8d61a8d15d70}} 
SYSINFO\+\_\+\+TYPE\+\_\+2ter&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_2quater@{SYSINFO\_TYPE\_2quater}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_2quater@{SYSINFO\_TYPE\_2quater}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357af6427cdf1fcd62a2e792f347ce95fc3d}} 
SYSINFO\+\_\+\+TYPE\+\_\+2quater&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_5bis@{SYSINFO\_TYPE\_5bis}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_5bis@{SYSINFO\_TYPE\_5bis}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357a82da948986b9b3652f839498617d29f3}} 
SYSINFO\+\_\+\+TYPE\+\_\+5bis&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_5ter@{SYSINFO\_TYPE\_5ter}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_5ter@{SYSINFO\_TYPE\_5ter}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357a4ba5bdfe1f72dc63bcbb1b6eb19e55fb}} 
SYSINFO\+\_\+\+TYPE\+\_\+5ter&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_EMO@{SYSINFO\_TYPE\_EMO}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_EMO@{SYSINFO\_TYPE\_EMO}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357ab35b0d1288f971f9ec0d6f0f0e798d83}} 
SYSINFO\+\_\+\+TYPE\+\_\+\+EMO&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_MEAS\_INFO@{SYSINFO\_TYPE\_MEAS\_INFO}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_MEAS\_INFO@{SYSINFO\_TYPE\_MEAS\_INFO}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357a42b22f905954f53dcf39da4a6aa26f13}} 
SYSINFO\+\_\+\+TYPE\+\_\+\+MEAS\+\_\+\+INFO&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_13alt@{SYSINFO\_TYPE\_13alt}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_13alt@{SYSINFO\_TYPE\_13alt}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357a8c56f9dda5ebfbce78aac2d1a3b85d0b}} 
SYSINFO\+\_\+\+TYPE\+\_\+13alt&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_15@{SYSINFO\_TYPE\_15}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_15@{SYSINFO\_TYPE\_15}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357a186b5566e227e9cd4d736cdd78051f9d}} 
SYSINFO\+\_\+\+TYPE\+\_\+15&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_2n@{SYSINFO\_TYPE\_2n}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_2n@{SYSINFO\_TYPE\_2n}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357af87f66d622ceb42113c77dbbaf6e2f2d}} 
SYSINFO\+\_\+\+TYPE\+\_\+2n&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_21@{SYSINFO\_TYPE\_21}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_21@{SYSINFO\_TYPE\_21}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357ad5eb2ddb868caec4fb7ede4e8b0d8c7a}} 
SYSINFO\+\_\+\+TYPE\+\_\+21&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_22@{SYSINFO\_TYPE\_22}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_22@{SYSINFO\_TYPE\_22}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357a8231325bb15752d338da9cab01a6bca6}} 
SYSINFO\+\_\+\+TYPE\+\_\+22&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SYSINFO\_TYPE\_23@{SYSINFO\_TYPE\_23}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!SYSINFO\_TYPE\_23@{SYSINFO\_TYPE\_23}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357a1a12bb734b908b076957b20b5eb14768}} 
SYSINFO\+\_\+\+TYPE\+\_\+23&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_MAX\_SYSINFO\_TYPE@{\_MAX\_SYSINFO\_TYPE}!sysinfo.h@{sysinfo.h}}\index{sysinfo.h@{sysinfo.h}!\_MAX\_SYSINFO\_TYPE@{\_MAX\_SYSINFO\_TYPE}}}\mbox{\label{sysinfo_8h_a0af8d788d9737126af4857b41cd4a357a27ae4ad73f44bfcc3a141f708efe41ba}} 
\+\_\+\+MAX\+\_\+\+SYSINFO\+\_\+\+TYPE&\\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\mbox{\label{sysinfo_8h_af79601ffcec344eae48a8c3dcfbabbbe}} 
\index{sysinfo.h@{sysinfo.h}!osmo\_earfcn\_add@{osmo\_earfcn\_add}}
\index{osmo\_earfcn\_add@{osmo\_earfcn\_add}!sysinfo.h@{sysinfo.h}}
\doxysubsubsection{osmo\_earfcn\_add()}
{\footnotesize\ttfamily int osmo\+\_\+earfcn\+\_\+add (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+earfcn\+\_\+si2q} $\ast$}]{e,  }\item[{uint16\+\_\+t}]{arfcn,  }\item[{uint8\+\_\+t}]{meas\+\_\+bw }\end{DoxyParamCaption})}



Add pair of arfcn and measurement bandwith value to earfcn struct. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em e} & earfcn struct \\
\hline
\mbox{\texttt{ in}}  & {\em arfcn} & EARFCN value, 16 bits \\
\hline
\mbox{\texttt{ in}}  & {\em meas\+\_\+bw} & measurement bandwith value \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, error otherwise 
\end{DoxyReturn}


References \textbf{ arfcn}, \textbf{ osmo\+\_\+earfcn\+\_\+si2q\+::arfcn}, \textbf{ osmo\+\_\+earfcn\+\_\+si2q\+::length}, \textbf{ osmo\+\_\+earfcn\+\_\+si2q\+::meas\+\_\+bw}, and \textbf{ OSMO\+\_\+\+EARFCN\+\_\+\+INVALID}.

\mbox{\label{sysinfo_8h_a45eb218183fdeaf7cc046ab1eaefd359}} 
\index{sysinfo.h@{sysinfo.h}!osmo\_earfcn\_bit\_size@{osmo\_earfcn\_bit\_size}}
\index{osmo\_earfcn\_bit\_size@{osmo\_earfcn\_bit\_size}!sysinfo.h@{sysinfo.h}}
\doxysubsubsection{osmo\_earfcn\_bit\_size()}
{\footnotesize\ttfamily size\+\_\+t osmo\+\_\+earfcn\+\_\+bit\+\_\+size (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+earfcn\+\_\+si2q} $\ast$}]{e }\end{DoxyParamCaption})}



Return number of bits necessary to represent earfcn struct as Repeated E-\/\+UTRAN Neighbour Cells IE from 3GPP TS 44.\+018 Table 10.\+5.\+2.\+33b.\+1. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em e} & earfcn struct \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bits 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+earfcn\+\_\+bit\+\_\+size\+\_\+ext()}.

\mbox{\label{sysinfo_8h_a0fcebab66de3b6339e29f6e030d801a1}} 
\index{sysinfo.h@{sysinfo.h}!osmo\_earfcn\_bit\_size\_ext@{osmo\_earfcn\_bit\_size\_ext}}
\index{osmo\_earfcn\_bit\_size\_ext@{osmo\_earfcn\_bit\_size\_ext}!sysinfo.h@{sysinfo.h}}
\doxysubsubsection{osmo\_earfcn\_bit\_size\_ext()}
{\footnotesize\ttfamily size\+\_\+t osmo\+\_\+earfcn\+\_\+bit\+\_\+size\+\_\+ext (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+earfcn\+\_\+si2q} $\ast$}]{e,  }\item[{size\+\_\+t}]{offset }\end{DoxyParamCaption})}



Return number of bits necessary to represent earfcn struct as Repeated E-\/\+UTRAN Neighbour Cells IE from 3GPP TS 44.\+018 Table 10.\+5.\+2.\+33b.\+1. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em e} & earfcn struct \\
\hline
\mbox{\texttt{ in}}  & {\em offset} & into earfcn struct\+: how many EARFCNs to skip while estimating size \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bits 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+earfcn\+\_\+si2q\+::arfcn}, \textbf{ osmo\+\_\+earfcn\+\_\+si2q\+::length}, \textbf{ osmo\+\_\+earfcn\+\_\+si2q\+::meas\+\_\+bw}, \textbf{ OSMO\+\_\+\+EARFCN\+\_\+\+INVALID}, \textbf{ OSMO\+\_\+\+EARFCN\+\_\+\+MEAS\+\_\+\+INVALID}, \textbf{ osmo\+\_\+earfcn\+\_\+si2q\+::prio\+\_\+valid}, \textbf{ osmo\+\_\+earfcn\+\_\+si2q\+::qrxlm\+\_\+valid}, and \textbf{ osmo\+\_\+earfcn\+\_\+si2q\+::thresh\+\_\+lo\+\_\+valid}.



Referenced by \textbf{ osmo\+\_\+earfcn\+\_\+bit\+\_\+size()}.

\mbox{\label{sysinfo_8h_aab8d66bb1d380af3df988fcf86223927}} 
\index{sysinfo.h@{sysinfo.h}!osmo\_earfcn\_del@{osmo\_earfcn\_del}}
\index{osmo\_earfcn\_del@{osmo\_earfcn\_del}!sysinfo.h@{sysinfo.h}}
\doxysubsubsection{osmo\_earfcn\_del()}
{\footnotesize\ttfamily int osmo\+\_\+earfcn\+\_\+del (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+earfcn\+\_\+si2q} $\ast$}]{e,  }\item[{uint16\+\_\+t}]{arfcn }\end{DoxyParamCaption})}



Delete arfcn (and corresponding measurement bandwith) from earfcn struct. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em e} & earfcn struct \\
\hline
\mbox{\texttt{ in}}  & {\em arfcn} & EARFCN value, 16 bits \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, error otherwise 
\end{DoxyReturn}


References \textbf{ arfcn}, \textbf{ osmo\+\_\+earfcn\+\_\+si2q\+::arfcn}, \textbf{ osmo\+\_\+earfcn\+\_\+si2q\+::length}, \textbf{ osmo\+\_\+earfcn\+\_\+si2q\+::meas\+\_\+bw}, \textbf{ OSMO\+\_\+\+EARFCN\+\_\+\+INVALID}, and \textbf{ OSMO\+\_\+\+EARFCN\+\_\+\+MEAS\+\_\+\+INVALID}.

\mbox{\label{sysinfo_8h_a43572feab2c65e714651381966720d0a}} 
\index{sysinfo.h@{sysinfo.h}!osmo\_earfcn\_init@{osmo\_earfcn\_init}}
\index{osmo\_earfcn\_init@{osmo\_earfcn\_init}!sysinfo.h@{sysinfo.h}}
\doxysubsubsection{osmo\_earfcn\_init()}
{\footnotesize\ttfamily void osmo\+\_\+earfcn\+\_\+init (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+earfcn\+\_\+si2q} $\ast$}]{e }\end{DoxyParamCaption})}



Initialize earfcn struct. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em e} & earfcn struct \\
\hline
\end{DoxyParams}


References \textbf{ osmo\+\_\+earfcn\+\_\+si2q\+::arfcn}, \textbf{ osmo\+\_\+earfcn\+\_\+si2q\+::length}, \textbf{ osmo\+\_\+earfcn\+\_\+si2q\+::meas\+\_\+bw}, \textbf{ OSMO\+\_\+\+EARFCN\+\_\+\+INVALID}, and \textbf{ OSMO\+\_\+\+EARFCN\+\_\+\+MEAS\+\_\+\+INVALID}.

\mbox{\label{sysinfo_8h_a8387daf5792a22d0920000fb5d93afd3}} 
\index{sysinfo.h@{sysinfo.h}!osmo\_rsl2sitype@{osmo\_rsl2sitype}}
\index{osmo\_rsl2sitype@{osmo\_rsl2sitype}!sysinfo.h@{sysinfo.h}}
\doxysubsubsection{osmo\_rsl2sitype()}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+sysinfo\+\_\+type} osmo\+\_\+rsl2sitype (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{rsl\+\_\+si }\end{DoxyParamCaption})}



References \textbf{ rsl2sitype}.

\mbox{\label{sysinfo_8h_a5b756dc7ea2ec7a2c5bd3ab2e41babcf}} 
\index{sysinfo.h@{sysinfo.h}!osmo\_sitype2rsl@{osmo\_sitype2rsl}}
\index{osmo\_sitype2rsl@{osmo\_sitype2rsl}!sysinfo.h@{sysinfo.h}}
\doxysubsubsection{osmo\_sitype2rsl()}
{\footnotesize\ttfamily uint8\+\_\+t osmo\+\_\+sitype2rsl (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+sysinfo\+\_\+type}}]{si\+\_\+type }\end{DoxyParamCaption})}



References \textbf{ sitype2rsl}.



\doxysubsection{Variable Documentation}
\mbox{\label{sysinfo_8h_a83c5fd76782dc4000eae5d7bd811eb7f}} 
\index{sysinfo.h@{sysinfo.h}!osmo\_sitype\_strs@{osmo\_sitype\_strs}}
\index{osmo\_sitype\_strs@{osmo\_sitype\_strs}!sysinfo.h@{sysinfo.h}}
\doxysubsubsection{osmo\_sitype\_strs}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} osmo\+\_\+sitype\+\_\+strs[\textbf{ \+\_\+\+MAX\+\_\+\+SYSINFO\+\_\+\+TYPE}]\hspace{0.3cm}{\ttfamily [extern]}}

