modem-helpers-qmi: introduce parser for Get Configuration message
This commit is contained in:

committed by
Aleksander Morgado

parent
0a7bfcfb42
commit
ab60f88403
@@ -2209,3 +2209,56 @@ mm_qmi_uim_decode_eid (const gchar *eid, gsize eid_len)
|
|||||||
|
|
||||||
return mm_bcd_to_string ((const guint8 *) eid, eid_len, FALSE /* low_nybble_first */);
|
return mm_bcd_to_string ((const guint8 *) eid, eid_len, FALSE /* low_nybble_first */);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
mm_qmi_uim_get_configuration_output_parse (gpointer log_object,
|
||||||
|
QmiMessageUimGetConfigurationOutput *output,
|
||||||
|
MMModem3gppFacility *o_lock,
|
||||||
|
GError **error)
|
||||||
|
{
|
||||||
|
QmiMessageUimGetConfigurationOutputPersonalizationStatusElement *element;
|
||||||
|
GArray *elements;
|
||||||
|
guint idx;
|
||||||
|
|
||||||
|
*o_lock = MM_MODEM_3GPP_FACILITY_NONE;
|
||||||
|
|
||||||
|
if (!qmi_message_uim_get_configuration_output_get_personalization_status (output, &elements, error)) {
|
||||||
|
g_prefix_error (error, "UIM Get Personalization Status failed: ");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (idx = 0; idx < elements->len; idx++) {
|
||||||
|
element = &g_array_index (elements,
|
||||||
|
QmiMessageUimGetConfigurationOutputPersonalizationStatusElement,
|
||||||
|
idx);
|
||||||
|
switch (element->feature) {
|
||||||
|
case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_NETWORK:
|
||||||
|
*o_lock |= MM_MODEM_3GPP_FACILITY_NET_PERS;
|
||||||
|
break;
|
||||||
|
case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_NETWORK_SUBSET:
|
||||||
|
*o_lock |= MM_MODEM_3GPP_FACILITY_NET_SUB_PERS;
|
||||||
|
break;
|
||||||
|
case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_SERVICE_PROVIDER:
|
||||||
|
*o_lock |= MM_MODEM_3GPP_FACILITY_PROVIDER_PERS;
|
||||||
|
break;
|
||||||
|
case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_CORPORATE:
|
||||||
|
*o_lock |= MM_MODEM_3GPP_FACILITY_CORP_PERS;
|
||||||
|
break;
|
||||||
|
case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_UIM:
|
||||||
|
*o_lock |= MM_MODEM_3GPP_FACILITY_PH_SIM;
|
||||||
|
break;
|
||||||
|
case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_1X_NETWORK_TYPE_1:
|
||||||
|
case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_1X_NETWORK_TYPE_2:
|
||||||
|
case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_1X_HRPD:
|
||||||
|
case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_1X_SERVICE_PROVIDER:
|
||||||
|
case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_1X_CORPORATE:
|
||||||
|
case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_1X_RUIM:
|
||||||
|
case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_UNKNOWN:
|
||||||
|
default:
|
||||||
|
mm_obj_warn (log_object, "Invalid UIM feature : %u", (guint)element->feature);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
@@ -188,4 +188,12 @@ gboolean mm_qmi_uim_get_card_status_output_parse (gpointer
|
|||||||
/* UIM Get Slot Status parsing */
|
/* UIM Get Slot Status parsing */
|
||||||
gchar *mm_qmi_uim_decode_eid (const gchar *eid, gsize eid_len);
|
gchar *mm_qmi_uim_decode_eid (const gchar *eid, gsize eid_len);
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/* UIM Get Configuration parsing */
|
||||||
|
|
||||||
|
gboolean mm_qmi_uim_get_configuration_output_parse (gpointer log_object,
|
||||||
|
QmiMessageUimGetConfigurationOutput *output,
|
||||||
|
MMModem3gppFacility *o_lock,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
#endif /* MM_MODEM_HELPERS_QMI_H */
|
#endif /* MM_MODEM_HELPERS_QMI_H */
|
||||||
|
Reference in New Issue
Block a user