Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
sizeof_1_ = 8;
2
aggr _1_
3
{
4
	'U' 0 lo;
5
	'U' 4 hi;
6
};
7
 
8
defn
9
_1_(addr) {
10
	complex _1_ addr;
11
	print("	lo	", addr.lo, "\n");
12
	print("	hi	", addr.hi, "\n");
13
};
14
 
15
sizeofFPdbleword = 8;
16
aggr FPdbleword
17
{
18
	'F' 0 x;
19
	{
20
	'U' 0 lo;
21
	'U' 4 hi;
22
	};
23
};
24
 
25
defn
26
FPdbleword(addr) {
27
	complex FPdbleword addr;
28
	print("	x	", addr.x, "\n");
29
	print("_1_ {\n");
30
		_1_(addr+0);
31
	print("}\n");
32
};
33
 
34
UTFmax = 3;
35
Runesync = 128;
36
Runeself = 128;
37
Runeerror = 65533;
38
sizeofFmt = 48;
39
aggr Fmt
40
{
41
	'b' 0 runes;
42
	'X' 4 start;
43
	'X' 8 to;
44
	'X' 12 stop;
45
	'X' 16 flush;
46
	'X' 20 farg;
47
	'D' 24 nfmt;
48
	'X' 28 args;
49
	'D' 32 r;
50
	'D' 36 width;
51
	'D' 40 prec;
52
	'U' 44 flags;
53
};
54
 
55
defn
56
Fmt(addr) {
57
	complex Fmt addr;
58
	print("	runes	", addr.runes, "\n");
59
	print("	start	", addr.start\X, "\n");
60
	print("	to	", addr.to\X, "\n");
61
	print("	stop	", addr.stop\X, "\n");
62
	print("	flush	", addr.flush\X, "\n");
63
	print("	farg	", addr.farg\X, "\n");
64
	print("	nfmt	", addr.nfmt, "\n");
65
	print("	args	", addr.args\X, "\n");
66
	print("	r	", addr.r, "\n");
67
	print("	width	", addr.width, "\n");
68
	print("	prec	", addr.prec, "\n");
69
	print("	flags	", addr.flags, "\n");
70
};
71
 
72
FmtWidth = 1;
73
FmtLeft = 2;
74
FmtPrec = 4;
75
FmtSharp = 8;
76
FmtSpace = 16;
77
FmtSign = 32;
78
FmtZero = 64;
79
FmtUnsigned = 128;
80
FmtShort = 256;
81
FmtLong = 512;
82
FmtVLong = 1024;
83
FmtComma = 2048;
84
FmtByte = 4096;
85
FmtFlag = 8192;
86
sizeofTm = 40;
87
aggr Tm
88
{
89
	'D' 0 sec;
90
	'D' 4 min;
91
	'D' 8 hour;
92
	'D' 12 mday;
93
	'D' 16 mon;
94
	'D' 20 year;
95
	'D' 24 wday;
96
	'D' 28 yday;
97
	'a' 32 zone;
98
	'D' 36 tzoff;
99
};
100
 
101
defn
102
Tm(addr) {
103
	complex Tm addr;
104
	print("	sec	", addr.sec, "\n");
105
	print("	min	", addr.min, "\n");
106
	print("	hour	", addr.hour, "\n");
107
	print("	mday	", addr.mday, "\n");
108
	print("	mon	", addr.mon, "\n");
109
	print("	year	", addr.year, "\n");
110
	print("	wday	", addr.wday, "\n");
111
	print("	yday	", addr.yday, "\n");
112
	print("	zone	", addr.zone, "\n");
113
	print("	tzoff	", addr.tzoff, "\n");
114
};
115
 
116
PNPROC = 1;
117
PNGROUP = 2;
118
Profoff = 0;
119
Profuser = 1;
120
Profkernel = 2;
121
Proftime = 3;
122
Profsample = 4;
123
sizeofLock = 4;
124
aggr Lock
125
{
126
	'D' 0 val;
127
};
128
 
129
defn
130
Lock(addr) {
131
	complex Lock addr;
132
	print("	val	", addr.val, "\n");
133
};
134
 
135
sizeofQLp = 12;
136
aggr QLp
137
{
138
	'D' 0 inuse;
139
	'A' QLp 4 next;
140
	'C' 8 state;
141
};
142
 
143
defn
144
QLp(addr) {
145
	complex QLp addr;
146
	print("	inuse	", addr.inuse, "\n");
147
	print("	next	", addr.next\X, "\n");
148
	print("	state	", addr.state, "\n");
149
};
150
 
151
sizeofQLock = 16;
152
aggr QLock
153
{
154
	Lock 0 lock;
155
	'D' 4 locked;
156
	'A' QLp 8 $head;
157
	'A' QLp 12 $tail;
158
};
159
 
160
defn
161
QLock(addr) {
162
	complex QLock addr;
163
	print("Lock lock {\n");
164
	Lock(addr.lock);
165
	print("}\n");
166
	print("	locked	", addr.locked, "\n");
167
	print("	$head	", addr.$head\X, "\n");
168
	print("	$tail	", addr.$tail\X, "\n");
169
};
170
 
171
sizeofRWLock = 20;
172
aggr RWLock
173
{
174
	Lock 0 lock;
175
	'D' 4 readers;
176
	'D' 8 writer;
177
	'A' QLp 12 $head;
178
	'A' QLp 16 $tail;
179
};
180
 
