52 lines
722 B
C
52 lines
722 B
C
#include <u.h>
|
|
#include <libc.h>
|
|
#include <bio.h>
|
|
#include <diskfs.h>
|
|
|
|
void
|
|
blockdump(Block *bb, char *desc)
|
|
{
|
|
uchar *p, *ep;
|
|
int i;
|
|
Biobuf b;
|
|
|
|
Binit(&b, 2, OWRITE);
|
|
|
|
Bprint(&b, "%s\n", desc);
|
|
|
|
p = bb->data;
|
|
ep = bb->data + bb->len;
|
|
|
|
while(p < ep){
|
|
for(i=0; i<16; i++){
|
|
if(p+i < ep)
|
|
Bprint(&b, "%.2ux ", p[i]);
|
|
else
|
|
Bprint(&b, " ");
|
|
if(i==7)
|
|
Bprint(&b, "- ");
|
|
}
|
|
Bprint(&b, " ");
|
|
for(i=0; i<16; i++){
|
|
if(p+i < ep)
|
|
Bprint(&b, "%c", p[i] >= 0x20 && p[i] <= 0x7F ? p[i] : '.');
|
|
else
|
|
Bprint(&b, " ");
|
|
}
|
|
p += 16;
|
|
Bprint(&b, "\n");
|
|
}
|
|
}
|
|
|
|
void
|
|
blockput(Block *b)
|
|
{
|
|
if(b == nil)
|
|
return;
|
|
if(!b->_close){
|
|
fprint(2, "no blockPut\n");
|
|
abort();
|
|
}
|
|
(*b->_close)(b);
|
|
}
|