Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
/*
2
 * high-watermark measurements
3
 */
4
#include	"u.h"
5
#include	"../port/lib.h"
6
#include	"mem.h"
7
#include	"dat.h"
8
#include	"fns.h"
9
 
10
void
11
initmark(Watermark *wp, int max, char *name)
12
{
13
	memset(wp, 0, sizeof *wp);
14
	wp->max = max;
15
	wp->name = name;
16
}
17
 
18
void
19
notemark(Watermark *wp, int val)
20
{
21
	/* enforce obvious limits */
22
	if (val < 0)
23
		val = 0;
24
	else if (val > wp->max)
25
		val = wp->max;
26
 
27
	if (val > wp->highwater) {
28
		wp->highwater = val;
29
		if (val == wp->max && wp->curr < val)
30
			wp->hitmax++;
31
	}
32
	wp->curr = val;
33
}
34
 
35
char *
36
seprintmark(char *buf, char *ebuf, Watermark *wp)
37
{
38
	return seprint(buf, ebuf, "%s:\thighwater %d/%d curr %d hitmax %d\n",
39
		wp->name, wp->highwater, wp->max, wp->curr, wp->hitmax);
40
}