diff options
author | rsc <devnull@localhost> | 2005-07-13 03:48:35 +0000 |
---|---|---|
committer | rsc <devnull@localhost> | 2005-07-13 03:48:35 +0000 |
commit | 0c98da8bf8ea51d0288222f6c6ba3c125cf20f46 (patch) | |
tree | d249da5fdda43c001a6a99f7354084a5cbfbacef /src/libdiskfs/block.c | |
parent | be7cbb4ef2cb02aa9ac48c02dc1ee585a8e49043 (diff) | |
download | plan9port-0c98da8bf8ea51d0288222f6c6ba3c125cf20f46.tar.gz plan9port-0c98da8bf8ea51d0288222f6c6ba3c125cf20f46.tar.bz2 plan9port-0c98da8bf8ea51d0288222f6c6ba3c125cf20f46.zip |
File system access library.
Diffstat (limited to 'src/libdiskfs/block.c')
-rw-r--r-- | src/libdiskfs/block.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/libdiskfs/block.c b/src/libdiskfs/block.c new file mode 100644 index 00000000..1c73ed34 --- /dev/null +++ b/src/libdiskfs/block.c @@ -0,0 +1,51 @@ +#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); +} |