summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPrakash Pabba <quic_ppabba@quicinc.com>2022-04-21 18:40:22 +0530
committerPrakash Pabba <quic_ppabba@quicinc.com>2022-04-27 18:03:16 +0530
commit84ad9ecd719c70fae810ee8d1c680c367f0db5a0 (patch)
tree2a96c7af01b030f7f8f61b19f359f85139e33a05
parent4ccde109669349c3642ab48e6f7846c60dd566cd (diff)
dsd: add DSD system status TLVs support
-rw-r--r--data/qmi-service-dsd.json72
-rw-r--r--docs/reference/libqmi-glib/libqmi-glib-common.sections15
-rw-r--r--docs/reference/libqmi-glib/libqmi-glib-docs.xml6
-rw-r--r--src/libqmi-glib/qmi-enums-dsd.h49
-rw-r--r--src/libqmi-glib/qmi-flags64-dsd.h89
-rw-r--r--src/qmicli/qmicli-dsd.c83
6 files changed, 312 insertions, 2 deletions
diff --git a/data/qmi-service-dsd.json b/data/qmi-service-dsd.json
index d5cf84e..ac6b270 100644
--- a/data/qmi-service-dsd.json
+++ b/data/qmi-service-dsd.json
@@ -12,7 +12,75 @@
{ "name" : "QMI Message DSD",
"type" : "Message-ID-Enum" },
-// *********************************************************************************
+ // *********************************************************************************
+ { "name" : "QMI Indication DSD",
+ "type" : "Indication-ID-Enum" },
+
+ // *********************************************************************************
+ { "name" : "Get System Status",
+ "type" : "Message",
+ "service" : "DSD",
+ "id" : "0x0024",
+ "since" : "1.32",
+ "output" : [ { "common-ref" : "Operation Result" },
+ { "name" : "Available Systems",
+ "id" : "0x10",
+ "type" : "TLV",
+ "since" : "1.32",
+ "format" : "array",
+ "size-prefix-format" : "guint8",
+ "array-element" : { "name" : "System",
+ "format" : "struct",
+ "contents" : [ { "name" : "Technology",
+ "format" : "guint32",
+ "public-format" : "QmiDsdDataSystemNetworkType" },
+ { "name" : "RAT",
+ "format" : "guint32",
+ "public-format" : "QmiDsdRadioAccessTechnology" },
+ { "name" : "SO Mask",
+ "format" : "guint64",
+ "public-format" : "QmiDsdSoMask" } ] } } ] },
+
+ // *********************************************************************************
+ { "name" : "System Status Change",
+ "type" : "Message",
+ "service" : "DSD",
+ "id" : "0x0025",
+ "since" : "1.32",
+ "input" : [ { "name" : "Register Indication",
+ "id" : "0x11",
+ "mandatory" : "no",
+ "type" : "TLV",
+ "since" : "1.32",
+ "format" : "guint8",
+ "public-format" : "gboolean" } ],
+ "output" : [ { "common-ref" : "Operation Result" } ] },
+
+ // *********************************************************************************
+ { "name" : "System Status",
+ "type" : "Indication",
+ "service" : "DSD",
+ "id" : "0x0026",
+ "since" : "1.32",
+ "output" : [ { "name" : "Available Systems",
+ "id" : "0x10",
+ "type" : "TLV",
+ "since" : "1.32",
+ "format" : "array",
+ "size-prefix-format" : "guint8",
+ "array-element" : { "name" : "System",
+ "format" : "struct",
+ "contents" : [ { "name" : "Technology",
+ "format" : "guint32",
+ "public-format" : "QmiDsdDataSystemNetworkType" },
+ { "name" : "RAT",
+ "format" : "guint32",
+ "public-format" : "QmiDsdRadioAccessTechnology" },
+ { "name" : "SO Mask",
+ "format" : "guint64",
+ "public-format" : "QmiDsdSoMask" } ] } } ] },
+
+ // *********************************************************************************
{ "name" : "Get APN Info",
"type" : "Message",
"service" : "DSD",
@@ -33,7 +101,7 @@
"since" : "1.26",
"format" : "string" } ] },
-// *********************************************************************************
+ // *********************************************************************************
{ "name" : "Set APN Type",
"type" : "Message",
"service" : "DSD",
diff --git a/docs/reference/libqmi-glib/libqmi-glib-common.sections b/docs/reference/libqmi-glib/libqmi-glib-common.sections
index fa98260..dcb973e 100644
--- a/docs/reference/libqmi-glib/libqmi-glib-common.sections
+++ b/docs/reference/libqmi-glib/libqmi-glib-common.sections
@@ -1541,17 +1541,32 @@ qmi_gas_usb_composition_endpoint_type_get_type
<TITLE>DSD enumerations and flags</TITLE>
QmiDsdApnType
QmiDsdApnTypePreference
+QmiDsdDataSystemNetworkType
+QmiDsdRadioAccessTechnology
+QmiDsdSoMask
<SUBSECTION Methods>
qmi_dsd_apn_type_get_string
qmi_dsd_apn_type_preference_build_string_from_mask
+qmi_dsd_data_system_network_type_get_string
+qmi_dsd_radio_access_technology_get_string
+qmi_dsd_so_mask_build_string_from_mask
<SUBSECTION Private>
qmi_dsd_apn_type_build_string_from_mask
qmi_dsd_apn_type_preference_get_string
+qmi_dsd_data_system_network_type_build_string_from_mask
+qmi_dsd_radio_access_technology_build_string_from_mask
+qmi_dsd_so_mask_get_string
<SUBSECTION Standard>
QMI_TYPE_DSD_APN_TYPE
QMI_TYPE_DSD_APN_TYPE_PREFERENCE
+QMI_TYPE_DSD_DATA_SYSTEM_NETWORK_TYPE
+QMI_TYPE_DSD_RADIO_ACCESS_TECHNOLOGY
+QMI_TYPE_DSD_SO_MASK
qmi_dsd_apn_type_get_type
qmi_dsd_apn_type_preference_get_type
+qmi_dsd_data_system_network_type_get_type
+qmi_dsd_radio_access_technology_get_type
+qmi_dsd_so_mask_get_type
</SECTION>
<SECTION>
diff --git a/docs/reference/libqmi-glib/libqmi-glib-docs.xml b/docs/reference/libqmi-glib/libqmi-glib-docs.xml
index fce24da..52a6e3d 100644
--- a/docs/reference/libqmi-glib/libqmi-glib-docs.xml
+++ b/docs/reference/libqmi-glib/libqmi-glib-docs.xml
@@ -522,7 +522,13 @@
<xi:include href="xml/qmi-client-dsd.xml"/>
<xi:include href="xml/qmi-enums-dsd.xml"/>
<section>
+ <title>DSD Indications</title>
+ <xi:include href="xml/qmi-indication-dsd-system-status.xml"/>
+ </section>
+ <section>
<title>DSD Requests</title>
+ <xi:include href="xml/qmi-message-dsd-get-system-status.xml"/>
+ <xi:include href="xml/qmi-message-dsd-system-status-change.xml"/>
<xi:include href="xml/qmi-message-dsd-get-apn-info.xml"/>
<xi:include href="xml/qmi-message-dsd-set-apn-type.xml"/>
</section>
diff --git a/src/libqmi-glib/qmi-enums-dsd.h b/src/libqmi-glib/qmi-enums-dsd.h
index 7a52fd1..3cdeba5 100644
--- a/src/libqmi-glib/qmi-enums-dsd.h
+++ b/src/libqmi-glib/qmi-enums-dsd.h
@@ -18,6 +18,7 @@
* Boston, MA 02110-1301 USA.
*
* Copyright (C) 2019 Wang Jing <clifflily@hotmail.com>
+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc.
*/
#ifndef _LIBQMI_GLIB_QMI_ENUMS_DSD_H_
@@ -68,4 +69,52 @@ typedef enum { /*< since=1.26 >*/
QMI_DSD_APN_TYPE_EMERGENCY = 9,
} QmiDsdApnType;
+/**
+ * QmiDsdDataSystemNetworkType:
+ * @QMI_DSD_DATA_SYSTEM_NETWORK_TYPE_3GPP: 3GPP network type.
+ * @QMI_DSD_DATA_SYSTEM_NETWORK_TYPE_3GPP2: 3GPP2 network type.
+ * @QMI_DSD_DATA_SYSTEM_NETWORK_TYPE_WLAN: WLAN network type.
+ *
+ * Network type of the data system.
+ *
+ * Since: 1.32
+ */
+typedef enum { /*< since=1.32 >*/
+ QMI_DSD_DATA_SYSTEM_NETWORK_TYPE_3GPP = 0,
+ QMI_DSD_DATA_SYSTEM_NETWORK_TYPE_3GPP2 = 1,
+ QMI_DSD_DATA_SYSTEM_NETWORK_TYPE_WLAN = 2,
+} QmiDsdDataSystemNetworkType;
+
+/**
+ * QmiDsdRadioAccessTechnology:
+ * @QMI_DSD_RADIO_ACCESS_TECHNOLOGY_NULL_BEARER: null bearer
+ * @QMI_DSD_RADIO_ACCESS_TECHNOLOGY_3GPP_WCDMA: WCDMA.
+ * @QMI_DSD_RADIO_ACCESS_TECHNOLOGY_3GPP_GERAN: GERAN.
+ * @QMI_DSD_RADIO_ACCESS_TECHNOLOGY_3GPP_LTE: LTE.
+ * @QMI_DSD_RADIO_ACCESS_TECHNOLOGY_3GPP_TDSCDMA: TD-SDCMA.
+ * @QMI_DSD_RADIO_ACCESS_TECHNOLOGY_3GPP_WLAN: 3GPP WLAN.
+ * @QMI_DSD_RADIO_ACCESS_TECHNOLOGY_3GPP_5G: 5G.
+ * @QMI_DSD_RADIO_ACCESS_TECHNOLOGY_3GPP2_1X: CDMA 1x.
+ * @QMI_DSD_RADIO_ACCESS_TECHNOLOGY_3GPP2_HRPD: CDMA EVDO, HRPD.
+ * @QMI_DSD_RADIO_ACCESS_TECHNOLOGY_3GPP2_EHRPD: CDMA EVDO with eHRPD.
+ * @QMI_DSD_RADIO_ACCESS_TECHNOLOGY_3GPP2_WLAN: 3GPP2 WLAN.
+ *
+ * Radio access technology.
+ *
+ * Since: 1.32
+ */
+typedef enum { /*< since=1.32 >*/
+ QMI_DSD_RADIO_ACCESS_TECHNOLOGY_NULL_BEARER = 0,
+ QMI_DSD_RADIO_ACCESS_TECHNOLOGY_3GPP_WCDMA = 1,
+ QMI_DSD_RADIO_ACCESS_TECHNOLOGY_3GPP_GERAN = 2,
+ QMI_DSD_RADIO_ACCESS_TECHNOLOGY_3GPP_LTE = 3,
+ QMI_DSD_RADIO_ACCESS_TECHNOLOGY_3GPP_TDSCDMA = 4,
+ QMI_DSD_RADIO_ACCESS_TECHNOLOGY_3GPP_WLAN = 5,
+ QMI_DSD_RADIO_ACCESS_TECHNOLOGY_3GPP_5G = 6,
+ QMI_DSD_RADIO_ACCESS_TECHNOLOGY_3GPP2_1X = 101,
+ QMI_DSD_RADIO_ACCESS_TECHNOLOGY_3GPP2_HRPD = 102,
+ QMI_DSD_RADIO_ACCESS_TECHNOLOGY_3GPP2_EHRPD = 103,
+ QMI_DSD_RADIO_ACCESS_TECHNOLOGY_3GPP2_WLAN = 104,
+} QmiDsdRadioAccessTechnology;
+
#endif /* _LIBQMI_GLIB_QMI_ENUMS_DSD_H_ */
diff --git a/src/libqmi-glib/qmi-flags64-dsd.h b/src/libqmi-glib/qmi-flags64-dsd.h
index 7e90727..488819f 100644
--- a/src/libqmi-glib/qmi-flags64-dsd.h
+++ b/src/libqmi-glib/qmi-flags64-dsd.h
@@ -18,6 +18,7 @@
* Boston, MA 02110-1301 USA.
*
* Copyright (C) 2019 Wang Jing <clifflily@hotmail.com>
+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc.
*/
#ifndef _LIBQMI_GLIB_QMI_FLAGS64_DSD_H_
@@ -60,4 +61,92 @@ typedef enum { /*< since=1.26 >*/
QMI_DSD_APN_TYPE_PREFERENCE_EMERGENCY = ((guint64) 1) << QMI_DSD_APN_TYPE_EMERGENCY,
} QmiDsdApnTypePreference;
+/**
+ * QmiDsdSoMask:
+ * @QMI_DSD_3GPP_SO_MASK_WCDMA: WCDMA.
+ * @QMI_DSD_3GPP_SO_MASK_HSDPA: HSDPA.
+ * @QMI_DSD_3GPP_SO_MASK_HSUPA: HSUPA.
+ * @QMI_DSD_3GPP_SO_MASK_HSDPAPLUS: HSDPAPLUS.
+ * @QMI_DSD_3GPP_SO_MASK_DC_HSDPAPLUS: DC HSDPAPLUS.
+ * @QMI_DSD_3GPP_SO_MASK_64_QAM: 64 QAM.
+ * @QMI_DSD_3GPP_SO_MASK_HSPA: HSPA.
+ * @QMI_DSD_3GPP_SO_MASK_GPRS: GPRS.
+ * @QMI_DSD_3GPP_SO_MASK_EDGE: EDGE.
+ * @QMI_DSD_3GPP_SO_MASK_GSM: GSM.
+ * @QMI_DSD_3GPP_SO_MASK_S2B: S2B.
+ * @QMI_DSD_3GPP_SO_MASK_LTE_LIMITED_SRVC: LTE Limited Service.
+ * @QMI_DSD_3GPP_SO_MASK_LTE_FDD: LTE FDD.
+ * @QMI_DSD_3GPP_SO_MASK_LTE_TDD: LTE TDD.
+ * @QMI_DSD_3GPP_SO_MASK_TDSCDMA: TDSCDMA.
+ * @QMI_DSD_3GPP_SO_MASK_DC_HSUPA: DC_HSUPA.
+ * @QMI_DSD_3GPP_SO_MASK_LTE_CA_DL: LTE CA DL.
+ * @QMI_DSD_3GPP_SO_MASK_LTE_CA_UL: LTE CA UL.
+ * @QMI_DSD_3GPP_SO_MASK_S2B_LIMITED_SRVC: S2B Limited Service.
+ * @QMI_DSD_3GPP_SO_MASK_FOUR_POINT_FIVE_G: 4.5G.
+ * @QMI_DSD_3GPP_SO_MASK_FOUR_POINT_FIVE_G_PLUS: 4.5G+.
+ * @QMI_DSD_3GPP2_SO_MASK_1X_IS95: 1X IS95.
+ * @QMI_DSD_3GPP2_SO_MASK_1X_IS2000: 1X IS2000.
+ * @QMI_DSD_3GPP2_SO_MASK_1X_IS2000_REL_A: 1X IS2000 REL A.
+ * @QMI_DSD_3GPP2_SO_MASK_HDR_REV0_DPA: HDR REV0 DPA.
+ * @QMI_DSD_3GPP2_SO_MASK_HDR_REVA_DPA: HDR REVB DPA.
+ * @QMI_DSD_3GPP2_SO_MASK_HDR_REVB_DPA: HDR REVB DPA.
+ * @QMI_DSD_3GPP2_SO_MASK_HDR_REVA_MPA: HDR REVA MPA.
+ * @QMI_DSD_3GPP2_SO_MASK_HDR_REVB_MPA: HDR REVB MPA.
+ * @QMI_DSD_3GPP2_SO_MASK_HDR_REVA_EMPA: HDR REVA EMPA.
+ * @QMI_DSD_3GPP2_SO_MASK_HDR_REVB_EMPA: HDR REVB EMPA.
+ * @QMI_DSD_3GPP2_SO_MASK_HDR_REVB_MMPA: HDR REVB MMPA.
+ * @QMI_DSD_3GPP2_SO_MASK_HDR_EVDO_FMC: HDR EVDO FMC.
+ * @QMI_DSD_3GPP2_SO_MASK_1X_CS: 1X Circuit Switched.
+ * @QMI_DSD_3GPP_SO_MASK_5G_TDD: 5G TDD.
+ * @QMI_DSD_3GPP_SO_MASK_5G_SUB6: 5G SUB6.
+ * @QMI_DSD_3GPP_SO_MASK_5G_MMWAVE: 5G MMWAVE.
+ * @QMI_DSD_3GPP_SO_MASK_5G_NSA: 5G NSA.
+ * @QMI_DSD_3GPP_SO_MASK_5G_SA: 5G SA.
+ *
+ * Service Option (SO) mask.
+ *
+ * Since: 1.32
+ */
+typedef enum { /*< since=1.32 >*/
+ QMI_DSD_3GPP_SO_MASK_WCDMA = 1 << 0,
+ QMI_DSD_3GPP_SO_MASK_HSDPA = 1 << 1,
+ QMI_DSD_3GPP_SO_MASK_HSUPA = 1 << 2,
+ QMI_DSD_3GPP_SO_MASK_HSDPAPLUS = 1 << 3,
+ QMI_DSD_3GPP_SO_MASK_DC_HSDPAPLUS = 1 << 4,
+ QMI_DSD_3GPP_SO_MASK_64_QAM = 1 << 5,
+ QMI_DSD_3GPP_SO_MASK_HSPA = 1 << 6,
+ QMI_DSD_3GPP_SO_MASK_GPRS = 1 << 7,
+ QMI_DSD_3GPP_SO_MASK_EDGE = 1 << 8,
+ QMI_DSD_3GPP_SO_MASK_GSM = 1 << 9,
+ QMI_DSD_3GPP_SO_MASK_S2B = 1 << 10,
+ QMI_DSD_3GPP_SO_MASK_LTE_LIMITED_SRVC = 1 << 11,
+ QMI_DSD_3GPP_SO_MASK_LTE_FDD = 1 << 12,
+ QMI_DSD_3GPP_SO_MASK_LTE_TDD = 1 << 13,
+ QMI_DSD_3GPP_SO_MASK_TDSCDMA = 1 << 14,
+ QMI_DSD_3GPP_SO_MASK_DC_HSUPA = 1 << 15,
+ QMI_DSD_3GPP_SO_MASK_LTE_CA_DL = 1 << 16,
+ QMI_DSD_3GPP_SO_MASK_LTE_CA_UL = 1 << 17,
+ QMI_DSD_3GPP_SO_MASK_S2B_LIMITED_SRVC = 1 << 18,
+ QMI_DSD_3GPP_SO_MASK_FOUR_POINT_FIVE_G = 1 << 19,
+ QMI_DSD_3GPP_SO_MASK_FOUR_POINT_FIVE_G_PLUS = 1 << 20,
+ QMI_DSD_3GPP2_SO_MASK_1X_IS95 = 1 << 24,
+ QMI_DSD_3GPP2_SO_MASK_1X_IS2000 = 1 << 25,
+ QMI_DSD_3GPP2_SO_MASK_1X_IS2000_REL_A = 1 << 26,
+ QMI_DSD_3GPP2_SO_MASK_HDR_REV0_DPA = 1 << 27,
+ QMI_DSD_3GPP2_SO_MASK_HDR_REVA_DPA = 1 << 28,
+ QMI_DSD_3GPP2_SO_MASK_HDR_REVB_DPA = 1 << 29,
+ QMI_DSD_3GPP2_SO_MASK_HDR_REVA_MPA = 1 << 30,
+ QMI_DSD_3GPP2_SO_MASK_HDR_REVB_MPA = ((guint64) 1) << 31,
+ QMI_DSD_3GPP2_SO_MASK_HDR_REVA_EMPA = ((guint64) 1) << 32,
+ QMI_DSD_3GPP2_SO_MASK_HDR_REVB_EMPA = ((guint64) 1) << 33,
+ QMI_DSD_3GPP2_SO_MASK_HDR_REVB_MMPA = ((guint64) 1) << 34,
+ QMI_DSD_3GPP2_SO_MASK_HDR_EVDO_FMC = ((guint64) 1) << 35,
+ QMI_DSD_3GPP2_SO_MASK_1X_CS = ((guint64) 1) << 36,
+ QMI_DSD_3GPP_SO_MASK_5G_TDD = ((guint64) 1) << 40,
+ QMI_DSD_3GPP_SO_MASK_5G_SUB6 = ((guint64) 1) << 41,
+ QMI_DSD_3GPP_SO_MASK_5G_MMWAVE = ((guint64) 1) << 42,
+ QMI_DSD_3GPP_SO_MASK_5G_NSA = ((guint64) 1) << 43,
+ QMI_DSD_3GPP_SO_MASK_5G_SA = ((guint64) 1) << 44,
+} QmiDsdSoMask;
+
#endif /* _LIBQMI_GLIB_QMI_FLAGS64_DSD_H_ */
diff --git a/src/qmicli/qmicli-dsd.c b/src/qmicli/qmicli-dsd.c
index 543c777..44ee506 100644
--- a/src/qmicli/qmicli-dsd.c
+++ b/src/qmicli/qmicli-dsd.c
@@ -16,6 +16,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Copyright (C) 2019 Aleksander Morgado <aleksander@aleksander.es>
+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc.
*/
#include "config.h"
@@ -35,6 +36,9 @@
#if defined HAVE_QMI_SERVICE_DSD
+#undef VALIDATE_MASK_NONE
+#define VALIDATE_MASK_NONE(str) (str ? str : "none")
+
/* Context */
typedef struct {
QmiDevice *device;
@@ -46,6 +50,7 @@ static Context *ctx;
/* Options */
static gchar *get_apn_info_str;
static gchar *set_apn_type_str;
+static gboolean get_system_status_flag;
static gboolean noop_flag;
static GOptionEntry entries[] = {
@@ -61,6 +66,13 @@ static GOptionEntry entries[] = {
"[(name), (type1|type2|type3...)]"
},
#endif
+#if defined HAVE_QMI_MESSAGE_DSD_GET_SYSTEM_STATUS
+ { "dsd-get-system-status", 0, 0, G_OPTION_ARG_NONE, &get_system_status_flag,
+ "Gets system status",
+ NULL
+ },
+#endif
+
{ "dsd-noop", 0, 0, G_OPTION_ARG_NONE, &noop_flag,
"Just allocate or release a DSD client. Use with `--client-no-release-cid' and/or `--client-cid'",
NULL
@@ -94,6 +106,7 @@ qmicli_dsd_options_enabled (void)
n_actions = (!!get_apn_info_str +
!!set_apn_type_str +
+ get_system_status_flag +
noop_flag);
if (n_actions > 1) {
@@ -261,6 +274,63 @@ set_apn_type_input_create (const gchar *str)
#endif /* HAVE_QMI_MESSAGE_DSD_SET_APN_TYPE */
+#if defined HAVE_QMI_MESSAGE_DSD_GET_SYSTEM_STATUS
+
+static void
+get_system_status_ready (QmiClientDsd *client,
+ GAsyncResult *res)
+{
+ QmiMessageDsdGetSystemStatusOutput *output;
+ GError *error = NULL;
+ GArray *available_systems = NULL;
+ guint i;
+
+ output = qmi_client_dsd_get_system_status_finish (client, res, &error);
+ if (!output) {
+ g_printerr ("error: operation failed: %s\n", error->message);
+ g_error_free (error);
+ operation_shutdown (FALSE);
+ return;
+ }
+
+ if (!qmi_message_dsd_get_system_status_output_get_result (output, &error)) {
+ g_printerr ("error: couldn't get system status: %s\n", error->message);
+ g_error_free (error);
+ qmi_message_dsd_get_system_status_output_unref (output);
+ operation_shutdown (FALSE);
+ return;
+ }
+
+ qmi_message_dsd_get_system_status_output_get_available_systems (output, &available_systems, NULL);
+
+ if (!available_systems || !available_systems->len) {
+ g_print ("No available data system\n");
+ } else {
+ g_print ("Available data systems retrieved:\n");
+ for (i = 0; i < available_systems->len; i++) {
+ QmiMessageDsdGetSystemStatusOutputAvailableSystemsSystem *system;
+ g_autofree gchar *so_mask_str = NULL;
+
+ system = &g_array_index (available_systems, QmiMessageDsdGetSystemStatusOutputAvailableSystemsSystem, i);
+ so_mask_str = qmi_dsd_so_mask_build_string_from_mask ((QmiDsdSoMask)system->so_mask);
+ g_print ("System [%u]%s:\n"
+ "\tNetwork type: '%s'\n"
+ "\tRAT: '%s'\n"
+ "\tService option: '%s'\n",
+ i,
+ i > 0 ? "" : " (current preferred)",
+ qmi_dsd_data_system_network_type_get_string (system->technology),
+ qmi_dsd_radio_access_technology_get_string (system->rat),
+ VALIDATE_MASK_NONE (so_mask_str));
+ }
+ }
+
+ qmi_message_dsd_get_system_status_output_unref (output);
+ operation_shutdown (TRUE);
+}
+
+#endif /* HAVE_QMI_MESSAGE_DSD_GET_SYSTEM_STATUS */
+
static gboolean
noop_cb (gpointer unused)
{
@@ -321,6 +391,19 @@ qmicli_dsd_run (QmiDevice *device,
}
#endif
+#if defined HAVE_QMI_MESSAGE_DSD_GET_SYSTEM_STATUS
+ if (get_system_status_flag) {
+ g_debug ("Asynchronously getting system status...");
+ qmi_client_dsd_get_system_status (ctx->client,
+ NULL,
+ 10,
+ ctx->cancellable,
+ (GAsyncReadyCallback)get_system_status_ready,
+ NULL);
+ return;
+ }
+#endif
+
/* Just client allocate/release? */
if (noop_flag) {
g_idle_add (noop_cb, NULL);