diff options
Diffstat (limited to 'drivers/net/wireless/sd8797/mlan/mlan_uap.h')
-rw-r--r-- | drivers/net/wireless/sd8797/mlan/mlan_uap.h | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/drivers/net/wireless/sd8797/mlan/mlan_uap.h b/drivers/net/wireless/sd8797/mlan/mlan_uap.h new file mode 100644 index 000000000000..c2d2800f1a2d --- /dev/null +++ b/drivers/net/wireless/sd8797/mlan/mlan_uap.h @@ -0,0 +1,104 @@ +/** @file mlan_uap.h + * + * @brief This file contains related macros, enum, and struct + * of uap functionalities + * + * Copyright (C) 2009-2011, Marvell International Ltd. + * + * This software file (the "File") is distributed by Marvell International + * Ltd. under the terms of the GNU General Public License Version 2, June 1991 + * (the "License"). You may use, redistribute and/or modify this File in + * accordance with the terms and conditions of the License, a copy of which + * is available by writing to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or on the + * worldwide web at http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. + * + * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE + * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE + * ARE EXPRESSLY DISCLAIMED. The License provides additional details about + * this warranty disclaimer. + */ + +/******************************************************** +Change log: + 02/05/2009: initial version +********************************************************/ + +#ifndef _MLAN_UAP_H_ +#define _MLAN_UAP_H_ + +#ifdef BIG_ENDIAN_SUPPORT +/** Convert TxPD to little endian format from CPU format */ +#define uap_endian_convert_TxPD(x) \ + { \ + (x)->tx_pkt_length = wlan_cpu_to_le16((x)->tx_pkt_length); \ + (x)->tx_pkt_offset = wlan_cpu_to_le16((x)->tx_pkt_offset); \ + (x)->tx_pkt_type = wlan_cpu_to_le16((x)->tx_pkt_type); \ + (x)->tx_control = wlan_cpu_to_le32((x)->tx_control); \ + } + +/** Convert RxPD from little endian format to CPU format */ +#define uap_endian_convert_RxPD(x) \ + { \ + (x)->rx_pkt_length = wlan_le16_to_cpu((x)->rx_pkt_length); \ + (x)->rx_pkt_offset = wlan_le16_to_cpu((x)->rx_pkt_offset); \ + (x)->rx_pkt_type = wlan_le16_to_cpu((x)->rx_pkt_type); \ + (x)->seq_num = wlan_le16_to_cpu((x)->seq_num); \ + } +#else +/** Convert TxPD to little endian format from CPU format */ +#define uap_endian_convert_TxPD(x) do {} while (0) +/** Convert RxPD from little endian format to CPU format */ +#define uap_endian_convert_RxPD(x) do {} while (0) +#endif /* BIG_ENDIAN_SUPPORT */ + +/** Band config 5GHz */ +#define UAP_BAND_CONFIG_5GHZ 0x01 + +/** Packet forwarding to be done by FW or host */ +#define PKT_FWD_FW_BIT 0x01 +/** Intra-BSS broadcast packet forwarding allow bit */ +#define PKT_FWD_INTRA_BCAST 0x02 +/** Intra-BSS unicast packet forwarding allow bit */ +#define PKT_FWD_INTRA_UCAST 0x04 +/** Inter-BSS unicast packet forwarding allow bit */ +#define PKT_FWD_INTER_UCAST 0x08 +/** Intra-BSS unicast packet */ +#define PKT_INTRA_UCAST 0x01 +/** Inter-BSS unicast packet */ +#define PKT_INTER_UCAST 0x02 +/** Enable Host PKT forwarding */ +#define PKT_FWD_ENABLE_BIT 0x01 + +mlan_status wlan_uap_get_channel(IN pmlan_private pmpriv); + +mlan_status wlan_uap_set_channel(IN pmlan_private pmpriv, + IN t_u8 uap_band_cfg, IN t_u8 channel); + +mlan_status wlan_uap_get_beacon_dtim(IN pmlan_private pmpriv); + +mlan_status wlan_ops_uap_ioctl(t_void * adapter, pmlan_ioctl_req pioctl_req); + +mlan_status wlan_ops_uap_prepare_cmd(IN t_void * priv, + IN t_u16 cmd_no, + IN t_u16 cmd_action, + IN t_u32 cmd_oid, + IN t_void * pioctl_buf, + IN t_void * pdata_buf, + IN t_void * pcmd_buf); + +mlan_status wlan_ops_uap_process_cmdresp(IN t_void * priv, + IN t_u16 cmdresp_no, + IN t_void * pcmd_buf, + IN t_void * pioctl); + +mlan_status wlan_ops_uap_process_rx_packet(IN t_void * adapter, + IN pmlan_buffer pmbuf); + +mlan_status wlan_ops_uap_process_event(IN t_void * priv); + +t_void *wlan_ops_uap_process_txpd(IN t_void * priv, IN pmlan_buffer pmbuf); + +mlan_status wlan_ops_uap_init_cmd(IN t_void * priv, IN t_u8 first_bss); + +#endif /* _MLAN_UAP_H_ */ |