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