1 #ifndef _ZD_IEEE80211_H
2 #define _ZD_IEEE80211_H
4 #include <net/ieee80211.h>
7 /* Additional definitions from the standards.
10 #define ZD_REGDOMAIN_FCC 0x10
11 #define ZD_REGDOMAIN_IC 0x20
12 #define ZD_REGDOMAIN_ETSI 0x30
13 #define ZD_REGDOMAIN_SPAIN 0x31
14 #define ZD_REGDOMAIN_FRANCE 0x32
15 #define ZD_REGDOMAIN_JAPAN_ADD 0x40
16 #define ZD_REGDOMAIN_JAPAN 0x41
23 struct channel_range
{
25 u8 end
; /* exclusive (channel must be less than end) */
30 int zd_geo_init(struct ieee80211_device
*ieee
, u8 regdomain
);
32 const struct channel_range
*zd_channel_range(u8 regdomain
);
33 int zd_regdomain_supports_channel(u8 regdomain
, u8 channel
);
34 int zd_regdomain_supported(u8 regdomain
);
36 /* for 2.4 GHz band */
37 int zd_channel_to_freq(struct iw_freq
*freq
, u8 channel
);
38 int zd_find_channel(u8
*channel
, const struct iw_freq
*freq
);
40 #define ZD_PLCP_SERVICE_LENGTH_EXTENSION 0x80
42 struct ofdm_plcp_header
{
45 } __attribute__((packed
));
47 static inline u8
zd_ofdm_plcp_header_rate(
48 const struct ofdm_plcp_header
*header
)
50 return header
->prefix
[0] & 0xf;
53 /* These are referred to as zd_rates */
54 #define ZD_OFDM_RATE_6M 0xb
55 #define ZD_OFDM_RATE_9M 0xf
56 #define ZD_OFDM_RATE_12M 0xa
57 #define ZD_OFDM_RATE_18M 0xe
58 #define ZD_OFDM_RATE_24M 0x9
59 #define ZD_OFDM_RATE_36M 0xd
60 #define ZD_OFDM_RATE_48M 0x8
61 #define ZD_OFDM_RATE_54M 0xc
63 struct cck_plcp_header
{
68 } __attribute__((packed
));
70 static inline u8
zd_cck_plcp_header_rate(const struct cck_plcp_header
*header
)
72 return header
->signal
;
75 #define ZD_CCK_SIGNAL_1M 0x0a
76 #define ZD_CCK_SIGNAL_2M 0x14
77 #define ZD_CCK_SIGNAL_5M5 0x37
78 #define ZD_CCK_SIGNAL_11M 0x6e
86 #endif /* _ZD_IEEE80211_H */