diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2020-11-26 00:00:23 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2020-11-26 00:49:14 +0100 |
commit | fe83ee4c1a28d5282cb5b4ff7d1f08b8b623b152 (patch) | |
tree | 496b4a3acbbb61b13442ed95050713643257e1ca /src/libmbim-glib | |
parent | d0ecfdab87dde3e2c63c7d034e7d8199bfb2921f (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.am | 12 | ||||
-rw-r--r-- | src/libmbim-glib/libmbim-glib.h | 1 | ||||
-rw-r--r-- | src/libmbim-glib/mbim-cid.c | 15 | ||||
-rw-r--r-- | src/libmbim-glib/mbim-cid.h | 16 | ||||
-rw-r--r-- | src/libmbim-glib/mbim-enums.h | 39 | ||||
-rw-r--r-- | src/libmbim-glib/mbim-message.c | 4 | ||||
-rw-r--r-- | src/libmbim-glib/mbim-uuid.c | 13 | ||||
-rw-r--r-- | src/libmbim-glib/mbim-uuid.h | 13 | ||||
-rw-r--r-- | src/libmbim-glib/test/test-cid.c | 9 | ||||
-rw-r--r-- | src/libmbim-glib/test/test-uuid.c | 8 |
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); |