return buf;
}
+static const char *format_band(int band)
+{
+ const char *name;
+
+ name = iwinfo_band_name(band);
+ if (name)
+ return name;
+
+ return "unknown";
+}
+
static char * format_channel(int ch)
{
static char buf[16];
if (!iw->hardware_id(ifname, (char *)&ids))
{
- snprintf(buf, sizeof(buf), "%04X:%04X %04X:%04X",
- ids.vendor_id, ids.device_id,
- ids.subsystem_vendor_id, ids.subsystem_device_id);
+ if (strlen(ids.compatible) > 0)
+ snprintf(buf, sizeof(buf), "embedded");
+ else if (ids.vendor_id == 0 && ids.device_id == 0 &&
+ ids.subsystem_vendor_id != 0 && ids.subsystem_device_id != 0)
+ snprintf(buf, sizeof(buf), "USB %04X:%04X",
+ ids.subsystem_vendor_id, ids.subsystem_device_id);
+ else
+ snprintf(buf, sizeof(buf), "%04X:%04X %04X:%04X",
+ ids.vendor_id, ids.device_id,
+ ids.subsystem_vendor_id, ids.subsystem_device_id);
}
else
{
return format_hwmodes(modes);
}
+static const char *print_htmode(const struct iwinfo_ops *iw, const char *ifname)
+{
+ int mode;
+ const char *name;
+ if (iw->htmode(ifname, &mode))
+ mode = -1;
+
+ name = iwinfo_htmode_name(mode);
+ if (name)
+ return name;
+
+ return "unknown";
+}
+
static char * print_mbssid_supp(const struct iwinfo_ops *iw, const char *ifname)
{
int supp;
print_ssid(iw, ifname));
printf(" Access Point: %s\n",
print_bssid(iw, ifname));
- printf(" Mode: %s Channel: %s (%s)\n",
+ printf(" Mode: %s Channel: %s (%s) HT Mode: %s\n",
print_mode(iw, ifname),
print_channel(iw, ifname),
- print_frequency(iw, ifname));
+ print_frequency(iw, ifname),
+ print_htmode(iw, ifname));
if (iw->center_chan1 != NULL) {
printf(" Center Channel 1: %s",
print_center_chan1(iw, ifname));
{
e = (struct iwinfo_freqlist_entry *) &buf[i];
- printf("%s %s (Channel %s)%s\n",
+ printf("%s %s (Band: %s, Channel %s)%s\n",
(freq == e->mhz) ? "*" : " ",
format_frequency(e->mhz),
+ format_band(e->band),
format_channel(e->channel),
e->restricted ? " [restricted]" : "");
}