summaryrefslogtreecommitdiffstats
path: root/src/host/layer23/include/osmocom/bb/mobile
diff options
context:
space:
mode:
Diffstat (limited to 'src/host/layer23/include/osmocom/bb/mobile')
-rw-r--r--src/host/layer23/include/osmocom/bb/mobile/gsm322.h10
-rw-r--r--src/host/layer23/include/osmocom/bb/mobile/gsm48_mm.h1
-rw-r--r--src/host/layer23/include/osmocom/bb/mobile/settings.h23
-rw-r--r--src/host/layer23/include/osmocom/bb/mobile/support.h22
4 files changed, 52 insertions, 4 deletions
diff --git a/src/host/layer23/include/osmocom/bb/mobile/gsm322.h b/src/host/layer23/include/osmocom/bb/mobile/gsm322.h
index c93e8faa..d94e368d 100644
--- a/src/host/layer23/include/osmocom/bb/mobile/gsm322.h
+++ b/src/host/layer23/include/osmocom/bb/mobile/gsm322.h
@@ -82,10 +82,10 @@ struct gsm322_la_list {
struct gsm322_ba_list {
struct llist_head entry;
uint16_t mcc, mnc;
- /* Band allocation for 1024 frequencies.
+ /* Band allocation for 1024+299 frequencies.
* First bit of first index is frequency 0.
*/
- uint8_t freq[128];
+ uint8_t freq[128+38];
};
#define GSM322_CS_FLAG_SUPPORT 0x01 /* frequency is supported by radio */
@@ -143,12 +143,14 @@ struct gsm322_cellsel {
struct osmo_timer_list timer;
uint16_t mcc, mnc; /* current network to search for */
- struct gsm322_cs_list list[1024]; /* cell selection list per freq. */
+ struct gsm322_cs_list list[1024+299];
+ /* cell selection list per frequency. */
uint8_t powerscan; /* currently scanning for power */
uint32_t scan_state; /* special state of current scan */
uint8_t ccch_state; /* special state of current ccch */
uint16_t arfcn; /* current tuned idle mode arfcn */
+ int arfci; /* list index of frequency above */
uint8_t ccch_mode; /* curren CCCH_MODE_* */
struct gsm48_sysinfo *si; /* current sysinfo */
@@ -170,6 +172,8 @@ struct gsm322_msg {
#define GSM322_ALLOC_SIZE sizeof(struct gsm322_msg)
#define GSM322_ALLOC_HEADROOM 0
+uint16_t index2arfcn(int index);
+int arfcn2index(uint16_t arfcn);
int gsm322_init(struct osmocom_ms *ms);
int gsm322_exit(struct osmocom_ms *ms);
struct msgb *gsm322_msgb_alloc(int msg_type);
diff --git a/src/host/layer23/include/osmocom/bb/mobile/gsm48_mm.h b/src/host/layer23/include/osmocom/bb/mobile/gsm48_mm.h
index 021b78d8..1cfe401f 100644
--- a/src/host/layer23/include/osmocom/bb/mobile/gsm48_mm.h
+++ b/src/host/layer23/include/osmocom/bb/mobile/gsm48_mm.h
@@ -207,6 +207,7 @@ struct gsm48_mm_conn {
int state;
};
+uint8_t gsm48_current_pwr_lev(struct gsm_settings *set, uint16_t arfcn);
int gsm48_mm_init(struct osmocom_ms *ms);
int gsm48_mm_exit(struct osmocom_ms *ms);
struct msgb *gsm48_mmr_msgb_alloc(int msg_type);
diff --git a/src/host/layer23/include/osmocom/bb/mobile/settings.h b/src/host/layer23/include/osmocom/bb/mobile/settings.h
index f666f378..7fa60894 100644
--- a/src/host/layer23/include/osmocom/bb/mobile/settings.h
+++ b/src/host/layer23/include/osmocom/bb/mobile/settings.h
@@ -62,8 +62,16 @@ struct gsm_settings {
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;
+ uint8_t freq_map[128+38];
uint8_t full_v1;
uint8_t full_v2;
uint8_t full_v3;
@@ -77,6 +85,20 @@ struct gsm_settings {
/* dialing */
struct llist_head abbrev;
+
+ /* 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_settings_abbrev {
@@ -86,6 +108,7 @@ struct gsm_settings_abbrev {
char name[32];
};
+int gsm_settings_arfcn(struct osmocom_ms *ms);
int gsm_settings_init(struct osmocom_ms *ms);
int gsm_settings_exit(struct osmocom_ms *ms);
char *gsm_check_imei(const char *imei, const char *sv);
diff --git a/src/host/layer23/include/osmocom/bb/mobile/support.h b/src/host/layer23/include/osmocom/bb/mobile/support.h
index cbe6e19b..035e10a3 100644
--- a/src/host/layer23/include/osmocom/bb/mobile/support.h
+++ b/src/host/layer23/include/osmocom/bb/mobile/support.h
@@ -50,9 +50,15 @@ struct gsm_support {
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 freq_map[128];
+ uint8_t class_850;
+ uint8_t class_pcs;
+ uint8_t class_400;
/* multi slot support */
uint8_t ms_sup;
/* ucs2 treatment */
@@ -84,6 +90,20 @@ struct gsm_support {
uint8_t full_v3;
uint8_t half_v1;
uint8_t half_v3;
+
+ /* 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 {