181
defn
182
RWLock(addr) {
183
	complex RWLock addr;
184
	print("Lock lock {\n");
185
	Lock(addr.lock);
186
	print("}\n");
187
	print("	readers	", addr.readers, "\n");
188
	print("	writer	", addr.writer, "\n");
189
	print("	$head	", addr.$head\X, "\n");
190
	print("	$tail	", addr.$tail\X, "\n");
191
};
192
 
193
sizeofRendez = 12;
194
aggr Rendez
195
{
196
	'A' QLock 0 l;
197
	'A' QLp 4 $head;
198
	'A' QLp 8 $tail;
199
};
200
 
201
defn
202
Rendez(addr) {
203
	complex Rendez addr;
204
	print("	l	", addr.l\X, "\n");
205
	print("	$head	", addr.$head\X, "\n");
206
	print("	$tail	", addr.$tail\X, "\n");
207
};
208
 
209
sizeofNetConnInfo = 36;
210
aggr NetConnInfo
211
{
212
	'X' 0 dir;
213
	'X' 4 root;
214
	'X' 8 spec;
215
	'X' 12 lsys;
216
	'X' 16 lserv;
217
	'X' 20 rsys;
218
	'X' 24 rserv;
219
	'X' 28 laddr;
220
	'X' 32 raddr;
221
};
222
 
223
defn
224
NetConnInfo(addr) {
225
	complex NetConnInfo addr;
226
	print("	dir	", addr.dir\X, "\n");
227
	print("	root	", addr.root\X, "\n");
228
	print("	spec	", addr.spec\X, "\n");
229
	print("	lsys	", addr.lsys\X, "\n");
230
	print("	lserv	", addr.lserv\X, "\n");
231
	print("	rsys	", addr.rsys\X, "\n");
232
	print("	rserv	", addr.rserv\X, "\n");
233
	print("	laddr	", addr.laddr\X, "\n");
234
	print("	raddr	", addr.raddr\X, "\n");
235
};
236
 
237
RFNAMEG = 1;
238
RFENVG = 2;
239
RFFDG = 4;
240
RFNOTEG = 8;
241
RFPROC = 16;
242
RFMEM = 32;
243
RFNOWAIT = 64;
244
RFCNAMEG = 1024;
245
RFCENVG = 2048;
246
RFCFDG = 4096;
247
RFREND = 8192;
248
RFNOMNT = 16384;
249
sizeofQid = 16;
250
aggr Qid
251
{
252
	'W' 0 path;
253
	'U' 8 vers;
254
	'b' 12 type;
255
};
256
 
257
defn
258
Qid(addr) {
259
	complex Qid addr;
260
	print("	path	", addr.path, "\n");
261
	print("	vers	", addr.vers, "\n");
262
	print("	type	", addr.type, "\n");
263
};
264
 
265
sizeofDir = 60;
266
aggr Dir
267
{
268
	'u' 0 type;
269
	'U' 4 dev;
270
	Qid 8 qid;
271
	'U' 24 mode;
272
	'U' 28 atime;
273
	'U' 32 mtime;
274
	'V' 36 length;
275
	'X' 44 name;
276
	'X' 48 uid;
277
	'X' 52 gid;
278
	'X' 56 muid;
279
};
280
 
281
defn
282
Dir(addr) {
283
	complex Dir addr;
284
	print("	type	", addr.type, "\n");
285
	print("	dev	", addr.dev, "\n");
286
	print("Qid qid {\n");
287
	Qid(addr.qid);
288
	print("}\n");
289
	print("	mode	", addr.mode, "\n");
290
	print("	atime	", addr.atime, "\n");
291
	print("	mtime	", addr.mtime, "\n");
292
	print("	length	", addr.length, "\n");
293
	print("	name	", addr.name\X, "\n");
294
	print("	uid	", addr.uid\X, "\n");
295
	print("	gid	", addr.gid\X, "\n");
296
	print("	muid	", addr.muid\X, "\n");
297
};
298
 
299
sizeofWaitmsg = 20;
300
aggr Waitmsg
301
{
302
	'D' 0 pid;
303
	'a' 4 time;
304
	'X' 16 msg;
305
};
306
 
307
defn
308
Waitmsg(addr) {
309
	complex Waitmsg addr;
310
	print("	pid	", addr.pid, "\n");
311
	print("	time	", addr.time, "\n");
312
	print("	msg	", addr.msg\X, "\n");
313
};
314
 
315
sizeofIOchunk = 8;
316
aggr IOchunk
317
{
318
	'X' 0 addr;
319
	'U' 4 len;
320
};
321
 
322
defn
323
IOchunk(addr) {
324
	complex IOchunk addr;
325
	print("	addr	", addr.addr\X, "\n");
326
	print("	len	", addr.len, "\n");
327
};
328
 
329
sizeof_2_ = 32;
330
aggr _2_
331
{
332
	'D' 0 fd;
333
	'C' 4 flags;
334
	'C' 5 state;
335
	'X' 8 buf;
336
	'X' 12 rp;
337
	'X' 16 wp;
338
	'X' 20 lp;
339
	'D' 24 bufl;
340
	'a' 28 unbuf;
341
};
342
 
343
defn
344
_2_(addr) {
345
	complex _2_ addr;
346
	print("	fd	", addr.fd, "\n");
347
	print("	flags	", addr.flags, "\n");
348
	print("	state	", addr.state, "\n");
349
	print("	buf	", addr.buf\X, "\n");
350
	print("	rp	", addr.rp\X, "\n");
351
	print("	wp	", addr.wp\X, "\n");
352
	print("	lp	", addr.lp\X, "\n");
353
	print("	bufl	", addr.bufl, "\n");
354
	print("	unbuf	", addr.unbuf, "\n");
355
};
356
 
