URI:
       tblock.c - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
       tblock.c (733B)
       ---
            1 #include <u.h>
            2 #include <libc.h>
            3 #include <bio.h>
            4 #include <diskfs.h>
            5 
            6 void
            7 blockdump(Block *bb, char *desc)
            8 {
            9         uchar *p, *ep;
           10         int i;
           11         Biobuf b;
           12 
           13         Binit(&b, 2, OWRITE);
           14 
           15         Bprint(&b, "%s\n", desc);
           16 
           17         p = bb->data;
           18         ep = bb->data + bb->len;
           19 
           20         while(p < ep){
           21                 for(i=0; i<16; i++){
           22                         if(p+i < ep)
           23                                 Bprint(&b, "%.2ux ", p[i]);
           24                         else
           25                                 Bprint(&b, "   ");
           26                         if(i==7)
           27                                 Bprint(&b, "- ");
           28                 }
           29                 Bprint(&b, " ");
           30                 for(i=0; i<16; i++){
           31                         if(p+i < ep)
           32                                 Bprint(&b, "%c", p[i] >= 0x20 && p[i] <= 0x7F ? p[i] : '.');
           33                         else
           34                                 Bprint(&b, " ");
           35                 }
           36                 p += 16;
           37                 Bprint(&b, "\n");
           38         }
           39         Bterm(&b);
           40 }
           41 
           42 void
           43 blockput(Block *b)
           44 {
           45         if(b == nil)
           46                 return;
           47         if(!b->_close){
           48                 fprint(2, "no blockPut\n");
           49                 abort();
           50         }
           51         (*b->_close)(b);
           52 }