@@ 711,7 711,7 @@ wd8013receive(Ctlr *cp)
if(rb->owner == Interface){
rb->len = len;
if((p->data+len) >= (hw->ram+hw->size)){
- len = hw->ram+hw->size - p->data;
+ len = (hw->ram+hw->size) - p->data;
memmove(rb->pkt+len,
&((Ring*)hw->ram)[hw->pstart],
(p->data+rb->len) - (hw->ram+hw->size));
@@ 568,6 568,7 @@ mountio(Mnt *m, Mntrpc *r)
unlock(m);
/* Transmit a file system rpc */
+memset(r->rpc, 0x55, 2048);
n = convS2M(&r->request, r->rpc);
if(waserror()) {
if(!m->mux)
@@ 576,6 577,7 @@ mountio(Mnt *m, Mntrpc *r)
nexterror();
}
else {
+
if(m->mux) {
if((*devtab[m->c->type].write)(m->c, r->rpc, n, 0) != n)
error(Emountrpc);
@@ 623,7 625,7 @@ void
mntrpcread(Mnt *m, Mntrpc *r)
{
int n;
-
+int i;
for(;;) {
if(waserror()) {
if(!m->mux)
@@ 647,6 649,13 @@ mntrpcread(Mnt *m, Mntrpc *r)
poperror();
if(n == 0)
continue;
+if(n > 2048)
+for(i = 0; i < 256;) {
+print("%.2ux ", r->rpc[i] & 0xff);
+i++;
+if((i%16) == 0) { print("\n"); prflush(); }
+}
+
if(convM2S(r->rpc, &r->reply, n) != 0)
return;
}