mac80211.h (948d887dec1042a7d78ae311908113e26502062f) | mac80211.h (4049e09acdf4ffd270cb8fbf1cf5b39c3d02357c) |
---|---|
1/* 2 * mac80211 <-> driver interface 3 * 4 * Copyright 2002-2005, Devicescape Software, Inc. 5 * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz> 6 * Copyright 2007-2010 Johannes Berg <johannes@sipsolutions.net> 7 * 8 * This program is free software; you can redistribute it and/or modify --- 1608 unchanged lines hidden (view full) --- 1617 */ 1618enum ieee80211_tx_sync_type { 1619 IEEE80211_TX_SYNC_AUTH, 1620 IEEE80211_TX_SYNC_ASSOC, 1621 IEEE80211_TX_SYNC_ACTION, 1622}; 1623 1624/** | 1/* 2 * mac80211 <-> driver interface 3 * 4 * Copyright 2002-2005, Devicescape Software, Inc. 5 * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz> 6 * Copyright 2007-2010 Johannes Berg <johannes@sipsolutions.net> 7 * 8 * This program is free software; you can redistribute it and/or modify --- 1608 unchanged lines hidden (view full) --- 1617 */ 1618enum ieee80211_tx_sync_type { 1619 IEEE80211_TX_SYNC_AUTH, 1620 IEEE80211_TX_SYNC_ASSOC, 1621 IEEE80211_TX_SYNC_ACTION, 1622}; 1623 1624/** |
1625 * enum ieee80211_frame_release_type - frame release reason 1626 * @IEEE80211_FRAME_RELEASE_PSPOLL: frame released for PS-Poll 1627 */ 1628enum ieee80211_frame_release_type { 1629 IEEE80211_FRAME_RELEASE_PSPOLL, 1630}; 1631 1632/** |
|
1625 * struct ieee80211_ops - callbacks from mac80211 to the driver 1626 * 1627 * This structure contains various callbacks that the driver may 1628 * handle or, in some cases, must handle, for example to configure 1629 * the hardware to a new channel or to transmit a frame. 1630 * 1631 * @tx: Handler that 802.11 module calls for each transmitted frame. 1632 * skb contains the buffer starting from the IEEE 802.11 header. --- 293 unchanged lines hidden (view full) --- 1926 * @tx_frames_pending: Check if there is any pending frame in the hardware 1927 * queues before entering power save. 1928 * 1929 * @set_bitrate_mask: Set a mask of rates to be used for rate control selection 1930 * when transmitting a frame. Currently only legacy rates are handled. 1931 * The callback can sleep. 1932 * @rssi_callback: Notify driver when the average RSSI goes above/below 1933 * thresholds that were registered previously. The callback can sleep. | 1633 * struct ieee80211_ops - callbacks from mac80211 to the driver 1634 * 1635 * This structure contains various callbacks that the driver may 1636 * handle or, in some cases, must handle, for example to configure 1637 * the hardware to a new channel or to transmit a frame. 1638 * 1639 * @tx: Handler that 802.11 module calls for each transmitted frame. 1640 * skb contains the buffer starting from the IEEE 802.11 header. --- 293 unchanged lines hidden (view full) --- 1934 * @tx_frames_pending: Check if there is any pending frame in the hardware 1935 * queues before entering power save. 1936 * 1937 * @set_bitrate_mask: Set a mask of rates to be used for rate control selection 1938 * when transmitting a frame. Currently only legacy rates are handled. 1939 * The callback can sleep. 1940 * @rssi_callback: Notify driver when the average RSSI goes above/below 1941 * thresholds that were registered previously. The callback can sleep. |
1942 * 1943 * @release_buffered_frames: Release buffered frames according to the given 1944 * parameters. In the case where the driver buffers some frames for 1945 * sleeping stations mac80211 will use this callback to tell the driver 1946 * to release some frames, either for PS-poll or uAPSD. 1947 * Note that if the @more_data paramter is %false the driver must check 1948 * if there are more frames on the given TIDs, and if there are more than 1949 * the frames being released then it must still set the more-data bit in 1950 * the frame. If the @more_data parameter is %true, then of course the 1951 * more-data bit must always be set. 1952 * The @tids parameter tells the driver which TIDs to release frames 1953 * from, for PS-poll it will always have only a single bit set. 1954 * In the case this is used for uAPSD, the @num_frames parameter may be 1955 * bigger than one, but the driver may send fewer frames (it must send 1956 * at least one, however). In this case it is also responsible for 1957 * setting the EOSP flag in the QoS header of the frames. 1958 * This callback must be atomic. |
|
1934 */ 1935struct ieee80211_ops { 1936 void (*tx)(struct ieee80211_hw *hw, struct sk_buff *skb); 1937 int (*start)(struct ieee80211_hw *hw); 1938 void (*stop)(struct ieee80211_hw *hw); 1939#ifdef CONFIG_PM 1940 int (*suspend)(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan); 1941 int (*resume)(struct ieee80211_hw *hw); --- 98 unchanged lines hidden (view full) --- 2040 int (*set_ringparam)(struct ieee80211_hw *hw, u32 tx, u32 rx); 2041 void (*get_ringparam)(struct ieee80211_hw *hw, 2042 u32 *tx, u32 *tx_max, u32 *rx, u32 *rx_max); 2043 bool (*tx_frames_pending)(struct ieee80211_hw *hw); 2044 int (*set_bitrate_mask)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, 2045 const struct cfg80211_bitrate_mask *mask); 2046 void (*rssi_callback)(struct ieee80211_hw *hw, 2047 enum ieee80211_rssi_event rssi_event); | 1959 */ 1960struct ieee80211_ops { 1961 void (*tx)(struct ieee80211_hw *hw, struct sk_buff *skb); 1962 int (*start)(struct ieee80211_hw *hw); 1963 void (*stop)(struct ieee80211_hw *hw); 1964#ifdef CONFIG_PM 1965 int (*suspend)(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan); 1966 int (*resume)(struct ieee80211_hw *hw); --- 98 unchanged lines hidden (view full) --- 2065 int (*set_ringparam)(struct ieee80211_hw *hw, u32 tx, u32 rx); 2066 void (*get_ringparam)(struct ieee80211_hw *hw, 2067 u32 *tx, u32 *tx_max, u32 *rx, u32 *rx_max); 2068 bool (*tx_frames_pending)(struct ieee80211_hw *hw); 2069 int (*set_bitrate_mask)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, 2070 const struct cfg80211_bitrate_mask *mask); 2071 void (*rssi_callback)(struct ieee80211_hw *hw, 2072 enum ieee80211_rssi_event rssi_event); |
2073 2074 void (*release_buffered_frames)(struct ieee80211_hw *hw, 2075 struct ieee80211_sta *sta, 2076 u16 tids, int num_frames, 2077 enum ieee80211_frame_release_type reason, 2078 bool more_data); |
|
2048}; 2049 2050/** 2051 * ieee80211_alloc_hw - Allocate a new hardware device 2052 * 2053 * This must be called once for each hardware device. The returned pointer 2054 * must be used to refer to this device when calling other functions. 2055 * mac80211 allocates a private data area for the driver pointed to by --- 1416 unchanged lines hidden --- | 2079}; 2080 2081/** 2082 * ieee80211_alloc_hw - Allocate a new hardware device 2083 * 2084 * This must be called once for each hardware device. The returned pointer 2085 * must be used to refer to this device when calling other functions. 2086 * mac80211 allocates a private data area for the driver pointed to by --- 1416 unchanged lines hidden --- |