diff options
Diffstat (limited to 'drivers/qmimodem/qmi.c')
-rw-r--r-- | drivers/qmimodem/qmi.c | 22 |
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; |