debugfs.h revision f5eda47f45e90dfa38e25d569b9ac84ba94f8301
1e4d6b7951812d98417feb10784e400e253caf633Michael Buesch#ifndef B43_DEBUGFS_H_ 2e4d6b7951812d98417feb10784e400e253caf633Michael Buesch#define B43_DEBUGFS_H_ 3e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 4e4d6b7951812d98417feb10784e400e253caf633Michael Bueschstruct b43_wldev; 5e4d6b7951812d98417feb10784e400e253caf633Michael Bueschstruct b43_txstatus; 6e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 7e4d6b7951812d98417feb10784e400e253caf633Michael Bueschenum b43_dyndbg { /* Dynamic debugging features */ 8e4d6b7951812d98417feb10784e400e253caf633Michael Buesch B43_DBG_XMITPOWER, 9e4d6b7951812d98417feb10784e400e253caf633Michael Buesch B43_DBG_DMAOVERFLOW, 10e4d6b7951812d98417feb10784e400e253caf633Michael Buesch B43_DBG_DMAVERBOSE, 11e4d6b7951812d98417feb10784e400e253caf633Michael Buesch B43_DBG_PWORK_FAST, 12e4d6b7951812d98417feb10784e400e253caf633Michael Buesch B43_DBG_PWORK_STOP, 13f5eda47f45e90dfa38e25d569b9ac84ba94f8301Michael Buesch B43_DBG_LO, 14e4d6b7951812d98417feb10784e400e253caf633Michael Buesch __B43_NR_DYNDBG, 15e4d6b7951812d98417feb10784e400e253caf633Michael Buesch}; 16e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 17e4d6b7951812d98417feb10784e400e253caf633Michael Buesch#ifdef CONFIG_B43_DEBUG 18e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 19e4d6b7951812d98417feb10784e400e253caf633Michael Bueschstruct dentry; 20e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 21e4d6b7951812d98417feb10784e400e253caf633Michael Buesch#define B43_NR_LOGGED_TXSTATUS 100 22e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 23e4d6b7951812d98417feb10784e400e253caf633Michael Bueschstruct b43_txstatus_log { 24e4d6b7951812d98417feb10784e400e253caf633Michael Buesch struct b43_txstatus *log; 25e4d6b7951812d98417feb10784e400e253caf633Michael Buesch int end; 26e4d6b7951812d98417feb10784e400e253caf633Michael Buesch spinlock_t lock; 27e4d6b7951812d98417feb10784e400e253caf633Michael Buesch}; 28e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 29e4d6b7951812d98417feb10784e400e253caf633Michael Bueschstruct b43_dfs_file { 30e4d6b7951812d98417feb10784e400e253caf633Michael Buesch struct dentry *dentry; 31e4d6b7951812d98417feb10784e400e253caf633Michael Buesch char *buffer; 32e4d6b7951812d98417feb10784e400e253caf633Michael Buesch size_t data_len; 33e4d6b7951812d98417feb10784e400e253caf633Michael Buesch}; 34e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 35e4d6b7951812d98417feb10784e400e253caf633Michael Bueschstruct b43_dfsentry { 36e4d6b7951812d98417feb10784e400e253caf633Michael Buesch struct b43_wldev *dev; 37e4d6b7951812d98417feb10784e400e253caf633Michael Buesch struct dentry *subdir; 38e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 39e4d6b7951812d98417feb10784e400e253caf633Michael Buesch struct b43_dfs_file file_tsf; 40e4d6b7951812d98417feb10784e400e253caf633Michael Buesch struct b43_dfs_file file_ucode_regs; 41e4d6b7951812d98417feb10784e400e253caf633Michael Buesch struct b43_dfs_file file_shm; 42e4d6b7951812d98417feb10784e400e253caf633Michael Buesch struct b43_dfs_file file_txstat; 43e4d6b7951812d98417feb10784e400e253caf633Michael Buesch struct b43_dfs_file file_txpower_g; 44e4d6b7951812d98417feb10784e400e253caf633Michael Buesch struct b43_dfs_file file_restart; 45e4d6b7951812d98417feb10784e400e253caf633Michael Buesch struct b43_dfs_file file_loctls; 46e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 47e4d6b7951812d98417feb10784e400e253caf633Michael Buesch struct b43_txstatus_log txstatlog; 48e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 49e4d6b7951812d98417feb10784e400e253caf633Michael Buesch /* Enabled/Disabled list for the dynamic debugging features. */ 50e4d6b7951812d98417feb10784e400e253caf633Michael Buesch u32 dyn_debug[__B43_NR_DYNDBG]; 51e4d6b7951812d98417feb10784e400e253caf633Michael Buesch /* Dentries for the dynamic debugging entries. */ 52e4d6b7951812d98417feb10784e400e253caf633Michael Buesch struct dentry *dyn_debug_dentries[__B43_NR_DYNDBG]; 53e4d6b7951812d98417feb10784e400e253caf633Michael Buesch}; 54e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 55e4d6b7951812d98417feb10784e400e253caf633Michael Bueschint b43_debug(struct b43_wldev *dev, enum b43_dyndbg feature); 56e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 57e4d6b7951812d98417feb10784e400e253caf633Michael Bueschvoid b43_debugfs_init(void); 58e4d6b7951812d98417feb10784e400e253caf633Michael Bueschvoid b43_debugfs_exit(void); 59e4d6b7951812d98417feb10784e400e253caf633Michael Bueschvoid b43_debugfs_add_device(struct b43_wldev *dev); 60e4d6b7951812d98417feb10784e400e253caf633Michael Bueschvoid b43_debugfs_remove_device(struct b43_wldev *dev); 61e4d6b7951812d98417feb10784e400e253caf633Michael Bueschvoid b43_debugfs_log_txstat(struct b43_wldev *dev, 62e4d6b7951812d98417feb10784e400e253caf633Michael Buesch const struct b43_txstatus *status); 63e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 64e4d6b7951812d98417feb10784e400e253caf633Michael Buesch#else /* CONFIG_B43_DEBUG */ 65e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 66e4d6b7951812d98417feb10784e400e253caf633Michael Bueschstatic inline int b43_debug(struct b43_wldev *dev, enum b43_dyndbg feature) 67e4d6b7951812d98417feb10784e400e253caf633Michael Buesch{ 68e4d6b7951812d98417feb10784e400e253caf633Michael Buesch return 0; 69e4d6b7951812d98417feb10784e400e253caf633Michael Buesch} 70e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 71e4d6b7951812d98417feb10784e400e253caf633Michael Bueschstatic inline void b43_debugfs_init(void) 72e4d6b7951812d98417feb10784e400e253caf633Michael Buesch{ 73e4d6b7951812d98417feb10784e400e253caf633Michael Buesch} 74e4d6b7951812d98417feb10784e400e253caf633Michael Bueschstatic inline void b43_debugfs_exit(void) 75e4d6b7951812d98417feb10784e400e253caf633Michael Buesch{ 76e4d6b7951812d98417feb10784e400e253caf633Michael Buesch} 77e4d6b7951812d98417feb10784e400e253caf633Michael Bueschstatic inline void b43_debugfs_add_device(struct b43_wldev *dev) 78e4d6b7951812d98417feb10784e400e253caf633Michael Buesch{ 79e4d6b7951812d98417feb10784e400e253caf633Michael Buesch} 80e4d6b7951812d98417feb10784e400e253caf633Michael Bueschstatic inline void b43_debugfs_remove_device(struct b43_wldev *dev) 81e4d6b7951812d98417feb10784e400e253caf633Michael Buesch{ 82e4d6b7951812d98417feb10784e400e253caf633Michael Buesch} 83e4d6b7951812d98417feb10784e400e253caf633Michael Bueschstatic inline void b43_debugfs_log_txstat(struct b43_wldev *dev, 84e4d6b7951812d98417feb10784e400e253caf633Michael Buesch const struct b43_txstatus *status) 85e4d6b7951812d98417feb10784e400e253caf633Michael Buesch{ 86e4d6b7951812d98417feb10784e400e253caf633Michael Buesch} 87e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 88e4d6b7951812d98417feb10784e400e253caf633Michael Buesch#endif /* CONFIG_B43_DEBUG */ 89e4d6b7951812d98417feb10784e400e253caf633Michael Buesch 90e4d6b7951812d98417feb10784e400e253caf633Michael Buesch#endif /* B43_DEBUGFS_H_ */ 91