diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2011-12-04 20:37:01 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2011-12-04 20:37:01 +0000 |
commit | 3a5a1c6ef967861ecd61ffa531398add09bbce15 (patch) | |
tree | 454302aa37566a7b2a7f06ddba356f9e221038d1 /package/iwinfo/src/iwinfo_madwifi.c | |
parent | 4c0321a6aa425bc90a505ff797118ac9be972676 (diff) | |
download | upstream-3a5a1c6ef967861ecd61ffa531398add09bbce15.tar.gz upstream-3a5a1c6ef967861ecd61ffa531398add09bbce15.tar.bz2 upstream-3a5a1c6ef967861ecd61ffa531398add09bbce15.zip |
[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_madwifi.c')
-rw-r--r-- | package/iwinfo/src/iwinfo_madwifi.c | 53 |
1 files changed, 46 insertions, 7 deletions
diff --git a/package/iwinfo/src/iwinfo_madwifi.c b/package/iwinfo/src/iwinfo_madwifi.c index 50793c4937..732cfe56fe 100644 --- a/package/iwinfo/src/iwinfo_madwifi.c +++ b/package/iwinfo/src/iwinfo_madwifi.c @@ -1060,20 +1060,59 @@ int madwifi_get_hardware_id(const char *ifname, char *buf) return 0; } -int madwifi_get_hardware_name(const char *ifname, char *buf) +static const struct iwinfo_hardware_entry * +madwifi_get_hardware_entry(const char *ifname) { struct iwinfo_hardware_id id; - struct iwinfo_hardware_entry *hw; if (madwifi_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); +int madwifi_get_hardware_name(const char *ifname, char *buf) +{ + char vendor[64]; + char device[64]; + const struct iwinfo_hardware_entry *hw; + + if (!(hw = madwifi_get_hardware_entry(ifname))) + { + madwifi_proc_file(ifname, "dev_vendor", vendor, sizeof(vendor)); + madwifi_proc_file(ifname, "dev_name", device, sizeof(device)); + + if (vendor[0] && device[0]) + sprintf(buf, "%s %s", vendor, device); + else + sprintf(buf, "Generic Atheros"); + } else - sprintf(buf, "Generic Atheros"); + { + sprintf(buf, "%s %s", hw->vendor_name, hw->device_name); + } + + return 0; +} + +int madwifi_get_txpower_offset(const char *ifname, int *buf) +{ + const struct iwinfo_hardware_entry *hw; + + if (!(hw = madwifi_get_hardware_entry(ifname))) + return -1; + + *buf = hw->txpower_offset; + return 0; +} + +int madwifi_get_frequency_offset(const char *ifname, int *buf) +{ + const struct iwinfo_hardware_entry *hw; + + if (!(hw = madwifi_get_hardware_entry(ifname))) + return -1; + *buf = hw->frequency_offset; return 0; } |