1d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam/* Copyright (c) 2015, The Linux Foundation. All rights reserved.
2d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam *
3d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam * Redistribution and use in source and binary forms, with or without
4d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam * modification, are permitted provided that the following conditions
5d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam * are met:
6d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam *  * Redistributions of source code must retain the above copyright
7d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam *    notice, this list of conditions and the following disclaimer.
8d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam *  * Redistributions in binary form must reproduce the above
9d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam *    copyright notice, this list of conditions and the following
10d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam *    disclaimer in the documentation and/or other materials provided
11d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam *    with the distribution.
12d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam *  * Neither the name of The Linux Foundation nor the names of its
13d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam *    contributors may be used to endorse or promote products derived
14d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam *    from this software without specific prior written permission.
15d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam *
16d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
17d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
19d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
20d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
23d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
25d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
26d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam */
28d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam
29d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam#ifndef __WIFI_HAL_WIFILOGGER_VENDOR_EVENTS_H__
30d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam#define __WIFI_HAL_WIFILOGGER_VENDOR_EVENTS_H__
31d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam
32d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam#include "common.h"
33d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam
34d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyamtypedef struct {
35d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u8 Tsniff;
36d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u8 attempts;
37d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam} bt_coex_hid_vendor_data_t;
38d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam
39d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyamtypedef struct {
40d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u32 timer_tick;
41d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u32 scheduled_bucket_mask;
42d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u32 scan_cycle_count;
43d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam} __attribute__((packed)) ext_scan_cycle_vendor_data_t;
44d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam
45d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyamtypedef struct {
46d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u32 table_type;
47d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u32 entries_in_use;
48d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u32 maximum_entries;
49d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u32 scan_count_after_getResults;
50d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u8 threshold_num_scans;
51d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam} __attribute__((packed)) ext_scan_results_available_vendor_data_t;
52d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam
53d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyamtypedef struct {
54d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u32 roam_scan_flags;
55d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u32 cur_rssi;
56d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u16 scan_params[18];
57d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u16 scan_channels[40]; // first 40 channels only
58d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam} __attribute__((packed)) roam_scan_started_vendor_data_t;
59d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam
60d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyamtypedef struct {
61d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u32 reason;
62d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u32 completion_flags;
63d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u32 num_candidate;
64d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u32 flags;
65d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam} __attribute__((packed)) roam_scan_complete_vendor_data_t;
66d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam
67d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyamtypedef struct {
68d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u8 ssid[33];
69d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u8 auth_mode;
70d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u8 ucast_cipher;
71d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u8 mcast_cipher;
72d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam} __attribute__((packed)) roam_candidate_found_vendor_data_t;
73d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam
74d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyamtypedef struct {
75d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u32 flags;
76d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u32 roam_scan_config[8];
77d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam} __attribute__((packed)) roam_scan_config_vendor_data_t;
78d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam
79d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyamtypedef struct {
80d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u8 scan_type;
81d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u8 scan_bitmap;
82d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam} __attribute__((packed)) bt_coex_bt_scan_start_vendor_data_t;
83d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam
84d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyamtypedef struct {
85d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u8 scan_type;
86d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u8 scan_bitmap;
87d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam} __attribute__((packed)) bt_coex_bt_scan_stop_vendor_data_t;
88d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam
89d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyamtypedef struct {
90d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u16 sme_state;
91d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u16 mlm_state;
92d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam} __attribute__((packed)) pe_event_vendor_data_t;
93d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam
94d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyamtypedef enum {
95d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    ADDBA_SUCCESS = 0,
96d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    ADDBA_FAILURE = -1,
97d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam} addba_status_t;
98d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam
99d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyamtypedef struct {
100d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u8 ucBaTid;
101d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u8 ucBaBufferSize;
102d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u16 ucBaSSN;
103d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u8 fInitiator;
104d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam} __attribute__((packed)) addba_success_vendor_data_t;
105d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam
106d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyamtypedef struct {
107d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u8 ucBaTid;
108d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam    u8 fInitiator;
109d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam} __attribute__((packed)) addba_failed_vendor_data_t;
110d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam
111d405594245a93a08025d2ef8d76c9e459ba5657fAmarnath Hullur Subramanyamtypedef struct {
112d405594245a93a08025d2ef8d76c9e459ba5657fAmarnath Hullur Subramanyam    u32 hotlist_mon_table_id;
113d405594245a93a08025d2ef8d76c9e459ba5657fAmarnath Hullur Subramanyam    u32 wlan_hotlist_entry_size;
114d405594245a93a08025d2ef8d76c9e459ba5657fAmarnath Hullur Subramanyam    u32 cache_cap_table_id;
115d405594245a93a08025d2ef8d76c9e459ba5657fAmarnath Hullur Subramanyam    u32 max_scan_cache_entries;
116d405594245a93a08025d2ef8d76c9e459ba5657fAmarnath Hullur Subramanyam    u32 requestor_id;
117d405594245a93a08025d2ef8d76c9e459ba5657fAmarnath Hullur Subramanyam    u32 vdev_id;
118d405594245a93a08025d2ef8d76c9e459ba5657fAmarnath Hullur Subramanyam    u32 num_extscan_cache_tables;
119d405594245a93a08025d2ef8d76c9e459ba5657fAmarnath Hullur Subramanyam    u32 num_wlan_change_monitor_tables;
120d405594245a93a08025d2ef8d76c9e459ba5657fAmarnath Hullur Subramanyam    u32 num_hotlist_monitor_tables;
121d405594245a93a08025d2ef8d76c9e459ba5657fAmarnath Hullur Subramanyam    u32 rtt_one_sided_supported;
122d405594245a93a08025d2ef8d76c9e459ba5657fAmarnath Hullur Subramanyam    u32 rtt_11v_supported;
123d405594245a93a08025d2ef8d76c9e459ba5657fAmarnath Hullur Subramanyam    u32 rtt_ftm_supported;
124d405594245a93a08025d2ef8d76c9e459ba5657fAmarnath Hullur Subramanyam    u32 num_extscan_cache_capabilities;
125d405594245a93a08025d2ef8d76c9e459ba5657fAmarnath Hullur Subramanyam    u32 num_extscan_wlan_change_capabilities;
126d405594245a93a08025d2ef8d76c9e459ba5657fAmarnath Hullur Subramanyam    u32 num_extscan_hotlist_capabilities;
127d405594245a93a08025d2ef8d76c9e459ba5657fAmarnath Hullur Subramanyam    u32 num_roam_bssid_blacklist;
128d405594245a93a08025d2ef8d76c9e459ba5657fAmarnath Hullur Subramanyam    u32 num_roam_bssid_preferred_list;
129d405594245a93a08025d2ef8d76c9e459ba5657fAmarnath Hullur Subramanyam} __attribute__((packed)) gscan_capabilities_vendor_data_t;
13088cbe6ae7236cae11e2a66a4a5115ecd8545f811Subhani Shaik
13188cbe6ae7236cae11e2a66a4a5115ecd8545f811Subhani Shaiktypedef struct
13288cbe6ae7236cae11e2a66a4a5115ecd8545f811Subhani Shaik{
13388cbe6ae7236cae11e2a66a4a5115ecd8545f811Subhani Shaik    resource_failure_type event_sub_type;
13488cbe6ae7236cae11e2a66a4a5115ecd8545f811Subhani Shaik} __attribute__((packed)) resource_failure_vendor_data_t;
135d3ebf0d2f640807b4245ea6546adc4983859a5e3Amarnath Hullur Subramanyam#endif /* __WIFI_HAL_WIFILOGGER_VENDOR_EVENTS_H__ */
136