led.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /*
  2. * Copyright 2006, Johannes Berg <johannes@sipsolutions.net>
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License version 2 as
  6. * published by the Free Software Foundation.
  7. */
  8. #include <linux/list.h>
  9. #include <linux/spinlock.h>
  10. #include <linux/leds.h>
  11. #include "ieee80211_i.h"
  12. #ifdef CONFIG_MAC80211_LEDS
  13. void ieee80211_led_rx(struct ieee80211_local *local);
  14. void ieee80211_led_tx(struct ieee80211_local *local, int q);
  15. void ieee80211_led_assoc(struct ieee80211_local *local,
  16. bool associated);
  17. void ieee80211_led_radio(struct ieee80211_local *local,
  18. bool enabled);
  19. void ieee80211_led_names(struct ieee80211_local *local);
  20. void ieee80211_led_init(struct ieee80211_local *local);
  21. void ieee80211_led_exit(struct ieee80211_local *local);
  22. void ieee80211_mod_tpt_led_trig(struct ieee80211_local *local,
  23. unsigned int types_on, unsigned int types_off);
  24. #else
  25. static inline void ieee80211_led_rx(struct ieee80211_local *local)
  26. {
  27. }
  28. static inline void ieee80211_led_tx(struct ieee80211_local *local, int q)
  29. {
  30. }
  31. static inline void ieee80211_led_assoc(struct ieee80211_local *local,
  32. bool associated)
  33. {
  34. }
  35. static inline void ieee80211_led_radio(struct ieee80211_local *local,
  36. bool enabled)
  37. {
  38. }
  39. static inline void ieee80211_led_names(struct ieee80211_local *local)
  40. {
  41. }
  42. static inline void ieee80211_led_init(struct ieee80211_local *local)
  43. {
  44. }
  45. static inline void ieee80211_led_exit(struct ieee80211_local *local)
  46. {
  47. }
  48. static inline void ieee80211_mod_tpt_led_trig(struct ieee80211_local *local,
  49. unsigned int types_on,
  50. unsigned int types_off)
  51. {
  52. }
  53. #endif
  54. static inline void
  55. ieee80211_tpt_led_trig_tx(struct ieee80211_local *local, __le16 fc, int bytes)
  56. {
  57. #ifdef CONFIG_MAC80211_LEDS
  58. if (local->tpt_led_trigger && ieee80211_is_data(fc))
  59. local->tpt_led_trigger->tx_bytes += bytes;
  60. #endif
  61. }
  62. static inline void
  63. ieee80211_tpt_led_trig_rx(struct ieee80211_local *local, __le16 fc, int bytes)
  64. {
  65. #ifdef CONFIG_MAC80211_LEDS
  66. if (local->tpt_led_trigger && ieee80211_is_data(fc))
  67. local->tpt_led_trigger->rx_bytes += bytes;
  68. #endif
  69. }