drivers/mrf24j40: pass long address via pointer
This commit is contained in:
parent
988ee1648f
commit
a1d8c79a98
@ -224,11 +224,10 @@ void mrf24j40_set_addr_short(mrf24j40_t *dev, uint16_t addr);
|
||||
/**
|
||||
* @brief Get the configured long address of the given device
|
||||
*
|
||||
* @param[in] dev device to read from
|
||||
*
|
||||
* @return the currently set (8-byte) long address
|
||||
* @param[in] dev device to read from
|
||||
* @param[out] addr the currently set (8-byte) long address
|
||||
*/
|
||||
uint64_t mrf24j40_get_addr_long(mrf24j40_t *dev);
|
||||
void mrf24j40_get_addr_long(mrf24j40_t *dev, uint8_t *addr);
|
||||
|
||||
/**
|
||||
* @brief Set the long address of the given device
|
||||
@ -236,7 +235,7 @@ uint64_t mrf24j40_get_addr_long(mrf24j40_t *dev);
|
||||
* @param[in] dev device to write to
|
||||
* @param[in] addr (8-byte) long address to set
|
||||
*/
|
||||
void mrf24j40_set_addr_long(mrf24j40_t *dev, uint64_t addr);
|
||||
void mrf24j40_set_addr_long(mrf24j40_t *dev, const uint8_t *addr);
|
||||
|
||||
/**
|
||||
* @brief Get the configured channel number of the given device
|
||||
|
||||
@ -55,7 +55,7 @@ int mrf24j40_reset(mrf24j40_t *dev)
|
||||
netdev_ieee802154_setup(&dev->netdev);
|
||||
|
||||
/* set short and long address */
|
||||
mrf24j40_set_addr_long(dev, unaligned_get_u64(dev->netdev.long_addr));
|
||||
mrf24j40_set_addr_long(dev, dev->netdev.long_addr);
|
||||
mrf24j40_set_addr_short(dev, unaligned_get_u16(dev->netdev.short_addr));
|
||||
|
||||
mrf24j40_set_chan(dev, CONFIG_IEEE802154_DEFAULT_CHANNEL);
|
||||
|
||||
@ -157,24 +157,17 @@ void mrf24j40_set_addr_short(mrf24j40_t *dev, uint16_t addr)
|
||||
naddr.u8[0]);
|
||||
}
|
||||
|
||||
uint64_t mrf24j40_get_addr_long(mrf24j40_t *dev)
|
||||
void mrf24j40_get_addr_long(mrf24j40_t *dev, uint8_t *addr)
|
||||
{
|
||||
network_uint64_t naddr;
|
||||
|
||||
for (int i = 0; i < 8; i++) {
|
||||
naddr.u8[7 - i] = mrf24j40_reg_read_short(dev, (MRF24J40_REG_EADR0 + i));
|
||||
addr[7 - i] = mrf24j40_reg_read_short(dev, MRF24J40_REG_EADR0 + i);
|
||||
}
|
||||
return naddr.u64;
|
||||
}
|
||||
|
||||
void mrf24j40_set_addr_long(mrf24j40_t *dev, uint64_t addr)
|
||||
void mrf24j40_set_addr_long(mrf24j40_t *dev, const uint8_t *addr)
|
||||
{
|
||||
network_uint64_t naddr;
|
||||
naddr.u64 = addr;
|
||||
|
||||
for (int i = 0; i < 8; i++) {
|
||||
mrf24j40_reg_write_short(dev, (MRF24J40_REG_EADR0 + i),
|
||||
(naddr.u8[7 - i]));
|
||||
mrf24j40_reg_write_short(dev, MRF24J40_REG_EADR0 + i, addr[7 - i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -184,7 +184,7 @@ static int _get(netdev_t *netdev, netopt_t opt, void *val, size_t max_len)
|
||||
res = -EOVERFLOW;
|
||||
}
|
||||
else {
|
||||
*(uint64_t*)val = mrf24j40_get_addr_long(dev);
|
||||
mrf24j40_get_addr_long(dev, val);
|
||||
res = sizeof(uint64_t);
|
||||
}
|
||||
break;
|
||||
@ -400,7 +400,7 @@ static int _set(netdev_t *netdev, netopt_t opt, const void *val, size_t len)
|
||||
res = -EOVERFLOW;
|
||||
}
|
||||
else {
|
||||
mrf24j40_set_addr_long(dev, *((const uint64_t *)val));
|
||||
mrf24j40_set_addr_long(dev, val);
|
||||
res = sizeof(uint64_t);
|
||||
}
|
||||
break;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user