357
DOpaque = 4294967295;
358
DTransparent = 0;
359
DBlack = 255;
360
DWhite = 4294967295;
361
DRed = 4278190335;
362
DGreen = 16711935;
363
DBlue = 65535;
364
DCyan = 16777215;
365
DMagenta = 4278255615;
366
DYellow = 4294902015;
367
DPaleyellow = 4294945535;
368
DDarkyellow = 4008615679;
369
DDarkgreen = 1149781247;
370
DPalegreen = 2868882175;
371
DMedgreen = 2295105791;
372
DDarkblue = 22015;
373
DPalebluegreen = 2868903935;
374
DPaleblue = 48127;
375
DBluegreen = 8947967;
376
DGreygreen = 1437248255;
377
DPalegreygreen = 2666458879;
378
DYellowgreen = 2576960767;
379
DMedblue = 39423;
380
DGreyblue = 6142975;
381
DPalegreyblue = 1234427391;
382
DPurpleblue = 2290666751;
383
DNotacolor = 4294967040;
384
DNofill = 4294967040;
385
Displaybufsize = 8000;
386
ICOSSCALE = 1024;
387
Borderwidth = 4;
388
Refbackup = 0;
389
Refnone = 1;
390
Refmesg = 2;
391
Endsquare = 0;
392
Enddisc = 1;
393
Endarrow = 2;
394
Endmask = 31;
395
Clear = 0;
396
SinD = 8;
397
DinS = 4;
398
SoutD = 2;
399
DoutS = 1;
400
S = 10;
401
SoverD = 11;
402
SatopD = 9;
403
SxorD = 3;
404
D = 5;
405
DoverS = 7;
406
DatopS = 6;
407
DxorS = 3;
408
Ncomp = 12;
409
CRed = 0;
410
CGreen = 1;
411
CBlue = 2;
412
CGrey = 3;
413
CAlpha = 4;
414
CMap = 5;
415
CIgnore = 6;
416
NChan = 7;
417
GREY1 = 49;
418
GREY2 = 50;
419
GREY4 = 52;
420
GREY8 = 56;
421
CMAP8 = 88;
422
RGB15 = 1627723045;
423
RGB16 = 333349;
424
RGB24 = 530472;
425
RGBA32 = 135800904;
426
ARGB32 = 1208490024;
427
XRGB32 = 1745360936;
428
BGR24 = 2627592;
429
ABGR32 = 1210587144;
430
XBGR32 = 1747458056;
431
sizeofPoint = 8;
432
aggr Point
433
{
434
	'D' 0 x;
435
	'D' 4 y;
436
};
437
 
438
defn
439
Point(addr) {
440
	complex Point addr;
441
	print("	x	", addr.x, "\n");
442
	print("	y	", addr.y, "\n");
443
};
444
 
445
sizeofRectangle = 16;
446
aggr Rectangle
447
{
448
	Point 0 min;
449
	Point 8 max;
450
};
451
 
452
defn
453
Rectangle(addr) {
454
	complex Rectangle addr;
455
	print("Point min {\n");
456
	Point(addr.min);
457
	print("}\n");
458
	print("Point max {\n");
459
	Point(addr.max);
460
	print("}\n");
461
};
462
 
463
sizeofScreen = 16;
464
aggr Screen
465
{
466
	'X' 0 display;
467
	'D' 4 id;
468
	'X' 8 image;
469
	'X' 12 fill;
470
};
471
 
472
defn
473
Screen(addr) {
474
	complex Screen addr;
475
	print("	display	", addr.display\X, "\n");
476
	print("	id	", addr.id, "\n");
477
	print("	image	", addr.image\X, "\n");
478
	print("	fill	", addr.fill\X, "\n");
479
};
480
 
481
sizeofDisplay = 176;
482
aggr Display
483
{
484
	QLock 0 qlock;
485
	'D' 16 locking;
486
	'D' 20 dirno;
487
	'D' 24 fd;
488
	'D' 28 reffd;
489
	'D' 32 ctlfd;
490
	'D' 36 imageid;
491
	'D' 40 $local;
492
	'X' 44 error;
493
	'X' 48 devdir;
494
	'X' 52 windir;
495
	'a' 56 oldlabel;
496
	'U' 120 dataqid;
497
	'X' 124 white;
498
	'X' 128 black;
499
	'X' 132 opaque;
500
	'X' 136 transparent;
501
	'X' 140 image;
502
	'X' 144 buf;
503
	'D' 148 bufsize;
504
	'X' 152 bufp;
505
	'X' 156 defaultfont;
506
	'X' 160 defaultsubfont;
507
	'X' 164 windows;
508
	'X' 168 screenimage;
509
	'D' 172 _isnewdisplay;
510
};
511
 
