Blob


1 sizeof_1_ = 8;
2 aggr _1_
3 {
4 'D' 0 hlength;
5 'D' 4 llength;
6 };
8 defn
9 _1_(addr) {
10 complex _1_ addr;
11 print(" hlength ", addr.hlength, "\n");
12 print(" llength ", addr.llength, "\n");
13 };
15 sizeof_2_ = 8;
16 aggr _2_
17 {
18 'V' 0 length;
19 {
20 'D' 0 hlength;
21 'D' 4 llength;
22 };
23 };
25 defn
26 _2_(addr) {
27 complex _2_ addr;
28 print(" length ", addr.length, "\n");
29 print("_1_ {\n");
30 _1_(addr+0);
31 print("}\n");
32 };
34 UTFmax = 3;
35 Runesync = 128;
36 Runeself = 128;
37 Runeerror = 128;
38 sizeofFconv = 24;
39 aggr Fconv
40 {
41 'X' 0 out;
42 'X' 4 eout;
43 'D' 8 f1;
44 'D' 12 f2;
45 'D' 16 f3;
46 'D' 20 chr;
47 };
49 defn
50 Fconv(addr) {
51 complex Fconv addr;
52 print(" out ", addr.out\X, "\n");
53 print(" eout ", addr.eout\X, "\n");
54 print(" f1 ", addr.f1, "\n");
55 print(" f2 ", addr.f2, "\n");
56 print(" f3 ", addr.f3, "\n");
57 print(" chr ", addr.chr, "\n");
58 };
60 sizeofTm = 40;
61 aggr Tm
62 {
63 'D' 0 sec;
64 'D' 4 min;
65 'D' 8 hour;
66 'D' 12 mday;
67 'D' 16 mon;
68 'D' 20 year;
69 'D' 24 wday;
70 'D' 28 yday;
71 'a' 32 zone;
72 'D' 36 tzoff;
73 };
75 defn
76 Tm(addr) {
77 complex Tm addr;
78 print(" sec ", addr.sec, "\n");
79 print(" min ", addr.min, "\n");
80 print(" hour ", addr.hour, "\n");
81 print(" mday ", addr.mday, "\n");
82 print(" mon ", addr.mon, "\n");
83 print(" year ", addr.year, "\n");
84 print(" wday ", addr.wday, "\n");
85 print(" yday ", addr.yday, "\n");
86 print(" zone ", addr.zone, "\n");
87 print(" tzoff ", addr.tzoff, "\n");
88 };
90 PNPROC = 1;
91 PNGROUP = 2;
92 sizeofLock = 4;
93 aggr Lock
94 {
95 'D' 0 val;
96 };
98 defn
99 Lock(addr) {
100 complex Lock addr;
101 print(" val ", addr.val, "\n");
102 };
104 sizeofQLp = 12;
105 aggr QLp
107 'D' 0 inuse;
108 'A' QLp 4 next;
109 'C' 8 state;
110 };
112 defn
113 QLp(addr) {
114 complex QLp addr;
115 print(" inuse ", addr.inuse, "\n");
116 print(" next ", addr.next\X, "\n");
117 print(" state ", addr.state, "\n");
118 };
120 sizeofQLock = 16;
121 aggr QLock
123 Lock 0 lock;
124 'D' 4 locked;
125 'A' QLp 8 $head;
126 'A' QLp 12 $tail;
127 };
129 defn
130 QLock(addr) {
131 complex QLock addr;
132 print("Lock lock {\n");
133 Lock(addr.lock);
134 print("}\n");
135 print(" locked ", addr.locked, "\n");
136 print(" $head ", addr.$head\X, "\n");
137 print(" $tail ", addr.$tail\X, "\n");
138 };
140 sizeofRWLock = 20;
141 aggr RWLock
143 Lock 0 lock;
144 'D' 4 readers;
145 'D' 8 writer;
146 'A' QLp 12 $head;
147 'A' QLp 16 $tail;
148 };
150 defn
151 RWLock(addr) {
152 complex RWLock addr;
153 print("Lock lock {\n");
154 Lock(addr.lock);
155 print("}\n");
156 print(" readers ", addr.readers, "\n");
157 print(" writer ", addr.writer, "\n");
158 print(" $head ", addr.$head\X, "\n");
159 print(" $tail ", addr.$tail\X, "\n");
160 };
162 RFNAMEG = 1;
163 RFENVG = 2;
164 RFFDG = 4;
165 RFNOTEG = 8;
166 RFPROC = 16;
167 RFMEM = 32;
168 RFNOWAIT = 64;
169 RFCNAMEG = 1024;
170 RFCENVG = 2048;
171 RFCFDG = 4096;
172 RFREND = 8192;
173 sizeofQid = 8;
174 aggr Qid
176 'U' 0 path;
177 'U' 4 vers;
178 };
180 defn
181 Qid(addr) {
182 complex Qid addr;
183 print(" path ", addr.path, "\n");
184 print(" vers ", addr.vers, "\n");
185 };
187 sizeofDir = 116;
188 aggr Dir
190 'a' 0 name;
191 'a' 28 uid;
192 'a' 56 gid;
193 Qid 84 qid;
194 'U' 92 mode;
195 'D' 96 atime;
196 'D' 100 mtime;
198 'V' 104 length;
200 'D' 104 hlength;
201 'D' 108 llength;
202 };
203 };
204 'u' 112 type;
205 'u' 114 dev;
206 };
208 defn
209 Dir(addr) {
210 complex Dir addr;
211 print(" name ", addr.name, "\n");
212 print(" uid ", addr.uid, "\n");
213 print(" gid ", addr.gid, "\n");
214 print("Qid qid {\n");
215 Qid(addr.qid);
216 print("}\n");
217 print(" mode ", addr.mode, "\n");
218 print(" atime ", addr.atime, "\n");
219 print(" mtime ", addr.mtime, "\n");
220 print("_2_ {\n");
221 _2_(addr+104);
222 print("}\n");
223 print(" type ", addr.type, "\n");
224 print(" dev ", addr.dev, "\n");
225 };
227 sizeofWaitmsg = 112;
228 aggr Waitmsg
230 'a' 0 pid;
231 'a' 12 time;
232 'a' 48 msg;
233 };
235 defn
236 Waitmsg(addr) {
237 complex Waitmsg addr;
238 print(" pid ", addr.pid, "\n");
239 print(" time ", addr.time, "\n");
240 print(" msg ", addr.msg, "\n");
241 };
243 DBlack = 255;
244 DBlue = 201;
245 DRed = 15;
246 DYellow = 3;
247 DGreen = 192;
248 DWhite = 0;
249 Displaybufsize = 8000;
250 ICOSSCALE = 1024;
251 Borderwidth = 4;
252 Refbackup = 0;
253 Refnone = 1;
254 Refmesg = 2;
255 Endsquare = 0;
256 Enddisc = 1;
257 Endarrow = 2;
258 Endmask = 31;
259 sizeofPoint = 8;
260 aggr Point
262 'D' 0 x;
263 'D' 4 y;
264 };
266 defn
267 Point(addr) {
268 complex Point addr;
269 print(" x ", addr.x, "\n");
270 print(" y ", addr.y, "\n");
271 };
273 sizeofRectangle = 16;
274 aggr Rectangle
276 Point 0 min;
277 Point 8 max;
278 };
280 defn
281 Rectangle(addr) {
282 complex Rectangle addr;
283 print("Point min {\n");
284 Point(addr.min);
285 print("}\n");
286 print("Point max {\n");
287 Point(addr.max);
288 print("}\n");
289 };
291 sizeofScreen = 16;
292 aggr Screen
294 'X' 0 display;
295 'D' 4 id;
296 'X' 8 image;
297 'X' 12 fill;
298 };
300 defn
301 Screen(addr) {
302 complex Screen addr;
303 print(" display ", addr.display\X, "\n");
304 print(" id ", addr.id, "\n");
305 print(" image ", addr.image\X, "\n");
306 print(" fill ", addr.fill\X, "\n");
307 };
309 sizeofDisplay = 8156;
310 aggr Display
312 QLock 0 qlock;
313 'D' 16 dirno;
314 'D' 20 fd;
315 'D' 24 reffd;
316 'D' 28 ctlfd;
317 'D' 32 imageid;
318 'D' 36 $local;
319 'D' 40 ldepth;
320 'X' 44 error;
321 'X' 48 devdir;
322 'X' 52 windir;
323 'a' 56 oldlabel;
324 'U' 120 dataqid;
325 'X' 124 ones;
326 'X' 128 zeros;
327 'X' 132 image;
328 'a' 136 buf;
329 'X' 8140 bufp;
330 'X' 8144 defaultfont;
331 'X' 8148 defaultsubfont;
332 'X' 8152 windows;
333 };
335 defn
336 Display(addr) {
337 complex Display addr;
338 print("QLock qlock {\n");
339 QLock(addr.qlock);
340 print("}\n");
341 print(" dirno ", addr.dirno, "\n");
342 print(" fd ", addr.fd, "\n");
343 print(" reffd ", addr.reffd, "\n");
344 print(" ctlfd ", addr.ctlfd, "\n");
345 print(" imageid ", addr.imageid, "\n");
346 print(" $local ", addr.$local, "\n");
347 print(" ldepth ", addr.ldepth, "\n");
348 print(" error ", addr.error\X, "\n");
349 print(" devdir ", addr.devdir\X, "\n");
350 print(" windir ", addr.windir\X, "\n");
351 print(" oldlabel ", addr.oldlabel, "\n");
352 print(" dataqid ", addr.dataqid, "\n");
353 print(" ones ", addr.ones\X, "\n");
354 print(" zeros ", addr.zeros\X, "\n");
355 print(" image ", addr.image\X, "\n");
356 print(" buf ", addr.buf, "\n");
357 print(" bufp ", addr.bufp\X, "\n");
358 print(" defaultfont ", addr.defaultfont\X, "\n");
359 print(" defaultsubfont ", addr.defaultsubfont\X, "\n");
360 print(" windows ", addr.windows\X, "\n");
361 };
363 sizeofImage = 56;
364 aggr Image
366 'A' Display 0 display;
367 'D' 4 id;
368 Rectangle 8 r;
369 Rectangle 24 clipr;
370 'D' 40 ldepth;
371 'D' 44 repl;
372 'A' Screen 48 screen;
373 'A' Image 52 next;
374 };
376 defn
377 Image(addr) {
378 complex Image addr;
379 print(" display ", addr.display\X, "\n");
380 print(" id ", addr.id, "\n");
381 print("Rectangle r {\n");
382 Rectangle(addr.r);
383 print("}\n");
384 print("Rectangle clipr {\n");
385 Rectangle(addr.clipr);
386 print("}\n");
387 print(" ldepth ", addr.ldepth, "\n");
388 print(" repl ", addr.repl, "\n");
389 print(" screen ", addr.screen\X, "\n");
390 print(" next ", addr.next\X, "\n");
391 };
393 sizeofRGB = 12;
394 aggr RGB
396 'U' 0 red;
397 'U' 4 green;
398 'U' 8 blue;
399 };
401 defn
402 RGB(addr) {
403 complex RGB addr;
404 print(" red ", addr.red, "\n");
405 print(" green ", addr.green, "\n");
406 print(" blue ", addr.blue, "\n");
407 };
409 sizeofFontchar = 8;
410 aggr Fontchar
412 'D' 0 x;
413 'b' 4 top;
414 'b' 5 bottom;
415 'C' 6 left;
416 'b' 7 width;
417 };
419 defn
420 Fontchar(addr) {
421 complex Fontchar addr;
422 print(" x ", addr.x, "\n");
423 print(" top ", addr.top, "\n");
424 print(" bottom ", addr.bottom, "\n");
425 print(" left ", addr.left, "\n");
426 print(" width ", addr.width, "\n");
427 };
429 sizeofSubfont = 16;
430 aggr Subfont
432 'X' 0 name;
433 'd' 4 n;
434 'b' 6 height;
435 'C' 7 ascent;
436 'A' Fontchar 8 info;
437 'A' Image 12 bits;
438 };
440 defn
441 Subfont(addr) {
442 complex Subfont addr;
443 print(" name ", addr.name\X, "\n");
444 print(" n ", addr.n, "\n");
445 print(" height ", addr.height, "\n");
446 print(" ascent ", addr.ascent, "\n");
447 print(" info ", addr.info\X, "\n");
448 print(" bits ", addr.bits\X, "\n");
449 };
451 LOG2NFCACHE = 6;
452 NFCACHE = 64;
453 NFLOOK = 5;
454 NFSUBF = 2;
455 MAXFCACHE = 1029;
456 MAXSUBF = 50;
457 DSUBF = 4;
458 SUBFAGE = 10000;
459 CACHEAGE = 10000;
460 sizeofCachefont = 16;
461 aggr Cachefont
463 'u' 0 min;
464 'u' 2 max;
465 'D' 4 offset;
466 'X' 8 name;
467 'X' 12 subfontname;
468 };
470 defn
471 Cachefont(addr) {
472 complex Cachefont addr;
473 print(" min ", addr.min, "\n");
474 print(" max ", addr.max, "\n");
475 print(" offset ", addr.offset, "\n");
476 print(" name ", addr.name\X, "\n");
477 print(" subfontname ", addr.subfontname\X, "\n");
478 };
480 sizeofCacheinfo = 8;
481 aggr Cacheinfo
483 'u' 0 x;
484 'b' 2 width;
485 'C' 3 left;
486 'u' 4 value;
487 'u' 6 age;
488 };
490 defn
491 Cacheinfo(addr) {
492 complex Cacheinfo addr;
493 print(" x ", addr.x, "\n");
494 print(" width ", addr.width, "\n");
495 print(" left ", addr.left, "\n");
496 print(" value ", addr.value, "\n");
497 print(" age ", addr.age, "\n");
498 };
500 sizeofCachesubf = 12;
501 aggr Cachesubf
503 'U' 0 age;
504 'A' Cachefont 4 cf;
505 'A' Subfont 8 f;
506 };
508 defn
509 Cachesubf(addr) {
510 complex Cachesubf addr;
511 print(" age ", addr.age, "\n");
512 print(" cf ", addr.cf\X, "\n");
513 print(" f ", addr.f\X, "\n");
514 };
516 sizeofFont = 52;
517 aggr Font
519 'X' 0 name;
520 'A' Display 4 display;
521 'd' 8 height;
522 'd' 10 ascent;
523 'D' 12 maxldepth;
524 'd' 16 width;
525 'd' 18 ldepth;
526 'd' 20 nsub;
527 'U' 24 age;
528 'D' 28 ncache;
529 'D' 32 nsubf;
530 'A' Cacheinfo 36 cache;
531 'A' Cachesubf 40 subf;
532 'A' Cachefont 44 sub;
533 'A' Image 48 cacheimage;
534 };
536 defn
537 Font(addr) {
538 complex Font addr;
539 print(" name ", addr.name\X, "\n");
540 print(" display ", addr.display\X, "\n");
541 print(" height ", addr.height, "\n");
542 print(" ascent ", addr.ascent, "\n");
543 print(" maxldepth ", addr.maxldepth, "\n");
544 print(" width ", addr.width, "\n");
545 print(" ldepth ", addr.ldepth, "\n");
546 print(" nsub ", addr.nsub, "\n");
547 print(" age ", addr.age, "\n");
548 print(" ncache ", addr.ncache, "\n");
549 print(" nsubf ", addr.nsubf, "\n");
550 print(" cache ", addr.cache\X, "\n");
551 print(" subf ", addr.subf\X, "\n");
552 print(" sub ", addr.sub\X, "\n");
553 print(" cacheimage ", addr.cacheimage\X, "\n");
554 };
556 complex Point ZP;
557 complex Rectangle ZR;
558 complex Display display;
559 complex Font font;
560 complex Image screen;
561 sizeofAlt = 20;
562 aggr Alt
564 'X' 0 c;
565 'X' 4 v;
566 'D' 8 op;
567 'X' 12 tag;
568 'U' 16 q;
569 };
571 defn
572 Alt(addr) {
573 complex Alt addr;
574 print(" c ", addr.c\X, "\n");
575 print(" v ", addr.v\X, "\n");
576 print(" op ", addr.op, "\n");
577 print(" tag ", addr.tag\X, "\n");
578 print(" q ", addr.q, "\n");
579 };
581 sizeofRef = 4;
582 aggr Ref
584 'D' 0 ref;
585 };
587 defn
588 Ref(addr) {
589 complex Ref addr;
590 print(" ref ", addr.ref, "\n");
591 };
593 sizeofCursor = 72;
594 aggr Cursor
596 Point 0 offset;
597 'a' 8 clr;
598 'a' 40 set;
599 };
601 defn
602 Cursor(addr) {
603 complex Cursor addr;
604 print("Point offset {\n");
605 Point(addr.offset);
606 print("}\n");
607 print(" clr ", addr.clr, "\n");
608 print(" set ", addr.set, "\n");
609 };
611 sizeofMouse = 16;
612 aggr Mouse
614 'D' 0 buttons;
615 Point 4 xy;
616 'U' 12 msec;
617 };
619 defn
620 Mouse(addr) {
621 complex Mouse addr;
622 print(" buttons ", addr.buttons, "\n");
623 print("Point xy {\n");
624 Point(addr.xy);
625 print("}\n");
626 print(" msec ", addr.msec, "\n");
627 };
629 sizeofMousectl = 44;
630 aggr Mousectl
633 'D' 0 buttons;
634 Point 4 xy;
635 'U' 12 msec;
636 };
637 'X' 16 c;
638 'X' 20 reshapec;
639 'X' 24 file;
640 'D' 28 mfd;
641 'D' 32 cfd;
642 'D' 36 pid;
643 'A' Image 40 image;
644 };
646 defn
647 Mousectl(addr) {
648 complex Mousectl addr;
649 print("Mouse {\n");
650 Mouse(addr+0);
651 print("}\n");
652 print(" c ", addr.c\X, "\n");
653 print(" reshapec ", addr.reshapec\X, "\n");
654 print(" file ", addr.file\X, "\n");
655 print(" mfd ", addr.mfd, "\n");
656 print(" cfd ", addr.cfd, "\n");
657 print(" pid ", addr.pid, "\n");
658 print(" image ", addr.image\X, "\n");
659 };
661 sizeofMenu = 12;
662 aggr Menu
664 'X' 0 item;
665 'X' 4 gen;
666 'D' 8 lasthit;
667 };
669 defn
670 Menu(addr) {
671 complex Menu addr;
672 print(" item ", addr.item\X, "\n");
673 print(" gen ", addr.gen\X, "\n");
674 print(" lasthit ", addr.lasthit, "\n");
675 };
677 sizeofKeyboardctl = 20;
678 aggr Keyboardctl
680 'X' 0 c;
681 'X' 4 file;
682 'D' 8 consfd;
683 'D' 12 ctlfd;
684 'D' 16 pid;
685 };
687 defn
688 Keyboardctl(addr) {
689 complex Keyboardctl addr;
690 print(" c ", addr.c\X, "\n");
691 print(" file ", addr.file\X, "\n");
692 print(" consfd ", addr.consfd, "\n");
693 print(" ctlfd ", addr.ctlfd, "\n");
694 print(" pid ", addr.pid, "\n");
695 };
697 BACK = 0;
698 HIGH = 1;
699 BORD = 2;
700 TEXT = 3;
701 HTEXT = 4;
702 NCOL = 5;
703 sizeof_3_ = 4;
704 aggr _3_
706 'd' 0 bc;
707 'd' 2 minwid;
708 };
710 defn
711 _3_(addr) {
712 complex _3_ addr;
713 print(" bc ", addr.bc, "\n");
714 print(" minwid ", addr.minwid, "\n");
715 };
717 sizeof_4_ = 4;
718 aggr _4_
720 'X' 0 ptr;
722 'd' 0 bc;
723 'd' 2 minwid;
724 };
725 };
727 defn
728 _4_(addr) {
729 complex _4_ addr;
730 print(" ptr ", addr.ptr\X, "\n");
731 print("_3_ {\n");
732 _3_(addr+0);
733 print("}\n");
734 };
736 sizeofFrbox = 12;
737 aggr Frbox
739 'D' 0 wid;
740 'D' 4 nrune;
742 'X' 8 ptr;
744 'd' 8 bc;
745 'd' 10 minwid;
746 };
747 };
748 };
750 defn
751 Frbox(addr) {
752 complex Frbox addr;
753 print(" wid ", addr.wid, "\n");
754 print(" nrune ", addr.nrune, "\n");
755 print("_4_ {\n");
756 _4_(addr+8);
757 print("}\n");
758 };
760 complex Font font;
761 complex Display display;
762 sizeofFrame = 108;
763 aggr Frame
765 'A' Font 0 font;
766 'A' Display 4 display;
767 'A' Image 8 b;
768 'a' 12 cols;
769 Rectangle 32 r;
770 Rectangle 48 entire;
771 'X' 64 scroll;
772 'A' Frbox 68 box;
773 'U' 72 p0;
774 'U' 76 p1;
775 'u' 80 nbox;
776 'u' 82 nalloc;
777 'u' 84 maxtab;
778 'u' 86 nchars;
779 'u' 88 nlines;
780 'u' 90 maxlines;
781 'u' 92 lastlinefull;
782 'u' 94 modified;
783 'A' Image 96 tick;
784 'A' Image 100 tickback;
785 'D' 104 ticked;
786 };
788 defn
789 Frame(addr) {
790 complex Frame addr;
791 print(" font ", addr.font\X, "\n");
792 print(" display ", addr.display\X, "\n");
793 print(" b ", addr.b\X, "\n");
794 print(" cols ", addr.cols, "\n");
795 print("Rectangle r {\n");
796 Rectangle(addr.r);
797 print("}\n");
798 print("Rectangle entire {\n");
799 Rectangle(addr.entire);
800 print("}\n");
801 print(" scroll ", addr.scroll\X, "\n");
802 print(" box ", addr.box\X, "\n");
803 print(" p0 ", addr.p0, "\n");
804 print(" p1 ", addr.p1, "\n");
805 print(" nbox ", addr.nbox, "\n");
806 print(" nalloc ", addr.nalloc, "\n");
807 print(" maxtab ", addr.maxtab, "\n");
808 print(" nchars ", addr.nchars, "\n");
809 print(" nlines ", addr.nlines, "\n");
810 print(" maxlines ", addr.maxlines, "\n");
811 print(" lastlinefull ", addr.lastlinefull, "\n");
812 print(" modified ", addr.modified, "\n");
813 print(" tick ", addr.tick\X, "\n");
814 print(" tickback ", addr.tickback\X, "\n");
815 print(" ticked ", addr.ticked, "\n");
816 };
818 None = 0;
819 Some = 1;
820 All = 2;
821 Clicktime = 1000;
822 sizeofFlayer = 172;
823 aggr Flayer
825 Frame 0 f;
826 'D' 108 origin;
827 'D' 112 p0;
828 'D' 116 p1;
829 'D' 120 click;
830 'X' 124 textfn;
831 'D' 128 user0;
832 'X' 132 user1;
833 Rectangle 136 entire;
834 Rectangle 152 scroll;
835 'D' 168 visible;
836 };
838 defn
839 Flayer(addr) {
840 complex Flayer addr;
841 print("Frame f {\n");
842 Frame(addr.f);
843 print("}\n");
844 print(" origin ", addr.origin, "\n");
845 print(" p0 ", addr.p0, "\n");
846 print(" p1 ", addr.p1, "\n");
847 print(" click ", addr.click, "\n");
848 print(" textfn ", addr.textfn\X, "\n");
849 print(" user0 ", addr.user0, "\n");
850 print(" user1 ", addr.user1\X, "\n");
851 print("Rectangle entire {\n");
852 Rectangle(addr.entire);
853 print("}\n");
854 print("Rectangle scroll {\n");
855 Rectangle(addr.scroll);
856 print("}\n");
857 print(" visible ", addr.visible, "\n");
858 };
860 Up = 0;
861 Down = 1;
862 sizeofSection = 12;
863 aggr Section
865 'D' 0 nrunes;
866 'X' 4 text;
867 'A' Section 8 next;
868 };
870 defn
871 Section(addr) {
872 complex Section addr;
873 print(" nrunes ", addr.nrunes, "\n");
874 print(" text ", addr.text\X, "\n");
875 print(" next ", addr.next\X, "\n");
876 };
878 sizeofRasp = 8;
879 aggr Rasp
881 'D' 0 nrunes;
882 'A' Section 4 sect;
883 };
885 defn
886 Rasp(addr) {
887 complex Rasp addr;
888 print(" nrunes ", addr.nrunes, "\n");
889 print(" sect ", addr.sect\X, "\n");
890 };
892 sizeofText = 876;
893 aggr Text
895 Rasp 0 rasp;
896 'd' 8 nwin;
897 'd' 10 front;
898 'u' 12 tag;
899 'C' 14 lock;
900 'a' 16 l;
901 };
903 defn
904 Text(addr) {
905 complex Text addr;
906 print("Rasp rasp {\n");
907 Rasp(addr.rasp);
908 print("}\n");
909 print(" nwin ", addr.nwin, "\n");
910 print(" front ", addr.front, "\n");
911 print(" tag ", addr.tag, "\n");
912 print(" lock ", addr.lock, "\n");
913 print(" l ", addr.l, "\n");
914 };
916 sizeofReadbuf = 8196;
917 aggr Readbuf
919 'd' 0 n;
920 'a' 2 data;
921 };
923 defn
924 Readbuf(addr) {
925 complex Readbuf addr;
926 print(" n ", addr.n, "\n");
927 print(" data ", addr.data, "\n");
928 };
930 RHost = 0;
931 RKeyboard = 1;
932 RMouse = 2;
933 RPlumb = 3;
934 RReshape = 4;
935 NRes = 5;
936 complex Cursor bullseye;
937 complex Cursor deadmouse;
938 complex Cursor lockarrow;
939 complex Cursor cursor;
940 complex Flayer which;
941 complex Flayer work;
942 complex Text cmd;
943 complex Mousectl mousectl;
944 complex Keyboardctl keyboardctl;
945 complex Mouse mousep;
946 Tversion = 0;
947 Tstartcmdfile = 1;
948 Tcheck = 2;
949 Trequest = 3;
950 Torigin = 4;
951 Tstartfile = 5;
952 Tworkfile = 6;
953 Ttype = 7;
954 Tcut = 8;
955 Tpaste = 9;
956 Tsnarf = 10;
957 Tstartnewfile = 11;
958 Twrite = 12;
959 Tclose = 13;
960 Tlook = 14;
961 Tsearch = 15;
962 Tsend = 16;
963 Tdclick = 17;
964 Tstartsnarf = 18;
965 Tsetsnarf = 19;
966 Tack = 20;
967 Texit = 21;
968 Tplumb = 22;
969 TMAX = 23;
970 Hversion = 0;
971 Hbindname = 1;
972 Hcurrent = 2;
973 Hnewname = 3;
974 Hmovname = 4;
975 Hgrow = 5;
976 Hcheck0 = 6;
977 Hcheck = 7;
978 Hunlock = 8;
979 Hdata = 9;
980 Horigin = 10;
981 Hunlockfile = 11;
982 Hsetdot = 12;
983 Hgrowdata = 13;
984 Hmoveto = 14;
985 Hclean = 15;
986 Hdirty = 16;
987 Hcut = 17;
988 Hsetpat = 18;
989 Hdelname = 19;
990 Hclose = 20;
991 Hsetsnarf = 21;
992 Hsnarflen = 22;
993 Hack = 23;
994 Hexit = 24;
995 Hplumb = 25;
996 HMAX = 26;
997 sizeofHeader = 4;
998 aggr Header
1000 'b' 0 type;
1001 'b' 1 count0;
1002 'b' 2 count1;
1003 'a' 3 data;
1006 defn
1007 Header(addr) {
1008 complex Header addr;
1009 print(" type ", addr.type, "\n");
1010 print(" count0 ", addr.count0, "\n");
1011 print(" count1 ", addr.count1, "\n");
1012 print(" data ", addr.data, "\n");
1015 complex Text cmd;
1016 complex Cursor cursor;
1017 complex Flayer which;
1018 complex Flayer work;
1019 complex Text threadmain:t;
1020 complex Rectangle threadmain:r;
1021 complex Flayer threadmain:nwhich;
1022 complex Flayer current:nw;
1023 complex Text current:t;
1024 complex Flayer closeup:l;
1025 complex Text closeup:t;
1026 complex Text findl:t;
1027 complex Flayer duplicate:l;
1028 complex Rectangle duplicate:r;
1029 complex Font duplicate:f;
1030 complex Text duplicate:t;
1031 complex Flayer duplicate:nl;
1032 complex Rectangle getr:rp;
1033 complex Point getr:p;
1034 complex Rectangle getr:r;
1035 complex Text snarf:t;
1036 complex Flayer snarf:l;
1037 complex Text cut:t;
1038 complex Flayer cut:l;
1039 complex Text paste:t;
1040 complex Flayer scrorigin:l;
1041 complex Text scrorigin:t;
1042 complex Rasp raspc:r;
1043 complex Rasp ctlw:r;
1044 complex Rasp ctlu:r;
1045 complex Flayer center:l;
1046 complex Text center:t;
1047 complex Flayer onethird:l;
1048 complex Text onethird:t;
1049 complex Rectangle onethird:s;
1050 complex Text flushtyping:t;
1051 complex Flayer type:l;
1052 complex Text type:t;
1053 complex Flayer gettext:l;
1054 complex Text gettext:t;
1055 complex Flayer scrtotal:l;