\doxysection{sysinfo.\+h}
\label{sysinfo_8h_source}\index{include/osmocom/gsm/sysinfo.h@{include/osmocom/gsm/sysinfo.h}}
\textbf{ Go to the documentation of this file.}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 }
\DoxyCodeLine{3 \textcolor{preprocessor}{\#pragma once}}
\DoxyCodeLine{4 }
\DoxyCodeLine{5 \textcolor{preprocessor}{\#include <stdbool.h>}}
\DoxyCodeLine{6 }
\DoxyCodeLine{7 \textcolor{preprocessor}{\#include <osmocom/core/defs.h>}}
\DoxyCodeLine{8 \textcolor{preprocessor}{\#include <osmocom/core/utils.h>}}
\DoxyCodeLine{9 \textcolor{preprocessor}{\#include <osmocom/gsm/protocol/gsm\_04\_08.h>}}
\DoxyCodeLine{10 }
\DoxyCodeLine{11 \textcolor{preprocessor}{\#define OSMO\_EARFCN\_INVALID 666}}
\DoxyCodeLine{12 \textcolor{preprocessor}{\#define OSMO\_EARFCN\_MEAS\_INVALID 0xff}}
\DoxyCodeLine{13 }
\DoxyCodeLine{14 \textcolor{keyword}{enum} osmo\_sysinfo\_type \{}
\DoxyCodeLine{15         SYSINFO\_TYPE\_NONE,}
\DoxyCodeLine{16         SYSINFO\_TYPE\_1,}
\DoxyCodeLine{17         SYSINFO\_TYPE\_2,}
\DoxyCodeLine{18         SYSINFO\_TYPE\_3,}
\DoxyCodeLine{19         SYSINFO\_TYPE\_4,}
\DoxyCodeLine{20         SYSINFO\_TYPE\_5,}
\DoxyCodeLine{21         SYSINFO\_TYPE\_6,}
\DoxyCodeLine{22         SYSINFO\_TYPE\_7,}
\DoxyCodeLine{23         SYSINFO\_TYPE\_8,}
\DoxyCodeLine{24         SYSINFO\_TYPE\_9,}
\DoxyCodeLine{25         SYSINFO\_TYPE\_10,}
\DoxyCodeLine{26         SYSINFO\_TYPE\_13,}
\DoxyCodeLine{27         SYSINFO\_TYPE\_16,}
\DoxyCodeLine{28         SYSINFO\_TYPE\_17,}
\DoxyCodeLine{29         SYSINFO\_TYPE\_18,}
\DoxyCodeLine{30         SYSINFO\_TYPE\_19,}
\DoxyCodeLine{31         SYSINFO\_TYPE\_20,}
\DoxyCodeLine{32         SYSINFO\_TYPE\_2bis,}
\DoxyCodeLine{33         SYSINFO\_TYPE\_2ter,}
\DoxyCodeLine{34         SYSINFO\_TYPE\_2quater,}
\DoxyCodeLine{35         SYSINFO\_TYPE\_5bis,}
\DoxyCodeLine{36         SYSINFO\_TYPE\_5ter,}
\DoxyCodeLine{37         SYSINFO\_TYPE\_EMO,}
\DoxyCodeLine{38         SYSINFO\_TYPE\_MEAS\_INFO,}
\DoxyCodeLine{39         SYSINFO\_TYPE\_13alt,}
\DoxyCodeLine{40         SYSINFO\_TYPE\_15,}
\DoxyCodeLine{41         SYSINFO\_TYPE\_2n,}
\DoxyCodeLine{42         SYSINFO\_TYPE\_21,}
\DoxyCodeLine{43         SYSINFO\_TYPE\_22,}
\DoxyCodeLine{44         SYSINFO\_TYPE\_23,}
\DoxyCodeLine{45         \_MAX\_SYSINFO\_TYPE}
\DoxyCodeLine{46 \};}
\DoxyCodeLine{47 }
\DoxyCodeLine{48 \textcolor{keyword}{struct }osmo\_earfcn\_si2q \{}
\DoxyCodeLine{49         \textcolor{comment}{/* EARFCN (16 bits) array */}}
\DoxyCodeLine{50         uint16\_t *arfcn;}
\DoxyCodeLine{51         \textcolor{comment}{/* Measurement Bandwidth (3 bits), might be absent}}
\DoxyCodeLine{52 \textcolor{comment}{        (OSMO\_EARFCN\_MEAS\_INVALID is stored in this case) */}}
\DoxyCodeLine{53         uint8\_t *meas\_bw;}
\DoxyCodeLine{54         \textcolor{comment}{/* length of arfcn and meas\_bw arrays (got to be the same) */}}
\DoxyCodeLine{55         \textcolor{keywordtype}{size\_t} length;}
\DoxyCodeLine{56         \textcolor{comment}{/* THRESH\_E-\/UTRAN\_high (5 bits) */}}
\DoxyCodeLine{57         uint8\_t thresh\_hi;}
\DoxyCodeLine{58         \textcolor{comment}{/* THRESH\_E-\/UTRAN\_low (5 bits) */}}
\DoxyCodeLine{59         uint8\_t thresh\_lo;}
\DoxyCodeLine{60         \textcolor{comment}{/* E-\/UTRAN\_PRIORITY (3 bits) */}}
\DoxyCodeLine{61         uint8\_t prio;}
\DoxyCodeLine{62         \textcolor{comment}{/* E-\/UTRAN\_QRXLEVMIN */}}
\DoxyCodeLine{63         uint8\_t qrxlm;}
\DoxyCodeLine{64         \textcolor{comment}{/* indicates whether thresh\_lo value is valid}}
\DoxyCodeLine{65 \textcolor{comment}{        thresh\_hi is mandatory and hence always considered valid */}}
\DoxyCodeLine{66         \textcolor{keywordtype}{bool} thresh\_lo\_valid;}
\DoxyCodeLine{67         \textcolor{comment}{/* indicates whether prio value is valid */}}
\DoxyCodeLine{68         \textcolor{keywordtype}{bool} prio\_valid;}
\DoxyCodeLine{69         \textcolor{comment}{/* indicates whether qrxlm value is valid */}}
\DoxyCodeLine{70         \textcolor{keywordtype}{bool} qrxlm\_valid;}
\DoxyCodeLine{71 \};}
\DoxyCodeLine{72 }
\DoxyCodeLine{73 \textcolor{keyword}{typedef} uint8\_t sysinfo\_buf\_t[GSM\_MACBLOCK\_LEN];}
\DoxyCodeLine{74 }
\DoxyCodeLine{75 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }value\_string osmo\_sitype\_strs[\_MAX\_SYSINFO\_TYPE];}
\DoxyCodeLine{76 \textcolor{keywordtype}{int} osmo\_earfcn\_add(\textcolor{keyword}{struct} osmo\_earfcn\_si2q *e, uint16\_t arfcn, uint8\_t meas\_bw);}
\DoxyCodeLine{77 \textcolor{keywordtype}{int} osmo\_earfcn\_del(\textcolor{keyword}{struct} osmo\_earfcn\_si2q *e, uint16\_t arfcn);}
\DoxyCodeLine{78 \textcolor{keywordtype}{size\_t} osmo\_earfcn\_bit\_size(\textcolor{keyword}{const} \textcolor{keyword}{struct} osmo\_earfcn\_si2q *e) OSMO\_DEPRECATED(\textcolor{stringliteral}{"{}Use osmo\_earfcn\_bit\_size\_ext()instead."{}});}
\DoxyCodeLine{79 \textcolor{keywordtype}{size\_t} osmo\_earfcn\_bit\_size\_ext(\textcolor{keyword}{const} \textcolor{keyword}{struct} osmo\_earfcn\_si2q *e, \textcolor{keywordtype}{size\_t} offset);}
\DoxyCodeLine{80 \textcolor{keywordtype}{void} osmo\_earfcn\_init(\textcolor{keyword}{struct} osmo\_earfcn\_si2q *e);}
\DoxyCodeLine{81 uint8\_t osmo\_sitype2rsl(\textcolor{keyword}{enum} osmo\_sysinfo\_type si\_type);}
\DoxyCodeLine{82 \textcolor{keyword}{enum} osmo\_sysinfo\_type osmo\_rsl2sitype(uint8\_t rsl\_si);}

\end{DoxyCode}
