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 21 namespace android { 22 namespace wifi_system { 23 namespace { 24 25 wifi_error wifi_initialize_stub(wifi_handle* handle) { 26 return WIFI_ERROR_NOT_SUPPORTED; 27 } 28 29 void wifi_cleanup_stub(wifi_handle handle, wifi_cleaned_up_handler handler) {} 30 31 void wifi_event_loop_stub(wifi_handle handle) {} 32 33 void wifi_get_error_info_stub(wifi_error err, const char** msg) { *msg = NULL; } 34 35 wifi_error wifi_get_supported_feature_set_stub(wifi_interface_handle handle, 36 feature_set* set) { 37 return WIFI_ERROR_UNINITIALIZED; 38 } 39 40 wifi_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 46 wifi_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 */ 52 wifi_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 */ 58 wifi_error wifi_is_epr_supported_stub(wifi_handle handle) { 59 return WIFI_ERROR_UNINITIALIZED; 60 } 61 62 /* multiple interface support */ 63 wifi_error wifi_get_ifaces_stub(wifi_handle handle, int* num_ifaces, 64 wifi_interface_handle** ifaces) { 65 return WIFI_ERROR_UNINITIALIZED; 66 } 67 68 wifi_error wifi_get_iface_name_stub(wifi_interface_handle iface, char* name, 69 size_t size) { 70 return WIFI_ERROR_UNINITIALIZED; 71 } 72 73 wifi_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 79 wifi_error wifi_reset_iface_event_handler_stub(wifi_request_id id, 80 wifi_interface_handle iface) { 81 return WIFI_ERROR_UNINITIALIZED; 82 } 83 84 wifi_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 91 wifi_error wifi_stop_gscan_stub(wifi_request_id id, 92 wifi_interface_handle iface) { 93 return WIFI_ERROR_UNINITIALIZED; 94 } 95 96 wifi_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 103 wifi_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 110 wifi_error wifi_reset_bssid_hotlist_stub(wifi_request_id id, 111 wifi_interface_handle iface) { 112 return WIFI_ERROR_UNINITIALIZED; 113 } 114 115 wifi_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 122 wifi_error wifi_reset_significant_change_handler_stub( 123 wifi_request_id id, wifi_interface_handle iface) { 124 return WIFI_ERROR_UNINITIALIZED; 125 } 126 127 wifi_error wifi_get_gscan_capabilities_stub( 128 wifi_interface_handle handle, wifi_gscan_capabilities* capabilities) { 129 return WIFI_ERROR_UNINITIALIZED; 130 } 131 132 wifi_error wifi_set_link_stats_stub(wifi_interface_handle iface, 133 wifi_link_layer_params params) { 134 return WIFI_ERROR_UNINITIALIZED; 135 } 136 137 wifi_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 143 wifi_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 150 wifi_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 */ 158 wifi_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 */ 167 wifi_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 */ 174 wifi_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 */ 180 wifi_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 */ 189 wifi_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 */ 195 wifi_error wifi_rtt_get_available_channel_stub(wifi_interface_handle iface, 196 wifi_channel_info* channel) { 197 return WIFI_ERROR_NOT_SUPPORTED; 198 } 199 200 wifi_error wifi_set_nodfs_flag_stub(wifi_interface_handle iface, u32 nodfs) { 201 return WIFI_ERROR_NOT_SUPPORTED; 202 } 203 204 wifi_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 211 wifi_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 217 wifi_error wifi_reset_epno_list_stub(int id, wifi_interface_info* iface) { 218 return WIFI_ERROR_NOT_SUPPORTED; 219 } 220 221 wifi_error wifi_set_country_code_stub(wifi_interface_handle iface, 222 const char* code) { 223 return WIFI_ERROR_NOT_SUPPORTED; 224 } 225 226 wifi_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 231 wifi_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 237 wifi_error wifi_reset_log_handler_stub(wifi_request_id id, 238 wifi_interface_handle iface) { 239 return WIFI_ERROR_NOT_SUPPORTED; 240 } 241 242 wifi_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 248 wifi_error wifi_reset_alert_handler_stub(wifi_request_id id, 249 wifi_interface_handle iface) { 250 return WIFI_ERROR_NOT_SUPPORTED; 251 } 252 253 wifi_error wifi_get_firmware_version_stub(wifi_interface_handle iface, 254 char* buffer, int buffer_size) { 255 return WIFI_ERROR_NOT_SUPPORTED; 256 } 257 258 wifi_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 264 wifi_error wifi_get_logger_supported_feature_set_stub( 265 wifi_interface_handle iface, unsigned int* support) { 266 return WIFI_ERROR_NOT_SUPPORTED; 267 } 268 269 wifi_error wifi_get_ring_data_stub(wifi_interface_handle iface, 270 char* ring_name) { 271 return WIFI_ERROR_NOT_SUPPORTED; 272 } 273 274 wifi_error wifi_get_driver_version_stub(wifi_interface_handle iface, 275 char* buffer, int buffer_size) { 276 return WIFI_ERROR_NOT_SUPPORTED; 277 } 278 279 wifi_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 285 wifi_error wifi_disable_tdls_stub(wifi_interface_handle iface, mac_addr addr) { 286 return WIFI_ERROR_NOT_SUPPORTED; 287 } 288 289 wifi_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 294 wifi_error wifi_get_tdls_capabilities_stub( 295 wifi_interface_handle iface, wifi_tdls_capabilities* capabilities) { 296 return WIFI_ERROR_NOT_SUPPORTED; 297 } 298 299 wifi_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 305 wifi_error wifi_stop_sending_offloaded_packet_stub( 306 wifi_request_id id, wifi_interface_handle iface) { 307 return WIFI_ERROR_NOT_SUPPORTED; 308 } 309 310 wifi_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 316 wifi_error wifi_configure_nd_offload_stub(wifi_interface_handle iface, 317 u8 enable) { 318 return WIFI_ERROR_NOT_SUPPORTED; 319 } 320 321 wifi_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 326 wifi_error wifi_start_pkt_fate_monitoring_stub(wifi_interface_handle iface) { 327 return WIFI_ERROR_NOT_SUPPORTED; 328 } 329 330 wifi_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 337 wifi_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 } 343 wifi_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 349 wifi_error wifi_nan_disable_request_stub(transaction_id id, 350 wifi_interface_handle iface) { 351 return WIFI_ERROR_NOT_SUPPORTED; 352 } 353 354 wifi_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 360 wifi_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 366 wifi_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 372 wifi_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 378 wifi_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 384 wifi_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 390 wifi_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 396 wifi_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 402 wifi_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 408 wifi_error wifi_nan_register_handler_stub(wifi_interface_handle iface, 409 NanCallbackHandler handlers) { 410 return WIFI_ERROR_NOT_SUPPORTED; 411 } 412 413 wifi_error wifi_nan_get_version_stub(wifi_handle handle, NanVersion* version) { 414 return WIFI_ERROR_NOT_SUPPORTED; 415 } 416 417 wifi_error wifi_nan_get_capabilities_stub(transaction_id id, 418 wifi_interface_handle iface) { 419 return WIFI_ERROR_NOT_SUPPORTED; 420 } 421 422 wifi_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 428 wifi_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 434 wifi_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 440 wifi_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 446 wifi_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 452 wifi_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 457 wifi_error wifi_set_packet_filter_stub(wifi_interface_handle handle, 458 const u8* program, u32 len) { 459 return WIFI_ERROR_NOT_SUPPORTED; 460 } 461 462 bool 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 558 bool 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 572 bool 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