mars/kernel/lib_limiter.h

31 lines
595 B
C
Raw Normal View History

// (c) 2012 Thomas Schoebel-Theuer / 1&1 Internet AG
#ifndef MARS_LIB_LIMITER_H
#define MARS_LIB_LIMITER_H
2012-09-24 09:17:00 +00:00
#include "brick.h"
#include <linux/utsname.h>
struct mars_limiter {
/* hierarchy tree */
struct mars_limiter *lim_father;
/* tunables */
int lim_max_rate;
2013-11-20 13:10:54 +00:00
int lim_max_delay;
int lim_min_window;
int lim_max_window;
/* readable */
int lim_rate;
int lim_cumul;
2013-11-20 14:46:16 +00:00
int lim_count;
long long lim_stamp;
/* internal */
long long lim_accu;
};
2012-09-24 09:17:00 +00:00
extern int mars_limit(struct mars_limiter *lim, int amount);
2013-11-20 13:10:54 +00:00
extern void mars_limit_sleep(struct mars_limiter *lim, int amount);
#endif