mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-25 06:03:36 -04:00
nl80211: add testmode dump support
This adds dump support to testmode. The testmode dump support in nl80211 requires using two of the six cb->args, the rest can be used by the driver to figure out where the dump position is at or to store other data across invocations. Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
2e5ef4599a
commit
71063f0e89
4 changed files with 117 additions and 0 deletions
|
|
@ -1284,6 +1284,12 @@ struct cfg80211_wowlan {
|
|||
* frame on another channel
|
||||
*
|
||||
* @testmode_cmd: run a test mode command
|
||||
* @testmode_dump: Implement a test mode dump. The cb->args[2] and up may be
|
||||
* used by the function, but 0 and 1 must not be touched. Additionally,
|
||||
* return error codes other than -ENOBUFS and -ENOENT will terminate the
|
||||
* dump and return to userspace with an error, so be careful. If any data
|
||||
* was passed in from userspace then the data/len arguments will be present
|
||||
* and point to the data contained in %NL80211_ATTR_TESTDATA.
|
||||
*
|
||||
* @set_bitrate_mask: set the bitrate mask configuration
|
||||
*
|
||||
|
|
@ -1433,6 +1439,9 @@ struct cfg80211_ops {
|
|||
|
||||
#ifdef CONFIG_NL80211_TESTMODE
|
||||
int (*testmode_cmd)(struct wiphy *wiphy, void *data, int len);
|
||||
int (*testmode_dump)(struct wiphy *wiphy, struct sk_buff *skb,
|
||||
struct netlink_callback *cb,
|
||||
void *data, int len);
|
||||
#endif
|
||||
|
||||
int (*set_bitrate_mask)(struct wiphy *wiphy,
|
||||
|
|
@ -2849,8 +2858,10 @@ struct sk_buff *cfg80211_testmode_alloc_event_skb(struct wiphy *wiphy,
|
|||
void cfg80211_testmode_event(struct sk_buff *skb, gfp_t gfp);
|
||||
|
||||
#define CFG80211_TESTMODE_CMD(cmd) .testmode_cmd = (cmd),
|
||||
#define CFG80211_TESTMODE_DUMP(cmd) .testmode_dump = (cmd),
|
||||
#else
|
||||
#define CFG80211_TESTMODE_CMD(cmd)
|
||||
#define CFG80211_TESTMODE_DUMP(cmd)
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1816,6 +1816,7 @@ enum ieee80211_ampdu_mlme_action {
|
|||
*
|
||||
* @testmode_cmd: Implement a cfg80211 test mode command.
|
||||
* The callback can sleep.
|
||||
* @testmode_dump: Implement a cfg80211 test mode dump. The callback can sleep.
|
||||
*
|
||||
* @flush: Flush all pending frames from the hardware queue, making sure
|
||||
* that the hardware queues are empty. If the parameter @drop is set
|
||||
|
|
@ -1936,6 +1937,9 @@ struct ieee80211_ops {
|
|||
void (*set_coverage_class)(struct ieee80211_hw *hw, u8 coverage_class);
|
||||
#ifdef CONFIG_NL80211_TESTMODE
|
||||
int (*testmode_cmd)(struct ieee80211_hw *hw, void *data, int len);
|
||||
int (*testmode_dump)(struct ieee80211_hw *hw, struct sk_buff *skb,
|
||||
struct netlink_callback *cb,
|
||||
void *data, int len);
|
||||
#endif
|
||||
void (*flush)(struct ieee80211_hw *hw, bool drop);
|
||||
void (*channel_switch)(struct ieee80211_hw *hw,
|
||||
|
|
|
|||
Loading…
Reference in a new issue