xref: /linux/fs/xfs/xfs_message.h (revision ca55b2fef3a9373fcfc30f82fd26bc7fccbda732)
1 #ifndef __XFS_MESSAGE_H
2 #define __XFS_MESSAGE_H 1
3 
4 struct xfs_mount;
5 
6 extern __printf(2, 3)
7 void xfs_emerg(const struct xfs_mount *mp, const char *fmt, ...);
8 extern __printf(2, 3)
9 void xfs_alert(const struct xfs_mount *mp, const char *fmt, ...);
10 extern __printf(3, 4)
11 void xfs_alert_tag(const struct xfs_mount *mp, int tag, const char *fmt, ...);
12 extern __printf(2, 3)
13 void xfs_crit(const struct xfs_mount *mp, const char *fmt, ...);
14 extern __printf(2, 3)
15 void xfs_err(const struct xfs_mount *mp, const char *fmt, ...);
16 extern __printf(2, 3)
17 void xfs_warn(const struct xfs_mount *mp, const char *fmt, ...);
18 extern __printf(2, 3)
19 void xfs_notice(const struct xfs_mount *mp, const char *fmt, ...);
20 extern __printf(2, 3)
21 void xfs_info(const struct xfs_mount *mp, const char *fmt, ...);
22 
23 #ifdef DEBUG
24 extern __printf(2, 3)
25 void xfs_debug(const struct xfs_mount *mp, const char *fmt, ...);
26 #else
27 static inline __printf(2, 3)
28 void xfs_debug(const struct xfs_mount *mp, const char *fmt, ...)
29 {
30 }
31 #endif
32 
33 #define xfs_printk_ratelimited(func, dev, fmt, ...)		\
34 do {									\
35 	static DEFINE_RATELIMIT_STATE(_rs,				\
36 				      DEFAULT_RATELIMIT_INTERVAL,	\
37 				      DEFAULT_RATELIMIT_BURST);		\
38 	if (__ratelimit(&_rs))						\
39 		func(dev, fmt, ##__VA_ARGS__);			\
40 } while (0)
41 
42 #define xfs_emerg_ratelimited(dev, fmt, ...)				\
43 	xfs_printk_ratelimited(xfs_emerg, dev, fmt, ##__VA_ARGS__)
44 #define xfs_alert_ratelimited(dev, fmt, ...)				\
45 	xfs_printk_ratelimited(xfs_alert, dev, fmt, ##__VA_ARGS__)
46 #define xfs_crit_ratelimited(dev, fmt, ...)				\
47 	xfs_printk_ratelimited(xfs_crit, dev, fmt, ##__VA_ARGS__)
48 #define xfs_err_ratelimited(dev, fmt, ...)				\
49 	xfs_printk_ratelimited(xfs_err, dev, fmt, ##__VA_ARGS__)
50 #define xfs_warn_ratelimited(dev, fmt, ...)				\
51 	xfs_printk_ratelimited(xfs_warn, dev, fmt, ##__VA_ARGS__)
52 #define xfs_notice_ratelimited(dev, fmt, ...)				\
53 	xfs_printk_ratelimited(xfs_notice, dev, fmt, ##__VA_ARGS__)
54 #define xfs_info_ratelimited(dev, fmt, ...)				\
55 	xfs_printk_ratelimited(xfs_info, dev, fmt, ##__VA_ARGS__)
56 #define xfs_debug_ratelimited(dev, fmt, ...)				\
57 	xfs_printk_ratelimited(xfs_debug, dev, fmt, ##__VA_ARGS__)
58 
59 extern void assfail(char *expr, char *f, int l);
60 extern void asswarn(char *expr, char *f, int l);
61 
62 extern void xfs_hex_dump(void *p, int length);
63 
64 #endif	/* __XFS_MESSAGE_H */
65