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