improve dependency handling, fix some package makefile bugs
[openwrt.git] / target / linux / package / ieee80211-dscape / src / wme.h
1 /*
2  * IEEE 802.11 driver (80211.o) - QoS datatypes
3  * Copyright 2004, Instant802 Networks, Inc.
4  * Copyright 2005, Devicescape Software, Inc.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  */
10
11 #include <asm/byteorder.h>
12 #include <net/pkt_sched.h>
13
14 #define QOS_CONTROL_LEN 2
15
16 #define QOS_CONTROL_ACK_POLICY_NORMAL 0
17 #define QOS_CONTROL_ACK_POLICY_NOACK 1
18
19 #define QOS_CONTROL_TID_MASK 0x0f
20 #define QOS_CONTROL_ACK_POLICY_SHIFT 5
21
22 /* This bit field structure should not be used; it can cause compiler to
23  * generate unaligned accesses and inefficient code. */
24 struct qos_control {
25 #if defined(__LITTLE_ENDIAN_BITFIELD)
26         u8      tag1d:3, /* bits 0-2 */
27                 reserved1:1,
28                 eosp:1,
29                 ack_policy:2,
30                 reserved2:1;
31 #elif defined (__BIG_ENDIAN_BITFIELD)
32         u8      reserved2:1,
33                 ack_policy:2,
34                 eosp:1,
35                 reserved1:1,
36                 tag1d:3; /* bits 0-2 */
37 #else
38 #error  "Please fix <asm/byteorder.h>"
39 #endif
40         u8 reserved;
41 } __attribute__ ((packed));
42
43 ieee80211_txrx_result
44 ieee80211_rx_h_parse_qos(struct ieee80211_txrx_data *rx);
45
46 ieee80211_txrx_result
47 ieee80211_rx_h_remove_qos_control(struct ieee80211_txrx_data *rx);
48
49 void ieee80211_install_qdisc(struct net_device *dev);
50
51 int ieee80211_wme_register(void);
52 void ieee80211_wme_unregister(void);
53