Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
debugfs.h
Go to the documentation of this file.
1 #ifndef B43_DEBUGFS_H_
2 #define B43_DEBUGFS_H_
3 
4 struct b43_wldev;
5 struct b43_txstatus;
6 
7 enum b43_dyndbg { /* Dynamic debugging features */
18 };
19 
20 #ifdef CONFIG_B43_DEBUG
21 
22 struct dentry;
23 
24 #define B43_NR_LOGGED_TXSTATUS 100
25 
26 struct b43_txstatus_log {
27  /* This structure is protected by wl->mutex */
28 
29  struct b43_txstatus *log;
30  int end;
31 };
32 
33 struct b43_dfs_file {
34  struct dentry *dentry;
35  char *buffer;
36  size_t data_len;
37 };
38 
39 struct b43_dfsentry {
40  struct b43_wldev *dev;
41  struct dentry *subdir;
42 
43  struct b43_dfs_file file_shm16read;
44  struct b43_dfs_file file_shm16write;
45  struct b43_dfs_file file_shm32read;
46  struct b43_dfs_file file_shm32write;
47  struct b43_dfs_file file_mmio16read;
48  struct b43_dfs_file file_mmio16write;
49  struct b43_dfs_file file_mmio32read;
50  struct b43_dfs_file file_mmio32write;
51  struct b43_dfs_file file_txstat;
52  struct b43_dfs_file file_txpower_g;
53  struct b43_dfs_file file_restart;
54  struct b43_dfs_file file_loctls;
55 
56  struct b43_txstatus_log txstatlog;
57 
58  /* The cached address for the next mmio16read file read */
59  u16 mmio16read_next;
60  /* The cached address for the next mmio32read file read */
61  u16 mmio32read_next;
62 
63  /* The cached address for the next shm16read file read */
64  u32 shm16read_routing_next;
65  u32 shm16read_addr_next;
66  /* The cached address for the next shm32read file read */
67  u32 shm32read_routing_next;
68  u32 shm32read_addr_next;
69 
70  /* Enabled/Disabled list for the dynamic debugging features. */
71  u32 dyn_debug[__B43_NR_DYNDBG];
72  /* Dentries for the dynamic debugging entries. */
73  struct dentry *dyn_debug_dentries[__B43_NR_DYNDBG];
74 };
75 
76 bool b43_debug(struct b43_wldev *dev, enum b43_dyndbg feature);
77 
78 void b43_debugfs_init(void);
79 void b43_debugfs_exit(void);
83  const struct b43_txstatus *status);
84 
85 #else /* CONFIG_B43_DEBUG */
86 
87 static inline bool b43_debug(struct b43_wldev *dev, enum b43_dyndbg feature)
88 {
89  return 0;
90 }
91 
92 static inline void b43_debugfs_init(void)
93 {
94 }
95 static inline void b43_debugfs_exit(void)
96 {
97 }
98 static inline void b43_debugfs_add_device(struct b43_wldev *dev)
99 {
100 }
101 static inline void b43_debugfs_remove_device(struct b43_wldev *dev)
102 {
103 }
104 static inline void b43_debugfs_log_txstat(struct b43_wldev *dev,
105  const struct b43_txstatus *status)
106 {
107 }
108 
109 #endif /* CONFIG_B43_DEBUG */
110 
111 #endif /* B43_DEBUGFS_H_ */