]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/basic/ratelimit.h
321cfbbb44633b173e8effe5edba889b0b47dcb8
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
6 typedef struct RateLimit
{
7 usec_t interval
; /* Keep those two fields first so they can be initialized easily: */
8 unsigned burst
; /* RateLimit rl = { INTERVAL, BURST }; */
13 #define RATELIMIT_OFF (const RateLimit) { .interval = USEC_INFINITY, .burst = UINT_MAX }
15 static inline void ratelimit_reset(RateLimit
*rl
) {
16 rl
->num
= rl
->begin
= 0;
19 static inline bool ratelimit_configured(const RateLimit
*rl
) {
20 return rl
->interval
> 0 && rl
->burst
> 0;
23 bool ratelimit_below(RateLimit
*rl
);
25 unsigned ratelimit_num_dropped(const RateLimit
*rl
);
27 usec_t
ratelimit_end(const RateLimit
*rl
);
28 usec_t
ratelimit_left(const RateLimit
*rl
);