summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authoreccopark@broadcom.com <eccopark@broadcom.com>2015-03-25 17:21:26 -0700
committereccopark@broadcom.com <eccopark@broadcom.com>2015-03-27 10:55:38 -0700
commit3fabb28c4b19ea110aee0fde881c7dc315980b16 (patch)
tree30e3ae23ca9cb189a533ba28493b7f13256c0202 /include
parent3e778d3b8acf9ec3ce76d32255ae2b1aec3ac7d1 (diff)
downloadhardware_libhardware_legacy-3fabb28c4b19ea110aee0fde881c7dc315980b16.zip
hardware_libhardware_legacy-3fabb28c4b19ea110aee0fde881c7dc315980b16.tar.gz
hardware_libhardware_legacy-3fabb28c4b19ea110aee0fde881c7dc315980b16.tar.bz2
net: wireless change the header of Logger
1) add the request_id in wifi_get_logger_supported_feature_set 2) Change the wifi_get_firmware_memory_dump API 1) Normally the size of firmware dump is 700KB. Thus, Driver cannot send the data in one time because of limitation of skb length. In order to send such big data from kernel Driver, we need to send data using event continuously until we send the memory dump completely. In the event handler of hal, it will allocate the big buffer to store the data. Once event handler copy the data completely, event handler will call the function callback(on_firmware_memory_dump). So, upper layer has to free the buffer after handling the buffer. Change-Id: If80b03ec8bd9349d952743e17a001c04096aac95 Signed-off-by: eccopark@broadcom.com <eccopark@broadcom.com>
Diffstat (limited to 'include')
-rw-r--r--include/hardware_legacy/wifi_logger.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/include/hardware_legacy/wifi_logger.h b/include/hardware_legacy/wifi_logger.h
index daa099e..fb4edbb 100644
--- a/include/hardware_legacy/wifi_logger.h
+++ b/include/hardware_legacy/wifi_logger.h
@@ -195,7 +195,7 @@ enum {
};
typedef struct {
- u16 entry_size; // the size of payload excluding the header.
+ u16 entry_size; // the size of payload excluding the header.
u8 flags;
u8 type; // Entry type
u64 timestamp; //present if has_timestamp bit is set.
@@ -272,9 +272,15 @@ wifi_error wifi_start_logging(wifi_request_id id, wifi_interface_handle iface, u
wifi_error wifi_get_ring_buffers_status(wifi_request_id id,
wifi_interface_handle iface, u32 *num_rings, wifi_ring_buffer_status **status);
+/* Upper layer has to free the memory indicated by buffer pointer */
+typedef struct {
+ void (*on_firmware_memory_dump) (wifi_request_id id, char *buffer, int buffer_size);
+} wifi_firmware_memory_dump_handler;
+
+
/* api to collect a firmware memory dump for a given iface */
wifi_error wifi_get_firmware_memory_dump(wifi_request_id id,
- wifi_interface_handle iface, char **buffer, int *buffer_size);
+ wifi_interface_handle iface, wifi_firmware_memory_dump_handler handler);
/* api to collect a firmware version string */
wifi_error wifi_get_firmware_version(wifi_request_id id,
@@ -295,7 +301,7 @@ enum {
WIFI_LOGGER_VERBOSE_SUPPORTED = (1 << (5)), // verbose log of FW
WIFI_LOGGER_WATCHDOG_TIMER_SUPPORTED = (1 << (6)) // monitor the health of FW
};
-wifi_error wifi_get_logger_supported_feature_set(wifi_interface_handle handle, unsigned int *support);
+wifi_error wifi_get_logger_supported_feature_set(wifi_request_id id, wifi_interface_handle iface, unsigned int *support);
#ifdef __cplusplus