Subversion Repositories planix.SVN

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
sizeof_1_ = 8;
2
aggr _1_
3
{
4
	'D' 0 quot;
5
	'D' 4 rem;
6
};
7
 
8
defn
9
_1_(addr) {
10
	complex _1_ addr;
11
	print("	quot	", addr.quot, "\n");
12
	print("	rem	", addr.rem, "\n");
13
};
14
 
15
sizeof_2_ = 8;
16
aggr _2_
17
{
18
	'D' 0 quot;
19
	'D' 4 rem;
20
};
21
 
22
defn
23
_2_(addr) {
24
	complex _2_ addr;
25
	print("	quot	", addr.quot, "\n");
26
	print("	rem	", addr.rem, "\n");
27
};
28
 
29
sizeofsigaction = 12;
30
aggr sigaction
31
{
32
	'X' 0 sa_handler;
33
	'D' 4 sa_mask;
34
	'D' 8 sa_flags;
35
};
36
 
37
defn
38
sigaction(addr) {
39
	complex sigaction addr;
40
	print("	sa_handler	", addr.sa_handler\X, "\n");
41
	print("	sa_mask	", addr.sa_mask, "\n");
42
	print("	sa_flags	", addr.sa_flags, "\n");
43
};
44
 
45
sizeof_3_ = 32;
46
aggr _3_
47
{
48
	'D' 0 fd;
49
	'C' 4 flags;
50
	'C' 5 state;
51
	'X' 8 buf;
52
	'X' 12 rp;
53
	'X' 16 wp;
54
	'X' 20 lp;
55
	'U' 24 bufl;
56
	'a' 28 unbuf;
57
};
58
 
59
defn
60
_3_(addr) {
61
	complex _3_ addr;
62
	print("	fd	", addr.fd, "\n");
63
	print("	flags	", addr.flags, "\n");
64
	print("	state	", addr.state, "\n");
65
	print("	buf	", addr.buf\X, "\n");
66
	print("	rp	", addr.rp\X, "\n");
67
	print("	wp	", addr.wp\X, "\n");
68
	print("	lp	", addr.lp\X, "\n");
69
	print("	bufl	", addr.bufl, "\n");
70
	print("	unbuf	", addr.unbuf, "\n");
71
};
72
 
73
sizeof_4_ = 4;
74
aggr _4_
75
{
76
	'D' 0 val;
77
};
78
 
79
defn
80
_4_(addr) {
81
	complex _4_ addr;
82
	print("	val	", addr.val, "\n");
83
};
84
 
85
sizeoftimeval = 8;
86
aggr timeval
87
{
88
	'D' 0 tv_sec;
89
	'D' 4 tv_usec;
90
};
91
 
92
defn
93
timeval(addr) {
94
	complex timeval addr;
95
	print("	tv_sec	", addr.tv_sec, "\n");
96
	print("	tv_usec	", addr.tv_usec, "\n");
97
};
98
 
99
sizeoftimezone = 8;
100
aggr timezone
101
{
102
	'D' 0 tz_minuteswest;
103
	'D' 4 tz_dsttime;
104
};
105
 
106
defn
107
timezone(addr) {
108
	complex timezone addr;
109
	print("	tz_minuteswest	", addr.tz_minuteswest, "\n");
110
	print("	tz_dsttime	", addr.tz_dsttime, "\n");
111
};
112
 
113
sizeoffd_set = 12;
114
aggr fd_set
115
{
116
	'a' 0 fds_bits;
117
};
118
 
119
defn
120
fd_set(addr) {
121
	complex fd_set addr;
122
	mem(addr, "3X");
123
};
124
 
125
sizeofstat = 28;
126
aggr stat
127
{
128
	'u' 0 st_dev;
129
	'u' 2 st_ino;
130
	'u' 4 st_mode;
131
	'd' 6 st_nlink;
132
	'd' 8 st_uid;
133
	'd' 10 st_gid;
134
	'D' 12 st_size;
135
	'D' 16 st_atime;
136
	'D' 20 st_mtime;
137
	'D' 24 st_ctime;
138
};
139
 
