Handle new version of /dev/swap.
[rsc] --rw-rw-r-- M 564876 glenda sys 28128 Sep 29 02:10 sys/src/cmd/stats.c
/n/sourcesdump/2005/0929/plan9/sys/src/cmd/stats.c:27,37 -
/n/sourcesdump/2005/0930/plan9/sys/src/cmd/stats.c:27,38
enum
{
- /* /dev/swap */
+ /* old /dev/swap */
Mem = 0,
Maxmem,
Swap,
Maxswap,
+
/* /dev/sysstats */
Procno = 0,
Context,
/n/sourcesdump/2005/0929/plan9/sys/src/cmd/stats.c:284,290 -
/n/sourcesdump/2005/0930/plan9/sys/src/cmd/stats.c:285,291
if(*fd < 0)
return 0;
seek(*fd, 0, 0);
- n = read(*fd, m->buf, sizeof m->buf);
+ n = read(*fd, m->buf, sizeof m->buf-1);
if(n <= 0){
close(*fd);
*fd = -1;
/n/sourcesdump/2005/0929/plan9/sys/src/cmd/stats.c:292,297 -
/n/sourcesdump/2005/0930/plan9/sys/src/cmd/stats.c:293,299
}
m->bufp = m->buf;
m->ebufp = m->buf+n;
+ m->buf[n] = 0;
return 1;
}
/n/sourcesdump/2005/0929/plan9/sys/src/cmd/stats.c:577,582 -
/n/sourcesdump/2005/0930/plan9/sys/src/cmd/stats.c:579,600
}
int
+ readswap(Machine *m, ulong *a)
+ {
+ if(strstr(m->buf, "memory\n")){
+ /* new /dev/swap - skip first 3 numbers */
+ if(!readnums(m, 7, a, 1))
+ return 0;
+ a[0] = a[3];
+ a[1] = a[4];
+ a[2] = a[5];
+ a[3] = a[6];
+ return 1;
+ }
+ return readnums(m, nelem(m->devswap), a, 0);
+ }
+
+ int
initmach(Machine *m, char *name)
{
int n, fd;
/n/sourcesdump/2005/0929/plan9/sys/src/cmd/stats.c:612,618 -
/n/sourcesdump/2005/0930/plan9/sys/src/cmd/stats.c:630,636
snprint(buf, sizeof buf, "%s/dev/swap", mpt);
m->swapfd = open(buf, OREAD);
- if(loadbuf(m, &m->swapfd) && readnums(m, nelem(m->devswap), a, 0))
+ if(loadbuf(m, &m->swapfd) && readswap(m, a))
memmove(m->devswap, a, sizeof m->devswap);
else
m->devswap[Maxmem] = m->devswap[Maxswap] = 100;
/n/sourcesdump/2005/0929/plan9/sys/src/cmd/stats.c:722,728 -
/n/sourcesdump/2005/0930/plan9/sys/src/cmd/stats.c:740,746
notify(alarmed);
alarm(5000);
}
- if(needswap(init) && loadbuf(m, &m->swapfd) && readnums(m, nelem(m->devswap), a, 0))
+ if(needswap(init) && loadbuf(m, &m->swapfd) && readswap(m, a))
memmove(m->devswap, a, sizeof m->devswap);
if(needstat(init) && loadbuf(m, &m->statsfd)){
memmove(m->prevsysstat, m->devsysstat, sizeof m->devsysstat);
[sys] --rwxrwxr-x M 564876 glenda sys 190269 Sep 29 23:10 386/bin/stats
/sys/src/cmd/stats.c:addgraph
/sys/src/cmd/stats.c:addmachine
/sys/src/cmd/stats.c:alarmed
/sys/src/cmd/stats.c:dropgraph
/sys/src/cmd/stats.c:eresized
/sys/src/cmd/stats.c:initmach
/sys/src/cmd/stats.c:labelstrs
/sys/src/cmd/stats.c:loadbuf
/sys/src/cmd/stats.c:main
/sys/src/cmd/stats.c:mouseproc
/sys/src/cmd/stats.c:readmach
/sys/src/cmd/stats.c:readswap
/sys/src/cmd/stats.c:resize
/sys/src/cmd/stats.c:startproc
/sys/src/cmd/stats.c:usage
-
[rsc] --rw-rw-r-- M 564876 glenda sys 256100 Sep 29 20:03 sys/games/lib/fortunes
/n/sourcesdump/2005/0929/plan9/sys/games/lib/fortunes:4085,4087 -
/n/sourcesdump/2005/0930/plan9/sys/games/lib/fortunes:4085,4088
/// The ForTo class avoids confusing syntax of "for (int i=1;i<=4;i++) {...}". This can be replaced with "foreach (int i in new ForTo(1,4)) {...}".
Linux is for people who hate Windows. BSD is for people who love UNIX.
If plan9 was a village then I'd probably be the village idiot, but it would still be better than living in the city. - Dave Lukes
+ Software has gotten too fat and unreliable, so we started with Linux. - Nicholas Negroponte
|