From 76689b81d406372b12b6b55f4534a132499a1637 Mon Sep 17 00:00:00 2001 From: Jonas Bonn Date: Thu, 7 Sep 2017 14:11:35 +0200 Subject: [PATCH] qmi: add helper to get int16_t result --- drivers/qmimodem/qmi.c | 21 +++++++++++++++++++++ drivers/qmimodem/qmi.h | 2 ++ 2 files changed, 23 insertions(+) diff --git a/drivers/qmimodem/qmi.c b/drivers/qmimodem/qmi.c index 17c6a6f3..c538cb97 100644 --- a/drivers/qmimodem/qmi.c +++ b/drivers/qmimodem/qmi.c @@ -1720,6 +1720,27 @@ bool qmi_result_get_uint8(struct qmi_result *result, uint8_t type, return true; } +bool qmi_result_get_int16(struct qmi_result *result, uint8_t type, + int16_t *value) +{ + const unsigned char *ptr; + uint16_t len, tmp; + + if (!result || !type) + return false; + + ptr = tlv_get(result->data, result->length, type, &len); + if (!ptr) + return false; + + memcpy(&tmp, ptr, 2); + + if (value) + *value = GINT16_FROM_LE(tmp); + + return true; +} + bool qmi_result_get_uint16(struct qmi_result *result, uint8_t type, uint16_t *value) { diff --git a/drivers/qmimodem/qmi.h b/drivers/qmimodem/qmi.h index bfe8e6b5..b4955b40 100644 --- a/drivers/qmimodem/qmi.h +++ b/drivers/qmimodem/qmi.h @@ -130,6 +130,8 @@ const void *qmi_result_get(struct qmi_result *result, uint8_t type, char *qmi_result_get_string(struct qmi_result *result, uint8_t type); bool qmi_result_get_uint8(struct qmi_result *result, uint8_t type, uint8_t *value); +bool qmi_result_get_int16(struct qmi_result *result, uint8_t type, + int16_t *value); 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,