Blame view
fs/jffs2/debug.h
8.1 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. |
730554d94 [JFFS2] Debug cod... |
5 6 7 8 9 |
* * Created by David Woodhouse <dwmw2@infradead.org> * * For licensing information, see the file 'LICENCE' in this directory. * |
730554d94 [JFFS2] Debug cod... |
10 |
*/ |
c00c310ea [JFFS2] Tidy up l... |
11 |
|
730554d94 [JFFS2] Debug cod... |
12 13 |
#ifndef _JFFS2_DEBUG_H_ #define _JFFS2_DEBUG_H_ |
e499e01d2 [JFFS2] debug.h: ... |
14 |
#include <linux/sched.h> |
730554d94 [JFFS2] Debug cod... |
15 16 |
#ifndef CONFIG_JFFS2_FS_DEBUG |
f538c96ba [JFFS2] Debug cod... |
17 |
#define CONFIG_JFFS2_FS_DEBUG 0 |
730554d94 [JFFS2] Debug cod... |
18 |
#endif |
008531f4c [JFFS2] Fix broke... |
19 |
#if CONFIG_JFFS2_FS_DEBUG > 0 |
e0c8e42f8 [JFFS2] Debug cod... |
20 |
/* Enable "paranoia" checks and dumps */ |
730554d94 [JFFS2] Debug cod... |
21 |
#define JFFS2_DBG_PARANOIA_CHECKS |
e0c8e42f8 [JFFS2] Debug cod... |
22 |
#define JFFS2_DBG_DUMPS |
733802d97 [JFFS2] Debug cod... |
23 |
|
182ec4eee [JFFS2] Clean up ... |
24 |
/* |
733802d97 [JFFS2] Debug cod... |
25 26 27 |
* By defining/undefining the below macros one may select debugging messages * fro specific JFFS2 subsystems. */ |
e0c8e42f8 [JFFS2] Debug cod... |
28 29 30 31 32 |
#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... |
33 |
#define JFFS2_DBG_SUMMARY_MESSAGES |
733802d97 [JFFS2] Debug cod... |
34 |
#define JFFS2_DBG_FSBUILD_MESSAGES |
e0c8e42f8 [JFFS2] Debug cod... |
35 |
#endif |
008531f4c [JFFS2] Fix broke... |
36 |
#if CONFIG_JFFS2_FS_DEBUG > 1 |
e0c8e42f8 [JFFS2] Debug cod... |
37 |
#define JFFS2_DBG_FRAGTREE2_MESSAGES |
733802d97 [JFFS2] Debug cod... |
38 |
#define JFFS2_DBG_MEMALLOC_MESSAGES |
e0c8e42f8 [JFFS2] Debug cod... |
39 |
#endif |
45ca1b509 [JFFS2] Debug cod... |
40 |
/* Sanity checks are supposed to be light-weight and enabled by default */ |
e0c8e42f8 [JFFS2] Debug cod... |
41 |
#define JFFS2_DBG_SANITY_CHECKS |
182ec4eee [JFFS2] Clean up ... |
42 |
/* |
e0c8e42f8 [JFFS2] Debug cod... |
43 |
* Dx() are mainly used for debugging messages, they must go away and be |
733802d97 [JFFS2] Debug cod... |
44 |
* superseded by nicer dbg_xxx() macros... |
e0c8e42f8 [JFFS2] Debug cod... |
45 46 |
*/ #if CONFIG_JFFS2_FS_DEBUG > 0 |
730554d94 [JFFS2] Debug cod... |
47 48 49 50 51 52 53 54 55 56 |
#define D1(x) x #else #define D1(x) #endif #if CONFIG_JFFS2_FS_DEBUG > 1 #define D2(x) x #else #define D2(x) #endif |
e0c8e42f8 [JFFS2] Debug cod... |
57 |
/* The prefixes of JFFS2 messages */ |
81e39cf02 [JFFS2] Debug mes... |
58 59 60 61 |
#define JFFS2_DBG_PREFIX "[JFFS2 DBG]" #define JFFS2_ERR_PREFIX "JFFS2 error:" #define JFFS2_WARN_PREFIX "JFFS2 warning:" #define JFFS2_NOTICE_PREFIX "JFFS2 notice:" |
730554d94 [JFFS2] Debug cod... |
62 |
|
81e39cf02 [JFFS2] Debug mes... |
63 64 65 66 67 68 69 70 71 |
#define JFFS2_ERR KERN_ERR #define JFFS2_WARN KERN_WARNING #define JFFS2_NOT KERN_NOTICE #define JFFS2_DBG KERN_DEBUG #define JFFS2_DBG_MSG_PREFIX JFFS2_DBG JFFS2_DBG_PREFIX #define JFFS2_ERR_MSG_PREFIX JFFS2_ERR JFFS2_ERR_PREFIX #define JFFS2_WARN_MSG_PREFIX JFFS2_WARN JFFS2_WARN_PREFIX #define JFFS2_NOTICE_MSG_PREFIX JFFS2_NOT JFFS2_NOTICE_PREFIX |
730554d94 [JFFS2] Debug cod... |
72 |
|
e0c8e42f8 [JFFS2] Debug cod... |
73 74 75 |
/* JFFS2 message macros */ #define JFFS2_ERROR(fmt, ...) \ do { \ |
81e39cf02 [JFFS2] Debug mes... |
76 |
printk(JFFS2_ERR_MSG_PREFIX \ |
8d5df4095 [JFFS2] More mess... |
77 |
" (%d) %s: " fmt, current->pid, \ |
02b706822 [PATCH] jffs2 deb... |
78 |
__FUNCTION__ , ##__VA_ARGS__); \ |
e0c8e42f8 [JFFS2] Debug cod... |
79 |
} while(0) |
730554d94 [JFFS2] Debug cod... |
80 |
|
e0c8e42f8 [JFFS2] Debug cod... |
81 82 |
#define JFFS2_WARNING(fmt, ...) \ do { \ |
81e39cf02 [JFFS2] Debug mes... |
83 |
printk(JFFS2_WARN_MSG_PREFIX \ |
8d5df4095 [JFFS2] More mess... |
84 |
" (%d) %s: " fmt, current->pid, \ |
02b706822 [PATCH] jffs2 deb... |
85 |
__FUNCTION__ , ##__VA_ARGS__); \ |
e0c8e42f8 [JFFS2] Debug cod... |
86 |
} while(0) |
182ec4eee [JFFS2] Clean up ... |
87 |
|
e0c8e42f8 [JFFS2] Debug cod... |
88 89 |
#define JFFS2_NOTICE(fmt, ...) \ do { \ |
81e39cf02 [JFFS2] Debug mes... |
90 |
printk(JFFS2_NOTICE_MSG_PREFIX \ |
8d5df4095 [JFFS2] More mess... |
91 |
" (%d) %s: " fmt, current->pid, \ |
02b706822 [PATCH] jffs2 deb... |
92 |
__FUNCTION__ , ##__VA_ARGS__); \ |
e0c8e42f8 [JFFS2] Debug cod... |
93 |
} while(0) |
730554d94 [JFFS2] Debug cod... |
94 |
|
e0c8e42f8 [JFFS2] Debug cod... |
95 96 |
#define JFFS2_DEBUG(fmt, ...) \ do { \ |
81e39cf02 [JFFS2] Debug mes... |
97 |
printk(JFFS2_DBG_MSG_PREFIX \ |
8d5df4095 [JFFS2] More mess... |
98 |
" (%d) %s: " fmt, current->pid, \ |
02b706822 [PATCH] jffs2 deb... |
99 |
__FUNCTION__ , ##__VA_ARGS__); \ |
e0c8e42f8 [JFFS2] Debug cod... |
100 |
} while(0) |
182ec4eee [JFFS2] Clean up ... |
101 |
/* |
e0c8e42f8 [JFFS2] Debug cod... |
102 103 104 105 106 |
* 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... |
107 |
#define dbg_readinode(fmt, ...) JFFS2_DEBUG(fmt, ##__VA_ARGS__) |
e0c8e42f8 [JFFS2] Debug cod... |
108 |
#else |
733802d97 [JFFS2] Debug cod... |
109 |
#define dbg_readinode(fmt, ...) |
730554d94 [JFFS2] Debug cod... |
110 |
#endif |
e0c8e42f8 [JFFS2] Debug cod... |
111 112 |
/* Fragtree build debugging messages */ #ifdef JFFS2_DBG_FRAGTREE_MESSAGES |
733802d97 [JFFS2] Debug cod... |
113 |
#define dbg_fragtree(fmt, ...) JFFS2_DEBUG(fmt, ##__VA_ARGS__) |
e0c8e42f8 [JFFS2] Debug cod... |
114 |
#else |
733802d97 [JFFS2] Debug cod... |
115 |
#define dbg_fragtree(fmt, ...) |
e0c8e42f8 [JFFS2] Debug cod... |
116 |
#endif |
e0e3006f7 [JFFS2] Refine fr... |
117 |
#ifdef JFFS2_DBG_FRAGTREE2_MESSAGES |
733802d97 [JFFS2] Debug cod... |
118 |
#define dbg_fragtree2(fmt, ...) JFFS2_DEBUG(fmt, ##__VA_ARGS__) |
e0e3006f7 [JFFS2] Refine fr... |
119 |
#else |
733802d97 [JFFS2] Debug cod... |
120 |
#define dbg_fragtree2(fmt, ...) |
e0e3006f7 [JFFS2] Refine fr... |
121 |
#endif |
e0c8e42f8 [JFFS2] Debug cod... |
122 123 124 |
/* Directory entry list manilulation debugging messages */ #ifdef JFFS2_DBG_DENTLIST_MESSAGES |
733802d97 [JFFS2] Debug cod... |
125 |
#define dbg_dentlist(fmt, ...) JFFS2_DEBUG(fmt, ##__VA_ARGS__) |
e0c8e42f8 [JFFS2] Debug cod... |
126 |
#else |
733802d97 [JFFS2] Debug cod... |
127 |
#define dbg_dentlist(fmt, ...) |
e0c8e42f8 [JFFS2] Debug cod... |
128 |
#endif |
e0c8e42f8 [JFFS2] Debug cod... |
129 |
|
f538c96ba [JFFS2] Debug cod... |
130 |
/* Print the messages about manipulating node_refs */ |
e0c8e42f8 [JFFS2] Debug cod... |
131 |
#ifdef JFFS2_DBG_NODEREF_MESSAGES |
733802d97 [JFFS2] Debug cod... |
132 |
#define dbg_noderef(fmt, ...) JFFS2_DEBUG(fmt, ##__VA_ARGS__) |
e0c8e42f8 [JFFS2] Debug cod... |
133 |
#else |
733802d97 [JFFS2] Debug cod... |
134 |
#define dbg_noderef(fmt, ...) |
e0c8e42f8 [JFFS2] Debug cod... |
135 |
#endif |
730554d94 [JFFS2] Debug cod... |
136 |
|
f538c96ba [JFFS2] Debug cod... |
137 |
/* Manipulations with the list of inodes (JFFS2 inocache) */ |
e0c8e42f8 [JFFS2] Debug cod... |
138 |
#ifdef JFFS2_DBG_INOCACHE_MESSAGES |
733802d97 [JFFS2] Debug cod... |
139 |
#define dbg_inocache(fmt, ...) JFFS2_DEBUG(fmt, ##__VA_ARGS__) |
e0c8e42f8 [JFFS2] Debug cod... |
140 |
#else |
733802d97 [JFFS2] Debug cod... |
141 |
#define dbg_inocache(fmt, ...) |
e0c8e42f8 [JFFS2] Debug cod... |
142 |
#endif |
e631ddba5 [JFFS2] Add erase... |
143 144 |
/* Summary debugging messages */ #ifdef JFFS2_DBG_SUMMARY_MESSAGES |
733802d97 [JFFS2] Debug cod... |
145 146 147 148 149 150 151 152 |
#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... |
153 |
#else |
733802d97 [JFFS2] Debug cod... |
154 |
#define dbg_fsbuild(fmt, ...) |
e631ddba5 [JFFS2] Add erase... |
155 |
#endif |
f538c96ba [JFFS2] Debug cod... |
156 157 |
/* Watch the object allocations */ #ifdef JFFS2_DBG_MEMALLOC_MESSAGES |
733802d97 [JFFS2] Debug cod... |
158 |
#define dbg_memalloc(fmt, ...) JFFS2_DEBUG(fmt, ##__VA_ARGS__) |
f538c96ba [JFFS2] Debug cod... |
159 |
#else |
733802d97 [JFFS2] Debug cod... |
160 |
#define dbg_memalloc(fmt, ...) |
f538c96ba [JFFS2] Debug cod... |
161 |
#endif |
aa98d7cf5 [JFFS2][XATTR] XA... |
162 163 164 165 166 167 |
/* 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... |
168 |
|
45ca1b509 [JFFS2] Debug cod... |
169 170 171 172 173 174 175 |
/* "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... |
176 177 178 |
/* "Paranoia" checks */ void __jffs2_dbg_fragtree_paranoia_check(struct jffs2_inode_info *f); |
730554d94 [JFFS2] Debug cod... |
179 |
void |
e0c8e42f8 [JFFS2] Debug cod... |
180 181 182 183 184 185 186 187 188 189 |
__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... |
190 |
|
e0c8e42f8 [JFFS2] Debug cod... |
191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 |
/* "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... |
210 |
void |
e0c8e42f8 [JFFS2] Debug cod... |
211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 |
__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... |
226 227 |
#else #define jffs2_dbg_fragtree_paranoia_check(f) |
e0c8e42f8 [JFFS2] Debug cod... |
228 |
#define jffs2_dbg_fragtree_paranoia_check_nolock(f) |
730554d94 [JFFS2] Debug cod... |
229 |
#define jffs2_dbg_acct_paranoia_check(c, jeb) |
e0c8e42f8 [JFFS2] Debug cod... |
230 |
#define jffs2_dbg_acct_paranoia_check_nolock(c, jeb) |
730554d94 [JFFS2] Debug cod... |
231 232 |
#define jffs2_dbg_prewrite_paranoia_check(c, ofs, len) #endif /* !JFFS2_PARANOIA_CHECKS */ |
e0c8e42f8 [JFFS2] Debug cod... |
233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 |
#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... |
260 |
#ifdef JFFS2_DBG_SANITY_CHECKS |
45ca1b509 [JFFS2] Debug cod... |
261 262 263 264 |
#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... |
265 266 267 |
#else #define jffs2_dbg_acct_sanity_check(c, jeb) #define jffs2_dbg_acct_sanity_check_nolock(c, jeb) |
730554d94 [JFFS2] Debug cod... |
268 269 270 |
#endif /* !JFFS2_DBG_SANITY_CHECKS */ #endif /* _JFFS2_DEBUG_H_ */ |