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 ---