jehanne/sys/src/kern/port/iofilter.h

34 lines
613 B
C

enum {
Niosamples = 32,
Lsum = 0,
Lmax,
Lavg,
Lsz,
};
typedef struct Iofilter Iofilter;
struct Iofilter {
Lock;
uint32_t nsamples; /* total samples taken */
struct {
uint32_t b;
uint32_t lat[Lsz]; /* latency min, max, avg for bytes in b */
} samples[Niosamples];
uint32_t bytes;
uint32_t lmin;
uint32_t lmax;
int64_t lsum;
uint32_t nlat;
};
#pragma varargck type "Z" Iofilter*
void incfilter(Iofilter *, uint32_t, uint32_t);
void delfilter(Iofilter *);
int addfilter(Iofilter *);
void zfilter(Iofilter *);
int filtersum(Iofilter*, uint64_t*, int64_t*, int);
int filterfmt(Fmt *);