140
defn
141
stat(addr) {
142
	complex stat addr;
143
	print("	st_dev	", addr.st_dev, "\n");
144
	print("	st_ino	", addr.st_ino, "\n");
145
	print("	st_mode	", addr.st_mode, "\n");
146
	print("	st_nlink	", addr.st_nlink, "\n");
147
	print("	st_uid	", addr.st_uid, "\n");
148
	print("	st_gid	", addr.st_gid, "\n");
149
	print("	st_size	", addr.st_size, "\n");
150
	print("	st_atime	", addr.st_atime, "\n");
151
	print("	st_mtime	", addr.st_mtime, "\n");
152
	print("	st_ctime	", addr.st_ctime, "\n");
153
};
154
 
155
sizeofflock = 16;
156
aggr flock
157
{
158
	'd' 0 l_type;
159
	'd' 2 l_whence;
160
	'D' 4 l_start;
161
	'D' 8 l_len;
162
	'D' 12 l_pid;
163
};
164
 
165
defn
166
flock(addr) {
167
	complex flock addr;
168
	print("	l_type	", addr.l_type, "\n");
169
	print("	l_whence	", addr.l_whence, "\n");
170
	print("	l_start	", addr.l_start, "\n");
171
	print("	l_len	", addr.l_len, "\n");
172
	print("	l_pid	", addr.l_pid, "\n");
173
};
174
 
175
sizeofdirent = 28;
176
aggr dirent
177
{
178
	'a' 0 d_name;
179
};
180
 
181
defn
182
dirent(addr) {
183
	complex dirent addr;
184
	print("	d_name	", addr.d_name, "\n");
185
};
186
 
187
sizeof_dirdesc = 16;
188
aggr _dirdesc
189
{
190
	'D' 0 dd_fd;
191
	'D' 4 dd_loc;
192
	'D' 8 dd_size;
193
	'X' 12 dd_buf;
194
};
195
 
196
defn
197
_dirdesc(addr) {
198
	complex _dirdesc addr;
199
	print("	dd_fd	", addr.dd_fd, "\n");
200
	print("	dd_loc	", addr.dd_loc, "\n");
201
	print("	dd_size	", addr.dd_size, "\n");
202
	print("	dd_buf	", addr.dd_buf\X, "\n");
203
};
204
 
205
sizeoftermios = 28;
206
aggr termios
207
{
208
	'U' 0 c_iflag;
209
	'U' 4 c_oflag;
210
	'U' 8 c_cflag;
211
	'U' 12 c_lflag;
212
	'a' 16 c_cc;
213
};
214
 
215
defn
216
termios(addr) {
217
	complex termios addr;
218
	print("	c_iflag	", addr.c_iflag, "\n");
219
	print("	c_oflag	", addr.c_oflag, "\n");
220
	print("	c_cflag	", addr.c_cflag, "\n");
221
	print("	c_lflag	", addr.c_lflag, "\n");
222
	print("	c_cc	", addr.c_cc, "\n");
223
};
224
 
225
sizeofutsname = 20;
226
aggr utsname
227
{
228
	'X' 0 sysname;
229
	'X' 4 nodename;
230
	'X' 8 release;
231
	'X' 12 version;
232
	'X' 16 machine;
233
};
234
 
235
defn
236
utsname(addr) {
237
	complex utsname addr;
238
	print("	sysname	", addr.sysname\X, "\n");
239
	print("	nodename	", addr.nodename\X, "\n");
240
	print("	release	", addr.release\X, "\n");
241
	print("	version	", addr.version\X, "\n");
242
	print("	machine	", addr.machine\X, "\n");
243
};
244
 
245
sizeofMuxbuf = 16400;
246
aggr Muxbuf
247
{
248
	'D' 0 n;
249
	'X' 4 putnext;
250
	'X' 8 getnext;
251
	'b' 12 fd;
252
	'b' 13 eof;
253
	'b' 14 roomwait;
254
	'b' 15 datawait;
255
	'a' 16 data;
256
};
257
 
258
defn
259
Muxbuf(addr) {
260
	complex Muxbuf addr;
261
	print("	n	", addr.n, "\n");
262
	print("	putnext	", addr.putnext\X, "\n");
263
	print("	getnext	", addr.getnext\X, "\n");
264
	print("	fd	", addr.fd, "\n");
265
	print("	eof	", addr.eof, "\n");
266
	print("	roomwait	", addr.roomwait, "\n");
267
	print("	datawait	", addr.datawait, "\n");
268
	print("	data	", addr.data, "\n");
269
};
270
 
