hjfs: statw command
This commit is contained in:
parent
72061412ce
commit
45f76d6191
|
@ -166,6 +166,36 @@ cmdecho(int, char **argv)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
cmdstatw(int, char **)
|
||||||
|
{
|
||||||
|
uvlong n;
|
||||||
|
uvlong i;
|
||||||
|
int j;
|
||||||
|
Buf *b, *sb;
|
||||||
|
|
||||||
|
wlock(fsmain);
|
||||||
|
sb = getbuf(fsmain->d, SUPERBLK, TSUPERBLOCK, 0);
|
||||||
|
if(sb == nil){
|
||||||
|
wunlock(fsmain);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
n = 0;
|
||||||
|
for(i = sb->sb.fstart; i < sb->sb.fend; i++){
|
||||||
|
b = getbuf(fsmain->d, i, TREF, 0);
|
||||||
|
if(b == nil)
|
||||||
|
continue;
|
||||||
|
for(j = 0; j < REFPERBLK; j++)
|
||||||
|
if(b->refs[j] == 0)
|
||||||
|
n++;
|
||||||
|
putbuf(b);
|
||||||
|
}
|
||||||
|
dprint("hjfs: free %uld, used %uld, total %uld\n", n, sb->sb.size, sb->sb.size - n);
|
||||||
|
putbuf(sb);
|
||||||
|
wunlock(fsmain);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
extern int cmdnewuser(int, char **);
|
extern int cmdnewuser(int, char **);
|
||||||
|
|
||||||
Cmd cmds[] = {
|
Cmd cmds[] = {
|
||||||
|
@ -178,6 +208,7 @@ Cmd cmds[] = {
|
||||||
{"halt", 1, cmdhalt},
|
{"halt", 1, cmdhalt},
|
||||||
{"newuser", 0, cmdnewuser},
|
{"newuser", 0, cmdnewuser},
|
||||||
{"echo", 2, cmdecho},
|
{"echo", 2, cmdecho},
|
||||||
|
{"statw", 1, cmdstatw},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue