Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6322d50d authored by Alexander Aring's avatar Alexander Aring Committed by Marcel Holtmann
Browse files

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: default avatarAlexander Aring <alex.aring@gmail.com>
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent 2789e629
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -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
+3 −0
Original line number Diff line number Diff line
@@ -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)
{
+2 −0
Original line number Diff line number Diff line
@@ -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;
+3 −0
Original line number Diff line number Diff line
@@ -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);