diff options
Diffstat (limited to 'drivers/staging/wlags49_h2/wl_sysfs.c')
-rw-r--r-- | drivers/staging/wlags49_h2/wl_sysfs.c | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/drivers/staging/wlags49_h2/wl_sysfs.c b/drivers/staging/wlags49_h2/wl_sysfs.c deleted file mode 100644 index 1508f04b3c6f..000000000000 --- a/drivers/staging/wlags49_h2/wl_sysfs.c +++ /dev/null @@ -1,138 +0,0 @@ -/* - * ex: sw=4 - */ - -#include <linux/kernel.h> -#include <linux/netdevice.h> -#include <linux/if_arp.h> -#include <net/sock.h> -#include <linux/rtnetlink.h> -#include <linux/wireless.h> -#include <net/iw_handler.h> -#include <linux/sysfs.h> - -#include <debug.h> -#include <hcf.h> -#include <hcfdef.h> - -#include <wl_if.h> -#include <wl_internal.h> -#include <wl_util.h> -#include <wl_main.h> -#include <wl_wext.h> -#include <wl_priv.h> - -static inline int dev_isalive(const struct net_device *dev) -{ - return dev->reg_state == NETREG_REGISTERED; -} - -/* - * empirically even if tallies are defined as 32 bits entities, only - * high 16 bits are relevant; low half is always zero. It means tallies - * are pretty much useless for traffic counting but at least give overview - * about where error come from - */ -static ssize_t show_tallies(struct device *d, struct device_attribute *attr, - char *buf) -{ - struct net_device *dev = to_net_dev(d); - struct wl_private *lp = wl_priv(dev); - unsigned long flags; - CFG_HERMES_TALLIES_STRCT tallies; - ssize_t ret = -EINVAL; - - rcu_read_lock(); - if (dev_isalive(dev)) { - wl_lock(lp, &flags); - - ret = wl_get_tallies(lp, &tallies); - if (ret == 0) { - wl_unlock(lp, &flags); - ret = snprintf(buf, PAGE_SIZE, - "TxUnicastFrames: %u\n" - "TxMulticastFrames: %u\n" - "TxFragments: %u\n" - "TxUnicastOctets: %u\n" - "TxMulticastOctets: %u\n" - "TxDeferredTransmissions: %u\n" - "TxSingleRetryFrames: %u\n" - "TxMultipleRetryFrames: %u\n" - "TxRetryLimitExceeded: %u\n" - "TxDiscards: %u\n" - "RxUnicastFrames: %u\n" - "RxMulticastFrames: %u\n" - "RxFragments: %u\n" - "RxUnicastOctets: %u\n" - "RxMulticastOctets: %u\n" - "RxFCSErrors: %u\n" - "RxDiscardsNoBuffer: %u\n" - "TxDiscardsWrongSA: %u\n" - "RxWEPUndecryptable: %u\n" - "RxMsgInMsgFragments: %u\n" - "RxMsgInBadMsgFragments: %u\n" - "RxDiscardsWEPICVError: %u\n" - "RxDiscardsWEPExcluded: %u\n" - , - (unsigned int)tallies.TxUnicastFrames, - (unsigned int)tallies.TxMulticastFrames, - (unsigned int)tallies.TxFragments, - (unsigned int)tallies.TxUnicastOctets, - (unsigned int)tallies.TxMulticastOctets, - (unsigned int)tallies.TxDeferredTransmissions, - (unsigned int)tallies.TxSingleRetryFrames, - (unsigned int)tallies.TxMultipleRetryFrames, - (unsigned int)tallies.TxRetryLimitExceeded, - (unsigned int)tallies.TxDiscards, - (unsigned int)tallies.RxUnicastFrames, - (unsigned int)tallies.RxMulticastFrames, - (unsigned int)tallies.RxFragments, - (unsigned int)tallies.RxUnicastOctets, - (unsigned int)tallies.RxMulticastOctets, - (unsigned int)tallies.RxFCSErrors, - (unsigned int)tallies.RxDiscardsNoBuffer, - (unsigned int)tallies.TxDiscardsWrongSA, - (unsigned int)tallies.RxWEPUndecryptable, - (unsigned int)tallies.RxMsgInMsgFragments, - (unsigned int)tallies.RxMsgInBadMsgFragments, - (unsigned int)tallies.RxDiscardsWEPICVError, - (unsigned int)tallies.RxDiscardsWEPExcluded); - } else { - wl_unlock( lp, &flags ); - } - } - - rcu_read_unlock(); - return ret; -} - -static DEVICE_ATTR(tallies, S_IRUGO, show_tallies, NULL); - -static struct attribute *wlags_attrs[] = { - &dev_attr_tallies.attr, - NULL -}; - -static struct attribute_group wlags_group = { - .name = "wlags", - .attrs = wlags_attrs, -}; - -void register_wlags_sysfs(struct net_device *net) -{ - struct device *dev = &(net->dev); - struct wl_private *lp = wl_priv(net); - int err; - err = sysfs_create_group(&dev->kobj, &wlags_group); - if (!err) - lp->sysfsCreated = true; -} - -void unregister_wlags_sysfs(struct net_device *net) -{ - struct device *dev = &(net->dev); - struct wl_private *lp = wl_priv(net); - - if (lp->sysfsCreated) - sysfs_remove_group(&dev->kobj, &wlags_group); -} |