Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
10e38391 DC |
2 | #ifndef __XFS_MESSAGE_H |
3 | #define __XFS_MESSAGE_H 1 | |
4 | ||
a358f406 TL |
5 | #include <linux/once_lite.h> |
6 | ||
10e38391 DC |
7 | struct xfs_mount; |
8 | ||
b9075fa9 JP |
9 | extern __printf(2, 3) |
10 | void xfs_emerg(const struct xfs_mount *mp, const char *fmt, ...); | |
11 | extern __printf(2, 3) | |
12 | void xfs_alert(const struct xfs_mount *mp, const char *fmt, ...); | |
13 | extern __printf(3, 4) | |
14 | void xfs_alert_tag(const struct xfs_mount *mp, int tag, const char *fmt, ...); | |
15 | extern __printf(2, 3) | |
16 | void xfs_crit(const struct xfs_mount *mp, const char *fmt, ...); | |
17 | extern __printf(2, 3) | |
18 | void xfs_err(const struct xfs_mount *mp, const char *fmt, ...); | |
19 | extern __printf(2, 3) | |
20 | void xfs_warn(const struct xfs_mount *mp, const char *fmt, ...); | |
21 | extern __printf(2, 3) | |
22 | void xfs_notice(const struct xfs_mount *mp, const char *fmt, ...); | |
23 | extern __printf(2, 3) | |
24 | void xfs_info(const struct xfs_mount *mp, const char *fmt, ...); | |
10e38391 DC |
25 | |
26 | #ifdef DEBUG | |
b9075fa9 JP |
27 | extern __printf(2, 3) |
28 | void xfs_debug(const struct xfs_mount *mp, const char *fmt, ...); | |
10e38391 | 29 | #else |
b9075fa9 JP |
30 | static inline __printf(2, 3) |
31 | void xfs_debug(const struct xfs_mount *mp, const char *fmt, ...) | |
957935dc CH |
32 | { |
33 | } | |
10e38391 DC |
34 | #endif |
35 | ||
ec43f6da | 36 | #define xfs_printk_ratelimited(func, dev, fmt, ...) \ |
3d6e0361 RJ |
37 | do { \ |
38 | static DEFINE_RATELIMIT_STATE(_rs, \ | |
39 | DEFAULT_RATELIMIT_INTERVAL, \ | |
40 | DEFAULT_RATELIMIT_BURST); \ | |
41 | if (__ratelimit(&_rs)) \ | |
ec43f6da | 42 | func(dev, fmt, ##__VA_ARGS__); \ |
3d6e0361 RJ |
43 | } while (0) |
44 | ||
ec43f6da | 45 | #define xfs_printk_once(func, dev, fmt, ...) \ |
a358f406 | 46 | DO_ONCE_LITE(func, dev, fmt, ##__VA_ARGS__) |
ec43f6da | 47 | |
3d6e0361 RJ |
48 | #define xfs_emerg_ratelimited(dev, fmt, ...) \ |
49 | xfs_printk_ratelimited(xfs_emerg, dev, fmt, ##__VA_ARGS__) | |
50 | #define xfs_alert_ratelimited(dev, fmt, ...) \ | |
51 | xfs_printk_ratelimited(xfs_alert, dev, fmt, ##__VA_ARGS__) | |
52 | #define xfs_crit_ratelimited(dev, fmt, ...) \ | |
53 | xfs_printk_ratelimited(xfs_crit, dev, fmt, ##__VA_ARGS__) | |
54 | #define xfs_err_ratelimited(dev, fmt, ...) \ | |
55 | xfs_printk_ratelimited(xfs_err, dev, fmt, ##__VA_ARGS__) | |
56 | #define xfs_warn_ratelimited(dev, fmt, ...) \ | |
57 | xfs_printk_ratelimited(xfs_warn, dev, fmt, ##__VA_ARGS__) | |
58 | #define xfs_notice_ratelimited(dev, fmt, ...) \ | |
59 | xfs_printk_ratelimited(xfs_notice, dev, fmt, ##__VA_ARGS__) | |
60 | #define xfs_info_ratelimited(dev, fmt, ...) \ | |
61 | xfs_printk_ratelimited(xfs_info, dev, fmt, ##__VA_ARGS__) | |
62 | #define xfs_debug_ratelimited(dev, fmt, ...) \ | |
63 | xfs_printk_ratelimited(xfs_debug, dev, fmt, ##__VA_ARGS__) | |
64 | ||
ec43f6da ES |
65 | #define xfs_warn_once(dev, fmt, ...) \ |
66 | xfs_printk_once(xfs_warn, dev, fmt, ##__VA_ARGS__) | |
67 | #define xfs_notice_once(dev, fmt, ...) \ | |
68 | xfs_printk_once(xfs_notice, dev, fmt, ##__VA_ARGS__) | |
603f000b DW |
69 | #define xfs_info_once(dev, fmt, ...) \ |
70 | xfs_printk_once(xfs_info, dev, fmt, ##__VA_ARGS__) | |
ec43f6da | 71 | |
9842b56c DW |
72 | void assfail(struct xfs_mount *mp, char *expr, char *f, int l); |
73 | void asswarn(struct xfs_mount *mp, char *expr, char *f, int l); | |
9130090b | 74 | |
d243b89a | 75 | extern void xfs_hex_dump(const void *p, int length); |
9130090b | 76 | |
f9bccfcc BF |
77 | void xfs_buf_alert_ratelimited(struct xfs_buf *bp, const char *rlmsg, |
78 | const char *fmt, ...); | |
79 | ||
10e38391 | 80 | #endif /* __XFS_MESSAGE_H */ |