diff options
Diffstat (limited to 'include/osmocom/gsm/protocol/gsm_08_58.h')
-rw-r--r-- | include/osmocom/gsm/protocol/gsm_08_58.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/include/osmocom/gsm/protocol/gsm_08_58.h b/include/osmocom/gsm/protocol/gsm_08_58.h index 363f33d7..3ea4e638 100644 --- a/include/osmocom/gsm/protocol/gsm_08_58.h +++ b/include/osmocom/gsm/protocol/gsm_08_58.h @@ -594,10 +594,15 @@ struct rsl_ie_chan_ident { /*! RSL Cell Broadcast Command (Chapter 9.3.45) */ struct rsl_ie_cb_cmd_type { +#if OSMO_IS_LITTLE_ENDIAN uint8_t last_block:2; uint8_t spare:1; uint8_t def_bcast:1; uint8_t command:4; +#elif OSMO_IS_BIG_ENDIAN +/* auto-generated from the little endian part above (libosmocore/contrib/struct_endianess.py) */ + uint8_t command:4, def_bcast:1, spare:1, last_block:2; +#endif } __attribute__ ((packed)); /* ->command */ #define RSL_CB_CMD_TYPE_NORMAL 0x00 @@ -732,14 +737,21 @@ enum rsl_ipac_embedded_ie { }; struct ipac_preproc_ave_cfg { +#if OSMO_IS_LITTLE_ENDIAN uint8_t h_reqave:5, param_id:2, reserved:1; uint8_t h_reqt:5, ave_method:3; +#elif OSMO_IS_BIG_ENDIAN +/* auto-generated from the little endian part above (libosmocore/contrib/struct_endianess.py) */ + uint8_t reserved:1, param_id:2, h_reqave:5; + uint8_t ave_method:3, h_reqt:5; +#endif }__attribute__ ((packed)); struct ipac_preproc_ho_thresh { +#if OSMO_IS_LITTLE_ENDIAN uint8_t l_rxlev_ul_h:6, reserved_l_rxlev_ul:2; uint8_t l_rxlev_dl_h:6, @@ -754,9 +766,19 @@ struct ipac_preproc_ho_thresh { reserved_rxqual_dl:1; uint8_t ms_range_max:6, reserved_ms_range:2; +#elif OSMO_IS_BIG_ENDIAN +/* auto-generated from the little endian part above (libosmocore/contrib/struct_endianess.py) */ + uint8_t reserved_l_rxlev_ul:2, l_rxlev_ul_h:6; + uint8_t reserved_l_rxlev_dl:2, l_rxlev_dl_h:6; + uint8_t reserved_rxlev_ul:2, rxlev_ul_ih:6; + uint8_t reserved_rxlev_dl:2, rxlev_dl_ih:6; + uint8_t reserved_rxqual_dl:1, l_rxqual_dl_h:3, reserved_rxlqual_ul:1, l_rxqual_ul_h:3; + uint8_t reserved_ms_range:2, ms_range_max:6; +#endif }__attribute__ ((packed)); struct ipac_preproc_ho_comp { +#if OSMO_IS_LITTLE_ENDIAN uint8_t p5:5, reserved_p5:3; uint8_t n5:5, @@ -777,30 +799,61 @@ struct ipac_preproc_ho_comp { reserved_ho:3; uint8_t reserved; +#elif OSMO_IS_BIG_ENDIAN +/* auto-generated from the little endian part above (libosmocore/contrib/struct_endianess.py) */ + uint8_t reserved_p5:3, p5:5; + uint8_t reserved_n5:3, n5:5; + uint8_t reserved_p6:3, p6:5; + uint8_t reserved_n6:3, n6:5; + uint8_t reserved_p7:3, p7:5; + uint8_t reserved_n7:3, n7:5; + uint8_t reserved_p8:3, p8:5; + uint8_t reserved_n8:3, n8:5; + uint8_t reserved_ho:3, ho_interval:5; + uint8_t reserved; +#endif }__attribute__ ((packed)); struct ipac_preproc_ho_candidates { +#if OSMO_IS_LITTLE_ENDIAN uint8_t bsic:6, reserved0:2; uint8_t bcch_freq:5, ba_used:1, s:1, reserved1:1; +#elif OSMO_IS_BIG_ENDIAN +/* auto-generated from the little endian part above (libosmocore/contrib/struct_endianess.py) */ + uint8_t reserved0:2, bsic:6; + uint8_t reserved1:1, s:1, ba_used:1, bcch_freq:5; +#endif }__attribute__ ((packed)); struct ipac_preproc_ncell_dflts { +#if OSMO_IS_LITTLE_ENDIAN uint8_t rxlev_min_def:6, reserved_rxlev_min_def:2; uint8_t ho_margin_def:5, reserved_ho_margin_def:3; uint8_t ms_txpwr_max_def:5, reserved_ms_txpwr_max_def:3; +#elif OSMO_IS_BIG_ENDIAN +/* auto-generated from the little endian part above (libosmocore/contrib/struct_endianess.py) */ + uint8_t reserved_rxlev_min_def:2, rxlev_min_def:6; + uint8_t reserved_ho_margin_def:3, ho_margin_def:5; + uint8_t reserved_ms_txpwr_max_def:3, ms_txpwr_max_def:5; +#endif }__attribute__ ((packed)); struct ipac_preproc_ho_ctl_param { +#if OSMO_IS_LITTLE_ENDIAN uint8_t sdcch_ho_gsm:1, sdcch_ho_umts:1, reserved:6; +#elif OSMO_IS_BIG_ENDIAN +/* auto-generated from the little endian part above (libosmocore/contrib/struct_endianess.py) */ + uint8_t reserved:6, sdcch_ho_umts:1, sdcch_ho_gsm:1; +#endif }__attribute__ ((packed)); struct ipac_preproc_cfg { |