]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/basic/ratelimit.h
Merge pull request #17549 from yuwata/tiny-fixes
[thirdparty/systemd.git] / src / basic / ratelimit.h
CommitLineData
db9ecf05 1/* SPDX-License-Identifier: LGPL-2.1-or-later */
c2f1db8f 2#pragma once
1e2e8133 3
11c3a366
TA
4#include <stdbool.h>
5
6#include "time-util.h"
1e2e8133
LP
7#include "util.h"
8
9typedef struct RateLimit {
8c227e7f
ZJS
10 usec_t interval; /* Keep those two fields first so they can be initialized easily: */
11 unsigned burst; /* RateLimit rl = { INTERVAL, BURST }; */
4ce9faa9 12 unsigned num;
8c227e7f 13 usec_t begin;
1e2e8133
LP
14} RateLimit;
15
8c227e7f
ZJS
16static inline void ratelimit_reset(RateLimit *rl) {
17 rl->num = rl->begin = 0;
18}
451b34cc 19
2a155c53
LP
20static inline bool ratelimit_configured(RateLimit *rl) {
21 return rl->interval > 0 && rl->burst > 0;
22}
23
7994ac1d 24bool ratelimit_below(RateLimit *r);