|  | #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 |