xref: /linux-6.15/include/linux/ratelimit.h (revision f15cbe6f)
1 #ifndef _LINUX_RATELIMIT_H
2 #define _LINUX_RATELIMIT_H
3 #include <linux/param.h>
4 
5 #define DEFAULT_RATELIMIT_INTERVAL (5 * HZ)
6 #define DEFAULT_RATELIMIT_BURST 10
7 
8 struct ratelimit_state {
9 	int interval;
10 	int burst;
11 	int printed;
12 	int missed;
13 	unsigned long begin;
14 };
15 
16 #define DEFINE_RATELIMIT_STATE(name, interval, burst)		\
17 		struct ratelimit_state name = {interval, burst,}
18 
19 extern int __ratelimit(struct ratelimit_state *rs);
20 
21 static inline int ratelimit(void)
22 {
23 	static DEFINE_RATELIMIT_STATE(rs, DEFAULT_RATELIMIT_INTERVAL,
24 					DEFAULT_RATELIMIT_BURST);
25 	return __ratelimit(&rs);
26 }
27 #endif
28