1 #ifndef _LINUX_IF_WIC_H
2 #define _LINUX_IF_WIC_H
3
4 #include <linux/sockios.h>
5
6 #define SIOCDEVWIC SIOCDEVPRIVATE
7
8 struct wicconf
9 {
10 unsigned char pcmd;
11 unsigned char data[120];
12 unsigned char len;
13 };
14
15 /* WIC host to controller commands */
16
17 #define WIC_AYT 0x10 /* test dki */
18 #define WIC_RESET 0x11 /* reset controller */
19 #define WIC_SETSN 0x21 /* set station name */
20 #define WIC_SETPS 0x22 /* set power saving mode */
21 #define WIC_SETAF 0x23 /* set announce filter */
22 #define WIC_SETGPF 0x24 /* set GPSP filter */
23 #define WIC_GETVERH 0x61 /* get interface controller version */
24 #define WIC_GETNL 0x62 /* get neighbor list */
25 #define WIC_GETSN 0x65 /* get station name */
26 #define WIC_CLRSTATS 0x83 /* clear controller statistics */
27 #define WIC_SETNET 0x84 /* set network configuration */
28 #define WIC_SETSYS 0x85 /* set system configuration */
29 #define WIC_GETSTATS 0xc1 /* get statistics */
30 #define WIC_GETVERM 0xc3 /* get MAC version */
31 #define WIC_GETNET 0xc4 /* get network configuration */
32 #define WIC_GETSYS 0xc5 /* get system configuration */
33
34 /*
35 * structure used for the GETNET/SETNET command
36 */
37
38 struct wic_net {
39 unsigned char ula[6]; /* ula of interface */
40 unsigned char mode; /* operating mode */
41 #define NET_MODE_ME 0x01 /* receive my ula */
42 #define NET_MODE_BCAST 0x02 /* receive bcasts */
43 #define NET_MODE_MCAST 0x04 /* receive mcasts */
44 #define NET_MODE_PROM 0x08 /* promiscuous */
45 #define NET_MODE_HC 0x10 /* is a hop coordinator */
46 #define NET_MODE_HC_VALID 0x20 /* hc address is valid */
47 #define NET_MODE_HCAP 0x40 /* hc is also ap */
48 #define NET_MODE_HC_KNOWN 0x80 /* hc is known */
49 unsigned char rts_lo; /* rts threshold */
50 unsigned char rts_hi; /* rts threshold */
51 unsigned char retry; /* retry limit */
52 unsigned char hc_ula[6]; /* ula of hc */
53 unsigned char key[4]; /* network key */
54 unsigned char dsl; /* direct send limit */
55 unsigned char res1; /* reserved */
56 };
57
58 /*
59 * structure used for the GETSYS/SETSYS command
60 */
61
62 struct wic_sys {
63 unsigned char mode; /* set operating mode */
64 #define SYS_MODE_ANT_DIV 0x00 /* use antenna diversity */
65 #define SYS_MODE_ANT_1 0x01 /* use ant 1 for tx */
66 #define SYS_MODE_ANT_2 0x02 /* use ant 2 for tx */
67 #define SYS_MODE_HC_LOCK 0x04 /* lock onto current hc */
68 #define SYS_MODE_DEBUG 0x08 /* upload failed frames */
69 #define SYS_MODE_IAM_AP 0x10 /* I am AP */
70 #define SYS_MODE_IAM_HC 0x20 /* I am HC */
71 #define SYS_MODE_USE_SKIP 0x40 /* use skipping mechanism */
72 #define SYS_MODE_AUTO 0x80 /* station is in auto mode */
73 unsigned char switches; /* radio/controller switches */
74 #define SYS_SWITCH_STDBY 0x01 /* switch radio to standby */
75 #define SYS_SWITCH_TXRX 0x02 /* 1 = tx, manual mode only */
76 #define SYS_SWITCH_PA 0x04 /* 1 = enable PA on radio */
77 #define SYS_SWITCH_PWR 0x10 /* 1 = hi, 0 = lo power output */
78 #define SYS_SWITCH_RES1 0x20 /* reserved, must be 0 */
79 #define SYS_SWITCH_LIGHTS 0x40 /* light for tx & rx */
80 #define SYS_SWITCH_LIGHTS_HC 0x80 /* light for rx while coordinated */
81 unsigned char hop_min; /* hop range */
82 unsigned char hop_max; /* hop range */
83 unsigned char pre_len; /* preamble length (bytes) */
84 unsigned char pre_match; /* valid preamble match (bytes) */
85 unsigned char mod; /* data mod: 1 = 8:1, 0 = none */
86 unsigned char cca_mode; /* cca flags */
87 #define CCA_PKT_DET_BSY 0x01 /* busy if packet is detected */
88 #define CCA_VIRT_CARR 0x02 /* use virtual carrier */
89 #define CCA_RSSI_BSY 0x04 /* busy if rssi > threshold */
90 #define CCA_DATA_BSY 0x08 /* busy if valid data > XXX usec */
91 unsigned char dwell_hi; /* dwell time */
92 unsigned char dwell_lo; /* dwell time */
93 unsigned char hc_timeout; /* HC timeout */
94 unsigned char rssi; /* rssi threshold */
95 unsigned char hc_rssi; /* rssi of last hc frame */
96 unsigned char hc_rssi_chan; /* channel of hc rssi value */
97 };
98
99
100 #endif /* _LINUX_IF_WIC_H */
101
102