|
|
1.1 root 1: #include "u.h"
2: #include <sys/types.h>
3: #include <sys/stat.h>
4: #include "libc.h"
5: #include "9p.h"
6: #include "stdio.h"
7:
8:
9: void error(char*);
10:
11: struct{
12: int type;
13: char *name;
14: }mname[] = {
15: Tnop, "Tnop",
16: Rnop, "Rnop",
17: Tsession, "Tsession",
18: Rsession, "Rsession",
19: Terror, "Terror",
20: Rerror, "Rerror",
21: Tflush, "Tflush",
22: Rflush, "Rflush",
23: Tattach, "Tattach",
24: Rattach, "Rattach",
25: Tclone, "Tclone",
26: Rclone, "Rclone",
27: Twalk, "Twalk",
28: Rwalk, "Rwalk",
29: Topen, "Topen",
30: Ropen, "Ropen",
31: Tcreate, "Tcreate",
32: Rcreate, "Rcreate",
33: Tread, "Tread",
34: Rread, "Rread",
35: Twrite, "Twrite",
36: Rwrite, "Rwrite",
37: Tclunk, "Tclunk",
38: Rclunk, "Rclunk",
39: Tremove, "Tremove",
40: Rremove, "Rremove",
41: Tstat, "Tstat",
42: Rstat, "Rstat",
43: Twstat, "Twstat",
44: Rwstat, "Rwstat",
45: Tclwalk, "Tclwalk",
46: Rclwalk, "Rclwalk",
47: 0, 0
48: };
49:
50: char*
51: mfmt(Fcall *f)
52: {
53: int i;
54: char *n;
55: static char buf[512];
56:
57: for(i=0; mname[i].name; i++)
58: if(f->type == mname[i].type){
59: strcpy(buf, mname[i].name);
60: n = buf+strlen(buf);
61: switch(f->type){
62: case Tnop:
63: case Rnop:
64: case Tsession:
65: case Rsession:
66: case Terror:
67: case Rflush:
68: break;
69: case Rerror:
70: sprintf(n, " tag %d ename %s", f->tag, f->ename);
71: break;
72: case Tflush:
73: sprintf(n, " tag %d oldtag %d", f->tag, f->oldtag);
74: break;
75: case Tattach:
76: sprintf(n, " tag %d fid %d uname %s aname %s auth %s",
77: f->tag, f->fid, f->uname, f->aname, f->auth);
78: break;
79: case Rattach:
80: case Rwalk:
81: case Rclwalk:
82: case Ropen:
83: case Rcreate:
84: sprintf(n, " tag %d fid %d qid 0x%x.0x%x",
85: f->tag, f->fid, f->qid.path, f->qid.vers);
86: break;
87: case Tclone:
88: sprintf(n, " tag %d fid %d newfid %d",
89: f->tag, f->fid, f->newfid);
90: break;
91: case Twalk:
92: sprintf(n, " tag %d fid %d name %s", f->tag, f->fid, f->name);
93: break;
94: case Topen:
95: sprintf(n, " tag %d fid %d mode 0x%x",
96: f->tag, f->fid, f->mode);
97: break;
98: case Tcreate:
99: sprintf(n, " tag %d fid %d name %s perm 0x%x mode 0x%x",
100: f->tag, f->fid, f->name, f->perm, f->mode);
101: break;
102: case Tread:
103: sprintf(n, " tag %d fid %d offset %ld count %ld",
104: f->tag, f->fid, f->offset, f->count);
105: break;
106: case Rread:
107: sprintf(n, " tag %d fid %d count %ld +data...",
108: f->tag, f->fid, f->count);
109: break;
110: case Twrite:
111: sprintf(n, " tag %d fid %d offset %ld count %ld +data...",
112: f->tag, f->fid, f->offset, f->count);
113: break;
114: case Rwrite:
115: sprintf(n, " tag %d fid %d count %ld",
116: f->tag, f->fid, f->count);
117: break;
118: case Tclunk:
119: case Rclunk:
120: case Rremove:
121: case Rwstat:
122: case Rclone:
123: case Tremove:
124: case Tstat:
125: sprintf(n, " tag %d fid %d", f->tag, f->fid);
126: break;
127: case Rstat:
128: case Twstat:
129: sprintf(n, " tag %d fid %d + dir", f->tag, f->fid);
130: break;
131: case Tclwalk:
132: sprintf(n, " tag %d fid %d newfid %d name %s",
133: f->tag, f->fid, f->newfid, f->name);
134: break;
135: default:
136: error("mfmt");
137: }
138: return buf;
139: }
140: sprintf(buf, "mtype 0x%x", f->type);
141: return buf;
142: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.