1 /* Encapsulate basic setting changes on Hermes hardware 2 * 3 * See copyright notice in main.c 4 */ 5 #ifndef _ORINOCO_HW_H_ 6 #define _ORINOCO_HW_H_ 7 8 #include <linux/types.h> 9 #include <linux/wireless.h> 10 #include <net/cfg80211.h> 11 12 /* Hardware BAPs */ 13 #define USER_BAP 0 14 #define IRQ_BAP 1 15 16 /* WEP key sizes */ 17 #define SMALL_KEY_SIZE 5 18 #define LARGE_KEY_SIZE 13 19 20 /* Number of supported channels */ 21 #define NUM_CHANNELS 14 22 23 /* Forward declarations */ 24 struct orinoco_private; 25 26 int determine_fw_capabilities(struct orinoco_private *priv, char *fw_name, 27 size_t fw_name_len, u32 *hw_ver); 28 int orinoco_hw_read_card_settings(struct orinoco_private *priv, u8 *dev_addr); 29 int orinoco_hw_allocate_fid(struct orinoco_private *priv); 30 int orinoco_get_bitratemode(int bitrate, int automatic); 31 void orinoco_get_ratemode_cfg(int ratemode, int *bitrate, int *automatic); 32 33 int orinoco_hw_program_rids(struct orinoco_private *priv); 34 int orinoco_hw_get_tkip_iv(struct orinoco_private *priv, int key, u8 *tsc); 35 int __orinoco_hw_set_bitrate(struct orinoco_private *priv); 36 int orinoco_hw_get_act_bitrate(struct orinoco_private *priv, int *bitrate); 37 int __orinoco_hw_set_wap(struct orinoco_private *priv); 38 int __orinoco_hw_setup_wepkeys(struct orinoco_private *priv); 39 int __orinoco_hw_setup_enc(struct orinoco_private *priv); 40 int __orinoco_hw_set_tkip_key(struct orinoco_private *priv, int key_idx, 41 int set_tx, const u8 *key, const u8 *rsc, 42 size_t rsc_len, const u8 *tsc, size_t tsc_len); 43 int orinoco_clear_tkip_key(struct orinoco_private *priv, int key_idx); 44 int __orinoco_hw_set_multicast_list(struct orinoco_private *priv, 45 struct net_device *dev, 46 int mc_count, int promisc); 47 int orinoco_hw_get_essid(struct orinoco_private *priv, int *active, 48 char buf[IW_ESSID_MAX_SIZE + 1]); 49 int orinoco_hw_get_freq(struct orinoco_private *priv); 50 int orinoco_hw_get_bitratelist(struct orinoco_private *priv, 51 int *numrates, s32 *rates, int max); 52 int orinoco_hw_trigger_scan(struct orinoco_private *priv, 53 const struct cfg80211_ssid *ssid); 54 int orinoco_hw_disassociate(struct orinoco_private *priv, 55 u8 *addr, u16 reason_code); 56 int orinoco_hw_get_current_bssid(struct orinoco_private *priv, 57 u8 *addr); 58 59 #endif /* _ORINOCO_HW_H_ */ 60