summaryrefslogtreecommitdiffstats
path: root/package/iwinfo/src/iwinfo_nl80211.c
diff options
context:
space:
mode:
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-12-04 20:37:01 +0000
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-12-04 20:37:01 +0000
commitde1bb6ef97ddd71db237578bd5f7ed8c5a61fb82 (patch)
tree454302aa37566a7b2a7f06ddba356f9e221038d1 /package/iwinfo/src/iwinfo_nl80211.c
parent8465aaa53c9b6865fab1f39b31ab9737f1112304 (diff)
[package] iwinfo: expose txpower and frequency offset information
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29425 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/iwinfo/src/iwinfo_nl80211.c')
-rw-r--r--package/iwinfo/src/iwinfo_nl80211.c41
1 files changed, 34 insertions, 7 deletions
diff --git a/package/iwinfo/src/iwinfo_nl80211.c b/package/iwinfo/src/iwinfo_nl80211.c
index d3726821f..4b8b37daa 100644
--- a/package/iwinfo/src/iwinfo_nl80211.c
+++ b/package/iwinfo/src/iwinfo_nl80211.c
@@ -1634,20 +1634,47 @@ int nl80211_get_hardware_id(const char *ifname, char *buf)
return wext_get_hardware_id(ifname, buf);
}
-int nl80211_get_hardware_name(const char *ifname, char *buf)
+static const struct iwinfo_hardware_entry *
+nl80211_get_hardware_entry(const char *ifname)
{
struct iwinfo_hardware_id id;
- struct iwinfo_hardware_entry *hw;
if (nl80211_get_hardware_id(ifname, (char *)&id))
- return -1;
+ return NULL;
- hw = iwinfo_hardware(&id);
+ return iwinfo_hardware(&id);
+}
- if (hw)
- sprintf(buf, "%s %s", hw->vendor_name, hw->device_name);
- else
+int nl80211_get_hardware_name(const char *ifname, char *buf)
+{
+ const struct iwinfo_hardware_entry *hw;
+
+ if (!(hw = nl80211_get_hardware_entry(ifname)))
sprintf(buf, "Generic MAC80211");
+ else
+ sprintf(buf, "%s %s", hw->vendor_name, hw->device_name);
+
+ return 0;
+}
+
+int nl80211_get_txpower_offset(const char *ifname, int *buf)
+{
+ const struct iwinfo_hardware_entry *hw;
+
+ if (!(hw = nl80211_get_hardware_entry(ifname)))
+ return -1;
+
+ *buf = hw->txpower_offset;
+ return 0;
+}
+
+int nl80211_get_frequency_offset(const char *ifname, int *buf)
+{
+ const struct iwinfo_hardware_entry *hw;
+
+ if (!(hw = nl80211_get_hardware_entry(ifname)))
+ return -1;
+ *buf = hw->frequency_offset;
return 0;
}