Blame


1 0a61c07d 2004-04-19 devnull _ni=0; // network indent level
2 0a61c07d 2004-04-19 devnull
3 0a61c07d 2004-04-19 devnull defn
4 0a61c07d 2004-04-19 devnull _ni() {
5 0a61c07d 2004-04-19 devnull loop 1,_ni do {
6 0a61c07d 2004-04-19 devnull print("\t");
7 0a61c07d 2004-04-19 devnull }
8 0a61c07d 2004-04-19 devnull }
9 0a61c07d 2004-04-19 devnull
10 0a61c07d 2004-04-19 devnull defn
11 0a61c07d 2004-04-19 devnull ipdev(n) {
12 0a61c07d 2004-04-19 devnull _ipfs(*(ipfs+4*n));
13 0a61c07d 2004-04-19 devnull }
14 0a61c07d 2004-04-19 devnull
15 0a61c07d 2004-04-19 devnull // the funny _foo/foo pairs exist so that if we get
16 0a61c07d 2004-04-19 devnull // interrupted in the middle of one of these, _ni will
17 0a61c07d 2004-04-19 devnull // get reset to 0 next time an external call happens.
18 0a61c07d 2004-04-19 devnull
19 0a61c07d 2004-04-19 devnull defn
20 0a61c07d 2004-04-19 devnull _ipfs(fs) {
21 0a61c07d 2004-04-19 devnull complex Fs fs;
22 0a61c07d 2004-04-19 devnull local i;
23 0a61c07d 2004-04-19 devnull
24 0a61c07d 2004-04-19 devnull print("ipfs(", fs\X, ") #I", fs.dev\D, "\n");
25 0a61c07d 2004-04-19 devnull i=0;
26 0a61c07d 2004-04-19 devnull _ni = _ni+1;
27 0a61c07d 2004-04-19 devnull while i < fs.np do {
28 0a61c07d 2004-04-19 devnull _proto(*(fs.p+i*4));
29 0a61c07d 2004-04-19 devnull i = i + 1;
30 0a61c07d 2004-04-19 devnull }
31 0a61c07d 2004-04-19 devnull _ni = _ni-1;
32 0a61c07d 2004-04-19 devnull }
33 0a61c07d 2004-04-19 devnull
34 0a61c07d 2004-04-19 devnull defn
35 0a61c07d 2004-04-19 devnull ipfs(fs) {
36 0a61c07d 2004-04-19 devnull _ni = 0;
37 0a61c07d 2004-04-19 devnull _ipfs(fs);
38 0a61c07d 2004-04-19 devnull }
39 0a61c07d 2004-04-19 devnull
40 0a61c07d 2004-04-19 devnull defn
41 0a61c07d 2004-04-19 devnull _proto(p) {
42 0a61c07d 2004-04-19 devnull local c;
43 0a61c07d 2004-04-19 devnull complex Proto p;
44 0a61c07d 2004-04-19 devnull _ni();
45 0a61c07d 2004-04-19 devnull print("proto(", p\X, ") ", *(p.name\s), "\n");
46 0a61c07d 2004-04-19 devnull _ni = _ni+1;
47 0a61c07d 2004-04-19 devnull local i;
48 0a61c07d 2004-04-19 devnull i = 0;
49 0a61c07d 2004-04-19 devnull while i < p.nc do {
50 0a61c07d 2004-04-19 devnull c = *(p.conv+i*4);
51 0a61c07d 2004-04-19 devnull complex Conv c;
52 0a61c07d 2004-04-19 devnull if c != 0 && c.inuse then
53 0a61c07d 2004-04-19 devnull _conv(*(p.conv+i*4));
54 0a61c07d 2004-04-19 devnull i = i + 1;
55 0a61c07d 2004-04-19 devnull }
56 0a61c07d 2004-04-19 devnull _ni = _ni - 1;
57 0a61c07d 2004-04-19 devnull }
58 0a61c07d 2004-04-19 devnull
59 0a61c07d 2004-04-19 devnull defn
60 0a61c07d 2004-04-19 devnull proto(p) {
61 0a61c07d 2004-04-19 devnull _ni = 0;
62 0a61c07d 2004-04-19 devnull _proto(p);
63 0a61c07d 2004-04-19 devnull }
64 0a61c07d 2004-04-19 devnull
65 0a61c07d 2004-04-19 devnull defn
66 0a61c07d 2004-04-19 devnull _conv(c) {
67 0a61c07d 2004-04-19 devnull complex Conv c;
68 0a61c07d 2004-04-19 devnull _ni();
69 0a61c07d 2004-04-19 devnull local p;
70 0a61c07d 2004-04-19 devnull p = c.p;
71 0a61c07d 2004-04-19 devnull complex Proto p;
72 0a61c07d 2004-04-19 devnull print("conv(", c\X, ") ", *(p.name\s), "/", c.x\D, " ",
73 0a61c07d 2004-04-19 devnull iptostr(*(c.laddr+12)), "!", c.lport\D, " ", iptostr(*(c.raddr+12)),
74 0a61c07d 2004-04-19 devnull "!", c.rport\D, " rq ", qtostr(c.rq), " wq ", qtostr(c.wq),
75 0a61c07d 2004-04-19 devnull " eq ", qtostr(c.eq), "\n");
76 0a61c07d 2004-04-19 devnull }
77 0a61c07d 2004-04-19 devnull
78 0a61c07d 2004-04-19 devnull defn
79 0a61c07d 2004-04-19 devnull conv(c) {
80 0a61c07d 2004-04-19 devnull _ni = 0;
81 0a61c07d 2004-04-19 devnull _conv(c);
82 0a61c07d 2004-04-19 devnull }
83 0a61c07d 2004-04-19 devnull
84 0a61c07d 2004-04-19 devnull defn
85 0a61c07d 2004-04-19 devnull iptostr(a)
86 0a61c07d 2004-04-19 devnull {
87 0a61c07d 2004-04-19 devnull // BUG: little endian
88 0a61c07d 2004-04-19 devnull return itoa(a&0xFF)+"."+itoa((a>>8)&0xFF)+"."+itoa((a>>16)&0xFF)+"."+itoa((a>>24)&0xFF);
89 0a61c07d 2004-04-19 devnull }
90 0a61c07d 2004-04-19 devnull
91 0a61c07d 2004-04-19 devnull defn
92 0a61c07d 2004-04-19 devnull qtostr(q)
93 0a61c07d 2004-04-19 devnull {
94 0a61c07d 2004-04-19 devnull complex Queue q;
95 0a61c07d 2004-04-19 devnull
96 0a61c07d 2004-04-19 devnull return "queue("+itoa(q, "%lux")+") ["+itoa(q.len, "%d")+","+itoa(q.dlen, "%d")+","+itoa(qblocks(q), "%d")+"]";
97 0a61c07d 2004-04-19 devnull }
98 0a61c07d 2004-04-19 devnull
99 0a61c07d 2004-04-19 devnull defn
100 0a61c07d 2004-04-19 devnull qblocks(q)
101 0a61c07d 2004-04-19 devnull {
102 0a61c07d 2004-04-19 devnull complex Queue q;
103 0a61c07d 2004-04-19 devnull local b, n;
104 0a61c07d 2004-04-19 devnull
105 0a61c07d 2004-04-19 devnull b = q.bfirst;
106 0a61c07d 2004-04-19 devnull n = 0;
107 0a61c07d 2004-04-19 devnull while b != 0 do {
108 0a61c07d 2004-04-19 devnull n = n + 1;
109 0a61c07d 2004-04-19 devnull complex Block b;
110 0a61c07d 2004-04-19 devnull b = b.next;
111 0a61c07d 2004-04-19 devnull }
112 0a61c07d 2004-04-19 devnull return n;
113 0a61c07d 2004-04-19 devnull }
114 0a61c07d 2004-04-19 devnull
115 0a61c07d 2004-04-19 devnull defn
116 0a61c07d 2004-04-19 devnull _queue(q)
117 0a61c07d 2004-04-19 devnull {
118 0a61c07d 2004-04-19 devnull complex Queue q;
119 0a61c07d 2004-04-19 devnull local b;
120 0a61c07d 2004-04-19 devnull
121 0a61c07d 2004-04-19 devnull print("queue(", q\X, ") len ", q.len\D, " dlen ", q.dlen\D, " limit ", q.limit\D, " nblocks ", qblocks(q)\D);
122 0a61c07d 2004-04-19 devnull if q.state & Qstarve then
123 0a61c07d 2004-04-19 devnull print(" starve");
124 0a61c07d 2004-04-19 devnull if q.state & Qmsg then
125 0a61c07d 2004-04-19 devnull print(" msg");
126 0a61c07d 2004-04-19 devnull if q.state & Qclosed then
127 0a61c07d 2004-04-19 devnull print(" closed");
128 0a61c07d 2004-04-19 devnull if q.state & Qflow then
129 0a61c07d 2004-04-19 devnull print(" flow");
130 0a61c07d 2004-04-19 devnull if q.state & Qcoalesce then
131 0a61c07d 2004-04-19 devnull print(" coalesce");
132 0a61c07d 2004-04-19 devnull print("\n");
133 0a61c07d 2004-04-19 devnull
134 0a61c07d 2004-04-19 devnull b = q.bfirst;
135 0a61c07d 2004-04-19 devnull _ni = _ni+1;
136 0a61c07d 2004-04-19 devnull while b != 0 do {
137 0a61c07d 2004-04-19 devnull _block(b);
138 0a61c07d 2004-04-19 devnull complex Block b;
139 0a61c07d 2004-04-19 devnull b = b.next;
140 0a61c07d 2004-04-19 devnull }
141 0a61c07d 2004-04-19 devnull _ni = _ni - 1;
142 0a61c07d 2004-04-19 devnull }
143 0a61c07d 2004-04-19 devnull
144 0a61c07d 2004-04-19 devnull defn
145 0a61c07d 2004-04-19 devnull queue(q)
146 0a61c07d 2004-04-19 devnull {
147 0a61c07d 2004-04-19 devnull _ni = 0;
148 0a61c07d 2004-04-19 devnull _queue(q);
149 0a61c07d 2004-04-19 devnull }
150 0a61c07d 2004-04-19 devnull
151 0a61c07d 2004-04-19 devnull defn
152 0a61c07d 2004-04-19 devnull _block(b)
153 0a61c07d 2004-04-19 devnull {
154 0a61c07d 2004-04-19 devnull complex Block b;
155 0a61c07d 2004-04-19 devnull
156 0a61c07d 2004-04-19 devnull _ni();
157 0a61c07d 2004-04-19 devnull print("block(", b\X, ") base ", b.base\X, " rp ", b.rp\X, "/", b.rp-b.base\D, " wp ", b.wp\X, "/", b.wp-b.base\D, " lim ", b.lim\X, "/", b.lim-b.base\D, "\n");
158 0a61c07d 2004-04-19 devnull }
159 0a61c07d 2004-04-19 devnull
160 0a61c07d 2004-04-19 devnull defn
161 0a61c07d 2004-04-19 devnull block(b)
162 0a61c07d 2004-04-19 devnull {
163 0a61c07d 2004-04-19 devnull _ni = 0;
164 0a61c07d 2004-04-19 devnull block(b);
165 0a61c07d 2004-04-19 devnull }
166 0a61c07d 2004-04-19 devnull
167 0a61c07d 2004-04-19 devnull print(acidfile);
168 0a61c07d 2004-04-19 devnull needacid("tcp");
169 0a61c07d 2004-04-19 devnull needacid("qio");