ratelimit.h 592 B

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