271
sizeofFdinfo = 16;
272
aggr Fdinfo
273
{
274
	'U' 0 flags;
275
	'U' 4 oflags;
276
	'X' 8 name;
277
	'A' Muxbuf 12 buf;
278
};
279
 
280
defn
281
Fdinfo(addr) {
282
	complex Fdinfo addr;
283
	print("	flags	", addr.flags, "\n");
284
	print("	oflags	", addr.oflags, "\n");
285
	print("	name	", addr.name\X, "\n");
286
	print("	buf	", addr.buf\X, "\n");
287
};
288
 
289
sizeofWaitmsg = 112;
290
aggr Waitmsg
291
{
292
	'a' 0 pid;
293
	'a' 12 time;
294
	'a' 48 msg;
295
};
296
 
297
defn
298
Waitmsg(addr) {
299
	complex Waitmsg addr;
300
	print("	pid	", addr.pid, "\n");
301
	print("	time	", addr.time, "\n");
302
	print("	msg	", addr.msg, "\n");
303
};
304
 
305
sizeof_5_ = 8;
306
aggr _5_
307
{
308
	'D' 0 hlength;
309
	'D' 4 length;
310
};
311
 
312
defn
313
_5_(addr) {
314
	complex _5_ addr;
315
	print("	hlength	", addr.hlength, "\n");
316
	print("	length	", addr.length, "\n");
317
};
318
 
319
sizeof_6_ = 8;
320
aggr _6_
321
{
322
	'a' 0 clength;
323
	'D' 0 vlength;
324
	{
325
	'D' 0 hlength;
326
	'D' 4 length;
327
	};
328
};
329
 
330
defn
331
_6_(addr) {
332
	complex _6_ addr;
333
	print("	clength	", addr.clength, "\n");
334
	print("	vlength	", addr.vlength, "\n");
335
	print("_5_ {\n");
336
		_5_(addr+0);
337
	print("}\n");
338
};
339
 
340
sizeofQid = 8;
341
aggr Qid
342
{
343
	'U' 0 path;
344
	'U' 4 vers;
345
};
346
 
347
defn
348
Qid(addr) {
349
	complex Qid addr;
350
	print("	path	", addr.path, "\n");
351
	print("	vers	", addr.vers, "\n");
352
};
353
 
354
sizeofDir = 116;
355
aggr Dir
356
{
357
	'a' 0 name;
358
	'a' 28 uid;
359
	'a' 56 gid;
360
	Qid 84 qid;
361
	'U' 92 mode;
362
	'D' 96 atime;
363
	'D' 100 mtime;
364
	{
365
	'a' 104 clength;
366
	'D' 104 vlength;
367
	{
368
	'D' 104 hlength;
369
	'D' 108 length;
370
	};
371
	};
372
	'd' 112 type;
373
	'd' 114 dev;
374
};
375
 
376
defn
377
Dir(addr) {
378
	complex Dir addr;
379
	print("	name	", addr.name, "\n");
380
	print("	uid	", addr.uid, "\n");
381
	print("	gid	", addr.gid, "\n");
382
	print("Qid qid {\n");
383
	Qid(addr.qid);
384
	print("}\n");
385
	print("	mode	", addr.mode, "\n");
386
	print("	atime	", addr.atime, "\n");
387
	print("	mtime	", addr.mtime, "\n");
388
	print("_6_ {\n");
389
		_6_(addr+104);
390
	print("}\n");
391
	print("	type	", addr.type, "\n");
392
	print("	dev	", addr.dev, "\n");
393
};
394
 
395
sizeof_7_ = 28;
396
aggr _7_
397
{
398
	'u' 0 oldtag;
399
	Qid 4 qid;
400
	'a' 12 rauth;
401
};
402
 
403
defn
404
_7_(addr) {
405
	complex _7_ addr;
406
	print("	oldtag	", addr.oldtag, "\n");
407
	print("Qid qid {\n");
408
	Qid(addr.qid);
409
	print("}\n");
410
	print("	rauth	", addr.rauth, "\n");
411
};
412
 
