wmii

git clone git://oldgit.suckless.org/wmii/
Log | Files | Refs | README | LICENSE

print.c (2998B)


      1 #include "dat.h"
      2 #include <fmt.h>
      3 #include "fns.h"
      4 
      5 static char* fcnames[] = {
      6 	"TVersion",
      7 	"RVersion",
      8 	"TAuth",
      9 	"RAuth",
     10 	"TAttach",
     11 	"RAttach",
     12 	"TError",
     13 	"RError",
     14 	"TFlush",
     15 	"RFlush",
     16 	"TWalk",
     17 	"RWalk",
     18 	"TOpen",
     19 	"ROpen",
     20 	"TCreate",
     21 	"RCreate",
     22 	"TRead",
     23 	"RRead",
     24 	"TWrite",
     25 	"RWrite",
     26 	"TClunk",
     27 	"RClunk",
     28 	"TRemove",
     29 	"RRemove",
     30 	"TStat",
     31 	"RStat",
     32 	"TWStat",
     33 	"RWStat",
     34 };
     35 
     36 static int
     37 qid(Fmt *f, IxpQid *q) {
     38 	return fmtprint(f, "(%uhd,%uld,%ullx)", q->type, q->version, q->path);
     39 }
     40 
     41 int
     42 Ffmt(Fmt *f) {
     43 	IxpFcall *fcall;
     44 
     45 	fcall = va_arg(f->args, IxpFcall*);
     46 	fmtprint(f, "% 2d %s\t", fcall->hdr.tag, fcnames[fcall->hdr.type - TVersion]);
     47 	switch(fcall->hdr.type) {
     48 	case TVersion:
     49 	case RVersion:
     50 		fmtprint(f, " msize: %uld version: \"%s\"", (ulong)fcall->version.msize, fcall->version.version);
     51 		break;
     52 	case TAuth:
     53 		fmtprint(f, " afid: %uld uname: \"%s\" aname: \"%s\"", (ulong)fcall->tauth.afid, fcall->tauth.uname, fcall->tauth.aname);
     54 		break;
     55 	case RAuth:
     56 		fmtprint(f, " aqid: ");
     57 		qid(f, &fcall->rauth.aqid);
     58 		break;
     59 	case RAttach:
     60 		fmtprint(f, " qid: ");
     61 		qid(f, &fcall->rattach.qid);
     62 		break;
     63 	case TAttach:
     64 		fmtprint(f, " fid: %uld afid: %uld uname: \"%s\" aname: \"%s\"", (ulong)fcall->hdr.fid, (ulong)fcall->tattach.afid, fcall->tattach.uname, fcall->tattach.aname);
     65 		break;
     66 	case RError:
     67 		fmtprint(f, " \"%s\"", fcall->error.ename);
     68 		break;
     69 	case TFlush:
     70 		fmtprint(f, " oldtag: %uld", (ulong)fcall->tflush.oldtag);
     71 		break;
     72 	case TWalk:
     73 		fmtprint(f, " newfid: %uld wname: {", (ulong)fcall->twalk.newfid);
     74 		for(int i=0; i<fcall->twalk.nwname; i++) {
     75 			if(i > 0) fmtprint(f, ", ");
     76 			fmtprint(f, "\"%s\"", fcall->twalk.wname[i]);
     77 		}
     78 		fmtprint(f, "}");
     79 		break;
     80 	case RWalk:
     81 		fmtprint(f, " wqid: {");
     82 		for(int i=0; i<fcall->rwalk.nwqid; i++) {
     83 			if(i > 0) fmtprint(f, ", ");
     84 			qid(f, &fcall->rwalk.wqid[i]);
     85 		}
     86 		fmtprint(f, "}");
     87 		break;
     88 	case TOpen:
     89 		fmtprint(f, " fid: %uld mode: %ulo", (ulong)fcall->hdr.fid, (ulong)fcall->topen.mode);
     90 		break;
     91 	case ROpen:
     92 	case RCreate:
     93 		fmtprint(f, " qid: ");
     94 		qid(f, &fcall->ropen.qid);
     95 		fmtprint(f, " %uld", (ulong)fcall->ropen.iounit);
     96 		break;
     97 	case TCreate:
     98 		fmtprint(f, " fid: %uld name:  \"%s\" perm: %ulo mode: %ulo", (ulong)fcall->hdr.fid, fcall->tcreate.name, (ulong)fcall->tcreate.perm, (ulong)fcall->tcreate.mode);
     99 		break;
    100 	case TRead:
    101 		fmtprint(f, " fid: %uld offset: %ulld count: %uld", (ulong)fcall->hdr.fid, fcall->tread.offset, (ulong)fcall->tread.count);
    102 		break;
    103 	case RRead:
    104 		fmtprint(f, " data: {data: %uld}", fcall->rread.count);
    105 		break;
    106 	case TWrite:
    107 		fmtprint(f, " fid: %uld offset: %ulld data: {data: %uld}", (ulong)fcall->hdr.fid, fcall->twrite.offset, fcall->twrite.count);
    108 		break;
    109 	case RWrite:
    110 		fmtprint(f, " count: %uld", (ulong)fcall->rwrite.count);
    111 		break;
    112 	case TClunk:
    113 	case TRemove:
    114 	case TStat:
    115 		fmtprint(f, " fid: %uld", (ulong)fcall->hdr.fid);
    116 		break;
    117 	case RStat:
    118 		fmtprint(f, " stat: {data: %uld}", fcall->rstat.nstat);
    119 		break;
    120 	}
    121 
    122 	return 0;
    123 }
    124