diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2012-06-24 22:24:56 -0700 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2012-06-24 22:24:56 -0700 |
commit | 74d208768ae462ec9946a58c4977b031771c0b95 (patch) | |
tree | dc2de20c89b20e96b418b97ead1c3a87765cf0af | |
parent | 797f3a502e3c83e421f076700ab878a2715069db (diff) | |
download | ofono-74d208768ae462ec9946a58c4977b031771c0b95.tar.bz2 |
qmimodem: Add helper function for accessing 64-bit integers
-rw-r--r-- | drivers/qmimodem/qmi.c | 22 | ||||
-rw-r--r-- | drivers/qmimodem/qmi.h | 2 |
2 files changed, 24 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; diff --git a/drivers/qmimodem/qmi.h b/drivers/qmimodem/qmi.h index 0bfba93d..f8f18b94 100644 --- a/drivers/qmimodem/qmi.h +++ b/drivers/qmimodem/qmi.h @@ -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; |