rt2x00lib.h revision 69f81a2cac860cf183eb9ef7787525c3552d4612
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_initialize(struct rt2x00_dev *rt2x00dev); 48void rt2x00lib_uninitialize(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); 83#else 84static inline void rt2x00debug_register(struct rt2x00_dev *rt2x00dev) 85{ 86} 87 88static inline void rt2x00debug_deregister(struct rt2x00_dev *rt2x00dev) 89{ 90} 91#endif /* CONFIG_RT2X00_LIB_DEBUGFS */ 92 93/* 94 * RFkill handlers. 95 */ 96#ifdef CONFIG_RT2X00_LIB_RFKILL 97int rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev); 98void rt2x00rfkill_unregister(struct rt2x00_dev *rt2x00dev); 99int rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev); 100void rt2x00rfkill_free(struct rt2x00_dev *rt2x00dev); 101#else 102static inline int rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev) 103{ 104 return 0; 105} 106 107static inline void rt2x00rfkill_unregister(struct rt2x00_dev *rt2x00dev) 108{ 109} 110 111static inline int rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev) 112{ 113 return 0; 114} 115 116static inline void rt2x00rfkill_free(struct rt2x00_dev *rt2x00dev) 117{ 118} 119#endif /* CONFIG_RT2X00_LIB_RFKILL */ 120 121#endif /* RT2X00LIB_H */ 122