1ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley/*
2ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley * Copyright (C) 2016 The Android Open Source Project
3ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley *
4ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley * Licensed under the Apache License, Version 2.0 (the "License");
5ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley * you may not use this file except in compliance with the License.
6ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley * You may obtain a copy of the License at
7ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley *
8ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley *      http://www.apache.org/licenses/LICENSE-2.0
9ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley *
10ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley * Unless required by applicable law or agreed to in writing, software
11ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley * distributed under the License is distributed on an "AS IS" BASIS,
12ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley * See the License for the specific language governing permissions and
14ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley * limitations under the License.
15ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley */
16ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
1722a6563da9439798fa2a3bcbcd6e5ff16945afa8Roshan Pius#include "wifi_hal/hal_tool.h"
18ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
1904d8e4e828b70f0178f90e5816f4dfbadbb7d988Christopher Wiley#include <android-base/logging.h>
20ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
21ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileynamespace android {
22ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileynamespace wifi_system {
23ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileynamespace {
24ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
25ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_initialize_stub(wifi_handle* handle) {
26ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
27ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
28ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
2971cc6e23470b43ded78950a6eefda312ca4b17cdAhmed ElArabawywifi_error wifi_wait_for_driver_ready_stub(void) {
3071cc6e23470b43ded78950a6eefda312ca4b17cdAhmed ElArabawy  return WIFI_ERROR_NOT_SUPPORTED;
3171cc6e23470b43ded78950a6eefda312ca4b17cdAhmed ElArabawy}
3271cc6e23470b43ded78950a6eefda312ca4b17cdAhmed ElArabawy
33ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileyvoid wifi_cleanup_stub(wifi_handle handle, wifi_cleaned_up_handler handler) {}
34ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
35ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileyvoid wifi_event_loop_stub(wifi_handle handle) {}
36ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
37ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileyvoid wifi_get_error_info_stub(wifi_error err, const char** msg) { *msg = NULL; }
38ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
39ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_get_supported_feature_set_stub(wifi_interface_handle handle,
40ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                               feature_set* set) {
41ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_UNINITIALIZED;
42ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
43ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
44ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_get_concurrency_matrix_stub(wifi_interface_handle handle,
45ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                            int max_size, feature_set* matrix,
46ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                            int* size) {
47ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_UNINITIALIZED;
48ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
49ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
50ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_set_scanning_mac_oui_stub(wifi_interface_handle handle,
51ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                          unsigned char* oui_data) {
52ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_UNINITIALIZED;
53ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
54ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
55ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley/* List of all supported channels, including 5GHz channels */
56ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_get_supported_channels_stub(wifi_handle handle, int* size,
57ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                            wifi_channel* list) {
58ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_UNINITIALIZED;
59ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
60ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
61ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley/* Enhanced power reporting */
62ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_is_epr_supported_stub(wifi_handle handle) {
63ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_UNINITIALIZED;
64ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
65ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
66ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley/* multiple interface support */
67ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_get_ifaces_stub(wifi_handle handle, int* num_ifaces,
68ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                wifi_interface_handle** ifaces) {
69ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_UNINITIALIZED;
70ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
71ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
72ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_get_iface_name_stub(wifi_interface_handle iface, char* name,
73ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                    size_t size) {
74ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_UNINITIALIZED;
75ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
76ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
77ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_set_iface_event_handler_stub(wifi_request_id id,
78ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                             wifi_interface_handle iface,
79ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                             wifi_event_handler eh) {
80ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_UNINITIALIZED;
81ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
82ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
83ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_reset_iface_event_handler_stub(wifi_request_id id,
84ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                               wifi_interface_handle iface) {
85ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_UNINITIALIZED;
86ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
87ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
88ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_start_gscan_stub(wifi_request_id id,
89ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                 wifi_interface_handle iface,
90ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                 wifi_scan_cmd_params params,
91ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                 wifi_scan_result_handler handler) {
92ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_UNINITIALIZED;
93ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
94ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
95ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_stop_gscan_stub(wifi_request_id id,
96ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                wifi_interface_handle iface) {
97ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_UNINITIALIZED;
98ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
99ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
100ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_get_cached_gscan_results_stub(wifi_interface_handle iface,
101ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                              byte flush, int max,
102ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                              wifi_cached_scan_results* results,
103ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                              int* num) {
104ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_UNINITIALIZED;
105ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
106ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
107ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_set_bssid_hotlist_stub(wifi_request_id id,
108ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                       wifi_interface_handle iface,
109ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                       wifi_bssid_hotlist_params params,
110ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                       wifi_hotlist_ap_found_handler handler) {
111ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_UNINITIALIZED;
112ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
113ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
114ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_reset_bssid_hotlist_stub(wifi_request_id id,
115ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                         wifi_interface_handle iface) {
116ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_UNINITIALIZED;
117ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
118ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
119ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_set_significant_change_handler_stub(
120ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    wifi_request_id id, wifi_interface_handle iface,
121ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    wifi_significant_change_params params,
122ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    wifi_significant_change_handler handler) {
123ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_UNINITIALIZED;
124ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
125ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
126ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_reset_significant_change_handler_stub(
127ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    wifi_request_id id, wifi_interface_handle iface) {
128ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_UNINITIALIZED;
129ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
130ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
131ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_get_gscan_capabilities_stub(
132ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    wifi_interface_handle handle, wifi_gscan_capabilities* capabilities) {
133ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_UNINITIALIZED;
134ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
135ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
136ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_set_link_stats_stub(wifi_interface_handle iface,
137ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                    wifi_link_layer_params params) {
138ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_UNINITIALIZED;
139ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
140ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
141ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_get_link_stats_stub(wifi_request_id id,
142ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                    wifi_interface_handle iface,
143ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                    wifi_stats_result_handler handler) {
144ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_UNINITIALIZED;
145ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
146ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
147ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_clear_link_stats_stub(wifi_interface_handle iface,
148ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                      u32 stats_clear_req_mask,
149ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                      u32* stats_clear_rsp_mask, u8 stop_req,
150ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                      u8* stop_rsp) {
151ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_UNINITIALIZED;
152ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
153ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
154ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_get_valid_channels_stub(wifi_interface_handle handle, int band,
155ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                        int max_channels,
156ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                        wifi_channel* channels,
157ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                        int* num_channels) {
158ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_UNINITIALIZED;
159ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
160ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
161ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley/* API to request RTT measurement */
162ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_rtt_range_request_stub(wifi_request_id id,
163ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                       wifi_interface_handle iface,
164ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                       unsigned num_rtt_config,
165ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                       wifi_rtt_config rtt_config[],
166ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                       wifi_rtt_event_handler handler) {
167ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
168ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
169ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
170ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley/* API to cancel RTT measurements */
171ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_rtt_range_cancel_stub(wifi_request_id id,
172ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                      wifi_interface_handle iface,
173ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                      unsigned num_devices, mac_addr addr[]) {
174ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
175ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
176ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
177ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley/* API to get RTT capability */
178ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_get_rtt_capabilities_stub(wifi_interface_handle iface,
179ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                          wifi_rtt_capabilities* capabilities) {
180ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
181ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
182ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
183ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley/* API to enable RTT responder role */
184ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_enable_responder_stub(wifi_request_id id,
185ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                      wifi_interface_handle iface,
186ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                      wifi_channel_info channel_hint,
187ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                      unsigned max_duration_seconds,
188ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                      wifi_channel_info* channel_used) {
189ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
190ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
191ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
192ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley/* API to disable RTT responder role */
193ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_disable_responder_stub(wifi_request_id id,
194ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                       wifi_interface_handle iface) {
195ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
196ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
197ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
198ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley/* API to get available channel for RTT responder role */
199ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_rtt_get_available_channel_stub(wifi_interface_handle iface,
200ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                               wifi_channel_info* channel) {
201ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
202ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
203ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
204ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_set_nodfs_flag_stub(wifi_interface_handle iface, u32 nodfs) {
205ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
206ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
207ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
208ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_start_logging_stub(wifi_interface_handle iface,
209ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                   u32 verbose_level, u32 flags,
210ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                   u32 max_interval_sec, u32 min_data_size,
211ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                   char* buffer_name) {
212ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
213ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
214ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
215ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_set_epno_list_stub(int id, wifi_interface_info* iface,
216ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                   const wifi_epno_params* params,
217ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                   wifi_epno_handler handler) {
218ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
219ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
220ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
221ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_reset_epno_list_stub(int id, wifi_interface_info* iface) {
222ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
223ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
224ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
225ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_set_country_code_stub(wifi_interface_handle iface,
226ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                      const char* code) {
227ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
228ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
229ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
230ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_get_firmware_memory_dump_stub(
231ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    wifi_interface_handle iface, wifi_firmware_memory_dump_handler handler) {
232ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
233ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
234ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
235ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_set_log_handler_stub(wifi_request_id id,
236ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                     wifi_interface_handle iface,
237ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                     wifi_ring_buffer_data_handler handler) {
238ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
239ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
240ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
241ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_reset_log_handler_stub(wifi_request_id id,
242ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                       wifi_interface_handle iface) {
243ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
244ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
245ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
246ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_set_alert_handler_stub(wifi_request_id id,
247ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                       wifi_interface_handle iface,
248ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                       wifi_alert_handler handler) {
249ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
250ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
251ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
252ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_reset_alert_handler_stub(wifi_request_id id,
253ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                         wifi_interface_handle iface) {
254ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
255ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
256ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
257ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_get_firmware_version_stub(wifi_interface_handle iface,
258ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                          char* buffer, int buffer_size) {
259ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
260ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
261ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
262ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_get_ring_buffers_status_stub(wifi_interface_handle iface,
263ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                             u32* num_rings,
264ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                             wifi_ring_buffer_status* status) {
265ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
266ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
267ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
268ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_get_logger_supported_feature_set_stub(
269ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    wifi_interface_handle iface, unsigned int* support) {
270ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
271ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
272ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
273ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_get_ring_data_stub(wifi_interface_handle iface,
274ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                   char* ring_name) {
275ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
276ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
277ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
278ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_get_driver_version_stub(wifi_interface_handle iface,
279ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                        char* buffer, int buffer_size) {
280ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
281ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
282ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
283ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_enable_tdls_stub(wifi_interface_handle iface, mac_addr addr,
284ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                 wifi_tdls_params* params,
285ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                 wifi_tdls_handler handler) {
286ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
287ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
288ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
289ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_disable_tdls_stub(wifi_interface_handle iface, mac_addr addr) {
290ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
291ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
292ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
293ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_get_tdls_status_stub(wifi_interface_handle iface, mac_addr addr,
294ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                     wifi_tdls_status* status) {
295ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
296ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
297ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
298ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_get_tdls_capabilities_stub(
299ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    wifi_interface_handle iface, wifi_tdls_capabilities* capabilities) {
300ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
301ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
302ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
303ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_start_sending_offloaded_packet_stub(
304ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    wifi_request_id id, wifi_interface_handle iface, u8* ip_packet,
305ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    u16 ip_packet_len, u8* src_mac_addr, u8* dst_mac_addr, u32 period_msec) {
306ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
307ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
308ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
309ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_stop_sending_offloaded_packet_stub(
310ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    wifi_request_id id, wifi_interface_handle iface) {
311ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
312ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
313ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
314ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_get_wake_reason_stats_stub(
315ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    wifi_interface_handle iface,
316ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    WLAN_DRIVER_WAKE_REASON_CNT* wifi_wake_reason_cnt) {
317ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
318ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
319ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
320ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_configure_nd_offload_stub(wifi_interface_handle iface,
321ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                          u8 enable) {
322ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
323ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
324ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
325ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_get_driver_memory_dump_stub(
326ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    wifi_interface_handle iface, wifi_driver_memory_dump_callbacks callbacks) {
327ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
328ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
329ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
330ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_start_pkt_fate_monitoring_stub(wifi_interface_handle iface) {
331ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
332ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
333ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
334ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_get_tx_pkt_fates_stub(wifi_interface_handle handle,
335ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                      wifi_tx_report* tx_report_bufs,
336ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                      size_t n_requested_fates,
337ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                      size_t* n_provided_fates) {
338ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
339ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
340ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
341ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_get_rx_pkt_fates_stub(wifi_interface_handle handle,
342ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                      wifi_rx_report* rx_report_bufs,
343ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                      size_t n_requested_fates,
344ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                      size_t* n_provided_fates) {
345ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
346ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
347ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_nan_enable_request_stub(transaction_id id,
348ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                        wifi_interface_handle iface,
349ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                        NanEnableRequest* msg) {
350ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
351ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
352ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
353ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_nan_disable_request_stub(transaction_id id,
354ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                         wifi_interface_handle iface) {
355ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
356ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
357ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
358ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_nan_publish_request_stub(transaction_id id,
359ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                         wifi_interface_handle iface,
360ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                         NanPublishRequest* msg) {
361ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
362ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
363ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
364ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_nan_publish_cancel_request_stub(transaction_id id,
365ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                                wifi_interface_handle iface,
366ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                                NanPublishCancelRequest* msg) {
367ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
368ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
369ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
370ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_nan_subscribe_request_stub(transaction_id id,
371ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                           wifi_interface_handle iface,
372ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                           NanSubscribeRequest* msg) {
373ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
374ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
375ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
376ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_nan_subscribe_cancel_request_stub(
377ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    transaction_id id, wifi_interface_handle iface,
378ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    NanSubscribeCancelRequest* msg) {
379ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
380ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
381ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
382ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_nan_transmit_followup_request_stub(
383ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    transaction_id id, wifi_interface_handle iface,
384ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    NanTransmitFollowupRequest* msg) {
385ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
386ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
387ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
388ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_nan_stats_request_stub(transaction_id id,
389ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                       wifi_interface_handle iface,
390ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                       NanStatsRequest* msg) {
391ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
392ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
393ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
394ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_nan_config_request_stub(transaction_id id,
395ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                        wifi_interface_handle iface,
396ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                        NanConfigRequest* msg) {
397ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
398ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
399ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
400ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_nan_tca_request_stub(transaction_id id,
401ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                     wifi_interface_handle iface,
402ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                     NanTCARequest* msg) {
403ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
404ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
405ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
406ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_nan_beacon_sdf_payload_request_stub(
407ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    transaction_id id, wifi_interface_handle iface,
408ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    NanBeaconSdfPayloadRequest* msg) {
409ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
410ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
411ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
412ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_nan_register_handler_stub(wifi_interface_handle iface,
413ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                          NanCallbackHandler handlers) {
414ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
415ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
416ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
417ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_nan_get_version_stub(wifi_handle handle, NanVersion* version) {
418ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
419ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
420ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
421ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_nan_get_capabilities_stub(transaction_id id,
422ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                          wifi_interface_handle iface) {
423ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
424ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
425ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
426ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_nan_data_interface_create_stub(transaction_id id,
427ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                               wifi_interface_handle iface,
428ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                               char* iface_name) {
429ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
430ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
431ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
432ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_nan_data_interface_delete_stub(transaction_id id,
433ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                               wifi_interface_handle iface,
434ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                               char* iface_name) {
435ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
436ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
437ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
438ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_nan_data_request_initiator_stub(
439ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    transaction_id id, wifi_interface_handle iface,
440ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    NanDataPathInitiatorRequest* msg) {
441ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
442ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
443ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
444ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_nan_data_indication_response_stub(
445ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    transaction_id id, wifi_interface_handle iface,
446ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    NanDataPathIndicationResponse* msg) {
447ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
448ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
449ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
450ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_nan_data_end_stub(transaction_id id,
451ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                  wifi_interface_handle iface,
452ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                  NanDataPathEndRequest* msg) {
453ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
454ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
455ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
456ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_get_packet_filter_capabilities_stub(
457ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    wifi_interface_handle handle, u32* version, u32* max_len) {
458ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
459ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
460ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
461ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileywifi_error wifi_set_packet_filter_stub(wifi_interface_handle handle,
462ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley                                       const u8* program, u32 len) {
463ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return WIFI_ERROR_NOT_SUPPORTED;
464ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
465ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
466ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wileybool init_wifi_stub_hal_func_table(wifi_hal_fn* hal_fn) {
467ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  if (hal_fn == NULL) {
468ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    return false;
469ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  }
470ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_initialize = wifi_initialize_stub;
47171cc6e23470b43ded78950a6eefda312ca4b17cdAhmed ElArabawy  hal_fn->wifi_wait_for_driver_ready = wifi_wait_for_driver_ready_stub;
472ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_cleanup = wifi_cleanup_stub;
473ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_event_loop = wifi_event_loop_stub;
474ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_get_error_info = wifi_get_error_info_stub;
475ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_get_supported_feature_set = wifi_get_supported_feature_set_stub;
476ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_get_concurrency_matrix = wifi_get_concurrency_matrix_stub;
477ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_set_scanning_mac_oui = wifi_set_scanning_mac_oui_stub;
478ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_get_supported_channels = wifi_get_supported_channels_stub;
479ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_is_epr_supported = wifi_is_epr_supported_stub;
480ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_get_ifaces = wifi_get_ifaces_stub;
481ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_get_iface_name = wifi_get_iface_name_stub;
482ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_reset_iface_event_handler = wifi_reset_iface_event_handler_stub;
483ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_start_gscan = wifi_start_gscan_stub;
484ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_stop_gscan = wifi_stop_gscan_stub;
485ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_get_cached_gscan_results = wifi_get_cached_gscan_results_stub;
486ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_set_bssid_hotlist = wifi_set_bssid_hotlist_stub;
487ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_reset_bssid_hotlist = wifi_reset_bssid_hotlist_stub;
488ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_set_significant_change_handler =
489ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley      wifi_set_significant_change_handler_stub;
490ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_reset_significant_change_handler =
491ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley      wifi_reset_significant_change_handler_stub;
492ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_get_gscan_capabilities = wifi_get_gscan_capabilities_stub;
493ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_set_link_stats = wifi_set_link_stats_stub;
494ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_get_link_stats = wifi_get_link_stats_stub;
495ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_clear_link_stats = wifi_clear_link_stats_stub;
496ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_get_valid_channels = wifi_get_valid_channels_stub;
497ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_rtt_range_request = wifi_rtt_range_request_stub;
498ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_rtt_range_cancel = wifi_rtt_range_cancel_stub;
499ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_get_rtt_capabilities = wifi_get_rtt_capabilities_stub;
500ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_start_logging = wifi_start_logging_stub;
501ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_set_epno_list = wifi_set_epno_list_stub;
502ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_set_country_code = wifi_set_country_code_stub;
503ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_enable_tdls = wifi_enable_tdls_stub;
504ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_disable_tdls = wifi_disable_tdls_stub;
505ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_get_tdls_status = wifi_get_tdls_status_stub;
506ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_get_tdls_capabilities = wifi_get_tdls_capabilities_stub;
507ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_set_nodfs_flag = wifi_set_nodfs_flag_stub;
508ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_get_firmware_memory_dump = wifi_get_firmware_memory_dump_stub;
509ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_set_log_handler = wifi_set_log_handler_stub;
510ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_reset_log_handler = wifi_reset_log_handler_stub;
511ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_set_alert_handler = wifi_set_alert_handler_stub;
512ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_reset_alert_handler = wifi_reset_alert_handler_stub;
513ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_get_firmware_version = wifi_get_firmware_version_stub;
514ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_get_ring_buffers_status = wifi_get_ring_buffers_status_stub;
515ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_get_logger_supported_feature_set =
516ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley      wifi_get_logger_supported_feature_set_stub;
517ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_get_ring_data = wifi_get_ring_data_stub;
518ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_get_driver_version = wifi_get_driver_version_stub;
519ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_start_sending_offloaded_packet =
520ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley      wifi_start_sending_offloaded_packet_stub;
521ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_stop_sending_offloaded_packet =
522ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley      wifi_stop_sending_offloaded_packet_stub;
523ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_get_wake_reason_stats = wifi_get_wake_reason_stats_stub;
524ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_configure_nd_offload = wifi_configure_nd_offload_stub;
525ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_get_driver_memory_dump = wifi_get_driver_memory_dump_stub;
526ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_start_pkt_fate_monitoring = wifi_start_pkt_fate_monitoring_stub;
527ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_get_tx_pkt_fates = wifi_get_tx_pkt_fates_stub;
528ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_get_rx_pkt_fates = wifi_get_rx_pkt_fates_stub;
529ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_nan_enable_request = wifi_nan_enable_request_stub;
530ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_nan_disable_request = wifi_nan_disable_request_stub;
531ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_nan_publish_request = wifi_nan_publish_request_stub;
532ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_nan_publish_cancel_request =
533ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley      wifi_nan_publish_cancel_request_stub;
534ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_nan_subscribe_request = wifi_nan_subscribe_request_stub;
535ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_nan_subscribe_cancel_request =
536ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley      wifi_nan_subscribe_cancel_request_stub;
537ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_nan_transmit_followup_request =
538ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley      wifi_nan_transmit_followup_request_stub;
539ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_nan_stats_request = wifi_nan_stats_request_stub;
540ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_nan_config_request = wifi_nan_config_request_stub;
541ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_nan_tca_request = wifi_nan_tca_request_stub;
542ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_nan_beacon_sdf_payload_request =
543ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley      wifi_nan_beacon_sdf_payload_request_stub;
544ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_nan_register_handler = wifi_nan_register_handler_stub;
545ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_nan_get_version = wifi_nan_get_version_stub;
546ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_nan_get_capabilities = wifi_nan_get_capabilities_stub;
547ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_nan_data_interface_create = wifi_nan_data_interface_create_stub;
548ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_nan_data_interface_delete = wifi_nan_data_interface_delete_stub;
549ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_nan_data_request_initiator =
550ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley      wifi_nan_data_request_initiator_stub;
551ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_nan_data_indication_response =
552ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley      wifi_nan_data_indication_response_stub;
553ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_nan_data_end = wifi_nan_data_end_stub;
554ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_get_packet_filter_capabilities =
555ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley      wifi_get_packet_filter_capabilities_stub;
556ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  hal_fn->wifi_set_packet_filter = wifi_set_packet_filter_stub;
557ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
558ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return true;
559ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
560ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
561ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}  // namespace
562ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
563ddf9ccd8144d8d381d1f5b5a625d17113229febfChristopher Wileybool HalTool::InitFunctionTable(wifi_hal_fn* hal_fn) {
564ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  if (!init_wifi_stub_hal_func_table(hal_fn)) {
56504d8e4e828b70f0178f90e5816f4dfbadbb7d988Christopher Wiley    LOG(ERROR) << "Can not initialize the basic function pointer table";
566ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    return false;
567ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  }
568ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
569ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  if (init_wifi_vendor_hal_func_table(hal_fn) != WIFI_SUCCESS) {
57004d8e4e828b70f0178f90e5816f4dfbadbb7d988Christopher Wiley    LOG(ERROR) << "Can not initialize the vendor function pointer table";
571ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley    return false;
572ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  }
573ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
574ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley  return true;
575ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
576ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
577ddf9ccd8144d8d381d1f5b5a625d17113229febfChristopher Wileybool HalTool::CanGetValidChannels(wifi_hal_fn* hal_fn) {
5786842fee9c6df2db54f4f7381e32fe02f4e777050Christopher Wiley  return hal_fn &&
5796842fee9c6df2db54f4f7381e32fe02f4e777050Christopher Wiley         (hal_fn->wifi_get_valid_channels != wifi_get_valid_channels_stub);
580ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}
581ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley
582ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}  // namespace wifi_system
583ad1367edfa4bc735c46fa8919753cbd05575c4efChristopher Wiley}  // namespace android
584