summaryrefslogtreecommitdiff
path: root/src/libmbim-glib
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2020-11-26 00:00:23 +0100
committerAleksander Morgado <aleksander@aleksander.es>2020-11-26 00:49:14 +0100
commitfe83ee4c1a28d5282cb5b4ff7d1f08b8b623b152 (patch)
tree496b4a3acbbb61b13442ed95050713643257e1ca /src/libmbim-glib
parentd0ecfdab87dde3e2c63c7d034e7d8199bfb2921f (diff)
sar: new service
For now just with the "Config" message, and mbimcli query support.
Diffstat (limited to 'src/libmbim-glib')
-rw-r--r--src/libmbim-glib/generated/Makefile.am12
-rw-r--r--src/libmbim-glib/libmbim-glib.h1
-rw-r--r--src/libmbim-glib/mbim-cid.c15
-rw-r--r--src/libmbim-glib/mbim-cid.h16
-rw-r--r--src/libmbim-glib/mbim-enums.h39
-rw-r--r--src/libmbim-glib/mbim-message.c4
-rw-r--r--src/libmbim-glib/mbim-uuid.c13
-rw-r--r--src/libmbim-glib/mbim-uuid.h13
-rw-r--r--src/libmbim-glib/test/test-cid.c9
-rw-r--r--src/libmbim-glib/test/test-uuid.c8
10 files changed, 130 insertions, 0 deletions
diff --git a/src/libmbim-glib/generated/Makefile.am b/src/libmbim-glib/generated/Makefile.am
index ee0932e..9ee7bcb 100644
--- a/src/libmbim-glib/generated/Makefile.am
+++ b/src/libmbim-glib/generated/Makefile.am
@@ -12,6 +12,7 @@ GENERATED_H = \
mbim-dss.h \
mbim-ms-firmware-id.h \
mbim-ms-host-shutdown.h \
+ mbim-ms-sar.h \
mbim-proxy-control.h \
mbim-qmi.h \
mbim-atds.h \
@@ -31,6 +32,7 @@ GENERATED_C = \
mbim-dss.c \
mbim-ms-firmware-id.c \
mbim-ms-host-shutdown.c \
+ mbim-ms-sar.c \
mbim-proxy-control.c \
mbim-qmi.c \
mbim-atds.c \
@@ -47,6 +49,7 @@ GENERATED_SECTIONS = \
mbim-dss.sections \
mbim-ms-firmware-id.sections \
mbim-ms-host-shutdown.sections \
+ mbim-ms-sar.sections \
mbim-proxy-control.sections \
mbim-qmi.sections \
mbim-atds.sections \
@@ -173,6 +176,15 @@ mbim-ms-host-shutdown.h mbim-ms-host-shutdown.c mbim-ms-host-shutdown.sections:
--input $(top_srcdir)/data/mbim-service-ms-host-shutdown.json \
--output mbim-ms-host-shutdown
+# Microsoft SAR service
+mbim-ms-sar.h mbim-ms-sar.c mbim-ms-sar.sections: $(top_srcdir)/data/mbim-service-ms-sar.json $(top_srcdir)/build-aux/mbim-codegen/*.py $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen
+ $(AM_V_GEN) \
+ rm -f mbim-ms-sar.h && \
+ rm -f mbim-ms-sar.c && \
+ $(PYTHON) $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen \
+ --input $(top_srcdir)/data/mbim-service-ms-sar.json \
+ --output mbim-ms-sar
+
# Proxy Control service
mbim-proxy-control.h mbim-proxy-control.c mbim-proxy-control.sections: $(top_srcdir)/data/mbim-service-proxy-control.json $(top_srcdir)/build-aux/mbim-codegen/*.py $(top_srcdir)/build-aux/mbim-codegen/mbim-codegen
$(AM_V_GEN) \
diff --git a/src/libmbim-glib/libmbim-glib.h b/src/libmbim-glib/libmbim-glib.h
index 6af2953..e61c294 100644
--- a/src/libmbim-glib/libmbim-glib.h
+++ b/src/libmbim-glib/libmbim-glib.h
@@ -48,6 +48,7 @@
#include "mbim-dss.h"
#include "mbim-ms-firmware-id.h"
#include "mbim-ms-host-shutdown.h"
+#include "mbim-ms-sar.h"
#include "mbim-qmi.h"
#include "mbim-atds.h"
#include "mbim-intel-firmware-update.h"
diff --git a/src/libmbim-glib/mbim-cid.c b/src/libmbim-glib/mbim-cid.c
index ca2bb63..1bec559 100644
--- a/src/libmbim-glib/mbim-cid.c
+++ b/src/libmbim-glib/mbim-cid.c
@@ -128,6 +128,13 @@ static const CidConfig cid_ms_host_shutdown_config [MBIM_CID_MS_HOST_SHUTDOWN_LA
};
/* Note: index of the array is CID-1 */
+#define MBIM_CID_MS_SAR_LAST MBIM_CID_MS_SAR_TRANSMISSION_STATUS
+static const CidConfig cid_ms_sar_config [MBIM_CID_MS_SAR_LAST] = {
+ { SET, QUERY, NOTIFY }, /* MBIM_CID_MS_SAR_CONFIG */
+ { SET, QUERY, NOTIFY }, /* MBIM_CID_MS_SAR_TRANSMISSION_STATUS */
+};
+
+/* Note: index of the array is CID-1 */
#define MBIM_CID_PROXY_CONTROL_LAST MBIM_CID_PROXY_CONTROL_CONFIGURATION
static const CidConfig cid_proxy_control_config [MBIM_CID_PROXY_CONTROL_LAST] = {
{ SET, NO_QUERY, NO_NOTIFY }, /* MBIM_CID_PROXY_CONTROL_CONFIGURATION */
@@ -199,6 +206,8 @@ mbim_cid_can_set (MbimService service,
return cid_ms_firmware_id_config[cid - 1].set;
case MBIM_SERVICE_MS_HOST_SHUTDOWN:
return cid_ms_host_shutdown_config[cid - 1].set;
+ case MBIM_SERVICE_MS_SAR:
+ return cid_ms_sar_config[cid - 1].set;
case MBIM_SERVICE_PROXY_CONTROL:
return cid_proxy_control_config[cid - 1].set;
case MBIM_SERVICE_QMI:
@@ -246,6 +255,8 @@ mbim_cid_can_query (MbimService service,
return cid_ms_firmware_id_config[cid - 1].query;
case MBIM_SERVICE_MS_HOST_SHUTDOWN:
return cid_ms_host_shutdown_config[cid - 1].query;
+ case MBIM_SERVICE_MS_SAR:
+ return cid_ms_sar_config[cid - 1].query;
case MBIM_SERVICE_PROXY_CONTROL:
return cid_proxy_control_config[cid - 1].query;
case MBIM_SERVICE_QMI:
@@ -293,6 +304,8 @@ mbim_cid_can_notify (MbimService service,
return cid_ms_firmware_id_config[cid - 1].notify;
case MBIM_SERVICE_MS_HOST_SHUTDOWN:
return cid_ms_host_shutdown_config[cid - 1].notify;
+ case MBIM_SERVICE_MS_SAR:
+ return cid_ms_sar_config[cid - 1].notify;
case MBIM_SERVICE_PROXY_CONTROL:
return cid_proxy_control_config[cid - 1].notify;
case MBIM_SERVICE_QMI:
@@ -341,6 +354,8 @@ mbim_cid_get_printable (MbimService service,
return mbim_cid_ms_firmware_id_get_string (cid);
case MBIM_SERVICE_MS_HOST_SHUTDOWN:
return mbim_cid_ms_host_shutdown_get_string (cid);
+ case MBIM_SERVICE_MS_SAR:
+ return mbim_cid_ms_sar_get_string (cid);
case MBIM_SERVICE_PROXY_CONTROL:
return mbim_cid_proxy_control_get_string (cid);
case MBIM_SERVICE_QMI:
diff --git a/src/libmbim-glib/mbim-cid.h b/src/libmbim-glib/mbim-cid.h
index 974aaaa..f2e8fc5 100644
--- a/src/libmbim-glib/mbim-cid.h
+++ b/src/libmbim-glib/mbim-cid.h
@@ -234,6 +234,22 @@ typedef enum { /*< since=1.8 >*/
} MbimCidMsHostShutdown;
/**
+ * MbimCidMsSar:
+ * @MBIM_CID_MS_SAR_UNKNOWN: Unknown command.
+ * @MBIM_CID_MS_SAR_CONFIG: SAR backoff mode and level configuration.
+ * @MBIM_CID_MS_SAR_TRANSMISSION_STATUS: Transmission status indication setup.
+ *
+ * MBIM commands in the %MBIM_SERVICE_MS_SAR service.
+ *
+ * Since: 1.26
+ */
+typedef enum { /*< since=1.26 >*/
+ MBIM_CID_MS_SAR_UNKNOWN = 0,
+ MBIM_CID_MS_SAR_CONFIG = 1,
+ MBIM_CID_MS_SAR_TRANSMISSION_STATUS = 2
+} MbimCidMsSar;
+
+/**
* MbimCidProxyControl:
* @MBIM_CID_PROXY_CONTROL_UNKNOWN: Unknown command.
* @MBIM_CID_PROXY_CONTROL_CONFIGURATION: Configuration.
diff --git a/src/libmbim-glib/mbim-enums.h b/src/libmbim-glib/mbim-enums.h
index 7434397..8e6da3a 100644
--- a/src/libmbim-glib/mbim-enums.h
+++ b/src/libmbim-glib/mbim-enums.h
@@ -1212,6 +1212,45 @@ typedef enum { /*< since=1.18 >*/
MBIM_LTE_ATTACH_STATE_ATTACHED = 1
} MbimLteAttachState;
+/*****************************************************************************/
+/* 'SAR config' enums */
+
+/**
+ * MbimSarControlMode:
+ * @MBIM_SAR_CONTROL_MODE_DEVICE: SAR backoff is controlled by the modem directly.
+ * @MBIM_SAR_CONTROL_MODE_OS: SAR backoff is controlled by the host operating system.
+ *
+ * SAR backoff mechanism control modes.
+ */
+typedef enum { /*< since=1.26 >*/
+ MBIM_SAR_CONTROL_MODE_DEVICE = 0,
+ MBIM_SAR_CONTROL_MODE_OS = 1
+} MbimSarControlMode;
+
+/**
+ * MbimSarBackoffState:
+ * @MBIM_SAR_BACKOFF_STATE_DISABLED: SAR backoff is disabled.
+ * @MBIM_SAR_BACKOFF_STATE_ENABLED: SAR backoff is enabled.
+ *
+ * SAR backoff state.
+ */
+typedef enum { /*< since=1.26 >*/
+ MBIM_SAR_BACKOFF_STATE_DISABLED = 0,
+ MBIM_SAR_BACKOFF_STATE_ENABLED = 1
+} MbimSarBackoffState;
+
+/**
+ * MbimSarWifiHardwareState:
+ * @MBIM_SAR_WIFI_HARDWARE_STATE_INTEGRATED: Integrated.
+ * @MBIM_SAR_WIFI_HARDWARE_STATE_NOT_INTEGRATED: Not integrated.
+ *
+ * Whether the Wi-Fi and cellular SAR are integrated at hardware level.
+ */
+typedef enum { /*< since=1.26 >*/
+ MBIM_SAR_WIFI_HARDWARE_STATE_INTEGRATED = 0,
+ MBIM_SAR_WIFI_HARDWARE_STATE_NOT_INTEGRATED = 1
+} MbimSarWifiHardwareState;
+
G_END_DECLS
#endif /* _LIBMBIM_GLIB_MBIM_ENUMS_H_ */
diff --git a/src/libmbim-glib/mbim-message.c b/src/libmbim-glib/mbim-message.c
index 49a6e56..1ea1253 100644
--- a/src/libmbim-glib/mbim-message.c
+++ b/src/libmbim-glib/mbim-message.c
@@ -43,6 +43,7 @@
#include "mbim-qmi.h"
#include "mbim-ms-firmware-id.h"
#include "mbim-ms-host-shutdown.h"
+#include "mbim-ms-sar.h"
#include "mbim-atds.h"
#include "mbim-intel-firmware-update.h"
#include "mbim-ms-basic-connect-extensions.h"
@@ -1517,6 +1518,9 @@ mbim_message_get_printable (const MbimMessage *self,
case MBIM_SERVICE_MS_HOST_SHUTDOWN:
fields_printable = __mbim_message_ms_host_shutdown_get_printable_fields (self, line_prefix, &error);
break;
+ case MBIM_SERVICE_MS_SAR:
+ fields_printable = __mbim_message_ms_sar_get_printable_fields (self, line_prefix, &error);
+ break;
case MBIM_SERVICE_PROXY_CONTROL:
fields_printable = __mbim_message_proxy_control_get_printable_fields (self, line_prefix, &error);
break;
diff --git a/src/libmbim-glib/mbim-uuid.c b/src/libmbim-glib/mbim-uuid.c
index d5410e7..bfca02a 100644
--- a/src/libmbim-glib/mbim-uuid.c
+++ b/src/libmbim-glib/mbim-uuid.c
@@ -182,6 +182,14 @@ static const MbimUuid uuid_ms_host_shutdown = {
.e = { 0x27, 0xd7, 0xfb, 0x80, 0x95, 0x9c }
};
+static const MbimUuid uuid_ms_sar = {
+ .a = { 0x68, 0x22, 0x3d, 0x04 },
+ .b = { 0x9f, 0x6c },
+ .c = { 0x4e, 0x0f },
+ .d = { 0x82, 0x2d },
+ .e = { 0x28, 0x44, 0x1f, 0xb7, 0x23, 0x40 }
+};
+
static const MbimUuid uuid_proxy_control = {
.a = { 0x83, 0x8c, 0xf7, 0xfb },
.b = { 0x8d, 0x0d },
@@ -336,6 +344,8 @@ mbim_uuid_from_service (MbimService service)
return &uuid_ms_firmware_id;
case MBIM_SERVICE_MS_HOST_SHUTDOWN:
return &uuid_ms_host_shutdown;
+ case MBIM_SERVICE_MS_SAR:
+ return &uuid_ms_sar;
case MBIM_SERVICE_PROXY_CONTROL:
return &uuid_proxy_control;
case MBIM_SERVICE_QMI:
@@ -389,6 +399,9 @@ mbim_uuid_to_service (const MbimUuid *uuid)
if (mbim_uuid_cmp (uuid, &uuid_ms_host_shutdown))
return MBIM_SERVICE_MS_HOST_SHUTDOWN;
+ if (mbim_uuid_cmp (uuid, &uuid_ms_sar))
+ return MBIM_SERVICE_MS_SAR;
+
if (mbim_uuid_cmp (uuid, &uuid_proxy_control))
return MBIM_SERVICE_PROXY_CONTROL;
diff --git a/src/libmbim-glib/mbim-uuid.h b/src/libmbim-glib/mbim-uuid.h
index 5750811..52e7388 100644
--- a/src/libmbim-glib/mbim-uuid.h
+++ b/src/libmbim-glib/mbim-uuid.h
@@ -122,6 +122,7 @@ gboolean mbim_uuid_from_printable (const gchar *str,
* @MBIM_SERVICE_ATDS: ATT Device service. Since 1.16.
* @MBIM_SERVICE_INTEL_FIRMWARE_UPDATE: Intel firmware update service. Since 1.16.
* @MBIM_SERVICE_MS_BASIC_CONNECT_EXTENSIONS: Microsoft basic connectivity extensions service. Since 1.18.
+ * @MBIM_SERVICE_MS_SAR: Microsoft SAR service. Since 1.26.
* @MBIM_SERVICE_LAST: Internal value.
*
* Enumeration of the generic MBIM services.
@@ -144,6 +145,7 @@ typedef enum { /*< since=1.0 >*/
MBIM_SERVICE_ATDS = 12,
MBIM_SERVICE_INTEL_FIRMWARE_UPDATE = 13,
MBIM_SERVICE_MS_BASIC_CONNECT_EXTENSIONS = 14,
+ MBIM_SERVICE_MS_SAR = 15,
#if defined LIBMBIM_GLIB_COMPILATION
MBIM_SERVICE_LAST /*< skip >*/
#endif
@@ -260,6 +262,17 @@ typedef enum { /*< since=1.0 >*/
#define MBIM_UUID_MS_HOST_SHUTDOWN mbim_uuid_from_service (MBIM_SERVICE_MS_HOST_SHUTDOWN)
/**
+ * MBIM_UUID_MS_SAR:
+ *
+ * Get the UUID of the %MBIM_SERVICE_MS_SAR service.
+ *
+ * Returns: (transfer none): a #MbimUuid.
+ *
+ * Since: 1.26
+ */
+#define MBIM_UUID_MS_SAR mbim_uuid_from_service (MBIM_SERVICE_MS_SAR)
+
+/**
* MBIM_UUID_PROXY_CONTROL:
*
* Get the UUID of the %MBIM_SERVICE_PROXY_CONTROL service.
diff --git a/src/libmbim-glib/test/test-cid.c b/src/libmbim-glib/test/test-cid.c
index d99b5b6..22efc6f 100644
--- a/src/libmbim-glib/test/test-cid.c
+++ b/src/libmbim-glib/test/test-cid.c
@@ -121,6 +121,14 @@ test_cid_ms_host_shutdown (void)
TRUE, FALSE, FALSE);
}
+static void
+test_cid_ms_sar (void)
+{
+ test_common (MBIM_SERVICE_MS_SAR,
+ MBIM_CID_MS_SAR_CONFIG,
+ TRUE, TRUE, TRUE);
+}
+
int main (int argc, char **argv)
{
g_test_init (&argc, &argv, NULL);
@@ -134,6 +142,7 @@ int main (int argc, char **argv)
g_test_add_func ("/libmbim-glib/cid/dss", test_cid_dss);
g_test_add_func ("/libmbim-glib/cid/ms-firmware-id", test_cid_ms_firmware_id);
g_test_add_func ("/libmbim-glib/cid/ms-host-shutdown", test_cid_ms_host_shutdown);
+ g_test_add_func ("/libmbim-glib/cid/ms-sar", test_cid_ms_sar);
return g_test_run ();
}
diff --git a/src/libmbim-glib/test/test-uuid.c b/src/libmbim-glib/test/test-uuid.c
index 6048495..05c8f63 100644
--- a/src/libmbim-glib/test/test-uuid.c
+++ b/src/libmbim-glib/test/test-uuid.c
@@ -92,6 +92,13 @@ test_uuid_ms_host_shutdown (void)
}
static void
+test_uuid_ms_sar (void)
+{
+ compare_uuid_strings (MBIM_UUID_MS_SAR,
+ "68223d04-9f6c-4e0f-822d-28441fb72340");
+}
+
+static void
test_uuid_intel_firmware_update (void)
{
compare_uuid_strings (MBIM_UUID_INTEL_FIRMWARE_UPDATE,
@@ -214,6 +221,7 @@ int main (int argc, char **argv)
g_test_add_func ("/libmbim-glib/uuid/dss", test_uuid_dss);
g_test_add_func ("/libmbim-glib/uuid/ms-firmware-id", test_uuid_ms_firmware_id);
g_test_add_func ("/libmbim-glib/uuid/ms-host-shutdown", test_uuid_ms_host_shutdown);
+ g_test_add_func ("/libmbim-glib/uuid/ms-sar", test_uuid_ms_sar);
g_test_add_func ("/libmbim-glib/uuid/intel-firmware-update", test_uuid_intel_firmware_update);
g_test_add_func ("/libmbim-glib/uuid/ms-basic-connect-extensions", test_uuid_ms_basic_connect_extensions);