diff options
Diffstat (limited to 'src/cmd/vac/vtread.c')
-rw-r--r-- | src/cmd/vac/vtread.c | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/src/cmd/vac/vtread.c b/src/cmd/vac/vtread.c deleted file mode 100644 index 8550279f..00000000 --- a/src/cmd/vac/vtread.c +++ /dev/null @@ -1,126 +0,0 @@ -#include "stdinc.h" -#include <bio.h> - -typedef struct Source Source; - -struct Source -{ - ulong gen; - int psize; - int dsize; - int dir; - int active; - int depth; - uvlong size; - uchar score[VtScoreSize]; - int reserved; -}; - -int bsize; -Biobuf *bout; -VtRootLump root; -int ver; -int cmp; -int all; -int find; -uchar fscore[VtScoreSize]; -int dirSize; -void (*parse)(Source*, uchar*); -VtSession *z; - -int vtGetUint16(uchar *p); -ulong vtGetUint32(uchar *p); -uvlong vtGetUint48(uchar *p); -void usage(void); -int parseScore(uchar *score, char *buf, int n); -void readRoot(VtRootLump*, uchar *score, char *file); -void parse1(Source*, uchar*); -void parse2(Source*, uchar*); -int dumpDir(Source*, int indent); - -void -main(int argc, char *argv[]) -{ - char *host = nil; - uchar score[VtScoreSize]; - uchar buf[VtMaxLumpSize]; - int type; - int n; - - type = VtDataType; - - ARGBEGIN{ - case 't': - type = atoi(ARGF()); - break; - }ARGEND - - vtAttach(); - - bout = vtMemAllocZ(sizeof(Biobuf)); - Binit(bout, 1, OWRITE); - - if(argc != 1) - usage(); - - vtAttach(); - - fmtinstall('V', vtScoreFmt); - fmtinstall('R', vtErrFmt); - - z = vtDial(host); - if(z == nil) - vtFatal("could not connect to server: %s", vtGetError()); - - if(!vtConnect(z, 0)) - sysfatal("vtConnect: %r"); - - if(!parseScore(score, argv[0], strlen(argv[0]))) - vtFatal("could not parse score: %s", vtGetError()); - - n = vtRead(z, score, type, buf, VtMaxLumpSize); - if(n < 0) - vtFatal("could not read block: %s", vtGetError()); - Bwrite(bout, buf, n); - - Bterm(bout); - - vtClose(z); - vtDetach(); - exits(0); -} - -void -usage(void) -{ - fprint(2, "%s: -t type score\n", argv0); - exits("usage"); -} - -int -parseScore(uchar *score, char *buf, int n) -{ - int i, c; - - memset(score, 0, VtScoreSize); - - if(n < VtScoreSize*2) - return 0; - for(i=0; i<VtScoreSize*2; i++) { - if(buf[i] >= '0' && buf[i] <= '9') - c = buf[i] - '0'; - else if(buf[i] >= 'a' && buf[i] <= 'f') - c = buf[i] - 'a' + 10; - else if(buf[i] >= 'A' && buf[i] <= 'F') - c = buf[i] - 'A' + 10; - else { - return 0; - } - - if((i & 1) == 0) - c <<= 4; - - score[i>>1] |= c; - } - return 1; -} |