512
defn
513
Display(addr) {
514
	complex Display addr;
515
	print("QLock qlock {\n");
516
	QLock(addr.qlock);
517
	print("}\n");
518
	print("	locking	", addr.locking, "\n");
519
	print("	dirno	", addr.dirno, "\n");
520
	print("	fd	", addr.fd, "\n");
521
	print("	reffd	", addr.reffd, "\n");
522
	print("	ctlfd	", addr.ctlfd, "\n");
523
	print("	imageid	", addr.imageid, "\n");
524
	print("	$local	", addr.$local, "\n");
525
	print("	error	", addr.error\X, "\n");
526
	print("	devdir	", addr.devdir\X, "\n");
527
	print("	windir	", addr.windir\X, "\n");
528
	print("	oldlabel	", addr.oldlabel, "\n");
529
	print("	dataqid	", addr.dataqid, "\n");
530
	print("	white	", addr.white\X, "\n");
531
	print("	black	", addr.black\X, "\n");
532
	print("	opaque	", addr.opaque\X, "\n");
533
	print("	transparent	", addr.transparent\X, "\n");
534
	print("	image	", addr.image\X, "\n");
535
	print("	buf	", addr.buf\X, "\n");
536
	print("	bufsize	", addr.bufsize, "\n");
537
	print("	bufp	", addr.bufp\X, "\n");
538
	print("	defaultfont	", addr.defaultfont\X, "\n");
539
	print("	defaultsubfont	", addr.defaultsubfont\X, "\n");
540
	print("	windows	", addr.windows\X, "\n");
541
	print("	screenimage	", addr.screenimage\X, "\n");
542
	print("	_isnewdisplay	", addr._isnewdisplay, "\n");
543
};
544
 
545
sizeofImage = 60;
546
aggr Image
547
{
548
	'A' Display 0 display;
549
	'D' 4 id;
550
	Rectangle 8 r;
551
	Rectangle 24 clipr;
552
	'D' 40 depth;
553
	'U' 44 chan;
554
	'D' 48 repl;
555
	'A' Screen 52 screen;
556
	'A' Image 56 next;
557
};
558
 
559
defn
560
Image(addr) {
561
	complex Image addr;
562
	print("	display	", addr.display\X, "\n");
563
	print("	id	", addr.id, "\n");
564
	print("Rectangle r {\n");
565
	Rectangle(addr.r);
566
	print("}\n");
567
	print("Rectangle clipr {\n");
568
	Rectangle(addr.clipr);
569
	print("}\n");
570
	print("	depth	", addr.depth, "\n");
571
	print("	chan	", addr.chan, "\n");
572
	print("	repl	", addr.repl, "\n");
573
	print("	screen	", addr.screen\X, "\n");
574
	print("	next	", addr.next\X, "\n");
575
};
576
 
577
sizeofRGB = 12;
578
aggr RGB
579
{
580
	'U' 0 red;
581
	'U' 4 green;
582
	'U' 8 blue;
583
};
584
 
585
defn
586
RGB(addr) {
587
	complex RGB addr;
588
	print("	red	", addr.red, "\n");
589
	print("	green	", addr.green, "\n");
590
	print("	blue	", addr.blue, "\n");
591
};
592
 
593
sizeofFontchar = 8;
594
aggr Fontchar
595
{
596
	'D' 0 x;
597
	'b' 4 top;
598
	'b' 5 bottom;
599
	'C' 6 left;
600
	'b' 7 width;
601
};
602
 
603
defn
604
Fontchar(addr) {
605
	complex Fontchar addr;
606
	print("	x	", addr.x, "\n");
607
	print("	top	", addr.top, "\n");
608
	print("	bottom	", addr.bottom, "\n");
609
	print("	left	", addr.left, "\n");
610
	print("	width	", addr.width, "\n");
611
};
612
 
613
sizeofSubfont = 20;
614
aggr Subfont
615
{
616
	'X' 0 name;
617
	'd' 4 n;
618
	'b' 6 height;
619
	'C' 7 ascent;
620
	'A' Fontchar 8 info;
621
	'A' Image 12 bits;
622
	'D' 16 ref;
623
};
624
 
625
defn
626
Subfont(addr) {
627
	complex Subfont addr;
628
	print("	name	", addr.name\X, "\n");
629
	print("	n	", addr.n, "\n");
630
	print("	height	", addr.height, "\n");
631
	print("	ascent	", addr.ascent, "\n");
632
	print("	info	", addr.info\X, "\n");
633
	print("	bits	", addr.bits\X, "\n");
634
	print("	ref	", addr.ref, "\n");
635
};
636
 
637
LOG2NFCACHE = 6;
638
NFCACHE = 64;
639
NFLOOK = 5;
640
NFSUBF = 2;
641
MAXFCACHE = 1029;
642
MAXSUBF = 50;
643
DSUBF = 4;
644
SUBFAGE = 10000;
645
CACHEAGE = 10000;
646
sizeofCachefont = 16;
647
aggr Cachefont
648
{
649
	'u' 0 min;
650
	'u' 2 max;
651
	'D' 4 offset;
652
	'X' 8 name;
653
	'X' 12 subfontname;
654
};
655
 
656
defn
657
Cachefont(addr) {
658
	complex Cachefont addr;
659
	print("	min	", addr.min, "\n");
660
	print("	max	", addr.max, "\n");
661
	print("	offset	", addr.offset, "\n");
662
	print("	name	", addr.name\X, "\n");
663
	print("	subfontname	", addr.subfontname\X, "\n");
664
};
665
 
666
sizeofCacheinfo = 8;
667
aggr Cacheinfo
668
{
669
	'u' 0 x;
670
	'b' 2 width;
671
	'C' 3 left;
672
	'u' 4 value;
673
	'u' 6 age;
674
};
675
 
676
defn
677
Cacheinfo(addr) {
678
	complex Cacheinfo addr;
679
	print("	x	", addr.x, "\n");
680
	print("	width	", addr.width, "\n");
681
	print("	left	", addr.left, "\n");
682
	print("	value	", addr.value, "\n");
683
	print("	age	", addr.age, "\n");
684
};
685
 
686
sizeofCachesubf = 12;
687
aggr Cachesubf
688
{
689
	'U' 0 age;
690
	'A' Cachefont 4 cf;
691
	'A' Subfont 8 f;
692
};
693
 
