aboutsummaryrefslogtreecommitdiff
path: root/src/mm-modem-helpers-qmi.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2021-04-06 23:39:38 +0200
committerAleksander Morgado <aleksander@aleksander.es>2021-04-29 10:13:22 +0000
commit865014510a976fdccb1c59d5bcf41bd8cbfc46d1 (patch)
tree983352071da26c655a5bfc8f532a31d2b8ca18d6 /src/mm-modem-helpers-qmi.c
parent5d2db5de9823301ad49abe2406351889bef3bf92 (diff)
broadband-modem-qmi: implement profile management support
Diffstat (limited to 'src/mm-modem-helpers-qmi.c')
-rw-r--r--src/mm-modem-helpers-qmi.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/mm-modem-helpers-qmi.c b/src/mm-modem-helpers-qmi.c
index 6e3c5008..2b68ff18 100644
--- a/src/mm-modem-helpers-qmi.c
+++ b/src/mm-modem-helpers-qmi.c
@@ -1550,6 +1550,52 @@ mm_bearer_ip_family_to_qmi_pdp_type (MMBearerIpFamily ip_family,
}
}
+QmiWdsApnTypeMask
+mm_bearer_apn_type_to_qmi_apn_type (MMBearerApnType apn_type,
+ gpointer log_object)
+{
+ guint64 value = 0;
+
+ if (apn_type == MM_BEARER_APN_TYPE_NONE) {
+ mm_obj_dbg (log_object, "using default (internet) APN type");
+ return QMI_WDS_APN_TYPE_MASK_DEFAULT;
+ }
+
+ if (apn_type & MM_BEARER_APN_TYPE_DEFAULT)
+ value |= QMI_WDS_APN_TYPE_MASK_DEFAULT;
+ if (apn_type & MM_BEARER_APN_TYPE_IMS)
+ value |= QMI_WDS_APN_TYPE_MASK_IMS;
+ if (apn_type & MM_BEARER_APN_TYPE_MMS)
+ value |= QMI_WDS_APN_TYPE_MASK_MMS;
+ if (apn_type & MM_BEARER_APN_TYPE_MANAGEMENT)
+ value |= QMI_WDS_APN_TYPE_MASK_FOTA;
+ if (apn_type & MM_BEARER_APN_TYPE_INITIAL)
+ value |= QMI_WDS_APN_TYPE_MASK_IA;
+ if (apn_type & MM_BEARER_APN_TYPE_EMERGENCY)
+ value |= QMI_WDS_APN_TYPE_MASK_EMERGENCY;
+ return value;
+}
+
+MMBearerApnType
+mm_bearer_apn_type_from_qmi_apn_type (QmiWdsApnTypeMask apn_type)
+{
+ MMBearerApnType value = MM_BEARER_APN_TYPE_NONE;
+
+ if (apn_type & QMI_WDS_APN_TYPE_MASK_DEFAULT)
+ value |= MM_BEARER_APN_TYPE_DEFAULT;
+ if (apn_type & QMI_WDS_APN_TYPE_MASK_IMS)
+ value |= MM_BEARER_APN_TYPE_IMS;
+ if (apn_type & QMI_WDS_APN_TYPE_MASK_MMS)
+ value |= MM_BEARER_APN_TYPE_MMS;
+ if (apn_type & QMI_WDS_APN_TYPE_MASK_FOTA)
+ value |= MM_BEARER_APN_TYPE_MANAGEMENT;
+ if (apn_type & QMI_WDS_APN_TYPE_MASK_IA)
+ value |= MM_BEARER_APN_TYPE_INITIAL;
+ if (apn_type & QMI_WDS_APN_TYPE_MASK_EMERGENCY)
+ value |= MM_BEARER_APN_TYPE_EMERGENCY;
+ return value;
+}
+
/*****************************************************************************/
/* QMI/WDA to MM translations */