#ifndef _LINUX_RATELIMIT_H #define _LINUX_RATELIMIT_H #include <linux/param.h> #define DEFAULT_RATELIMIT_INTERVAL (5 * HZ) #define DEFAULT_RATELIMIT_BURST 10 struct ratelimit_state { int interval; int burst; int printed; int missed; unsigned long begin; }; #define DEFINE_RATELIMIT_STATE(name, interval, burst) \ struct ratelimit_state name = {interval, burst,} extern int __ratelimit(struct ratelimit_state *rs); static inline int ratelimit(void) { static DEFINE_RATELIMIT_STATE(rs, DEFAULT_RATELIMIT_INTERVAL, DEFAULT_RATELIMIT_BURST); return __ratelimit(&rs); } #endif