URI:
       tfcallfmt.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
       ---
       tfcallfmt.c (1912B)
       ---
            1 #include <u.h>
            2 #include <libc.h>
            3 #include <venti.h>
            4 
            5 int
            6 vtfcallfmt(Fmt *f)
            7 {
            8         VtFcall *t;
            9 
           10         t = va_arg(f->args, VtFcall*);
           11         if(t == nil){
           12                 fmtprint(f, "<nil fcall>");
           13                 return 0;
           14         }
           15         switch(t->msgtype){
           16         default:
           17                 return fmtprint(f, "%c%d tag %ud", "TR"[t->msgtype&1], t->msgtype>>1, t->tag);
           18         case VtRerror:
           19                 return fmtprint(f, "Rerror tag %ud error %s", t->tag, t->error);
           20         case VtTping:
           21                 return fmtprint(f, "Tping tag %ud", t->tag);
           22         case VtRping:
           23                 return fmtprint(f, "Rping tag %ud", t->tag);
           24         case VtThello:
           25                 return fmtprint(f, "Thello tag %ud vers %s uid %s strength %d crypto %d:%.*H codec %d:%.*H", t->tag,
           26                         t->version, t->uid, t->strength, t->ncrypto, t->ncrypto, t->crypto,
           27                         t->ncodec, t->ncodec, t->codec);
           28         case VtRhello:
           29                 return fmtprint(f, "Rhello tag %ud sid %s rcrypto %d rcodec %d", t->tag, t->sid, t->rcrypto, t->rcodec);
           30         case VtTgoodbye:
           31                 return fmtprint(f, "Tgoodbye tag %ud", t->tag);
           32         case VtRgoodbye:
           33                 return fmtprint(f, "Rgoodbye tag %ud", t->tag);
           34         case VtTauth0:
           35                 return fmtprint(f, "Tauth0 tag %ud auth %.*H", t->tag, t->nauth, t->auth);
           36         case VtRauth0:
           37                 return fmtprint(f, "Rauth0 tag %ud auth %.*H", t->tag, t->nauth, t->auth);
           38         case VtTauth1:
           39                 return fmtprint(f, "Tauth1 tag %ud auth %.*H", t->tag, t->nauth, t->auth);
           40         case VtRauth1:
           41                 return fmtprint(f, "Rauth1 tag %ud auth %.*H", t->tag, t->nauth, t->auth);
           42         case VtTread:
           43                 return fmtprint(f, "Tread tag %ud score %V blocktype %d count %d", t->tag, t->score, t->blocktype, t->count);
           44         case VtRread:
           45                 return fmtprint(f, "Rread tag %ud count %d", t->tag, packetsize(t->data));
           46         case VtTwrite:
           47                 return fmtprint(f, "Twrite tag %ud blocktype %d count %d", t->tag, t->blocktype, packetsize(t->data));
           48         case VtRwrite:
           49                 return fmtprint(f, "Rwrite tag %ud score %V", t->tag, t->score);
           50         case VtTsync:
           51                 return fmtprint(f, "Tsync tag %ud", t->tag);
           52         case VtRsync:
           53                 return fmtprint(f, "Rsync tag %ud", t->tag);
           54         }
           55 }