Browse Source

uqmi: sync data from libqmi project

Sync all json and header files from libqmi project.
Update code to adapt changes in libqmi files.

Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
Oskari Lemmela 2 years ago
parent
commit
7880de81e1

+ 4 - 4
commands-uim.c

@@ -24,9 +24,9 @@ static enum qmi_cmd_result
 cmd_uim_verify_pin1_prepare(struct qmi_dev *qmi, struct qmi_request *req, struct qmi_msg *msg, char *arg)
 {
 	struct qmi_uim_verify_pin_request data = {
-		QMI_INIT_SEQUENCE(session_information,
+		QMI_INIT_SEQUENCE(session,
 			.session_type = QMI_UIM_SESSION_TYPE_CARD_SLOT_1,
-			""
+			.application_identifier_n = 0
 		),
 		QMI_INIT_SEQUENCE(info,
 			.pin_id = QMI_UIM_PIN_ID_PIN1,
@@ -42,9 +42,9 @@ static enum qmi_cmd_result
 cmd_uim_verify_pin2_prepare(struct qmi_dev *qmi, struct qmi_request *req, struct qmi_msg *msg, char *arg)
 {
 	struct qmi_uim_verify_pin_request data = {
-		QMI_INIT_SEQUENCE(session_information,
+		QMI_INIT_SEQUENCE(session,
 			.session_type = QMI_UIM_SESSION_TYPE_CARD_SLOT_1,
-			""
+			.application_identifier_n = 0
 		),
 		QMI_INIT_SEQUENCE(info,
 			.pin_id = QMI_UIM_PIN_ID_PIN2,

+ 2 - 1
commands-wda.c

@@ -74,6 +74,7 @@ cmd_wda_get_data_format_cb(struct qmi_dev *qmi, struct qmi_request *req, struct
 static enum qmi_cmd_result
 cmd_wda_get_data_format_prepare(struct qmi_dev *qmi, struct qmi_request *req, struct qmi_msg *msg, char *arg)
 {
-	qmi_set_wda_get_data_format_request(msg);
+	struct qmi_wda_get_data_format_request data_req = {};
+	qmi_set_wda_get_data_format_request(msg, &data_req);
 	return QMI_CMD_REQUEST;
 }

+ 8 - 8
commands-wds.c

@@ -182,15 +182,15 @@ cmd_wds_get_packet_service_status_prepare(struct qmi_dev *qmi, struct qmi_reques
 	return QMI_CMD_REQUEST;
 }
 
-#define cmd_wds_set_autoconnect_setting_cb no_cb
+#define cmd_wds_set_autoconnect_settings_cb no_cb
 static enum qmi_cmd_result
-cmd_wds_set_autoconnect_setting_prepare(struct qmi_dev *qmi, struct qmi_request *req, struct qmi_msg *msg, char *arg)
+cmd_wds_set_autoconnect_settings_prepare(struct qmi_dev *qmi, struct qmi_request *req, struct qmi_msg *msg, char *arg)
 {
-	struct qmi_wds_set_autoconnect_setting_request ac_req;
+	struct qmi_wds_set_autoconnect_settings_request ac_req;
 	const char *modes[] = {
-		[QMI_WDS_AUTOCONNECT_DISABLED] = "disabled",
-		[QMI_WDS_AUTOCONNECT_ENABLED] = "enabled",
-		[QMI_WDS_AUTOCONNECT_PAUSED] = "paused",
+		[QMI_WDS_AUTOCONNECT_SETTING_DISABLED] = "disabled",
+		[QMI_WDS_AUTOCONNECT_SETTING_ENABLED] = "enabled",
+		[QMI_WDS_AUTOCONNECT_SETTING_PAUSED] = "paused",
 	};
 	int i;
 
@@ -198,8 +198,8 @@ cmd_wds_set_autoconnect_setting_prepare(struct qmi_dev *qmi, struct qmi_request
 		if (strcasecmp(modes[i], arg) != 0)
 			continue;
 
-		qmi_set(&ac_req, setting, i);
-		qmi_set_wds_set_autoconnect_setting_request(msg, &ac_req);
+		qmi_set(&ac_req, status, i);
+		qmi_set_wds_set_autoconnect_settings_request(msg, &ac_req);
 		return QMI_CMD_DONE;
 	}
 

+ 1 - 1
commands-wds.h

@@ -31,7 +31,7 @@
 	__uqmi_command(wds_stop_network, stop-network, required, QMI_SERVICE_WDS), \
 	__uqmi_command(wds_get_packet_service_status, get-data-status, no, QMI_SERVICE_WDS), \
 	__uqmi_command(wds_set_ip_family, set-ip-family, required, QMI_SERVICE_WDS), \
-	__uqmi_command(wds_set_autoconnect_setting, set-autoconnect, required, QMI_SERVICE_WDS), \
+	__uqmi_command(wds_set_autoconnect_settings, set-autoconnect, required, QMI_SERVICE_WDS), \
 	__uqmi_command(wds_reset, reset-wds, no, QMI_SERVICE_WDS), \
 	__uqmi_command(wds_get_current_settings, get-current-settings, no, QMI_SERVICE_WDS) \
 

+ 25 - 15
data/qmi-service-ctl.json

@@ -6,7 +6,8 @@
 
   // *********************************************************************************
   {  "name"    : "QMI Client CTL",
-     "type"    : "Client" },
+     "type"    : "Client",
+     "since"   : "1.0" },
 
   // *********************************************************************************
   {  "name"    : "QMI Message CTL",
@@ -21,16 +22,17 @@
      "type"    : "Message",
      "service" : "CTL",
      "id"      : "0x0020",
+     "since"   : "1.0",
      "input"   : [  { "name"      : "ID",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
+                      "since"     : "1.0",
                       "format"    : "guint8" } ],
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Link ID",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
+                      "since"     : "1.0",
                       "format"    : "guint16",
                       "prerequisites": [ { "common-ref" : "Success" } ] } ] },
 
@@ -39,11 +41,12 @@
      "type"    : "Message",
      "service" : "CTL",
      "id"      : "0x0021",
+     "since"   : "1.0",
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Service list",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
+                      "since"     : "1.0",
                       "format"    : "array",
                       "array-element" : { "name"     : "Service",
                                           "format"   : "struct",
@@ -61,17 +64,18 @@
      "type"    : "Message",
      "service" : "CTL",
      "id"      : "0x0022",
+     "since"   : "1.0",
      "input"   : [  { "name"          : "Service",
                       "id"            : "0x01",
-                      "mandatory"     : "yes",
                       "type"          : "TLV",
+                      "since"         : "1.0",
                       "format"        : "guint8" ,
                       "public-format" : "QmiService" } ],
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Allocation Info",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
+                      "since"     : "1.0",
                       "format"    : "sequence",
                       "contents"  : [ { "name"          : "Service",
                                         "format"        : "guint8",
@@ -85,10 +89,11 @@
      "type"    : "Message",
      "service" : "CTL",
      "id"      : "0x0023",
+     "since"   : "1.0",
      "input"   : [  { "name"      : "Release Info",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
+                      "since"     : "1.0",
                       "format"    : "sequence",
                       "contents"  : [ { "name"          : "Service",
                                         "format"        : "guint8",
@@ -98,8 +103,8 @@
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"      : "Release Info",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
+                      "since"     : "1.0",
                       "format"    : "sequence",
                       "contents"  : [ { "name"          : "Service",
                                         "format"        : "guint8",
@@ -113,38 +118,42 @@
      "type"    : "Message",
      "service" : "CTL",
      "id"      : "0x0026",
+     "since"   : "1.0",
      "input"   : [  { "name"          : "Format",
                       "id"            : "0x01",
-                      "mandatory"     : "yes",
                       "type"          : "TLV",
+                      "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiCtlDataFormat" },
                     { "name"          : "Protocol",
                       "id"            : "0x10",
-                      "mandatory"     : "yes",
                       "type"          : "TLV",
+                      "since"         : "1.0",
                       "format"        : "guint16",
                       "public-format" : "QmiCtlDataLinkProtocol" } ],
      "output"  : [  { "common-ref" : "Operation Result" },
                     { "name"          : "Protocol",
                       "id"            : "0x10",
-                      "mandatory"     : "no",
+                      "mandatory"     : "yes",
                       "type"          : "TLV",
+                      "since"         : "1.0",
                       "format"        : "guint16",
-                      "public-format" : "QmiCtlDataLinkProtocol" } ],
-                      "prerequisites" : [ { "common-ref" : "Success" } ] },
+                      "public-format" : "QmiCtlDataLinkProtocol",
+                      "prerequisites" : [ { "common-ref" : "Success" } ] } ] },
 
   // *********************************************************************************
   {  "name"    : "Sync",
      "type"    : "Message",
      "service" : "CTL",
      "id"      : "0x0027",
+     "since"   : "1.0",
      "output"  : [  { "common-ref" : "Operation Result" } ] },
 
   {  "name"    : "Sync",
      "type"    : "Indication",
      "service" : "CTL",
-     "id"      : "0x0027" },
+     "id"      : "0x0027",
+     "since"   : "1.0" },
 
   // *********************************************************************************
   // Internal
@@ -152,10 +161,11 @@
      "type"    : "Message",
      "service" : "CTL",
      "id"      : "0xFF00",
+     "since"   : "1.8",
      "input"   : [ { "name"      : "Device Path",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
+                     "since"     : "1.8",
                      "format"    : "string" } ],
      "output"  : [ { "common-ref" : "Operation Result" } ] }
 

File diff suppressed because it is too large
+ 154 - 128
data/qmi-service-dms.json


File diff suppressed because it is too large
+ 266 - 105
data/qmi-service-nas.json


+ 29 - 23
data/qmi-service-oma.json

@@ -6,7 +6,8 @@
 
   // *********************************************************************************
   {  "name"    : "QMI Client OMA",
-     "type"    : "Client" },
+     "type"    : "Client",
+     "since"   : "1.6" },
 
   // *********************************************************************************
   {  "name"    : "QMI Message OMA",
@@ -21,7 +22,7 @@
      "type"    : "Message",
      "service" : "OMA",
      "id"      : "0x0000",
-     "version" : "1.0",
+     "since"   : "1.6",
      "output"  : [ { "common-ref" : "Operation Result" } ] },
 
   // *********************************************************************************
@@ -29,17 +30,17 @@
      "type"    : "Message",
      "service" : "OMA",
      "id"      : "0x0001",
-     "version" : "1.0",
+     "since"   : "1.6",
      "input"   : [ { "name"          : "Network Initiated Alert Reporting",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Session State Reporting",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "guint8",
                      "public-format" : "gboolean" } ],
      "output"  : [ { "common-ref" : "Operation Result" } ] },
@@ -48,10 +49,11 @@
      "type"    : "Indication",
      "service" : "OMA",
      "id"      : "0x0001",
+     "since"   : "1.6",
      "output"  : [ { "name"      : "Network Initiated Alert",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.6",
                      "format"    : "sequence",
                      "contents"  : [ { "name"          : "Session Type",
                                        "format"        : "guint8",
@@ -60,14 +62,14 @@
                                        "format" : "guint16" } ] },
                     { "name"          : "Session State",
                       "id"            : "0x11",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
+                      "since"         : "1.6",
                       "format"        : "guint8",
                       "public-format" : "QmiOmaSessionState" },
                     { "name"          : "Session Fail Reason",
                       "id"            : "0x12",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
+                      "since"         : "1.6",
                       "format"        : "guint8",
                       "public-format" : "QmiOmaSessionFailedReason" } ] },
 
@@ -76,11 +78,11 @@
      "type"    : "Message",
      "service" : "OMA",
      "id"      : "0x0020",
-     "version" : "1.0",
+     "since"   : "1.6",
      "input"   : [ { "name"          : "Session Type",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "guint8",
                      "public-format" : "QmiOmaSessionType" } ],
      "output"  : [ { "common-ref" : "Operation Result" } ] },
@@ -90,7 +92,7 @@
      "type"    : "Message",
      "service" : "OMA",
      "id"      : "0x0021",
-     "version" : "1.0",
+     "since"   : "1.6",
      "output"  : [ { "common-ref" : "Operation Result" } ] },
 
   // *********************************************************************************
@@ -98,10 +100,11 @@
      "type"    : "Message",
      "service" : "OMA",
      "id"      : "0x0022",
+     "since"   : "1.6",
      "output"  : [ { "name"         : "Session Info",
                      "id"           : "0x10",
-                     "mandatory"    : "no",
                      "type"         : "TLV",
+                     "since"        : "1.6",
                      "format"       : "sequence",
                      "contents"     : [ { "name"          : "Session State",
                                           "format"        : "guint8",
@@ -112,8 +115,8 @@
                      "prerequisites": [ { "common-ref" : "Success" } ] },
                    { "name"          : "Session Failed Reason",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "guint8",
                      "public-format" : "QmiOmaSessionFailedReason",
                      "prerequisites" : [ { "field" : "Session Info Session State",
@@ -121,8 +124,8 @@
                                            "value" : "QMI_OMA_SESSION_STATE_FAILED" } ] },
                    { "name"         : "Retry Info",
                      "id"           : "0x12",
-                     "mandatory"    : "no",
                      "type"         : "TLV",
+                     "since"        : "1.6",
                      "format"       : "sequence",
                      "contents"     : [ { "name"   : "Retry Count",
                                           "format" : "guint8" },
@@ -133,8 +136,8 @@
                      "prerequisites": [ { "common-ref" : "Success" } ] },
                    { "name"         : "Network Initiated Alert",
                      "id"           : "0x13",
-                     "mandatory"    : "no",
                      "type"         : "TLV",
+                     "since"        : "1.6",
                      "format"       : "sequence",
                      "contents"     : [ { "name"          : "Session Type",
                                           "format"        : "guint8",
@@ -149,10 +152,11 @@
      "type"    : "Message",
      "service" : "OMA",
      "id"      : "0x0023",
+     "since"   : "1.6",
      "input"   : [ { "name"         : "Network Initiated Alert Selection",
                      "id"           : "0x10",
-                     "mandatory"    : "no",
                      "type"         : "TLV",
+                     "since"        : "1.6",
                      "format"       : "sequence",
                      "contents"     : [ { "name"          : "Control Point Selection Accept",
                                           "format"        : "guint8",
@@ -166,31 +170,32 @@
      "type"    : "Message",
      "service" : "OMA",
      "id"      : "0x0024",
+     "since"   : "1.6",
      "output"  : [ { "name"          : "Device Provisioning Service Update Config",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "guint8",
                      "public-format" : "gboolean",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "PRL Update Service Config",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "guint8",
                      "public-format" : "gboolean",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "HFA Feature Config",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "guint8",
                      "public-format" : "gboolean",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "HFA Feature Done State",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "guint8",
                      "public-format" : "QmiOmaHfaFeatureDoneState",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
@@ -201,22 +206,23 @@
      "type"    : "Message",
      "service" : "OMA",
      "id"      : "0x0025",
+     "since"   : "1.6",
      "input"   : [ { "name"          : "Device Provisioning Service Update Config",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "PRL Update Service Config",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "HFA Feature Config",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "guint8",
                      "public-format" : "gboolean" } ],
      "output"  : [ { "common-ref" : "Operation Result" } ] }

+ 24 - 23
data/qmi-service-pbm.json

@@ -6,7 +6,8 @@
 
   // *********************************************************************************
   {  "name"    : "QMI Client PBM",
-     "type"    : "Client" },
+     "type"    : "Client",
+     "since"   : "1.6" },
 
   // *********************************************************************************
   {  "name"    : "QMI Message PBM",
@@ -17,18 +18,18 @@
      "type"    : "Message",
      "service" : "PBM",
      "id"      : "0x0001",
-     "version" : "1.0",
+     "since"   : "1.6",
      "input"   : [ { "name"          : "Event Registration Mask",
                      "id"            : "0x01",
-                     "mandatory"     : "yes",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "guint32",
                      "public-format" : "QmiPbmEventRegistrationFlag" } ],
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "Event Registration Mask",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "guint32",
                      "public-format" : "QmiPbmEventRegistrationFlag",
                      "prerequisites" : [ { "common-ref" : "Success" } ] } ] },
@@ -38,11 +39,11 @@
      "type"    : "Message",
      "service" : "PBM",
      "id"      : "0x0002",
-     "version" : "1.0",
+     "since"   : "1.6",
      "input"   : [ { "name"      : "Phonebook Information",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
+                     "since"     : "1.6",
                      "format"    : "sequence",
                      "contents"  : [ { "name"          : "Session Type",
                                        "format"        : "guint8",
@@ -53,8 +54,8 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "Capability Basic Information",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "sequence",
                      "contents"      : [ { "name"          : "Session Type",
                                            "format"        : "guint8",
@@ -73,8 +74,8 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Group Capability",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "sequence",
                      "contents"      : [ { "name"   : "Maximum Groups",
                                            "format" : "guint8" },
@@ -83,8 +84,8 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Additional Number Capability",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "sequence",
                      "contents"      : [ { "name"   : "Maximum Additional Numbers",
                                            "format" : "guint8" },
@@ -95,8 +96,8 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Email Capability",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "sequence",
                      "contents"      : [ { "name"   : "Maximum Emails",
                                            "format" : "guint8" },
@@ -105,16 +106,16 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Second Name Capability",
                      "id"            : "0x14",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "sequence",
                      "contents"      : [ { "name"   : "Maximum Second Name Length",
                                            "format" : "guint8" } ],
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Hidden Records Capability",
                      "id"            : "0x15",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "sequence",
                      "contents"      : [ { "name"          : "Supported",
                                            "format"        : "guint8",
@@ -122,8 +123,8 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Grouping Information Alpha String Capability",
                      "id"            : "0x16",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "sequence",
                      "contents"      : [ { "name"   : "Maximum Records",
                                            "format" : "guint8" },
@@ -134,8 +135,8 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Additional Number Alpha String Capability",
                      "id"            : "0x17",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "sequence",
                      "contents"      : [ { "name"   : "Maximum Records",
                                            "format" : "guint8" },
@@ -150,12 +151,12 @@
      "type"    : "Message",
      "service" : "PBM",
      "id"      : "0x0003",
-     "version" : "1.0",
+     "since"   : "1.6",
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"               : "Capability Basic Information",
                      "id"                 : "0x10",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
+                     "since"              : "1.6",
                      "format"             : "array",
                      "size-prefix-format" : "guint8",
                      "array-element"      : { "name"     : "Element",
@@ -182,8 +183,8 @@
                      "prerequisites"      : [ { "common-ref" : "Success" } ] },
                    { "name"               : "Group Capability",
                      "id"                 : "0x11",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
+                     "since"              : "1.6",
                      "format"             : "array",
                      "size-prefix-format" : "guint8",
                      "array-element"      : { "name"     : "Element",
@@ -198,8 +199,8 @@
                      "prerequisites"      : [ { "common-ref" : "Success" } ] },
                    { "name"               : "Additional Number Capability",
                      "id"                 : "0x12",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
+                     "since"              : "1.6",
                      "format"             : "array",
                      "size-prefix-format" : "guint8",
                      "array-element"      : { "name"     : "Element",
@@ -216,8 +217,8 @@
                      "prerequisites"      : [ { "common-ref" : "Success" } ] },
                    { "name"               : "Email Capability",
                      "id"                 : "0x13",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
+                     "since"              : "1.6",
                      "format"             : "array",
                      "size-prefix-format" : "guint8",
                      "array-element"      : { "name"     : "Element",
@@ -232,8 +233,8 @@
                      "prerequisites"      : [ { "common-ref" : "Success" } ] },
                    { "name"               : "Second Name Capability",
                      "id"                 : "0x14",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
+                     "since"              : "1.6",
                      "format"             : "array",
                      "size-prefix-format" : "guint8",
                      "array-element"      : { "name"     : "Element",
@@ -246,8 +247,8 @@
                      "prerequisites"      : [ { "common-ref" : "Success" } ] },
                    { "name"               : "Hidden Records Capability",
                      "id"                 : "0x15",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
+                     "since"              : "1.6",
                      "format"             : "array",
                      "size-prefix-format" : "guint8",
                      "array-element"      : { "name"     : "Element",
@@ -261,8 +262,8 @@
                      "prerequisites"      : [ { "common-ref" : "Success" } ] },
                    { "name"               : "Grouping Information Alpha String Capability",
                      "id"                 : "0x16",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
+                     "since"              : "1.6",
                      "format"             : "array",
                      "size-prefix-format" : "guint8",
                      "array-element"      : { "name"     : "Element",
@@ -279,8 +280,8 @@
                      "prerequisites"      : [ { "common-ref" : "Success" } ] },
                    { "name"               : "Additional Number Alpha String Capability",
                      "id"                 : "0x17",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
+                     "since"              : "1.6",
                      "format"             : "array",
                      "size-prefix-format" : "guint8",
                      "array-element"      : { "name"     : "Element",

+ 56 - 48
data/qmi-service-pds.json

@@ -6,7 +6,8 @@
 
   // *********************************************************************************
   {  "name"    : "QMI Client PDS",
-     "type"    : "Client" },
+     "type"    : "Client",
+     "since"   : "1.0" },
 
   // *********************************************************************************
   {  "name"    : "QMI Message PDS",
@@ -21,7 +22,7 @@
      "type"    : "Message",
      "service" : "PDS",
      "id"      : "0x0000",
-     "version" : "1.0",
+     "since"   : "1.0",
      "output"  : [ { "common-ref" : "Operation Result" } ] },
 
   // *********************************************************************************
@@ -29,125 +30,125 @@
      "type"    : "Message",
      "service" : "PDS",
      "id"      : "0x0001",
-     "version" : "1.0",
+     "since"   : "1.0",
      "input"   : [ { "name"          : "NMEA Position Reporting",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Extended NMEA Position Reporting",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Parsed Position Reporting",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "External XTRA Data Request Reporting",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "External Time Injection Request Reporting",
                      "id"            : "0x14",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "External WIFI Position Request Reporting",
                      "id"            : "0x15",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Satellite Information Reporting",
                      "id"            : "0x16",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "VX Network Initiated Request Reporting",
                      "id"            : "0x17",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "SUPL Network Initiated Prompt Reporting",
                      "id"            : "0x18",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "UMTS CP Network Initiated Prompt Reporting",
                      "id"            : "0x19",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "PDS Comm Event Reporting",
                      "id"            : "0x1A",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Accelerometer Data Streaming Ready Reporting",
                      "id"            : "0x1B",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Gyro Data Streaming Ready Reporting",
                      "id"            : "0x1C",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Time Sync Request Reporting",
                      "id"            : "0x1D",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Position Reliability Indicator Reporting",
                      "id"            : "0x1E",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Sensor Data Usage Indicator Reporting",
                      "id"            : "0x1F",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Time Source Information Reporting",
                      "id"            : "0x20",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Heading Uncertainty Reporting",
                      "id"            : "0x21",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "NMEA Debug Strings Reporting",
                      "id"            : "0x22",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Extended External XTRA Data Request Reporting",
                      "id"            : "0x23",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" } ],
      "output"  : [ { "common-ref" : "Operation Result" } ] },
@@ -156,16 +157,17 @@
      "type"    : "Indication",
      "service" : "PDS",
      "id"      : "0x0001",
+     "since"   : "1.0",
      "output"  : [ { "name"      : "NMEA Position",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.0",
                      "format"    : "string",
                      "max-size"  : "200" },
                    { "name"      : "Extended NMEA Position",
                      "id"        : "0x11",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.0",
                      "format"    : "sequence",
                      "contents"  : [ { "name"          : "Operation Mode",
                                        "format"        : "gint8",
@@ -177,8 +179,8 @@
                                        "max-size" : "200" } ] },
                    { "name"          : "Position Session Status",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "QmiPdsPositionSessionStatus" } ] },
 
@@ -186,7 +188,6 @@
                    // Reading gfloat/gdouble is still missing
                    //{ "name"         : "Parsed Position",
                    //  "id"           : "0x13",
-                   //  "mandatory"    : "no",
                    //  "type"         : "TLV",
                    //  "format"       : "sequence",
                    //  "contents"     : [ { "name"   : "Valid Mask",
@@ -263,12 +264,12 @@
      "type"    : "Message",
      "service" : "PDS",
      "id"      : "0x0020",
-     "version" : "1.0",
+     "since"   : "1.0",
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"      : "State",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
+                     "since"     : "1.0",
                      "format"    : "sequence",
                      "contents"  : [ { "name"          : "GPS Service State",
                                        "format"        : "guint8",
@@ -283,11 +284,11 @@
      "type"    : "Message",
      "service" : "PDS",
      "id"      : "0x0021",
-     "version" : "1.0",
+     "since"   : "1.0",
      "input"   : [ { "name"      : "State",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
+                     "since"     : "1.0",
                      "format"    : "sequence",
                      "contents"  : [ { "name"          : "GPS Service State",
                                        "format"        : "guint8",
@@ -299,12 +300,12 @@
      "type"    : "Message",
      "service" : "PDS",
      "id"      : "0x0029",
-     "version" : "1.0",
+     "since"   : "1.12",
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"      : "Info",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
+                     "since"     : "1.12",
                      "format"    : "sequence",
                      "contents"  : [ { "name"          : "Session Operation",
                                        "format"        : "guint8",
@@ -322,11 +323,11 @@
      "type"    : "Message",
      "service" : "PDS",
      "id"      : "0x002A",
-     "version" : "1.0",
+     "since"   : "1.12",
      "input"   : [ { "name"      : "Info",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
+                     "since"     : "1.12",
                      "format"    : "sequence",
                      "contents"  : [ { "name"          : "Session Operation",
                                        "format"        : "guint8",
@@ -344,18 +345,18 @@
      "type"    : "Message",
      "service" : "PDS",
      "id"      : "0x002E",
-     "version" : "1.0",
+     "since"   : "1.12",
      "input"   : [ { "name"          : "Network Mode",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.12",
                      "format"        : "guint8",
                      "public-format" : "QmiPdsNetworkMode" } ],
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"      : "Location Server Address",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.12",
                      "format"    : "sequence",
                      "contents"  : [ { "name"   : "IP",
                                        "format" : "guint32",
@@ -365,8 +366,8 @@
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"               : "Location Server URL",
                      "id"                 : "0x11",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
+                     "since"              : "1.12",
                      "format"             : "array",
                      "size-prefix-format" : "guint8",
                      "array-element"      : { "format" : "guint8" },
@@ -377,11 +378,11 @@
      "type"    : "Message",
      "service" : "PDS",
      "id"      : "0x002F",
-     "version" : "1.0",
+     "since"   : "1.12",
      "input"   : [ { "name"      : "Location Server Address",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.12",
                      "format"    : "sequence",
                      "contents"  : [ { "name"   : "IP",
                                        "format" : "guint32",
@@ -390,15 +391,15 @@
                                        "format" : "guint32" } ] },
                    { "name"               : "Location Server URL",
                      "id"                 : "0x11",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
+                     "since"              : "1.12",
                      "format"             : "array",
                      "size-prefix-format" : "guint8",
                      "array-element"      : { "format" : "guint8" } },
                    { "name"          : "Network Mode",
                      "id"            : "0x14",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.12",
                      "format"        : "guint8",
                      "public-format" : "QmiPdsNetworkMode" } ],
      "output"  : [ { "common-ref" : "Operation Result" } ] },
@@ -408,12 +409,12 @@
      "type"    : "Message",
      "service" : "PDS",
      "id"      : "0x0030",
-     "version" : "1.0",
+     "since"   : "1.0",
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"      : "State",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
+                     "since"     : "1.0",
                      "format"    : "sequence",
                      "contents"  : [ { "name"          : "Auto Tracking State",
                                        "format"        : "guint8",
@@ -425,15 +426,22 @@
      "type"    : "Message",
      "service" : "PDS",
      "id"      : "0x0031",
-     "version" : "1.0",
+     "since"   : "1.0",
      "input"   : [ { "name"      : "State",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
+                     "since"     : "1.0",
                      "format"    : "sequence",
                      "contents"  : [ { "name"          : "Auto Tracking State",
                                        "format"        : "guint8",
                                        "public-format" : "gboolean" } ] } ],
-     "output"  : [ { "common-ref" : "Operation Result" } ] }
+     "output"  : [ { "common-ref" : "Operation Result" } ] },
+
+  // *********************************************************************************
+  {  "name"    : "GPS Ready",
+     "type"    : "Indication",
+     "service" : "PDS",
+     "id"      : "0x0060",
+     "since"   : "1.14" }
 
 ]

+ 553 - 193
data/qmi-service-uim.json

@@ -1,4 +1,3 @@
-
 [
   // *********************************************************************************
   {  "name"    : "UIM",
@@ -6,18 +5,172 @@
 
   // *********************************************************************************
   {  "name"    : "QMI Client UIM",
-     "type"    : "Client" },
+     "type"    : "Client",
+     "since"   : "1.6" },
 
   // *********************************************************************************
   {  "name"    : "QMI Message UIM",
      "type"    : "Message-ID-Enum" },
 
+  // *********************************************************************************
+  {  "name"    : "QMI Indication UIM",
+     "type"    : "Indication-ID-Enum" },
+
+  // *********************************************************************************
+  { "common-ref"    : "UIM Card Status",
+    "name"          : "Card Status",
+    "id"            : "0x10",
+    "type"          : "TLV",
+    "format"        : "sequence",
+    "contents"      : [ { "name"   : "Index GW Primary",
+                          "format" : "guint16" },
+                        { "name"   : "Index 1x Primary",
+                          "format" : "guint16" },
+                        { "name"   : "Index GW Secondary",
+                          "format" : "guint16" },
+                        { "name"   : "Index 1x Secondary",
+                          "format" : "guint16" },
+                        { "name"               : "Cards",
+                          "format"             : "array",
+                          "size-prefix-format" : "guint8",
+                          "array-element"      : { "name"   : "Element",
+                                                   "format" : "struct",
+                                                   "contents" : [ { "name"          : "Card State",
+                                                                    "format"        : "guint8",
+                                                                    "public-format" : "QmiUimCardState" },
+                                                                  { "name"          : "UPIN State",
+                                                                    "format"        : "guint8",
+                                                                    "public-format" : "QmiUimPinState" },
+                                                                  { "name"   : "UPIN Retries",
+                                                                    "format" : "guint8" },
+                                                                  { "name"   : "UPUK Retries",
+                                                                    "format" : "guint8" },
+                                                                  { "name"          : "Error code",
+                                                                    "format"        : "guint8",
+                                                                    "public-format" : "QmiUimCardError" },
+                                                                  { "name"               : "Applications",
+                                                                    "format"             : "array",
+                                                                    "size-prefix-format" : "guint8",
+                                                                    "array-element"      : { "name"   : "Element",
+                                                                                             "format" : "struct",
+                                                                                             "contents" : [ { "name"          : "Type",
+                                                                                                              "format"        : "guint8",
+                                                                                                              "public-format" : "QmiUimCardApplicationType" },
+                                                                                                            { "name"          : "State",
+                                                                                                              "format"        : "guint8",
+                                                                                                              "public-format" : "QmiUimCardApplicationState" },
+                                                                                                            { "name"          : "Personalization State",
+                                                                                                              "format"        : "guint8",
+                                                                                                              "public-format" : "QmiUimCardApplicationPersonalizationState" },
+                                                                                                            { "name"          : "Personalization Feature",
+                                                                                                              "format"        : "guint8",
+                                                                                                              "public-format" : "QmiUimCardApplicationPersonalizationFeature" },
+                                                                                                            { "name"   : "Personalization Retries",
+                                                                                                              "format" : "guint8" },
+                                                                                                            { "name"   : "Personalization Unblock Retries",
+                                                                                                              "format" : "guint8" },
+                                                                                                            { "name"               : "Application Identifier Value",
+                                                                                                              "format"             : "array",
+                                                                                                              "size-prefix-format" : "guint8",
+                                                                                                              "array-element"      : { "format" : "guint8" } },
+                                                                                                            { "name"          : "UPIN replaces PIN1",
+                                                                                                              "format"        : "guint8",
+                                                                                                              "public-format" : "gboolean" },
+                                                                                                            { "name"          : "PIN1 State",
+                                                                                                              "format"        : "guint8",
+                                                                                                              "public-format" : "QmiUimPinState" },
+                                                                                                            { "name"   : "PIN1 Retries",
+                                                                                                              "format" : "guint8" },
+                                                                                                            { "name"   : "PUK1 Retries",
+                                                                                                              "format" : "guint8" },
+                                                                                                            { "name"          : "PIN2 State",
+                                                                                                              "format"        : "guint8",
+                                                                                                              "public-format" : "QmiUimPinState" },
+                                                                                                            { "name"   : "PIN2 Retries",
+                                                                                                              "format" : "guint8" },
+                                                                                                            { "name"   : "PUK2 Retries",
+                                                                                                              "format" : "guint8" } ] } } ] } } ] },
+
+  // *********************************************************************************
+  { "common-ref" : "UIM Session",
+    "name"       : "Session",
+    "fullname"   : "Qmi UIM Session",
+    "id"         : "0x01",
+    "type"       : "TLV",
+    "format"     : "sequence",
+    "contents"   : [ { "name"          : "Session Type",
+                       "format"        : "guint8",
+                       "public-format" : "QmiUimSessionType" },
+                     { "name"               : "Application Identifier",
+                       "format"             : "array",
+                       "size-prefix-format" : "guint8",
+                       "array-element"      : { "format" : "guint8" } } ] },
+
+  // *********************************************************************************
+  { "common-ref"         : "Physical Slot Status",
+    "name"               : "Physical Slot Status",
+    "fullname"           : "Qmi Physical Slot Status",
+    "id"                 : "0x10",
+    "type"               : "TLV",
+    "format"             : "array",
+    "size-prefix-format" : "guint8",
+    "array-element"      : { "name" : "Slot",
+                             "format" : "struct",
+                             "contents" : [ { "name"          : "Physical Card Status",
+                                              "format"        : "guint32",
+                                              "public-format" : "QmiUimPhysicalCardState" },
+                                            { "name"          : "Physical Slot Status",
+                                              "format"        : "guint32",
+                                              "public-format" : "QmiUimSlotState" },
+                                            { "name"   : "Logical Slot",
+                                              "format" : "guint8" },
+                                            { "name"               : "ICCID",
+                                              "format"             : "array",
+                                              "size-prefix-format" : "guint8",
+                                              "array-element"      : { "format" : "guint8" } } ] } },
+
+  // *********************************************************************************
+  { "common-ref"         : "Physical Slot Information",
+    "name"               : "Physical Slot Information",
+    "fullname"           : "Qmi Physical Slot Information",
+    "id"                 : "0x11",
+    "type"               : "TLV",
+    "format"             : "array",
+    "size-prefix-format" : "guint8",
+    "array-element" : { "name" : "Slot",
+                        "format" : "struct",
+                        "contents" : [ { "name"          : "Card Protocol",
+                                         "format"        : "guint32",
+                                         "public-format" : "QmiUimCardProtocol" },
+                                       { "name"   : "Valid Applications",
+                                         "format" : "guint8" },
+                                       { "name"               : "ATR Value",
+                                         "format"             : "array",
+                                         "size-prefix-format" : "guint8",
+                                         "array-element"      : { "format" : "guint8" } },
+                                       { "name"          : "Is EUICC",
+                                         "format"        : "guint8",
+                                         "public-format" : "gboolean" } ] } },
+
+  // *********************************************************************************
+  { "common-ref"         : "Slot EID Information",
+    "name"               : "Slot EID Information",
+    "fullname"           : "Qmi Slot EID Information",
+    "id"                 : "0x12",
+    "type"               : "TLV",
+    "format"             : "array",
+    "size-prefix-format" : "guint8",
+    "array-element" : { "name"               : "EID",
+                        "format"             : "array",
+                        "size-prefix-format" : "guint8",
+                        "array-element"      : { "format" : "guint8" } } },
+
   // *********************************************************************************
   {  "name"    : "Reset",
      "type"    : "Message",
      "service" : "UIM",
      "id"      : "0x0000",
-     "version" : "1.0",
+     "since"   : "1.6",
      "output"  : [ { "common-ref" : "Operation Result" } ] },
 
   // *********************************************************************************
@@ -25,12 +178,12 @@
      "type"    : "Message",
      "service" : "UIM",
      "id"      : "0x001E",
-     "version" : "1.28",
+     "since"   : "1.14",
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"               : "List",
                      "id"                 : "0x10",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
+                     "since"              : "1.14",
                      "format"             : "array",
                      "size-prefix-format" : "guint16",
                      "array-element"      : { "format" : "guint8" },
@@ -41,21 +194,13 @@
      "type"    : "Message",
      "service" : "UIM",
      "id"      : "0x0020",
-     "version" : "1.0",
-     "input"   : [ { "name"      : "Session Information",
-                     "id"        : "0x01",
-                     "mandatory" : "yes",
-                     "type"      : "TLV",
-                     "format"    : "sequence",
-                     "contents"  : [ { "name"          : "Session Type",
-                                       "format"        : "guint8",
-                                       "public-format" : "QmiUimSessionType" },
-                                     { "name"   : "Application Identifier",
-                                       "format" : "string" } ] },
+     "since"   : "1.6",
+     "input"   : [ { "common-ref" : "UIM Session",
+                     "since"      : "1.22" },
                    { "name"      : "File",
                      "id"        : "0x02",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
+                     "since"     : "1.6",
                      "format"    : "sequence",
                      "contents"  : [ { "name"   : "File ID",
                                        "format" : "guint16" },
@@ -64,8 +209,8 @@
                                        "array-element" : { "format" : "guint8" } } ] },
                    { "name"      : "Read Information",
                      "id"        : "0x03",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
+                     "since"     : "1.6",
                      "format"    : "sequence",
                      "contents"  : [ { "name"   : "Offset",
                                        "format" : "guint16" },
@@ -73,20 +218,20 @@
                                        "format" : "guint16" } ] },
                    { "name"      : "Response In Indication Token",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.6",
                      "format"    : "guint32" },
                    { "name"          : "Encrypt Data",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "guint8",
                      "public-format" : "gboolean" } ],
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "Card result",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "sequence",
                      "contents"      : [ { "name"   : "SW1",
                                            "format" : "guint8" },
@@ -94,22 +239,22 @@
                                            "format" : "guint8" } ] },
                    { "name"               : "Read result",
                      "id"                 : "0x11",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
+                     "since"              : "1.6",
                      "format"             : "array",
                      "size-prefix-format" : "guint16",
                      "array-element"      : { "format" : "guint8" },
                      "prerequisites"      : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Response In Indication Token",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Encrypted Data",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "guint8",
                      "public-format" : "gboolean",
                      "prerequisites" : [ { "common-ref" : "Success" } ] } ] },
@@ -119,21 +264,13 @@
      "type"    : "Message",
      "service" : "UIM",
      "id"      : "0x0021",
-     "version" : "1.0",
-     "input"   : [ { "name"      : "Session Information",
-                     "id"        : "0x01",
-                     "mandatory" : "yes",
-                     "type"      : "TLV",
-                     "format"    : "sequence",
-                     "contents"  : [ { "name"          : "Session Type",
-                                       "format"        : "guint8",
-                                       "public-format" : "QmiUimSessionType" },
-                                     { "name"   : "Application Identifier",
-                                       "format" : "string" } ] },
+     "since"   : "1.6",
+     "input"   : [ { "common-ref" : "UIM Session",
+                     "since"      : "1.22" },
                    { "name"      : "File",
                      "id"        : "0x02",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
+                     "since"     : "1.6",
                      "format"    : "sequence",
                      "contents"  : [ { "name"   : "File ID",
                                        "format" : "guint16" },
@@ -142,8 +279,8 @@
                                        "array-element" : { "format" : "guint8" } } ] },
                    { "name"      : "Record",
                      "id"        : "0x03",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
+                     "since"     : "1.6",
                      "format"    : "sequence",
                      "contents"  : [ { "name"   : "Record Number",
                                        "format" : "guint16" },
@@ -151,19 +288,19 @@
                                        "format" : "guint16" } ] },
                    { "name"      : "Last Record",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.6",
                      "format"    : "guint16" },
                    { "name"      : "Response In Indication Token",
                      "id"        : "0x11",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.6",
                      "format"    : "guint32" } ],
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "Card result",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "sequence",
                      "contents"      : [ { "name"   : "SW1",
                                            "format" : "guint8" },
@@ -171,24 +308,24 @@
                                            "format" : "guint8" } ] },
                    { "name"               : "Read Result",
                      "id"                 : "0x11",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
+                     "since"              : "1.6",
                      "format"             : "array",
                      "size-prefix-format" : "guint16",
                      "array-element"      : { "format" : "guint8" },
                      "prerequisites"      : [ { "common-ref" : "Success" } ] },
                    { "name"               : "Additional Read Result",
                      "id"                 : "0x12",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
+                     "since"              : "1.6",
                      "format"             : "array",
                      "size-prefix-format" : "guint16",
                      "array-element"      : { "format" : "guint8" },
                      "prerequisites"      : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Response In Indication Token",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] } ] },
 
@@ -197,21 +334,13 @@
      "type"    : "Message",
      "service" : "UIM",
      "id"      : "0x0024",
-     "version" : "1.0",
-     "input"   : [ { "name"      : "Session Information",
-                     "id"        : "0x01",
-                     "mandatory" : "yes",
-                     "type"      : "TLV",
-                     "format"    : "sequence",
-                     "contents"  : [ { "name"          : "Session Type",
-                                       "format"        : "guint8",
-                                       "public-format" : "QmiUimSessionType" },
-                                     { "name"   : "Application Identifier",
-                                       "format" : "string" } ] },
+     "since"   : "1.6",
+     "input"   : [ { "common-ref" : "UIM Session",
+                     "since"      : "1.22" },
                    { "name"      : "File",
                      "id"        : "0x02",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
+                     "since"     : "1.6",
                      "format"    : "sequence",
                      "contents"  : [ { "name"   : "File ID",
                                        "format" : "guint16" },
@@ -220,14 +349,14 @@
                                        "array-element" : { "format" : "guint8" } } ] },
                    { "name"      : "Response In Indication Token",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.6",
                      "format"    : "guint32" } ],
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "Card result",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "sequence",
                      "contents"      : [ { "name"   : "SW1",
                                            "format" : "guint8" },
@@ -235,8 +364,8 @@
                                            "format" : "guint8" } ] },
                    { "name"               : "File Attributes",
                      "id"                 : "0x11",
-                     "mandatory"          : "no",
                      "type"               : "TLV",
+                     "since"              : "1.6",
                      "format"             : "sequence",
                      "contents"           : [ { "name"   : "File Size",
                                                 "format" : "guint16" },
@@ -286,8 +415,8 @@
                      "prerequisites"      : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Response In Indication Token",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.6",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] } ] },
 
@@ -296,21 +425,13 @@
      "type"    : "Message",
      "service" : "UIM",
      "id"      : "0x0025",
-     "version" : "1.0",
-     "input"   : [ { "name"      : "Session Information",
-                     "id"        : "0x01",
-                     "mandatory" : "yes",
-                     "type"      : "TLV",
-                     "format"    : "sequence",
-                     "contents"  : [ { "name"          : "Session Type",
-                                       "format"        : "guint8",
-                                       "public-format" : "QmiUimSessionType" },
-                                     { "name"   : "Application Identifier",
-                                       "format" : "string" } ] },
+     "since"   : "1.14",
+     "input"   : [ { "common-ref" : "UIM Session",
+                     "since"      : "1.22" },
                    { "name"      : "Info",
                      "id"        : "0x02",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
+                     "since"     : "1.14",
                      "format"    : "sequence",
                      "contents"  : [ { "name"          : "PIN ID",
                                        "format"        : "guint8",
@@ -322,14 +443,14 @@
                                        "format"        : "string" } ] },
                    { "name"      : "Response In Indication Token",
                      "id"        : "0x11",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.14",
                      "format"    : "guint32" } ],
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"      : "Retries Remaining",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.14",
                      "format"    : "sequence",
                      "contents"  : [ { "name"   : "Verify Retries Left",
                                        "format" : "guint8" },
@@ -338,8 +459,8 @@
                      "prerequisites": [ { "common-ref" : "No Success" } ] },
                    { "name"          : "Response In Indication Token",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.14",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] } ] },
 
@@ -348,21 +469,13 @@
      "type"    : "Message",
      "service" : "UIM",
      "id"      : "0x0026",
-     "version" : "1.0",
-     "input"   : [ { "name"      : "Session Information",
-                     "id"        : "0x01",
-                     "mandatory" : "yes",
-                     "type"      : "TLV",
-                     "format"    : "sequence",
-                     "contents"  : [ { "name"          : "Session Type",
-                                       "format"        : "guint8",
-                                       "public-format" : "QmiUimSessionType" },
-                                     { "name"   : "Application Identifier",
-                                       "format" : "string" } ] },
+     "since"   : "1.14",
+     "input"   : [ { "common-ref" : "UIM Session",
+                     "since"      : "1.22" },
                    { "name"      : "Info",
                      "id"        : "0x02",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
+                     "since"     : "1.14",
                      "format"    : "sequence",
                      "contents"  : [ { "name"          : "PIN ID",
                                        "format"        : "guint8",
@@ -371,14 +484,14 @@
                                        "format"        : "string" } ] },
                    { "name"      : "Response In Indication Token",
                      "id"        : "0x12",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.14",
                      "format"    : "guint32" } ],
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"      : "Retries Remaining",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.14",
                      "format"    : "sequence",
                      "contents"  : [ { "name"   : "Verify Retries Left",
                                        "format" : "guint8" },
@@ -387,14 +500,14 @@
                      "prerequisites": [ { "common-ref" : "No Success" } ] },
                    { "name"          : "Response In Indication Token",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.14",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"      : "Card Result",
                      "id"        : "0x13",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.14",
                      "format"    : "sequence",
                      "contents"  : [ { "name"   : "SW1",
                                        "format" : "guint8" },
@@ -406,21 +519,13 @@
      "type"    : "Message",
      "service" : "UIM",
      "id"      : "0x0027",
-     "version" : "1.0",
-     "input"   : [ { "name"      : "Session Information",
-                     "id"        : "0x01",
-                     "mandatory" : "yes",
-                     "type"      : "TLV",
-                     "format"    : "sequence",
-                     "contents"  : [ { "name"          : "Session Type",
-                                       "format"        : "guint8",
-                                       "public-format" : "QmiUimSessionType" },
-                                     { "name"   : "Application Identifier",
-                                       "format" : "string" } ] },
+     "since"   : "1.14",
+     "input"   : [ { "common-ref" : "UIM Session",
+                     "since"      : "1.22" },
                    { "name"      : "Info",
                      "id"        : "0x02",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
+                     "since"     : "1.14",
                      "format"    : "sequence",
                      "contents"  : [ { "name"          : "PIN ID",
                                        "format"        : "guint8",
@@ -431,14 +536,14 @@
                                        "format"        : "string" } ] },
                    { "name"      : "Response In Indication Token",
                      "id"        : "0x11",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.14",
                      "format"    : "guint32" } ],
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"      : "Retries Remaining",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.14",
                      "format"    : "sequence",
                      "contents"  : [ { "name"   : "Verify Retries Left",
                                        "format" : "guint8" },
@@ -447,14 +552,14 @@
                      "prerequisites": [ { "common-ref" : "No Success" } ] },
                    { "name"          : "Response In Indication Token",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.14",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"      : "Card Result",
                      "id"        : "0x13",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.14",
                      "format"    : "sequence",
                      "contents"  : [ { "name"   : "SW1",
                                        "format" : "guint8" },
@@ -466,21 +571,13 @@
      "type"    : "Message",
      "service" : "UIM",
      "id"      : "0x0028",
-     "version" : "1.0",
-     "input"   : [ { "name"      : "Session Information",
-                     "id"        : "0x01",
-                     "mandatory" : "yes",
-                     "type"      : "TLV",
-                     "format"    : "sequence",
-                     "contents"  : [ { "name"          : "Session Type",
-                                       "format"        : "guint8",
-                                       "public-format" : "QmiUimSessionType" },
-                                     { "name"   : "Application Identifier",
-                                       "format" : "string" } ] },
+     "since"   : "1.14",
+     "input"   : [ { "common-ref" : "UIM Session",
+                     "since"      : "1.22" },
                    { "name"      : "Info",
                      "id"        : "0x02",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
+                     "since"     : "1.14",
                      "format"    : "sequence",
                      "contents"  : [ { "name"          : "PIN ID",
                                        "format"        : "guint8",
@@ -491,14 +588,14 @@
                                        "format"        : "string" } ] },
                    { "name"      : "Response In Indication Token",
                      "id"        : "0x11",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.14",
                      "format"    : "guint32" } ],
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"      : "Retries Remaining",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.14",
                      "format"    : "sequence",
                      "contents"  : [ { "name"   : "Verify Retries Left",
                                        "format" : "guint8" },
@@ -507,99 +604,362 @@
                      "prerequisites": [ { "common-ref" : "No Success" } ] },
                    { "name"          : "Response In Indication Token",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.14",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"      : "Card Result",
                      "id"        : "0x13",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.14",
                      "format"    : "sequence",
                      "contents"  : [ { "name"   : "SW1",
                                        "format" : "guint8" },
                                      { "name"   : "SW2",
                                        "format" : "guint8" } ] } ] },
 
+  // *********************************************************************************
+  {  "name"    : "Refresh Register",
+     "type"    : "Message",
+     "service" : "UIM",
+     "id"      : "0x002A",
+     "since"   : "1.28",
+     "input"   : [ { "common-ref" : "UIM Session",
+                     "since"      : "1.28" },
+                   { "name"      : "Info",
+                     "id"        : "0x02",
+                     "type"      : "TLV",
+                     "since"     : "1.28",
+                     "format"    : "sequence",
+                     "contents"  : [ { "name"          : "Register Flag",
+                                       "format"        : "guint8",
+                                       "public-format" : "gboolean" },
+                                     { "name"          : "Vote For Init",
+                                       "format"        : "guint8",
+                                       "public-format" : "gboolean" },
+                                     { "name"               : "Files",
+                                       "format"             : "array",
+                                       "size-prefix-format" : "guint16",
+                                       "array-element"      : { "name"   : "Element",
+                                                                "format" : "struct",
+                                                                "contents" : [ { "name"   : "File ID",
+                                                                                 "format" : "guint16" },
+                                                                               { "name"               : "Path",
+                                                                                 "format"             : "array",
+                                                                                 "size-prefix-format" : "guint8",
+                                                                                 "array-element"      : { "format" : "guint8" } } ] } } ] } ],
+     "output"  : [ { "common-ref" : "Operation Result" } ] },
+
+  // *********************************************************************************
+  {  "name"    : "Refresh Complete",
+     "type"    : "Message",
+     "service" : "UIM",
+     "id"      : "0x002C",
+     "since"   : "1.28",
+     "input"   : [ { "common-ref" : "UIM Session",
+                     "since"      : "1.28" },
+                   { "name"      : "Info",
+                     "id"        : "0x02",
+                     "type"      : "TLV",
+                     "since"     : "1.28",
+                     "format"    : "sequence",
+                     "contents"  : [ { "name"          : "Refresh Success",
+                                       "format"        : "guint8",
+                                       "public-format" : "gboolean" } ] } ],
+    "output"  : [ { "common-ref" : "Operation Result" } ] },
+
+  // *********************************************************************************
+  {  "name"    : "Register Events",
+     "type"    : "Message",
+     "service" : "UIM",
+     "id"      : "0x002E",
+     "since"   : "1.22.4",
+     "input"   : [ { "name"          : "Event Registration Mask",
+                     "id"            : "0x01",
+                     "type"          : "TLV",
+                     "since"         : "1.22.4",
+                     "format"        : "guint32",
+                     "public-format" : "QmiUimEventRegistrationFlag" } ],
+     "output"  : [ { "common-ref" : "Operation Result" },
+                   { "name"          : "Event Registration Mask",
+                     "id"            : "0x10",
+                     "type"          : "TLV",
+                     "since"         : "1.22.4",
+                     "format"        : "guint32",
+                     "public-format" : "QmiUimEventRegistrationFlag",
+                     "prerequisites" : [ { "common-ref" : "Success" } ] } ] },
+
   // *********************************************************************************
   {  "name"    : "Get Card Status",
      "type"    : "Message",
      "service" : "UIM",
      "id"      : "0x002F",
-     "version" : "1.0",
+     "since"   : "1.10",
      "output"  : [ { "common-ref" : "Operation Result" },
-                   { "name"          : "Card Status",
+                   { "common-ref" : "UIM Card Status",
+                     "since"      : "1.10" } ] },
+
+  // *********************************************************************************
+  {  "name"    : "Power Off SIM",
+     "type"    : "Message",
+     "service" : "UIM",
+     "id"      : "0x0030",
+     "since"   : "1.18",
+     "input"   : [ { "name"      : "Slot",
+                     "id"        : "0x01",
+                     "type"      : "TLV",
+                     "since"     : "1.18",
+                     "format"    : "guint8" } ],
+     "output"  : [ { "common-ref" : "Operation Result" } ] },
+
+  // *********************************************************************************
+  {  "name"    : "Power On SIM",
+     "type"    : "Message",
+     "service" : "UIM",
+     "id"      : "0x0031",
+     "since"   : "1.18",
+     "input"   : [ { "name"      : "Slot",
+                     "id"        : "0x01",
+                     "type"      : "TLV",
+                     "since"     : "1.18",
+                     "format"    : "guint8" } ],
+     "output"  : [ { "common-ref" : "Operation Result" } ] },
+
+  // *********************************************************************************
+  {  "name"    : "Card Status",
+     "type"    : "Indication",
+     "service" : "UIM",
+     "id"      : "0x0032",
+     "since"   : "1.22",
+     "output"  : [ { "common-ref" : "UIM Card Status",
+                     "since"      : "1.22" } ] },
+
+  // *********************************************************************************
+  {  "name"    : "Refresh",
+     "type"    : "Indication",
+     "service" : "UIM",
+     "id"      : "0x0033",
+     "since"   : "1.28",
+     "output"  : [ { "name"       : "Event",
+                     "id"         : "0x10",
+                     "type"       : "TLV",
+                     "since"      : "1.28",
+                     "format"     : "sequence",
+                     "contents"   : [ { "name"          : "Stage",
+                                        "format"        : "guint8",
+                                        "public-format" : "QmiUimRefreshStage" },
+                                      { "name"          : "Mode",
+                                        "format"        : "guint8",
+                                        "public-format" : "QmiUimRefreshMode" },
+                                      { "name"          : "Session Type",
+                                        "format"        : "guint8",
+                                        "public-format" : "QmiUimSessionType" },
+                                      { "name"               : "Application Identifier",
+                                        "format"             : "array",
+                                        "size-prefix-format" : "guint8",
+                                        "array-element"      : { "format" : "guint8" } },
+                                      { "name"               : "Files",
+                                        "format"             : "array",
+                                        "size-prefix-format" : "guint16",
+                                        "array-element"      : { "name"   : "Element",
+                                                                 "format" : "struct",
+                                                                 "contents" : [ { "name"   : "File ID",
+                                                                                  "format" : "guint16" },
+                                                                                { "name"               : "Path",
+                                                                                  "format"             : "array",
+                                                                                  "size-prefix-format" : "guint8",
+                                                                                  "array-element"      : { "format" : "guint8" } } ] } } ] } ] },
+
+  // *********************************************************************************
+  {  "name"    : "Change Provisioning Session",
+     "type"    : "Message",
+     "service" : "UIM",
+     "id"      : "0x0038",
+     "since"   : "1.24",
+     "input"   : [ { "name"      : "Session Change",
+                     "id"        : "0x01",
+                     "type"      : "TLV",
+                     "since"     : "1.24",
+                     "format"    : "sequence",
+                     "contents"  : [ { "name"          : "Session Type",
+                                       "format"        : "guint8",
+                                       "public-format" : "QmiUimSessionType" },
+                                     { "name"          : "Activate",
+                                       "format"        : "guint8",
+                                       "public-format" : "gboolean" } ] },
+                   { "name"      : "Application Information",
+                     "id"        : "0x10",
+                     "type"      : "TLV",
+                     "since"     : "1.24",
+                     "format"    : "sequence",
+                     "contents"  : [ { "name"   : "Slot",
+                                       "format" : "guint8" },
+                                     { "name"               : "Application Identifier",
+                                       "format"             : "array",
+                                       "size-prefix-format" : "guint8",
+                                       "array-element"      : { "format" : "guint8" } } ] } ],
+     "output"  : [ { "common-ref" : "Operation Result" } ] },
+
+  // *********************************************************************************
+  {  "name"    : "Depersonalization",
+     "type"    : "Message",
+     "service" : "UIM",
+     "id"      : "0x0029",
+     "since"   : "1.30",
+     "input"   : [ { "name"          : "Info",
+                     "id"            : "0x01",
+                     "type"          : "TLV",
+                     "since"         : "1.30",
+                     "format"        : "sequence",
+                     "contents"      : [ { "name"          : "Feature",
+                                           "format"        : "guint8",
+                                           "public-format" : "QmiUimCardApplicationPersonalizationFeature" },
+                                         { "name"          : "Operation",
+                                           "format"        : "guint8",
+                                           "public-format" : "QmiUimDepersonalizationOperation" },
+                                         { "name"          : "Control Key",
+                                           "format"        : "string" } ] },
+                   { "name"          : "Slot",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.30",
+                     "format"        : "guint8" } ],
+     "output"  : [ { "common-ref"    : "Operation Result" },
+                   { "name"          : "Retries Remaining",
+                     "id"            : "0x10",
+                     "type"          : "TLV",
+                     "since"         : "1.30",
                      "format"        : "sequence",
-                     "contents"      : [ { "name"   : "Index GW Primary",
-                                           "format" : "guint16" },
-					                     { "name"   : "Index 1x Primary",
-                                           "format" : "guint16" },
-					                     { "name"   : "Index GW Secondary ",
-					                       "format" : "guint16" },
-					                     { "name"   : "Index 1x Secondary",
-                                           "format" : "guint16" },
-                                         { "name"               : "Cards",
-                                           "format"             : "array",
-                                           "size-prefix-format" : "guint8",
-                                           "array-element"      : { "name"   : "Element",
-								                                    "format" : "struct",
-								                                    "contents" : [ { "name"          : "Card State",
-										                                             "format"        : "guint8",
-                                                                                     "public-format" : "QmiUimCardState" },
-										                                           { "name"          : "UPIN State",
-										                                             "format"        : "guint8",
-                                                                                     "public-format" : "QmiUimPinState" },
-										                                           { "name"   : "UPIN Retries",
-										                                             "format" : "guint8" },
-										                                           { "name"   : "UPUK Retries",
-										                                             "format" : "guint8" },
-										                                           { "name"          : "Error code",
-										                                             "format"        : "guint8",
-                                                                                     "public-format" : "QmiUimCardError" },
-										                                           { "name"               : "Applications",
-										                                             "format"             : "array",
-										                                             "size-prefix-format" : "guint8",
-										                                             "array-element"      : { "name"   : "Element",
-													                                                          "format" : "struct",
-													                                                          "contents" : [ { "name"          : "Type",
-															                                                                   "format"        : "guint8",
-                                                                                                                               "public-format" : "QmiUimCardApplicationType" },
-															                                                                 { "name"          : "State",
-															                                                                   "format"        : "guint8",
-                                                                                                                               "public-format" : "QmiUimCardApplicationState" },
-															                                                                 { "name"          : "Personalization State",
-															                                                                   "format"        : "guint8",
-                                                                                                                               "public-format" : "QmiUimCardApplicationPersonalizationState" },
-															                                                                 { "name"          : "Personalization Feature",
-															                                                                   "format"        : "guint8",
-                                                                                                                               "public-format" : "QmiUimCardApplicationPersonalizationFeature" },
-															                                                                 { "name"   : "Personalization Retries",
-															                                                                   "format" : "guint8" },
-															                                                                 { "name"   : "Personalization Unblock Retries",
-															                                                                   "format" : "guint8" },
-															                                                                 { "name"               : "Application Identifier Value",
-															                                                                   "format"             : "array",
-															                                                                   "size-prefix-format" : "guint8",
-															                                                                   "array-element"      : { "format" : "guint8" } },
-															                                                                 { "name"          : "UPIN replaces PIN1",
-															                                                                   "format"        : "guint8",
-															                                                                   "public-format" : "gboolean" },
-															                                                                 { "name"          : "PIN1 State",
-															                                                                   "format"        : "guint8",
-                                                                                                                               "public-format" : "QmiUimPinState" },
-															                                                                 { "name"   : "PIN1 Retries",
-															                                                                   "format" : "guint8" },
-															                                                                 { "name"   : "PUK1 Retries",
-															                                                                   "format" : "guint8" },
-															                                                                 { "name"          : "PIN2 State",
-															                                                                   "format"        : "guint8",
-                                                                                                                               "public-format" : "QmiUimPinState" },
-															                                                                 { "name"   : "PIN2 Retries",
-															                                                                   "format" : "guint8" },
-															                                                                 { "name"   : "PUK2 Retries",
-															                                                                   "format" : "guint8" } ] } } ] } } ] } ] }
+                     "contents"      : [ { "name"      : "Verify Left",
+                                           "format"    : "guint8" },
+                                         { "name"      : "Unblock Left",
+                                           "format"    : "guint8" } ],
+                     "prerequisites" : [ { "common-ref" : "No Success" } ] } ] },
+
+  // *********************************************************************************
+  {  "name"    : "Get Configuration",
+     "type"    : "Message",
+     "service" : "UIM",
+     "id"      : "0x003A",
+     "since"   : "1.30",
+     "input"   : [ { "name"          : "Configuration Mask",
+                     "id"            : "0x10",
+                     "type"          : "TLV",
+                     "since"         : "1.30",
+                     "format"        : "guint32",
+                     "public-format" : "QmiUimConfiguration" } ],
+     "output"  : [ { "common-ref"    : "Operation Result" },
+                   { "name"          : "Automatic Selection",
+                     "id"            : "0x10",
+                     "type"          : "TLV",
+                     "since"         : "1.30",
+                     "format"        : "guint8",
+                     "public-format" : "gboolean",
+                     "prerequisites" : [ { "common-ref" : "Success" } ] },
+                   { "name"               : "Personalization Status",
+                     "id"                 : "0x11",
+                     "type"               : "TLV",
+                     "since"              : "1.30",
+                     "format"             : "array",
+                     "size-prefix-format" : "guint8",
+                     "array-element"      : { "name"     : "Element",
+                                              "format"   : "struct",
+                                              "contents" : [ { "name"          : "Feature",
+                                                               "format"        : "guint8",
+                                                               "public-format" : "QmiUimCardApplicationPersonalizationFeature" },
+                                                             { "name"          : "Verify Left",
+                                                               "format"        : "guint8" },
+                                                             { "name"          : "Unblock Left",
+                                                               "format"        : "guint8" } ] },
+                     "prerequisites" : [ { "common-ref" : "Success" } ] },
+                   { "name"          : "Halt Subscription",
+                     "id"            : "0x12",
+                     "type"          : "TLV",
+                     "since"         : "1.30",
+                     "format"        : "guint8",
+                     "public-format" : "gboolean",
+                     "prerequisites" : [ { "common-ref" : "Success" } ] },
+                   { "name"          : "Personalization Status Other Slots",
+                     "id"            : "0x13",
+                     "type"          : "TLV",
+                     "since"         : "1.30",
+                     "format"        : "array",
+                     "size-prefix-format" : "guint8",
+                     "array-element" : { "name"    : "Slots",
+                                         "format"  : "array",
+                                         "size-prefix-format" : "guint8",
+                                         "array-element" : { "name"     : "Element",
+                                                             "format"   : "struct",
+                                                             "contents" : [ { "name"          : "Feature",
+                                                                              "format"        : "guint8",
+                                                                              "public-format" : "QmiUimCardApplicationPersonalizationFeature" },
+                                                                            { "name"          : "Verify Left",
+                                                                              "format"        : "guint8" },
+                                                                            { "name"          : "Unblock Left",
+                                                                              "format"        : "guint8" } ] } },
+                     "prerequisites" : [ { "common-ref" : "Success" } ] } ] },
+
+  // *********************************************************************************
+  {  "name"    : "Refresh Register All",
+     "type"    : "Message",
+     "service" : "UIM",
+     "id"      : "0x0044",
+     "since"   : "1.28",
+     "input"   : [ { "common-ref" : "UIM Session",
+                     "since"      : "1.28" },
+                   { "name"      : "Info",
+                     "id"        : "0x02",
+                     "type"      : "TLV",
+                     "since"     : "1.28",
+                     "format"    : "sequence",
+                     "contents"  : [ { "name"          : "Register Flag",
+                                       "format"        : "guint8",
+                                       "public-format" : "gboolean" } ] } ],
+    "output"  : [ { "common-ref" : "Operation Result" } ] },
+
+  // *********************************************************************************
+  {  "name"    : "Switch Slot",
+     "type"    : "Message",
+     "service" : "UIM",
+     "id"      : "0x0046",
+     "since"   : "1.26",
+     "input"   : [ { "name"      : "Logical Slot",
+                     "id"        : "0x01",
+                     "type"      : "TLV",
+                     "since"     : "1.26",
+                     "format"    : "guint8" },
+                   { "name"      : "Physical Slot",
+                     "id"        : "0x02",
+                     "type"      : "TLV",
+                     "since"     : "1.26",
+                     "format"    : "guint32" } ],
+     "output"  : [ { "common-ref" : "Operation Result" } ] },
+
+  // *********************************************************************************
+  {  "name"    : "Get Slot Status",
+     "type"    : "Message",
+     "service" : "UIM",
+     "id"      : "0x0047",
+     "since"   : "1.26",
+     "output"  : [ { "common-ref" : "Operation Result" },
+                   { "common-ref" : "Physical Slot Status",
+                     "since"      : "1.26" },
+                   { "common-ref" : "Physical Slot Information",
+                     "since"      : "1.26" },
+                   { "common-ref" : "Slot EID Information",
+                     "since"      : "1.26" } ] },
+
+  // *********************************************************************************
+  {  "name"    : "Slot Status",
+     "type"    : "Indication",
+     "service" : "UIM",
+     "id"      : "0x0048",
+     "since"   : "1.26",
+     "output"  : [ { "common-ref" : "Physical Slot Status",
+                     "since"      : "1.26" },
+                   { "common-ref" : "Physical Slot Information",
+                     "since"      : "1.26" },
+                   { "common-ref" : "Slot EID Information",
+                     "since"      : "1.26" } ] }
 
 ]

+ 117 - 27
data/qmi-service-wda.json

@@ -6,103 +6,154 @@
 
   // *********************************************************************************
   {  "name"    : "QMI Client WDA",
-     "type"    : "Client" },
+     "type"    : "Client",
+     "since"   : "1.10" },
 
   // *********************************************************************************
   {  "name"    : "QMI Message WDA",
      "type"    : "Message-ID-Enum" },
 
+  // *********************************************************************************
+  {  "name"    : "Get Supported Messages",
+     "type"    : "Message",
+     "service" : "WDA",
+     "id"      : "0x001E",
+     "since"   : "1.14",
+     "output"  : [ { "common-ref" : "Operation Result" },
+                   { "name"               : "List",
+                     "id"                 : "0x10",
+                     "type"               : "TLV",
+                     "since"              : "1.14",
+                     "format"             : "array",
+                     "size-prefix-format" : "guint16",
+                     "array-element"      : { "format" : "guint8" },
+                     "prerequisites"      : [ { "common-ref" : "Success" } ] } ] },
+
   // *********************************************************************************
   {  "name"    : "Set Data Format",
      "type"    : "Message",
      "service" : "WDA",
      "id"      : "0x0020",
-     "version" : "1.0",
+     "since"   : "1.10",
      "input"   : [ { "name"          : "QoS Format",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.10",
                      "format"        : "guint8",
                      "public-format" : "gboolean" },
                    { "name"          : "Link Layer Protocol",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.10",
                      "format"        : "guint32",
                      "public-format" : "QmiWdaLinkLayerProtocol" },
                    { "name"          : "Uplink Data Aggregation Protocol",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.10",
                      "format"        : "guint32",
                      "public-format" : "QmiWdaDataAggregationProtocol" },
                    { "name"          : "Downlink Data Aggregation Protocol",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.10",
                      "format"        : "guint32",
                      "public-format" : "QmiWdaDataAggregationProtocol" },
                    { "name"          : "NDP Signature",
                      "id"            : "0x14",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.10",
                      "format"        : "guint32" },
                    { "name"          : "Downlink Data Aggregation Max Datagrams",
                      "id"            : "0x15",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.10",
                      "format"        : "guint32" },
                    { "name"          : "Downlink Data Aggregation Max Size",
                      "id"            : "0x16",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
-                     "format"        : "guint32" } ],
+                     "since"         : "1.10",
+                     "format"        : "guint32" },
+                   { "name"          : "Endpoint Info",
+                     "id"            : "0x17",
+                     "type"          : "TLV",
+                     "since"         : "1.18",
+                     "format"        : "sequence",
+                     "contents"  : [ { "name"          : "Endpoint Type",
+                                       "format"        : "guint32",
+                                       "public-format" : "QmiDataEndpointType"},
+                                     { "name"          : "Interface Number",
+                                       "format"        : "guint32"}] }],
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "QoS Format",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.10",
                      "format"        : "guint8",
                      "public-format" : "gboolean",
                      "prerequisites": [ { "common-ref" : "Success" } ] },
                    { "name"          : "Link Layer Protocol",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.10",
                      "format"        : "guint32",
                      "public-format" : "QmiWdaLinkLayerProtocol",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Uplink Data Aggregation Protocol",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.10",
                      "format"        : "guint32",
                      "public-format" : "QmiWdaDataAggregationProtocol",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Downlink Data Aggregation Protocol",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.10",
                      "format"        : "guint32",
                      "public-format" : "QmiWdaDataAggregationProtocol",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "NDP Signature",
                      "id"            : "0x14",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.10",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Downlink Data Aggregation Max Datagrams",
                      "id"            : "0x15",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.10",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Downlink Data Aggregation Max Size",
                      "id"            : "0x16",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.10",
+                     "format"        : "guint32",
+                     "prerequisites" : [ { "common-ref" : "Success" } ] },
+                   { "name"          : "Uplink Data Aggregation Max Datagrams",
+                     "id"            : "0x17",
+                     "type"          : "TLV",
+                     "since"         : "1.30",
+                     "format"        : "guint32",
+                     "prerequisites" : [ { "common-ref" : "Success" } ] },
+                   { "name"          : "Uplink Data Aggregation Max Size",
+                     "id"            : "0x18",
+                     "type"          : "TLV",
+                     "since"         : "1.30",
+                     "format"        : "guint32",
+                     "prerequisites" : [ { "common-ref" : "Success" } ] },
+                   { "name"          : "Download Minimum Padding",
+                     "id"            : "0x1A",
+                     "type"          : "TLV",
+                     "since"         : "1.30",
                      "format"        : "guint32",
+                     "prerequisites" : [ { "common-ref" : "Success" } ] },
+                   { "name"          : "Flow Control",
+                     "id"            : "0x1B",
+                     "type"          : "TLV",
+                     "since"         : "1.30",
+                     "format"        : "guint8",
                      "prerequisites" : [ { "common-ref" : "Success" } ] } ] },
 
   // *********************************************************************************
@@ -110,53 +161,92 @@
      "type"    : "Message",
      "service" : "WDA",
      "id"      : "0x0021",
-     "version" : "1.0",
+     "since"   : "1.10",
+     "input"   : [ { "name"          : "Endpoint Info",
+                     "id"            : "0x10",
+                     "mandatory"     : "no",
+                     "type"          : "TLV",
+                     "since"         : "1.26",
+                     "format"        : "sequence",
+                     "contents"  : [ { "name"          : "Endpoint Type",
+                                       "format"        : "guint32",
+                                       "public-format" : "QmiDataEndpointType"},
+                                     { "name"          : "Interface Number",
+                                       "format"        : "guint32"} ] } ],
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "QoS Format",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.10",
                      "format"        : "guint8",
                      "public-format" : "gboolean",
                      "prerequisites": [ { "common-ref" : "Success" } ] },
                    { "name"          : "Link Layer Protocol",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.10",
                      "format"        : "guint32",
                      "public-format" : "QmiWdaLinkLayerProtocol",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Uplink Data Aggregation Protocol",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.10",
                      "format"        : "guint32",
                      "public-format" : "QmiWdaDataAggregationProtocol",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Downlink Data Aggregation Protocol",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.10",
                      "format"        : "guint32",
                      "public-format" : "QmiWdaDataAggregationProtocol",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "NDP Signature",
                      "id"            : "0x14",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.10",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
-                   { "name"          : "Uplink Data Aggregation Max Size",
+                   { "name"          : "Downlink Data Aggregation Max Datagrams",
                      "id"            : "0x15",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.24.6",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "Downlink Data Aggregation Max Size",
                      "id"            : "0x16",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.10",
                      "format"        : "guint32",
+                     "prerequisites" : [ { "common-ref" : "Success" } ] },
+                   { "name"          : "Uplink Data Aggregation Max Datagrams",
+                     "id"            : "0x17",
+                     "type"          : "TLV",
+                     "since"         : "1.30",
+                     "format"        : "guint32",
+                     "prerequisites" : [ { "common-ref" : "Success" } ] },
+                   // We mistakenly had a different TLV named as "Uplink Data
+                   // Aggregation Max Size" since 1.10, and since then we kept
+                   // compat support to avoid breaking API/ABI. We now introduce
+                   // the correct TLV named in the same way, and so we keep the
+                   // original "since" tag and we remove the compat symbols.
+                   { "name"          : "Uplink Data Aggregation Max Size",
+                     "id"            : "0x18",
+                     "type"          : "TLV",
+                     "since"         : "1.10",
+                     "format"        : "guint32",
+                     "prerequisites" : [ { "common-ref" : "Success" } ] },
+                   { "name"          : "Download Minimum Padding",
+                     "id"            : "0x1A",
+                     "type"          : "TLV",
+                     "since"         : "1.30",
+                     "format"        : "guint32",
+                     "prerequisites" : [ { "common-ref" : "Success" } ] },
+                   { "name"          : "Flow Control",
+                     "id"            : "0x1B",
+                     "type"          : "TLV",
+                     "since"         : "1.30",
+                     "format"        : "guint8",
                      "prerequisites" : [ { "common-ref" : "Success" } ] } ] }
-
 ]

File diff suppressed because it is too large
+ 1059 - 50
data/qmi-service-wds.json


+ 158 - 60
data/qmi-service-wms.json

@@ -6,7 +6,8 @@
 
   // *********************************************************************************
   {  "name"    : "QMI Client WMS",
-     "type"    : "Client" },
+     "type"    : "Client",
+     "since"   : "1.0" },
 
   // *********************************************************************************
   {  "name"    : "QMI Message WMS",
@@ -21,7 +22,7 @@
      "type"    : "Message",
      "service" : "WMS",
      "id"      : "0x0000",
-     "version" : "1.0",
+     "since"   : "1.0",
      "output"  : [ { "common-ref" : "Operation Result" } ] },
 
   // *********************************************************************************
@@ -29,11 +30,11 @@
      "type"    : "Message",
      "service" : "WMS",
      "id"      : "0x0001",
-     "version" : "1.0",
+     "since"   : "1.0",
      "input"   : [ { "name"      : "New MT Message Indicator",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.0",
                      "format"    : "sequence",
                      "contents"  : [ { "name"          : "Report",
                                        "format"        : "guint8",
@@ -44,10 +45,11 @@
      "type"    : "Indication",
      "service" : "WMS",
      "id"      : "0x0001",
+     "since"   : "1.0",
      "output"  : [ { "name"      : "MT Message",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.0",
                      "format"    : "sequence",
                      "contents"  : [ { "name"          : "Storage Type",
                                        "format"        : "guint8",
@@ -56,8 +58,8 @@
                                        "format" : "guint32" } ] },
                    { "name"      : "Transfer Route MT Message",
                      "id"        : "0x11",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.0",
                      "format"    : "sequence",
                      "contents"  : [ { "name"          : "Ack Indicator",
                                        "format"        : "guint8",
@@ -73,14 +75,14 @@
                                        "array-element"      : { "format" : "guint8" } } ] },
                    { "name"          : "Message Mode",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "QmiWmsMessageMode" },
                    { "name"      : "ETWS Message",
                      "id"        : "0x13",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.0",
                      "format"    : "sequence",
                      "contents"  : [ { "name"          : "Notification Type",
                                        "format"        : "guint8",
@@ -91,8 +93,8 @@
                                        "array-element"      : { "format" : "guint8" } } ] },
                    { "name"      : "ETWS PLMN Information",
                      "id"        : "0x14",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.0",
                      "format"    : "sequence",
                      "contents"  : [ { "name"   : "MCC",
                                        "format" : "guint16" },
@@ -100,26 +102,42 @@
                                        "format" : "guint16" } ] },
                    { "name"          : "SMSC Address",
                      "id"            : "0x15",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "string" },
                    { "name"          : "SMS on IMS",
                      "id"            : "0x16",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" } ] },
 
+  // *********************************************************************************
+  {  "name"    : "Get Supported Messages",
+     "type"    : "Message",
+     "service" : "WMS",
+     "id"      : "0x001E",
+     "since"   : "1.14",
+     "output"  : [ { "common-ref" : "Operation Result" },
+                   { "name"               : "List",
+                     "id"                 : "0x10",
+                     "type"               : "TLV",
+                     "since"              : "1.14",
+                     "format"             : "array",
+                     "size-prefix-format" : "guint16",
+                     "array-element"      : { "format" : "guint8" },
+                     "prerequisites"      : [ { "common-ref" : "Success" } ] } ] },
+
   // *********************************************************************************
   {  "name"    : "Raw Send",
      "type"    : "Message",
      "service" : "WMS",
      "id"      : "0x0020",
-     "version" : "1.0",
+     "since"   : "1.0",
      "input"   : [ { "name"      : "Raw Message Data",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
+                     "since"     : "1.0",
                      "format"    : "sequence",
                      "contents"  : [ { "name"          : "Format",
                                        "format"        : "guint8",
@@ -130,8 +148,8 @@
                                        "array-element"      : { "format" : "guint8" } } ] },
                    { "name"      : "CDMA Force On DC",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.0",
                      "format"    : "sequence",
                      "contents"  : [ { "name"          : "Force",
                                        "format"        : "guint8",
@@ -141,35 +159,35 @@
                                        "public-format" : "QmiWmsCdmaServiceOption" } ] },
                    { "name"      : "CDMA Follow On DC",
                      "id"        : "0x11",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.0",
                      "format"    : "sequence",
                      "contents"  : [ { "name"          : "Follow",
                                        "format"        : "guint8",
                                        "public-format" : "gboolean" } ] },
                    { "name"      : "GSM WCDMA Link Timer",
                      "id"        : "0x12",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.0",
                      "format"    : "guint8" },
                    { "name"          : "SMS on IMS",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" } ],
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "Message ID",
                      "id"            : "0x01",
                      // Even if we have this TLV as mandatory, it seems it really isn't
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint16",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "CDMA Cause Code",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint16",
                      "public-format" : "QmiWmsCdmaCauseCode",
                      "prerequisites" : [ { "field"     : "Result.Error Status",
@@ -180,8 +198,8 @@
                                            "value"     : "QMI_PROTOCOL_ERROR_WMS_CAUSE_CODE" } ] },
                    { "name"          : "CDMA Error Class",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "QmiWmsCdmaErrorClass",
                      "prerequisites" : [ { "field"     : "Result.Error Status",
@@ -192,8 +210,8 @@
                                            "value"     : "QMI_PROTOCOL_ERROR_WMS_CAUSE_CODE" } ] },
                    { "name"          : "GSM WCDMA Cause Info",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "sequence",
                      "contents"      : [ { "name"          : "RP Cause",
                                            "format"        : "guint16",
@@ -209,8 +227,8 @@
                                            "value"     : "QMI_PROTOCOL_ERROR_WMS_CAUSE_CODE" } ] },
                    { "name"          : "Message Delivery Failure Type",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "QmiWmsMessageDeliveryFailureType",
                      "prerequisites" : [ { "field"     : "Result.Error Status",
@@ -225,11 +243,11 @@
      "type"    : "Message",
      "service" : "WMS",
      "id"      : "0x0021",
-     "version" : "1.0",
+     "since"   : "1.0",
      "input"   : [ { "name"      : "Raw Message Data",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
+                     "since"     : "1.0",
                      "format"    : "sequence",
                      "contents"  : [ { "name"          : "Storage Type",
                                        "format"        : "guint8",
@@ -244,8 +262,8 @@
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "Memory Index",
                      "id"            : "0x01",
-                     "mandatory"     : "yes",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint32",
                      "prerequisites" : [ { "common-ref" : "Success" } ] } ] },
 
@@ -254,11 +272,11 @@
      "type"    : "Message",
      "service" : "WMS",
      "id"      : "0x0022",
-     "version" : "1.0",
+     "since"   : "1.0",
      "input"   : [ { "name"      : "Message Memory Storage ID",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
+                     "since"     : "1.0",
                      "format"    : "sequence",
                      "contents"  : [ { "name"          : "Storage Type",
                                        "format"        : "guint8",
@@ -267,21 +285,21 @@
                                        "format"        : "guint32" } ] },
                    { "name"          : "Message Mode",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "QmiWmsMessageMode" },
                    { "name"          : "SMS on IMS",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" } ],
      "output"   : [ { "common-ref" : "Operation Result" },
                     { "name"      : "Raw Message Data",
                       "id"        : "0x01",
-                      "mandatory" : "yes",
                       "type"      : "TLV",
+                      "since"     : "1.0",
                       "format"    : "sequence",
                       "contents"  : [ { "name"          : "Message Tag",
                                         "format"        : "guint8",
@@ -300,11 +318,11 @@
      "type"    : "Message",
      "service" : "WMS",
      "id"      : "0x0023",
-     "version" : "1.0",
+     "since"   : "1.0",
      "input"   : [ { "name"      : "Message Tag",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
+                     "since"     : "1.0",
                      "format"    : "sequence",
                      "contents"  : [ { "name"          : "Storage Type",
                                        "format"        : "guint8",
@@ -316,8 +334,8 @@
                                        "public-format" : "QmiWmsMessageTagType" } ] },
                    { "name"          : "Message Mode",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "QmiWmsMessageMode" } ],
      "output"   : [ { "common-ref" : "Operation Result" } ] },
@@ -327,28 +345,28 @@
      "type"    : "Message",
      "service" : "WMS",
      "id"      : "0x0024",
-     "version" : "1.0",
+     "since"   : "1.0",
      "input"   : [ { "name"          : "Memory Storage",
                      "id"            : "0x01",
-                     "mandatory"     : "yes",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "QmiWmsStorageType" },
                    { "name"      : "Memory Index",
                      "id"        : "0x10",
-                     "mandatory" : "no",
                      "type"      : "TLV",
+                     "since"     : "1.0",
                      "format"    : "guint32" },
                    { "name"          : "Message Tag",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "QmiWmsMessageTagType" },
                    { "name"          : "Message Mode",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "QmiWmsMessageMode" } ],
      "output"   : [ { "common-ref" : "Operation Result" } ] },
@@ -358,12 +376,12 @@
      "type"    : "Message",
      "service" : "WMS",
      "id"      : "0x0030",
-     "version" : "1.0",
+     "since"   : "1.0",
      "output"   : [ { "common-ref" : "Operation Result" },
                     { "name"          : "Message Protocol",
                       "id"            : "0x01",
-                      "mandatory"     : "yes",
                       "type"          : "TLV",
+                      "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiWmsMessageProtocol",
                       "prerequisites" : [ { "common-ref" : "Success" } ] } ] },
@@ -373,30 +391,30 @@
      "type"    : "Message",
      "service" : "WMS",
      "id"      : "0x0031",
-     "version" : "1.0",
+     "since"   : "1.0",
      "input"   : [ { "name"          : "Storage Type",
                      "id"            : "0x01",
-                     "mandatory"     : "yes",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "QmiWmsStorageType" },
                    { "name"          : "Message Tag",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "QmiWmsMessageTagType" },
                    { "name"          : "Message Mode",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "QmiWmsMessageMode" } ],
      "output"   : [ { "common-ref" : "Operation Result" },
                     { "name"               : "Message List",
                       "id"                 : "0x01",
-                      "mandatory"          : "yes",
                       "type"               : "TLV",
+                      "since"              : "1.0",
                       "format"             : "array",
                       "size-prefix-format" : "guint32" ,
                       "array-element"      : { "name"     : "Element",
@@ -413,11 +431,11 @@
      "type"    : "Message",
      "service" : "WMS",
      "id"      : "0x0032",
-     "version" : "1.0",
+     "since"   : "1.0",
      "input"   : [ { "name"               : "Route List",
                      "id"                 : "0x01",
-                     "mandatory"          : "yes",
                      "type"               : "TLV",
+                     "since"              : "1.0",
                      "format"             : "array",
                      "size-prefix-format" : "guint16",
                      "array-element"      : { "name"     : "Element",
@@ -436,8 +454,8 @@
                                                                "public-format" : "QmiWmsReceiptAction" } ] } },
                    { "name"          : "Transfer Status Report",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "QmiWmsTransferIndication" } ],
      "output"   : [ { "common-ref" : "Operation Result" } ] },
@@ -447,12 +465,12 @@
      "type"    : "Message",
      "service" : "WMS",
      "id"      : "0x0033",
-     "version" : "1.0",
+     "since"   : "1.0",
      "output"   : [ { "common-ref" : "Operation Result" },
                     { "name"               : "Route List",
                       "id"                 : "0x01",
-                      "mandatory"          : "yes",
                       "type"               : "TLV",
+                      "since"              : "1.0",
                       "format"             : "array",
                       "size-prefix-format" : "guint16",
                       "array-element"      : { "name"     : "Element",
@@ -472,22 +490,83 @@
                       "prerequisites"      : [ { "common-ref" : "Success" } ] },
                     { "name"          : "Transfer Status Report",
                       "id"            : "0x10",
-                      "mandatory"     : "no",
                       "type"          : "TLV",
+                      "since"         : "1.0",
                       "format"        : "guint8",
                       "public-format" : "QmiWmsTransferIndication",
                       "prerequisites" : [ { "common-ref" : "Success" } ] } ] },
 
+  // *********************************************************************************
+  {  "name"    : "Send Ack",
+     "type"    : "Message",
+     "service" : "WMS",
+     "id"      : "0x0037",
+     "since"   : "1.28",
+     "input"   : [ { "name"      : "Information",
+                     "id"        : "0x01",
+                     "type"      : "TLV",
+                     "since"     : "1.28",
+                     "format"    : "sequence",
+                     "contents"  : [ { "name"   : "Transaction ID",
+                                       "format" : "guint32" },
+                                     { "name"          : "Message Protocol",
+                                       "format"        : "guint8",
+                                       "public-format" : "QmiWmsMessageProtocol" },
+                                     { "name"          : "Success",
+                                       "format"        : "guint8",
+                                       "public-format" : "gboolean" } ] },
+		   { "name"      : "Failure Information 3GPP2",
+                     "id"        : "0x10",
+                     "type"      : "TLV",
+                     "since"     : "1.28",
+                     "format"    : "sequence",
+                     "contents"  : [ { "name"          : "Error Class",
+                                       "format"        : "guint8",
+                                       "public-format" : "QmiWmsCdmaErrorClass" },
+                                     { "name"          : "Cause Code",
+                                       "format"        : "guint8",
+                                       "public-format" : "QmiWmsCdmaCauseCode" } ] },
+		   { "name"      : "Failure Information 3GPP",
+                     "id"        : "0x11",
+                     "type"      : "TLV",
+                     "since"     : "1.28",
+                     "format"    : "sequence",
+                     "contents"  : [ { "name"          : "RP Cause",
+                                       "format"        : "guint8",
+                                       "public-format" : "QmiWmsGsmUmtsRpCause" },
+                                     { "name"          : "TP Cause",
+                                       "format"        : "guint8",
+                                       "public-format" : "QmiWmsGsmUmtsTpCause" } ] },
+		   { "name"          : "SMS on IMS",
+                     "id"            : "0x12",
+                     "type"          : "TLV",
+                     "since"         : "1.28",
+                     "format"        : "guint8",
+		     "public-format" : "gboolean" } ],
+     "output"  : [ { "common-ref" : "Operation Result" },
+                   { "name"          : "Failure Cause",
+                     "id"            : "0x10",
+                     "type"          : "TLV",
+                     "since"         : "1.28",
+                     "format"        : "guint8",
+		     "public-format" : "QmiWmsAckFailureCause",
+                     "prerequisites" : [ { "field"     : "Result.Error Status",
+                                           "operation" : "!=",
+                                           "value"     : "QMI_STATUS_SUCCESS" },
+                                         { "field"     : "Result.Error Code",
+                                           "operation" : "==",
+                                           "value"     : "QMI_PROTOCOL_ERROR_ACK_NOT_SENT" } ] } ] },
+
   // *********************************************************************************
   {  "name"    : "Send From Memory Storage",
      "type"    : "Message",
      "service" : "WMS",
      "id"      : "0x0042",
-     "version" : "1.2",
+     "since"   : "1.0",
      "input"   : [ { "name"      : "Information",
                      "id"        : "0x01",
-                     "mandatory" : "yes",
                      "type"      : "TLV",
+                     "since"     : "1.0",
                      "format"    : "sequence",
                      "contents"  : [ { "name"          : "Storage Type",
                                        "format"        : "guint8",
@@ -499,21 +578,21 @@
                                        "public-format" : "QmiWmsMessageMode" } ] },
                    { "name"          : "SMS on IMS",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "gboolean" } ],
      "output"  : [ { "common-ref" : "Operation Result" },
                    { "name"          : "Message ID",
                      "id"            : "0x10",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint16",
                      "prerequisites" : [ { "common-ref" : "Success" } ] },
                    { "name"          : "CDMA Cause Code",
                      "id"            : "0x11",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint16",
                      "public-format" : "QmiWmsCdmaCauseCode",
                      "prerequisites" : [ { "field"     : "Result.Error Status",
@@ -524,8 +603,8 @@
                                            "value"     : "QMI_PROTOCOL_ERROR_WMS_CAUSE_CODE" } ] },
                    { "name"          : "CDMA Error Class",
                      "id"            : "0x12",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "QmiWmsCdmaErrorClass",
                      "prerequisites" : [ { "field"     : "Result.Error Status",
@@ -536,8 +615,8 @@
                                            "value"     : "QMI_PROTOCOL_ERROR_WMS_CAUSE_CODE" } ] },
                    { "name"          : "GSM WCDMA Cause Info",
                      "id"            : "0x13",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "sequence",
                      "contents"      : [ { "name"          : "RP Cause",
                                            "format"        : "guint16",
@@ -553,8 +632,8 @@
                                            "value"     : "QMI_PROTOCOL_ERROR_WMS_CAUSE_CODE" } ] },
                    { "name"          : "Message Delivery Failure Type",
                      "id"            : "0x14",
-                     "mandatory"     : "no",
                      "type"          : "TLV",
+                     "since"         : "1.0",
                      "format"        : "guint8",
                      "public-format" : "QmiWmsMessageDeliveryFailureType",
                      "prerequisites" : [ { "field"     : "Result.Error Status",
@@ -562,6 +641,25 @@
                                            "value"     : "QMI_STATUS_SUCCESS" },
                                          { "field"     : "Result.Error Code",
                                            "operation" : "==",
-                                           "value"     : "QMI_PROTOCOL_ERROR_WMS_CAUSE_CODE" } ] } ] }
+                                           "value"     : "QMI_PROTOCOL_ERROR_WMS_CAUSE_CODE" } ] } ] },
+
+  // *********************************************************************************
+  {  "name"    : "SMSC Address",
+     "type"    : "Indication",
+     "service" : "WMS",
+     "id"      : "0x0046",
+     "since"   : "1.14",
+     "output"  : [ { "name"      : "Address",
+                     "id"        : "0x01",
+                     "type"      : "TLV",
+                     "since"     : "1.14",
+                     "format"    : "sequence",
+                     "contents"  : [ { "name"       : "Type",
+                                       "format"     : "string",
+                                       "fixed-size" : "3" },
+                                     { "name"               : "Digits",
+                                       "format"             : "string",
+                                       "size-prefix-format" : "guint8" } ] } ] }
+
 
 ]

+ 213 - 21
qmi-enums-dms.h

@@ -17,7 +17,8 @@
  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  * Boston, MA 02110-1301 USA.
  *
- * Copyright (C) 2012 Lanedo GmbH <aleksander@lanedo.com>
+ * Copyright (C) 2012 Lanedo GmbH.
+ * Copyright (C) 2012-2017 Aleksander Morgado <aleksander@aleksander.es>
  */
 
 #ifndef _LIBQMI_GLIB_QMI_ENUMS_DMS_H_
@@ -25,7 +26,6 @@
 
 /**
  * SECTION: qmi-enums-dms
- * @title: DMS enumerations and flags
  *
  * This section defines enumerations and flags used in the DMS service
  * interface.
@@ -43,8 +43,10 @@
  * @QMI_DMS_DATA_SERVICE_CAPABILITY_NON_SIMULTANEOUS_CS_PS: Non simultaneous CS and PS supported.
  *
  * Data service capability.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_DMS_DATA_SERVICE_CAPABILITY_NONE                   = 0,
     QMI_DMS_DATA_SERVICE_CAPABILITY_CS                     = 1,
     QMI_DMS_DATA_SERVICE_CAPABILITY_PS                     = 2,
@@ -58,8 +60,10 @@ typedef enum {
  * @QMI_DMS_SIM_CAPABILITY_SUPPORTED: SIM is supported.
  *
  * SIM capability.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_DMS_SIM_CAPABILITY_NOT_SUPPORTED = 1,
     QMI_DMS_SIM_CAPABILITY_SUPPORTED     = 2
 } QmiDmsSimCapability;
@@ -71,18 +75,23 @@ typedef enum {
  * @QMI_DMS_RADIO_INTERFACE_GSM: GSM.
  * @QMI_DMS_RADIO_INTERFACE_UMTS: UMTS.
  * @QMI_DMS_RADIO_INTERFACE_LTE: LTE.
+ * @QMI_DMS_RADIO_INTERFACE_TDS: TDS. Since 1.32.
+ * @QMI_DMS_RADIO_INTERFACE_5GNR: 5G NR. Since 1.26.
  *
  * Radio interface type.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_DMS_RADIO_INTERFACE_CDMA20001X = 1,
     QMI_DMS_RADIO_INTERFACE_EVDO       = 2,
     QMI_DMS_RADIO_INTERFACE_GSM        = 4,
     QMI_DMS_RADIO_INTERFACE_UMTS       = 5,
-    QMI_DMS_RADIO_INTERFACE_LTE        = 8
+    QMI_DMS_RADIO_INTERFACE_LTE        = 8,
+    QMI_DMS_RADIO_INTERFACE_TDS        = 9,
+    QMI_DMS_RADIO_INTERFACE_5GNR       = 10,
 } QmiDmsRadioInterface;
 
-
 /*****************************************************************************/
 /* Helper enums for the 'QMI DMS Get Power State' message */
 
@@ -105,15 +114,16 @@ typedef enum {
  * otherwise the battery is not being charged.
  *
  * If @QMI_DMS_POWER_STATE_FAULT is set, a power fault has been detected.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_DMS_POWER_STATE_EXTERNAL_SOURCE   = 1 << 0,
     QMI_DMS_POWER_STATE_BATTERY_CONNECTED = 1 << 1,
     QMI_DMS_POWER_STATE_BATTERY_CHARGING  = 1 << 2,
     QMI_DMS_POWER_STATE_FAULT             = 1 << 3,
 } QmiDmsPowerState;
 
-
 /*****************************************************************************/
 /* Helper enums for the 'QMI DMS UIM Set PIN Protection' message */
 
@@ -123,13 +133,14 @@ typedef enum {
  * @QMI_DMS_UIM_PIN_ID_PIN2: PIN2.
  *
  * The PIN identifier.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_DMS_UIM_PIN_ID_PIN  = 1,
     QMI_DMS_UIM_PIN_ID_PIN2 = 2
 } QmiDmsUimPinId;
 
-
 /*****************************************************************************/
 /* Helper enums for the 'QMI DMS UIM Get PIN Status' message */
 
@@ -145,8 +156,10 @@ typedef enum {
  * @QMI_DMS_UIM_PIN_STATUS_CHANGED: Changed.
  *
  * The PIN status.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_DMS_UIM_PIN_STATUS_NOT_INITIALIZED      = 0,
     QMI_DMS_UIM_PIN_STATUS_ENABLED_NOT_VERIFIED = 1,
     QMI_DMS_UIM_PIN_STATUS_ENABLED_VERIFIED     = 2,
@@ -173,8 +186,10 @@ typedef enum {
  * @QMI_DMS_OPERATING_MODE_UNKNOWN: Unknown.
  *
  * Operating mode of the device.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_DMS_OPERATING_MODE_ONLINE                = 0,
     QMI_DMS_OPERATING_MODE_LOW_POWER             = 1,
     QMI_DMS_OPERATING_MODE_FACTORY_TEST          = 2,
@@ -194,8 +209,10 @@ typedef enum {
  * @QMI_DMS_OFFLINE_REASON_DEVICE_MEMORY_FULL: Memory full, cannot copy PRI information.
  *
  * Reasons for being in Offline (@QMI_DMS_OPERATING_MODE_OFFLINE) state.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     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,
@@ -212,8 +229,10 @@ typedef enum {
  * @QMI_DMS_TIME_SOURCE_HDR_NETWORK: HDR network.
  *
  * Source of the timestamp.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_DMS_TIME_SOURCE_DEVICE        = 0,
     QMI_DMS_TIME_SOURCE_CDMA_NETWORK  = 1,
     QMI_DMS_TIME_SOURCE_HDR_NETWORK   = 2,
@@ -237,8 +256,10 @@ typedef enum {
  * @QMI_DMS_ACTIVATION_STATE_OTASP_COMMITED: OTASP settings committed.
  *
  * State of the service activation.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_DMS_ACTIVATION_STATE_NOT_ACTIVATED       = 0x00,
     QMI_DMS_ACTIVATION_STATE_ACTIVATED           = 0x01,
     QMI_DMS_ACTIVATION_STATE_CONNECTING          = 0x02,
@@ -264,8 +285,10 @@ typedef enum {
  * @QMI_DMS_UIM_FACILITY_PF: UIM personalization facility.
  *
  * UIM personalization facilities.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_DMS_UIM_FACILITY_PN = 0,
     QMI_DMS_UIM_FACILITY_PU = 1,
     QMI_DMS_UIM_FACILITY_PP = 2,
@@ -278,8 +301,12 @@ typedef enum {
  * @QMI_DMS_UIM_FACILITY_STATE_DEACTIVATED: Facility is deactivated.
  * @QMI_DMS_UIM_FACILITY_STATE_ACTIVATED: Facility is activated.
  * @QMI_DMS_UIM_FACILITY_STATE_BLOCKED: Facility is blocked.
+ *
+ * State of the UIM facility.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_DMS_UIM_FACILITY_STATE_DEACTIVATED = 0,
     QMI_DMS_UIM_FACILITY_STATE_ACTIVATED   = 1,
     QMI_DMS_UIM_FACILITY_STATE_BLOCKED     = 2
@@ -297,8 +324,10 @@ typedef enum {
  * @QMI_DMS_UIM_STATE_UNKNOWN: UIM state currently unavailable.
  *
  * State of the UIM.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_DMS_UIM_STATE_INITIALIZATION_COMPLETED = 0x00,
     QMI_DMS_UIM_STATE_LOCKED_OR_FAILED         = 0x01,
     QMI_DMS_UIM_STATE_NOT_PRESENT              = 0x02,
@@ -314,8 +343,10 @@ typedef enum {
  * @QMI_DMS_TIME_REFERENCE_TYPE_USER: User time.
  *
  * Time reference type.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_DMS_TIME_REFERENCE_TYPE_USER = 0
 } QmiDmsTimeReferenceType;
 
@@ -328,10 +359,171 @@ typedef enum {
  * @QMI_DMS_FIRMWARE_IMAGE_TYPE_PRI: PRI image.
  *
  * Type of firmware image.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_DMS_FIRMWARE_IMAGE_TYPE_MODEM = 0,
     QMI_DMS_FIRMWARE_IMAGE_TYPE_PRI   = 1
 } QmiDmsFirmwareImageType;
 
+/*****************************************************************************/
+/* Helper enums for the 'QMI DMS Get Boot Image Download Mode' message */
+
+/**
+ * QmiDmsBootImageDownloadMode:
+ * @QMI_DMS_BOOT_IMAGE_DOWNLOAD_MODE_NORMAL: Normal operation.
+ * @QMI_DMS_BOOT_IMAGE_DOWNLOAD_MODE_BOOT_AND_RECOVERY: Boot and recovery image download mode.
+ *
+ * Specifies the mode for the next boot.
+ *
+ * Since: 1.18
+ */
+typedef enum { /*< since=1.18 >*/
+    QMI_DMS_BOOT_IMAGE_DOWNLOAD_MODE_NORMAL            = 0,
+    QMI_DMS_BOOT_IMAGE_DOWNLOAD_MODE_BOOT_AND_RECOVERY = 1,
+} QmiDmsBootImageDownloadMode;
+
+/*****************************************************************************/
+/* Helper enums for the 'QMI DMS Get MAC Address' message */
+
+/**
+ * QmiDmsMacType:
+ * @QMI_DMS_MAC_TYPE_WLAN: WLAN MAC address.
+ * @QMI_DMS_MAC_TYPE_BT: Bluetooth MAC address.
+ *
+ * Specifies the device from which the MAC address should be queried.
+ *
+ * Since: 1.26
+ */
+typedef enum { /*< since=1.26 >*/
+    QMI_DMS_MAC_TYPE_WLAN = 0,
+    QMI_DMS_MAC_TYPE_BT = 1,
+} QmiDmsMacType;
+
+/*****************************************************************************/
+/* Helper enums for the 'QMI DMS HP Change Device Mode' message */
+
+/**
+ * QmiDmsHpDeviceMode:
+ * @QMI_DMS_HP_DEVICE_MODE_FASTBOOT: Fastboot download mode.
+ *
+ * HP specific device modes.
+ *
+ * Since: 1.18
+ */
+typedef enum { /*< since=1.18 >*/
+    QMI_DMS_HP_DEVICE_MODE_FASTBOOT = 5,
+} QmiDmsHpDeviceMode;
+
+/*****************************************************************************/
+/* Helper enums for the 'QMI DMS Swi Get USB Composition' message */
+
+/**
+ * QmiDmsSwiUsbComposition:
+ * @QMI_DMS_SWI_USB_COMPOSITION_UNKNOWN: Unknown.
+ * @QMI_DMS_SWI_USB_COMPOSITION_0: HIP, DM, NMEA, AT, MDM1, MDM2, MDM3, MS.
+ * @QMI_DMS_SWI_USB_COMPOSITION_1: HIP, DM, NMEA, AT, MDM1, MS.
+ * @QMI_DMS_SWI_USB_COMPOSITION_2: HIP, DM, NMEA, AT, NIC1, MS.
+ * @QMI_DMS_SWI_USB_COMPOSITION_3: HIP, DM, NMEA, AT, MDM1, NIC1, MS.
+ * @QMI_DMS_SWI_USB_COMPOSITION_4: HIP, DM, NMEA, AT, NIC1, NIC2, NIC3, MS.
+ * @QMI_DMS_SWI_USB_COMPOSITION_5: HIP, DM, NMEA, AT, ECM1, MS.
+ * @QMI_DMS_SWI_USB_COMPOSITION_6: DM, NMEA, AT, QMI.
+ * @QMI_DMS_SWI_USB_COMPOSITION_7: DM, NMEA, AT, RMNET1, RMNET2, RMNET3.
+ * @QMI_DMS_SWI_USB_COMPOSITION_8: DM, NMEA, AT, MBIM.
+ * @QMI_DMS_SWI_USB_COMPOSITION_9: MBIM.
+ * @QMI_DMS_SWI_USB_COMPOSITION_10: NMEA, MBIM.
+ * @QMI_DMS_SWI_USB_COMPOSITION_11: DM, MBIM.
+ * @QMI_DMS_SWI_USB_COMPOSITION_12: DM, NMEA, MBIM.
+ * @QMI_DMS_SWI_USB_COMPOSITION_13: Dual configuration: USB composition 6 and USB composition 8.
+ * @QMI_DMS_SWI_USB_COMPOSITION_14: Dual configuration: USB composition 6 and USB composition 9.
+ * @QMI_DMS_SWI_USB_COMPOSITION_15: Dual configuration: USB composition 6 and USB composition 10.
+ * @QMI_DMS_SWI_USB_COMPOSITION_16: Dual configuration: USB composition 6 and USB composition 11.
+ * @QMI_DMS_SWI_USB_COMPOSITION_17: Dual configuration: USB composition 6 and USB composition 12.
+ * @QMI_DMS_SWI_USB_COMPOSITION_18: Dual configuration: USB composition 7 and USB composition 8.
+ * @QMI_DMS_SWI_USB_COMPOSITION_19: Dual configuration: USB composition 7 and USB composition 9.
+ * @QMI_DMS_SWI_USB_COMPOSITION_20: Dual configuration: USB composition 7 and USB composition 10.
+ * @QMI_DMS_SWI_USB_COMPOSITION_21: Dual configuration: USB composition 7 and USB composition 11.
+ * @QMI_DMS_SWI_USB_COMPOSITION_22: Dual configuration: USB composition 7 and USB composition 12.
+ *
+ * Sierra Wireless USB composition modes.
+ *
+ * Since: 1.20
+ */
+typedef enum { /*< since=1.20 >*/
+    QMI_DMS_SWI_USB_COMPOSITION_UNKNOWN = -1,
+    QMI_DMS_SWI_USB_COMPOSITION_0  =  0,
+    QMI_DMS_SWI_USB_COMPOSITION_1  =  1,
+    QMI_DMS_SWI_USB_COMPOSITION_2  =  2,
+    QMI_DMS_SWI_USB_COMPOSITION_3  =  3,
+    QMI_DMS_SWI_USB_COMPOSITION_4  =  4,
+    QMI_DMS_SWI_USB_COMPOSITION_5  =  5,
+    QMI_DMS_SWI_USB_COMPOSITION_6  =  6,
+    QMI_DMS_SWI_USB_COMPOSITION_7  =  7,
+    QMI_DMS_SWI_USB_COMPOSITION_8  =  8,
+    QMI_DMS_SWI_USB_COMPOSITION_9  =  9,
+    QMI_DMS_SWI_USB_COMPOSITION_10 = 10,
+    QMI_DMS_SWI_USB_COMPOSITION_11 = 11,
+    QMI_DMS_SWI_USB_COMPOSITION_12 = 12,
+    QMI_DMS_SWI_USB_COMPOSITION_13 = 13,
+    QMI_DMS_SWI_USB_COMPOSITION_14 = 14,
+    QMI_DMS_SWI_USB_COMPOSITION_15 = 15,
+    QMI_DMS_SWI_USB_COMPOSITION_16 = 16,
+    QMI_DMS_SWI_USB_COMPOSITION_17 = 17,
+    QMI_DMS_SWI_USB_COMPOSITION_18 = 18,
+    QMI_DMS_SWI_USB_COMPOSITION_19 = 19,
+    QMI_DMS_SWI_USB_COMPOSITION_20 = 20,
+    QMI_DMS_SWI_USB_COMPOSITION_21 = 21,
+    QMI_DMS_SWI_USB_COMPOSITION_22 = 22,
+} QmiDmsSwiUsbComposition;
+
+/**
+ * qmi_dms_swi_usb_composition_get_description:
+ * @value: a #QmiDmsSwiUsbComposition.
+ *
+ * Gets a text description of the Sierra Wireless USB composition.
+ *
+ * Since: 1.20
+ * Returns: a string.
+ */
+const char *qmi_dms_swi_usb_composition_get_description (QmiDmsSwiUsbComposition value);
+
+/*****************************************************************************/
+/* Helper enums for the 'QMI DMS Foxconn Change Device Mode' message */
+
+/**
+ * QmiDmsFoxconnDeviceMode:
+ * @QMI_DMS_FOXCONN_DEVICE_MODE_UNKNOWN: Unknown mode.
+ * @QMI_DMS_FOXCONN_DEVICE_MODE_FASTBOOT_ONLINE: Fastboot download mode for full partition files.
+ * @QMI_DMS_FOXCONN_DEVICE_MODE_FASTBOOT_OTA: Fastboot download mode for OTA files.
+ *
+ * Foxconn specific device modes.
+ *
+ * Since: 1.26
+ */
+typedef enum { /*< since=1.26 >*/
+    QMI_DMS_FOXCONN_DEVICE_MODE_UNKNOWN         = 0,
+    QMI_DMS_FOXCONN_DEVICE_MODE_FASTBOOT_ONLINE = 0x05,
+    QMI_DMS_FOXCONN_DEVICE_MODE_FASTBOOT_OTA    = 0x0A,
+} QmiDmsFoxconnDeviceMode;
+
+/*****************************************************************************/
+/* Helper enums for the 'QMI DMS Foxconn Get Firmware Version' message */
+
+/**
+ * QmiDmsFoxconnFirmwareVersionType:
+ * @QMI_DMS_FOXCONN_FIRMWARE_VERSION_TYPE_FIRMWARE_MCFG: E.g. T77W968.F0.0.0.2.3.GC.004.
+ * @QMI_DMS_FOXCONN_FIRMWARE_VERSION_TYPE_FIRMWARE_MCFG_APPS: E.g. T77W968.F0.0.0.2.3.GC.004.011.
+ * @QMI_DMS_FOXCONN_FIRMWARE_VERSION_TYPE_APPS: E.g. 011.
+ *
+ * Foxconn specific firmware version types.
+ *
+ * Since: 1.26
+ */
+typedef enum { /*< since=1.26 >*/
+    QMI_DMS_FOXCONN_FIRMWARE_VERSION_TYPE_FIRMWARE_MCFG      = 0x00,
+    QMI_DMS_FOXCONN_FIRMWARE_VERSION_TYPE_FIRMWARE_MCFG_APPS = 0x01,
+    QMI_DMS_FOXCONN_FIRMWARE_VERSION_TYPE_APPS               = 0x02,
+} QmiDmsFoxconnFirmwareVersionType;
+
 #endif /* _LIBQMI_GLIB_QMI_ENUMS_DMS_H_ */

+ 813 - 43
qmi-enums-nas.h

@@ -18,6 +18,7 @@
  * Boston, MA 02110-1301 USA.
  *
  * Copyright (C) 2012 Google Inc.
+ * Copyright (C) 2012-2017 Aleksander Morgado <aleksander@aleksander.es>
  */
 
 #ifndef _LIBQMI_GLIB_QMI_ENUMS_NAS_H_
@@ -25,7 +26,6 @@
 
 /**
  * SECTION: qmi-enums-nas
- * @title: NAS enumerations and flags
  *
  * This section defines enumerations and flags used in the NAS service
  * interface.
@@ -45,10 +45,13 @@
  * @QMI_NAS_RADIO_INTERFACE_UMTS: UMTS.
  * @QMI_NAS_RADIO_INTERFACE_LTE: LTE.
  * @QMI_NAS_RADIO_INTERFACE_TD_SCDMA: TD-SCDMA.
+ * @QMI_NAS_RADIO_INTERFACE_5GNR: 5G NR. Since 1.26.
  *
  * Radio interface technology.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_RADIO_INTERFACE_UNKNOWN     = -1,
     QMI_NAS_RADIO_INTERFACE_NONE        = 0x00,
     QMI_NAS_RADIO_INTERFACE_CDMA_1X     = 0x01,
@@ -57,7 +60,8 @@ typedef enum {
     QMI_NAS_RADIO_INTERFACE_GSM         = 0x04,
     QMI_NAS_RADIO_INTERFACE_UMTS        = 0x05,
     QMI_NAS_RADIO_INTERFACE_LTE         = 0x08,
-    QMI_NAS_RADIO_INTERFACE_TD_SCDMA    = 0x09
+    QMI_NAS_RADIO_INTERFACE_TD_SCDMA    = 0x09,
+    QMI_NAS_RADIO_INTERFACE_5GNR        = 0x0C,
 } QmiNasRadioInterface;
 
 /**
@@ -121,8 +125,16 @@ typedef enum {
  * @QMI_NAS_ACTIVE_BAND_EUTRAN_19: EUTRAN band 19.
  * @QMI_NAS_ACTIVE_BAND_EUTRAN_20: EUTRAN band 20.
  * @QMI_NAS_ACTIVE_BAND_EUTRAN_21: EUTRAN band 21.
+ * @QMI_NAS_ACTIVE_BAND_EUTRAN_23: EUTRAN band 23.
  * @QMI_NAS_ACTIVE_BAND_EUTRAN_24: EUTRAN band 24.
  * @QMI_NAS_ACTIVE_BAND_EUTRAN_25: EUTRAN band 25.
+ * @QMI_NAS_ACTIVE_BAND_EUTRAN_26: EUTRAN band 26.
+ * @QMI_NAS_ACTIVE_BAND_EUTRAN_27: EUTRAN band 27.
+ * @QMI_NAS_ACTIVE_BAND_EUTRAN_28: EUTRAN band 28.
+ * @QMI_NAS_ACTIVE_BAND_EUTRAN_29: EUTRAN band 29.
+ * @QMI_NAS_ACTIVE_BAND_EUTRAN_30: EUTRAN band 30.
+ * @QMI_NAS_ACTIVE_BAND_EUTRAN_31: EUTRAN band 31.
+ * @QMI_NAS_ACTIVE_BAND_EUTRAN_32: EUTRAN band 32.
  * @QMI_NAS_ACTIVE_BAND_EUTRAN_33: EUTRAN band 33.
  * @QMI_NAS_ACTIVE_BAND_EUTRAN_34: EUTRAN band 34.
  * @QMI_NAS_ACTIVE_BAND_EUTRAN_35: EUTRAN band 35.
@@ -134,6 +146,15 @@ typedef enum {
  * @QMI_NAS_ACTIVE_BAND_EUTRAN_41: EUTRAN band 41.
  * @QMI_NAS_ACTIVE_BAND_EUTRAN_42: EUTRAN band 42.
  * @QMI_NAS_ACTIVE_BAND_EUTRAN_43: EUTRAN band 43.
+ * @QMI_NAS_ACTIVE_BAND_EUTRAN_46: EUTRAN band 46.
+ * @QMI_NAS_ACTIVE_BAND_EUTRAN_47: EUTRAN band 47.
+ * @QMI_NAS_ACTIVE_BAND_EUTRAN_48: EUTRAN band 48.
+ * @QMI_NAS_ACTIVE_BAND_EUTRAN_66: EUTRAN band 66.
+ * @QMI_NAS_ACTIVE_BAND_EUTRAN_71: EUTRAN band 71.
+ * @QMI_NAS_ACTIVE_BAND_EUTRAN_125: EUTRAN band 125.
+ * @QMI_NAS_ACTIVE_BAND_EUTRAN_126: EUTRAN band 126.
+ * @QMI_NAS_ACTIVE_BAND_EUTRAN_127: EUTRAN band 127.
+ * @QMI_NAS_ACTIVE_BAND_EUTRAN_250: EUTRAN band 250.
  * @QMI_NAS_ACTIVE_BAND_TDSCDMA_A: TD-SCDMA Band A.
  * @QMI_NAS_ACTIVE_BAND_TDSCDMA_B: TD-SCDMA Band B.
  * @QMI_NAS_ACTIVE_BAND_TDSCDMA_C: TD-SCDMA Band C.
@@ -142,8 +163,10 @@ typedef enum {
  * @QMI_NAS_ACTIVE_BAND_TDSCDMA_F: TD-SCDMA Band F.
  *
  * Band classes.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_ACTIVE_BAND_BC_0 = 0,
     QMI_NAS_ACTIVE_BAND_BC_1 = 1,
     QMI_NAS_ACTIVE_BAND_BC_2 = 2,
@@ -203,8 +226,16 @@ typedef enum {
     QMI_NAS_ACTIVE_BAND_EUTRAN_19 = 144,
     QMI_NAS_ACTIVE_BAND_EUTRAN_20 = 145,
     QMI_NAS_ACTIVE_BAND_EUTRAN_21 = 146,
+    QMI_NAS_ACTIVE_BAND_EUTRAN_23 = 152,
     QMI_NAS_ACTIVE_BAND_EUTRAN_24 = 147,
     QMI_NAS_ACTIVE_BAND_EUTRAN_25 = 148,
+    QMI_NAS_ACTIVE_BAND_EUTRAN_26 = 153,
+    QMI_NAS_ACTIVE_BAND_EUTRAN_27 = 164,
+    QMI_NAS_ACTIVE_BAND_EUTRAN_28 = 158,
+    QMI_NAS_ACTIVE_BAND_EUTRAN_29 = 159,
+    QMI_NAS_ACTIVE_BAND_EUTRAN_30 = 160,
+    QMI_NAS_ACTIVE_BAND_EUTRAN_31 = 165,
+    QMI_NAS_ACTIVE_BAND_EUTRAN_32 = 154,
     QMI_NAS_ACTIVE_BAND_EUTRAN_33 = 135,
     QMI_NAS_ACTIVE_BAND_EUTRAN_34 = 136,
     QMI_NAS_ACTIVE_BAND_EUTRAN_35 = 137,
@@ -216,6 +247,15 @@ typedef enum {
     QMI_NAS_ACTIVE_BAND_EUTRAN_41 = 149,
     QMI_NAS_ACTIVE_BAND_EUTRAN_42 = 150,
     QMI_NAS_ACTIVE_BAND_EUTRAN_43 = 151,
+    QMI_NAS_ACTIVE_BAND_EUTRAN_46 = 163,
+    QMI_NAS_ACTIVE_BAND_EUTRAN_47 = 166,
+    QMI_NAS_ACTIVE_BAND_EUTRAN_48 = 167,
+    QMI_NAS_ACTIVE_BAND_EUTRAN_66 = 161,
+    QMI_NAS_ACTIVE_BAND_EUTRAN_71 = 168,
+    QMI_NAS_ACTIVE_BAND_EUTRAN_125 = 155,
+    QMI_NAS_ACTIVE_BAND_EUTRAN_126 = 156,
+    QMI_NAS_ACTIVE_BAND_EUTRAN_127 = 157,
+    QMI_NAS_ACTIVE_BAND_EUTRAN_250 = 162,
     QMI_NAS_ACTIVE_BAND_TDSCDMA_A = 200,
     QMI_NAS_ACTIVE_BAND_TDSCDMA_B = 201,
     QMI_NAS_ACTIVE_BAND_TDSCDMA_C = 202,
@@ -233,8 +273,10 @@ typedef enum {
  * @QMI_NAS_NETWORK_SERVICE_DOMAIN_UNKNOWN: Unknown service.
  *
  * Network Service Domain.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_NETWORK_SERVICE_DOMAIN_NONE    = 0x00,
     QMI_NAS_NETWORK_SERVICE_DOMAIN_CS      = 0x01,
     QMI_NAS_NETWORK_SERVICE_DOMAIN_PS      = 0x02,
@@ -255,8 +297,10 @@ typedef enum {
  * @QMI_NAS_EVDO_SINR_LEVEL_8: +9 dB.
  *
  * EV-DO SINR level.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_EVDO_SINR_LEVEL_0 = 0,
     QMI_NAS_EVDO_SINR_LEVEL_1 = 1,
     QMI_NAS_EVDO_SINR_LEVEL_2 = 2,
@@ -284,8 +328,10 @@ typedef enum {
  * @QMI_NAS_SIGNAL_STRENGTH_REQUEST_LTE_RSRP: Request LTE RSRP information.
  *
  * Extra information to request when gathering Signal Strength.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_SIGNAL_STRENGTH_REQUEST_NONE       = 0,
     QMI_NAS_SIGNAL_STRENGTH_REQUEST_RSSI       = 1 << 0,
     QMI_NAS_SIGNAL_STRENGTH_REQUEST_ECIO       = 1 << 1,
@@ -308,14 +354,32 @@ typedef enum {
  * @QMI_NAS_NETWORK_SCAN_TYPE_TD_SCDMA: TD-SCDMA network.
  *
  * Flags to use when specifying which networks to scan.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_NETWORK_SCAN_TYPE_GSM      = 1 << 0,
     QMI_NAS_NETWORK_SCAN_TYPE_UMTS     = 1 << 1,
     QMI_NAS_NETWORK_SCAN_TYPE_LTE      = 1 << 2,
     QMI_NAS_NETWORK_SCAN_TYPE_TD_SCDMA = 1 << 3
 } QmiNasNetworkScanType;
 
+/**
+ * QmiNasNetworkScanResult:
+ * @QMI_NAS_NETWORK_SCAN_RESULT_SUCCESS: Success.
+ * @QMI_NAS_NETWORK_SCAN_RESULT_ABORT: Abort.
+ * @QMI_NAS_NETWORK_SCAN_RESULT_RADIO_LINK_FAILURE: Radio link failure.
+ *
+ * Network scan result.
+ *
+ * Since: 1.24
+ */
+typedef enum { /*< since=1.24 >*/
+    QMI_NAS_NETWORK_SCAN_RESULT_SUCCESS            = 0,
+    QMI_NAS_NETWORK_SCAN_RESULT_ABORT              = 1,
+    QMI_NAS_NETWORK_SCAN_RESULT_RADIO_LINK_FAILURE = 2,
+} QmiNasNetworkScanResult;
+
 /**
  * QmiNasNetworkStatus:
  * @QMI_NAS_NETWORK_STATUS_CURRENT_SERVING: Network is in use, current serving.
@@ -328,8 +392,10 @@ typedef enum {
  * @QMI_NAS_NETWORK_STATUS_NOT_PREFERRED: Network is not preferred.
  *
  * Flags to specify the status of a given network.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_NETWORK_STATUS_CURRENT_SERVING = 1 << 0,
     QMI_NAS_NETWORK_STATUS_AVAILABLE       = 1 << 1,
     QMI_NAS_NETWORK_STATUS_HOME            = 1 << 2,
@@ -349,12 +415,31 @@ typedef enum {
  * @QMI_NAS_NETWORK_REGISTER_TYPE_MANUAL: Manual network registration.
  *
  * Type of network registration.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_NETWORK_REGISTER_TYPE_AUTOMATIC = 0x01,
     QMI_NAS_NETWORK_REGISTER_TYPE_MANUAL    = 0x02
 } QmiNasNetworkRegisterType;
 
+/*****************************************************************************/
+/* Helper enums for the 'QMI NAS Attach Detach' request/response */
+
+/**
+ * QmiNasPsAttachAction:
+ * @QMI_NAS_PS_ATTACH_ACTION_ATTACH: Attach the PS domain.
+ * @QMI_NAS_PS_ATTACH_ACTION_DETACH: Detach the PS domain.
+ *
+ * Packet Switched domain attach/detach action.
+ *
+ * Since: 1.20
+ */
+typedef enum { /*< since=1.20 >*/
+    QMI_NAS_PS_ATTACH_ACTION_ATTACH = 0x01,
+    QMI_NAS_PS_ATTACH_ACTION_DETACH = 0x02
+} QmiNasPsAttachAction;
+
 /*****************************************************************************/
 /* Helper enums for the 'QMI NAS Get Serving System' request/response */
 
@@ -367,8 +452,10 @@ typedef enum {
  * @QMI_NAS_REGISTRATION_STATE_UNKNOWN: Unknown.
  *
  * Status of the network registration.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_REGISTRATION_STATE_NOT_REGISTERED           = 0x00,
     QMI_NAS_REGISTRATION_STATE_REGISTERED               = 0x01,
     QMI_NAS_REGISTRATION_STATE_NOT_REGISTERED_SEARCHING = 0x02,
@@ -383,8 +470,10 @@ typedef enum {
  * @QMI_NAS_ATTACH_STATE_DETACHED: Detached.
  *
  * Domain attach state.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_ATTACH_STATE_UNKNOWN  = 0x00,
     QMI_NAS_ATTACH_STATE_ATTACHED = 0x01,
     QMI_NAS_ATTACH_STATE_DETACHED = 0x02,
@@ -397,8 +486,10 @@ typedef enum {
  * @QMI_NAS_NETWORK_TYPE_3GPP: 3GPP network.
  *
  * Type of network.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_NETWORK_TYPE_UNKNOWN = 0x00,
     QMI_NAS_NETWORK_TYPE_3GPP2   = 0x01,
     QMI_NAS_NETWORK_TYPE_3GPP    = 0x02,
@@ -410,8 +501,10 @@ typedef enum {
  * @QMI_NAS_ROAMING_INDICATOR_STATUS_OFF: Home.
  *
  * Status of the roaming indication.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_ROAMING_INDICATOR_STATUS_ON  = 0x00,
     QMI_NAS_ROAMING_INDICATOR_STATUS_OFF = 0x01,
     /* next values only for 3GPP2 */
@@ -435,8 +528,10 @@ typedef enum {
  * @QMI_NAS_DATA_CAPABILITY_DC_HSDPA_PLUS: DC-HSDPA+.
  *
  * Data capability of the network.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_DATA_CAPABILITY_NONE          = 0x00,
     QMI_NAS_DATA_CAPABILITY_GPRS          = 0x01,
     QMI_NAS_DATA_CAPABILITY_EDGE          = 0x02,
@@ -462,8 +557,10 @@ typedef enum {
  * @QMI_NAS_SERVICE_STATUS_POWER_SAVE: Device in power save mode.
  *
  * Status of the service.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_SERVICE_STATUS_NONE             = 0x00,
     QMI_NAS_SERVICE_STATUS_LIMITED          = 0x01,
     QMI_NAS_SERVICE_STATUS_AVAILABLE        = 0x02,
@@ -478,8 +575,10 @@ typedef enum {
  * @QMI_NAS_HDR_PERSONALITY_EHRPD: eHRPD.
  *
  * HDR personality type.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_HDR_PERSONALITY_UNKNOWN = 0x00,
     QMI_NAS_HDR_PERSONALITY_HRPD    = 0x01,
     QMI_NAS_HDR_PERSONALITY_EHRPD   = 0x02,
@@ -494,8 +593,10 @@ typedef enum {
  * @QMI_NAS_CALL_BARRING_STATUS_UNKNOWN: Unknown.
  *
  * Status of the call barring functionality.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_CALL_BARRING_STATUS_NORMAL_ONLY    = 0x00,
     QMI_NAS_CALL_BARRING_STATUS_EMERGENCY_ONLY = 0x01,
     QMI_NAS_CALL_BARRING_STATUS_NO_CALLS       = 0x02,
@@ -513,8 +614,10 @@ typedef enum {
  * @QMI_NAS_NETWORK_DESCRIPTION_DISPLAY_UNKNOWN: Unknown.
  *
  * Setup to define whether the network description should be displayed.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_NETWORK_DESCRIPTION_DISPLAY_NO      = 0x00,
     QMI_NAS_NETWORK_DESCRIPTION_DISPLAY_YES     = 0x01,
     QMI_NAS_NETWORK_DESCRIPTION_DISPLAY_UNKNOWN = 0xFF
@@ -528,14 +631,44 @@ typedef enum {
  * @QMI_NAS_NETWORK_DESCRIPTION_ENCODING_GSM: GSM 7-bit.
  *
  * Type of encoding used in the network description.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_NETWORK_DESCRIPTION_ENCODING_UNSPECIFIED = 0x00,
     QMI_NAS_NETWORK_DESCRIPTION_ENCODING_ASCII7      = 0x01,
     QMI_NAS_NETWORK_DESCRIPTION_ENCODING_UNICODE     = 0x04,
     QMI_NAS_NETWORK_DESCRIPTION_ENCODING_GSM         = 0x09
 } QmiNasNetworkDescriptionEncoding;
 
+/*****************************************************************************/
+/* Helper enums for the 'QMI NAS Get Preferred Networks' request/response */
+
+/**
+ * QmiNasPlmnAccessTechnologyIdentifier:
+ * @QMI_NAS_PLMN_ACCESS_TECHNOLOGY_IDENTIFIER_UNSPECIFIED: Unspecified.
+ * @QMI_NAS_PLMN_ACCESS_TECHNOLOGY_IDENTIFIER_GSM_COMPACT: GSM Compact.
+ * @QMI_NAS_PLMN_ACCESS_TECHNOLOGY_IDENTIFIER_GSM: GSM.
+ * @QMI_NAS_PLMN_ACCESS_TECHNOLOGY_IDENTIFIER_NGRAN: NG-RAN.
+ * @QMI_NAS_PLMN_ACCESS_TECHNOLOGY_IDENTIFIER_EUTRAN: E-UTRAN.
+ * @QMI_NAS_PLMN_ACCESS_TECHNOLOGY_IDENTIFIER_UTRAN: UTRAN.
+ * @QMI_NAS_PLMN_ACCESS_TECHNOLOGY_IDENTIFIER_ALL: All technologies.
+ *
+ * Preferred networks access technology identifier as specified in
+ * ETSI TS 131 102, chapter 4.2.5.
+ *
+ * Since: 1.30
+ */
+typedef enum { /*< since=1.30 >*/
+    QMI_NAS_PLMN_ACCESS_TECHNOLOGY_IDENTIFIER_UNSPECIFIED = 0x0000,
+    QMI_NAS_PLMN_ACCESS_TECHNOLOGY_IDENTIFIER_GSM_COMPACT = 1 << 6,
+    QMI_NAS_PLMN_ACCESS_TECHNOLOGY_IDENTIFIER_GSM         = 1 << 7,
+    QMI_NAS_PLMN_ACCESS_TECHNOLOGY_IDENTIFIER_NGRAN       = 1 << 11,
+    QMI_NAS_PLMN_ACCESS_TECHNOLOGY_IDENTIFIER_EUTRAN      = 1 << 14,
+    QMI_NAS_PLMN_ACCESS_TECHNOLOGY_IDENTIFIER_UTRAN       = 1 << 15,
+    QMI_NAS_PLMN_ACCESS_TECHNOLOGY_IDENTIFIER_ALL         = 0xFFFF
+} QmiNasPlmnAccessTechnologyIdentifier;
+
 /*****************************************************************************/
 /* Helper enums for the 'QMI NAS Get Technology Preference' request/response */
 
@@ -550,8 +683,10 @@ typedef enum {
  * @QMI_NAS_RADIO_TECHNOLOGY_PREFERENCE_LTE: LTE.
  *
  * Flags to specify the radio technology preference.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_RADIO_TECHNOLOGY_PREFERENCE_AUTO          = 0,
     QMI_NAS_RADIO_TECHNOLOGY_PREFERENCE_3GPP2         = 1 << 0,
     QMI_NAS_RADIO_TECHNOLOGY_PREFERENCE_3GPP          = 1 << 1,
@@ -572,8 +707,10 @@ typedef enum {
  * @QMI_NAS_PREFERENCE_DURATION_INTERNAL_ONE_CALL_3: Internal reason 3, one call.
  *
  * Duration of the preference setting.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_PREFERENCE_DURATION_PERMANENT           = 0x00,
     QMI_NAS_PREFERENCE_DURATION_POWER_CYCLE         = 0x01,
     QMI_NAS_PREFERENCE_DURATION_ONE_CALL            = 0x02,
@@ -595,16 +732,20 @@ typedef enum {
  * @QMI_NAS_RAT_MODE_PREFERENCE_UMTS: UMTS.
  * @QMI_NAS_RAT_MODE_PREFERENCE_LTE: LTE.
  * @QMI_NAS_RAT_MODE_PREFERENCE_TD_SCDMA: TD-SCDMA.
+ * @QMI_NAS_RAT_MODE_PREFERENCE_5GNR: 5GNR. Since 1.26.
  *
  * Flags specifying radio access technology mode preference.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_RAT_MODE_PREFERENCE_CDMA_1X     = 1 << 0,
     QMI_NAS_RAT_MODE_PREFERENCE_CDMA_1XEVDO = 1 << 1,
     QMI_NAS_RAT_MODE_PREFERENCE_GSM         = 1 << 2,
     QMI_NAS_RAT_MODE_PREFERENCE_UMTS        = 1 << 3,
     QMI_NAS_RAT_MODE_PREFERENCE_LTE         = 1 << 4,
-    QMI_NAS_RAT_MODE_PREFERENCE_TD_SCDMA    = 1 << 5
+    QMI_NAS_RAT_MODE_PREFERENCE_TD_SCDMA    = 1 << 5,
+    QMI_NAS_RAT_MODE_PREFERENCE_5GNR        = 1 << 6,
 } QmiNasRatModePreference;
 
 /**
@@ -614,8 +755,10 @@ typedef enum {
  * @QMI_NAS_CDMA_PRL_PREFERENCE_ANY: Any system.
  *
  * Flags specifying the preference when using CDMA Band Class 0.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_CDMA_PRL_PREFERENCE_A_SIDE_ONLY = 0x0001,
     QMI_NAS_CDMA_PRL_PREFERENCE_B_SIDE_ONLY = 0x0002,
     QMI_NAS_CDMA_PRL_PREFERENCE_ANY         = 0x3FFF
@@ -629,8 +772,10 @@ typedef enum {
  * @QMI_NAS_ROAMING_PREFERENCE_ANY: Don't filter by roaming when acquiring networks.
  *
  * Roaming preference.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_ROAMING_PREFERENCE_OFF          = 0x01,
     QMI_NAS_ROAMING_PREFERENCE_NOT_OFF      = 0x02,
     QMI_NAS_ROAMING_PREFERENCE_NOT_FLASHING = 0x03,
@@ -643,8 +788,10 @@ typedef enum {
  * @QMI_NAS_NETWORK_SELECTION_PREFERENCE_MANUAL: Manual.
  *
  * Network selection preference.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_NETWORK_SELECTION_PREFERENCE_AUTOMATIC = 0x00,
     QMI_NAS_NETWORK_SELECTION_PREFERENCE_MANUAL    = 0x01
 } QmiNasNetworkSelectionPreference;
@@ -655,8 +802,10 @@ typedef enum {
  * @QMI_NAS_CHANGE_DURATION_POWER_CYCLE: Until the next power cycle.
  *
  * Duration of the change setting.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_CHANGE_DURATION_POWER_CYCLE = 0x00,
     QMI_NAS_CHANGE_DURATION_PERMANENT   = 0x01
 } QmiNasChangeDuration;
@@ -670,8 +819,10 @@ typedef enum {
  * @QMI_NAS_SERVICE_DOMAIN_PREFERENCE_PS_DETACH:Packet-switched dettach.
  *
  * Service domain preference.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_SERVICE_DOMAIN_PREFERENCE_CS_ONLY   = 0x00,
     QMI_NAS_SERVICE_DOMAIN_PREFERENCE_PS_ONLY   = 0x01,
     QMI_NAS_SERVICE_DOMAIN_PREFERENCE_CS_PS     = 0x02,
@@ -686,8 +837,10 @@ typedef enum {
  * @QMI_NAS_GSM_WCDMA_ACQUISITION_ORDER_PREFERENCE_WCDMA: WCDMA first, then GSM.
  *
  * GSM/WCDMA acquisition order preference.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_GSM_WCDMA_ACQUISITION_ORDER_PREFERENCE_AUTOMATIC = 0x00,
     QMI_NAS_GSM_WCDMA_ACQUISITION_ORDER_PREFERENCE_GSM       = 0x01,
     QMI_NAS_GSM_WCDMA_ACQUISITION_ORDER_PREFERENCE_WCDMA     = 0x02
@@ -703,8 +856,10 @@ typedef enum {
  * @QMI_NAS_TD_SCDMA_BAND_PREFERENCE_F: Band F.
  *
  * Flags to specify TD-SCDMA-specific frequency band preferences.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_TD_SCDMA_BAND_PREFERENCE_A = 1 << 0,
     QMI_NAS_TD_SCDMA_BAND_PREFERENCE_B = 1 << 1,
     QMI_NAS_TD_SCDMA_BAND_PREFERENCE_C = 1 << 2,
@@ -713,9 +868,63 @@ typedef enum {
     QMI_NAS_TD_SCDMA_BAND_PREFERENCE_F = 1 << 5
 } QmiNasTdScdmaBandPreference;
 
+/**
+ * QmiNasVoiceDomainPreference:
+ * @QMI_NAS_VOICE_DOMAIN_PREFERENCE_CS_ONLY: Circuit-switched voice only
+ * @QMI_NAS_VOICE_DOMAIN_PREFERENCE_PS_ONLY: Packet-switched voice only.
+ * @QMI_NAS_VOICE_DOMAIN_PREFERENCE_CS_PREFERRED: Circuit-switched voice is preferred.
+ * @QMI_NAS_VOICE_DOMAIN_PREFERENCE_PS_PREFERRED: Packet-switched voice is preferred.
+ *
+ * Voice domain preference.
+ *
+ * Since: 1.24
+ */
+typedef enum { /*< since=1.24 >*/
+    QMI_NAS_VOICE_DOMAIN_PREFERENCE_CS_ONLY      = 0x00,
+    QMI_NAS_VOICE_DOMAIN_PREFERENCE_PS_ONLY      = 0x01,
+    QMI_NAS_VOICE_DOMAIN_PREFERENCE_CS_PREFERRED = 0x02,
+    QMI_NAS_VOICE_DOMAIN_PREFERENCE_PS_PREFERRED = 0x03,
+} QmiNasVoiceDomainPreference;
+
 /*****************************************************************************/
 /* Helper enums for the 'QMI NAS Get System Info' request/response */
 
+/**
+ * QmiNasNetworkSelectionRegistrationRestriction:
+ * @QMI_NAS_NETWORK_SELECTION_REGISTRATION_RESTRICTION_UNRESTRICTED: Device follows the normal registration process.
+ * @QMI_NAS_NETWORK_SELECTION_REGISTRATION_RESTRICTION_CAMPED_ONLY: Device camps on the network according to its provisioning, but does not register.
+ * @QMI_NAS_NETWORK_SELECTION_REGISTRATION_RESTRICTION_LIMITED: Device selects the network for limited service.
+ *
+ * Registration restriction.
+ *
+ * Since: 1.24
+ */
+typedef enum { /*< since=1.24 >*/
+    QMI_NAS_NETWORK_SELECTION_REGISTRATION_RESTRICTION_UNRESTRICTED = 0x00,
+    QMI_NAS_NETWORK_SELECTION_REGISTRATION_RESTRICTION_CAMPED_ONLY  = 0x01,
+    QMI_NAS_NETWORK_SELECTION_REGISTRATION_RESTRICTION_LIMITED      = 0x02,
+} QmiNasNetworkSelectionRegistrationRestriction;
+
+/**
+ * QmiNasLteRegistrationDomain:
+ * @QMI_NAS_LTE_REGISTRATION_DOMAIN_NOT_APPLICABLE: Not applicable since the UE is not in "Camp Only" mode.
+ * @QMI_NAS_LTE_REGISTRATION_DOMAIN_CS_ONLY: UE is in "Camp Only" mode and the PLMN can provide CS service only.
+ * @QMI_NAS_LTE_REGISTRATION_DOMAIN_PS_ONLY: UE is in "Camp Only" mode and the PLMN can provide PS service only.
+ * @QMI_NAS_LTE_REGISTRATION_DOMAIN_CS_PS: UE is in "Camp Only" mode and the PLMN can provide CS and PS service.
+ * @QMI_NAS_LTE_REGISTRATION_DOMAIN_LIMITED_SERVICE: UE is in "Camp Only" mode but the PLMN cannot provide any service.
+ *
+ * LTE registration domain.
+ *
+ * Since: 1.24
+ */
+typedef enum { /*< since=1.24 >*/
+    QMI_NAS_LTE_REGISTRATION_DOMAIN_NOT_APPLICABLE  = 0x00,
+    QMI_NAS_LTE_REGISTRATION_DOMAIN_CS_ONLY         = 0x01,
+    QMI_NAS_LTE_REGISTRATION_DOMAIN_PS_ONLY         = 0x02,
+    QMI_NAS_LTE_REGISTRATION_DOMAIN_CS_PS           = 0x03,
+    QMI_NAS_LTE_REGISTRATION_DOMAIN_LIMITED_SERVICE = 0x04,
+} QmiNasLteRegistrationDomain;
+
 /**
  * QmiNasRoamingStatus:
  * @QMI_NAS_ROAMING_STATUS_OFF: Off.
@@ -731,8 +940,12 @@ typedef enum {
  * @QMI_NAS_ROAMING_STATUS_PARTIAL_SERVICE: Partial service.
  * @QMI_NAS_ROAMING_STATUS_BANNER_ON: Banner on.
  * @QMI_NAS_ROAMING_STATUS_BANNER_OFF: Banner off.
-*/
-typedef enum {
+ *
+ * Roaming status.
+ *
+ * Since: 1.0
+ */
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_ROAMING_STATUS_OFF                 = 0x00,
     QMI_NAS_ROAMING_STATUS_ON                  = 0x01,
     /* Next ones only for 3GPP2 */
@@ -749,6 +962,26 @@ typedef enum {
     QMI_NAS_ROAMING_STATUS_BANNER_OFF          = 0x0C
 } QmiNasRoamingStatus;
 
+/**
+ * QmiNasLteCellAccessStatus:
+ * @QMI_NAS_CELL_ACCESS_STATUS_NORMAL_ONLY: Access is allowed for normal calls only.
+ * @QMI_NAS_CELL_ACCESS_STATUS_EMERGENCY_ONLY: Access is allowed for emergency calls only.
+ * @QMI_NAS_CELL_ACCESS_STATUS_NO_CALLS: Access is not allowed for any call type.
+ * @QMI_NAS_CELL_ACCESS_STATUS_ALL_CALLS: Access is allowed for all call types.
+ * @QMI_NAS_CELL_ACCESS_STATUS_UNKNOWN: Unknown.
+ *
+ * Cell access status for LTE calls.
+ *
+ * Since: 1.24
+ */
+typedef enum { /*< since=1.24 >*/
+    QMI_NAS_CELL_ACCESS_STATUS_NORMAL_ONLY    = 0x00,
+    QMI_NAS_CELL_ACCESS_STATUS_EMERGENCY_ONLY = 0x01,
+    QMI_NAS_CELL_ACCESS_STATUS_NO_CALLS       = 0x02,
+    QMI_NAS_CELL_ACCESS_STATUS_ALL_CALLS      = 0x03,
+    QMI_NAS_CELL_ACCESS_STATUS_UNKNOWN        = 0xFF,
+} QmiNasLteCellAccessStatus;
+
 /**
  * QmiNasHdrProtocolRevision:
  * @QMI_NAS_HDR_PROTOCOL_REVISION_NONE: None.
@@ -757,8 +990,10 @@ typedef enum {
  * @QMI_NAS_HDR_PROTOCOL_REVISION_REL_B: HDR Rel B.
  *
  * HDR protocol revision.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_HDR_PROTOCOL_REVISION_NONE  = 0x00,
     QMI_NAS_HDR_PROTOCOL_REVISION_REL_0 = 0x01,
     QMI_NAS_HDR_PROTOCOL_REVISION_REL_A = 0x02,
@@ -775,9 +1010,12 @@ typedef enum {
  * @QMI_NAS_WCDMA_HS_SERVICE_HSDPA_PLUS_HSUPA_SUPPORTED: HSDPA+ and HSUPA supported.
  * @QMI_NAS_WCDMA_HS_SERVICE_DC_HSDPA_PLUS_SUPPORTED: DC-HSDPA+ supported.
  * @QMI_NAS_WCDMA_HS_SERVICE_DC_HSDPA_PLUS_HSUPA_SUPPORTED: DC-HSDPA+ and HSUPA supported.
+ *
  * Call status on high speed.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_WCDMA_HS_SERVICE_HSDPA_HSUPA_UNSUPPORTED       = 0x00,
     QMI_NAS_WCDMA_HS_SERVICE_HSDPA_SUPPORTED               = 0x01,
     QMI_NAS_WCDMA_HS_SERVICE_HSUPA_SUPPORTED               = 0x02,
@@ -795,8 +1033,10 @@ typedef enum {
  * @QMI_NAS_CELL_BROADCAST_CAPABILITY_ON: Cell broadcast supported.
  *
  * Cell broadcast support.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_CELL_BROADCAST_CAPABILITY_UNKNOWN = 0x00,
     QMI_NAS_CELL_BROADCAST_CAPABILITY_OFF     = 0x01,
     QMI_NAS_CELL_BROADCAST_CAPABILITY_ON      = 0x02
@@ -805,16 +1045,18 @@ typedef enum {
 /**
  * QmiNasSimRejectState:
  * @QMI_NAS_SIM_REJECT_STATE_SIM_UNAVAILABLE: SIM not available.
- * @QMI_NAS_SIM_REJECT_STATE_SIM_VAILABLE: SIM available.
+ * @QMI_NAS_SIM_REJECT_STATE_SIM_AVAILABLE: SIM available.
  * @QMI_NAS_SIM_REJECT_STATE_SIM_CS_INVALID: SIM invalid for circuit-switched connections.
  * @QMI_NAS_SIM_REJECT_STATE_SIM_PS_INVALID: SIM invalid for packet-switched connections.
  * @QMI_NAS_SIM_REJECT_STATE_SIM_CS_PS_INVALID: SIM invalid for circuit-switched and packet-switched connections.
  *
  * Reject information of the SIM.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_SIM_REJECT_STATE_SIM_UNAVAILABLE   = 0,
-    QMI_NAS_SIM_REJECT_STATE_SIM_VAILABLE      = 1,
+    QMI_NAS_SIM_REJECT_STATE_SIM_AVAILABLE     = 1,
     QMI_NAS_SIM_REJECT_STATE_SIM_CS_INVALID    = 2,
     QMI_NAS_SIM_REJECT_STATE_SIM_PS_INVALID    = 3,
     QMI_NAS_SIM_REJECT_STATE_SIM_CS_PS_INVALID = 4
@@ -826,8 +1068,10 @@ typedef enum {
  * @QMI_NAS_CDMA_PILOT_TYPE_NEIGHBOR: the pilot is part of the neighbor set.
  *
  * The pilot set the pilot belongs to.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_CDMA_PILOT_TYPE_ACTIVE   = 0,
     QMI_NAS_CDMA_PILOT_TYPE_NEIGHBOR = 1,
 } QmiNasCdmaPilotType;
@@ -843,8 +1087,10 @@ typedef enum {
  * @QMI_NAS_DAY_OF_WEEK_SUNDAY: Sunday
  *
  * The day of the week.
+ *
+ * Since: 1.4
  */
-typedef enum {
+typedef enum { /*< since=1.4 >*/
     QMI_NAS_DAY_OF_WEEK_MONDAY    = 0,
     QMI_NAS_DAY_OF_WEEK_TUESDAY   = 1,
     QMI_NAS_DAY_OF_WEEK_WEDNESDAY = 2,
@@ -861,8 +1107,10 @@ typedef enum {
  * @QMI_NAS_DAYLIGHT_SAVINGS_ADJUSTMENT_TWO_HOURS: two hours adjustment
  *
  * The number of hours a time is adjusted for daylight savings.
+ *
+ * Since: 1.4
  */
-typedef enum {
+typedef enum { /*< since=1.4 >*/
     QMI_NAS_DAYLIGHT_SAVINGS_ADJUSTMENT_NONE      = 0,
     QMI_NAS_DAYLIGHT_SAVINGS_ADJUSTMENT_ONE_HOUR  = 1,
     QMI_NAS_DAYLIGHT_SAVINGS_ADJUSTMENT_TWO_HOURS = 2
@@ -880,8 +1128,10 @@ typedef enum {
  * @QMI_NAS_WCDMA_RRC_STATE_CELL_DCH: WCDMA RRC state is CELL_DCH.
  *
  * RRC state.
+ *
+ * Since: 1.10
  */
-typedef enum {
+typedef enum { /*< since=1.10 >*/
     QMI_NAS_WCDMA_RRC_STATE_DISCONNECTED = 0,
     QMI_NAS_WCDMA_RRC_STATE_CELL_PCH     = 1,
     QMI_NAS_WCDMA_RRC_STATE_URA_PCH      = 2,
@@ -889,4 +1139,524 @@ typedef enum {
     QMI_NAS_WCDMA_RRC_STATE_CELL_DCH     = 4
 } QmiNasWcdmaRrcState;
 
+/*****************************************************************************/
+/* Helper enums for the 'QMI NAS Get LTE Cphy CA Info' request/response */
+
+/**
+ * QmiNasDLBandwidth:
+ * @QMI_NAS_DL_BANDWIDTH_1_4: 1.4 MHz
+ * @QMI_NAS_DL_BANDWIDTH_3: 3 MHz
+ * @QMI_NAS_DL_BANDWIDTH_5: 5 MHz
+ * @QMI_NAS_DL_BANDWIDTH_10: 10 MHz
+ * @QMI_NAS_DL_BANDWIDTH_15: 15 MHz
+ * @QMI_NAS_DL_BANDWIDTH_20: 20 MHz
+ * @QMI_NAS_DL_BANDWIDTH_INVALID: Invalid
+ * @QMI_NAS_DL_BANDWIDTH_UNKNOWN: Unknown
+ *
+ * DL Bandwidth.
+ *
+ * Since: 1.16
+ */
+typedef enum { /*< since=1.16 >*/
+    QMI_NAS_DL_BANDWIDTH_1_4      = 0,
+    QMI_NAS_DL_BANDWIDTH_3        = 1,
+    QMI_NAS_DL_BANDWIDTH_5        = 2,
+    QMI_NAS_DL_BANDWIDTH_10       = 3,
+    QMI_NAS_DL_BANDWIDTH_15       = 4,
+    QMI_NAS_DL_BANDWIDTH_20       = 5,
+    QMI_NAS_DL_BANDWIDTH_INVALID  = 6,
+    QMI_NAS_DL_BANDWIDTH_UNKNOWN  = 0xFF
+} QmiNasDLBandwidth;
+
+/**
+ * QmiNasScellState:
+ * @QMI_NAS_SCELL_STATE_DECONFIGURED: Deconfigured
+ * @QMI_NAS_SCELL_STATE_DEACTIVATED: Deactivated
+ * @QMI_NAS_SCELL_STATE_ACTIVATED: Activated
+ *
+ * SCell State.
+ *
+ * Since: 1.16
+ */
+typedef enum { /*< since=1.16 >*/
+    QMI_NAS_SCELL_STATE_DECONFIGURED = 0,
+    QMI_NAS_SCELL_STATE_DEACTIVATED  = 1,
+    QMI_NAS_SCELL_STATE_ACTIVATED    = 2
+} QmiNasScellState;
+
+/*****************************************************************************/
+/* Helper enums for the 'QMI NAS Get Operator Name' request/response */
+/**
+ * QmiNasPlmnEncodingScheme:
+ * @QMI_NAS_PLMN_ENCODING_SCHEME_GSM: GSM default alphabet packed encoding (ETSI GSM 03.38)
+ * @QMI_NAS_PLMN_ENCODING_SCHEME_UCS2LE: UCS-2 little-endian
+ *
+ * PLMN name encoding schemes.  See 3GPP TS 24.008 section "Network Name
+ * information element".
+ *
+ * Since: 1.18
+ */
+typedef enum { /*< since=1.18 >*/
+    QMI_NAS_PLMN_ENCODING_SCHEME_GSM    = 0,
+    QMI_NAS_PLMN_ENCODING_SCHEME_UCS2LE = 1,
+} QmiNasPlmnEncodingScheme;
+
+/**
+ * QmiNasNetworkNameDisplayCondition:
+ * @QMI_NAS_NETWORK_NAME_DISPLAY_CONDITION_DISPLAY_REGISTERED_PLMN_IF_KNOWN_NETWORK: if
+ * set, display of the registered PLMN is required when the registered PLMN is either
+ * the HPLMN or a PLMN in the Service Provider PLMN List (see EFspdi). Otherwise
+ * display of the registered PLMN is not required in this case.
+ * @QMI_NAS_NETWORK_NAME_DISPLAY_CONDITION_DISPLAY_SPN_NOT_REQUIRED_IF_UNKNOWN_NETWORK: if
+ * set, display of the Service Provider Name is not required when registered PLMN is
+ * neither HPLMN nor a PLMN in the service provider PLMN list (see EFspdi). If not set,
+ * SPN display is required in this case.
+ *
+ * Flags used to control display of the PLMN name and Service Provider Name. See
+ * 3GPP TS 51.011 descripton of the EFspn SIM file for more details.
+ *
+ * Since: 1.18
+ */
+typedef enum { /*< since=1.18 >*/
+    QMI_NAS_NETWORK_NAME_DISPLAY_CONDITION_DISPLAY_REGISTERED_PLMN_IF_KNOWN_NETWORK    = 1 << 0,
+    QMI_NAS_NETWORK_NAME_DISPLAY_CONDITION_DISPLAY_SPN_NOT_REQUIRED_IF_UNKNOWN_NETWORK = 1 << 1,
+} QmiNasNetworkNameDisplayCondition;
+
+/**
+ * QmiNasPlmnNameCountryInitials:
+ * @QMI_NAS_PLMN_NAME_COUNTRY_INITIALS_DO_NOT_ADD: don't add country initials
+ * @QMI_NAS_PLMN_NAME_COUNTRY_INIITALS_ADD: add country initials
+ * @QMI_NAS_PLMN_NAME_COUNTRY_INIITALS_UNSPECIFIED: unspecified
+ *
+ * PLMN name country initials options. See 3GPP TS 24.008
+ * section "Network Name information element".
+ *
+ * Since: 1.18
+ */
+typedef enum { /*< since=1.18 >*/
+    QMI_NAS_PLMN_NAME_COUNTRY_INITIALS_DO_NOT_ADD  = 0,
+    QMI_NAS_PLMN_NAME_COUNTRY_INIITALS_ADD         = 1,
+    QMI_NAS_PLMN_NAME_COUNTRY_INIITALS_UNSPECIFIED = 0xFF,
+} QmiNasPlmnNameCountryInitials;
+
+/**
+ * QmiNasNetworkNameSource:
+ * @QMI_NAS_NETWORK_NAME_SOURCE_UNKNOWN: Unknown.
+ * @QMI_NAS_NETWORK_NAME_SOURCE_OPERATOR_PLMN_LIST_AND_PLMN_NETWORK_NAME: Operator PLMN list and PLMN network name.
+ * @QMI_NAS_NETWORK_NAME_SOURCE_COMMON_PCN_HANDSET_SPECIFICATION_AND_OPERATOR_NAME_STRING: Common PCN handset specification and operator name string.
+ * @QMI_NAS_NETWORK_NAME_SOURCE_NITZ: Network identity and time zone.
+ * @QMI_NAS_NETWORK_NAME_SOURCE_SE13: GSMA SE13 table.
+ * @QMI_NAS_NETWORK_NAME_SOURCE_MCC_MNC: MCC and MNC.
+ * @QMI_NAS_NETWORK_NAME_SOURCE_SERVICE_PROVIDER_NAME: Service provider name.
+ *
+ * Network name source.
+ *
+ * Since: 1.24
+ */
+typedef enum { /*< since=1.24 >*/
+    QMI_NAS_NETWORK_NAME_SOURCE_UNKNOWN                                                   = 0x00,
+    QMI_NAS_NETWORK_NAME_SOURCE_OPERATOR_PLMN_LIST_AND_PLMN_NETWORK_NAME                  = 0x01,
+    QMI_NAS_NETWORK_NAME_SOURCE_COMMON_PCN_HANDSET_SPECIFICATION_AND_OPERATOR_NAME_STRING = 0x02,
+    QMI_NAS_NETWORK_NAME_SOURCE_NITZ                                                      = 0x03,
+    QMI_NAS_NETWORK_NAME_SOURCE_SE13                                                      = 0x04,
+    QMI_NAS_NETWORK_NAME_SOURCE_MCC_MNC                                                   = 0x05,
+    QMI_NAS_NETWORK_NAME_SOURCE_SERVICE_PROVIDER_NAME                                     = 0x06,
+} QmiNasNetworkNameSource;
+
+/**
+ * QmiNasPlmnNameSpareBits:
+ * @QMI_NAS_PLMN_NAME_SPARE_BITS_UNKNOWN: unknown
+ * @QMI_NAS_PLMN_NAME_SPARE_BITS_BIT_8: bit 8 is spare
+ * @QMI_NAS_PLMN_NAME_SPARE_BITS_BITS_78: bits 7 - 8 are spare
+ * @QMI_NAS_PLMN_NAME_SPARE_BITS_BITS_68: bits 6 - 8 are spare
+ * @QMI_NAS_PLMN_NAME_SPARE_BITS_BITS_58: bits 5 - 8 are spare
+ * @QMI_NAS_PLMN_NAME_SPARE_BITS_BITS_48: bits 4 - 8 are spare
+ * @QMI_NAS_PLMN_NAME_SPARE_BITS_BITS_38: bits 3 - 8 are spare
+ * @QMI_NAS_PLMN_NAME_SPARE_BITS_BITS_28: bits 2 - 8 are spare
+ *
+ * PLMN name spare bits in last octet of a network name.  See 3GPP TS 24.008
+ * section "Network Name information element".
+ *
+ * Since: 1.18
+ */
+typedef enum { /*< since=1.18 >*/
+    QMI_NAS_PLMN_NAME_SPARE_BITS_UNKNOWN = 0,
+    QMI_NAS_PLMN_NAME_SPARE_BITS_BIT_8   = 1,
+    QMI_NAS_PLMN_NAME_SPARE_BITS_BITS_78 = 2,
+    QMI_NAS_PLMN_NAME_SPARE_BITS_BITS_68 = 3,
+    QMI_NAS_PLMN_NAME_SPARE_BITS_BITS_58 = 4,
+    QMI_NAS_PLMN_NAME_SPARE_BITS_BITS_48 = 5,
+    QMI_NAS_PLMN_NAME_SPARE_BITS_BITS_38 = 6,
+    QMI_NAS_PLMN_NAME_SPARE_BITS_BITS_28 = 7,
+} QmiNasPlmnNameSpareBits;
+
+/**
+ * QmiNasUsagePreference:
+ * @QMI_NAS_USAGE_PREFERENCE_UNKNOWN: Unknown.
+ * @QMI_NAS_USAGE_PREFERENCE_VOICE_CENTRIC: Voice centric.
+ * @QMI_NAS_USAGE_PREFERENCE_DATA_CENTRIC: Data centric.
+ *
+ * Modem usage preference.
+ *
+ * Since: 1.24
+ */
+typedef enum { /*< since=1.24 >*/
+    QMI_NAS_USAGE_PREFERENCE_UNKNOWN       = 0x00,
+    QMI_NAS_USAGE_PREFERENCE_VOICE_CENTRIC = 0x01,
+    QMI_NAS_USAGE_PREFERENCE_DATA_CENTRIC  = 0x02
+} QmiNasUsagePreference;
+
+/**
+ * QmiNasSwiModemMode:
+ * @QMI_NAS_SWI_MODEM_MODE_POWERING_OFF: Powering off
+ * @QMI_NAS_SWI_MODEM_MODE_FACTORY_TEST: Factory test
+ * @QMI_NAS_SWI_MODEM_MODE_OFFLINE: Offline
+ * @QMI_NAS_SWI_MODEM_MODE_OFFLINE_AMPS: Offline AMPS
+ * @QMI_NAS_SWI_MODEM_MODE_OFFLINE_CDMA: Offline CDMA
+ * @QMI_NAS_SWI_MODEM_MODE_ONLINE: Online
+ * @QMI_NAS_SWI_MODEM_MODE_LOW_POWER: Low power
+ * @QMI_NAS_SWI_MODEM_MODE_RESETTING: Resetting
+ * @QMI_NAS_SWI_MODEM_MODE_NETWORK_TEST: Network test
+ * @QMI_NAS_SWI_MODEM_MODE_OFFLINE_REQUEST: Offline request
+ * @QMI_NAS_SWI_MODEM_MODE_PSEUDO_ONLINE: Pseudo online
+ * @QMI_NAS_SWI_MODEM_MODE_RESETTING_MODEM: Resetting modem
+ * @QMI_NAS_SWI_MODEM_MODE_UNKNOWN: Unknown
+ *
+ * Modem mode (Sierra Wireless specific).
+ *
+ * Since: 1.24
+ */
+typedef enum { /*< since=1.24 >*/
+    QMI_NAS_SWI_MODEM_MODE_POWERING_OFF    = 0x00,
+    QMI_NAS_SWI_MODEM_MODE_FACTORY_TEST    = 0x01,
+    QMI_NAS_SWI_MODEM_MODE_OFFLINE         = 0x02,
+    QMI_NAS_SWI_MODEM_MODE_OFFLINE_AMPS    = 0x03,
+    QMI_NAS_SWI_MODEM_MODE_OFFLINE_CDMA    = 0x04,
+    QMI_NAS_SWI_MODEM_MODE_ONLINE          = 0x05,
+    QMI_NAS_SWI_MODEM_MODE_LOW_POWER       = 0x06,
+    QMI_NAS_SWI_MODEM_MODE_RESETTING       = 0x07,
+    QMI_NAS_SWI_MODEM_MODE_NETWORK_TEST    = 0x08,
+    QMI_NAS_SWI_MODEM_MODE_OFFLINE_REQUEST = 0x09,
+    QMI_NAS_SWI_MODEM_MODE_PSEUDO_ONLINE   = 0x0a,
+    QMI_NAS_SWI_MODEM_MODE_RESETTING_MODEM = 0x0b,
+    QMI_NAS_SWI_MODEM_MODE_UNKNOWN         = 0xff
+} QmiNasSwiModemMode;
+
+/**
+ * QmiNasSwiSystemMode:
+ * @QMI_NAS_SWI_SYSTEM_MODE_NO_SERVICE: No service
+ * @QMI_NAS_SWI_SYSTEM_MODE_AMPS: AMPS
+ * @QMI_NAS_SWI_SYSTEM_MODE_CDMA: CDMA
+ * @QMI_NAS_SWI_SYSTEM_MODE_GSM: GSM
+ * @QMI_NAS_SWI_SYSTEM_MODE_HDR: HDR
+ * @QMI_NAS_SWI_SYSTEM_MODE_WCDMA: WCDMA
+ * @QMI_NAS_SWI_SYSTEM_MODE_GPS: GPS
+ * @QMI_NAS_SWI_SYSTEM_MODE_WLAN: WLAN
+ * @QMI_NAS_SWI_SYSTEM_MODE_LTE: LTE
+ * @QMI_NAS_SWI_SYSTEM_MODE_UNKNOWN: Unknown
+ *
+ * System mode (Sierra Wireless specific).
+ *
+ * Since: 1.24
+ */
+typedef enum { /*< since=1.24 >*/
+    QMI_NAS_SWI_SYSTEM_MODE_NO_SERVICE = 0x00,
+    QMI_NAS_SWI_SYSTEM_MODE_AMPS       = 0x01,
+    QMI_NAS_SWI_SYSTEM_MODE_CDMA       = 0x02,
+    QMI_NAS_SWI_SYSTEM_MODE_GSM        = 0x03,
+    QMI_NAS_SWI_SYSTEM_MODE_HDR        = 0x04,
+    QMI_NAS_SWI_SYSTEM_MODE_WCDMA      = 0x05,
+    QMI_NAS_SWI_SYSTEM_MODE_GPS        = 0x06,
+    QMI_NAS_SWI_SYSTEM_MODE_WLAN       = 0x08,
+    QMI_NAS_SWI_SYSTEM_MODE_LTE        = 0x09,
+    QMI_NAS_SWI_SYSTEM_MODE_UNKNOWN    = 0xff
+} QmiNasSwiSystemMode;
+
+/**
+ * QmiNasSwiImsRegState:
+ * @QMI_NAS_SWI_IMS_REG_NO_SRV: No service
+ * @QMI_NAS_SWI_IMS_REG_IN_PROG: In prog
+ * @QMI_NAS_SWI_IMS_REG_FAILED: Failed
+ * @QMI_NAS_SWI_IMS_REG_LIMITED: Limited
+ * @QMI_NAS_SWI_IMS_REG_FULL_SRV: Full service
+ * @QMI_NAS_SWI_IMS_REG__UNKNOWN: Unknown
+ *
+ * IMS registration state. (Sierra Wireless specific).
+ *
+ * Since: 1.24
+ */
+typedef enum { /*< since=1.24 >*/
+    QMI_NAS_SWI_IMS_REG_NO_SRV   = 0x00,
+    QMI_NAS_SWI_IMS_REG_IN_PROG  = 0x01,
+    QMI_NAS_SWI_IMS_REG_FAILED   = 0x02,
+    QMI_NAS_SWI_IMS_REG_LIMITED  = 0x03,
+    QMI_NAS_SWI_IMS_REG_FULL_SRV = 0x04,
+    QMI_NAS_SWI_IMS_REG__UNKNOWN = 0xff
+} QmiNasSwiImsRegState;
+
+/**
+ * QmiNasSwiPsState:
+ * @QMI_NAS_SWI_PS_STATE_ATTACHED: Attached
+ * @QMI_NAS_SWI_PS_STATE_DETACHED: Detached
+ * @QMI_NAS_SWI_PS_STATE_UNKNOWN: Unknown
+ *
+ * PS registration state. (Sierra Wireless specific).
+ *
+ * Since: 1.24
+ */
+typedef enum { /*< since=1.24 >*/
+    QMI_NAS_SWI_PS_STATE_ATTACHED = 0x00,
+    QMI_NAS_SWI_PS_STATE_DETACHED = 0x01,
+    QMI_NAS_SWI_PS_STATE_UNKNOWN  = 0xff
+} QmiNasSwiPsState;
+
+/**
+ * QmiNasSwiEmmState:
+ * @QMI_NAS_SWI_EMM_STATE_DEREGISTERED: Deregistered
+ * @QMI_NAS_SWI_EMM_STATE_REG_INITIATED: Registration initiated
+ * @QMI_NAS_SWI_EMM_STATE_REGISTERED: Registered
+ * @QMI_NAS_SWI_EMM_STATE_TAU_INITIATED: TAU initiated
+ * @QMI_NAS_SWI_EMM_STATE_SR_INITIATED: SR initiated
+ * @QMI_NAS_SWI_EMM_STATE_DEREG_INITIATED: Deregistration initiated
+ * @QMI_NAS_SWI_EMM_STATE_INVALID: Invalid
+ * @QMI_NAS_SWI_EMM_STATE_UNKNOWN: Unknown
+ *
+ * EMM registration state. (Sierra Wireless specific).
+ *
+ * Since: 1.24
+ */
+typedef enum { /*< since=1.24 >*/
+    QMI_NAS_SWI_EMM_STATE_DEREGISTERED    = 0x00,
+    QMI_NAS_SWI_EMM_STATE_REG_INITIATED   = 0x01,
+    QMI_NAS_SWI_EMM_STATE_REGISTERED      = 0x02,
+    QMI_NAS_SWI_EMM_STATE_TAU_INITIATED   = 0x03,
+    QMI_NAS_SWI_EMM_STATE_SR_INITIATED    = 0x04,
+    QMI_NAS_SWI_EMM_STATE_DEREG_INITIATED = 0x05,
+    QMI_NAS_SWI_EMM_STATE_INVALID         = 0x06,
+    QMI_NAS_SWI_EMM_STATE_UNKNOWN         = 0xff
+} QmiNasSwiEmmState;
+
+/**
+ * QmiNasSwiEmmConnectionState:
+ * @QMI_NAS_SWI_EMM_CONN_STATE_RRC_IDLE: RRC idle
+ * @QMI_NAS_SWI_EMM_CONN_STATE_WAITING_RRC_CFM: Waiting RRC Cfm
+ * @QMI_NAS_SWI_EMM_CONN_STATE_RRC_CONNECTING: RRC connecting
+ * @QMI_NAS_SWI_EMM_CONN_STATE_RRC_RELEASING: RRC releasing
+ * @QMI_NAS_SWI_EMM_CONN_STATE_UNKNOWN: Unknown
+ *
+ * EMM connection state state. (Sierra Wireless specific).
+ *
+ * Since: 1.24
+ */
+typedef enum { /*< since=1.24 >*/
+    QMI_NAS_SWI_EMM_CONN_STATE_RRC_IDLE        = 0x00,
+    QMI_NAS_SWI_EMM_CONN_STATE_WAITING_RRC_CFM = 0x01,
+    QMI_NAS_SWI_EMM_CONN_STATE_RRC_CONNECTING  = 0x02,
+    QMI_NAS_SWI_EMM_CONN_STATE_RRC_RELEASING   = 0x03,
+    QMI_NAS_SWI_EMM_CONN_STATE_UNKNOWN         = 0xff
+} QmiNasSwiEmmConnectionState;
+
+/**
+ * QmiNasDrx:
+ * @QMI_NAS_DRX_UNKNOWN: Unknown or not specified.
+ * @QMI_NAS_DRX_CN6_T32: CN=6, T=32.
+ * @QMI_NAS_DRX_CN7_T64: CN=7, T=64.
+ * @QMI_NAS_DRX_CN8_T128: CN=8, T=128.
+ * @QMI_NAS_DRX_CN9_T256: CN=9, T=256.
+ *
+ * DRX setting of the device.
+ *
+ * Since: 1.28
+ */
+typedef enum { /*< since=1.28 >*/
+    QMI_NAS_DRX_UNKNOWN  = 0x00,
+    QMI_NAS_DRX_CN6_T32  = 0x06,
+    QMI_NAS_DRX_CN7_T64  = 0x07,
+    QMI_NAS_DRX_CN8_T128 = 0x08,
+    QMI_NAS_DRX_CN9_T256 = 0x09,
+} QmiNasDrx;
+
+/**
+ * QmiNasBoolean:
+ * @QMI_NAS_BOOLEAN_FALSE: Status FALSE.
+ * @QMI_NAS_BOOLEAN_TRUE: Status TRUE.
+ * @QMI_NAS_BOOLEAN_UNKNOWN: Status Unknown.
+ *
+ * Boolean flag with validity info.
+ *
+ * Since: 1.28
+ */
+typedef enum { /*< since=1.28 >*/
+    QMI_NAS_BOOLEAN_FALSE    = 0x00,
+    QMI_NAS_BOOLEAN_TRUE     = 0x01,
+    QMI_NAS_BOOLEAN_UNKNOWN  = 0x02
+} QmiNasBoolean;
+
+/**
+ * QmiNasPlmnLanguageId:
+ * @QMI_NAS_PLMN_LANGUAGE_ID_UNKNOWN: Language Unknown.
+ * @QMI_NAS_PLMN_LANGUAGE_ID_ZH_TRAD: Traditional Chinese.
+ * @QMI_NAS_PLMN_LANGUAGE_ID_ZH_SIMP: Simplified Chinese.
+ *
+ * Language ID used when encoding the PLMN.
+ *
+ * Since: 1.28
+ */
+typedef enum { /*< since=1.28 >*/
+    QMI_NAS_PLMN_LANGUAGE_ID_UNKNOWN = 0x00,
+    QMI_NAS_PLMN_LANGUAGE_ID_ZH_TRAD = 0x01,
+    QMI_NAS_PLMN_LANGUAGE_ID_ZH_SIMP = 0x02
+} QmiNasPlmnLanguageId;
+
+/**
+ * QmiNasLteVoiceDomain:
+ * @QMI_NAS_LTE_VOICE_DOMAIN_NONE: No voice.
+ * @QMI_NAS_LTE_VOICE_DOMAIN_IMS: Voice is supported over IMS network.
+ * @QMI_NAS_LTE_VOICE_DOMAIN_1X: Voice is supported over the 1X network.
+ * @QMI_NAS_LTE_VOICE_DOMAIN_3GPP: Voice is supported over the 3GPP network.
+ *
+ * LTE voice domain.
+ *
+ * Since: 1.28
+ */
+typedef enum { /*< since=1.28 >*/
+    QMI_NAS_LTE_VOICE_DOMAIN_NONE = 0x00,
+    QMI_NAS_LTE_VOICE_DOMAIN_IMS  = 0x01,
+    QMI_NAS_LTE_VOICE_DOMAIN_1X   = 0x02,
+    QMI_NAS_LTE_VOICE_DOMAIN_3GPP = 0x03
+} QmiNasLteVoiceDomain;
+
+/**
+ * QmiNasRejectCause:
+ * @QMI_NAS_REJECT_CAUSE_NONE: None.
+ * @QMI_NAS_REJECT_CAUSE_IMSI_UNKNOWN_IN_HLR: IMSI unknown in HLR/HSS.
+ * @QMI_NAS_REJECT_CAUSE_ILLEGAL_UE: Illegal MS/UE.
+ * @QMI_NAS_REJECT_CAUSE_IMSI_UNKNOWN_IN_VLR: IMSI unknown in VLR.
+ * @QMI_NAS_REJECT_CAUSE_IMEI_NOT_ACCEPTED: IMEI not accepted.
+ * @QMI_NAS_REJECT_CAUSE_ILLEGAL_ME: Illegal ME.
+ * @QMI_NAS_REJECT_CAUSE_PS_SERVICES_NOT_ALLOWED: GPRS/EPS services not allowed.
+ * @QMI_NAS_REJECT_CAUSE_PS_AND_NON_PS_SERVICES_NOT_ALLOWED: GPRS/EPS and non-GPRS/EPS services not allowed.
+ * @QMI_NAS_REJECT_CAUSE_UE_IDENTITY_NOT_DERIVED_BY_NETWORK: MS/UE identity not derived by network.
+ * @QMI_NAS_REJECT_CAUSE_IMPLICITLY_DETACHED: Implicitly detached.
+ * @QMI_NAS_REJECT_CAUSE_PLMN_NOT_ALLOWED: PLMN not allowed.
+ * @QMI_NAS_REJECT_CAUSE_LOCATION_AREA_NOT_ALLOWED: Location/tracking area not allowed.
+ * @QMI_NAS_REJECT_CAUSE_ROAMING_IN_LOCATION_AREA_NOT_ALLOWED: Roaming in location/tracking area not allowed.
+ * @QMI_NAS_REJECT_CAUSE_PS_SERVICES_IN_LOCATION_AREA_NOT_ALLOWED: GPRS/EPS services in location/tracking area not allowed.
+ * @QMI_NAS_REJECT_CAUSE_NO_SUITABLE_CELLS_IN_LOCATION_AREA: No suitable cells in location/tracking area.
+ * @QMI_NAS_REJECT_CAUSE_MSC_TEMPORARILY_NOT_REACHABLE: MSC temporarily not reachable.
+ * @QMI_NAS_REJECT_CAUSE_NETWORK_FAILURE: Network failure.
+ * @QMI_NAS_REJECT_CAUSE_CS_DOMAIN_NOT_AVAILABLE: CS domain not available.
+ * @QMI_NAS_REJECT_CAUSE_ESM_FAILURE: ESM failure.
+ * @QMI_NAS_REJECT_CAUSE_MAC_FAILURE: MAC failure.
+ * @QMI_NAS_REJECT_CAUSE_SYNCH_FAILURE: Synch failure.
+ * @QMI_NAS_REJECT_CAUSE_CONGESTION: Congestion.
+ * @QMI_NAS_REJECT_CAUSE_UE_SECURITY_CAPABILITIES_MISMATCH: GSM authentication unacceptable, UE security capabilities mismatch.
+ * @QMI_NAS_REJECT_CAUSE_SECURITY_MODE_REJECTED_UNSPECIFIED: Security mode rejected or unspecified.
+ * @QMI_NAS_REJECT_CAUSE_CSG_NOT_AUTHORIZED: CSG not authorized.
+ * @QMI_NAS_REJECT_CAUSE_NON_EPS_AUTHENTICATION_UNACCEPTABLE: Non-EPS authentication unacceptable.
+ * @QMI_NAS_REJECT_CAUSE_SMS_PROVIDED_BY_GPRS_IN_ROUTING_AREA: SMS provided by GPRS in routing area.
+ * @QMI_NAS_REJECT_CAUSE_REDIRECTION_TO_5GCN_REQUIRED: Redirection to 5GCN required.
+ * @QMI_NAS_REJECT_CAUSE_SERVICE_OPTION_NOT_SUPPORTED: Service option not supported.
+ * @QMI_NAS_REJECT_CAUSE_REQUESTED_SERVICE_OPTION_NOT_SUBSCRIBED: Requested service option not subscribed.
+ * @QMI_NAS_REJECT_CAUSE_SERVICE_OPTION_TEMPORARILY_OUT_OF_ORDER: Service option temporarily out of order.
+ * @QMI_NAS_REJECT_CAUSE_REQUESTED_SERVICE_OPTION_NOT_AUTHORIZED: Requested service option not authorized.
+ * @QMI_NAS_REJECT_CAUSE_CALL_CANNOT_BE_IDENTIFIED: Call cannot be identified.
+ * @QMI_NAS_REJECT_CAUSE_CS_SERVICE_TEMPORARILY_NOT_AVAILABLE: CS service temporarily not available.
+ * @QMI_NAS_REJECT_CAUSE_NO_EPS_BEARER_CONTEXT_ACTIVATED: No EPS bearer context activated.
+ * @QMI_NAS_REJECT_CAUSE_SEVERE_NETWORK_FAILURE: Severe network failure.
+ * @QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_0: Retry upon entry 0.
+ * @QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_1: Retry upon entry 1.
+ * @QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_2: Retry upon entry 2.
+ * @QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_3: Retry upon entry 3.
+ * @QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_4: Retry upon entry 4.
+ * @QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_5: Retry upon entry 5.
+ * @QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_6: Retry upon entry 6.
+ * @QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_7: Retry upon entry 7.
+ * @QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_8: Retry upon entry 8.
+ * @QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_9: Retry upon entry 9.
+ * @QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_10: Retry upon entry 10.
+ * @QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_11: Retry upon entry 11.
+ * @QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_12: Retry upon entry 12.
+ * @QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_13: Retry upon entry 13.
+ * @QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_14: Retry upon entry 14.
+ * @QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_15: Retry upon entry 15.
+ * @QMI_NAS_REJECT_CAUSE_SEMANTICALLY_INCORRECT_MESSAGE: Semantically incorrect message.
+ * @QMI_NAS_REJECT_CAUSE_INVALID_MANDATORY_INFORMATION: Invalid mandatory information.
+ * @QMI_NAS_REJECT_CAUSE_MESSAGE_TYPE_NON_EXISTENT: Message type non existent.
+ * @QMI_NAS_REJECT_CAUSE_MESSAGE_TYPE_NOT_COMPATIBLE: Message type not compatible.
+ * @QMI_NAS_REJECT_CAUSE_INFORMATION_ELEMENT_NON_EXISTENT: Information element non existent.
+ * @QMI_NAS_REJECT_CAUSE_CONDITIONAL_INFORMATION_ELEMENT_ERROR: Conditional information element error.
+ * @QMI_NAS_REJECT_CAUSE_MESSAGE_NOT_COMPATIBLE: Message not compatible.
+ * @QMI_NAS_REJECT_CAUSE_UNSPECIFIED_PROTOCOL_ERROR: Unspecified protocol error.
+ *
+ * Reason why a request from the mobile station is rejected by the network.
+ *
+ * Defined in 3GPP TS 24.008 in sections 10.5.3.6 and 10.5.5.14 (detailed in
+ * annex G) and in 3GPP TS 24.301 in section 9.9.3.9.
+ *
+ * Since: 1.30
+ */
+typedef enum { /*< since=1.30 >*/
+    QMI_NAS_REJECT_CAUSE_NONE                                       = 0x00,
+    QMI_NAS_REJECT_CAUSE_IMSI_UNKNOWN_IN_HLR                        = 0x02,
+    QMI_NAS_REJECT_CAUSE_ILLEGAL_UE                                 = 0x03,
+    QMI_NAS_REJECT_CAUSE_IMSI_UNKNOWN_IN_VLR                        = 0x04,
+    QMI_NAS_REJECT_CAUSE_IMEI_NOT_ACCEPTED                          = 0x05,
+    QMI_NAS_REJECT_CAUSE_ILLEGAL_ME                                 = 0x06,
+    QMI_NAS_REJECT_CAUSE_PS_SERVICES_NOT_ALLOWED                    = 0x07,
+    QMI_NAS_REJECT_CAUSE_PS_AND_NON_PS_SERVICES_NOT_ALLOWED         = 0x08,
+    QMI_NAS_REJECT_CAUSE_UE_IDENTITY_NOT_DERIVED_BY_NETWORK         = 0x09,
+    QMI_NAS_REJECT_CAUSE_IMPLICITLY_DETACHED                        = 0x0A,
+    QMI_NAS_REJECT_CAUSE_PLMN_NOT_ALLOWED                           = 0x0B,
+    QMI_NAS_REJECT_CAUSE_LOCATION_AREA_NOT_ALLOWED                  = 0x0C,
+    QMI_NAS_REJECT_CAUSE_ROAMING_IN_LOCATION_AREA_NOT_ALLOWED       = 0x0D,
+    QMI_NAS_REJECT_CAUSE_PS_SERVICES_IN_LOCATION_AREA_NOT_ALLOWED   = 0x0E,
+    QMI_NAS_REJECT_CAUSE_NO_SUITABLE_CELLS_IN_LOCATION_AREA         = 0x0F,
+    QMI_NAS_REJECT_CAUSE_MSC_TEMPORARILY_NOT_REACHABLE              = 0x10,
+    QMI_NAS_REJECT_CAUSE_NETWORK_FAILURE                            = 0x11,
+    QMI_NAS_REJECT_CAUSE_CS_DOMAIN_NOT_AVAILABLE                    = 0x12,
+    QMI_NAS_REJECT_CAUSE_ESM_FAILURE                                = 0x13,
+    QMI_NAS_REJECT_CAUSE_MAC_FAILURE                                = 0x14,
+    QMI_NAS_REJECT_CAUSE_SYNCH_FAILURE                              = 0x15,
+    QMI_NAS_REJECT_CAUSE_CONGESTION                                 = 0x16,
+    QMI_NAS_REJECT_CAUSE_UE_SECURITY_CAPABILITIES_MISMATCH          = 0x17,
+    QMI_NAS_REJECT_CAUSE_SECURITY_MODE_REJECTED_UNSPECIFIED         = 0x18,
+    QMI_NAS_REJECT_CAUSE_CSG_NOT_AUTHORIZED                         = 0x19,
+    QMI_NAS_REJECT_CAUSE_NON_EPS_AUTHENTICATION_UNACCEPTABLE        = 0x1A,
+    QMI_NAS_REJECT_CAUSE_SMS_PROVIDED_BY_GPRS_IN_ROUTING_AREA       = 0x1C,
+    QMI_NAS_REJECT_CAUSE_REDIRECTION_TO_5GCN_REQUIRED               = 0x1F,
+    QMI_NAS_REJECT_CAUSE_SERVICE_OPTION_NOT_SUPPORTED               = 0x20,
+    QMI_NAS_REJECT_CAUSE_REQUESTED_SERVICE_OPTION_NOT_SUBSCRIBED    = 0x21,
+    QMI_NAS_REJECT_CAUSE_SERVICE_OPTION_TEMPORARILY_OUT_OF_ORDER    = 0x22,
+    QMI_NAS_REJECT_CAUSE_REQUESTED_SERVICE_OPTION_NOT_AUTHORIZED    = 0x23,
+    QMI_NAS_REJECT_CAUSE_CALL_CANNOT_BE_IDENTIFIED                  = 0x26,
+    QMI_NAS_REJECT_CAUSE_CS_SERVICE_TEMPORARILY_NOT_AVAILABLE       = 0x27,
+    QMI_NAS_REJECT_CAUSE_NO_EPS_BEARER_CONTEXT_ACTIVATED            = 0x28,
+    QMI_NAS_REJECT_CAUSE_SEVERE_NETWORK_FAILURE                     = 0x2A,
+    QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_0           = 0x30,
+    QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_1           = 0x31,
+    QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_2           = 0x32,
+    QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_3           = 0x33,
+    QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_4           = 0x34,
+    QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_5           = 0x35,
+    QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_6           = 0x36,
+    QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_7           = 0x37,
+    QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_8           = 0x38,
+    QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_9           = 0x39,
+    QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_10          = 0x3A,
+    QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_11          = 0x3B,
+    QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_12          = 0x3C,
+    QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_13          = 0x3D,
+    QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_14          = 0x3E,
+    QMI_NAS_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_NEW_CELL_15          = 0x3F,
+    QMI_NAS_REJECT_CAUSE_SEMANTICALLY_INCORRECT_MESSAGE             = 0x5F,
+    QMI_NAS_REJECT_CAUSE_INVALID_MANDATORY_INFORMATION              = 0x60,
+    QMI_NAS_REJECT_CAUSE_MESSAGE_TYPE_NON_EXISTENT                  = 0x61,
+    QMI_NAS_REJECT_CAUSE_MESSAGE_TYPE_NOT_COMPATIBLE                = 0x62,
+    QMI_NAS_REJECT_CAUSE_INFORMATION_ELEMENT_NON_EXISTENT           = 0x63,
+    QMI_NAS_REJECT_CAUSE_CONDITIONAL_INFORMATION_ELEMENT_ERROR      = 0x64,
+    QMI_NAS_REJECT_CAUSE_MESSAGE_NOT_COMPATIBLE                     = 0x65,
+    QMI_NAS_REJECT_CAUSE_UNSPECIFIED_PROTOCOL_ERROR                 = 0x6F,
+} QmiNasRejectCause;
+
 #endif /* _LIBQMI_GLIB_QMI_ENUMS_NAS_H_ */

+ 23 - 11
qmi-enums-pds.h

@@ -18,6 +18,7 @@
  * Boston, MA 02110-1301 USA.
  *
  * Copyright (C) 2012 Google Inc.
+ * Copyright (C) 2012-2017 Aleksander Morgado <aleksander@aleksander.es>
  */
 
 #ifndef _LIBQMI_GLIB_QMI_ENUMS_PDS_H_
@@ -25,7 +26,6 @@
 
 /**
  * SECTION: qmi-enums-pds
- * @title: PDS enumerations and flags
  *
  * This section defines enumerations and flags used in the PDS service
  * interface.
@@ -38,12 +38,14 @@
  * QmiPdsOperationMode:
  * @QMI_PDS_OPERATION_MODE_UNKNOWN: Unknown (position not fixed yet).
  * @QMI_PDS_OPERATION_MODE_STANDALONE: Standalone.
- * @QMI_PDS_OPERATION_MODE_MS_BASED: MS based.
- * @QMI_PDS_OPERATION_MODE_MS_ASSISTED: MS assisted.
+ * @QMI_PDS_OPERATION_MODE_MS_BASED: Mobile Station Based (MSB) A-GPS.
+ * @QMI_PDS_OPERATION_MODE_MS_ASSISTED: Mobile Station Assisted (MSA) A-GPS.
  *
  * Operation mode used to compute the position.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_PDS_OPERATION_MODE_UNKNOWN     = -1,
     QMI_PDS_OPERATION_MODE_STANDALONE  =  0,
     QMI_PDS_OPERATION_MODE_MS_BASED    =  1,
@@ -63,8 +65,10 @@ typedef enum {
  * @QMI_PDS_POSITION_SESSION_STATUS_E911_SESSION_IN_PROGRESS: Emergency call in progress.
  *
  * Status of the positioning session.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_PDS_POSITION_SESSION_STATUS_SUCCESS                  = 0x00,
     QMI_PDS_POSITION_SESSION_STATUS_IN_PROGRESS              = 0x01,
     QMI_PDS_POSITION_SESSION_STATUS_GENERAL_FAILURE          = 0x02,
@@ -103,8 +107,10 @@ typedef enum {
  * @QMI_PDS_DATA_VALID_OPERATING_MODE: Operating mode.
  *
  * Flags to indicate which position data parameters are valid.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_PDS_DATA_VALID_TIMESTAMP_CALENDAR      = 1 << 0,
     QMI_PDS_DATA_VALID_TIMESTAMP_UTC           = 1 << 1,
     QMI_PDS_DATA_VALID_LEAP_SECONDS            = 1 << 2,
@@ -140,8 +146,10 @@ typedef enum {
  * @QMI_PDS_TRACKING_SESSION_STATE_ACTIVE: Session active.
  *
  * State of the tracking session.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_PDS_TRACKING_SESSION_STATE_UNKNOWN  = 0,
     QMI_PDS_TRACKING_SESSION_STATE_INACTIVE = 1,
     QMI_PDS_TRACKING_SESSION_STATE_ACTIVE   = 2
@@ -153,12 +161,14 @@ typedef enum {
 /**
  * QmiPdsOperatingMode:
  * @QMI_PDS_OPERATING_MODE_STANDALONE: Standalone (GPS only).
- * @QMI_PDS_OPERATING_MODE_MS_BASED: MS-based.
- * @QMI_PDS_OPERATING_MODE_MS_ASSISTED: MS-assisted (A-GPS).
+ * @QMI_PDS_OPERATING_MODE_MS_BASED: Mobile Station Based (MSB) A-GPS
+ * @QMI_PDS_OPERATING_MODE_MS_ASSISTED: Mobile Station Assisted (MSA) A-GPS.
  *
  * GPS operating mode.
+ *
+ * Since: 1.12
  */
-typedef enum {
+typedef enum { /*< since=1.12 >*/
     QMI_PDS_OPERATING_MODE_STANDALONE  = 0,
     QMI_PDS_OPERATING_MODE_MS_BASED    = 1,
     QMI_PDS_OPERATING_MODE_MS_ASSISTED = 2,
@@ -173,8 +183,10 @@ typedef enum {
  * @QMI_PDS_NETWORK_MODE_CDMA: CDMA.
  *
  * Network mode used during the A-GPS setup.
+ *
+ * Since: 1.12
  */
-typedef enum {
+typedef enum { /*< since=1.12 >*/
     QMI_PDS_NETWORK_MODE_UMTS = 0,
     QMI_PDS_NETWORK_MODE_CDMA = 1,
 } QmiPdsNetworkMode;

+ 3 - 0
qmi-enums-private.h

@@ -18,6 +18,7 @@
  * Boston, MA 02110-1301 USA.
  *
  * Copyright (C) 2012 Google Inc.
+ * Copyright (C) 2012-2017 Aleksander Morgado <aleksander@aleksander.es>
  */
 
 #ifndef _LIBQMI_GLIB_QMI_ENUMS_PRIVATE_H_
@@ -82,4 +83,6 @@ typedef enum {
     QMI_SERVICE_FLAG_INDICATION = 1 << 2
 } QmiServiceFlag;
 
+
+
 #endif /* _LIBQMI_GLIB_QMI_ENUMS_PRIVATE_H_ */

+ 223 - 23
qmi-enums-uim.h

@@ -18,6 +18,7 @@
  * Boston, MA 02110-1301 USA.
  *
  * Copyright (C) 2012 Google Inc.
+ * Copyright (C) 2012-2017 Aleksander Morgado <aleksander@aleksander.es>
  */
 
 #ifndef _LIBQMI_GLIB_QMI_ENUMS_UIM_H_
@@ -25,12 +26,32 @@
 
 /**
  * SECTION: qmi-enums-uim
- * @title: UIM enumerations and flags
  *
  * This section defines enumerations and flags used in the UIM service
  * interface.
  */
 
+/*****************************************************************************/
+/* Helper enums for the 'QMI UIM Indication Register' indication */
+
+/**
+ * QmiUimEventRegistrationFlag:
+ * @QMI_UIM_EVENT_REGISTRATION_FLAG_CARD_STATUS: Card status.
+ * @QMI_UIM_EVENT_REGISTRATION_FLAG_SAP_CONNECTION: SAP connection.
+ * @QMI_UIM_EVENT_REGISTRATION_FLAG_EXTENDED_CARD_STATUS: Extended card status.
+ * @QMI_UIM_EVENT_REGISTRATION_FLAG_PHYSICAL_SLOT_STATUS: Physical slot status. Since 1.26.
+ *
+ * Flags to use to register to UIM indications.
+ *
+ * Since: 1.22.4
+ */
+typedef enum { /*< since=1.22.4 >*/
+    QMI_UIM_EVENT_REGISTRATION_FLAG_CARD_STATUS          = 1 << 0,
+    QMI_UIM_EVENT_REGISTRATION_FLAG_SAP_CONNECTION       = 1 << 1,
+    QMI_UIM_EVENT_REGISTRATION_FLAG_EXTENDED_CARD_STATUS = 1 << 2,
+    QMI_UIM_EVENT_REGISTRATION_FLAG_PHYSICAL_SLOT_STATUS = 1 << 4,
+} QmiUimEventRegistrationFlag;
+
 /*****************************************************************************/
 /* Helper enums for the 'QMI UIM Read Record' request/response */
 
@@ -46,20 +67,52 @@
  * @QMI_UIM_SESSION_TYPE_CARD_SLOT_2: Card on slot 2.
  * @QMI_UIM_SESSION_TYPE_LOGICAL_CHANNEL_SLOT_1: Logical channel on slot 1.
  * @QMI_UIM_SESSION_TYPE_LOGICAL_CHANNEL_SLOT_2: Logical channel on slot 2.
+ * @QMI_UIM_SESSION_TYPE_TERTIARY_GW_PROVISIONING: Tertiary GSM/WCDMA provisioning. Since 1.28.
+ * @QMI_UIM_SESSION_TYPE_TERTIARY_1X_PROVISIONING: Tertiary CDMA1x provisioning. Since 1.28.
+ * @QMI_UIM_SESSION_TYPE_QUATERNARY_GW_PROVISIONING: Quaternary GSM/WCDMA provisioning. Since 1.28.
+ * @QMI_UIM_SESSION_TYPE_QUATERNARY_1X_PROVISIONING: Quaternary CDMA1x provisioning. Since 1.28.
+ * @QMI_UIM_SESSION_TYPE_QUINARY_GW_PROVISIONING: Quinary GSM/WCDMA provisioning. Since 1.28.
+ * @QMI_UIM_SESSION_TYPE_QUINARY_1X_PROVISIONING: Quinary CDMA1x provisioning. Since 1.28.
+ * @QMI_UIM_SESSION_TYPE_NONPROVISIONING_SLOT_3: Nonprovisioning on slot 3. Since 1.28.
+ * @QMI_UIM_SESSION_TYPE_NONPROVISIONING_SLOT_4: Nonprovisioning on slot 4. Since 1.28.
+ * @QMI_UIM_SESSION_TYPE_NONPROVISIONING_SLOT_5: Nonprovisioning on slot 5. Since 1.28.
+ * @QMI_UIM_SESSION_TYPE_CARD_SLOT_3: Card on slot 3. Since 1.28.
+ * @QMI_UIM_SESSION_TYPE_CARD_SLOT_4: Card on slot 4. Since 1.28.
+ * @QMI_UIM_SESSION_TYPE_CARD_SLOT_5: Card on slot 5. Since 1.28.
+ * @QMI_UIM_SESSION_TYPE_LOGICAL_CHANNEL_SLOT_3: Logical channel on slot 3. Since 1.28.
+ * @QMI_UIM_SESSION_TYPE_LOGICAL_CHANNEL_SLOT_4: Logical channel on slot 4. Since 1.28.
+ * @QMI_UIM_SESSION_TYPE_LOGICAL_CHANNEL_SLOT_5: Logical channel on slot 5. Since 1.28.
  *
  * Type of UIM session.
+ *
+ * Since: 1.6
  */
-typedef enum {
-    QMI_UIM_SESSION_TYPE_PRIMARY_GW_PROVISIONING   = 0,
-    QMI_UIM_SESSION_TYPE_PRIMARY_1X_PROVISIONING   = 1,
-    QMI_UIM_SESSION_TYPE_SECONDARY_GW_PROVISIONING = 2,
-    QMI_UIM_SESSION_TYPE_SECONDARY_1X_PROVISIONING = 3,
-    QMI_UIM_SESSION_TYPE_NONPROVISIONING_SLOT_1    = 4,
-    QMI_UIM_SESSION_TYPE_NONPROVISIONING_SLOT_2    = 5,
-    QMI_UIM_SESSION_TYPE_CARD_SLOT_1               = 6,
-    QMI_UIM_SESSION_TYPE_CARD_SLOT_2               = 7,
-    QMI_UIM_SESSION_TYPE_LOGICAL_CHANNEL_SLOT_1    = 8,
-    QMI_UIM_SESSION_TYPE_LOGICAL_CHANNEL_SLOT_2    = 9
+typedef enum { /*< since=1.6 >*/
+    QMI_UIM_SESSION_TYPE_PRIMARY_GW_PROVISIONING    = 0,
+    QMI_UIM_SESSION_TYPE_PRIMARY_1X_PROVISIONING    = 1,
+    QMI_UIM_SESSION_TYPE_SECONDARY_GW_PROVISIONING  = 2,
+    QMI_UIM_SESSION_TYPE_SECONDARY_1X_PROVISIONING  = 3,
+    QMI_UIM_SESSION_TYPE_NONPROVISIONING_SLOT_1     = 4,
+    QMI_UIM_SESSION_TYPE_NONPROVISIONING_SLOT_2     = 5,
+    QMI_UIM_SESSION_TYPE_CARD_SLOT_1                = 6,
+    QMI_UIM_SESSION_TYPE_CARD_SLOT_2                = 7,
+    QMI_UIM_SESSION_TYPE_LOGICAL_CHANNEL_SLOT_1     = 8,
+    QMI_UIM_SESSION_TYPE_LOGICAL_CHANNEL_SLOT_2     = 9,
+    QMI_UIM_SESSION_TYPE_TERTIARY_GW_PROVISIONING   = 10,
+    QMI_UIM_SESSION_TYPE_TERTIARY_1X_PROVISIONING   = 11,
+    QMI_UIM_SESSION_TYPE_QUATERNARY_GW_PROVISIONING = 12,
+    QMI_UIM_SESSION_TYPE_QUATERNARY_1X_PROVISIONING = 13,
+    QMI_UIM_SESSION_TYPE_QUINARY_GW_PROVISIONING    = 14,
+    QMI_UIM_SESSION_TYPE_QUINARY_1X_PROVISIONING    = 15,
+    QMI_UIM_SESSION_TYPE_NONPROVISIONING_SLOT_3     = 16,
+    QMI_UIM_SESSION_TYPE_NONPROVISIONING_SLOT_4     = 17,
+    QMI_UIM_SESSION_TYPE_NONPROVISIONING_SLOT_5     = 18,
+    QMI_UIM_SESSION_TYPE_CARD_SLOT_3                = 19,
+    QMI_UIM_SESSION_TYPE_CARD_SLOT_4                = 20,
+    QMI_UIM_SESSION_TYPE_CARD_SLOT_5                = 21,
+    QMI_UIM_SESSION_TYPE_LOGICAL_CHANNEL_SLOT_3     = 22,
+    QMI_UIM_SESSION_TYPE_LOGICAL_CHANNEL_SLOT_4     = 23,
+    QMI_UIM_SESSION_TYPE_LOGICAL_CHANNEL_SLOT_5     = 24,
 } QmiUimSessionType;
 
 /*****************************************************************************/
@@ -74,8 +127,10 @@ typedef enum {
  * @QMI_UIM_FILE_TYPE_MASTER_FILE: Master file.
  *
  * Type of UIM file.
+ *
+ * Since: 1.6
  */
-typedef enum {
+typedef enum { /*< since=1.6 >*/
     QMI_UIM_FILE_TYPE_TRANSPARENT    = 0,
     QMI_UIM_FILE_TYPE_CYCLIC         = 1,
     QMI_UIM_FILE_TYPE_LINEAR_FIXED   = 2,
@@ -92,8 +147,10 @@ typedef enum {
  * @QMI_UIM_SECURITY_ATTRIBUTE_LOGIC_SINGLE: Single.
  *
  * Logic applicable to security attributes.
+ *
+ * Since: 1.6
  */
-typedef enum {
+typedef enum { /*< since=1.6 >*/
     QMI_UIM_SECURITY_ATTRIBUTE_LOGIC_ALWAYS = 0,
     QMI_UIM_SECURITY_ATTRIBUTE_LOGIC_NEVER  = 1,
     QMI_UIM_SECURITY_ATTRIBUTE_LOGIC_AND    = 2,
@@ -109,8 +166,10 @@ typedef enum {
  * @QMI_UIM_SECURITY_ATTRIBUTE_ADM: ADM.
  *
  * Security Attributes.
+ *
+ * Since: 1.6
  */
-typedef enum {
+typedef enum { /*< since=1.6 >*/
     QMI_UIM_SECURITY_ATTRIBUTE_PIN1 = 1 << 0,
     QMI_UIM_SECURITY_ATTRIBUTE_PIN2 = 1 << 1,
     QMI_UIM_SECURITY_ATTRIBUTE_UPIN = 1 << 2,
@@ -129,8 +188,10 @@ typedef enum {
  * @QMI_UIM_PIN_ID_HIDDEN_KEY: Hidden key.
  *
  * PIN ID.
+ *
+ * Since: 1.14
  */
-typedef enum {
+typedef enum { /*< since=1.14 >*/
     QMI_UIM_PIN_ID_UNKNOWN    = 0,
     QMI_UIM_PIN_ID_PIN1       = 1,
     QMI_UIM_PIN_ID_PIN2       = 2,
@@ -148,8 +209,10 @@ typedef enum {
  * @QMI_UIM_CARD_STATE_ERROR: Error.
  *
  * State of the card.
+ *
+ * Since: 1.10
  */
-typedef enum {
+typedef enum { /*< since=1.10 >*/
     QMI_UIM_CARD_STATE_ABSENT  = 0,
     QMI_UIM_CARD_STATE_PRESENT = 1,
     QMI_UIM_CARD_STATE_ERROR   = 2
@@ -165,8 +228,10 @@ typedef enum {
  * @QMI_UIM_PIN_STATE_PERMANENTLY_BLOCKED: Permanently Blocked.
  *
  * The PIN state.
+ *
+ * Since: 1.10
  */
-typedef enum {
+typedef enum { /*< since=1.10 >*/
     QMI_UIM_PIN_STATE_NOT_INITIALIZED      = 0,
     QMI_UIM_PIN_STATE_ENABLED_NOT_VERIFIED = 1,
     QMI_UIM_PIN_STATE_ENABLED_VERIFIED     = 2,
@@ -187,8 +252,10 @@ typedef enum {
  * @QMI_UIM_CARD_ERROR_TECHNICAL: Technical problem.
  *
  * Card error.
+ *
+ * Since: 1.10
  */
-typedef enum {
+typedef enum { /*< since=1.10 >*/
     QMI_UIM_CARD_ERROR_UNKNOWN          = 0,
     QMI_UIM_CARD_ERROR_POWER_DOWN       = 1,
     QMI_UIM_CARD_ERROR_POLL             = 2,
@@ -209,8 +276,10 @@ typedef enum {
  * @QMI_UIM_CARD_APPLICATION_TYPE_ISIM: ISIM.
  *
  * Card application type.
+ *
+ * Since: 1.10
  */
-typedef enum {
+typedef enum { /*< since=1.10 >*/
     QMI_UIM_CARD_APPLICATION_TYPE_UNKNOWN = 0,
     QMI_UIM_CARD_APPLICATION_TYPE_SIM     = 1,
     QMI_UIM_CARD_APPLICATION_TYPE_USIM    = 2,
@@ -231,8 +300,10 @@ typedef enum {
  * @QMI_UIM_CARD_APPLICATION_STATE_READY: Ready
  *
  * Card application state.
+ *
+ * Since: 1.10
  */
-typedef enum {
+typedef enum { /*< since=1.10 >*/
     QMI_UIM_CARD_APPLICATION_STATE_UNKNOWN                     = 0,
     QMI_UIM_CARD_APPLICATION_STATE_DETECTED                    = 1,
     QMI_UIM_CARD_APPLICATION_STATE_PIN1_OR_UPIN_PIN_REQUIRED   = 2,
@@ -253,8 +324,10 @@ typedef enum {
  * @QMI_UIM_CARD_APPLICATION_PERSONALIZATION_STATE_PERMANENTLY_BLOCKED: Permanently blocked-
  *
  * Card application personalization state.
+ *
+ * Since: 1.10
  */
-typedef enum {
+typedef enum { /*< since=1.10 >*/
     QMI_UIM_CARD_APPLICATION_PERSONALIZATION_STATE_UNKNOWN             = 0,
     QMI_UIM_CARD_APPLICATION_PERSONALIZATION_STATE_IN_PROGRESS         = 1,
     QMI_UIM_CARD_APPLICATION_PERSONALIZATION_STATE_READY               = 2,
@@ -279,8 +352,10 @@ typedef enum {
  * @QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_UNKNOWN: Unknown.
  *
  * Card application personalization feature, when a code is required.
+ *
+ * Since: 1.10
  */
-typedef enum {
+typedef enum { /*< since=1.10 >*/
     QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_NETWORK          = 0,
     QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_NETWORK_SUBSET   = 1,
     QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_SERVICE_PROVIDER = 2,
@@ -295,4 +370,129 @@ typedef enum {
     QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_UNKNOWN             = 11
 } QmiUimCardApplicationPersonalizationFeature;
 
+/*****************************************************************************/
+/* Helper enums for the 'QMI UIM Refresh' indication */
+
+/**
+ * QmiUimRefreshStage:
+ * @QMI_UIM_REFRESH_STAGE_WAIT_FOR_OK: Waiting for REFRESH OK message.
+ * @QMI_UIM_REFRESH_STAGE_START: Refresh started.
+ * @QMI_UIM_REFRESH_STAGE_END_WITH_SUCCESS: Refresh completed successfully.
+ * @QMI_UIM_REFRESH_STAGE_END_WITH_FAILURE: Refresh has failed.
+ *
+ * Current stage of the refresh procedure.
+ *
+ * Since: 1.28
+ */
+typedef enum { /*< since=1.28 >*/
+    QMI_UIM_REFRESH_STAGE_WAIT_FOR_OK      = 0,
+    QMI_UIM_REFRESH_STAGE_START            = 1,
+    QMI_UIM_REFRESH_STAGE_END_WITH_SUCCESS = 2,
+    QMI_UIM_REFRESH_STAGE_END_WITH_FAILURE = 3
+} QmiUimRefreshStage;
+
+/**
+ * QmiUimRefreshMode:
+ * @QMI_UIM_REFRESH_MODE_RESET: Reset.
+ * @QMI_UIM_REFRESH_MODE_INIT: Init.
+ * @QMI_UIM_REFRESH_MODE_INIT_FCN: Init & FCN.
+ * @QMI_UIM_REFRESH_MODE_FCN: FCN.
+ * @QMI_UIM_REFRESH_MODE_INIT_FULL_FCN: Init & full FCN.
+ * @QMI_UIM_REFRESH_MODE_APP_RESET: Application reset.
+ * @QMI_UIM_REFRESH_MODE_3G_RESET: 3G session reset.
+ *
+ * Refresh mode
+ *
+ * Since: 1.28
+ */
+typedef enum { /*< since=1.28 >*/
+    QMI_UIM_REFRESH_MODE_RESET         = 0,
+    QMI_UIM_REFRESH_MODE_INIT          = 1,
+    QMI_UIM_REFRESH_MODE_INIT_FCN      = 2,
+    QMI_UIM_REFRESH_MODE_FCN           = 3,
+    QMI_UIM_REFRESH_MODE_INIT_FULL_FCN = 4,
+    QMI_UIM_REFRESH_MODE_APP_RESET     = 5,
+    QMI_UIM_REFRESH_MODE_3G_RESET      = 6
+} QmiUimRefreshMode;
+
+/*****************************************************************************/
+/* Helper enums for the 'QMI UIM Get Slot Status' request/response */
+
+/**
+ * QmiUimPhysicalCardState:
+ * @QMI_UIM_PHYSICAL_CARD_STATE_UNKNOWN: Unknown.
+ * @QMI_UIM_PHYSICAL_CARD_STATE_ABSENT: Absent.
+ * @QMI_UIM_PHYSICAL_CARD_STATE_PRESENT: Present.
+ *
+ * State of the physical card.
+ *
+ * Since: 1.26
+ */
+typedef enum { /*< since=1.26 >*/
+    QMI_UIM_PHYSICAL_CARD_STATE_UNKNOWN = 0,
+    QMI_UIM_PHYSICAL_CARD_STATE_ABSENT  = 1,
+    QMI_UIM_PHYSICAL_CARD_STATE_PRESENT = 2,
+} QmiUimPhysicalCardState;
+
+/**
+ * QmiUimSlotState:
+ * @QMI_UIM_SLOT_STATE_INACTIVE: Inactive.
+ * @QMI_UIM_SLOT_STATE_ACTIVE: Active.
+ *
+ * State of the slot.
+ *
+ * Since: 1.26
+ */
+typedef enum { /*< since=1.26 >*/
+    QMI_UIM_SLOT_STATE_INACTIVE = 0,
+    QMI_UIM_SLOT_STATE_ACTIVE   = 1,
+} QmiUimSlotState;
+
+/**
+ * QmiUimCardProtocol:
+ * @QMI_UIM_CARD_PROTOCOL_UNKNOWN: Unknown.
+ * @QMI_UIM_CARD_PROTOCOL_ICC: ICC protocol.
+ * @QMI_UIM_CARD_PROTOCOL_UICC: UICC protocol.
+ *
+ * Protocol for the card.
+ *
+ * Since: 1.26
+ */
+typedef enum { /*< since=1.26 >*/
+    QMI_UIM_CARD_PROTOCOL_UNKNOWN = 0,
+    QMI_UIM_CARD_PROTOCOL_ICC     = 1,
+    QMI_UIM_CARD_PROTOCOL_UICC    = 2,
+} QmiUimCardProtocol;
+
+/**
+ * QmiUimConfiguration:
+ * @QMI_UIM_CONFIGURATION_AUTOMATIC_SELECTION: Automatic selection.
+ * @QMI_UIM_CONFIGURATION_PERSONALIZATION_STATUS: Personalization status.
+ * @QMI_UIM_CONFIGURATION_HALT_SUBSCRIPTION: Halt publication of subscription.
+ *
+ * Requested configurations. If none explicitly requested, all configuration
+ * items are returned.
+ *
+ * Since: 1.30
+ */
+typedef enum { /*< since=1.30 >*/
+    QMI_UIM_CONFIGURATION_AUTOMATIC_SELECTION    = 1 << 0,
+    QMI_UIM_CONFIGURATION_PERSONALIZATION_STATUS = 1 << 1,
+    QMI_UIM_CONFIGURATION_HALT_SUBSCRIPTION      = 1 << 2,
+} QmiUimConfiguration;
+
+/**
+ * QmiUimDepersonalizationOperation:
+ * @QMI_UIM_DEPERSONALIZATION_OPERATION_DEACTIVATE: Deactivate personalization
+ * @QMI_UIM_DEPERSONALIZATION_OPERATION_UNBLOCK: Unblock personalization
+ *
+ * Depersonalization operation to perform.
+ *
+ * Since: 1.30
+ */
+typedef enum { /*< since=1.30 >*/
+    QMI_UIM_DEPERSONALIZATION_OPERATION_DEACTIVATE = 0,
+    QMI_UIM_DEPERSONALIZATION_OPERATION_UNBLOCK    = 1,
+} QmiUimDepersonalizationOperation;
+
 #endif /* _LIBQMI_GLIB_QMI_ENUMS_UIM_H_ */

+ 15 - 4
qmi-enums-wda.h

@@ -17,7 +17,7 @@
  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  * Boston, MA 02110-1301 USA.
  *
- * Copyright (C) 2014 Aleksander Morgado <aleksander@aleksander.es>
+ * Copyright (C) 2014-2017 Aleksander Morgado <aleksander@aleksander.es>
  */
 
 #ifndef _LIBQMI_GLIB_QMI_ENUMS_WDA_H_
@@ -25,7 +25,6 @@
 
 /**
  * SECTION: qmi-enums-wda
- * @title: WDA enumerations and flags
  *
  * This section defines enumerations and flags used in the WDA service
  * interface.
@@ -38,8 +37,10 @@
  * @QMI_WDA_LINK_LAYER_PROTOCOL_RAW_IP: Raw IP mode.
  *
  * Link layer protocol.
+ *
+ * Since: 1.10
  */
-typedef enum {
+typedef enum { /*< since=1.10 >*/
     QMI_WDA_LINK_LAYER_PROTOCOL_UNKNOWN = 0x00,
     QMI_WDA_LINK_LAYER_PROTOCOL_802_3   = 0x01,
     QMI_WDA_LINK_LAYER_PROTOCOL_RAW_IP  = 0x02,
@@ -53,16 +54,26 @@ typedef enum {
  * @QMI_WDA_DATA_AGGREGATION_PROTOCOL_MBIM: MBIM enabled.
  * @QMI_WDA_DATA_AGGREGATION_PROTOCOL_RNDIS: RNDIS enabled.
  * @QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAP: QMAP enabled.
+ * @QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAPV2: QMAPV2 enabled. Since: 1.30.
+ * @QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAPV3: QMAPV3 enabled. Since: 1.30.
+ * @QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAPV4: QMAPV4 enabled. Since: 1.30.
+ * @QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAPV5: QMAPV5 enabled. Since: 1.28.
  *
  * Data aggregation protocol in uplink or downlink.
+ *
+ * Since: 1.10
  */
-typedef enum {
+typedef enum { /*< since=1.10 >*/
     QMI_WDA_DATA_AGGREGATION_PROTOCOL_DISABLED = 0x00,
     QMI_WDA_DATA_AGGREGATION_PROTOCOL_TLP      = 0x01,
     QMI_WDA_DATA_AGGREGATION_PROTOCOL_QC_NCM   = 0x02,
     QMI_WDA_DATA_AGGREGATION_PROTOCOL_MBIM     = 0x03,
     QMI_WDA_DATA_AGGREGATION_PROTOCOL_RNDIS    = 0x04,
     QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAP     = 0x05,
+    QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAPV2   = 0x06,
+    QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAPV3   = 0x07,
+    QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAPV4   = 0x08,
+    QMI_WDA_DATA_AGGREGATION_PROTOCOL_QMAPV5   = 0x09,
 } QmiWdaDataAggregationProtocol;
 
 #endif /* _LIBQMI_GLIB_QMI_ENUMS_WDA_H_ */

File diff suppressed because it is too large
+ 533 - 190
qmi-enums-wds.h


+ 135 - 80
qmi-enums-wms.h

@@ -18,6 +18,7 @@
  * Boston, MA 02110-1301 USA.
  *
  * Copyright (C) 2012 Google Inc.
+ * Copyright (C) 2012-2017 Aleksander Morgado <aleksander@aleksander.es>
  */
 
 #ifndef _LIBQMI_GLIB_QMI_ENUMS_WMS_H_
@@ -25,7 +26,6 @@
 
 /**
  * SECTION: qmi-enums-wms
- * @title: WMS enumerations and flags
  *
  * This section defines enumerations and flags used in the WMS service
  * interface.
@@ -40,9 +40,11 @@
  * @QMI_WMS_STORAGE_TYPE_NV: Message stored in non-volatile memory.
  * @QMI_WMS_STORAGE_TYPE_NONE: None.
  *
- * Type of messaging storage
+ * Type of messaging storage.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_WMS_STORAGE_TYPE_UIM  = 0x00,
     QMI_WMS_STORAGE_TYPE_NV   = 0x01,
     QMI_WMS_STORAGE_TYPE_NONE = 0xFF
@@ -54,8 +56,10 @@ typedef enum {
  * @QMI_WMS_ACK_INDICATOR_DO_NOT_SEND: ACK doesn't need to be sent.
  *
  * Indication of whether ACK needs to be sent or not.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_WMS_ACK_INDICATOR_SEND        = 0x00,
     QMI_WMS_ACK_INDICATOR_DO_NOT_SEND = 0x01
 } QmiWmsAckIndicator;
@@ -68,8 +72,10 @@ typedef enum {
  * @QMI_WMS_MESSAGE_FORMAT_MWI: Message Waiting Indicator.
  *
  * Type of message.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_WMS_MESSAGE_FORMAT_CDMA                     = 0x00,
     QMI_WMS_MESSAGE_FORMAT_GSM_WCDMA_POINT_TO_POINT = 0x06,
     QMI_WMS_MESSAGE_FORMAT_GSM_WCDMA_BROADCAST      = 0x07,
@@ -82,8 +88,10 @@ typedef enum {
  * @QMI_WMS_MESSAGE_MODE_GSM_WCDMA: Message sent using 3GPP technologies.
  *
  * Message mode.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_WMS_MESSAGE_MODE_CDMA      = 0x00,
     QMI_WMS_MESSAGE_MODE_GSM_WCDMA = 0x01
 } QmiWmsMessageMode;
@@ -95,8 +103,10 @@ typedef enum {
  * @QMI_WMS_NOTIFICATION_TYPE_SECONDARY_UMTS: Secondary UMTS.
  *
  * Type of notification.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_WMS_NOTIFICATION_TYPE_PRIMARY        = 0x00,
     QMI_WMS_NOTIFICATION_TYPE_SECONDARY_GSM  = 0x01,
     QMI_WMS_NOTIFICATION_TYPE_SECONDARY_UMTS = 0x02
@@ -112,8 +122,10 @@ typedef enum {
  * @QMI_WMS_CDMA_SERVICE_OPTION_14: Use service option 14.
  *
  * CDMA service option selection.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_WMS_CDMA_SERVICE_OPTION_AUTO = 0x00,
     QMI_WMS_CDMA_SERVICE_OPTION_6    = 0x06,
     QMI_WMS_CDMA_SERVICE_OPTION_14   = 0x0E
@@ -121,85 +133,94 @@ typedef enum {
 
 /**
  * QmiWmsCdmaCauseCode:
- * @QMI_WDS_CDMA_CAUSE_CODE_NETWORK_ADDRESS_VACANT: Address is valid but not yet allocated.
- * @QMI_WDS_CDMA_CAUSE_CODE_NETWORK_ADDRESS_TRANSLATION_FAILURE: Address is invalid.
- * @QMI_WDS_CDMA_CAUSE_CODE_NETWORK_RESOURCE_SHORTAGE: Network resource shortage.
- * @QMI_WDS_CDMA_CAUSE_CODE_NETWORK_FAILURE: Network failed.
- * @QMI_WDS_CDMA_CAUSE_CODE_NETWORK_INVALID_TELESERVICE_ID: SMS teleservice ID is invalid.
- * @QMI_WDS_CDMA_CAUSE_CODE_NETWORK_OTHER: Other network error.
- * @QMI_WDS_CDMA_CAUSE_CODE_DESTINATION_NO_PAGE_RESPONSE: No page response from destination.
- * @QMI_WDS_CDMA_CAUSE_CODE_DESTINATION_BUSY: Destination is busy.
- * @QMI_WDS_CDMA_CAUSE_CODE_DESTINATION_NO_ACK: No acknowledge from destination.
- * @QMI_WDS_CDMA_CAUSE_CODE_DESTINATION_RESOURCE_SHORTAGE: Destination resource shortage.
- * @QMI_WDS_CDMA_CAUSE_CODE_DESTINATION_SMS_DELIVERY_POSTPONED: SMS deliver postponed.
- * @QMI_WDS_CDMA_CAUSE_CODE_DESTINATION_OUT_OF_SERVICE: Destination out of service.
- * @QMI_WDS_CDMA_CAUSE_CODE_DESTINATION_NOT_AT_ADDRESS: Destination not at address.
- * @QMI_WDS_CDMA_CAUSE_CODE_DESTINATION_OTHER: Other destination error.
- * @QMI_WDS_CDMA_CAUSE_CODE_RADIO_INTERFACE_RESOURCE_SHORTAGE: Radio interface resource shortage.
- * @QMI_WDS_CDMA_CAUSE_CODE_RADIO_INTERFACE_INCOMPATIBILITY: Radio interface incompatibility.
- * @QMI_WDS_CDMA_CAUSE_CODE_RADIO_INTERFACE_OTHER: Other radio interface error.
- * @QMI_WDS_CDMA_CAUSE_CODE_GENERAL_ENCODING: Encoding error.
- * @QMI_WDS_CDMA_CAUSE_CODE_GENERAL_SMS_ORIGIN_DENIED: SMS origin denied.
- * @QMI_WDS_CDMA_CAUSE_CODE_GENERAL_SMS_DESTINATION_DENIED: SMS destination denied.
- * @QMI_WDS_CDMA_CAUSE_CODE_GENERAL_SUPPLEMENTARY_SERVICE_NOT_SUPPORTED: Supplementary service not supported.
- * @QMI_WDS_CDMA_CAUSE_CODE_GENERAL_SMS_NOT_SUPPORTED: SMS not supported.
- * @QMI_WDS_CDMA_CAUSE_CODE_GENERAL_MISSING_EXPECTED_PARAMETER: Missing optional expected parameter.
- * @QMI_WDS_CDMA_CAUSE_CODE_GENERAL_MISSING_MANDATORY_PARAMETER: Missing mandatory parameter.
- * @QMI_WDS_CDMA_CAUSE_CODE_GENERAL_UNRECOGNIZED_PARAMETER_VALUE: Unrecognized parameter value.
- * @QMI_WDS_CDMA_CAUSE_CODE_GENERAL_UNEXPECTED_PARAMETER_VALUE: Unexpected parameter value.
- * @QMI_WDS_CDMA_CAUSE_CODE_GENERAL_USER_DATA_SIZE_ERROR: user data size error.
- * @QMI_WDS_CDMA_CAUSE_CODE_GENERAL_OTHER: Other general error.
+ * @QMI_WMS_CDMA_CAUSE_CODE_NETWORK_ADDRESS_VACANT: Address is valid but not yet allocated. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_NETWORK_ADDRESS_TRANSLATION_FAILURE: Address is invalid. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_NETWORK_RESOURCE_SHORTAGE: Network resource shortage. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_NETWORK_FAILURE: Network failed. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_NETWORK_INVALID_TELESERVICE_ID: SMS teleservice ID is invalid. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_NETWORK_OTHER: Other network error. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_DESTINATION_NO_PAGE_RESPONSE: No page response from destination. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_DESTINATION_BUSY: Destination is busy. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_DESTINATION_NO_ACK: No acknowledge from destination. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_DESTINATION_RESOURCE_SHORTAGE: Destination resource shortage. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_DESTINATION_SMS_DELIVERY_POSTPONED: SMS delivery postponed. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_DESTINATION_OUT_OF_SERVICE: Destination out of service. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_DESTINATION_NOT_AT_ADDRESS: Destination not at address. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_DESTINATION_OTHER: Other destination error. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_RADIO_INTERFACE_RESOURCE_SHORTAGE: Radio interface resource shortage. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_RADIO_INTERFACE_INCOMPATIBILITY: Radio interface incompatibility. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_RADIO_INTERFACE_OTHER: Other radio interface error. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_GENERAL_ENCODING: Encoding error. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_GENERAL_SMS_ORIGIN_DENIED: SMS origin denied. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_GENERAL_SMS_DESTINATION_DENIED: SMS destination denied. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_GENERAL_SUPPLEMENTARY_SERVICE_NOT_SUPPORTED: Supplementary service not supported. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_GENERAL_SMS_NOT_SUPPORTED: SMS not supported. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_GENERAL_MISSING_EXPECTED_PARAMETER: Missing optional expected parameter. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_GENERAL_MISSING_MANDATORY_PARAMETER: Missing mandatory parameter. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_GENERAL_UNRECOGNIZED_PARAMETER_VALUE: Unrecognized parameter value. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_GENERAL_UNEXPECTED_PARAMETER_VALUE: Unexpected parameter value. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_GENERAL_USER_DATA_SIZE_ERROR: User data size error. Since 1.18.
+ * @QMI_WMS_CDMA_CAUSE_CODE_GENERAL_OTHER: Other general error. Since 1.18.
  *
  * Cause codes when failed to send an SMS in CDMA.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     /* Network errors */
-    QMI_WDS_CDMA_CAUSE_CODE_NETWORK_ADDRESS_VACANT              = 0x00,
-    QMI_WDS_CDMA_CAUSE_CODE_NETWORK_ADDRESS_TRANSLATION_FAILURE = 0x01,
-    QMI_WDS_CDMA_CAUSE_CODE_NETWORK_RESOURCE_SHORTAGE           = 0x02,
-    QMI_WDS_CDMA_CAUSE_CODE_NETWORK_FAILURE                     = 0x03,
-    QMI_WDS_CDMA_CAUSE_CODE_NETWORK_INVALID_TELESERVICE_ID      = 0x04,
-    QMI_WDS_CDMA_CAUSE_CODE_NETWORK_OTHER                       = 0x05,
+    QMI_WMS_CDMA_CAUSE_CODE_NETWORK_ADDRESS_VACANT              = 0x00,
+    QMI_WMS_CDMA_CAUSE_CODE_NETWORK_ADDRESS_TRANSLATION_FAILURE = 0x01,
+    QMI_WMS_CDMA_CAUSE_CODE_NETWORK_RESOURCE_SHORTAGE           = 0x02,
+    QMI_WMS_CDMA_CAUSE_CODE_NETWORK_FAILURE                     = 0x03,
+    QMI_WMS_CDMA_CAUSE_CODE_NETWORK_INVALID_TELESERVICE_ID      = 0x04,
+    QMI_WMS_CDMA_CAUSE_CODE_NETWORK_OTHER                       = 0x05,
 
     /* Destination errors */
-    QMI_WDS_CDMA_CAUSE_CODE_DESTINATION_NO_PAGE_RESPONSE       = 0x20,
-    QMI_WDS_CDMA_CAUSE_CODE_DESTINATION_BUSY                   = 0x21,
-    QMI_WDS_CDMA_CAUSE_CODE_DESTINATION_NO_ACK                 = 0x22,
-    QMI_WDS_CDMA_CAUSE_CODE_DESTINATION_RESOURCE_SHORTAGE      = 0x23,
-    QMI_WDS_CDMA_CAUSE_CODE_DESTINATION_SMS_DELIVERY_POSTPONED = 0x24,
-    QMI_WDS_CDMA_CAUSE_CODE_DESTINATION_OUT_OF_SERVICE         = 0x25,
-    QMI_WDS_CDMA_CAUSE_CODE_DESTINATION_NOT_AT_ADDRESS         = 0x26,
-    QMI_WDS_CDMA_CAUSE_CODE_DESTINATION_OTHER                  = 0x27,
+    QMI_WMS_CDMA_CAUSE_CODE_DESTINATION_NO_PAGE_RESPONSE       = 0x20,
+    QMI_WMS_CDMA_CAUSE_CODE_DESTINATION_BUSY                   = 0x21,
+    QMI_WMS_CDMA_CAUSE_CODE_DESTINATION_NO_ACK                 = 0x22,
+    QMI_WMS_CDMA_CAUSE_CODE_DESTINATION_RESOURCE_SHORTAGE      = 0x23,
+    QMI_WMS_CDMA_CAUSE_CODE_DESTINATION_SMS_DELIVERY_POSTPONED = 0x24,
+    QMI_WMS_CDMA_CAUSE_CODE_DESTINATION_OUT_OF_SERVICE         = 0x25,
+    QMI_WMS_CDMA_CAUSE_CODE_DESTINATION_NOT_AT_ADDRESS         = 0x26,
+    QMI_WMS_CDMA_CAUSE_CODE_DESTINATION_OTHER                  = 0x27,
 
     /* Radio Interface errors */
-    QMI_WDS_CDMA_CAUSE_CODE_RADIO_INTERFACE_RESOURCE_SHORTAGE = 0x40,
-    QMI_WDS_CDMA_CAUSE_CODE_RADIO_INTERFACE_INCOMPATIBILITY   = 0x41,
-    QMI_WDS_CDMA_CAUSE_CODE_RADIO_INTERFACE_OTHER             = 0x42,
+    QMI_WMS_CDMA_CAUSE_CODE_RADIO_INTERFACE_RESOURCE_SHORTAGE = 0x40,
+    QMI_WMS_CDMA_CAUSE_CODE_RADIO_INTERFACE_INCOMPATIBILITY   = 0x41,
+    QMI_WMS_CDMA_CAUSE_CODE_RADIO_INTERFACE_OTHER             = 0x42,
 
     /* General errors */
-    QMI_WDS_CDMA_CAUSE_CODE_GENERAL_ENCODING                            = 0x60,
-    QMI_WDS_CDMA_CAUSE_CODE_GENERAL_SMS_ORIGIN_DENIED                   = 0x61,
-    QMI_WDS_CDMA_CAUSE_CODE_GENERAL_SMS_DESTINATION_DENIED              = 0x62,
-    QMI_WDS_CDMA_CAUSE_CODE_GENERAL_SUPPLEMENTARY_SERVICE_NOT_SUPPORTED = 0x63,
-    QMI_WDS_CDMA_CAUSE_CODE_GENERAL_SMS_NOT_SUPPORTED                   = 0x64,
-    QMI_WDS_CDMA_CAUSE_CODE_GENERAL_MISSING_EXPECTED_PARAMETER          = 0x65,
-    QMI_WDS_CDMA_CAUSE_CODE_GENERAL_MISSING_MANDATORY_PARAMETER         = 0x66,
-    QMI_WDS_CDMA_CAUSE_CODE_GENERAL_UNRECOGNIZED_PARAMETER_VALUE        = 0x67,
-    QMI_WDS_CDMA_CAUSE_CODE_GENERAL_UNEXPECTED_PARAMETER_VALUE          = 0x68,
-    QMI_WDS_CDMA_CAUSE_CODE_GENERAL_USER_DATA_SIZE_ERROR                = 0x69,
-    QMI_WDS_CDMA_CAUSE_CODE_GENERAL_OTHER                               = 0x6A
+    QMI_WMS_CDMA_CAUSE_CODE_GENERAL_ENCODING                            = 0x60,
+    QMI_WMS_CDMA_CAUSE_CODE_GENERAL_SMS_ORIGIN_DENIED                   = 0x61,
+    QMI_WMS_CDMA_CAUSE_CODE_GENERAL_SMS_DESTINATION_DENIED              = 0x62,
+    QMI_WMS_CDMA_CAUSE_CODE_GENERAL_SUPPLEMENTARY_SERVICE_NOT_SUPPORTED = 0x63,
+    QMI_WMS_CDMA_CAUSE_CODE_GENERAL_SMS_NOT_SUPPORTED                   = 0x64,
+    QMI_WMS_CDMA_CAUSE_CODE_GENERAL_MISSING_EXPECTED_PARAMETER          = 0x65,
+    QMI_WMS_CDMA_CAUSE_CODE_GENERAL_MISSING_MANDATORY_PARAMETER         = 0x66,
+    QMI_WMS_CDMA_CAUSE_CODE_GENERAL_UNRECOGNIZED_PARAMETER_VALUE        = 0x67,
+    QMI_WMS_CDMA_CAUSE_CODE_GENERAL_UNEXPECTED_PARAMETER_VALUE          = 0x68,
+    QMI_WMS_CDMA_CAUSE_CODE_GENERAL_USER_DATA_SIZE_ERROR                = 0x69,
+    QMI_WMS_CDMA_CAUSE_CODE_GENERAL_OTHER                               = 0x6A
 } QmiWmsCdmaCauseCode;
 
 /**
  * QmiWmsCdmaErrorClass:
- * @QMI_WMS_CDMA_ERROR_CLASS_TEMPORARY: Temporary error.
- * @QMI_WMS_CDMA_ERROR_CLASS_PERMANENT: Permanent error.
+ * @QMI_WMS_CDMA_ERROR_CLASS_TEMPORARY: Temporary error reported by network.
+ * @QMI_WMS_CDMA_ERROR_CLASS_PERMANENT: Permanent error reported by network.
+ * @QMI_WMS_CDMA_ERROR_CLASS_TEMPORARY_DEVICE: Temporary error reported by device. Since 1.28.
+ * @QMI_WMS_CDMA_ERROR_CLASS_PERMANENT_DEVICE: Permanent error reported by device. Since 1.28.
+ *
+ * Error class reported from the network when failed to send an SMS in CDMA,
+ * or reported by the device when failed to process a transfer-only CDMA message.
  *
- * Error class when failed to send an SMS in CDMA.
+ * Since: 1.0
  */
-typedef enum {
-    QMI_WMS_CDMA_ERROR_CLASS_TEMPORARY = 0x00,
-    QMI_WMS_CDMA_ERROR_CLASS_PERMANENT = 0x01
+typedef enum { /*< since=1.0 >*/
+    QMI_WMS_CDMA_ERROR_CLASS_TEMPORARY        = 0x00,
+    QMI_WMS_CDMA_ERROR_CLASS_PERMANENT        = 0x01,
+    QMI_WMS_CDMA_ERROR_CLASS_TEMPORARY_DEVICE = 0x02,
+    QMI_WMS_CDMA_ERROR_CLASS_PERMANENT_DEVICE = 0x03,
 } QmiWmsCdmaErrorClass;
 
 /**
@@ -230,8 +251,10 @@ typedef enum {
  * @QMI_WMS_GSM_UMTS_RP_CAUSE_INTERWORKING: Interworking error.
  *
  * RP cause codes when failed to send an SMS in GSM/WCDMA.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_WMS_GSM_UMTS_RP_CAUSE_UNASSIGNED_NUMBER                    = 0x01,
     QMI_WMS_GSM_UMTS_RP_CAUSE_OPERATOR_DETERMINED_BARRING          = 0x08,
     QMI_WMS_GSM_UMTS_RP_CAUSE_CALL_BARRED                          = 0x0A,
@@ -288,8 +311,10 @@ typedef enum {
  * @QMI_WMS_GSM_UMTS_TP_CAUSE_UNSPECIFIED_ERROR: Unspecified error.
  *
  * RT cause codes when failed to send an SMS in GSM/WCDMA.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_WMS_GSM_UMTS_TP_CAUSE_TELE_INTERWORKING_NOT_SUPPORTED    = 0x80,
     QMI_WMS_GSM_UMTS_TP_CAUSE_SHORT_MESSAGE_TYPE_0_NOT_SUPPORTED = 0x81,
     QMI_WMS_GSM_UMTS_TP_CAUSE_SHORT_MESSAGE_CANNOT_BE_REPLACED   = 0x82,
@@ -324,8 +349,10 @@ typedef enum {
  * @QMI_WMS_MESSAGE_DELIVERY_FAILURE_TYPE_PERMANENT: Permanent failure.
  *
  * Type of message delivery failure.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_WMS_MESSAGE_DELIVERY_FAILURE_TYPE_TEMPORARY = 0x00,
     QMI_WMS_MESSAGE_DELIVERY_FAILURE_TYPE_PERMANENT = 0x01
 } QmiWmsMessageDeliveryFailureType;
@@ -341,8 +368,10 @@ typedef enum {
  * @QMI_WMS_MESSAGE_TAG_TYPE_MO_NOT_SENT: Not yet sent SMS.
  *
  * Type of message tag.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_WMS_MESSAGE_TAG_TYPE_MT_READ     = 0x00,
     QMI_WMS_MESSAGE_TAG_TYPE_MT_NOT_READ = 0x01,
     QMI_WMS_MESSAGE_TAG_TYPE_MO_SENT     = 0x02,
@@ -355,8 +384,10 @@ typedef enum {
  * @QMI_WMS_MESSAGE_PROTOCOL_WCDMA: WCDMA.
  *
  * Type of message protocol.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_WMS_MESSAGE_PROTOCOL_CDMA  = 0x00,
     QMI_WMS_MESSAGE_PROTOCOL_WCDMA = 0x01
 } QmiWmsMessageProtocol;
@@ -369,8 +400,10 @@ typedef enum {
  * @QMI_WMS_MESSAGE_TYPE_POINT_TO_POINT: Point to point message.
  *
  * Type of message.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_WMS_MESSAGE_TYPE_POINT_TO_POINT = 0x00
 } QmiWmsMessageType;
 
@@ -384,8 +417,10 @@ typedef enum {
  * @QMI_WMS_MESSAGE_CLASS_CDMA: Class CDMA.
  *
  * Message class.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_WMS_MESSAGE_CLASS_0    = 0x00,
     QMI_WMS_MESSAGE_CLASS_1    = 0x01,
     QMI_WMS_MESSAGE_CLASS_2    = 0x02,
@@ -403,8 +438,10 @@ typedef enum {
  * @QMI_WMS_RECEIPT_ACTION_UNKNOWN: Unknown action.
  *
  * Action to perform when a message is received.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_WMS_RECEIPT_ACTION_DISCARD          = 0x00,
     QMI_WMS_RECEIPT_ACTION_STORE_AND_NOTIFY = 0x01,
     QMI_WMS_RECEIPT_ACTION_TRANSFER_ONLY    = 0x02,
@@ -417,9 +454,27 @@ typedef enum {
  * @QMI_WMS_TRANSFER_INDICATION_CLIENT: Status reports transferred to the client.
  *
  * Transfer indication actions.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_WMS_TRANSFER_INDICATION_CLIENT = 0x01
 } QmiWmsTransferIndication;
 
+/**
+ * QmiWmsAckFailureCause:
+ * @QMI_WMS_ACK_FAILURE_CAUSE_NO_NETWORK_RESPONSE: No network response.
+ * @QMI_WMS_ACK_FAILURE_CAUSE_NETWORK_RELEASED_LINK: Network released link.
+ * @QMI_WMS_ACK_FAILURE_CAUSE_NOT_SENT: Not sent.
+ *
+ * Ack failure cause.
+ *
+ * Since: 1.28
+ */
+typedef enum { /*< since=1.28 >*/
+    QMI_WMS_ACK_FAILURE_CAUSE_NO_NETWORK_RESPONSE   = 0x00,
+    QMI_WMS_ACK_FAILURE_CAUSE_NETWORK_RELEASED_LINK = 0x01,
+    QMI_WMS_ACK_FAILURE_CAUSE_NOT_SENT              = 0x02,
+} QmiWmsAckFailureCause;
+
 #endif /* _LIBQMI_GLIB_QMI_ENUMS_WMS_H_ */

+ 153 - 75
qmi-enums.h

@@ -18,6 +18,7 @@
  * Boston, MA 02110-1301 USA.
  *
  * Copyright (C) 2012 Google, Inc.
+ * Copyright (C) 2012-2017 Aleksander Morgado <aleksander@aleksander.es>
  */
 
 #ifndef _LIBQMI_GLIB_QMI_ENUMS_H_
@@ -25,7 +26,6 @@
 
 /**
  * SECTION: qmi-enums
- * @title: Common enumerations and flags
  *
  * This section defines common enumerations and flags used in the interface.
  */
@@ -46,90 +46,168 @@
  * @QMI_SERVICE_CAT2: Card Application Toolkit service (v2).
  * @QMI_SERVICE_UIM: User Identity Module service.
  * @QMI_SERVICE_PBM: Phonebook Management service.
- * @QMI_SERVICE_QCHAT: QCHAT service.
+ * @QMI_SERVICE_QCHAT: QCHAT service. Since: 1.8.
  * @QMI_SERVICE_RMTFS: Remote file system service.
- * @QMI_SERVICE_TEST: Test service.
+ * @QMI_SERVICE_TEST: Test service. Since: 1.8.
  * @QMI_SERVICE_LOC: Location service (~ PDS v2).
  * @QMI_SERVICE_SAR: Service access proxy service.
- * @QMI_SERVICE_IMS: IMS settings service.
- * @QMI_SERVICE_ADC: Analog to digital converter driver service.
- * @QMI_SERVICE_CSD: Core sound driver service.
- * @QMI_SERVICE_MFS: Modem embedded file system service.
- * @QMI_SERVICE_TIME: Time service.
- * @QMI_SERVICE_TS: Thermal sensors service.
- * @QMI_SERVICE_TMD: Thermal mitigation device service.
- * @QMI_SERVICE_SAP: Service access proxy service.
- * @QMI_SERVICE_WDA: Wireless data administrative service.
- * @QMI_SERVICE_TSYNC: TSYNC control service.
- * @QMI_SERVICE_RFSA: Remote file system access service.
- * @QMI_SERVICE_CSVT: Circuit switched videotelephony service.
- * @QMI_SERVICE_QCMAP: Qualcomm mobile access point service.
- * @QMI_SERVICE_IMSP: IMS presence service.
- * @QMI_SERVICE_IMSVT: IMS videotelephony service.
- * @QMI_SERVICE_IMSA: IMS application service.
- * @QMI_SERVICE_COEX: Coexistence service.
- * @QMI_SERVICE_PDC: Persistent device configuration service.
- * @QMI_SERVICE_STX: Simultaneous transmit service.
- * @QMI_SERVICE_BIT: Bearer independent transport service.
- * @QMI_SERVICE_IMSRTP: IMS RTP service.
- * @QMI_SERVICE_RFRPE: RF radiated performance enhancement service.
- * @QMI_SERVICE_DSD: Data system determination service.
- * @QMI_SERVICE_SSCTL: Subsystem control service.
+ * @QMI_SERVICE_IMS: IMS settings service. Since: 1.8.
+ * @QMI_SERVICE_ADC: Analog to digital converter driver service. Since: 1.8.
+ * @QMI_SERVICE_CSD: Core sound driver service. Since: 1.8.
+ * @QMI_SERVICE_MFS: Modem embedded file system service. Since: 1.8.
+ * @QMI_SERVICE_TIME: Time service. Since: 1.8.
+ * @QMI_SERVICE_TS: Thermal sensors service. Since: 1.8.
+ * @QMI_SERVICE_TMD: Thermal mitigation device service. Since: 1.8.
+ * @QMI_SERVICE_SAP: Service access proxy service. Since: 1.8.
+ * @QMI_SERVICE_WDA: Wireless data administrative service. Since: 1.8.
+ * @QMI_SERVICE_TSYNC: TSYNC control service. Since: 1.8.
+ * @QMI_SERVICE_RFSA: Remote file system access service. Since: 1.8.
+ * @QMI_SERVICE_CSVT: Circuit switched videotelephony service. Since: 1.8.
+ * @QMI_SERVICE_QCMAP: Qualcomm mobile access point service. Since: 1.8.
+ * @QMI_SERVICE_IMSP: IMS presence service. Since: 1.8.
+ * @QMI_SERVICE_IMSVT: IMS videotelephony service. Since: 1.8.
+ * @QMI_SERVICE_IMSA: IMS application service. Since: 1.8.
+ * @QMI_SERVICE_COEX: Coexistence service. Since: 1.8.
+ * @QMI_SERVICE_PDC: Persistent device configuration service. Since: 1.8.
+ * @QMI_SERVICE_STX: Simultaneous transmit service. Since: 1.8.
+ * @QMI_SERVICE_BIT: Bearer independent transport service. Since: 1.8.
+ * @QMI_SERVICE_IMSRTP: IMS RTP service. Since: 1.8.
+ * @QMI_SERVICE_RFRPE: RF radiated performance enhancement service. Since: 1.8.
+ * @QMI_SERVICE_DSD: Data system determination service. Since: 1.8.
+ * @QMI_SERVICE_SSCTL: Subsystem control service. Since: 1.8.
+ * @QMI_SERVICE_DPM: Data Port Mapper service. Since: 1.30.
  * @QMI_SERVICE_CAT: Card Application Toolkit service (v1).
  * @QMI_SERVICE_RMS: Remote Management Service.
  * @QMI_SERVICE_OMA: Open Mobile Alliance device management service.
+ * @QMI_SERVICE_FOTA: Firmware Over The Air service. Since: 1.24.
+ * @QMI_SERVICE_GMS: Telit General Modem Service. Since: 1.24.
+ * @QMI_SERVICE_GAS: Telit General Application Service. Since: 1.24.
  *
  * QMI services.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_SERVICE_UNKNOWN = -1,
-    QMI_SERVICE_CTL = 0,
-    QMI_SERVICE_WDS = 1,
-    QMI_SERVICE_DMS = 2,
-    QMI_SERVICE_NAS = 3,
-    QMI_SERVICE_QOS = 4,
-    QMI_SERVICE_WMS = 5,
-    QMI_SERVICE_PDS = 6,
-    QMI_SERVICE_AUTH = 7,
-    QMI_SERVICE_AT = 8,
-    QMI_SERVICE_VOICE = 9,
-    QMI_SERVICE_CAT2 = 10,
-    QMI_SERVICE_UIM = 11,
-    QMI_SERVICE_PBM = 12,
-    QMI_SERVICE_QCHAT = 13,
-    QMI_SERVICE_RMTFS = 14,
-    QMI_SERVICE_TEST = 15,
-    QMI_SERVICE_LOC = 16,
-    QMI_SERVICE_SAR = 17,
-    QMI_SERVICE_IMS = 18,
-    QMI_SERVICE_ADC = 19,
-    QMI_SERVICE_CSD = 20,
-    QMI_SERVICE_MFS = 21,
-    QMI_SERVICE_TIME = 22,
-    QMI_SERVICE_TS = 23,
-    QMI_SERVICE_TMD = 24,
-    QMI_SERVICE_SAP = 25,
-    QMI_SERVICE_WDA = 26,
-    QMI_SERVICE_TSYNC = 27,
-    QMI_SERVICE_RFSA = 28,
-    QMI_SERVICE_CSVT = 29,
-    QMI_SERVICE_QCMAP = 30,
-    QMI_SERVICE_IMSP = 31,
-    QMI_SERVICE_IMSVT = 32,
-    QMI_SERVICE_IMSA = 33,
-    QMI_SERVICE_COEX = 34,
-    /* 35, reserved */
-    QMI_SERVICE_PDC = 36,
-    /* 37, reserved */
-    QMI_SERVICE_STX = 38,
-    QMI_SERVICE_BIT = 39,
-    QMI_SERVICE_IMSRTP = 40,
-    QMI_SERVICE_RFRPE = 41,
-    QMI_SERVICE_DSD = 42,
-    QMI_SERVICE_SSCTL = 43,
-    QMI_SERVICE_CAT = 224,
-    QMI_SERVICE_RMS = 225,
-    QMI_SERVICE_OMA = 226
+    QMI_SERVICE_CTL     = 0x00,
+    QMI_SERVICE_WDS     = 0x01,
+    QMI_SERVICE_DMS     = 0x02,
+    QMI_SERVICE_NAS     = 0x03,
+    QMI_SERVICE_QOS     = 0x04,
+    QMI_SERVICE_WMS     = 0x05,
+    QMI_SERVICE_PDS     = 0x06,
+    QMI_SERVICE_AUTH    = 0x07,
+    QMI_SERVICE_AT      = 0x08,
+    QMI_SERVICE_VOICE   = 0x09,
+    QMI_SERVICE_CAT2    = 0x0A,
+    QMI_SERVICE_UIM     = 0x0B,
+    QMI_SERVICE_PBM     = 0x0C,
+    QMI_SERVICE_QCHAT   = 0x0D,
+    QMI_SERVICE_RMTFS   = 0x0E,
+    QMI_SERVICE_TEST    = 0x0F,
+    QMI_SERVICE_LOC     = 0x10,
+    QMI_SERVICE_SAR     = 0x11,
+    QMI_SERVICE_IMS     = 0x12,
+    QMI_SERVICE_ADC     = 0x13,
+    QMI_SERVICE_CSD     = 0x14,
+    QMI_SERVICE_MFS     = 0x15,
+    QMI_SERVICE_TIME    = 0x16,
+    QMI_SERVICE_TS      = 0x17,
+    QMI_SERVICE_TMD     = 0x18,
+    QMI_SERVICE_SAP     = 0x19,
+    QMI_SERVICE_WDA     = 0x1A,
+    QMI_SERVICE_TSYNC   = 0x1B,
+    QMI_SERVICE_RFSA    = 0x1C,
+    QMI_SERVICE_CSVT    = 0x1D,
+    QMI_SERVICE_QCMAP   = 0x1E,
+    QMI_SERVICE_IMSP    = 0x1F,
+    QMI_SERVICE_IMSVT   = 0x20,
+    QMI_SERVICE_IMSA    = 0x21,
+    QMI_SERVICE_COEX    = 0x22,
+    /* 0x23, reserved */
+    QMI_SERVICE_PDC     = 0x24,
+    /* 0x25, reserved */
+    QMI_SERVICE_STX     = 0x26,
+    QMI_SERVICE_BIT     = 0x27,
+    QMI_SERVICE_IMSRTP  = 0x28,
+    QMI_SERVICE_RFRPE   = 0x29,
+    QMI_SERVICE_DSD     = 0x2A,
+    QMI_SERVICE_SSCTL   = 0x2B,
+    QMI_SERVICE_DPM     = 0x2F,
+    QMI_SERVICE_CAT     = 0xE0,
+    QMI_SERVICE_RMS     = 0xE1,
+    QMI_SERVICE_OMA     = 0xE2,
+    QMI_SERVICE_FOTA    = 0xE6,
+    QMI_SERVICE_GMS     = 0xE7,
+    QMI_SERVICE_GAS     = 0xE8,
 } QmiService;
 
+/**
+ * QmiEndian:
+ * @QMI_ENDIAN_LITTLE: Little endian.
+ * @QMI_ENDIAN_BIG: Big endian.
+ *
+ * Type of endianness.
+ *
+ * Since: 1.0
+ */
+typedef enum { /*< since=1.28 >*/   /* the get_string() helper and QmiEndian type added in 1.28 */
+    QMI_ENDIAN_LITTLE = 0,
+    QMI_ENDIAN_BIG    = 1
+} QmiEndian;
+
+/**
+ * QmiDataEndpointType:
+ * @QMI_DATA_ENDPOINT_TYPE_UNKNOWN: Unknown. Since 1.30.
+ * @QMI_DATA_ENDPOINT_TYPE_HSIC: High-speed inter-chip interface. Since 1.30.
+ * @QMI_DATA_ENDPOINT_TYPE_HSUSB: High-speed USB.
+ * @QMI_DATA_ENDPOINT_TYPE_PCIE: PCIe. Since: 1.28.
+ * @QMI_DATA_ENDPOINT_TYPE_EMBEDDED: Embedded. Since 1.28.
+ * @QMI_DATA_ENDPOINT_TYPE_BAM_DMUX: BAM/DMUX. Since 1.30.
+ * @QMI_DATA_ENDPOINT_TYPE_UNDEFINED: Undefined.
+ *
+ * Data Endpoint Type.
+ *
+ * Since: 1.18
+ */
+typedef enum { /*< since=1.18 >*/
+    QMI_DATA_ENDPOINT_TYPE_UNKNOWN   = 0x00,
+    QMI_DATA_ENDPOINT_TYPE_HSIC      = 0x01,
+    QMI_DATA_ENDPOINT_TYPE_HSUSB     = 0x02,
+    QMI_DATA_ENDPOINT_TYPE_PCIE      = 0x03,
+    QMI_DATA_ENDPOINT_TYPE_EMBEDDED  = 0x04,
+    QMI_DATA_ENDPOINT_TYPE_BAM_DMUX  = 0x05,
+    QMI_DATA_ENDPOINT_TYPE_UNDEFINED = 0xFF,
+} QmiDataEndpointType;
+
+/**
+ * QmiSioPort:
+ * @QMI_SIO_PORT_NONE: Invalid port number.
+ * @QMI_SIO_PORT_A2_MUX_RMNET0: A2 MUX (BAM-DMUX) port for rmnet0.
+ * @QMI_SIO_PORT_A2_MUX_RMNET1: A2 MUX (BAM-DMUX) port for rmnet1.
+ * @QMI_SIO_PORT_A2_MUX_RMNET2: A2 MUX (BAM-DMUX) port for rmnet2.
+ * @QMI_SIO_PORT_A2_MUX_RMNET3: A2 MUX (BAM-DMUX) port for rmnet3.
+ * @QMI_SIO_PORT_A2_MUX_RMNET4: A2 MUX (BAM-DMUX) port for rmnet4.
+ * @QMI_SIO_PORT_A2_MUX_RMNET5: A2 MUX (BAM-DMUX) port for rmnet5.
+ * @QMI_SIO_PORT_A2_MUX_RMNET6: A2 MUX (BAM-DMUX) port for rmnet6.
+ * @QMI_SIO_PORT_A2_MUX_RMNET7: A2 MUX (BAM-DMUX) port for rmnet7.
+ *
+ * SIO (serial I/O) port numbers. All ports available in the modem have a SIO
+ * port number. This enum is incomplete, only few port numbers are publicly
+ * known.
+ *
+ * Since: 1.28
+ */
+typedef enum { /*< since=1.28 >*/
+    QMI_SIO_PORT_NONE          = 0x0000,
+    QMI_SIO_PORT_A2_MUX_RMNET0 = 0x0e04,
+    QMI_SIO_PORT_A2_MUX_RMNET1 = 0x0e05,
+    QMI_SIO_PORT_A2_MUX_RMNET2 = 0x0e06,
+    QMI_SIO_PORT_A2_MUX_RMNET3 = 0x0e07,
+    QMI_SIO_PORT_A2_MUX_RMNET4 = 0x0e08,
+    QMI_SIO_PORT_A2_MUX_RMNET5 = 0x0e09,
+    QMI_SIO_PORT_A2_MUX_RMNET6 = 0x0e0a,
+    QMI_SIO_PORT_A2_MUX_RMNET7 = 0x0e0b,
+} QmiSioPort;
+
 #endif /* _LIBQMI_GLIB_QMI_ENUMS_H_ */

+ 139 - 58
qmi-errors.h

@@ -17,7 +17,7 @@
  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  * Boston, MA 02110-1301 USA.
  *
- * Copyright (C) 2012 Aleksander Morgado <aleksander@lanedo.com>
+ * Copyright (C) 2012-2017 Aleksander Morgado <aleksander@aleksander.es>
  */
 
 #ifndef _LIBQMI_GLIB_QMI_ERRORS_H_
@@ -25,11 +25,37 @@
 
 /**
  * SECTION: qmi-errors
- * @title: Errors
  *
  * This section defines common error types used in the interface.
  */
 
+/**
+ * QMI_DBUS_ERROR_PREFIX:
+ *
+ * Symbol defining the common string prefix used for all libqmi errors in DBus.
+ *
+ * Since: 1.0
+ */
+#define QMI_DBUS_ERROR_PREFIX "org.freedesktop.libqmi.Error"
+
+/**
+ * QMI_CORE_ERROR_DBUS_PREFIX:
+ *
+ * Symbol defining the common string prefix used for all #QmiCoreError errors in DBus.
+ *
+ * Since: 1.0
+ */
+#define QMI_CORE_ERROR_DBUS_PREFIX QMI_DBUS_ERROR_PREFIX ".Core"
+
+/**
+ * QMI_PROTOCOL_ERROR_DBUS_PREFIX:
+ *
+ * Symbol defining the common string prefix used for all #QmiProtocolError errors in DBus.
+ *
+ * Since: 1.0
+ */
+#define QMI_PROTOCOL_ERROR_DBUS_PREFIX QMI_DBUS_ERROR_PREFIX ".Protocol"
+
 /**
  * QmiCoreError:
  * @QMI_CORE_ERROR_FAILED: Operation failed.
@@ -40,18 +66,26 @@
  * @QMI_CORE_ERROR_TLV_NOT_FOUND: TLV not found.
  * @QMI_CORE_ERROR_TLV_TOO_LONG: TLV is too long.
  * @QMI_CORE_ERROR_UNSUPPORTED: Not supported.
+ * @QMI_CORE_ERROR_TLV_EMPTY: TLV has no value. Empty TLVs are not a real error, so this error type is never generated. Since: 1.12. Deprecated: 1.22.
+ * @QMI_CORE_ERROR_UNEXPECTED_MESSAGE: QMI message is unexpected. Since: 1.16.
+ * @QMI_CORE_ERROR_INVALID_DATA: Invalid data found in the message. Since: 1.24.6.
  *
  * Common errors that may be reported by libqmi-glib.
+ *
+ * Since: 1.0
  */
-typedef enum { /*< underscore_name=qmi_core_error >*/
-    QMI_CORE_ERROR_FAILED           = 0, /*< nick=Failed >*/
-    QMI_CORE_ERROR_WRONG_STATE      = 1, /*< nick=WrongState >*/
-    QMI_CORE_ERROR_TIMEOUT          = 2, /*< nick=Timeout >*/
-    QMI_CORE_ERROR_INVALID_ARGS     = 3, /*< nick=InvalidArgs >*/
-    QMI_CORE_ERROR_INVALID_MESSAGE  = 4, /*< nick=InvalidMessage >*/
-    QMI_CORE_ERROR_TLV_NOT_FOUND    = 5, /*< nick=TlvNotFound >*/
-    QMI_CORE_ERROR_TLV_TOO_LONG     = 6, /*< nick=TlvTooLong >*/
-    QMI_CORE_ERROR_UNSUPPORTED      = 7  /*< nick=Unsupported >*/
+typedef enum { /*< since=1.0 >*/
+    QMI_CORE_ERROR_FAILED             = 0, /*< nick=Failed >*/
+    QMI_CORE_ERROR_WRONG_STATE        = 1, /*< nick=WrongState >*/
+    QMI_CORE_ERROR_TIMEOUT            = 2, /*< nick=Timeout >*/
+    QMI_CORE_ERROR_INVALID_ARGS       = 3, /*< nick=InvalidArgs >*/
+    QMI_CORE_ERROR_INVALID_MESSAGE    = 4, /*< nick=InvalidMessage >*/
+    QMI_CORE_ERROR_TLV_NOT_FOUND      = 5, /*< nick=TlvNotFound >*/
+    QMI_CORE_ERROR_TLV_TOO_LONG       = 6, /*< nick=TlvTooLong >*/
+    QMI_CORE_ERROR_UNSUPPORTED        = 7, /*< nick=Unsupported >*/
+    QMI_CORE_ERROR_TLV_EMPTY          = 8, /*< nick=TlvEmpty >*/
+    QMI_CORE_ERROR_UNEXPECTED_MESSAGE = 9, /*< nick=UnexpectedMessage >*/
+    QMI_CORE_ERROR_INVALID_DATA       = 10, /*< nick=InvalidData >*/
 } QmiCoreError;
 
 /**
@@ -95,8 +129,10 @@ typedef enum { /*< underscore_name=qmi_core_error >*/
   * @QMI_PROTOCOL_ERROR_INCORRECT_FLOW_FILTER: Incorrect flow filter.
   * @QMI_PROTOCOL_ERROR_NETWORK_QOS_UNAWARE: Network QoS unaware.
   * @QMI_PROTOCOL_ERROR_INVALID_QOS_ID: Invalid QoS ID.
-  * @QMI_PROTOCOL_ERROR_QOS_UNAVAILABLE: QoS unavailable.
+  * @QMI_PROTOCOL_ERROR_REQUESTED_NUMBER_UNSUPPORTED: Requested number unsupported. Since: 1.22.
+  * @QMI_PROTOCOL_ERROR_INTERFACE_NOT_FOUND: Interface not found. Since: 1.22.
   * @QMI_PROTOCOL_ERROR_FLOW_SUSPENDED: Flow suspended.
+  * @QMI_PROTOCOL_ERROR_INVALID_DATA_FORMAT: Invalid data format. Since: 1.22.
   * @QMI_PROTOCOL_ERROR_GENERAL_ERROR: General error.
   * @QMI_PROTOCOL_ERROR_UNKNOWN_ERROR: Unknown error.
   * @QMI_PROTOCOL_ERROR_INVALID_ARGUMENT: Invalid argument.
@@ -112,6 +148,10 @@ typedef enum { /*< underscore_name=qmi_core_error >*/
   * @QMI_PROTOCOL_ERROR_WMS_ENCODING: WMS encoding.
   * @QMI_PROTOCOL_ERROR_AUTHENTICATION_LOCK: Authentication lock.
   * @QMI_PROTOCOL_ERROR_INVALID_TRANSITION: Invalid transition.
+  * @QMI_PROTOCOL_ERROR_NOT_MCAST_INTERFACE: Not a multicast interface. Since: 1.22.
+  * @QMI_PROTOCOL_ERROR_MAXIMUM_MCAST_REQUESTS_IN_USE: Maximum multicast requests in use. Since: 1.22.
+  * @QMI_PROTOCOL_ERROR_INVALID_MCAST_HANDLE: Invalid mulitcast handle. Since: 1.22.
+  * @QMI_PROTOCOL_ERROR_INVALID_IP_FAMILY_PREFERENCE: Invalid IP family preference. Since: 1.22.
   * @QMI_PROTOCOL_ERROR_SESSION_INACTIVE: Session inactive.
   * @QMI_PROTOCOL_ERROR_SESSION_INVALID: Session invalid.
   * @QMI_PROTOCOL_ERROR_SESSION_OWNERSHIP: Session ownership.
@@ -125,34 +165,51 @@ typedef enum { /*< underscore_name=qmi_core_error >*/
   * @QMI_PROTOCOL_ERROR_SEGMENT_TOO_LONG: Segment too long.
   * @QMI_PROTOCOL_ERROR_SEGMENT_ORDER: Segment order.
   * @QMI_PROTOCOL_ERROR_BUNDLING_NOT_SUPPORTED: Bundling not supported.
-  * @QMI_PROTOCOL_ERROR_POLICY_MISMATCH: Policy mismatch.
+  * @QMI_PROTOCOL_ERROR_OPERATION_PARTIAL_FAILURE: Operation partial failure. Since: 1.22.
+  * @QMI_PROTOCOL_ERROR_POLICY_MISMATCH: Policy mismatch. Since: 1.6.
   * @QMI_PROTOCOL_ERROR_SIM_FILE_NOT_FOUND: SIM file not found.
-  * @QMI_PROTOCOL_ERROR_EXTENDED_INTERNAL: Extended internal error.
+  * @QMI_PROTOCOL_ERROR_EXTENDED_INTERNAL: Extended internal error. Since: 1.6.
   * @QMI_PROTOCOL_ERROR_ACCESS_DENIED: Access denied.
   * @QMI_PROTOCOL_ERROR_HARDWARE_RESTRICTED: Hardware restricted.
-  * @QMI_PROTOCOL_ERROR_ACK_NOT_SENT: ACK not sent.
-  * @QMI_PROTOCOL_ERROR_INJECT_TIMEOUT: Inject timeout.
-  * @QMI_PROTOCOL_ERROR_INCOMPATIBLE_STATE: Incompatible state.
-  * @QMI_PROTOCOL_ERROR_FDN_RESTRICT: FDN restrict.
-  * @QMI_PROTOCOL_ERROR_SUPS_FAILURE_CASE: SUPS failure case.
-  * @QMI_PROTOCOL_ERROR_NO_RADIO: No radio.
-  * @QMI_PROTOCOL_ERROR_NOT_SUPPORTED: Not supported.
-  * @QMI_PROTOCOL_ERROR_NO_SUBSCRIPTION: No subscription.
-  * @QMI_PROTOCOL_ERROR_CARD_CALL_CONTROL_FAILED: Card call control failed.
-  * @QMI_PROTOCOL_ERROR_NETWORK_ABORTED: Network aborted.
-  * @QMI_PROTOCOL_ERROR_MSG_BLOCKED: Message blocked.
-  * @QMI_PROTOCOL_ERROR_INVALID_SESSION_TYPE: Invalid session type.
-  * @QMI_PROTOCOL_ERROR_INVALID_PB_TYPE: Invalid PB type.
-  * @QMI_PROTOCOL_ERROR_NO_SIM: No SIM.
-  * @QMI_PROTOCOL_ERROR_PB_NOT_READY: PB not ready.
-  * @QMI_PROTOCOL_ERROR_PIN_RESTRICTION: PIN restriction.
-  * @QMI_PROTOCOL_ERROR_PIN2_RESTRICTION: PIN2 restriction.
-  * @QMI_PROTOCOL_ERROR_PUK_RESTRICTION: PUK restriction.
-  * @QMI_PROTOCOL_ERROR_PUK2_RESTRICTION: PUK2 restriction.
-  * @QMI_PROTOCOL_ERROR_PB_ACCESS_RESTRICTED: PB access restricted.
-  * @QMI_PROTOCOL_ERROR_PB_TEXT_TOO_LONG: PB text too long.
-  * @QMI_PROTOCOL_ERROR_PB_NUMBER_TOO_LONG: PB number too long.
-  * @QMI_PROTOCOL_ERROR_PB_HIDDEN_KEY_RESTRICTION: PB hidden key restriction.
+  * @QMI_PROTOCOL_ERROR_ACK_NOT_SENT: ACK not sent. Since: 1.6.
+  * @QMI_PROTOCOL_ERROR_INJECT_TIMEOUT: Inject timeout. Since: 1.6.
+  * @QMI_PROTOCOL_ERROR_INCOMPATIBLE_STATE: Incompatible state. Since: 1.6.
+  * @QMI_PROTOCOL_ERROR_FDN_RESTRICT: FDN restrict. Since: 1.6.
+  * @QMI_PROTOCOL_ERROR_SUPS_FAILURE_CASE: SUPS failure case. Since: 1.6.
+  * @QMI_PROTOCOL_ERROR_NO_RADIO: No radio. Since: 1.6.
+  * @QMI_PROTOCOL_ERROR_NOT_SUPPORTED: Not supported. Since: 1.6.
+  * @QMI_PROTOCOL_ERROR_NO_SUBSCRIPTION: No subscription. Since: 1.6.
+  * @QMI_PROTOCOL_ERROR_CARD_CALL_CONTROL_FAILED: Card call control failed. Since: 1.6.
+  * @QMI_PROTOCOL_ERROR_NETWORK_ABORTED: Network aborted. Since: 1.6.
+  * @QMI_PROTOCOL_ERROR_MSG_BLOCKED: Message blocked. Since: 1.6.
+  * @QMI_PROTOCOL_ERROR_INVALID_SESSION_TYPE: Invalid session type. Since: 1.6.
+  * @QMI_PROTOCOL_ERROR_INVALID_PB_TYPE: Invalid PB type. Since: 1.6.
+  * @QMI_PROTOCOL_ERROR_NO_SIM: No SIM. Since: 1.6.
+  * @QMI_PROTOCOL_ERROR_PB_NOT_READY: PB not ready. Since: 1.6.
+  * @QMI_PROTOCOL_ERROR_PIN_RESTRICTION: PIN restriction. Since: 1.6.
+  * @QMI_PROTOCOL_ERROR_PIN2_RESTRICTION: PIN2 restriction. Since: 1.6.
+  * @QMI_PROTOCOL_ERROR_PUK_RESTRICTION: PUK restriction. Since: 1.6.
+  * @QMI_PROTOCOL_ERROR_PUK2_RESTRICTION: PUK2 restriction. Since: 1.6.
+  * @QMI_PROTOCOL_ERROR_PB_ACCESS_RESTRICTED: PB access restricted. Since: 1.6.
+  * @QMI_PROTOCOL_ERROR_PB_DELETE_IN_PROGRESS: PB delete in progress. Since: 1.22.
+  * @QMI_PROTOCOL_ERROR_PB_TEXT_TOO_LONG: PB text too long. Since: 1.6.
+  * @QMI_PROTOCOL_ERROR_PB_NUMBER_TOO_LONG: PB number too long. Since: 1.6.
+  * @QMI_PROTOCOL_ERROR_PB_HIDDEN_KEY_RESTRICTION: PB hidden key restriction. Since: 1.6.
+  * @QMI_PROTOCOL_ERROR_PB_NOT_AVAILABLE: PB not available. Since: 1.22.
+  * @QMI_PROTOCOL_ERROR_DEVICE_MEMORY_ERROR: Device memory error. Since: 1.22.
+  * @QMI_PROTOCOL_ERROR_NO_PERMISSION: No permission. Since: 1.22.
+  * @QMI_PROTOCOL_ERROR_TOO_SOON: Too soon. Since: 1.22.
+  * @QMI_PROTOCOL_ERROR_TIME_NOT_ACQUIRED: Time not acquired. Since: 1.22.
+  * @QMI_PROTOCOL_ERROR_OPERATION_IN_PROGRESS: Operation in progress. Since: 1.22.
+  * @QMI_PROTOCOL_ERROR_FW_WRITE_FAILED: Firmware write failed. Since: 1.22.
+  * @QMI_PROTOCOL_ERROR_FW_INFO_READ_FAILED: Firmware info read failed. Since: 1.22.
+  * @QMI_PROTOCOL_ERROR_FW_FILE_NOT_FOUND: Firmware file not found. Since: 1.22.
+  * @QMI_PROTOCOL_ERROR_FW_DIR_NOT_FOUND: Firmware dir not found. Since: 1.22.
+  * @QMI_PROTOCOL_ERROR_FW_ALREADY_ACTIVATED: Firmware already activated. Since: 1.22.
+  * @QMI_PROTOCOL_ERROR_FW_CANNOT_GENERIC_IMAGE: Firmware cannot generic image. Since: 1.22.
+  * @QMI_PROTOCOL_ERROR_FW_FILE_OPEN_FAILED: Firmware file open failed. Since: 1.22.
+  * @QMI_PROTOCOL_ERROR_FW_UPDATE_DISCONTINUOUS_FRAME: Firmware update discontinuous frame. Since: 1.22.
+  * @QMI_PROTOCOL_ERROR_FW_UPDATE_FAILED: Firmware update failed. Since: 1.22.
   * @QMI_PROTOCOL_ERROR_CAT_EVENT_REGISTRATION_FAILED: Event registration failed.
   * @QMI_PROTOCOL_ERROR_CAT_INVALID_TERMINAL_RESPONSE: Invalid terminal response.
   * @QMI_PROTOCOL_ERROR_CAT_INVALID_ENVELOPE_COMMAND: Invalid envelope command.
@@ -160,8 +217,10 @@ typedef enum { /*< underscore_name=qmi_core_error >*/
   * @QMI_PROTOCOL_ERROR_CAT_ENVELOPE_COMMAND_FAILED: Envelope command failed.
   *
   * QMI protocol errors.
+  *
+  * Since: 1.0
   */
-typedef enum { /*< underscore_name=qmi_protocol_error >*/
+typedef enum { /*< since=1.0 >*/
   QMI_PROTOCOL_ERROR_NONE                             = 0,  /*< nick=None >*/
   QMI_PROTOCOL_ERROR_MALFORMED_MESSAGE                = 1,  /*< nick=MalformedMessage >*/
   QMI_PROTOCOL_ERROR_NO_MEMORY                        = 2,  /*< nick=NoMemory >*/
@@ -199,10 +258,12 @@ typedef enum { /*< underscore_name=qmi_protocol_error >*/
   QMI_PROTOCOL_ERROR_UIM_UNINITIALIZED                = 37, /*< nick=UimUninitialized >*/
   QMI_PROTOCOL_ERROR_MAXIMUM_QOS_REQUESTS_IN_USE      = 38, /*< nick=MaximumQosRequestsInUse >*/
   QMI_PROTOCOL_ERROR_INCORRECT_FLOW_FILTER            = 39, /*< nick=IncorrectFlowFilter >*/
-  QMI_PROTOCOL_ERROR_NETWORK_QOS_UNAWARE              = 40, /*< nick= NetworkQosUnaware >*/
+  QMI_PROTOCOL_ERROR_NETWORK_QOS_UNAWARE              = 40, /*< nick=NetworkQosUnaware >*/
   QMI_PROTOCOL_ERROR_INVALID_QOS_ID                   = 41, /*< nick=InvalidQosId >*/
-  QMI_PROTOCOL_ERROR_QOS_UNAVAILABLE                  = 42, /*< nick=QosUnavailable >*/
-  QMI_PROTOCOL_ERROR_FLOW_SUSPENDED                   = 43, /*< nick=FlowSuspended >*/
+  QMI_PROTOCOL_ERROR_REQUESTED_NUMBER_UNSUPPORTED     = 42, /*< nick=RequestedNumberUnsupported >*/
+  QMI_PROTOCOL_ERROR_INTERFACE_NOT_FOUND              = 43, /*< nick=InterfaceNotFound >*/
+  QMI_PROTOCOL_ERROR_FLOW_SUSPENDED                   = 44, /*< nick=FlowSuspended >*/
+  QMI_PROTOCOL_ERROR_INVALID_DATA_FORMAT              = 45, /*< nick=InvalidDataFormat >*/
   QMI_PROTOCOL_ERROR_GENERAL_ERROR                    = 46, /*< nick=GeneralError >*/
   QMI_PROTOCOL_ERROR_UNKNOWN_ERROR                    = 47, /*< nick=UnknownError >*/
   QMI_PROTOCOL_ERROR_INVALID_ARGUMENT                 = 48, /*< nick=InvalidArgument >*/
@@ -211,13 +272,17 @@ typedef enum { /*< underscore_name=qmi_protocol_error >*/
   QMI_PROTOCOL_ERROR_DEVICE_STORAGE_FULL              = 51, /*< nick=DeviceStorageFull >*/
   QMI_PROTOCOL_ERROR_DEVICE_NOT_READY                 = 52, /*< nick=DeviceNotReady >*/
   QMI_PROTOCOL_ERROR_NETWORK_NOT_READY                = 53, /*< nick=NetworkNotReady >*/
-  QMI_PROTOCOL_ERROR_WMS_CAUSE_CODE                   = 54, /*< nick=Wms.CauseCode >*/
-  QMI_PROTOCOL_ERROR_WMS_MESSAGE_NOT_SENT             = 55, /*< nick=Wms.MessageNotSent >*/
-  QMI_PROTOCOL_ERROR_WMS_MESSAGE_DELIVERY_FAILURE     = 56, /*< nick=Wms.MessageDeliveryFailure >*/
-  QMI_PROTOCOL_ERROR_WMS_INVALID_MESSAGE_ID           = 57, /*< nick=Wms.InvalidMessageId >*/
-  QMI_PROTOCOL_ERROR_WMS_ENCODING                     = 58, /*< nick=Wms.Encoding >*/
+  QMI_PROTOCOL_ERROR_WMS_CAUSE_CODE                   = 54, /*< nick=WmsCauseCode >*/
+  QMI_PROTOCOL_ERROR_WMS_MESSAGE_NOT_SENT             = 55, /*< nick=WmsMessageNotSent >*/
+  QMI_PROTOCOL_ERROR_WMS_MESSAGE_DELIVERY_FAILURE     = 56, /*< nick=WmsMessageDeliveryFailure >*/
+  QMI_PROTOCOL_ERROR_WMS_INVALID_MESSAGE_ID           = 57, /*< nick=WmsInvalidMessageId >*/
+  QMI_PROTOCOL_ERROR_WMS_ENCODING                     = 58, /*< nick=WmsEncoding >*/
   QMI_PROTOCOL_ERROR_AUTHENTICATION_LOCK              = 59, /*< nick=AuthenticationLock >*/
-  QMI_PROTOCOL_ERROR_INVALID_TRANSITION               = 60, /*< nick=InvalidTransaction >*/
+  QMI_PROTOCOL_ERROR_INVALID_TRANSITION               = 60, /*< nick=InvalidTransition >*/
+  QMI_PROTOCOL_ERROR_NOT_MCAST_INTERFACE              = 61, /*< nick=NotMcastInterface >*/
+  QMI_PROTOCOL_ERROR_MAXIMUM_MCAST_REQUESTS_IN_USE    = 62, /*< nick=MaximumMcastRequestsInUse >*/
+  QMI_PROTOCOL_ERROR_INVALID_MCAST_HANDLE             = 63, /*< nick=InvalidMcastHandle >*/
+  QMI_PROTOCOL_ERROR_INVALID_IP_FAMILY_PREFERENCE     = 64, /*< nick=InvalidIpFamilyPreference >*/
   QMI_PROTOCOL_ERROR_SESSION_INACTIVE                 = 65, /*< nick=SessionInactive >*/
   QMI_PROTOCOL_ERROR_SESSION_INVALID                  = 66, /*< nick=SessionInvalid >*/
   QMI_PROTOCOL_ERROR_SESSION_OWNERSHIP                = 67, /*< nick=SessionOwnership >*/
@@ -225,13 +290,13 @@ typedef enum { /*< underscore_name=qmi_protocol_error >*/
   QMI_PROTOCOL_ERROR_DISABLED                         = 69, /*< nick=Disabled >*/
   QMI_PROTOCOL_ERROR_INVALID_OPERATION                = 70, /*< nick=InvalidOperation >*/
   QMI_PROTOCOL_ERROR_INVALID_QMI_COMMAND              = 71, /*< nick=InvalidQmiCommand >*/
-  QMI_PROTOCOL_ERROR_WMS_T_PDU_TYPE                   = 72, /*< nick=Wms.TPduType >*/
-  QMI_PROTOCOL_ERROR_WMS_SMSC_ADDRESS                 = 73, /*< nick=Wms.SmscAddress >*/
+  QMI_PROTOCOL_ERROR_WMS_T_PDU_TYPE                   = 72, /*< nick=WmsTPduType >*/
+  QMI_PROTOCOL_ERROR_WMS_SMSC_ADDRESS                 = 73, /*< nick=WmsSmscAddress >*/
   QMI_PROTOCOL_ERROR_INFORMATION_UNAVAILABLE          = 74, /*< nick=InformationUnavailable >*/
   QMI_PROTOCOL_ERROR_SEGMENT_TOO_LONG                 = 75, /*< nick=SegmentTooLong >*/
   QMI_PROTOCOL_ERROR_SEGMENT_ORDER                    = 76, /*< nick=SegmentOrder >*/
   QMI_PROTOCOL_ERROR_BUNDLING_NOT_SUPPORTED           = 77, /*< nick=BundlingNotSupported >*/
-  /* 0x004E, 78: unused */
+  QMI_PROTOCOL_ERROR_OPERATION_PARTIAL_FAILURE        = 78, /*< nick=OperationPartialFailure >*/
   QMI_PROTOCOL_ERROR_POLICY_MISMATCH                  = 79, /*< nick=PolicyMismatch >*/
   QMI_PROTOCOL_ERROR_SIM_FILE_NOT_FOUND               = 80, /*< nick=SimFileNotFound >*/
   QMI_PROTOCOL_ERROR_EXTENDED_INTERNAL                = 81, /*< nick=ExtendedInternal >*/
@@ -257,14 +322,30 @@ typedef enum { /*< underscore_name=qmi_protocol_error >*/
   QMI_PROTOCOL_ERROR_PUK_RESTRICTION                  = 106, /*< nick=PukRestriction >*/
   QMI_PROTOCOL_ERROR_PUK2_RESTRICTION                 = 107, /*< nick=Puk2Restriction >*/
   QMI_PROTOCOL_ERROR_PB_ACCESS_RESTRICTED             = 108, /*< nick=PbAccessRestricted >*/
-  QMI_PROTOCOL_ERROR_PB_TEXT_TOO_LONG                 = 109, /*< nick=PbTextTooLong >*/
-  QMI_PROTOCOL_ERROR_PB_NUMBER_TOO_LONG               = 110, /*< nick=PbNumberTooLong >*/
-  QMI_PROTOCOL_ERROR_PB_HIDDEN_KEY_RESTRICTION        = 111, /*< nick=PbHiddenKeyRestriction >*/
-  QMI_PROTOCOL_ERROR_CAT_EVENT_REGISTRATION_FAILED    = 61441, /*< nick=Cat.EventRegistrationFailed >*/
-  QMI_PROTOCOL_ERROR_CAT_INVALID_TERMINAL_RESPONSE    = 61442, /*< nick=Cat.InvalidTerminalResponse >*/
-  QMI_PROTOCOL_ERROR_CAT_INVALID_ENVELOPE_COMMAND     = 61443, /*< nick=Cat.InvalidEnvelopeCommand >*/
-  QMI_PROTOCOL_ERROR_CAT_ENVELOPE_COMMAND_BUSY        = 61444, /*< nick=Cat.EnvelopCommandBusy >*/
-  QMI_PROTOCOL_ERROR_CAT_ENVELOPE_COMMAND_FAILED      = 61445  /*< nick=Cat.EnvelopeCommandFailed >*/
+  QMI_PROTOCOL_ERROR_PB_DELETE_IN_PROGRESS            = 109, /*< nick=PbDeleteInProgress >*/
+  QMI_PROTOCOL_ERROR_PB_TEXT_TOO_LONG                 = 110, /*< nick=PbTextTooLong >*/
+  QMI_PROTOCOL_ERROR_PB_NUMBER_TOO_LONG               = 111, /*< nick=PbNumberTooLong >*/
+  QMI_PROTOCOL_ERROR_PB_HIDDEN_KEY_RESTRICTION        = 112, /*< nick=PbHiddenKeyRestriction >*/
+  QMI_PROTOCOL_ERROR_PB_NOT_AVAILABLE                 = 113, /*< nick=PbNotAvailable >*/
+  QMI_PROTOCOL_ERROR_DEVICE_MEMORY_ERROR              = 114, /*< nick=DeviceMemoryError >*/
+  QMI_PROTOCOL_ERROR_NO_PERMISSION                    = 115, /*< nick=NoPermission >*/
+  QMI_PROTOCOL_ERROR_TOO_SOON                         = 116, /*< nick=TooSoon >*/
+  QMI_PROTOCOL_ERROR_TIME_NOT_ACQUIRED                = 117, /*< nick=TimeNotAcquired >*/
+  QMI_PROTOCOL_ERROR_OPERATION_IN_PROGRESS            = 118, /*< nick=OperationInProgress >*/
+  QMI_PROTOCOL_ERROR_FW_WRITE_FAILED                  = 388, /*< nick=FwWriteFailed >*/
+  QMI_PROTOCOL_ERROR_FW_INFO_READ_FAILED              = 389, /*< nick=FwInfoReadFailed >*/
+  QMI_PROTOCOL_ERROR_FW_FILE_NOT_FOUND                = 390, /*< nick=FwFileNotFound >*/
+  QMI_PROTOCOL_ERROR_FW_DIR_NOT_FOUND                 = 391, /*< nick=FwDirNotFound >*/
+  QMI_PROTOCOL_ERROR_FW_ALREADY_ACTIVATED             = 392, /*< nick=FwAlreadyActivated >*/
+  QMI_PROTOCOL_ERROR_FW_CANNOT_GENERIC_IMAGE          = 393, /*< nick=FwCannotGenericImage >*/
+  QMI_PROTOCOL_ERROR_FW_FILE_OPEN_FAILED              = 400, /*< nick=FwFileOpenFailed >*/
+  QMI_PROTOCOL_ERROR_FW_UPDATE_DISCONTINUOUS_FRAME    = 401, /*< nick=FwUpdateDiscontinuousFrame >*/
+  QMI_PROTOCOL_ERROR_FW_UPDATE_FAILED                 = 402, /*< nick=FwUpdateFailed >*/
+  QMI_PROTOCOL_ERROR_CAT_EVENT_REGISTRATION_FAILED    = 61441, /*< nick=CatEventRegistrationFailed >*/
+  QMI_PROTOCOL_ERROR_CAT_INVALID_TERMINAL_RESPONSE    = 61442, /*< nick=CatInvalidTerminalResponse >*/
+  QMI_PROTOCOL_ERROR_CAT_INVALID_ENVELOPE_COMMAND     = 61443, /*< nick=CatInvalidEnvelopeCommand >*/
+  QMI_PROTOCOL_ERROR_CAT_ENVELOPE_COMMAND_BUSY        = 61444, /*< nick=CatEnvelopeCommandBusy >*/
+  QMI_PROTOCOL_ERROR_CAT_ENVELOPE_COMMAND_FAILED      = 61445  /*< nick=CatEnvelopeCommandFailed >*/
 } QmiProtocolError;
 
 #endif /* _LIBQMI_GLIB_QMI_ERRORS_H_ */

+ 23 - 5
qmi-flags64-dms.h

@@ -17,8 +17,9 @@
  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  * Boston, MA 02110-1301 USA.
  *
- * Copyright (C) 2012 Lanedo GmbH <aleksander@lanedo.com>
+ * Copyright (C) 2012 Lanedo GmbH.
  * Copyright (C) 2012 Google, Inc.
+ * Copyright (C) 2012-2017 Aleksander Morgado <aleksander@aleksander.es>
  */
 
 #ifndef _LIBQMI_GLIB_QMI_FLAGS64_DMS_H_
@@ -71,8 +72,10 @@
  * @QMI_DMS_BAND_CAPABILITY_WCDMA_1500: WCDMA 1500 band.
  *
  * Frequency band capabilities.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_DMS_BAND_CAPABILITY_BC_0_A_SYSTEM    = 1 << 0,
     QMI_DMS_BAND_CAPABILITY_BC_0_B_SYSTEM    = 1 << 1,
     QMI_DMS_BAND_CAPABILITY_BC_1_ALL_BLOCKS  = 1 << 2,
@@ -104,7 +107,7 @@ typedef enum {
     QMI_DMS_BAND_CAPABILITY_BC_12            = 1 << 28,
     QMI_DMS_BAND_CAPABILITY_BC_14            = 1 << 29,
     /* Bit 30 reserved */
-    QMI_DMS_BAND_CAPABILITY_BC_15            = 1 << 31,
+    QMI_DMS_BAND_CAPABILITY_BC_15            = ((uint64_t) 1) << 31,
     /* Bits 32-47 reserved */
     QMI_DMS_BAND_CAPABILITY_WCDMA_2600       = ((uint64_t) 1) << 48,
     QMI_DMS_BAND_CAPABILITY_WCDMA_900        = ((uint64_t) 1) << 49,
@@ -142,6 +145,13 @@ typedef enum {
  * @QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_21: LTE EUTRAN Band 21.
  * @QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_24: LTE EUTRAN Band 24.
  * @QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_25: LTE EUTRAN Band 25.
+ * @QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_26: LTE EUTRAN Band 26.
+ * @QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_27: LTE EUTRAN Band 27.
+ * @QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_28: LTE EUTRAN Band 28.
+ * @QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_29: LTE EUTRAN Band 29.
+ * @QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_30: LTE EUTRAN Band 30.
+ * @QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_31: LTE EUTRAN Band 31.
+ * @QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_32: LTE EUTRAN Band 32.
  * @QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_33: LTE EUTRAN Band 33.
  * @QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_34: LTE EUTRAN Band 34.
  * @QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_35: LTE EUTRAN Band 35.
@@ -155,8 +165,10 @@ typedef enum {
  * @QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_43: LTE EUTRAN Band 43.
  *
  * LTE-specific Frequency bands.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_1  = 1 << 0,
     QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_2  = 1 << 1,
     QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_3  = 1 << 2,
@@ -180,7 +192,13 @@ typedef enum {
     /* Bit 21-22 reserved */
     QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_24 = 1 << 23,
     QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_25 = 1 << 24,
-    /* Bit 25-31 reserved */
+    QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_26 = 1 << 25,
+    QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_27 = 1 << 26,
+    QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_28 = 1 << 27,
+    QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_29 = 1 << 28,
+    QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_30 = 1 << 29,
+    QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_31 = 1 << 30,
+    QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_32 = ((uint64_t) 1) << 31,
     QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_33 = ((uint64_t) 1) << 32,
     QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_34 = ((uint64_t) 1) << 33,
     QMI_DMS_LTE_BAND_CAPABILITY_EUTRAN_35 = ((uint64_t) 1) << 34,

+ 28 - 6
qmi-flags64-nas.h

@@ -18,6 +18,7 @@
  * Boston, MA 02110-1301 USA.
  *
  * Copyright (C) 2012 Google Inc.
+ * Copyright (C) 2012-2017 Aleksander Morgado <aleksander@aleksander.es>
  */
 
 #ifndef _LIBQMI_GLIB_QMI_FLAGS64_NAS_H_
@@ -67,10 +68,14 @@
  * @QMI_NAS_BAND_PREFERENCE_WCDMA_2600: WCDMA 2600.
  * @QMI_NAS_BAND_PREFERENCE_WCDMA_900: WCDMA 900.
  * @QMI_NAS_BAND_PREFERENCE_WCDMA_1700_JAPAN: WCDMA 1700 (Japan).
+ * @QMI_NAS_BAND_PREFERENCE_WCDMA_850_JAPAN: WCDMA 850 (Japan). Since: 1.22.
+ * @QMI_NAS_BAND_PREFERENCE_WCDMA_1500: WCDMA 1500. Since: 1.22.
  *
  * Flags to specify frequency band preferences.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_BAND_PREFERENCE_BC_0_A_SYSTEM    = 1 << 0,
     QMI_NAS_BAND_PREFERENCE_BC_0_B_SYSTEM    = 1 << 1,
     QMI_NAS_BAND_PREFERENCE_BC_1_ALL_BLOCKS  = 1 << 2,
@@ -102,7 +107,7 @@ typedef enum {
     QMI_NAS_BAND_PREFERENCE_BC_12            = 1 << 28,
     QMI_NAS_BAND_PREFERENCE_BC_14            = 1 << 29,
     /* Bit 30 reserved */
-    QMI_NAS_BAND_PREFERENCE_BC_15            = 1 << 31,
+    QMI_NAS_BAND_PREFERENCE_BC_15            = ((uint64_t) 1) << 31,
     /* Bits 32-47 reserved */
     QMI_NAS_BAND_PREFERENCE_WCDMA_2600       = ((uint64_t) 1) << 48,
     QMI_NAS_BAND_PREFERENCE_WCDMA_900        = ((uint64_t) 1) << 49,
@@ -111,8 +116,10 @@ typedef enum {
     QMI_NAS_BAND_PREFERENCE_BC_16            = ((uint64_t) 1) << 56,
     QMI_NAS_BAND_PREFERENCE_BC_17            = ((uint64_t) 1) << 57,
     QMI_NAS_BAND_PREFERENCE_BC_18            = ((uint64_t) 1) << 58,
-    QMI_NAS_BAND_PREFERENCE_BC_19            = ((uint64_t) 1) << 59
-    /* Bits 60-63 reserved */
+    QMI_NAS_BAND_PREFERENCE_BC_19            = ((uint64_t) 1) << 59,
+    QMI_NAS_BAND_PREFERENCE_WCDMA_850_JAPAN  = ((uint64_t) 1) << 60,
+    QMI_NAS_BAND_PREFERENCE_WCDMA_1500       = ((uint64_t) 1) << 61
+    /* Bits 62-63 reserved */
 } QmiNasBandPreference;
 
 /**
@@ -138,6 +145,13 @@ typedef enum {
  * @QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_21: LTE EUTRAN Band 21.
  * @QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_24: LTE EUTRAN Band 24.
  * @QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_25: LTE EUTRAN Band 25.
+ * @QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_26: LTE EUTRAN Band 26.
+ * @QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_27: LTE EUTRAN Band 27.
+ * @QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_28: LTE EUTRAN Band 28.
+ * @QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_29: LTE EUTRAN Band 29.
+ * @QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_30: LTE EUTRAN Band 30.
+ * @QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_31: LTE EUTRAN Band 31.
+ * @QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_32: LTE EUTRAN Band 32.
  * @QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_33: LTE EUTRAN Band 33.
  * @QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_34: LTE EUTRAN Band 34.
  * @QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_35: LTE EUTRAN Band 35.
@@ -151,8 +165,10 @@ typedef enum {
  * @QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_43: LTE EUTRAN Band 43.
  *
  * Flags to specify LTE-specific frequency band preferences.
+ *
+ * Since: 1.0
  */
-typedef enum {
+typedef enum { /*< since=1.0 >*/
     QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_1  = 1 << 0,
     QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_2  = 1 << 1,
     QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_3  = 1 << 2,
@@ -176,7 +192,13 @@ typedef enum {
     /* Bit 21-22 reserved */
     QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_24 = 1 << 23,
     QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_25 = 1 << 24,
-    /* Bit 25-31 reserved */
+    QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_26 = 1 << 25,
+    QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_27 = 1 << 26,
+    QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_28 = 1 << 27,
+    QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_29 = 1 << 28,
+    QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_30 = 1 << 29,
+    QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_31 = 1 << 30,
+    QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_32 = ((uint64_t) 1) << 31,
     QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_33 = ((uint64_t) 1) << 32,
     QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_34 = ((uint64_t) 1) << 33,
     QMI_NAS_LTE_BAND_PREFERENCE_EUTRAN_35 = ((uint64_t) 1) << 34,

Some files were not shown because too many files changed in this diff