694
defn
695
Cachesubf(addr) {
696
	complex Cachesubf addr;
697
	print("	age	", addr.age, "\n");
698
	print("	cf	", addr.cf\X, "\n");
699
	print("	f	", addr.f\X, "\n");
700
};
701
 
702
sizeofFont = 48;
703
aggr Font
704
{
705
	'X' 0 name;
706
	'A' Display 4 display;
707
	'd' 8 height;
708
	'd' 10 ascent;
709
	'd' 12 width;
710
	'd' 14 nsub;
711
	'U' 16 age;
712
	'D' 20 maxdepth;
713
	'D' 24 ncache;
714
	'D' 28 nsubf;
715
	'A' Cacheinfo 32 cache;
716
	'A' Cachesubf 36 subf;
717
	'A' Cachefont 40 sub;
718
	'A' Image 44 cacheimage;
719
};
720
 
721
defn
722
Font(addr) {
723
	complex Font addr;
724
	print("	name	", addr.name\X, "\n");
725
	print("	display	", addr.display\X, "\n");
726
	print("	height	", addr.height, "\n");
727
	print("	ascent	", addr.ascent, "\n");
728
	print("	width	", addr.width, "\n");
729
	print("	nsub	", addr.nsub, "\n");
730
	print("	age	", addr.age, "\n");
731
	print("	maxdepth	", addr.maxdepth, "\n");
732
	print("	ncache	", addr.ncache, "\n");
733
	print("	nsubf	", addr.nsubf, "\n");
734
	print("	cache	", addr.cache\X, "\n");
735
	print("	subf	", addr.subf\X, "\n");
736
	print("	sub	", addr.sub\X, "\n");
737
	print("	cacheimage	", addr.cacheimage\X, "\n");
738
};
739
 
740
complex Point ZP;
741
complex Rectangle ZR;
742
complex Display display;
743
complex Font font;
744
complex Image screen;
745
complex Screen _screen;
746
sizeofpen_point = 12;
747
aggr pen_point
748
{
749
	{
750
	'D' 0 x;
751
	'D' 4 y;
752
	};
753
	'D' 8 chaincode;
754
};
755
 
756
defn
757
pen_point(addr) {
758
	complex pen_point addr;
759
	print("Point {\n");
760
		Point(addr+0);
761
	print("}\n");
762
	print("	chaincode	", addr.chaincode, "\n");
763
};
764
 
765
sizeofStroke = 8;
766
aggr Stroke
767
{
768
	'U' 0 npts;
769
	'A' pen_point 4 pts;
770
};
771
 
772
defn
773
Stroke(addr) {
774
	complex Stroke addr;
775
	print("	npts	", addr.npts, "\n");
776
	print("	pts	", addr.pts\X, "\n");
777
};
778
 
779
sizeofScribble = 40;
780
aggr Scribble
781
{
782
	'A' Point 0 pt;
783
	'D' 4 ppasize;
784
	Stroke 8 ps;
785
	'X' 16 graf;
786
	'D' 20 capsLock;
787
	'D' 24 puncShift;
788
	'D' 28 tmpShift;
789
	'D' 32 ctrlShift;
790
	'D' 36 curCharSet;
791
};
792
 
793
defn
794
Scribble(addr) {
795
	complex Scribble addr;
796
	print("	pt	", addr.pt\X, "\n");
797
	print("	ppasize	", addr.ppasize, "\n");
798
	print("Stroke ps {\n");
799
	Stroke(addr.ps);
800
	print("}\n");
801
	print("	graf	", addr.graf\X, "\n");
802
	print("	capsLock	", addr.capsLock, "\n");
803
	print("	puncShift	", addr.puncShift, "\n");
804
	print("	tmpShift	", addr.tmpShift, "\n");
805
	print("	ctrlShift	", addr.ctrlShift, "\n");
806
	print("	curCharSet	", addr.curCharSet, "\n");
807
};
808
 
809
sizeof_3_ = 12;
810
aggr _3_
811
{
812
	'X' 0 ri_locale;
813
	'X' 4 ri_name;
814
	'X' 8 ri_subset;
815
};
816
 
817
defn
818
_3_(addr) {
819
	complex _3_ addr;
820
	print("	ri_locale	", addr.ri_locale\X, "\n");
821
	print("	ri_name	", addr.ri_name\X, "\n");
822
	print("	ri_subset	", addr.ri_subset\X, "\n");
823
};
824
 
825
sizeof_4_ = 20;
826
aggr _4_
827
{
828
	Rectangle 0 pr_area;
829
	'd' 16 pr_row;
830
	'd' 18 pr_col;
831
};
832
 
833
defn
834
_4_(addr) {
835
	complex _4_ addr;
836
	print("Rectangle pr_area {\n");
837
	Rectangle(addr.pr_area);
838
	print("}\n");
839
	print("	pr_row	", addr.pr_row, "\n");
840
	print("	pr_col	", addr.pr_col, "\n");
841
};
842
 
843
sizeof_ls_set = 4;
844
aggr _ls_set
845
{
846
	'X' 0 aval;
847
	'X' 0 wval;
848
};
849
 
850
defn
851
_ls_set(addr) {
852
	complex _ls_set addr;
853
	print("	aval	", addr.aval\X, "\n");
854
	print("	wval	", addr.wval\X, "\n");
855
};
856
 
857
sizeof_letterset = 8;
858
aggr _letterset
859
{
860
	'C' 0 ls_type;
861
	_ls_set 4 ls_set;
862
};
863
 
