[layer23] Moving decoding of SYSTEM INFORMATION to sysinfo.c
[osmocom-bb.git] / src / host / layer23 / include / osmocom / bb / mobile / sysinfo.h
index ae7678e..07daafa 100644 (file)
@@ -40,6 +40,7 @@ struct gsm48_sysinfo {
        uint8_t                         hopp_len;
 
        /* serving cell */
+       uint8_t                         bsic;
        uint16_t                        cell_id;
        uint16_t                        mcc, mnc, lac; /* LAI */
        uint8_t                         max_retrans; /* decoded */
@@ -97,12 +98,15 @@ struct gsm48_sysinfo {
        uint8_t                         nb_ext_ind_si2bis;
        uint8_t                         nb_ba_ind_si2bis;
        uint8_t                         nb_multi_rep_si2ter; /* see GSM 05.08 8.4.3 */
+       uint8_t                         nb_ba_ind_si2ter;
        uint8_t                         nb_ext_ind_si5;
        uint8_t                         nb_ba_ind_si5;
        uint8_t                         nb_ext_ind_si5bis;
        uint8_t                         nb_ba_ind_si5bis;
        uint8_t                         nb_multi_rep_si5ter;
-       uint8_t                         nb_ncc_permitted;
+       uint8_t                         nb_ba_ind_si5ter;
+       uint8_t                         nb_ncc_permitted_si2;
+       uint8_t                         nb_ncc_permitted_si6;
        uint8_t                         nb_max_retrans; /* decoded */
        uint8_t                         nb_tx_integer; /* decoded */
        uint8_t                         nb_reest_denied; /* 1 = denied */
@@ -112,5 +116,34 @@ struct gsm48_sysinfo {
 
 int gsm48_sysinfo_dump(struct gsm48_sysinfo *s, uint16_t arfcn,
                        void (*print)(void *, const char *, ...), void *priv);
+int gsm48_decode_lai(struct gsm48_loc_area_id *lai, uint16_t *mcc,
+       uint16_t *mnc, uint16_t *lac);
+int gsm48_decode_chan_h0(struct gsm48_chan_desc *cd, uint8_t *tsc,
+       uint16_t *arfcn);
+int gsm48_decode_chan_h1(struct gsm48_chan_desc *cd, uint8_t *tsc,
+       uint8_t *maio, uint8_t *hsn);
+int gsm48_decode_sysinfo1(struct gsm48_sysinfo *s,
+               struct gsm48_system_information_type_1 *si, int len);
+int gsm48_decode_sysinfo2(struct gsm48_sysinfo *s,
+               struct gsm48_system_information_type_2 *si, int len);
+int gsm48_decode_sysinfo2bis(struct gsm48_sysinfo *s,
+               struct gsm48_system_information_type_2bis *si, int len);
+int gsm48_decode_sysinfo2ter(struct gsm48_sysinfo *s,
+               struct gsm48_system_information_type_2ter *si, int len);
+int gsm48_decode_sysinfo3(struct gsm48_sysinfo *s,
+               struct gsm48_system_information_type_3 *si, int len);
+int gsm48_decode_sysinfo4(struct gsm48_sysinfo *s,
+               struct gsm48_system_information_type_4 *si, int len);
+int gsm48_decode_sysinfo5(struct gsm48_sysinfo *s,
+               struct gsm48_system_information_type_5 *si, int len);
+int gsm48_decode_sysinfo5bis(struct gsm48_sysinfo *s,
+               struct gsm48_system_information_type_5bis *si, int len);
+int gsm48_decode_sysinfo5ter(struct gsm48_sysinfo *s,
+               struct gsm48_system_information_type_5ter *si, int len);
+int gsm48_decode_sysinfo6(struct gsm48_sysinfo *s,
+               struct gsm48_system_information_type_6 *si, int len);
+int gsm48_decode_mobile_alloc(struct gsm_sysinfo_freq *freq,
+       uint8_t *ma, uint8_t len, uint16_t *hopping, uint8_t *hopp_len,
+       int si4);
 
 #endif /* _SYSINFO_H */