mac802154: add wpan_phy priv id
This patch adds an unique id for an wpan_phy. This behaviour is mostly grabbed from wireless stack. This is needed for upcomming patches which identify the wpan netdev while NETDEV_CHANGENAME in netdev notify function. Signed-off-by: Alexander Aring <alex.aring@gmail.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
parent
2789e6297f
commit
6322d50d87
4 changed files with 16 additions and 0 deletions
|
@ -42,6 +42,14 @@ struct cfg802154_ops {
|
|||
struct wpan_phy {
|
||||
struct mutex pib_lock;
|
||||
|
||||
/* If multiple wpan_phys are registered and you're handed e.g.
|
||||
* a regular netdev with assigned ieee802154_ptr, you won't
|
||||
* know whether it points to a wpan_phy your driver has registered
|
||||
* or not. Assign this to something global to your driver to
|
||||
* help determine whether you own this wpan_phy or not.
|
||||
*/
|
||||
const void *privid;
|
||||
|
||||
/*
|
||||
* This is a PIB according to 802.15.4-2011.
|
||||
* We do not provide timing-related variables, as they
|
||||
|
|
|
@ -96,6 +96,9 @@ struct ieee802154_sub_if_data {
|
|||
|
||||
#define MAC802154_CHAN_NONE 0xff /* No channel is assigned */
|
||||
|
||||
/* utility functions/constants */
|
||||
extern const void *const mac802154_wpan_phy_privid; /* for wpan_phy privid */
|
||||
|
||||
static inline struct ieee802154_local *
|
||||
hw_to_local(struct ieee802154_hw *hw)
|
||||
{
|
||||
|
|
|
@ -92,6 +92,8 @@ ieee802154_alloc_hw(size_t priv_data_len, const struct ieee802154_ops *ops)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
phy->privid = mac802154_wpan_phy_privid;
|
||||
|
||||
local = wpan_phy_priv(phy);
|
||||
local->phy = phy;
|
||||
local->hw.phy = local->phy;
|
||||
|
|
|
@ -15,6 +15,9 @@
|
|||
|
||||
#include "ieee802154_i.h"
|
||||
|
||||
/* privid for wpan_phys to determine whether they belong to us or not */
|
||||
const void *const mac802154_wpan_phy_privid = &mac802154_wpan_phy_privid;
|
||||
|
||||
void ieee802154_wake_queue(struct ieee802154_hw *hw)
|
||||
{
|
||||
struct ieee802154_local *local = hw_to_local(hw);
|
||||
|
|
Loading…
Reference in a new issue