aboutsummaryrefslogtreecommitdiff
path: root/src/mm-modem-helpers-mbim.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-modem-helpers-mbim.c')
-rw-r--r--src/mm-modem-helpers-mbim.c61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/mm-modem-helpers-mbim.c b/src/mm-modem-helpers-mbim.c
index 9ff5439b..7815d01e 100644
--- a/src/mm-modem-helpers-mbim.c
+++ b/src/mm-modem-helpers-mbim.c
@@ -15,6 +15,7 @@
#include "mm-modem-helpers-mbim.h"
#include "mm-enums-types.h"
+#include "mm-errors-types.h"
#include "mm-log.h"
/*****************************************************************************/
@@ -82,3 +83,63 @@ mm_modem_3gpp_registration_state_from_mbim_register_state (MbimRegisterState sta
return MM_MODEM_3GPP_REGISTRATION_STATE_UNKNOWN;
}
}
+
+GError *
+mm_mobile_equipment_error_from_mbim_nw_error (MbimNwError nw_error)
+{
+ switch (nw_error) {
+ case MBIM_NW_ERROR_IMSI_UNKNOWN_IN_HLR:
+ return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_IMSI_UNKNOWN_IN_HLR,
+ "IMSI unknown in HLR");
+ case MBIM_NW_ERROR_IMSI_UNKNOWN_IN_VLR:
+ return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_IMSI_UNKNOWN_IN_VLR,
+ "IMSI unknown in VLR");
+ case MBIM_NW_ERROR_ILLEGAL_ME:
+ return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_ILLEGAL_ME,
+ "Illegal ME");
+ case MBIM_NW_ERROR_GPRS_NOT_ALLOWED:
+ return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_NOT_ALLOWED,
+ "GPRS not allowed");
+ case MBIM_NW_ERROR_GPRS_AND_NON_GPRS_NOT_ALLOWED:
+ return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_NOT_ALLOWED,
+ "GPRS and non-GPRS not allowed");
+ case MBIM_NW_ERROR_PLMN_NOT_ALLOWED:
+ return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_PLMN_NOT_ALLOWED,
+ "PLMN not allowed");
+ case MBIM_NW_ERROR_LOCATION_AREA_NOT_ALLOWED:
+ return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_LOCATION_NOT_ALLOWED,
+ "Location area not allowed");
+ case MBIM_NW_ERROR_ROAMING_NOT_ALLOWED_IN_LOCATION_AREA:
+ return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_ROAMING_NOT_ALLOWED,
+ "Roaming not allowed in location area");
+ case MBIM_NW_ERROR_GPRS_NOT_ALLOWED_IN_PLMN:
+ return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_NOT_ALLOWED,
+ "GPRS not allowed in PLMN");
+ case MBIM_NW_ERROR_NO_CELLS_IN_LOCATION_AREA:
+ return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_NO_CELLS_IN_LOCATION_AREA,
+ "No cells in location area");
+ case MBIM_NW_ERROR_NETWORK_FAILURE:
+ return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_NETWORK_FAILURE,
+ "Network failure");
+ case MBIM_NW_ERROR_CONGESTION:
+ return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_CONGESTION,
+ "Congestion");
+ default:
+ return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_GPRS_UNKNOWN,
+ "Unknown error (%u)",
+ nw_error);
+ }
+}