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