864
defn
865
_letterset(addr) {
866
	complex _letterset addr;
867
	print("	ls_type	", addr.ls_type, "\n");
868
	print("_ls_set ls_set {\n");
869
	_ls_set(addr.ls_set);
870
	print("}\n");
871
};
872
 
873
sizeof_5_ = 4;
874
aggr _5_
875
{
876
	'X' 0 gval;
877
	'X' 0 aval;
878
	'X' 0 wval;
879
	'X' 0 rcval;
880
};
881
 
882
defn
883
_5_(addr) {
884
	complex _5_ addr;
885
	print("	gval	", addr.gval\X, "\n");
886
	print("	aval	", addr.aval\X, "\n");
887
	print("	wval	", addr.wval\X, "\n");
888
	print("	rcval	", addr.rcval\X, "\n");
889
};
890
 
891
sizeofrec_element = 12;
892
aggr rec_element
893
{
894
	'C' 0 re_type;
895
	_5_ 4 re_result;
896
	'b' 8 re_conf;
897
};
898
 
899
defn
900
rec_element(addr) {
901
	complex rec_element addr;
902
	print("	re_type	", addr.re_type, "\n");
903
	print("_5_ re_result {\n");
904
	_5_(addr.re_result);
905
	print("}\n");
906
	print("	re_conf	", addr.re_conf, "\n");
907
};
908
 
909
sizeofrec_alternative = 20;
910
aggr rec_alternative
911
{
912
	rec_element 0 ra_elem;
913
	'U' 12 ra_nalter;
914
	'A' rec_alternative 16 ra_next;
915
};
916
 
917
defn
918
rec_alternative(addr) {
919
	complex rec_alternative addr;
920
	print("rec_element ra_elem {\n");
921
	rec_element(addr.ra_elem);
922
	print("}\n");
923
	print("	ra_nalter	", addr.ra_nalter, "\n");
924
	print("	ra_next	", addr.ra_next\X, "\n");
925
};
926
 
927
sizeofgesture = 36;
928
aggr gesture
929
{
930
	'X' 0 g_name;
931
	'U' 4 g_nhs;
932
	'A' pen_point 8 g_hspots;
933
	Rectangle 12 g_bbox;
934
	'X' 28 g_action;
935
	'X' 32 g_wsinfo;
936
};
937
 
938
defn
939
gesture(addr) {
940
	complex gesture addr;
941
	print("	g_name	", addr.g_name\X, "\n");
942
	print("	g_nhs	", addr.g_nhs, "\n");
943
	print("	g_hspots	", addr.g_hspots\X, "\n");
944
	print("Rectangle g_bbox {\n");
945
	Rectangle(addr.g_bbox);
946
	print("}\n");
947
	print("	g_action	", addr.g_action\X, "\n");
948
	print("	g_wsinfo	", addr.g_wsinfo\X, "\n");
949
};
950
 
951
sizeofrec_correlation = 28;
952
aggr rec_correlation
953
{
954
	rec_element 0 ro_elem;
955
	'U' 12 ro_nstrokes;
956
	'A' Stroke 16 ro_strokes;
957
	'X' 20 ro_start;
958
	'X' 24 ro_stop;
959
};
960
 
961
defn
962
rec_correlation(addr) {
963
	complex rec_correlation addr;
964
	print("rec_element ro_elem {\n");
965
	rec_element(addr.ro_elem);
966
	print("}\n");
967
	print("	ro_nstrokes	", addr.ro_nstrokes, "\n");
968
	print("	ro_strokes	", addr.ro_strokes\X, "\n");
969
	print("	ro_start	", addr.ro_start\X, "\n");
970
	print("	ro_stop	", addr.ro_stop\X, "\n");
971
};
972
 
973
sizeof_wordset = 12;
974
aggr _wordset
975
{
976
	'X' 0 ws_pathname;
977
	'X' 4 ws_recognizer;
978
	'X' 8 ws_internal;
979
};
980
 
981
defn
982
_wordset(addr) {
983
	complex _wordset addr;
984
	print("	ws_pathname	", addr.ws_pathname\X, "\n");
985
	print("	ws_recognizer	", addr.ws_recognizer\X, "\n");
986
	print("	ws_internal	", addr.ws_internal\X, "\n");
987
};
988
 
989
sizeof_Recognizer = 88;
990
aggr _Recognizer
991
{
992
	'U' 0 recognizer_magic;
993
	'X' 4 recognizer_version;
994
	'A' _3_ 8 recognizer_info;
995
	'X' 12 recognizer_specific;
996
	'X' 16 recognizer_load_state;
997
	'X' 20 recognizer_save_state;
998
	'X' 24 recognizer_error;
999
	'X' 28 recognizer_load_dictionary;
1000
	'X' 32 recognizer_save_dictionary;
1001
	'X' 36 recognizer_free_dictionary;
1002
	'X' 40 recognizer_add_to_dictionary;
1003
	'X' 44 recognizer_delete_from_dictionary;
1004
	'X' 48 recognizer_set_context;
1005
	'X' 52 recognizer_get_context;
1006
	'X' 56 recognizer_clear;
1007
	'X' 60 recognizer_get_buffer;
1008
	'X' 64 recognizer_set_buffer;
1009
	'X' 68 recognizer_translate;
1010
	'X' 72 recognizer_get_extension_functions;
1011
	'X' 76 recognizer_get_gesture_names;
1012
	'X' 80 recognizer_set_gesture_action;
1013
	'U' 84 recognizer_end_magic;
1014
};
1015
 
