static int _get(netdev_t *netdev, netopt_t opt, void *val, size_t max_len) { ESP_WIFI_DEBUG("%s %p %p %u", netopt2str(opt), netdev, val, max_len); assert(netdev != NULL); assert(val != NULL); esp_wifi_netdev_t *dev = (esp_wifi_netdev_t*)netdev; switch (opt) { case NETOPT_IS_WIRED: return -ENOTSUP; case NETOPT_LINK_CONNECTED: assert(max_len == 1); if (dev->state == ESP_WIFI_CONNECTED) { *((netopt_enable_t *)val) = NETOPT_ENABLE; } else { *((netopt_enable_t *)val) = NETOPT_DISABLE; } return 1; case NETOPT_ADDRESS: assert(max_len >= sizeof(dev->mac)); memcpy(val, dev->mac, sizeof(dev->mac)); return sizeof(dev->mac); default: return netdev_eth_get(netdev, opt, val, max_len); } }
static int _get(netdev_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; case NETOPT_PROMISCUOUSMODE: *((bool*)value) = (bool)_get_promiscous(dev); res = sizeof(bool); break; default: res = netdev_eth_get(dev, opt, value, max_len); break; } return res; }
static int _get(netdev_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 = netdev_eth_get(dev, opt, value, max_len); break; } return res; }
static int _get_max_pkt_size(netdev_t *dev, void *value, size_t max_len) { return netdev_eth_get(dev, NETOPT_MAX_PACKET_SIZE, value, max_len); }
static int _get_device_type(netdev_t *dev, void *value, size_t max_len) { return netdev_eth_get(dev, NETOPT_DEVICE_TYPE, value, max_len); }
static int _get_addr_len(netdev_t *dev, void *value, size_t max_len) { return netdev_eth_get(dev, NETOPT_ADDR_LEN, value, max_len); }