ref: a61cf2a051bd031a67f525341ffddc9904cfec19
parent: 55685c6d1d2b0bd511d20324a10f4f460bad46e1
parent: 8f889e60923baa6314ba090031e164c3f1c98caf
author: cinap_lenrek <cinap_lenrek@gmx.de>
date: Wed Oct 3 14:19:17 EDT 2012
merge
--- a/sys/src/cmd/hjfs/cons.c
+++ b/sys/src/cmd/hjfs/cons.c
@@ -64,6 +64,14 @@
}
int
+cmdsync(int, char **)
+{+ sync(1);
+ dprint("hjfs: sync\n");+ return 0;
+}
+
+int
cmdhalt(int, char **)
{shutdown();
@@ -232,6 +240,43 @@
}
int
+cmddebugchdeind(int, char **argv)
+{+ Chan *ch;
+ uchar *c;
+ Buf *b;
+ int loc, new;
+
+ loc = strtol(argv[2], nil, 0);
+ new = strtol(argv[3], nil, 0);
+ if(loc >= DENTRYSIZ)
+ return -9001;
+ ch = chanattach(fsmain, 0);
+ if(ch == nil)
+ return -1;
+ ch->uid = -1;
+ if(walkpath(ch, argv[1], nil) < 0)
+ goto error;
+ rlock(fsmain);
+ b = getbuf(fsmain->d, ch->loc->blk, TDENTRY, 0);
+ if(b == nil){+ runlock(fsmain);
+ goto error;
+ }
+ c = (uchar *) &b->de[ch->loc->deind];
+ dprint("hjfs: loc %d, old value %#.2x, new value %#.2x\n", loc, c[loc], new);+ c[loc] = new;
+ b->op |= BDELWRI;
+ putbuf(b);
+ runlock(fsmain);
+ chanclunk(ch);
+ return 0;
+error:
+ chanclunk(ch);
+ return -1;
+}
+
+int
cmddebuggetblk(int argc, char **argv)
{Chan *ch;
@@ -285,6 +330,7 @@
{"create", 0, cmdcreate}, {"disallow", 1, cmddisallow}, {"dump", 1, cmddump},+ {"sync", 1, cmdsync}, {"halt", 1, cmdhalt}, {"newuser", 0, cmdnewuser}, {"echo", 2, cmdecho},@@ -291,6 +337,7 @@
{"df", 1, cmddf}, {"debug-deind", 2, cmddebugdeind}, {"debug-getblk", 0, cmddebuggetblk},+ {"debug-chdeind", 4, cmddebugchdeind},};
--
⑨