1016
defn
1017
_Recognizer(addr) {
1018
	complex _Recognizer addr;
1019
	print("	recognizer_magic	", addr.recognizer_magic, "\n");
1020
	print("	recognizer_version	", addr.recognizer_version\X, "\n");
1021
	print("	recognizer_info	", addr.recognizer_info\X, "\n");
1022
	print("	recognizer_specific	", addr.recognizer_specific\X, "\n");
1023
	print("	recognizer_load_state	", addr.recognizer_load_state\X, "\n");
1024
	print("	recognizer_save_state	", addr.recognizer_save_state\X, "\n");
1025
	print("	recognizer_error	", addr.recognizer_error\X, "\n");
1026
	print("	recognizer_load_dictionary	", addr.recognizer_load_dictionary\X, "\n");
1027
	print("	recognizer_save_dictionary	", addr.recognizer_save_dictionary\X, "\n");
1028
	print("	recognizer_free_dictionary	", addr.recognizer_free_dictionary\X, "\n");
1029
	print("	recognizer_add_to_dictionary	", addr.recognizer_add_to_dictionary\X, "\n");
1030
	print("	recognizer_delete_from_dictionary	", addr.recognizer_delete_from_dictionary\X, "\n");
1031
	print("	recognizer_set_context	", addr.recognizer_set_context\X, "\n");
1032
	print("	recognizer_get_context	", addr.recognizer_get_context\X, "\n");
1033
	print("	recognizer_clear	", addr.recognizer_clear\X, "\n");
1034
	print("	recognizer_get_buffer	", addr.recognizer_get_buffer\X, "\n");
1035
	print("	recognizer_set_buffer	", addr.recognizer_set_buffer\X, "\n");
1036
	print("	recognizer_translate	", addr.recognizer_translate\X, "\n");
1037
	print("	recognizer_get_extension_functions	", addr.recognizer_get_extension_functions\X, "\n");
1038
	print("	recognizer_get_gesture_names	", addr.recognizer_get_gesture_names\X, "\n");
1039
	print("	recognizer_set_gesture_action	", addr.recognizer_set_gesture_action\X, "\n");
1040
	print("	recognizer_end_magic	", addr.recognizer_end_magic, "\n");
1041
};
1042
 
1043
sizeofPointList = 20;
1044
aggr PointList
1045
{
1046
	{
1047
	'U' 0 npts;
1048
	'A' pen_point 4 pts;
1049
	};
1050
	'D' 8 xrange;
1051
	'D' 12 yrange;
1052
	'A' PointList 16 next;
1053
};
1054
 
1055
defn
1056
PointList(addr) {
1057
	complex PointList addr;
1058
	print("Stroke {\n");
1059
		Stroke(addr+0);
1060
	print("}\n");
1061
	print("	xrange	", addr.xrange, "\n");
1062
	print("	yrange	", addr.yrange, "\n");
1063
	print("	next	", addr.next\X, "\n");
1064
};
1065
 
1066
sizeof_6_ = 1608;
1067
aggr _6_
1068
{
1069
	'X' 0 file_name;
1070
	'D' 4 nclasses;
1071
	'a' 8 ex;
1072
	'a' 408 cnames;
1073
	'a' 808 canonex;
1074
	'a' 1208 dompts;
1075
};
1076
 
1077
defn
1078
_6_(addr) {
1079
	complex _6_ addr;
1080
	print("	file_name	", addr.file_name\X, "\n");
1081
	print("	nclasses	", addr.nclasses, "\n");
1082
	print("	ex	", addr.ex, "\n");
1083
	print("	cnames	", addr.cnames, "\n");
1084
	print("	canonex	", addr.canonex, "\n");
1085
	print("	dompts	", addr.dompts, "\n");
1086
};
1087
 
1088
sizeof_7_ = 1612;
1089
aggr _7_
1090
{
1091
	'U' 0 li_magic;
1092
	_6_ 4 li_rc;
1093
};
1094
 
1095
defn
1096
_7_(addr) {
1097
	complex _7_ addr;
1098
	print("	li_magic	", addr.li_magic, "\n");
1099
	print("_6_ li_rc {\n");
1100
	_6_(addr.li_rc);
1101
	print("}\n");
1102
};
1103
 
1104
complex PointList add_example:l;
1105
complex pen_point add_example:pts;
1106
complex pen_point add_example:lpts;
1107
complex PointList add_example:p;
1108
complex PointList delete_examples:l;
1109
complex PointList delete_examples:p;
1110
complex _6_ recognize_internal:rec;
1111
complex Stroke recognize_internal:str;
1112
complex PointList recognize_internal:stroke;
1113
complex _2_ read_classifier_points:fd;
1114
complex PointList read_classifier_points:ex;
1115
complex pen_point read_classifier_points:pts;
1116
complex _2_ read_classifier:fd;
1117
complex _6_ read_classifier:rc;
1118
complex _Recognizer recognizer_getClasses:r;
1119
complex _7_ recognizer_getClasses:rec;
1120
complex _Recognizer isa_li:r;
1121
complex _Recognizer li_recognizer_get_example:r;
1122
complex pen_point li_recognizer_get_example:points;
1123
complex _7_ li_recognizer_get_example:rec;
1124
complex PointList li_recognizer_get_example:pl;
1125
complex _Recognizer li_recognizer_load:r;
1126
complex _2_ li_recognizer_load:fd;
1127
complex _7_ li_recognizer_load:rec;
1128
complex _6_ li_recognizer_load:rc;
1129
complex _Recognizer li_recognizer_error:rec;
1130
complex _Recognizer li_recognizer_clear:r;
1131
complex _7_ li_recognizer_clear:rec;
1132
complex _Recognizer li_recognizer_translate:r;
1133
complex Stroke li_recognizer_translate:tps;
1134
complex rec_alternative li_recognizer_translate:ret;
1135
complex _7_ li_recognizer_translate:rec;
1136
complex _6_ li_recognizer_translate:rc;
1137
complex _Recognizer li_recognizer_get_extension_functions:rec;
1138
complex _3_ __recognizer_internal_initialize:ri;
1139
complex _Recognizer __recognizer_internal_initialize:r;
1140
complex _7_ __recognizer_internal_initialize:rec;
1141
complex _6_ free_rClassifier:rc;
1142
complex _Recognizer __recognizer_internal_finalize:r;
1143
complex _7_ __recognizer_internal_finalize:rec;
1144
sizeofRegionList = 16;
1145
aggr RegionList
1146
{
1147
	'D' 0 start;
1148
	'D' 4 end;
1149
	'D' 8 type;
1150
	'A' RegionList 12 next;
1151
};
1152
 
