diff options
Diffstat (limited to 'include/net/mac802154.h')
| -rw-r--r-- | include/net/mac802154.h | 43 | 
1 files changed, 39 insertions, 4 deletions
diff --git a/include/net/mac802154.h b/include/net/mac802154.h index d0d11df9cba..a591053cae6 100644 --- a/include/net/mac802154.h +++ b/include/net/mac802154.h @@ -20,6 +20,7 @@  #define NET_MAC802154_H  #include <net/af_ieee802154.h> +#include <linux/skbuff.h>  /* General MAC frame format:   *  2 bytes: Frame Control @@ -50,7 +51,7 @@ struct ieee802154_hw_addr_filt {  				 * devices across independent networks.  				 */  	__le16	short_addr; -	u8	ieee_addr[IEEE802154_ADDR_LEN]; +	__le64	ieee_addr;  	u8	pan_coord;  }; @@ -113,6 +114,32 @@ struct ieee802154_dev {   *	  Set radio for listening on specific address.   *	  Set the device for listening on specified address.   *	  Returns either zero, or negative errno. + * + * set_txpower: + *	  Set radio transmit power in dB. Called with pib_lock held. + *	  Returns either zero, or negative errno. + * + * set_lbt + *	  Enables or disables listen before talk on the device. Called with + *	  pib_lock held. + *	  Returns either zero, or negative errno. + * + * set_cca_mode + *	  Sets the CCA mode used by the device. Called with pib_lock held. + *	  Returns either zero, or negative errno. + * + * set_cca_ed_level + *	  Sets the CCA energy detection threshold in dBm. Called with pib_lock + *	  held. + *	  Returns either zero, or negative errno. + * + * set_csma_params + *	  Sets the CSMA parameter set for the PHY. Called with pib_lock held. + *	  Returns either zero, or negative errno. + * + * set_frame_retries + *	  Sets the retransmission attempt limit. Called with pib_lock held. + *	  Returns either zero, or negative errno.   */  struct ieee802154_ops {  	struct module	*owner; @@ -127,13 +154,21 @@ struct ieee802154_ops {  	int		(*set_hw_addr_filt)(struct ieee802154_dev *dev,  					  struct ieee802154_hw_addr_filt *filt,  					    unsigned long changed); -	int		(*ieee_addr)(struct ieee802154_dev *dev, -				     u8 addr[IEEE802154_ADDR_LEN]); +	int		(*ieee_addr)(struct ieee802154_dev *dev, __le64 addr); +	int		(*set_txpower)(struct ieee802154_dev *dev, int db); +	int		(*set_lbt)(struct ieee802154_dev *dev, bool on); +	int		(*set_cca_mode)(struct ieee802154_dev *dev, u8 mode); +	int		(*set_cca_ed_level)(struct ieee802154_dev *dev, +					    s32 level); +	int		(*set_csma_params)(struct ieee802154_dev *dev, +					   u8 min_be, u8 max_be, u8 retries); +	int		(*set_frame_retries)(struct ieee802154_dev *dev, +					     s8 retries);  };  /* Basic interface to register ieee802154 device */  struct ieee802154_dev * -ieee802154_alloc_device(size_t priv_data_lex, struct ieee802154_ops *ops); +ieee802154_alloc_device(size_t priv_data_len, struct ieee802154_ops *ops);  void ieee802154_free_device(struct ieee802154_dev *dev);  int ieee802154_register_device(struct ieee802154_dev *dev);  void ieee802154_unregister_device(struct ieee802154_dev *dev);  | 
