From 6485522c9166c2e9b528e4da7af407043063b32b Mon Sep 17 00:00:00 2001 From: Jonas Bonn Date: Tue, 3 Apr 2018 16:50:55 +0200 Subject: [PATCH] qmi: make version_list private --- drivers/qmimodem/qmi.c | 47 +++++++++++++++++++++++++++++++++++++++--- drivers/qmimodem/qmi.h | 14 +++++-------- 2 files changed, 49 insertions(+), 12 deletions(-) diff --git a/drivers/qmimodem/qmi.c b/drivers/qmimodem/qmi.c index c2131130..0acd1170 100644 --- a/drivers/qmimodem/qmi.c +++ b/drivers/qmimodem/qmi.c @@ -47,6 +47,13 @@ struct discovery { qmi_destroy_func_t destroy; }; +struct qmi_version { + uint8_t type; + uint16_t major; + uint16_t minor; + const char *name; +}; + struct qmi_device { int ref_count; int fd; @@ -1102,6 +1109,41 @@ static const void *tlv_get(const void *data, uint16_t size, return NULL; } +bool qmi_device_get_service_version(struct qmi_device *device, uint8_t type, + uint16_t *major, uint16_t *minor) +{ + struct qmi_version *info; + int i; + + for (i = 0, info = device->version_list; + i < device->version_count; + i++, info++) { + if (info->type == type) { + *major = info->major; + *minor = info->minor; + return true; + } + } + + return false; +} + +bool qmi_device_has_service(struct qmi_device *device, uint8_t type) +{ + struct qmi_version *info; + int i; + + for (i = 0, info = device->version_list; + i < device->version_count; + i++, info++) { + if (info->type == type) { + return true; + } + } + + return false; +} + struct discover_data { struct discovery super; struct qmi_device *device; @@ -1201,7 +1243,7 @@ done: device->version_count = count; if (data->func) - data->func(count, list, data->user_data); + data->func(data->user_data); __qmi_device_discovery_complete(data->device, &data->super); } @@ -1237,8 +1279,7 @@ static gboolean discover_reply(gpointer user_data) } if (data->func) - data->func(device->version_count, - device->version_list, data->user_data); + data->func(data->user_data); __qmi_device_discovery_complete(data->device, &data->super); __request_free(req, NULL); diff --git a/drivers/qmimodem/qmi.h b/drivers/qmimodem/qmi.h index e1801045..2665c441 100644 --- a/drivers/qmimodem/qmi.h +++ b/drivers/qmimodem/qmi.h @@ -61,13 +61,6 @@ enum qmi_device_expected_data_format { QMI_DEVICE_EXPECTED_DATA_FORMAT_RAW_IP, }; -struct qmi_version { - uint8_t type; - uint16_t major; - uint16_t minor; - const char *name; -}; - void qmi_free(void *ptr); typedef void (*qmi_destroy_func_t)(void *user_data); @@ -78,8 +71,7 @@ struct qmi_device; typedef void (*qmi_debug_func_t)(const char *str, void *user_data); typedef void (*qmi_sync_func_t)(void *user_data); typedef void (*qmi_shutdown_func_t)(void *user_data); -typedef void (*qmi_discover_func_t)(uint8_t count, - const struct qmi_version *list, void *user_data); +typedef void (*qmi_discover_func_t)(void *user_data); struct qmi_device *qmi_device_new(int fd); @@ -96,6 +88,10 @@ bool qmi_device_discover(struct qmi_device *device, qmi_discover_func_t func, bool qmi_device_shutdown(struct qmi_device *device, qmi_shutdown_func_t func, void *user_data, qmi_destroy_func_t destroy); +bool qmi_device_has_service(struct qmi_device *device, uint8_t type); +bool qmi_device_get_service_version(struct qmi_device *device, uint8_t type, + uint16_t *major, uint16_t *minor); + bool qmi_device_sync(struct qmi_device *device, qmi_sync_func_t func, void *user_data); bool qmi_device_is_sync_supported(struct qmi_device *device);