IEEE 802.15.4 network driver: Fix some errors introduced in previous commit. Clean up some of the casting logic.
This commit is contained in:
parent
183ed7a206
commit
75ffb5b0e6
@ -122,6 +122,7 @@ struct macnet_driver_s
|
|||||||
/* This holds the information visible to the NuttX network */
|
/* This holds the information visible to the NuttX network */
|
||||||
|
|
||||||
struct sixlowpan_driver_s md_dev; /* Interface understood by the network */
|
struct sixlowpan_driver_s md_dev; /* Interface understood by the network */
|
||||||
|
/* Cast compatible with struct macnet_driver_s */
|
||||||
|
|
||||||
/* For internal use by this driver */
|
/* For internal use by this driver */
|
||||||
|
|
||||||
@ -173,6 +174,8 @@ static int macnet_coord_eaddr(FAR struct sixlowpan_driver_s *radio,
|
|||||||
#else
|
#else
|
||||||
static int macnet_coord_saddr(FAR struct sixlowpan_driver_s *radio,
|
static int macnet_coord_saddr(FAR struct sixlowpan_driver_s *radio,
|
||||||
FAR struct uint8_t *saddr)
|
FAR struct uint8_t *saddr)
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/* NuttX callback functions */
|
/* NuttX callback functions */
|
||||||
|
|
||||||
@ -221,17 +224,20 @@ static int macnet_properties(FAR struct sixlowpan_driver_s *netdev,
|
|||||||
|
|
||||||
static int macnet_advertise(FAR struct net_driver_s *dev)
|
static int macnet_advertise(FAR struct net_driver_s *dev)
|
||||||
{
|
{
|
||||||
struct ieee802154_macarg_u arg;
|
FAR struct macnet_driver_s *priv;
|
||||||
|
union ieee802154_macarg_u arg;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
#ifdef CONFIG_NET_6LOWPAN_EXTENDEDADDR
|
#ifdef CONFIG_NET_6LOWPAN_EXTENDEDADDR
|
||||||
uint8_t *eaddr;
|
uint8_t *eaddr;
|
||||||
|
|
||||||
|
DEBUGASSERT(dev != NULL && dev->d_private != NULL);
|
||||||
|
priv = (FAR struct macnet_driver_s *)dev->d_private;
|
||||||
|
|
||||||
/* Get the eaddr from the MAC */
|
/* Get the eaddr from the MAC */
|
||||||
|
|
||||||
memcpy(arg.ifr_name, dev->d_ifname, IFNAMSIZ);
|
|
||||||
arg.getreq.attr = IEEE802154_ATTR_MAC_EADDR;
|
arg.getreq.attr = IEEE802154_ATTR_MAC_EADDR;
|
||||||
ret = dev->d_ioctl(dev, MAC802154IOC_MLME_GET_REQUEST,
|
ret = mac802154_ioctl(priv->md_mac, MAC802154IOC_MLME_GET_REQUEST,
|
||||||
(unsigned long)((uintptr_t)&arg));
|
(unsigned long)((uintptr_t)&arg));
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
@ -263,11 +269,13 @@ static int macnet_advertise(FAR struct net_driver_s *dev)
|
|||||||
#else
|
#else
|
||||||
uint8_t *saddr;
|
uint8_t *saddr;
|
||||||
|
|
||||||
|
DEBUGASSERT(dev != NULL && dev->d_private != NULL);
|
||||||
|
priv = (FAR struct macnet_driver_s *)dev->d_private;
|
||||||
|
|
||||||
/* Get the saddr from the MAC */
|
/* Get the saddr from the MAC */
|
||||||
|
|
||||||
memcpy(arg.ifr_name, dev->d_ifname, IFNAMSIZ);
|
|
||||||
arg.getreq.attr = IEEE802154_ATTR_MAC_SADDR;
|
arg.getreq.attr = IEEE802154_ATTR_MAC_SADDR;
|
||||||
ret = dev->d_ioctl(dev, MAC802154IOC_MLME_GET_REQUEST,
|
ret = mac802154_ioctl(priv->md_mac, MAC802154IOC_MLME_GET_REQUEST,
|
||||||
(unsigned long)((uintptr_t)&arg));
|
(unsigned long)((uintptr_t)&arg));
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
@ -567,7 +575,8 @@ static void macnet_txpoll_expiry(int argc, wdparm_t arg, ...)
|
|||||||
static int macnet_coord_eaddr(FAR struct sixlowpan_driver_s *radio,
|
static int macnet_coord_eaddr(FAR struct sixlowpan_driver_s *radio,
|
||||||
FAR struct uint8_t *eaddr)
|
FAR struct uint8_t *eaddr)
|
||||||
{
|
{
|
||||||
struct ieee802154_macarg_u arg;
|
FAR struct macnet_driver_s *priv = (FAR struct macnet_driver_s *)radio;
|
||||||
|
union ieee802154_macarg_u arg;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
arg.getreq.attr = IEEE802154_ATTR_MAC_COORD_EADDR ;
|
arg.getreq.attr = IEEE802154_ATTR_MAC_COORD_EADDR ;
|
||||||
@ -603,7 +612,8 @@ static int macnet_coord_eaddr(FAR struct sixlowpan_driver_s *radio,
|
|||||||
static int macnet_coord_saddr(FAR struct sixlowpan_driver_s *radio,
|
static int macnet_coord_saddr(FAR struct sixlowpan_driver_s *radio,
|
||||||
FAR struct uint8_t *saddr)
|
FAR struct uint8_t *saddr)
|
||||||
{
|
{
|
||||||
struct ieee802154_macarg_u arg;
|
FAR struct macnet_driver_s *priv = (FAR struct macnet_driver_s *)radio;
|
||||||
|
union ieee802154_macarg_u arg;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
arg.getreq.attr = IEEE802154_ATTR_MAC_COORD_SADDR ;
|
arg.getreq.attr = IEEE802154_ATTR_MAC_COORD_SADDR ;
|
||||||
@ -938,15 +948,12 @@ static int macnet_ioctl(FAR struct net_driver_s *dev, int cmd,
|
|||||||
static int macnet_get_mhrlen(FAR struct sixlowpan_driver_s *netdev,
|
static int macnet_get_mhrlen(FAR struct sixlowpan_driver_s *netdev,
|
||||||
FAR const void *meta)
|
FAR const void *meta)
|
||||||
{
|
{
|
||||||
FAR struct macnet_driver_s *priv;
|
FAR struct macnet_driver_s *priv =
|
||||||
FAR const struct ieee802154_frame_meta_s *pktmeta;
|
(FAR struct macnet_driver_s *)netdev;
|
||||||
|
FAR const struct ieee802154_frame_meta_s *pktmeta =
|
||||||
DEBUGASSERT(netdev != NULL && netdev->r_dev.d_private != NULL);
|
(FAR const struct ieee802154_frame_meta_s *)meta;
|
||||||
priv = (FAR struct macnet_driver_s *)netdev->r_dev.d_private;
|
|
||||||
|
|
||||||
DEBUGASSERT(meta != NULL);
|
|
||||||
pktmeta = (FAR const struct ieee802154_frame_meta_s *)meta;
|
|
||||||
|
|
||||||
|
DEBUGASSERT(priv != NULL && priv->md_mac != NULL && pktmeta != NULL);
|
||||||
return mac802154_get_mhrlen(priv->md_mac, pktmeta);
|
return mac802154_get_mhrlen(priv->md_mac, pktmeta);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -971,18 +978,16 @@ static int macnet_get_mhrlen(FAR struct sixlowpan_driver_s *netdev,
|
|||||||
static int macnet_req_data(FAR struct sixlowpan_driver_s *netdev,
|
static int macnet_req_data(FAR struct sixlowpan_driver_s *netdev,
|
||||||
FAR const void *meta, FAR struct iob_s *framelist)
|
FAR const void *meta, FAR struct iob_s *framelist)
|
||||||
{
|
{
|
||||||
FAR struct macnet_driver_s *priv;
|
FAR struct macnet_driver_s *priv =
|
||||||
FAR const struct ieee802154_frame_meta_s *pktmeta;
|
(FAR struct macnet_driver_s *)netdev;
|
||||||
|
FAR const struct ieee802154_frame_meta_s *pktmeta =
|
||||||
|
(FAR const struct ieee802154_frame_meta_s *)meta;
|
||||||
FAR struct iob_s *iob;
|
FAR struct iob_s *iob;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
wlinfo("Received framelist\n");
|
wlinfo("Received framelist\n");
|
||||||
|
|
||||||
DEBUGASSERT(netdev != NULL && netdev->r_dev.d_private != NULL);
|
DEBUGASSERT(priv != NULL && pktmeta != NULL && framelist != NULL);
|
||||||
priv = (FAR struct macnet_driver_s *)netdev->r_dev.d_private;
|
|
||||||
|
|
||||||
DEBUGASSERT(meta != NULL && framelist != NULL);
|
|
||||||
pktmeta = (FAR const struct ieee802154_frame_meta_s *)meta;
|
|
||||||
|
|
||||||
/* Add the incoming list of frames to the MAC's outgoing queue */
|
/* Add the incoming list of frames to the MAC's outgoing queue */
|
||||||
|
|
||||||
@ -1089,10 +1094,10 @@ static int macnet_properties(FAR struct sixlowpan_driver_s *netdev,
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef CONFIG_NET_6LOWPAN_EXTENDEDADDR
|
#ifdef CONFIG_NET_6LOWPAN_EXTENDEDADDR
|
||||||
(void)macnet_coord_eaddr(radio, properties->sp_hubnode.nv_addr);
|
(void)macnet_coord_eaddr(netdev, properties->sp_hubnode.nv_addr);
|
||||||
properties->sp_hubnode.nv_addrlen = NET_6LOWPAN_EADDRSIZE;
|
properties->sp_hubnode.nv_addrlen = NET_6LOWPAN_EADDRSIZE;
|
||||||
#else
|
#else
|
||||||
(void)macnet_coord_saddr(radio, &properties->sp_hubnode.nv_addr);
|
(void)macnet_coord_saddr(netdev, &properties->sp_hubnode.nv_addr);
|
||||||
properties->sp_hubnode.>nv_addrlen = NET_6LOWPAN_SADDRSIZE;
|
properties->sp_hubnode.>nv_addrlen = NET_6LOWPAN_SADDRSIZE;
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user