^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /* Raytheon wireless LAN PCMCIA card driver for Linux
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) A PCMCIA client driver for the Raylink wireless network card
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) Written by Corey Thomas
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #ifndef _RAY_CS_H_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #define _RAY_CS_H_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) struct beacon_rx {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) struct mac_header mac;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) UCHAR timestamp[8];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) UCHAR beacon_intvl[2];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) UCHAR capability[2];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) UCHAR elements[sizeof(struct essid_element)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) + sizeof(struct rates_element)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) + sizeof(struct freq_hop_element)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) + sizeof(struct japan_call_sign_element)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) + sizeof(struct tim_element)];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) /* Return values for get_free{,_tx}_ccs */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) #define ECCSFULL (-1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) #define ECCSBUSY (-2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) #define ECARDGONE (-3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) typedef struct ray_dev_t {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) int card_status;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) int authentication_state;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) void __iomem *sram; /* pointer to beginning of shared RAM */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) void __iomem *amem; /* pointer to attribute mem window */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) void __iomem *rmem; /* pointer to receive buffer window */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) struct pcmcia_device *finder; /* pointer back to struct pcmcia_device for card */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) struct timer_list timer;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) unsigned long tx_ccs_lock;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) unsigned long ccs_lock;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) int dl_param_ccs;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) union {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) struct b4_startup_params b4;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) struct b5_startup_params b5;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) } sparm;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) int timeout_flag;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) UCHAR supported_rates[8];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) UCHAR japan_call_sign[12];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) struct startup_res_6 startup_res;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) int num_multi;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) /* Network parameters from start/join */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) UCHAR bss_id[6];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) UCHAR auth_id[6];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) UCHAR net_default_tx_rate;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) UCHAR encryption;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) struct net_device_stats stats;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) UCHAR net_type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) UCHAR sta_type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) UCHAR fw_ver;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) UCHAR fw_bld;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) UCHAR fw_var;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) UCHAR ASIC_version;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) UCHAR assoc_id[2];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) UCHAR tib_length;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) UCHAR last_rsl;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) int beacon_rxed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) struct beacon_rx last_bcn;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) iw_stats wstats; /* Wireless specific stats */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) #ifdef WIRELESS_SPY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) struct iw_spy_data spy_data;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) struct iw_public_data wireless_data;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) #endif /* WIRELESS_SPY */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) } ray_dev_t;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) /*****************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) #endif /* _RAY_CS_H_ */