diff --git a/drivers/atmodem/network-registration.c b/drivers/atmodem/network-registration.c index 0f83977b..cc702c2c 100644 --- a/drivers/atmodem/network-registration.c +++ b/drivers/atmodem/network-registration.c @@ -53,20 +53,6 @@ static const char *smoni_prefix[] = { "^SMONI:", NULL }; static const char *zpas_prefix[] = { "+ZPAS:", NULL }; static const char *option_tech_prefix[] = { "_OCTI:", "_OUWCTI:", NULL }; -struct netreg_data { - GAtChat *chat; - char mcc[OFONO_MAX_MCC_LENGTH + 1]; - char mnc[OFONO_MAX_MNC_LENGTH + 1]; - int signal_index; /* If strength is reported via CIND */ - int signal_min; /* min strength reported via CIND */ - int signal_max; /* max strength reported via CIND */ - int signal_invalid; /* invalid strength reported via CIND */ - int tech; - struct ofono_network_time time; - guint nitz_timeout; - unsigned int vendor; -}; - struct tech_query { int status; int lac; @@ -211,7 +197,7 @@ static void at_creg_cb(gboolean ok, GAtResult *result, gpointer user_data) ofono_netreg_status_cb_t cb = cbd->cb; int status, lac, ci, tech; struct ofono_error error; - struct netreg_data *nd = cbd->user; + struct at_netreg_data *nd = cbd->user; decode_at_error(&error, g_at_result_final_response(result)); @@ -252,7 +238,7 @@ static void zte_tech_cb(gboolean ok, GAtResult *result, gpointer user_data) { struct cb_data *cbd = user_data; struct ofono_netreg *netreg = cbd->data; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); if (ok) nd->tech = zte_parse_tech(result); @@ -264,7 +250,7 @@ static void option_tech_cb(gboolean ok, GAtResult *result, gpointer user_data) { struct cb_data *cbd = user_data; struct ofono_netreg *netreg = cbd->data; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); if (ok) nd->tech = option_parse_tech(result); @@ -276,7 +262,7 @@ void at_registration_status(struct ofono_netreg *netreg, ofono_netreg_status_cb_t cb, void *data) { - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); struct cb_data *cbd = cb_data_new(cb, data); cbd->user = nd; @@ -339,7 +325,7 @@ void at_registration_status(struct ofono_netreg *netreg, static void cops_cb(gboolean ok, GAtResult *result, gpointer user_data) { struct cb_data *cbd = user_data; - struct netreg_data *nd = ofono_netreg_get_data(cbd->user); + struct at_netreg_data *nd = ofono_netreg_get_data(cbd->user); ofono_netreg_operator_cb_t cb = cbd->cb; struct ofono_network_operator op; GAtResultIter iter; @@ -400,7 +386,7 @@ error: static void cops_numeric_cb(gboolean ok, GAtResult *result, gpointer user_data) { struct cb_data *cbd = user_data; - struct netreg_data *nd = ofono_netreg_get_data(cbd->user); + struct at_netreg_data *nd = ofono_netreg_get_data(cbd->user); ofono_netreg_operator_cb_t cb = cbd->cb; GAtResultIter iter; const char *str; @@ -455,7 +441,7 @@ error: void at_current_operator(struct ofono_netreg *netreg, ofono_netreg_operator_cb_t cb, void *data) { - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); struct cb_data *cbd = cb_data_new(cb, data); gboolean ok; @@ -594,7 +580,7 @@ static void cops_list_cb(gboolean ok, GAtResult *result, gpointer user_data) void at_list_operators(struct ofono_netreg *netreg, ofono_netreg_operator_list_cb_t cb, void *data) { - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); struct cb_data *cbd = cb_data_new(cb, data); if (g_at_chat_send(nd->chat, "AT+COPS=?", cops_prefix, @@ -620,7 +606,7 @@ static void register_cb(gboolean ok, GAtResult *result, gpointer user_data) void at_register_auto(struct ofono_netreg *netreg, ofono_netreg_register_cb_t cb, void *data) { - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); struct cb_data *cbd = cb_data_new(cb, data); if (g_at_chat_send(nd->chat, "AT+COPS=0", none_prefix, @@ -636,7 +622,7 @@ void at_register_manual(struct ofono_netreg *netreg, const char *mcc, const char *mnc, ofono_netreg_register_cb_t cb, void *data) { - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); struct cb_data *cbd = cb_data_new(cb, data); char buf[128]; @@ -725,7 +711,7 @@ static void ifx_xhomezr_notify(GAtResult *result, gpointer user_data) static void ifx_xreg_notify(GAtResult *result, gpointer user_data) { struct ofono_netreg *netreg = user_data; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); int state; const char *band; GAtResultIter iter; @@ -824,7 +810,7 @@ static void ifx_xcsq_notify(GAtResult *result, gpointer user_data) static void ciev_notify(GAtResult *result, gpointer user_data) { struct ofono_netreg *netreg = user_data; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); int strength, ind; GAtResultIter iter; @@ -853,7 +839,7 @@ static void ciev_notify(GAtResult *result, gpointer user_data) static void telit_ciev_notify(GAtResult *result, gpointer user_data) { struct ofono_netreg *netreg = user_data; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); const char *signal_identifier = "rssi"; const char *ind_str; int strength; @@ -884,7 +870,7 @@ static void telit_ciev_notify(GAtResult *result, gpointer user_data) static void gemalto_ciev_notify(GAtResult *result, gpointer user_data) { struct ofono_netreg *netreg = user_data; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); const char *signal_identifier = "rssi"; const char *ind_str; int strength; @@ -917,7 +903,7 @@ static void gemalto_ciev_notify(GAtResult *result, gpointer user_data) static void ctzv_notify(GAtResult *result, gpointer user_data) { struct ofono_netreg *netreg = user_data; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); const char *tz; GAtResultIter iter; @@ -939,7 +925,7 @@ static void ctzv_notify(GAtResult *result, gpointer user_data) static void tlts_notify(GAtResult *result, gpointer user_data) { struct ofono_netreg *netreg = user_data; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); int year, mon, mday, hour, min, sec; char tz[4]; const char *time; @@ -974,7 +960,7 @@ static void tlts_notify(GAtResult *result, gpointer user_data) static gboolean notify_time(gpointer user_data) { struct ofono_netreg *netreg = user_data; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); nd->nitz_timeout = 0; @@ -986,7 +972,7 @@ static gboolean notify_time(gpointer user_data) static void ifx_ctzv_notify(GAtResult *result, gpointer user_data) { struct ofono_netreg *netreg = user_data; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); int year, mon, mday, hour, min, sec; const char *tz, *time; GAtResultIter iter; @@ -1024,7 +1010,7 @@ static void ifx_ctzv_notify(GAtResult *result, gpointer user_data) static void ifx_ctzdst_notify(GAtResult *result, gpointer user_data) { struct ofono_netreg *netreg = user_data; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); int dst; GAtResultIter iter; @@ -1052,7 +1038,7 @@ static void cind_cb(gboolean ok, GAtResult *result, gpointer user_data) { struct cb_data *cbd = user_data; ofono_netreg_strength_cb_t cb = cbd->cb; - struct netreg_data *nd = cbd->user; + struct at_netreg_data *nd = cbd->user; int index; int strength; GAtResultIter iter; @@ -1106,7 +1092,7 @@ static void huawei_rssi_notify(GAtResult *result, gpointer user_data) static void huawei_mode_notify(GAtResult *result, gpointer user_data) { struct ofono_netreg *netreg = user_data; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); GAtResultIter iter; int mode, submode; @@ -1134,7 +1120,7 @@ static void huawei_mode_notify(GAtResult *result, gpointer user_data) static void huawei_hcsq_notify(GAtResult *result, gpointer user_data) { struct ofono_netreg *netreg = user_data; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); GAtResultIter iter; const char *mode; @@ -1155,7 +1141,7 @@ static void huawei_hcsq_notify(GAtResult *result, gpointer user_data) static void huawei_nwtime_notify(GAtResult *result, gpointer user_data) { struct ofono_netreg *netreg = user_data; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); int year, mon, mday, hour, min, sec; char tz[4]; const char *date, *time, *dst; @@ -1233,7 +1219,7 @@ static void csq_cb(gboolean ok, GAtResult *result, gpointer user_data) void at_signal_strength(struct ofono_netreg *netreg, ofono_netreg_strength_cb_t cb, void *data) { - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); struct cb_data *cbd = cb_data_new(cb, data); cbd->user = nd; @@ -1260,7 +1246,7 @@ void at_signal_strength(struct ofono_netreg *netreg, static void mbm_etzv_notify(GAtResult *result, gpointer user_data) { struct ofono_netreg *netreg = user_data; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); int year, mon, mday, hour, min, sec; const char *tz, *time, *timestamp; GAtResultIter iter; @@ -1309,7 +1295,7 @@ static void mbm_etzv_notify(GAtResult *result, gpointer user_data) static void mbm_erinfo_notify(GAtResult *result, gpointer user_data) { struct ofono_netreg *netreg = user_data; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); GAtResultIter iter; int mode, gsm, umts; @@ -1361,7 +1347,7 @@ static void mbm_erinfo_notify(GAtResult *result, gpointer user_data) static void icera_nwstate_notify(GAtResult *result, gpointer user_data) { struct ofono_netreg *netreg = user_data; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); GAtResultIter iter; const char *mccmnc, *tech, *state; int rssi; @@ -1429,7 +1415,7 @@ static int cnti_to_tech(const char *cnti) static void gobi_cnti_notify(GAtResult *result, gpointer user_data) { struct ofono_netreg *netreg = user_data; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); GAtResultIter iter; const char *tech; int option; @@ -1454,7 +1440,7 @@ static void gobi_cnti_notify(GAtResult *result, gpointer user_data) static void nw_cnti_notify(GAtResult *result, gpointer user_data) { struct ofono_netreg *netreg = user_data; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); GAtResultIter iter; const char *tech; int option; @@ -1480,7 +1466,7 @@ static void cnti_query_tech_cb(gboolean ok, GAtResult *result, gpointer user_data) { struct tech_query *tq = user_data; - struct netreg_data *nd = ofono_netreg_get_data(tq->netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(tq->netreg); ofono_netreg_status_notify(tq->netreg, tq->status, tq->lac, tq->ci, nd->tech); @@ -1520,7 +1506,7 @@ static void creg_notify(GAtResult *result, gpointer user_data) { struct ofono_netreg *netreg = user_data; int status, lac, ci, tech; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); struct tech_query *tq; if (at_util_parse_reg_unsolicited(result, "+CREG:", &status, @@ -1589,7 +1575,7 @@ static void at_cmer_not_supported(struct ofono_netreg *netreg) static void at_cmer_set_cb(gboolean ok, GAtResult *result, gpointer user_data) { struct ofono_netreg *netreg = user_data; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); if (!ok) { at_cmer_not_supported(netreg); @@ -1648,7 +1634,7 @@ static inline ofono_bool_t append_cmer_element(char *buf, int *len, int cap, } static ofono_bool_t build_cmer_string(char *buf, int *cmer_opts, - struct netreg_data *nd) + struct at_netreg_data *nd) { const char *ind; int len = sprintf(buf, "AT+CMER="); @@ -1717,7 +1703,7 @@ static void at_cmer_query_cb(ofono_bool_t ok, GAtResult *result, gpointer user_data) { struct ofono_netreg *netreg = user_data; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); GAtResultIter iter; int cmer_opts_cnt = 5; /* See 27.007 Section 8.10 */ int cmer_opts[cmer_opts_cnt]; @@ -1765,7 +1751,7 @@ error: static void cind_support_cb(gboolean ok, GAtResult *result, gpointer user_data) { struct ofono_netreg *netreg = user_data; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); GAtResultIter iter; const char *str; char *signal_identifier = "signal"; @@ -1872,7 +1858,7 @@ error: static void at_creg_set_cb(gboolean ok, GAtResult *result, gpointer user_data) { struct ofono_netreg *netreg = user_data; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); if (!ok) { ofono_error("Unable to initialize Network Registration"); @@ -2075,7 +2061,7 @@ static void at_creg_set_cb(gboolean ok, GAtResult *result, gpointer user_data) static void at_creg_test_cb(gboolean ok, GAtResult *result, gpointer user_data) { struct ofono_netreg *netreg = user_data; - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); gint range[2]; GAtResultIter iter; int creg1 = 0; @@ -2123,9 +2109,9 @@ static int at_netreg_probe(struct ofono_netreg *netreg, unsigned int vendor, void *data) { GAtChat *chat = data; - struct netreg_data *nd; + struct at_netreg_data *nd; - nd = g_new0(struct netreg_data, 1); + nd = g_new0(struct at_netreg_data, 1); nd->chat = g_at_chat_clone(chat); nd->vendor = vendor; @@ -2148,7 +2134,7 @@ static int at_netreg_probe(struct ofono_netreg *netreg, unsigned int vendor, void at_netreg_remove(struct ofono_netreg *netreg) { - struct netreg_data *nd = ofono_netreg_get_data(netreg); + struct at_netreg_data *nd = ofono_netreg_get_data(netreg); if (nd->nitz_timeout) g_source_remove(nd->nitz_timeout); diff --git a/drivers/atmodem/network-registration.h b/drivers/atmodem/network-registration.h index 0f622411..8a5401cf 100644 --- a/drivers/atmodem/network-registration.h +++ b/drivers/atmodem/network-registration.h @@ -1,5 +1,19 @@ #pragma once +struct at_netreg_data { + GAtChat *chat; + char mcc[OFONO_MAX_MCC_LENGTH + 1]; + char mnc[OFONO_MAX_MNC_LENGTH + 1]; + int signal_index; /* If strength is reported via CIND */ + int signal_min; /* min strength reported via CIND */ + int signal_max; /* max strength reported via CIND */ + int signal_invalid; /* invalid strength reported via CIND */ + int tech; + struct ofono_network_time time; + guint nitz_timeout; + unsigned int vendor; +}; + void at_registration_status(struct ofono_netreg *netreg, ofono_netreg_status_cb_t cb, void *data);