STRUCT STA_AMPDU_MLM(9) Internals STRUCT STA_AMPDU_MLM(9)NAME
struct_sta_ampdu_mlme - STA aggregation information.
SYNOPSIS
struct sta_ampdu_mlme {
struct mutex mtx;
struct tid_ampdu_rx __rcu * tid_rx[IEEE80211_NUM_TIDS];
unsigned long tid_rx_timer_expired[BITS_TO_LONGS(IEEE80211_NUM_TIDS)];
unsigned long tid_rx_stop_requested[BITS_TO_LONGS(IEEE80211_NUM_TIDS)];
struct work_struct work;
struct tid_ampdu_tx __rcu * tid_tx[IEEE80211_NUM_TIDS];
struct tid_ampdu_tx * tid_start_tx[IEEE80211_NUM_TIDS];
unsigned long last_addba_req_time[IEEE80211_NUM_TIDS];
u8 addba_req_num[IEEE80211_NUM_TIDS];
u8 dialog_token_allocator;
};
MEMBERS
mtx
mutex to protect all TX data (except non-NULL assignments to tid_tx[idx], which are protected by the sta spinlock)
tid_rx[IEEE80211_NUM_TIDS]
aggregation info for Rx per TID -- RCU protected
tid_rx_timer_expired[BITS_TO_LONGS(IEEE80211_NUM_TIDS)]
bitmap indicating on which TIDs the RX timer expired until the work for it runs
tid_rx_stop_requested[BITS_TO_LONGS(IEEE80211_NUM_TIDS)]
bitmap indicating which BA sessions per TID the driver requested to close until the work for it runs
work
work struct for starting/stopping aggregation
tid_tx[IEEE80211_NUM_TIDS]
aggregation info for Tx per TID
tid_start_tx[IEEE80211_NUM_TIDS]
sessions where start was requested
last_addba_req_time[IEEE80211_NUM_TIDS]
timestamp of the last addBA request.
addba_req_num[IEEE80211_NUM_TIDS]
number of times addBA request has been sent.
dialog_token_allocator
dialog token enumerator for each new session;
AUTHOR
Johannes Berg <johannes@sipsolutions.net>
Author.
COPYRIGHT Kernel Hackers Manual 3.10 June 2014 STRUCT STA_AMPDU_MLM(9)
Check Out this Related Man Page
STRUCT FF_DEVICE(9) Input Subsystem STRUCT FF_DEVICE(9)NAME
struct_ff_device - force-feedback part of an input device
SYNOPSIS
struct ff_device {
int (* upload) (struct input_dev *dev, struct ff_effect *effect,struct ff_effect *old);
int (* erase) (struct input_dev *dev, int effect_id);
int (* playback) (struct input_dev *dev, int effect_id, int value);
void (* set_gain) (struct input_dev *dev, u16 gain);
void (* set_autocenter) (struct input_dev *dev, u16 magnitude);
void (* destroy) (struct ff_device *);
void * private;
unsigned long ffbit[BITS_TO_LONGS(FF_CNT)];
struct mutex mutex;
int max_effects;
struct ff_effect * effects;
struct file * effect_owners[];
};
MEMBERS
upload
Called to upload an new effect into device
erase
Called to erase an effect from device
playback
Called to request device to start playing specified effect
set_gain
Called to set specified gain
set_autocenter
Called to auto-center device
destroy
called by input core when parent input device is being destroyed
private
driver-specific data, will be freed automatically
ffbit[BITS_TO_LONGS(FF_CNT)]
bitmap of force feedback capabilities truly supported by device (not emulated like ones in input_dev->ffbit)
mutex
mutex for serializing access to the device
max_effects
maximum number of effects supported by device
effects
pointer to an array of effects currently loaded into device
effect_owners[]
array of effect owners; when file handle owning an effect gets closed the effect is automatically erased
DESCRIPTION
Every force-feedback device must implement upload and playback methods; erase is optional. set_gain and set_autocenter need only be
implemented if driver sets up FF_GAIN and FF_AUTOCENTER bits.
Note that playback, set_gain and set_autocenter are called with dev->event_lock spinlock held and interrupts off and thus may not sleep.
COPYRIGHT Kernel Hackers Manual 3.10 June 2014 STRUCT FF_DEVICE(9)