summaryrefslogtreecommitdiffstats
path: root/drivers/qmimodem/qmi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/qmimodem/qmi.c')
-rw-r--r--drivers/qmimodem/qmi.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/qmimodem/qmi.c b/drivers/qmimodem/qmi.c
index b08321d3..378da80f 100644
--- a/drivers/qmimodem/qmi.c
+++ b/drivers/qmimodem/qmi.c
@@ -1320,6 +1320,28 @@ bool qmi_result_get_uint32(struct qmi_result *result, uint8_t type,
return true;
}
+bool qmi_result_get_uint64(struct qmi_result *result, uint8_t type,
+ uint64_t *value)
+{
+ const unsigned char *ptr;
+ uint16_t len;
+ uint64_t tmp;
+
+ if (!result || !type)
+ return false;
+
+ ptr = tlv_get(result->data, result->length, type, &len);
+ if (!ptr)
+ return false;
+
+ memcpy(&tmp, ptr, 8);
+
+ if (value)
+ *value = GUINT64_FROM_LE(tmp);
+
+ return true;
+}
+
struct service_create_data {
struct qmi_device *device;
uint8_t type;