1 /* 2 * Copyright (C) 2021 HiSilicon (Shanghai) Technologies CO., LIMITED. 3 * 4 * This program is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU General Public License 6 * as published by the Free Software Foundation; either version 2 7 * of the License, or (at your option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 */ 18 19 /* * 20 * @defgroup hi_wifi WiFi API 21 */ 22 /* * 23 * @defgroup hi_wifi_driver_wpa Basic Settings 24 * @ingroup hi_wifi 25 */ 26 27 #ifndef __DRIVER_HISI_COMMON_H__ 28 #define __DRIVER_HISI_COMMON_H__ 29 30 /* **************************************************************************** 31 1 其他头文件包含 32 **************************************************************************** */ 33 #include "hi_types.h" 34 35 #ifdef __cplusplus 36 #if __cplusplus 37 extern "C" { 38 #endif 39 #endif 40 41 /* **************************************************************************** 42 2 宏定义 43 **************************************************************************** */ 44 #ifndef ETH_ADDR_LEN 45 #define ETH_ADDR_LEN 6 46 #endif 47 48 #define HISI_SUCC 0 49 #define HISI_EFAIL 1 50 #define HISI_EINVAL 22 51 52 #ifndef MAX_SSID_LEN 53 #define MAX_SSID_LEN 32 54 #endif 55 56 #ifndef HISI_MAX_NR_CIPHER_SUITES 57 #define HISI_MAX_NR_CIPHER_SUITES 5 58 #endif 59 60 #ifndef HISI_WPAS_MAX_SCAN_SSIDS 61 #define HISI_WPAS_MAX_SCAN_SSIDS 2 62 #endif 63 64 #ifndef HISI_PTR_NULL 65 #define HISI_PTR_NULL NULL 66 #endif 67 68 #ifndef HISI_MAX_NR_AKM_SUITES 69 #define HISI_MAX_NR_AKM_SUITES 2 70 #endif 71 72 73 #ifndef NOTIFY_DONE 74 #define NOTIFY_DONE 0x0000 75 #endif 76 #ifndef NETDEV_UP 77 #define NETDEV_UP 0x0001 78 #endif 79 #ifndef SCAN_AP_LIMIT 80 #define SCAN_AP_LIMIT 64 81 #endif 82 #ifndef NETDEV_DOWN 83 #define NETDEV_DOWN 0x0002 84 #endif 85 86 #ifdef _PRE_WLAN_FEATURE_REKEY_OFFLOAD 87 #define HISI_REKEY_OFFLOAD_KCK_LEN 16 88 #define HISI_REKEY_OFFLOAD_KEK_LEN 16 89 #define HISI_REKEY_OFFLOAD_REPLAY_COUNTER_LEN 8 90 #endif 91 92 #define HI_WIFI_HIPRIV_ARGC_MAX 10 93 94 /* **************************************************************************** 95 4 枚举定义 96 **************************************************************************** */ 97 typedef enum { 98 HISI_FALSE = 0, 99 HISI_TRUE = 1, 100 101 HISI_BUTT 102 } hisi_bool_enum; 103 104 typedef hi_u8 hisi_bool_enum_uint8; 105 106 typedef enum { 107 HISI_IFTYPE_UNSPECIFIED, 108 HISI_IFTYPE_ADHOC, 109 HISI_IFTYPE_STATION, 110 HISI_IFTYPE_AP, 111 HISI_IFTYPE_AP_VLAN, 112 HISI_IFTYPE_WDS, 113 HISI_IFTYPE_MONITOR, 114 HISI_IFTYPE_MESH_POINT, 115 HISI_IFTYPE_P2P_CLIENT, 116 HISI_IFTYPE_P2P_GO, 117 HISI_IFTYPE_P2P_DEVICE, 118 119 /* keep last */ 120 NUM_HISI_IFTYPES, 121 HISI_IFTYPE_MAX = NUM_HISI_IFTYPES - 1 122 } hisi_iftype_enum; 123 typedef hi_u8 hisi_iftype_enum_uint8; 124 125 typedef enum { 126 HISI_KEYTYPE_GROUP, 127 HISI_KEYTYPE_PAIRWISE, 128 HISI_KEYTYPE_PEERKEY, 129 NUM_HISI_KEYTYPES 130 } hisi_key_type_enum; 131 typedef hi_u8 hisi_key_type_enum_uint8; 132 133 typedef enum { 134 HISI_KEY_DEFAULT_TYPE_INVALID, 135 HISI_KEY_DEFAULT_TYPE_UNICAST, 136 HISI_KEY_DEFAULT_TYPE_MULTICAST, 137 NUM_HISI_KEY_DEFAULT_TYPES 138 } hisi_key_default_types_enum; 139 typedef hi_u8 hisi_key_default_types_enum_uint8; 140 141 typedef enum { 142 HISI_NO_SSID_HIDING, 143 HISI_HIDDEN_SSID_ZERO_LEN, 144 HISI_HIDDEN_SSID_ZERO_CONTENTS 145 } hisi_hidden_ssid_enum; 146 typedef hi_u8 hisi_hidden_ssid_enum_uint8; 147 148 typedef enum { 149 HISI_IOCTL_SET_AP = 0, 150 HISI_IOCTL_NEW_KEY, 151 HISI_IOCTL_DEL_KEY, 152 HISI_IOCTL_SET_KEY, 153 HISI_IOCTL_SEND_MLME, 154 HISI_IOCTL_SEND_EAPOL, 155 HISI_IOCTL_RECEIVE_EAPOL, 156 HISI_IOCTL_ENALBE_EAPOL, 157 HISI_IOCTL_DISABLE_EAPOL, 158 HIIS_IOCTL_GET_ADDR, 159 HISI_IOCTL_SET_MODE, 160 HIIS_IOCTL_GET_HW_FEATURE, 161 HISI_IOCTL_SCAN, 162 HISI_IOCTL_DISCONNET, 163 HISI_IOCTL_ASSOC, 164 HISI_IOCTL_SET_NETDEV, 165 HISI_IOCTL_CHANGE_BEACON, 166 HISI_IOCTL_SET_REKEY_INFO, 167 HISI_IOCTL_STA_REMOVE, 168 HISI_IOCTL_SEND_ACTION, 169 HISI_IOCTL_SET_MESH_USER, 170 HISI_IOCTL_SET_MESH_GTK, 171 HISI_IOCTL_EN_ACCEPT_PEER, 172 HISI_IOCTL_EN_ACCEPT_STA, 173 HISI_IOCTL_ADD_IF, 174 HISI_IOCTL_PROBE_REQUEST_REPORT, 175 HISI_IOCTL_REMAIN_ON_CHANNEL, 176 HISI_IOCTL_CANCEL_REMAIN_ON_CHANNEL, 177 HISI_IOCTL_SET_P2P_NOA, 178 HISI_IOCTL_SET_P2P_POWERSAVE, 179 HISI_IOCTL_SET_AP_WPS_P2P_IE, 180 HISI_IOCTL_REMOVE_IF, 181 HISI_IOCTL_GET_P2P_MAC_ADDR, 182 HISI_IOCTL_GET_DRIVER_FLAGS, 183 HISI_IOCTL_SET_USR_APP_IE, 184 HISI_IOCTL_DELAY_REPORT, 185 HWAL_EVENT_BUTT 186 } hisi_event_enum; 187 typedef hi_u8 hisi_event_enum_uint8; 188 189 typedef enum { 190 HISI_ELOOP_EVENT_NEW_STA = 0, 191 HISI_ELOOP_EVENT_DEL_STA, 192 HISI_ELOOP_EVENT_RX_MGMT, 193 HISI_ELOOP_EVENT_TX_STATUS, 194 HISI_ELOOP_EVENT_SCAN_DONE, 195 HISI_ELOOP_EVENT_SCAN_RESULT, 196 HISI_ELOOP_EVENT_CONNECT_RESULT, 197 HISI_ELOOP_EVENT_DISCONNECT, 198 #if (_PRE_OS_VERSION_LINUX == _PRE_OS_VERSION) 199 HISI_ELOOP_EVENT_RX_DFX, 200 #endif 201 HISI_ELOOP_EVENT_MESH_CLOSE, 202 HISI_ELOOP_EVENT_NEW_PEER_CANDIDATE, 203 #if (_PRE_OS_VERSION_LINUX == _PRE_OS_VERSION) 204 HISI_ELOOP_EVENT_MICHAEL_MIC_FAILURE, 205 #endif 206 HISI_ELOOP_EVENT_REMAIN_ON_CHANNEL, 207 HISI_ELOOP_EVENT_CANCEL_REMAIN_ON_CHANNEL, 208 HISI_ELOOP_EVENT_CHANNEL_SWITCH, 209 HISI_ELOOP_EVENT_EAPOL_RECV, 210 HISI_ELOOP_EVENT_TIMEOUT_DISCONN, 211 HISI_ELOOP_EVENT_BUTT 212 } hisi_eloop_event_enum; 213 typedef hi_u8 hisi_eloop_event_enum_uint8; 214 215 typedef enum { 216 HISI_MFP_NO, 217 HISI_MFP_OPTIONAL, 218 HISI_MFP_REQUIRED, 219 } hisi_mfp_enum; 220 typedef hi_u8 hisi_mfp_enum_uint8; 221 222 typedef enum { 223 HISI_AUTHTYPE_OPEN_SYSTEM = 0, 224 HISI_AUTHTYPE_SHARED_KEY, 225 HISI_AUTHTYPE_FT, 226 HISI_AUTHTYPE_NETWORK_EAP, 227 HISI_AUTHTYPE_SAE, 228 229 /* keep last */ 230 __HISI_AUTHTYPE_NUM, 231 HISI_AUTHTYPE_MAX = __HISI_AUTHTYPE_NUM - 1, 232 HISI_AUTHTYPE_AUTOMATIC, 233 234 HISI_AUTHTYPE_BUTT 235 } hisi_auth_type_enum; 236 typedef hi_u8 hisi_auth_type_enum_uint8; 237 238 typedef enum { 239 HISI_SCAN_SUCCESS = 0, 240 HISI_SCAN_FAILED = 1, 241 HISI_SCAN_REFUSED = 2, 242 HISI_SCAN_TIMEOUT = 3, 243 } hisi_scan_status_enum; 244 typedef hi_u8 hisi_scan_status_enum_uint8; 245 246 typedef enum { 247 HISI_FRAME_TYPE_BEACON = bit(0), 248 HISI_FRAME_TYPE_PROBE_REQ = bit(1), 249 HISI_FRAME_TYPE_BUTT 250 } hisi_frame_app_ie_enum; 251 252 /* **************************************************************************** 253 5 全局变量声明 254 **************************************************************************** */ 255 /* **************************************************************************** 256 6 消息头定义 257 **************************************************************************** */ 258 /* **************************************************************************** 259 7 消息定义 260 **************************************************************************** */ 261 /* **************************************************************************** 262 8 STRUCT定义 263 **************************************************************************** */ 264 typedef struct _hisi_driver_scan_status_stru { 265 hisi_scan_status_enum scan_status; 266 } hisi_driver_scan_status_stru; 267 268 typedef struct _hisi_ioctl_command_stru { 269 hi_u32 cmd; 270 hi_void *buf; 271 } hisi_ioctl_command_stru; 272 273 typedef hi_s32 (*hisi_send_event_cb)(const hi_char *, hi_s32, hi_u8 *, hi_u32); 274 275 #ifdef _PRE_WLAN_FEATURE_P2P 276 typedef struct _hisi_remain_on_channel_stru { 277 hi_s32 freq; 278 hi_s32 duration; 279 } hisi_on_channel_stru; 280 281 typedef struct _hisi_if_add_stru { 282 hi_s8 type; 283 } hisi_if_add_stru; 284 #define WIFI_IFNAME_MAX_SIZE 16 285 typedef struct _hisi_if_remove_stru { 286 hi_u8 ifname[WIFI_IFNAME_MAX_SIZE]; 287 } hisi_if_remove_stru; 288 289 typedef struct _hisi_get_p2p_addr_stru { 290 hi_s8 type; 291 hi_u8 mac_addr[ETH_ADDR_LEN]; 292 hi_u8 resv; 293 } hisi_get_p2p_addr_stru; 294 295 typedef struct _hisi_p2p_noa_stru { 296 hi_s32 start; 297 hi_s32 duration; 298 hi_u8 count; 299 hi_u8 resv[3]; /* 3 byte保留字段 */ 300 } hisi_p2p_noa_stru; 301 302 typedef struct _hisi_p2p_power_save_stru { 303 hi_s32 legacy_ps; 304 hi_s8 opp_ps; 305 hi_u8 ctwindow; 306 hi_u8 resv[2]; /* 2 BYTE 保留字段 */ 307 } hisi_p2p_power_save_stru; 308 #endif 309 310 typedef struct _hisi_get_drv_flags_stru { 311 hi_u64 drv_flags; 312 } hisi_get_drv_flags_stru; 313 314 typedef struct _hisi_new_sta_info_stru { 315 hi_s32 reassoc; 316 hi_u32 ielen; 317 hi_u8 *ie; 318 hi_u8 macaddr[ETH_ADDR_LEN]; 319 hi_u8 resv[2]; /* 2 BYTE保留字段 */ 320 } hisi_new_sta_info_stru; 321 322 typedef struct _hisi_rx_mgmt_stru { 323 hi_u8 *buf; 324 hi_u32 len; 325 hi_s32 sig_mbm; 326 hi_u32 freq; 327 } hisi_rx_mgmt_stru; 328 329 typedef struct _hisi_tx_status_stru { 330 hi_u8 *buf; 331 hi_u32 len; 332 hisi_bool_enum_uint8 ack; 333 hi_u8 resv[3]; /* 3 BYTE保留字段 */ 334 } hisi_tx_status_stru; 335 336 typedef struct _hisi_mlme_data_stru { 337 hi_u32 freq; 338 hi_u32 data_len; 339 hi_u8 *data; 340 hi_u64 *send_action_cookie; 341 } hisi_mlme_data_stru; 342 343 typedef struct _hisi_beacon_data_stru { 344 hi_u32 head_len; 345 hi_u32 tail_len; 346 hi_u8 *head; 347 hi_u8 *tail; 348 } hisi_beacon_data_stru; 349 350 typedef struct _hisi_action_data_stru { 351 hi_u8 *dst; 352 hi_u8 *src; 353 hi_u8 *bssid; 354 hi_u8 *data; 355 hi_u32 data_len; 356 } hisi_action_data_stru; 357 358 #ifdef _PRE_WLAN_FEATURE_MESH 359 typedef struct _hisi_set_mesh_user_data_stru { 360 hi_u8 *puc_addr; 361 hi_u8 plink_state; 362 hi_u8 set; 363 hi_u8 bcn_prio; /* 上报lwip使用 */ 364 hi_u8 is_mbr; 365 hi_u8 mesh_initiative_peering; 366 } hisi_set_mesh_user_data_stru; 367 368 typedef struct _hisi_enable_auto_peer_stru { 369 hi_u8 enable_auto_peer; 370 } hisi_enable_auto_peer_stru; 371 372 typedef struct _hisi_set_mesh_user_gtk_stru { 373 hi_u8 *puc_addr; 374 hi_u8 *puc_gtk; 375 hi_u8 gtk_len; 376 hi_u8 resv[3]; /* 3 BYTE保留字段 */ 377 } hisi_set_mesh_user_gtk_stru; 378 379 typedef struct _hisi_enable_accept_peer_stru { 380 hi_u8 enable_accept_peer; 381 } hisi_enable_accept_peer_stru; 382 383 typedef struct _hisi_enable_accept_sta_stru { 384 hi_u8 enable_accept_sta; 385 } hisi_enable_accept_sta_stru; 386 #endif 387 388 /* 延时上报关联状态配置参数结构体 */ 389 typedef struct _hisi_delay_report_stru { 390 hi_u8 enable; /* 配置开关 */ 391 hi_u16 timeout; /* 延时时间 */ 392 hi_u8 resv; 393 } hisi_delay_report_stru; 394 395 typedef struct _hisi_freq_params_stru { 396 hi_s32 l_mode; 397 hi_s32 l_freq; 398 hi_s32 l_channel; 399 400 /* for HT */ 401 hi_s32 l_ht_enabled; 402 403 /* 0 = HT40 disabled, -1 = HT40 enabled, 404 * secondary channel below primary, 1 = HT40 405 * enabled, secondary channel above primary */ 406 hi_s32 l_sec_channel_offset; 407 408 /* for VHT */ 409 hi_s32 l_vht_enabled; 410 411 /* valid for both HT and VHT, center_freq2 is non-zero 412 * only for bandwidth 80 and an 80+80 channel */ 413 hi_s32 l_center_freq1; 414 hi_s32 l_center_freq2; 415 hi_s32 l_bandwidth; 416 } hisi_freq_params_stru; 417 418 /* 密钥信息设置数据传递结构体 */ 419 typedef struct _hisi_key_ext_stru { 420 hi_s32 type; 421 hi_u32 key_idx; 422 hi_u32 key_len; 423 hi_u32 seq_len; 424 hi_u32 cipher; 425 hi_u8 *addr; 426 hi_u8 *key; 427 hi_u8 *seq; 428 hisi_bool_enum_uint8 def; 429 hisi_bool_enum_uint8 defmgmt; 430 hisi_key_default_types_enum_uint8 default_types; 431 hi_u8 resv; 432 } hisi_key_ext_stru; 433 434 /* AP信息设置相关数据传递结构体 */ 435 typedef struct _hisi_ap_settings_stru { 436 hisi_freq_params_stru freq_params; 437 hisi_beacon_data_stru beacon_data; 438 hi_u32 ssid_len; 439 hi_s32 l_beacon_interval; 440 hi_s32 l_dtim_period; 441 hi_u8 *puc_ssid; 442 hisi_hidden_ssid_enum_uint8 hidden_ssid; 443 hisi_auth_type_enum_uint8 auth_type; 444 hi_u8 resv[2]; /* 2 BYTE 保留字段 */ 445 } hisi_ap_settings_stru; 446 447 /* 设置模式结构体 */ 448 typedef struct _hisi_set_mode_stru { 449 hi_u8 bssid[ETH_ADDR_LEN]; 450 hisi_iftype_enum_uint8 iftype; 451 hi_u8 resv; 452 } hisi_set_mode_stru; 453 454 typedef struct _hisi_tx_eapol_stru { 455 hi_u8 *buf; 456 hi_u32 len; 457 } hisi_tx_eapol_stru; 458 459 typedef struct _hisi_rx_eapol_stru { 460 hi_u8 *buf; 461 hi_u32 len; 462 } hisi_rx_eapol_stru; 463 464 typedef struct _hisi_enable_eapol_stru { 465 hi_void *callback; 466 hi_void *contex; 467 } hisi_enable_eapol_stru; 468 469 typedef struct _hisi_ieee80211_channel_stru { 470 hi_u16 channel; 471 hi_u8 resv[2]; /* 2 BYTE保留字段 */ 472 hi_u32 freq; 473 hi_u32 flags; 474 } hisi_ieee80211_channel_stru; 475 476 typedef struct _hisi_hw_feature_data_stru { 477 hi_s32 channel_num; 478 hi_u16 bitrate[12]; /* 占12 short */ 479 hi_u16 ht_capab; 480 hi_u8 resv[2]; /* 2 BYTE保留字段 */ 481 hisi_ieee80211_channel_stru iee80211_channel[14]; /* 14维 */ 482 } hisi_hw_feature_data_stru; 483 484 typedef struct _hisi_driver_scan_ssid_stru { 485 hi_u8 auc_ssid[MAX_SSID_LEN]; 486 hi_u32 ssid_len; 487 } hisi_driver_scan_ssid_stru; 488 489 typedef struct _hisi_scan_stru { 490 hisi_driver_scan_ssid_stru *ssids; 491 hi_s32 *freqs; 492 hi_u8 *extra_ies; 493 hi_u8 *bssid; 494 hi_u8 num_ssids; 495 hi_u8 num_freqs; 496 hi_u8 prefix_ssid_scan_flag; 497 hi_u8 fast_connect_flag; 498 hi_u32 extra_ies_len; 499 } hisi_scan_stru; 500 501 typedef struct _hisi_crypto_settings_stru { 502 hi_u32 wpa_versions; 503 hi_u32 cipher_group; 504 hi_s32 l_n_ciphers_pairwise; 505 hi_u32 aul_ciphers_pairwise[HISI_MAX_NR_CIPHER_SUITES]; 506 hi_s32 l_n_akm_suites; 507 hi_u32 aul_akm_suites[HISI_MAX_NR_AKM_SUITES]; 508 } hisi_crypto_settings_stru; 509 510 typedef struct _hisi_associate_params_stru { 511 hi_u8 *bssid; 512 hi_u8 *ssid; 513 hi_u8 *ie; 514 hi_u8 *key; 515 hi_u8 auth_type; 516 hi_u8 privacy; 517 hi_u8 key_len; 518 hi_u8 key_idx; 519 hi_u8 mfp; 520 hi_u8 auto_conn; /* 自动重关联标志 */ 521 hi_u8 resv[2]; /* 2 BYTE保留字段 */ 522 hi_u32 freq; 523 hi_u32 ssid_len; 524 hi_u32 ie_len; 525 hisi_crypto_settings_stru *crypto; 526 } hisi_associate_params_stru; 527 528 529 typedef struct _hisi_connect_result_stru { 530 hi_u8 *req_ie; 531 hi_u32 req_ie_len; 532 hi_u8 *resp_ie; 533 hi_u32 resp_ie_len; 534 hi_u8 bssid[ETH_ADDR_LEN]; 535 hi_u8 resv[2]; /* 2 BYTE保留字段 */ 536 hi_u16 status; 537 hi_u16 freq; 538 } hisi_connect_result_stru; 539 540 typedef struct _hisi_scan_result_stru { 541 hi_s32 flags; 542 hi_u8 bssid[ETH_ADDR_LEN]; 543 hi_s16 caps; 544 hi_s32 freq; 545 hi_s16 beacon_int; 546 hi_s32 qual; 547 hi_u32 beacon_ie_len; 548 hi_s32 level; 549 hi_u32 age; 550 hi_u32 ie_len; 551 hi_u8 *variable; 552 } hisi_scan_result_stru; 553 554 typedef struct _hisi_disconnect_stru { 555 hi_u8 *ie; 556 hi_u16 reason; 557 hi_u8 rsv[2]; /* 2 BYTE保留字段 */ 558 hi_u32 ie_len; 559 } hisi_disconnect_stru; 560 561 #if (_PRE_OS_VERSION_LINUX == _PRE_OS_VERSION) 562 typedef struct _hisi_michael_mic_failure_stru { 563 hi_u8 user_mac_addr[WLAN_MAC_ADDR_LEN]; 564 hi_u8 reserve[2]; /* 2 BYTE保留字段 */ 565 oal_nl80211_key_type key_type; 566 hi_s32 l_key_id; 567 } hisi_michael_mic_failure_stru; 568 #endif 569 #ifdef _PRE_WLAN_FEATURE_P2P 570 typedef struct _hisi_app_ie_stru { 571 hi_u32 ie_len; 572 hi_u8 app_ie_type; 573 hi_u8 auc_rsv[3]; /* 3 BYTE保留字段 */ 574 /* auc_ie 中保存信息元素 */ 575 hi_u8 *puc_ie; 576 } hisi_app_ie_stru; 577 #endif 578 #ifdef _PRE_WLAN_FEATURE_REKEY_OFFLOAD 579 typedef struct _hisi_rekey_offload_stru { 580 hi_u8 auc_kck[HISI_REKEY_OFFLOAD_KCK_LEN]; 581 hi_u8 auc_kek[HISI_REKEY_OFFLOAD_KEK_LEN]; 582 hi_u8 auc_replay_ctr[HISI_REKEY_OFFLOAD_REPLAY_COUNTER_LEN]; 583 } hisi_rekey_offload_stru; 584 #endif 585 #ifdef _PRE_WLAN_FEATURE_MESH 586 typedef struct _hisi_mesh_close_peer_stru { 587 hi_u8 auc_macaddr[ETH_ADDR_LEN]; 588 hi_u16 us_reason; 589 } hisi_mesh_close_peer_stru; 590 591 typedef struct _hisi_mesh_new_peer_candidate_stru { 592 hi_u8 peer_addr[ETH_ADDR_LEN]; 593 hi_u8 bcn_prio; 594 hi_u8 is_mbr; 595 hi_s8 rssi; 596 hi_u8 reserved[3]; /* 3 BYTE保留字段 */ 597 } hisi_mesh_new_peer_candidate_stru; 598 599 typedef struct { 600 hi_u8 set; /* 0: del, 1: add */ 601 hi_u8 ie_type; 602 hi_u16 ie_len; 603 hisi_frame_app_ie_enum frame_type; 604 hi_u8 *ie; 605 } hisi_usr_app_ie_stru; 606 #endif 607 608 typedef struct _hisi_ch_switch_stru { 609 hi_s32 freq; 610 } hisi_ch_switch_stru; 611 612 /* **************************************************************************** 613 9 UNION定义 614 **************************************************************************** */ 615 /* **************************************************************************** 616 10 OTHERS定义 617 **************************************************************************** */ 618 /* **************************************************************************** 619 11 函数声明 620 **************************************************************************** */ 621 #ifdef __cplusplus 622 #if __cplusplus 623 } 624 #endif 625 #endif 626 627 #endif /* end of driver_hisi_common.h */ 628