52 lines · 734 B · C
RawDownload
#include <u.h>#include <libc.h>#include <bio.h>#include <diskfs.h> voidblockdump(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");	}	Bterm(&b);} voidblockput(Block *b){	if(b == nil)		return;	if(!b->_close){		fprint(2, "no blockPut\n");		abort();		}	(*b->_close)(b);}