30 lines · 653 B · C
RawDownload
#ifndef _LINUX_AVERAGE_H#define _LINUX_AVERAGE_H /* Exponentially weighted moving average (EWMA) */ /* For more documentation see lib/average.c */ struct ewma {	unsigned long internal;	unsigned long factor;	unsigned long weight;}; extern void ewma_init(struct ewma *avg, unsigned long factor,		      unsigned long weight); extern struct ewma *ewma_add(struct ewma *avg, unsigned long val); /** * ewma_read() - Get average value * @avg: Average structure * * Returns the average value held in @avg. */static inline unsigned long ewma_read(const struct ewma *avg){	return avg->internal >> avg->factor;} #endif /* _LINUX_AVERAGE_H */