static int _get(netdev2_t *dev, netopt_t opt, void *value, size_t max_len) { if (dev != (netdev2_t *)&netdev2_tap) { return -ENODEV; } int res = 0; switch (opt) { case NETOPT_ADDRESS: if (max_len < ETHERNET_ADDR_LEN) { res = -EINVAL; } else { _get_mac_addr(dev, (uint8_t*)value); res = ETHERNET_ADDR_LEN; } break; case NETOPT_PROMISCUOUSMODE: *((bool*)value) = (bool)_get_promiscous(dev); res = sizeof(bool); break; default: res = netdev2_eth_get(dev, opt, value, max_len); break; } return res; }
static int nd_get(netdev2_t *netdev, netopt_t opt, void *value, size_t max_len) { enc28j60_t *dev = (enc28j60_t *)netdev; switch (opt) { case NETOPT_ADDRESS: assert(max_len >= ETHERNET_ADDR_LEN); mac_get(dev, (uint8_t *)value); return ETHERNET_ADDR_LEN; default: return netdev2_eth_get(netdev, opt, value, max_len); } }
int _get(netdev2_t *dev, netopt_t opt, void *value, size_t max_len) { int res = 0; switch (opt) { case NETOPT_ADDRESS: if (max_len < ETHERNET_ADDR_LEN) { res = -EINVAL; } else { _get_mac_addr(dev, (uint8_t*)value); res = ETHERNET_ADDR_LEN; } break; default: res = netdev2_eth_get(dev, opt, value, max_len); break; } return res; }