4 /* collection of system information of the current cell */
6 /* frequency mask flags of frequency type */
7 #define FREQ_TYPE_SERV 0x01 /* frequency of the serving cell */
8 #define FREQ_TYPE_HOPP 0x02 /* frequency used for channel hopping */
9 #define FREQ_TYPE_NCELL 0x1c /* frequency of the neighbor cell */
10 #define FREQ_TYPE_NCELL_2 0x04 /* sub channel of SI 2 */
11 #define FREQ_TYPE_NCELL_2bis 0x08 /* sub channel of SI 2bis */
12 #define FREQ_TYPE_NCELL_2ter 0x10 /* sub channel of SI 2ter */
13 #define FREQ_TYPE_REP 0xe0 /* frequency to be reported */
14 #define FREQ_TYPE_REP_5 0x20 /* sub channel of SI 5 */
15 #define FREQ_TYPE_REP_5bis 0x40 /* sub channel of SI 5bis */
16 #define FREQ_TYPE_REP_5ter 0x80 /* sub channel of SI 5ter */
17 #define FREQ_TYPE_SI_2_5 0xfc /* both SI 2 and SI 5 */
19 /* structure of one frequency */
20 struct gsm_sysinfo_freq {
21 /* if the frequency included in the sysinfo */
25 /* structure of all received system informations */
26 struct gsm48_sysinfo {
27 /* flags of available information */
28 uint8_t si1, si2, si2bis, si2ter, si3,
29 si4, si5, si5bis, si5ter, si6;
31 /* memory maps to simply detect change in system info messages */
43 struct gsm_sysinfo_freq freq[1024]; /* all frequencies */
44 uint16_t hopping[64]; /* hopping arfcn */
49 uint16_t mcc, mnc, lac; /* LAI */
50 uint8_t max_retrans; /* decoded */
51 uint8_t tx_integer; /* decoded */
52 uint8_t reest_denied; /* 1 = denied */
53 uint8_t cell_barr; /* 1 = barred */
54 uint16_t class_barr; /* bit 10 is emergency */
72 int8_t ms_txpwr_max_cch;
73 int8_t cell_resel_hyst_db;
74 int8_t rxlev_acc_min_db;
78 uint8_t bcch_radio_link_timeout;
82 uint8_t sacch_radio_link_timeout;
87 uint8_t bs_ag_blks_res;
89 uint8_t pag_mf_periods;
90 int32_t t3212; /* real value in seconds */
91 /* channel description */
93 uint8_t h; /* using hopping */
97 uint8_t chan_nr; /* type, slot, sub slot */
100 uint8_t nb_ext_ind_si2;
101 uint8_t nb_ba_ind_si2;
102 uint8_t nb_ext_ind_si2bis;
103 uint8_t nb_ba_ind_si2bis;
104 uint8_t nb_multi_rep_si2ter; /* see GSM 05.08 8.4.3 */
105 uint8_t nb_ext_ind_si5;
106 uint8_t nb_ba_ind_si5;
107 uint8_t nb_ext_ind_si5bis;
108 uint8_t nb_ba_ind_si5bis;
109 uint8_t nb_multi_rep_si5ter;
110 uint8_t nb_ncc_permitted;
111 uint8_t nb_max_retrans; /* decoded */
112 uint8_t nb_tx_integer; /* decoded */
113 uint8_t nb_reest_denied; /* 1 = denied */
114 uint8_t nb_cell_barr; /* 1 = barred */
115 uint16_t nb_class_barr; /* bit 10 is emergency */
118 int gsm48_sysinfo_dump(struct gsm48_sysinfo *s, uint16_t arfcn,
119 void (*print)(void *, const char *, ...), void *priv);
121 #endif /* _SYSINFO_H */