Blame view
fs/jffs2/debug.h
7.92 KB
730554d94 [JFFS2] Debug cod... |
1 2 3 |
/* * JFFS2 -- Journalling Flash File System, Version 2. * |
c00c310ea [JFFS2] Tidy up l... |
4 |
* Copyright © 2001-2007 Red Hat, Inc. |
6088c0587 jffs2: Update cop... |
5 |
* Copyright © 2004-2010 David Woodhouse <dwmw2@infradead.org> |
730554d94 [JFFS2] Debug cod... |
6 7 8 9 10 |
* * Created by David Woodhouse <dwmw2@infradead.org> * * For licensing information, see the file 'LICENCE' in this directory. * |
730554d94 [JFFS2] Debug cod... |
11 |
*/ |
c00c310ea [JFFS2] Tidy up l... |
12 |
|
730554d94 [JFFS2] Debug cod... |
13 14 |
#ifndef _JFFS2_DEBUG_H_ #define _JFFS2_DEBUG_H_ |
e499e01d2 [JFFS2] debug.h: ... |
15 |
#include <linux/sched.h> |
730554d94 [JFFS2] Debug cod... |
16 17 |
#ifndef CONFIG_JFFS2_FS_DEBUG |
f538c96ba [JFFS2] Debug cod... |
18 |
#define CONFIG_JFFS2_FS_DEBUG 0 |
730554d94 [JFFS2] Debug cod... |
19 |
#endif |
008531f4c [JFFS2] Fix broke... |
20 |
#if CONFIG_JFFS2_FS_DEBUG > 0 |
e0c8e42f8 [JFFS2] Debug cod... |
21 |
/* Enable "paranoia" checks and dumps */ |
730554d94 [JFFS2] Debug cod... |
22 |
#define JFFS2_DBG_PARANOIA_CHECKS |
e0c8e42f8 [JFFS2] Debug cod... |
23 |
#define JFFS2_DBG_DUMPS |
733802d97 [JFFS2] Debug cod... |
24 |
|
182ec4eee [JFFS2] Clean up ... |
25 |
/* |
733802d97 [JFFS2] Debug cod... |
26 27 28 |
* By defining/undefining the below macros one may select debugging messages * fro specific JFFS2 subsystems. */ |
e0c8e42f8 [JFFS2] Debug cod... |
29 30 31 32 33 |
#define JFFS2_DBG_READINODE_MESSAGES #define JFFS2_DBG_FRAGTREE_MESSAGES #define JFFS2_DBG_DENTLIST_MESSAGES #define JFFS2_DBG_NODEREF_MESSAGES #define JFFS2_DBG_INOCACHE_MESSAGES |
e631ddba5 [JFFS2] Add erase... |
34 |
#define JFFS2_DBG_SUMMARY_MESSAGES |
733802d97 [JFFS2] Debug cod... |
35 |
#define JFFS2_DBG_FSBUILD_MESSAGES |
e0c8e42f8 [JFFS2] Debug cod... |
36 |
#endif |
008531f4c [JFFS2] Fix broke... |
37 |
#if CONFIG_JFFS2_FS_DEBUG > 1 |
e0c8e42f8 [JFFS2] Debug cod... |
38 |
#define JFFS2_DBG_FRAGTREE2_MESSAGES |
2c61cb250 [JFFS2] Introduce... |
39 |
#define JFFS2_DBG_READINODE2_MESSAGES |
733802d97 [JFFS2] Debug cod... |
40 |
#define JFFS2_DBG_MEMALLOC_MESSAGES |
e0c8e42f8 [JFFS2] Debug cod... |
41 |
#endif |
45ca1b509 [JFFS2] Debug cod... |
42 |
/* Sanity checks are supposed to be light-weight and enabled by default */ |
e0c8e42f8 [JFFS2] Debug cod... |
43 |
#define JFFS2_DBG_SANITY_CHECKS |
182ec4eee [JFFS2] Clean up ... |
44 |
/* |
e0c8e42f8 [JFFS2] Debug cod... |
45 |
* Dx() are mainly used for debugging messages, they must go away and be |
733802d97 [JFFS2] Debug cod... |
46 |
* superseded by nicer dbg_xxx() macros... |
e0c8e42f8 [JFFS2] Debug cod... |
47 48 |
*/ #if CONFIG_JFFS2_FS_DEBUG > 0 |
9c261b33a jffs2: Convert mo... |
49 |
#define DEBUG |
730554d94 [JFFS2] Debug cod... |
50 51 52 53 54 55 56 57 58 59 |
#define D1(x) x #else #define D1(x) #endif #if CONFIG_JFFS2_FS_DEBUG > 1 #define D2(x) x #else #define D2(x) #endif |
9c261b33a jffs2: Convert mo... |
60 61 62 63 64 |
#define jffs2_dbg(level, fmt, ...) \ do { \ if (CONFIG_JFFS2_FS_DEBUG >= level) \ pr_debug(fmt, ##__VA_ARGS__); \ } while (0) |
e0c8e42f8 [JFFS2] Debug cod... |
65 |
/* The prefixes of JFFS2 messages */ |
9bbf29e47 jffs2: Standardiz... |
66 |
#define JFFS2_DBG KERN_DEBUG |
81e39cf02 [JFFS2] Debug mes... |
67 |
#define JFFS2_DBG_PREFIX "[JFFS2 DBG]" |
81e39cf02 [JFFS2] Debug mes... |
68 |
#define JFFS2_DBG_MSG_PREFIX JFFS2_DBG JFFS2_DBG_PREFIX |
730554d94 [JFFS2] Debug cod... |
69 |
|
e0c8e42f8 [JFFS2] Debug cod... |
70 |
/* JFFS2 message macros */ |
9bbf29e47 jffs2: Standardiz... |
71 72 73 |
#define JFFS2_ERROR(fmt, ...) \ pr_err("error: (%d) %s: " fmt, \ task_pid_nr(current), __func__, ##__VA_ARGS__) |
730554d94 [JFFS2] Debug cod... |
74 |
|
e0c8e42f8 [JFFS2] Debug cod... |
75 |
#define JFFS2_WARNING(fmt, ...) \ |
9bbf29e47 jffs2: Standardiz... |
76 77 |
pr_warn("warning: (%d) %s: " fmt, \ task_pid_nr(current), __func__, ##__VA_ARGS__) |
182ec4eee [JFFS2] Clean up ... |
78 |
|
e0c8e42f8 [JFFS2] Debug cod... |
79 |
#define JFFS2_NOTICE(fmt, ...) \ |
9bbf29e47 jffs2: Standardiz... |
80 81 |
pr_notice("notice: (%d) %s: " fmt, \ task_pid_nr(current), __func__, ##__VA_ARGS__) |
730554d94 [JFFS2] Debug cod... |
82 |
|
e0c8e42f8 [JFFS2] Debug cod... |
83 |
#define JFFS2_DEBUG(fmt, ...) \ |
9bbf29e47 jffs2: Standardiz... |
84 85 |
printk(KERN_DEBUG "[JFFS2 DBG] (%d) %s: " fmt, \ task_pid_nr(current), __func__, ##__VA_ARGS__) |
e0c8e42f8 [JFFS2] Debug cod... |
86 |
|
182ec4eee [JFFS2] Clean up ... |
87 |
/* |
e0c8e42f8 [JFFS2] Debug cod... |
88 89 90 91 92 |
* We split our debugging messages on several parts, depending on the JFFS2 * subsystem the message belongs to. */ /* Read inode debugging messages */ #ifdef JFFS2_DBG_READINODE_MESSAGES |
733802d97 [JFFS2] Debug cod... |
93 |
#define dbg_readinode(fmt, ...) JFFS2_DEBUG(fmt, ##__VA_ARGS__) |
e0c8e42f8 [JFFS2] Debug cod... |
94 |
#else |
733802d97 [JFFS2] Debug cod... |
95 |
#define dbg_readinode(fmt, ...) |
730554d94 [JFFS2] Debug cod... |
96 |
#endif |
2c61cb250 [JFFS2] Introduce... |
97 98 99 100 101 |
#ifdef JFFS2_DBG_READINODE2_MESSAGES #define dbg_readinode2(fmt, ...) JFFS2_DEBUG(fmt, ##__VA_ARGS__) #else #define dbg_readinode2(fmt, ...) #endif |
730554d94 [JFFS2] Debug cod... |
102 |
|
e0c8e42f8 [JFFS2] Debug cod... |
103 104 |
/* Fragtree build debugging messages */ #ifdef JFFS2_DBG_FRAGTREE_MESSAGES |
733802d97 [JFFS2] Debug cod... |
105 |
#define dbg_fragtree(fmt, ...) JFFS2_DEBUG(fmt, ##__VA_ARGS__) |
e0c8e42f8 [JFFS2] Debug cod... |
106 |
#else |
733802d97 [JFFS2] Debug cod... |
107 |
#define dbg_fragtree(fmt, ...) |
e0c8e42f8 [JFFS2] Debug cod... |
108 |
#endif |
e0e3006f7 [JFFS2] Refine fr... |
109 |
#ifdef JFFS2_DBG_FRAGTREE2_MESSAGES |
733802d97 [JFFS2] Debug cod... |
110 |
#define dbg_fragtree2(fmt, ...) JFFS2_DEBUG(fmt, ##__VA_ARGS__) |
e0e3006f7 [JFFS2] Refine fr... |
111 |
#else |
733802d97 [JFFS2] Debug cod... |
112 |
#define dbg_fragtree2(fmt, ...) |
e0e3006f7 [JFFS2] Refine fr... |
113 |
#endif |
e0c8e42f8 [JFFS2] Debug cod... |
114 115 116 |
/* Directory entry list manilulation debugging messages */ #ifdef JFFS2_DBG_DENTLIST_MESSAGES |
733802d97 [JFFS2] Debug cod... |
117 |
#define dbg_dentlist(fmt, ...) JFFS2_DEBUG(fmt, ##__VA_ARGS__) |
e0c8e42f8 [JFFS2] Debug cod... |
118 |
#else |
733802d97 [JFFS2] Debug cod... |
119 |
#define dbg_dentlist(fmt, ...) |
e0c8e42f8 [JFFS2] Debug cod... |
120 |
#endif |
e0c8e42f8 [JFFS2] Debug cod... |
121 |
|
f538c96ba [JFFS2] Debug cod... |
122 |
/* Print the messages about manipulating node_refs */ |
e0c8e42f8 [JFFS2] Debug cod... |
123 |
#ifdef JFFS2_DBG_NODEREF_MESSAGES |
733802d97 [JFFS2] Debug cod... |
124 |
#define dbg_noderef(fmt, ...) JFFS2_DEBUG(fmt, ##__VA_ARGS__) |
e0c8e42f8 [JFFS2] Debug cod... |
125 |
#else |
733802d97 [JFFS2] Debug cod... |
126 |
#define dbg_noderef(fmt, ...) |
e0c8e42f8 [JFFS2] Debug cod... |
127 |
#endif |
730554d94 [JFFS2] Debug cod... |
128 |
|
f538c96ba [JFFS2] Debug cod... |
129 |
/* Manipulations with the list of inodes (JFFS2 inocache) */ |
e0c8e42f8 [JFFS2] Debug cod... |
130 |
#ifdef JFFS2_DBG_INOCACHE_MESSAGES |
733802d97 [JFFS2] Debug cod... |
131 |
#define dbg_inocache(fmt, ...) JFFS2_DEBUG(fmt, ##__VA_ARGS__) |
e0c8e42f8 [JFFS2] Debug cod... |
132 |
#else |
733802d97 [JFFS2] Debug cod... |
133 |
#define dbg_inocache(fmt, ...) |
e0c8e42f8 [JFFS2] Debug cod... |
134 |
#endif |
e631ddba5 [JFFS2] Add erase... |
135 136 |
/* Summary debugging messages */ #ifdef JFFS2_DBG_SUMMARY_MESSAGES |
733802d97 [JFFS2] Debug cod... |
137 138 139 140 141 142 143 144 |
#define dbg_summary(fmt, ...) JFFS2_DEBUG(fmt, ##__VA_ARGS__) #else #define dbg_summary(fmt, ...) #endif /* File system build messages */ #ifdef JFFS2_DBG_FSBUILD_MESSAGES #define dbg_fsbuild(fmt, ...) JFFS2_DEBUG(fmt, ##__VA_ARGS__) |
e631ddba5 [JFFS2] Add erase... |
145 |
#else |
733802d97 [JFFS2] Debug cod... |
146 |
#define dbg_fsbuild(fmt, ...) |
e631ddba5 [JFFS2] Add erase... |
147 |
#endif |
f538c96ba [JFFS2] Debug cod... |
148 149 |
/* Watch the object allocations */ #ifdef JFFS2_DBG_MEMALLOC_MESSAGES |
733802d97 [JFFS2] Debug cod... |
150 |
#define dbg_memalloc(fmt, ...) JFFS2_DEBUG(fmt, ##__VA_ARGS__) |
f538c96ba [JFFS2] Debug cod... |
151 |
#else |
733802d97 [JFFS2] Debug cod... |
152 |
#define dbg_memalloc(fmt, ...) |
f538c96ba [JFFS2] Debug cod... |
153 |
#endif |
aa98d7cf5 [JFFS2][XATTR] XA... |
154 155 156 157 158 159 |
/* Watch the XATTR subsystem */ #ifdef JFFS2_DBG_XATTR_MESSAGES #define dbg_xattr(fmt, ...) JFFS2_DEBUG(fmt, ##__VA_ARGS__) #else #define dbg_xattr(fmt, ...) #endif |
f538c96ba [JFFS2] Debug cod... |
160 |
|
45ca1b509 [JFFS2] Debug cod... |
161 162 163 164 165 166 167 |
/* "Sanity" checks */ void __jffs2_dbg_acct_sanity_check_nolock(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb); void __jffs2_dbg_acct_sanity_check(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb); |
e0c8e42f8 [JFFS2] Debug cod... |
168 169 170 |
/* "Paranoia" checks */ void __jffs2_dbg_fragtree_paranoia_check(struct jffs2_inode_info *f); |
730554d94 [JFFS2] Debug cod... |
171 |
void |
e0c8e42f8 [JFFS2] Debug cod... |
172 173 174 175 176 177 178 179 180 181 |
__jffs2_dbg_fragtree_paranoia_check_nolock(struct jffs2_inode_info *f); void __jffs2_dbg_acct_paranoia_check(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb); void __jffs2_dbg_acct_paranoia_check_nolock(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb); void __jffs2_dbg_prewrite_paranoia_check(struct jffs2_sb_info *c, uint32_t ofs, int len); |
730554d94 [JFFS2] Debug cod... |
182 |
|
e0c8e42f8 [JFFS2] Debug cod... |
183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 |
/* "Dump" functions */ void __jffs2_dbg_dump_jeb(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb); void __jffs2_dbg_dump_jeb_nolock(struct jffs2_eraseblock *jeb); void __jffs2_dbg_dump_block_lists(struct jffs2_sb_info *c); void __jffs2_dbg_dump_block_lists_nolock(struct jffs2_sb_info *c); void __jffs2_dbg_dump_node_refs(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb); void __jffs2_dbg_dump_node_refs_nolock(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb); void __jffs2_dbg_dump_fragtree(struct jffs2_inode_info *f); void __jffs2_dbg_dump_fragtree_nolock(struct jffs2_inode_info *f); |
730554d94 [JFFS2] Debug cod... |
202 |
void |
e0c8e42f8 [JFFS2] Debug cod... |
203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 |
__jffs2_dbg_dump_buffer(unsigned char *buf, int len, uint32_t offs); void __jffs2_dbg_dump_node(struct jffs2_sb_info *c, uint32_t ofs); #ifdef JFFS2_DBG_PARANOIA_CHECKS #define jffs2_dbg_fragtree_paranoia_check(f) \ __jffs2_dbg_fragtree_paranoia_check(f) #define jffs2_dbg_fragtree_paranoia_check_nolock(f) \ __jffs2_dbg_fragtree_paranoia_check_nolock(f) #define jffs2_dbg_acct_paranoia_check(c, jeb) \ __jffs2_dbg_acct_paranoia_check(c,jeb) #define jffs2_dbg_acct_paranoia_check_nolock(c, jeb) \ __jffs2_dbg_acct_paranoia_check_nolock(c,jeb) #define jffs2_dbg_prewrite_paranoia_check(c, ofs, len) \ __jffs2_dbg_prewrite_paranoia_check(c, ofs, len) |
730554d94 [JFFS2] Debug cod... |
218 219 |
#else #define jffs2_dbg_fragtree_paranoia_check(f) |
e0c8e42f8 [JFFS2] Debug cod... |
220 |
#define jffs2_dbg_fragtree_paranoia_check_nolock(f) |
730554d94 [JFFS2] Debug cod... |
221 |
#define jffs2_dbg_acct_paranoia_check(c, jeb) |
e0c8e42f8 [JFFS2] Debug cod... |
222 |
#define jffs2_dbg_acct_paranoia_check_nolock(c, jeb) |
730554d94 [JFFS2] Debug cod... |
223 224 |
#define jffs2_dbg_prewrite_paranoia_check(c, ofs, len) #endif /* !JFFS2_PARANOIA_CHECKS */ |
e0c8e42f8 [JFFS2] Debug cod... |
225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 |
#ifdef JFFS2_DBG_DUMPS #define jffs2_dbg_dump_jeb(c, jeb) \ __jffs2_dbg_dump_jeb(c, jeb); #define jffs2_dbg_dump_jeb_nolock(jeb) \ __jffs2_dbg_dump_jeb_nolock(jeb); #define jffs2_dbg_dump_block_lists(c) \ __jffs2_dbg_dump_block_lists(c) #define jffs2_dbg_dump_block_lists_nolock(c) \ __jffs2_dbg_dump_block_lists_nolock(c) #define jffs2_dbg_dump_fragtree(f) \ __jffs2_dbg_dump_fragtree(f); #define jffs2_dbg_dump_fragtree_nolock(f) \ __jffs2_dbg_dump_fragtree_nolock(f); #define jffs2_dbg_dump_buffer(buf, len, offs) \ __jffs2_dbg_dump_buffer(*buf, len, offs); #define jffs2_dbg_dump_node(c, ofs) \ __jffs2_dbg_dump_node(c, ofs); #else #define jffs2_dbg_dump_jeb(c, jeb) #define jffs2_dbg_dump_jeb_nolock(jeb) #define jffs2_dbg_dump_block_lists(c) #define jffs2_dbg_dump_block_lists_nolock(c) #define jffs2_dbg_dump_fragtree(f) #define jffs2_dbg_dump_fragtree_nolock(f) #define jffs2_dbg_dump_buffer(buf, len, offs) #define jffs2_dbg_dump_node(c, ofs) #endif /* !JFFS2_DBG_DUMPS */ |
730554d94 [JFFS2] Debug cod... |
252 |
#ifdef JFFS2_DBG_SANITY_CHECKS |
45ca1b509 [JFFS2] Debug cod... |
253 254 255 256 |
#define jffs2_dbg_acct_sanity_check(c, jeb) \ __jffs2_dbg_acct_sanity_check(c, jeb) #define jffs2_dbg_acct_sanity_check_nolock(c, jeb) \ __jffs2_dbg_acct_sanity_check_nolock(c, jeb) |
e0c8e42f8 [JFFS2] Debug cod... |
257 258 259 |
#else #define jffs2_dbg_acct_sanity_check(c, jeb) #define jffs2_dbg_acct_sanity_check_nolock(c, jeb) |
730554d94 [JFFS2] Debug cod... |
260 261 262 |
#endif /* !JFFS2_DBG_SANITY_CHECKS */ #endif /* _JFFS2_DEBUG_H_ */ |