/* As in mac80211 slaves list is modified: * 1) under the RTNL * 2) protected by slaves_mtx; * 3) in an RCU manner * * So atomic readers can use any of this protection methods.
*/ struct list_head interfaces; struct mutex iflist_mtx;
/* Data related workqueue */ struct workqueue_struct *workqueue; /* MAC commands related workqueue */ struct workqueue_struct *mac_wq;
/* Slave interface definition. * * Slaves represent typical network interfaces available from userspace. * Each ieee802154 device/transceiver may have several slaves and able * to be associated with several networks at the same time.
*/ struct ieee802154_sub_if_data { struct list_head list; /* the ieee802154_priv->slaves list */
/* Each interface starts and works in nominal state at a given filtering * level given by iface_default_filtering, which is set once for all at * the interface creation and should not evolve over time. For some MAC * operations however, the filtering level may change temporarily, as * reflected in the required_filtering field. The actual filtering at * the PHY level may be different and is shown in struct wpan_phy.
*/ enum ieee802154_filtering_level iface_default_filtering; enum ieee802154_filtering_level required_filtering;
unsignedlong state; char name[IFNAMSIZ];
/* protects sec from concurrent access by netlink. access by * encrypt/decrypt/header_create safe without additional protection.
*/ struct mutex sec_mtx;
/** * ieee802154_hold_queue - hold ieee802154 queue * @local: main mac object * * Hold a queue by incrementing an atomic counter and requesting the netif * queues to be stopped. The queues cannot be woken up while the counter has not * been reset with as any ieee802154_release_queue() calls as needed.
*/ void ieee802154_hold_queue(struct ieee802154_local *local);
/** * ieee802154_release_queue - release ieee802154 queue * @local: main mac object * * Release a queue which is held by decrementing an atomic counter and wake it * up only if the counter reaches 0.
*/ void ieee802154_release_queue(struct ieee802154_local *local);
/** * ieee802154_disable_queue - disable ieee802154 queue * @local: main mac object * * When trying to sync the Tx queue, we cannot just stop the queue * (which is basically a bit being set without proper lock handling) * because it would be racy. We actually need to call netif_tx_disable() * instead, which is done by this helper. Restarting the queue can * however still be done with a regular wake call.
*/ void ieee802154_disable_queue(struct ieee802154_local *local);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.