413
sizeof_8_ = 144;
414
aggr _8_
415
{
416
	'a' 0 uname;
417
	'a' 28 aname;
418
	'a' 56 ticket;
419
	'a' 128 auth;
420
};
421
 
422
defn
423
_8_(addr) {
424
	complex _8_ addr;
425
	print("	uname	", addr.uname, "\n");
426
	print("	aname	", addr.aname, "\n");
427
	print("	ticket	", addr.ticket, "\n");
428
	print("	auth	", addr.auth, "\n");
429
};
430
 
431
sizeof_9_ = 148;
432
aggr _9_
433
{
434
	'a' 0 ename;
435
	'a' 64 authid;
436
	'a' 92 authdom;
437
	'a' 140 chal;
438
};
439
 
440
defn
441
_9_(addr) {
442
	complex _9_ addr;
443
	print("	ename	", addr.ename, "\n");
444
	print("	authid	", addr.authid, "\n");
445
	print("	authdom	", addr.authdom, "\n");
446
	print("	chal	", addr.chal, "\n");
447
};
448
 
449
sizeof_10_ = 36;
450
aggr _10_
451
{
452
	'D' 0 perm;
453
	'd' 4 newfid;
454
	'a' 6 name;
455
	'C' 34 mode;
456
};
457
 
458
defn
459
_10_(addr) {
460
	complex _10_ addr;
461
	print("	perm	", addr.perm, "\n");
462
	print("	newfid	", addr.newfid, "\n");
463
	print("	name	", addr.name, "\n");
464
	print("	mode	", addr.mode, "\n");
465
};
466
 
467
sizeof_11_ = 12;
468
aggr _11_
469
{
470
	'D' 0 offset;
471
	'D' 4 count;
472
	'X' 8 data;
473
};
474
 
475
defn
476
_11_(addr) {
477
	complex _11_ addr;
478
	print("	offset	", addr.offset, "\n");
479
	print("	count	", addr.count, "\n");
480
	print("	data	", addr.data\X, "\n");
481
};
482
 
483
sizeof_12_ = 116;
484
aggr _12_
485
{
486
	'a' 0 stat;
487
};
488
 
489
defn
490
_12_(addr) {
491
	complex _12_ addr;
492
	print("	stat	", addr.stat, "\n");
493
};
494
 
495
sizeof_13_ = 148;
496
aggr _13_
497
{
498
	{
499
	'u' 0 oldtag;
500
	Qid 4 qid;
501
	'a' 12 rauth;
502
	};
503
	{
504
	'a' 0 uname;
505
	'a' 28 aname;
506
	'a' 56 ticket;
507
	'a' 128 auth;
508
	};
509
	{
510
	'a' 0 ename;
511
	'a' 64 authid;
512
	'a' 92 authdom;
513
	'a' 140 chal;
514
	};
515
	{
516
	'D' 0 perm;
517
	'd' 4 newfid;
518
	'a' 6 name;
519
	'C' 34 mode;
520
	};
521
	{
522
	'D' 0 offset;
523
	'D' 4 count;
524
	'X' 8 data;
525
	};
526
	{
527
	'a' 0 stat;
528
	};
529
};
530
 
531
defn
532
_13_(addr) {
533
	complex _13_ addr;
534
	print("_7_ {\n");
535
		_7_(addr+0);
536
	print("}\n");
537
	print("_8_ {\n");
538
		_8_(addr+0);
539
	print("}\n");
540
	print("_9_ {\n");
541
		_9_(addr+0);
542
	print("}\n");
543
	print("_10_ {\n");
544
		_10_(addr+0);
545
	print("}\n");
546
	print("_11_ {\n");
547
		_11_(addr+0);
548
	print("}\n");
549
	print("_12_ {\n");
550
		_12_(addr+0);
551
	print("}\n");
552
};
553
 
