From e98443665306d1417fcbf2eefe4a98cc55e9b11b Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Thu, 28 Jun 2012 10:39:35 +0200 Subject: dms: implement "Get Operating Mode" request/response --- data/qmi-service-dms.json | 30 ++++++++++++++++++++++++++++++ src/qmi-enums-dms.h | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) diff --git a/data/qmi-service-dms.json b/data/qmi-service-dms.json index 69970d8..c765312 100644 --- a/data/qmi-service-dms.json +++ b/data/qmi-service-dms.json @@ -290,5 +290,35 @@ "mandatory" : "yes", "type" : "TLV", "format" : "string", + "prerequisites": [ { "common-ref" : "Success" } ] } ] }, + + // ********************************************************************************* + { "name" : "Get Operating Mode", + "type" : "Message", + "service" : "DMS", + "id" : "0x002D", + "output" : [ { "common-ref" : "Operation Result" }, + { "name" : "Mode", + "id" : "0x01", + "mandatory" : "yes", + "type" : "TLV", + "format" : "guint8", + "public-format" : "QmiDmsOperatingMode", + "prerequisites": [ { "common-ref" : "Success" } ] }, + { "name" : "Offline Reason", + "id" : "0x10", + "mandatory" : "no", + "type" : "TLV", + "format" : "guint16", + "public-format" : "QmiDmsOfflineReason", + "prerequisites": [ { "field" : "Mode", + "operation" : "==", + "value" : "QMI_DMS_OPERATING_MODE_OFFLINE" } ] }, + { "name" : "Hardware Restricted Mode", + "id" : "0x11", + "mandatory" : "no", + "type" : "TLV", + "format" : "guint8", + "public-format" : "gboolean", "prerequisites": [ { "common-ref" : "Success" } ] } ] } ] diff --git a/src/qmi-enums-dms.h b/src/qmi-enums-dms.h index 790c52e..f87172d 100644 --- a/src/qmi-enums-dms.h +++ b/src/qmi-enums-dms.h @@ -149,4 +149,45 @@ typedef enum { QMI_DMS_PIN_STATUS_CHANGED = 7, } QmiDmsPinStatus; +/*****************************************************************************/ +/* Helper enums for the 'QMI DMS Get Operating Mode' message */ + +/** + * QmiDmsOperatingMode: + * @QMI_DMS_OPERATING_MODE_ONLINE: Device can acquire a system and make calls. + * @QMI_DMS_OPERATING_MODE_LOW_POWER: Device has temporarily disabled RF. + * @QMI_DMS_OPERATING_MODE_PERSISTENT_LOW_POWER: Device has disabled RF and state persists even after a reset. + * @QMI_DMS_OPERATING_MODE_FACTORY_TEST: Special mode for manufacturer tests. + * @QMI_DMS_OPERATING_MODE_OFFLINE: Device has deactivated RF and is partially shutdown. + * @QMI_DMS_OPERATING_MODE_RESETTING: Device is in the process of power cycling. + * @QMI_DMS_OPERATING_MODE_SHUTTING_DOWN: Device is in the process of shutting down. + * + * Operating mode of the device. + */ +typedef enum { + QMI_DMS_OPERATING_MODE_ONLINE = 0, + QMI_DMS_OPERATING_MODE_LOW_POWER = 1, + QMI_DMS_OPERATING_MODE_FACTORY_TEST = 2, + QMI_DMS_OPERATING_MODE_OFFLINE = 3, + QMI_DMS_OPERATING_MODE_RESETTING = 4, + QMI_DMS_OPERATING_MODE_SHUTTING_DOWN = 5, + QMI_DMS_OPERATING_MODE_PERSISTENT_LOW_POWER = 6 +} QmiDmsOperatingMode; + +/** + * QmiDmsOfflineReason: + * @QMI_DMS_OFFLINE_REASON_HOST_IMAGE_MISCONFIGURATION: Host image misconfiguration. + * @QMI_DMS_OFFLINE_REASON_PRI_IMAGE_MISCONFIGURATION: PRI image misconfiguration. + * @QMI_DMS_OFFLINE_REASON_PRI_VERSION_INCOMPATIBLE: PRI version incompatible. + * @QMI_DMS_OFFLINE_REASON_DEVICE_MEMORY_FULL: Memory full, cannot copy PRI information. + * + * Reasons for being in Offline (@QMI_DMS_OPERATING_MODE_OFFLINE) state. + */ +typedef enum { + QMI_DMS_OFFLINE_REASON_HOST_IMAGE_MISCONFIGURATION = 1 << 0, + QMI_DMS_OFFLINE_REASON_PRI_IMAGE_MISCONFIGURATION = 1 << 1, + QMI_DMS_OFFLINE_REASON_PRI_VERSION_INCOMPATIBLE = 1 << 2, + QMI_DMS_OFFLINE_REASON_DEVICE_MEMORY_FULL = 1 << 3 +} QmiDmsOfflineReason; + #endif /* _LIBQMI_GLIB_QMI_ENUMS_DMS_H_ */ -- cgit v1.2.3