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 #ifndef __HMAC_P2P_H__ 20 #define __HMAC_P2P_H__ 21 22 /* **************************************************************************** 23 1 其他头文件包含 24 **************************************************************************** */ 25 #include "hmac_fsm.h" 26 27 #ifdef __cplusplus 28 #if __cplusplus 29 extern "C" { 30 #endif 31 #endif 32 33 /* **************************************************************************** 34 2 宏定义 35 **************************************************************************** */ 36 /* **************************************************************************** 37 3 枚举定义 38 **************************************************************************** */ 39 /* p2p 状态码 */ 40 typedef enum { 41 P2P_STATUS_DISCOVERY_ON = 0, 42 P2P_STATUS_SEARCH_ENABLED, 43 P2P_STATUS_IF_ADD, 44 P2P_STATUS_IF_DEL, 45 P2P_STATUS_IF_DELETING, 46 P2P_STATUS_IF_CHANGING, 47 P2P_STATUS_IF_CHANGED, 48 P2P_STATUS_LISTEN_EXPIRED, 49 P2P_STATUS_ACTION_TX_COMPLETED, 50 P2P_STATUS_ACTION_TX_NOACK, 51 P2P_STATUS_SCANNING, 52 P2P_STATUS_GO_NEG_PHASE, 53 P2P_STATUS_DISC_IN_PROGRESS 54 } wlan_p2p_status_enum; 55 typedef hi_u32 wlan_p2p_status_enum_uint32; 56 57 /* **************************************************************************** 58 4 全局变量声明 59 **************************************************************************** */ 60 /* **************************************************************************** 61 5 消息头定义 62 **************************************************************************** */ 63 /* **************************************************************************** 64 6 消息定义 65 **************************************************************************** */ 66 /* **************************************************************************** 67 7 STRUCT定义 68 **************************************************************************** */ 69 /* 上报监听超时数据结构 */ 70 typedef struct { 71 oal_ieee80211_channel_stru st_listen_channel; 72 oal_wireless_dev *wdev; 73 hi_u64 ull_cookie; 74 } hmac_p2p_listen_expired_stru; 75 76 /* **************************************************************************** 77 8 UNION定义 78 **************************************************************************** */ 79 /* **************************************************************************** 80 9 OTHERS定义 81 **************************************************************************** */ 82 /* **************************************************************************** 83 10 函数声明 84 **************************************************************************** */ 85 hi_u32 hmac_p2p_encap_action(hi_u8 *puc_data, const mac_action_data_stru *action_data); 86 hi_u32 hmac_p2p_check_vap_num(const mac_device_stru *mac_dev, wlan_p2p_mode_enum_uint8 p2p_mode); 87 hi_u32 hmac_p2p_send_listen_expired_to_host(const hmac_vap_stru *hmac_vap); 88 hi_u32 hmac_p2p_send_listen_expired_to_device(const hmac_vap_stru *hmac_vap); 89 hi_u32 hmac_p2p_add_gc_vap(mac_device_stru *mac_dev, hi_u16 us_len, const hi_u8 *puc_param); 90 hi_u32 hmac_p2p_del_gc_vap(mac_vap_stru *mac_vap, hi_u16 us_len, const hi_u8 *puc_param); 91 hi_u32 hmac_p2p_check_can_enter_state(const mac_vap_stru *mac_vap, hmac_fsm_input_type_enum_uint8 input_req); 92 hi_u32 hmac_p2p_get_home_channel(const mac_vap_stru *mac_vap, hi_u32 *pul_home_channel, 93 wlan_channel_bandwidth_enum_uint8 *pen_home_channel_bandwidth); 94 hi_void hmac_p2p_disable_pm(const hmac_vap_stru *hmac_vap); 95 hi_u32 hmac_p2p_is_go_neg_req_frame(const hi_u8 *puc_data); 96 hi_u32 hmac_p2p_get_status(hi_u32 p2p_status, wlan_p2p_status_enum_uint32 status); 97 hi_u32 hmac_p2p_set_status(mac_vap_stru *mac_vap, hi_u16 us_len, const hi_u8 *puc_param); 98 hi_void hmac_p2p_clr_status(hi_u32 *pul_p2p_status, wlan_p2p_status_enum_uint32 status); 99 hi_u32 hmac_p2p_remain_on_channel(const hmac_vap_stru *hmac_vap, mac_remain_on_channel_param_stru *remain_on_channel); 100 hi_u32 hmac_p2p_listen_timeout(mac_vap_stru *mac_vap); 101 hi_u32 hmac_p2p_send_action(mac_vap_stru *mac_vap, hi_u16 us_len, const hi_u8 *puc_param); 102 hi_u32 hmac_p2p_set_ps_ops(mac_vap_stru *mac_vap, hi_u16 us_len, const hi_u8 *puc_param); 103 hi_u32 hmac_p2p_set_ps_noa(mac_vap_stru *mac_vap, hi_u16 us_len, const hi_u8 *puc_param); 104 hi_u32 hmac_p2p_find_listen_channel(mac_vap_stru *mac_vap, hi_u16 us_len, hi_u8 *puc_param); 105 hi_void hmac_p2p_del_ie(hi_u8 *puc_ie, hi_u32 *ie_len); 106 hi_u32 hmac_p2p_set_wps_p2p_ie(mac_vap_stru *mac_vap, hi_u16 us_len, const hi_u8 *puc_param); 107 hi_u32 hmac_p2p_config_remain_on_channel(mac_vap_stru *mac_vap, hi_u16 us_len, const hi_u8 *puc_param); 108 hi_u32 hmac_p2p_cancel_remain_on_channel(mac_vap_stru *mac_vap, hi_u16 us_len, const hi_u8 *puc_param); 109 hi_u32 hmac_p2p_sta_not_up_rx_mgmt(const hmac_vap_stru *hmac_vap, const dmac_wlan_crx_event_stru *crx_event); 110 111 #ifdef __cplusplus 112 #if __cplusplus 113 } 114 #endif 115 #endif 116 117 #endif /* __HMAC_P2P_H__ */ 118