14 rpc = va_arg(f->args, SunRpc*);
19 static SunProg **fmtProg;
21 static RWLock fmtLock;
24 sunFmtInstall(SunProg *p)
29 for(i=0; i<nfmtProg; i++){
36 fmtProg = erealloc(fmtProg, sizeof(fmtProg[0])*(nfmtProg+16));
37 fmtProg[nfmtProg++] = p;
45 void (*fmt)(Fmt*, SunCall*);
49 c = va_arg(f->args, SunCall*);
51 for(i=0; i<nfmtProg; i++){
53 if(p->prog == c->rpc.prog && p->vers == c->rpc.vers){
55 if(c->type < 0 || c->type >= p->nproc || (fmt=p->proc[c->type].fmt) == nil)
56 return fmtprint(f, "unknown proc %c%d", "TR"[c->type&1], c->type>>1);
62 fmtprint(f, "<sunrpc %d %d %c%d>", c->rpc.prog, c->rpc.vers, "TR"[c->type&1], c->type>>1);