1153
defn
1154
RegionList(addr) {
1155
	complex RegionList addr;
1156
	print("	start	", addr.start, "\n");
1157
	print("	end	", addr.end, "\n");
1158
	print("	type	", addr.type, "\n");
1159
	print("	next	", addr.next\X, "\n");
1160
};
1161
 
1162
complex _6_ lialg_initialize:rec;
1163
complex _6_ lialg_recognize_stroke:rec;
1164
complex PointList lialg_recognize_stroke:stroke;
1165
complex PointList lialg_recognize_stroke:input_dompts;
1166
complex PointList lialg_recognize_stroke:curr_dompts;
1167
complex PointList lialg_preprocess_stroke:points;
1168
complex PointList lialg_compute_dominant_points:points;
1169
complex PointList lialg_compute_dominant_points:ipts;
1170
complex RegionList lialg_compute_dominant_points:regions;
1171
complex PointList lialg_compute_dominant_points:dpts;
1172
complex RegionList lialg_compute_dominant_points:curr;
1173
complex RegionList lialg_compute_dominant_points:next;
1174
complex PointList lialg_interpolate_points:points;
1175
complex PointList lialg_interpolate_points:newpts;
1176
complex pen_point lialg_interpolate_points:pta;
1177
complex pen_point lialg_interpolate_points:ptb;
1178
complex pen_point lialg_interpolate_points:startpt;
1179
complex pen_point lialg_interpolate_points:endpt;
1180
complex pen_point lialg_bresline:startpt;
1181
complex pen_point lialg_bresline:endpt;
1182
complex PointList lialg_bresline:newpts;
1183
complex PointList lialg_compute_chain_code:pts;
1184
complex pen_point lialg_compute_chain_code:startpt;
1185
complex pen_point lialg_compute_chain_code:endpt;
1186
complex PointList lialg_compute_unit_chain_code:pts;
1187
complex pen_point lialg_compute_unit_chain_code:startpt;
1188
complex pen_point lialg_compute_unit_chain_code:endpt;
1189
complex PointList lialg_compute_regions:pts;
1190
complex RegionList lialg_compute_regions:regions;
1191
complex RegionList lialg_compute_regions:curr_reg;
1192
complex RegionList lialg_compute_regions:next_reg;
1193
complex RegionList lialg_compute_regions:next_reg;
1194
complex RegionList lialg_compute_regions:tmp;
1195
complex RegionList lialg_compute_regions:prev_reg;
1196
complex RegionList lialg_compute_regions:saved_next;
1197
complex PointList lialg_compute_dompts:pts;
1198
complex RegionList lialg_compute_dompts:regions;
1199
complex PointList lialg_compute_dompts:dpts;
1200
complex RegionList lialg_compute_dompts:r;
1201
complex RegionList lialg_compute_dompts:curr;
1202
complex PointList lialg_compute_contour_angle_set:pts;
1203
complex RegionList lialg_compute_contour_angle_set:regions;
1204
complex RegionList lialg_compute_contour_angle_set:curr_reg;
1205
complex PointList lialg_score_stroke:input_dompts;
1206
complex PointList lialg_score_stroke:curr_dompts;
1207
complex PointList lialg_compute_similarity:input_dompts;
1208
complex PointList lialg_compute_similarity:curr_dompts;
1209
complex PointList lialg_compute_similarity:A;
1210
complex PointList lialg_compute_similarity:B;
1211
complex PointList lialg_compute_distance:input_dompts;
1212
complex PointList lialg_compute_distance:curr_dompts;
1213
complex PointList lialg_compute_distance:A;
1214
complex PointList lialg_compute_distance:B;
1215
complex _6_ lialg_read_classifier_digest:rec;
1216
complex _2_ lialg_read_classifier_digest:fp;
1217
complex PointList lialg_read_classifier_digest:dpts;
1218
complex _6_ lialg_canonicalize_examples:rec;
1219
complex PointList lialg_canonicalize_examples:pts;
1220
complex PointList lialg_canonicalize_examples:tmp;
1221
complex PointList lialg_canonicalize_examples:avg;
1222
complex PointList lialg_canonicalize_example_stroke:points;
1223
complex PointList lialg_compute_equipoints:points;
1224
complex pen_point lialg_compute_equipoints:equipoints;
1225
complex PointList lialg_compute_pathlen:points;
1226
complex PointList lialg_compute_pathlen_subset:points;
1227
complex PointList lialg_filter_points:points;
1228
complex pen_point lialg_filter_points:filtered_pts;
1229
complex PointList lialg_translate_points:points;
1230
complex PointList lialg_get_bounding_box:points;
1231
complex pen_point lialg_get_bounding_box:pt;