rt2x00lib.h revision e37ea2135be080dd25f1a2644c9132c109fa77d1
1/* 2 Copyright (C) 2004 - 2007 rt2x00 SourceForge Project 3 <http://rt2x00.serialmonkey.com> 4 5 This program is free software; you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation; either version 2 of the License, or 8 (at your option) any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program; if not, write to the 17 Free Software Foundation, Inc., 18 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 */ 20 21/* 22 Module: rt2x00lib 23 Abstract: Data structures and definitions for the rt2x00lib module. 24 */ 25 26#ifndef RT2X00LIB_H 27#define RT2X00LIB_H 28 29/* 30 * Interval defines 31 * Both the link tuner as the rfkill will be called once per second. 32 */ 33#define LINK_TUNE_INTERVAL ( round_jiffies_relative(HZ) ) 34#define RFKILL_POLL_INTERVAL ( 1000 ) 35 36/* 37 * Radio control handlers. 38 */ 39int rt2x00lib_enable_radio(struct rt2x00_dev *rt2x00dev); 40void rt2x00lib_disable_radio(struct rt2x00_dev *rt2x00dev); 41void rt2x00lib_toggle_rx(struct rt2x00_dev *rt2x00dev, enum dev_state state); 42void rt2x00lib_reset_link_tuner(struct rt2x00_dev *rt2x00dev); 43 44/* 45 * Initialization handlers. 46 */ 47int rt2x00lib_start(struct rt2x00_dev *rt2x00dev); 48void rt2x00lib_stop(struct rt2x00_dev *rt2x00dev); 49 50/* 51 * Configuration handlers. 52 */ 53void rt2x00lib_config_mac_addr(struct rt2x00_dev *rt2x00dev, u8 *mac); 54void rt2x00lib_config_bssid(struct rt2x00_dev *rt2x00dev, u8 *bssid); 55void rt2x00lib_config_type(struct rt2x00_dev *rt2x00dev, const int type); 56void rt2x00lib_config_antenna(struct rt2x00_dev *rt2x00dev, 57 enum antenna rx, enum antenna tx); 58void rt2x00lib_config(struct rt2x00_dev *rt2x00dev, 59 struct ieee80211_conf *conf, const int force_config); 60 61/* 62 * Firmware handlers. 63 */ 64#ifdef CONFIG_RT2X00_LIB_FIRMWARE 65int rt2x00lib_load_firmware(struct rt2x00_dev *rt2x00dev); 66void rt2x00lib_free_firmware(struct rt2x00_dev *rt2x00dev); 67#else 68static inline int rt2x00lib_load_firmware(struct rt2x00_dev *rt2x00dev) 69{ 70 return 0; 71} 72static inline void rt2x00lib_free_firmware(struct rt2x00_dev *rt2x00dev) 73{ 74} 75#endif /* CONFIG_RT2X00_LIB_FIRMWARE */ 76 77/* 78 * Debugfs handlers. 79 */ 80#ifdef CONFIG_RT2X00_LIB_DEBUGFS 81void rt2x00debug_register(struct rt2x00_dev *rt2x00dev); 82void rt2x00debug_deregister(struct rt2x00_dev *rt2x00dev); 83void rt2x00debug_dump_frame(struct rt2x00_dev *rt2x00dev, struct sk_buff *skb); 84#else 85static inline void rt2x00debug_register(struct rt2x00_dev *rt2x00dev) 86{ 87} 88 89static inline void rt2x00debug_deregister(struct rt2x00_dev *rt2x00dev) 90{ 91} 92 93static inline void rt2x00debug_dump_frame(struct rt2x00_dev *rt2x00dev, 94 struct sk_buff *skb) 95{ 96} 97#endif /* CONFIG_RT2X00_LIB_DEBUGFS */ 98 99/* 100 * RFkill handlers. 101 */ 102#ifdef CONFIG_RT2X00_LIB_RFKILL 103int rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev); 104void rt2x00rfkill_unregister(struct rt2x00_dev *rt2x00dev); 105int rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev); 106void rt2x00rfkill_free(struct rt2x00_dev *rt2x00dev); 107#else 108static inline int rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev) 109{ 110 return 0; 111} 112 113static inline void rt2x00rfkill_unregister(struct rt2x00_dev *rt2x00dev) 114{ 115} 116 117static inline int rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev) 118{ 119 return 0; 120} 121 122static inline void rt2x00rfkill_free(struct rt2x00_dev *rt2x00dev) 123{ 124} 125#endif /* CONFIG_RT2X00_LIB_RFKILL */ 126 127#endif /* RT2X00LIB_H */ 128