2009-02-05 02:05:55 +03:00
/* Encapsulate basic setting changes on Hermes hardware
*
* See copyright notice in main . c
*/
# ifndef _ORINOCO_HW_H_
# define _ORINOCO_HW_H_
# include <linux/types.h>
# include <linux/wireless.h>
2009-06-19 02:21:33 +04:00
# include <net/cfg80211.h>
2009-02-05 02:05:55 +03:00
/* Hardware BAPs */
# define USER_BAP 0
# define IRQ_BAP 1
/* WEP key sizes */
# define SMALL_KEY_SIZE 5
# define LARGE_KEY_SIZE 13
/* Number of supported channels */
# define NUM_CHANNELS 14
/* Forward declarations */
struct orinoco_private ;
struct dev_addr_list ;
2009-06-19 02:21:18 +04:00
int determine_fw_capabilities ( struct orinoco_private * priv ) ;
2009-06-19 02:21:19 +04:00
int orinoco_hw_read_card_settings ( struct orinoco_private * priv , u8 * dev_addr ) ;
2009-06-19 02:21:20 +04:00
int orinoco_hw_allocate_fid ( struct orinoco_private * priv ) ;
2009-02-05 02:05:55 +03:00
int orinoco_get_bitratemode ( int bitrate , int automatic ) ;
void orinoco_get_ratemode_cfg ( int ratemode , int * bitrate , int * automatic ) ;
2009-06-19 02:21:31 +04:00
int orinoco_hw_program_rids ( struct orinoco_private * priv ) ;
2009-02-05 02:05:55 +03:00
int orinoco_hw_get_tkip_iv ( struct orinoco_private * priv , int key , u8 * tsc ) ;
int __orinoco_hw_set_bitrate ( struct orinoco_private * priv ) ;
int orinoco_hw_get_act_bitrate ( struct orinoco_private * priv , int * bitrate ) ;
int __orinoco_hw_set_wap ( struct orinoco_private * priv ) ;
int __orinoco_hw_setup_wepkeys ( struct orinoco_private * priv ) ;
int __orinoco_hw_setup_enc ( struct orinoco_private * priv ) ;
2009-06-19 02:21:25 +04:00
int __orinoco_hw_set_tkip_key ( struct orinoco_private * priv , int key_idx ,
2009-08-06 00:23:29 +04:00
int set_tx , u8 * key , u8 * rsc , size_t rsc_len ,
u8 * tsc , size_t tsc_len ) ;
2009-02-05 02:05:55 +03:00
int orinoco_clear_tkip_key ( struct orinoco_private * priv , int key_idx ) ;
int __orinoco_hw_set_multicast_list ( struct orinoco_private * priv ,
struct dev_addr_list * mc_list ,
int mc_count , int promisc ) ;
int orinoco_hw_get_essid ( struct orinoco_private * priv , int * active ,
char buf [ IW_ESSID_MAX_SIZE + 1 ] ) ;
int orinoco_hw_get_freq ( struct orinoco_private * priv ) ;
int orinoco_hw_get_bitratelist ( struct orinoco_private * priv ,
int * numrates , s32 * rates , int max ) ;
2009-06-19 02:21:33 +04:00
int orinoco_hw_trigger_scan ( struct orinoco_private * priv ,
const struct cfg80211_ssid * ssid ) ;
2009-08-06 00:23:30 +04:00
int orinoco_hw_disassociate ( struct orinoco_private * priv ,
u8 * addr , u16 reason_code ) ;
2009-08-06 00:23:31 +04:00
int orinoco_hw_get_current_bssid ( struct orinoco_private * priv ,
u8 * addr ) ;
2009-02-05 02:05:55 +03:00
# endif /* _ORINOCO_HW_H_ */