• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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