qmimodem: Add helper function for accessing 64-bit integers
authorMarcel Holtmann <marcel@holtmann.org>
Mon, 25 Jun 2012 05:24:56 +0000 (22:24 -0700)
committerMarcel Holtmann <marcel@holtmann.org>
Mon, 25 Jun 2012 05:24:56 +0000 (22:24 -0700)
drivers/qmimodem/qmi.c
drivers/qmimodem/qmi.h

index b08321d..378da80 100644 (file)
@@ -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;
index 0bfba93..f8f18b9 100644 (file)
@@ -114,6 +114,8 @@ bool qmi_result_get_uint16(struct qmi_result *result, uint8_t type,
                                                        uint16_t *value);
 bool qmi_result_get_uint32(struct qmi_result *result, uint8_t type,
                                                        uint32_t *value);
+bool qmi_result_get_uint64(struct qmi_result *result, uint8_t type,
+                                                       uint64_t *value);
 
 
 struct qmi_service;