/drivers/net/wireless/sd8797/mlan/mlan_uap.h
C Header | 104 lines | 51 code | 17 blank | 36 comment | 2 complexity | 8d7b8a9b84c497c9e8ea985ec2c1ac1d MD5 | raw file
Possible License(s): LGPL-2.0, AGPL-1.0, GPL-2.0
1/** @file mlan_uap.h 2 * 3 * @brief This file contains related macros, enum, and struct 4 * of uap functionalities 5 * 6 * Copyright (C) 2009-2011, Marvell International Ltd. 7 * 8 * This software file (the "File") is distributed by Marvell International 9 * Ltd. under the terms of the GNU General Public License Version 2, June 1991 10 * (the "License"). You may use, redistribute and/or modify this File in 11 * accordance with the terms and conditions of the License, a copy of which 12 * is available by writing to the Free Software Foundation, Inc., 13 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or on the 14 * worldwide web at http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. 15 * 16 * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE 17 * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE 18 * ARE EXPRESSLY DISCLAIMED. The License provides additional details about 19 * this warranty disclaimer. 20 */ 21 22/******************************************************** 23Change log: 24 02/05/2009: initial version 25********************************************************/ 26 27#ifndef _MLAN_UAP_H_ 28#define _MLAN_UAP_H_ 29 30#ifdef BIG_ENDIAN_SUPPORT 31/** Convert TxPD to little endian format from CPU format */ 32#define uap_endian_convert_TxPD(x) \ 33 { \ 34 (x)->tx_pkt_length = wlan_cpu_to_le16((x)->tx_pkt_length); \ 35 (x)->tx_pkt_offset = wlan_cpu_to_le16((x)->tx_pkt_offset); \ 36 (x)->tx_pkt_type = wlan_cpu_to_le16((x)->tx_pkt_type); \ 37 (x)->tx_control = wlan_cpu_to_le32((x)->tx_control); \ 38 } 39 40/** Convert RxPD from little endian format to CPU format */ 41#define uap_endian_convert_RxPD(x) \ 42 { \ 43 (x)->rx_pkt_length = wlan_le16_to_cpu((x)->rx_pkt_length); \ 44 (x)->rx_pkt_offset = wlan_le16_to_cpu((x)->rx_pkt_offset); \ 45 (x)->rx_pkt_type = wlan_le16_to_cpu((x)->rx_pkt_type); \ 46 (x)->seq_num = wlan_le16_to_cpu((x)->seq_num); \ 47 } 48#else 49/** Convert TxPD to little endian format from CPU format */ 50#define uap_endian_convert_TxPD(x) do {} while (0) 51/** Convert RxPD from little endian format to CPU format */ 52#define uap_endian_convert_RxPD(x) do {} while (0) 53#endif /* BIG_ENDIAN_SUPPORT */ 54 55/** Band config 5GHz */ 56#define UAP_BAND_CONFIG_5GHZ 0x01 57 58/** Packet forwarding to be done by FW or host */ 59#define PKT_FWD_FW_BIT 0x01 60/** Intra-BSS broadcast packet forwarding allow bit */ 61#define PKT_FWD_INTRA_BCAST 0x02 62/** Intra-BSS unicast packet forwarding allow bit */ 63#define PKT_FWD_INTRA_UCAST 0x04 64/** Inter-BSS unicast packet forwarding allow bit */ 65#define PKT_FWD_INTER_UCAST 0x08 66/** Intra-BSS unicast packet */ 67#define PKT_INTRA_UCAST 0x01 68/** Inter-BSS unicast packet */ 69#define PKT_INTER_UCAST 0x02 70/** Enable Host PKT forwarding */ 71#define PKT_FWD_ENABLE_BIT 0x01 72 73mlan_status wlan_uap_get_channel(IN pmlan_private pmpriv); 74 75mlan_status wlan_uap_set_channel(IN pmlan_private pmpriv, 76 IN t_u8 uap_band_cfg, IN t_u8 channel); 77 78mlan_status wlan_uap_get_beacon_dtim(IN pmlan_private pmpriv); 79 80mlan_status wlan_ops_uap_ioctl(t_void * adapter, pmlan_ioctl_req pioctl_req); 81 82mlan_status wlan_ops_uap_prepare_cmd(IN t_void * priv, 83 IN t_u16 cmd_no, 84 IN t_u16 cmd_action, 85 IN t_u32 cmd_oid, 86 IN t_void * pioctl_buf, 87 IN t_void * pdata_buf, 88 IN t_void * pcmd_buf); 89 90mlan_status wlan_ops_uap_process_cmdresp(IN t_void * priv, 91 IN t_u16 cmdresp_no, 92 IN t_void * pcmd_buf, 93 IN t_void * pioctl); 94 95mlan_status wlan_ops_uap_process_rx_packet(IN t_void * adapter, 96 IN pmlan_buffer pmbuf); 97 98mlan_status wlan_ops_uap_process_event(IN t_void * priv); 99 100t_void *wlan_ops_uap_process_txpd(IN t_void * priv, IN pmlan_buffer pmbuf); 101 102mlan_status wlan_ops_uap_init_cmd(IN t_void * priv, IN t_u8 first_bss); 103 104#endif /* _MLAN_UAP_H_ */