554
sizeofFcall = 156;
555
aggr Fcall
556
{
557
	'C' 0 type;
558
	'd' 2 fid;
559
	'u' 4 tag;
560
	{
561
	{
562
	'u' 8 oldtag;
563
	Qid 12 qid;
564
	'a' 20 rauth;
565
	};
566
	{
567
	'a' 8 uname;
568
	'a' 36 aname;
569
	'a' 64 ticket;
570
	'a' 136 auth;
571
	};
572
	{
573
	'a' 8 ename;
574
	'a' 72 authid;
575
	'a' 100 authdom;
576
	'a' 148 chal;
577
	};
578
	{
579
	'D' 8 perm;
580
	'd' 12 newfid;
581
	'a' 14 name;
582
	'C' 42 mode;
583
	};
584
	{
585
	'D' 8 offset;
586
	'D' 12 count;
587
	'X' 16 data;
588
	};
589
	{
590
	'a' 8 stat;
591
	};
592
	};
593
};
594
 
595
defn
596
Fcall(addr) {
597
	complex Fcall addr;
598
	print("	type	", addr.type, "\n");
599
	print("	fid	", addr.fid, "\n");
600
	print("	tag	", addr.tag, "\n");
601
	print("_13_ {\n");
602
		_13_(addr+8);
603
	print("}\n");
604
};
605
 
606
sizeofMuxbuf = 16400;
607
aggr Muxbuf
608
{
609
	'D' 0 n;
610
	'X' 4 putnext;
611
	'X' 8 getnext;
612
	'b' 12 fd;
613
	'b' 13 eof;
614
	'b' 14 roomwait;
615
	'b' 15 datawait;
616
	'a' 16 data;
617
};
618
 
619
defn
620
Muxbuf(addr) {
621
	complex Muxbuf addr;
622
	print("	n	", addr.n, "\n");
623
	print("	putnext	", addr.putnext\X, "\n");
624
	print("	getnext	", addr.getnext\X, "\n");
625
	print("	fd	", addr.fd, "\n");
626
	print("	eof	", addr.eof, "\n");
627
	print("	roomwait	", addr.roomwait, "\n");
628
	print("	datawait	", addr.datawait, "\n");
629
	print("	data	", addr.data, "\n");
630
};
631
 
632
sizeofFdinfo = 16;
633
aggr Fdinfo
634
{
635
	'U' 0 flags;
636
	'U' 4 oflags;
637
	'X' 8 name;
638
	'A' Muxbuf 12 buf;
639
};
640
 
641
defn
642
Fdinfo(addr) {
643
	complex Fdinfo addr;
644
	print("	flags	", addr.flags, "\n");
645
	print("	oflags	", addr.oflags, "\n");
646
	print("	name	", addr.name\X, "\n");
647
	print("	buf	", addr.buf\X, "\n");
648
};
649
 
650
sizeofWaitmsg = 112;
651
aggr Waitmsg
652
{
653
	'a' 0 pid;
654
	'a' 12 time;
655
	'a' 48 msg;
656
};
657
 
658
defn
659
Waitmsg(addr) {
660
	complex Waitmsg addr;
661
	print("	pid	", addr.pid, "\n");
662
	print("	time	", addr.time, "\n");
663
	print("	msg	", addr.msg, "\n");
664
};
665
 
666
sizeofMuxseg = 65640;
667
aggr Muxseg
668
{
669
	_4_ 0 lock;
670
	'D' 4 curfds;
671
	'D' 8 selwait;
672
	'D' 12 waittime;
673
	fd_set 16 rwant;
674
	fd_set 28 ewant;
675
	'a' 40 bufs;
676
};
677
 
678
defn
679
Muxseg(addr) {
680
	complex Muxseg addr;
681
	print("_4_ lock {\n");
682
	_4_(addr.lock);
683
	print("}\n");
684
	print("	curfds	", addr.curfds, "\n");
685
	print("	selwait	", addr.selwait, "\n");
686
	print("	waittime	", addr.waittime, "\n");
687
	print("fd_set rwant {\n");
688
	fd_set(addr.rwant);
689
	print("}\n");
690
	print("fd_set ewant {\n");
691
	fd_set(addr.ewant);
692
	print("}\n");
693
	print("	bufs	", addr.bufs, "\n");
694
};
695
 
696
complex Muxseg mux;
697
complex Fdinfo _startbuf:f;
698
complex Muxbuf _startbuf:b;
699
complex Muxbuf _copyproc:b;
700
complex Muxbuf _readbuf:b;
701
complex fd_set select:rfds;
702
complex fd_set select:wfds;
703
complex fd_set select:efds;
704
complex timeval select:timeout;
705
complex Fdinfo select:f;
706
complex Muxbuf select:b;