osmocom-bb/src/host/layer23/include/osmocom/bb/common/support.h

131 lines
2.6 KiB
C

#ifndef _SUPPORT_H
#define _SUPPORT_H
#define GSM_CIPHER_A5_1 0
#define GSM_CIPHER_A5_2 1
#define GSM_CIPHER_A5_3 2
#define GSM_CIPHER_A5_4 3
#define GSM_CIPHER_A5_5 4
#define GSM_CIPHER_A5_6 5
#define GSM_CIPHER_A5_7 6
#define GSM_CIPHER_RESERVED 7
#define GSM_CAP_SDCCH 0
#define GSM_CAP_SDCCH_TCHF 1
#define GSM_CAP_SDCCH_TCHF_TCHH 2
struct gsm_support {
struct osmocom_ms *ms;
/* controlled early classmark sending */
uint8_t es_ind;
/* revision level */
uint8_t rev_lev;
/* support of VGCS */
uint8_t vgcs;
/* support of VBS */
uint8_t vbs;
/* support of SMS */
uint8_t sms_ptp;
/* screening indicator */
uint8_t ss_ind;
/* pseudo synchronised capability */
uint8_t ps_cap;
/* CM service prompt */
uint8_t cmsp;
/* solsa support */
uint8_t solsa;
/* location service support */
uint8_t lcsva;
/* codec support */
uint8_t a5_1;
uint8_t a5_2;
uint8_t a5_3;
uint8_t a5_4;
uint8_t a5_5;
uint8_t a5_6;
uint8_t a5_7;
/* radio support */
uint8_t p_gsm;
uint8_t e_gsm;
uint8_t r_gsm;
uint8_t dcs;
uint8_t gsm_850;
uint8_t pcs;
uint8_t gsm_480;
uint8_t gsm_450;
uint8_t class_900;
uint8_t class_dcs;
uint8_t class_850;
uint8_t class_pcs;
uint8_t class_400;
/* multi slot support */
uint8_t ms_sup;
/* ucs2 treatment */
uint8_t ucs2_treat;
/* support extended measurements */
uint8_t ext_meas;
/* support switched measurement capability */
uint8_t meas_cap;
uint8_t sms_val;
uint8_t sm_val;
/* positioning method capability */
uint8_t loc_serv;
uint8_t e_otd_ass;
uint8_t e_otd_based;
uint8_t gps_ass;
uint8_t gps_based;
uint8_t gps_conv;
/* radio */
uint8_t ch_cap; /* channel capability */
int8_t min_rxlev_dbm;
uint8_t scan_to;
uint8_t sync_to;
uint16_t dsc_max; /* maximum dl signal failure counter */
/* codecs */
uint8_t full_v1;
uint8_t full_v2;
uint8_t full_v3;
uint8_t half_v1;
uint8_t half_v3;
/* CSD modes */
uint8_t csd_tch_f144;
uint8_t csd_tch_f96;
uint8_t csd_tch_f48;
uint8_t csd_tch_h48;
uint8_t csd_tch_f24;
uint8_t csd_tch_h24;
/* EDGE / UMTS / CDMA */
uint8_t edge_ms_sup;
uint8_t edge_psk_sup;
uint8_t edge_psk_uplink;
uint8_t class_900_edge;
uint8_t class_dcs_pcs_edge;
uint8_t umts_fdd;
uint8_t umts_tdd;
uint8_t cdma_2000;
uint8_t dtm;
uint8_t class_dtm;
uint8_t dtm_mac;
uint8_t dtm_egprs;
};
struct gsm_support_scan_max {
uint16_t start;
uint16_t end;
uint16_t max;
uint16_t temp;
};
extern struct gsm_support_scan_max gsm_sup_smax[];
void gsm_support_init(struct osmocom_ms *ms);
void gsm_support_dump(struct osmocom_ms *ms,
void (*print)(void *, const char *, ...), void *priv);
#endif /* _SUPPORT_H */