aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/samterm/syms
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2003-09-30 17:47:44 +0000
committerrsc <devnull@localhost>2003-09-30 17:47:44 +0000
commita59ea66fa99f7b6f03eac71dc0713c33f912b6ab (patch)
treecff66ffadce853f2c886d79282d879c9831c488f /src/cmd/samterm/syms
parentb822e0d8035e1c80b86d974e63bd10936a96ed2d (diff)
downloadplan9port-a59ea66fa99f7b6f03eac71dc0713c33f912b6ab.tar.gz
plan9port-a59ea66fa99f7b6f03eac71dc0713c33f912b6ab.tar.bz2
plan9port-a59ea66fa99f7b6f03eac71dc0713c33f912b6ab.zip
Initial import.
Diffstat (limited to 'src/cmd/samterm/syms')
-rw-r--r--src/cmd/samterm/syms1055
1 files changed, 1055 insertions, 0 deletions
diff --git a/src/cmd/samterm/syms b/src/cmd/samterm/syms
new file mode 100644
index 00000000..895afc67
--- /dev/null
+++ b/src/cmd/samterm/syms
@@ -0,0 +1,1055 @@
+sizeof_1_ = 8;
+aggr _1_
+{
+ 'D' 0 hlength;
+ 'D' 4 llength;
+};
+
+defn
+_1_(addr) {
+ complex _1_ addr;
+ print(" hlength ", addr.hlength, "\n");
+ print(" llength ", addr.llength, "\n");
+};
+
+sizeof_2_ = 8;
+aggr _2_
+{
+ 'V' 0 length;
+ {
+ 'D' 0 hlength;
+ 'D' 4 llength;
+ };
+};
+
+defn
+_2_(addr) {
+ complex _2_ addr;
+ print(" length ", addr.length, "\n");
+ print("_1_ {\n");
+ _1_(addr+0);
+ print("}\n");
+};
+
+UTFmax = 3;
+Runesync = 128;
+Runeself = 128;
+Runeerror = 128;
+sizeofFconv = 24;
+aggr Fconv
+{
+ 'X' 0 out;
+ 'X' 4 eout;
+ 'D' 8 f1;
+ 'D' 12 f2;
+ 'D' 16 f3;
+ 'D' 20 chr;
+};
+
+defn
+Fconv(addr) {
+ complex Fconv addr;
+ print(" out ", addr.out\X, "\n");
+ print(" eout ", addr.eout\X, "\n");
+ print(" f1 ", addr.f1, "\n");
+ print(" f2 ", addr.f2, "\n");
+ print(" f3 ", addr.f3, "\n");
+ print(" chr ", addr.chr, "\n");
+};
+
+sizeofTm = 40;
+aggr Tm
+{
+ 'D' 0 sec;
+ 'D' 4 min;
+ 'D' 8 hour;
+ 'D' 12 mday;
+ 'D' 16 mon;
+ 'D' 20 year;
+ 'D' 24 wday;
+ 'D' 28 yday;
+ 'a' 32 zone;
+ 'D' 36 tzoff;
+};
+
+defn
+Tm(addr) {
+ complex Tm addr;
+ print(" sec ", addr.sec, "\n");
+ print(" min ", addr.min, "\n");
+ print(" hour ", addr.hour, "\n");
+ print(" mday ", addr.mday, "\n");
+ print(" mon ", addr.mon, "\n");
+ print(" year ", addr.year, "\n");
+ print(" wday ", addr.wday, "\n");
+ print(" yday ", addr.yday, "\n");
+ print(" zone ", addr.zone, "\n");
+ print(" tzoff ", addr.tzoff, "\n");
+};
+
+PNPROC = 1;
+PNGROUP = 2;
+sizeofLock = 4;
+aggr Lock
+{
+ 'D' 0 val;
+};
+
+defn
+Lock(addr) {
+ complex Lock addr;
+ print(" val ", addr.val, "\n");
+};
+
+sizeofQLp = 12;
+aggr QLp
+{
+ 'D' 0 inuse;
+ 'A' QLp 4 next;
+ 'C' 8 state;
+};
+
+defn
+QLp(addr) {
+ complex QLp addr;
+ print(" inuse ", addr.inuse, "\n");
+ print(" next ", addr.next\X, "\n");
+ print(" state ", addr.state, "\n");
+};
+
+sizeofQLock = 16;
+aggr QLock
+{
+ Lock 0 lock;
+ 'D' 4 locked;
+ 'A' QLp 8 $head;
+ 'A' QLp 12 $tail;
+};
+
+defn
+QLock(addr) {
+ complex QLock addr;
+ print("Lock lock {\n");
+ Lock(addr.lock);
+ print("}\n");
+ print(" locked ", addr.locked, "\n");
+ print(" $head ", addr.$head\X, "\n");
+ print(" $tail ", addr.$tail\X, "\n");
+};
+
+sizeofRWLock = 20;
+aggr RWLock
+{
+ Lock 0 lock;
+ 'D' 4 readers;
+ 'D' 8 writer;
+ 'A' QLp 12 $head;
+ 'A' QLp 16 $tail;
+};
+
+defn
+RWLock(addr) {
+ complex RWLock addr;
+ print("Lock lock {\n");
+ Lock(addr.lock);
+ print("}\n");
+ print(" readers ", addr.readers, "\n");
+ print(" writer ", addr.writer, "\n");
+ print(" $head ", addr.$head\X, "\n");
+ print(" $tail ", addr.$tail\X, "\n");
+};
+
+RFNAMEG = 1;
+RFENVG = 2;
+RFFDG = 4;
+RFNOTEG = 8;
+RFPROC = 16;
+RFMEM = 32;
+RFNOWAIT = 64;
+RFCNAMEG = 1024;
+RFCENVG = 2048;
+RFCFDG = 4096;
+RFREND = 8192;
+sizeofQid = 8;
+aggr Qid
+{
+ 'U' 0 path;
+ 'U' 4 vers;
+};
+
+defn
+Qid(addr) {
+ complex Qid addr;
+ print(" path ", addr.path, "\n");
+ print(" vers ", addr.vers, "\n");
+};
+
+sizeofDir = 116;
+aggr Dir
+{
+ 'a' 0 name;
+ 'a' 28 uid;
+ 'a' 56 gid;
+ Qid 84 qid;
+ 'U' 92 mode;
+ 'D' 96 atime;
+ 'D' 100 mtime;
+ {
+ 'V' 104 length;
+ {
+ 'D' 104 hlength;
+ 'D' 108 llength;
+ };
+ };
+ 'u' 112 type;
+ 'u' 114 dev;
+};
+
+defn
+Dir(addr) {
+ complex Dir addr;
+ print(" name ", addr.name, "\n");
+ print(" uid ", addr.uid, "\n");
+ print(" gid ", addr.gid, "\n");
+ print("Qid qid {\n");
+ Qid(addr.qid);
+ print("}\n");
+ print(" mode ", addr.mode, "\n");
+ print(" atime ", addr.atime, "\n");
+ print(" mtime ", addr.mtime, "\n");
+ print("_2_ {\n");
+ _2_(addr+104);
+ print("}\n");
+ print(" type ", addr.type, "\n");
+ print(" dev ", addr.dev, "\n");
+};
+
+sizeofWaitmsg = 112;
+aggr Waitmsg
+{
+ 'a' 0 pid;
+ 'a' 12 time;
+ 'a' 48 msg;
+};
+
+defn
+Waitmsg(addr) {
+ complex Waitmsg addr;
+ print(" pid ", addr.pid, "\n");
+ print(" time ", addr.time, "\n");
+ print(" msg ", addr.msg, "\n");
+};
+
+DBlack = 255;
+DBlue = 201;
+DRed = 15;
+DYellow = 3;
+DGreen = 192;
+DWhite = 0;
+Displaybufsize = 8000;
+ICOSSCALE = 1024;
+Borderwidth = 4;
+Refbackup = 0;
+Refnone = 1;
+Refmesg = 2;
+Endsquare = 0;
+Enddisc = 1;
+Endarrow = 2;
+Endmask = 31;
+sizeofPoint = 8;
+aggr Point
+{
+ 'D' 0 x;
+ 'D' 4 y;
+};
+
+defn
+Point(addr) {
+ complex Point addr;
+ print(" x ", addr.x, "\n");
+ print(" y ", addr.y, "\n");
+};
+
+sizeofRectangle = 16;
+aggr Rectangle
+{
+ Point 0 min;
+ Point 8 max;
+};
+
+defn
+Rectangle(addr) {
+ complex Rectangle addr;
+ print("Point min {\n");
+ Point(addr.min);
+ print("}\n");
+ print("Point max {\n");
+ Point(addr.max);
+ print("}\n");
+};
+
+sizeofScreen = 16;
+aggr Screen
+{
+ 'X' 0 display;
+ 'D' 4 id;
+ 'X' 8 image;
+ 'X' 12 fill;
+};
+
+defn
+Screen(addr) {
+ complex Screen addr;
+ print(" display ", addr.display\X, "\n");
+ print(" id ", addr.id, "\n");
+ print(" image ", addr.image\X, "\n");
+ print(" fill ", addr.fill\X, "\n");
+};
+
+sizeofDisplay = 8156;
+aggr Display
+{
+ QLock 0 qlock;
+ 'D' 16 dirno;
+ 'D' 20 fd;
+ 'D' 24 reffd;
+ 'D' 28 ctlfd;
+ 'D' 32 imageid;
+ 'D' 36 $local;
+ 'D' 40 ldepth;
+ 'X' 44 error;
+ 'X' 48 devdir;
+ 'X' 52 windir;
+ 'a' 56 oldlabel;
+ 'U' 120 dataqid;
+ 'X' 124 ones;
+ 'X' 128 zeros;
+ 'X' 132 image;
+ 'a' 136 buf;
+ 'X' 8140 bufp;
+ 'X' 8144 defaultfont;
+ 'X' 8148 defaultsubfont;
+ 'X' 8152 windows;
+};
+
+defn
+Display(addr) {
+ complex Display addr;
+ print("QLock qlock {\n");
+ QLock(addr.qlock);
+ print("}\n");
+ print(" dirno ", addr.dirno, "\n");
+ print(" fd ", addr.fd, "\n");
+ print(" reffd ", addr.reffd, "\n");
+ print(" ctlfd ", addr.ctlfd, "\n");
+ print(" imageid ", addr.imageid, "\n");
+ print(" $local ", addr.$local, "\n");
+ print(" ldepth ", addr.ldepth, "\n");
+ print(" error ", addr.error\X, "\n");
+ print(" devdir ", addr.devdir\X, "\n");
+ print(" windir ", addr.windir\X, "\n");
+ print(" oldlabel ", addr.oldlabel, "\n");
+ print(" dataqid ", addr.dataqid, "\n");
+ print(" ones ", addr.ones\X, "\n");
+ print(" zeros ", addr.zeros\X, "\n");
+ print(" image ", addr.image\X, "\n");
+ print(" buf ", addr.buf, "\n");
+ print(" bufp ", addr.bufp\X, "\n");
+ print(" defaultfont ", addr.defaultfont\X, "\n");
+ print(" defaultsubfont ", addr.defaultsubfont\X, "\n");
+ print(" windows ", addr.windows\X, "\n");
+};
+
+sizeofImage = 56;
+aggr Image
+{
+ 'A' Display 0 display;
+ 'D' 4 id;
+ Rectangle 8 r;
+ Rectangle 24 clipr;
+ 'D' 40 ldepth;
+ 'D' 44 repl;
+ 'A' Screen 48 screen;
+ 'A' Image 52 next;
+};
+
+defn
+Image(addr) {
+ complex Image addr;
+ print(" display ", addr.display\X, "\n");
+ print(" id ", addr.id, "\n");
+ print("Rectangle r {\n");
+ Rectangle(addr.r);
+ print("}\n");
+ print("Rectangle clipr {\n");
+ Rectangle(addr.clipr);
+ print("}\n");
+ print(" ldepth ", addr.ldepth, "\n");
+ print(" repl ", addr.repl, "\n");
+ print(" screen ", addr.screen\X, "\n");
+ print(" next ", addr.next\X, "\n");
+};
+
+sizeofRGB = 12;
+aggr RGB
+{
+ 'U' 0 red;
+ 'U' 4 green;
+ 'U' 8 blue;
+};
+
+defn
+RGB(addr) {
+ complex RGB addr;
+ print(" red ", addr.red, "\n");
+ print(" green ", addr.green, "\n");
+ print(" blue ", addr.blue, "\n");
+};
+
+sizeofFontchar = 8;
+aggr Fontchar
+{
+ 'D' 0 x;
+ 'b' 4 top;
+ 'b' 5 bottom;
+ 'C' 6 left;
+ 'b' 7 width;
+};
+
+defn
+Fontchar(addr) {
+ complex Fontchar addr;
+ print(" x ", addr.x, "\n");
+ print(" top ", addr.top, "\n");
+ print(" bottom ", addr.bottom, "\n");
+ print(" left ", addr.left, "\n");
+ print(" width ", addr.width, "\n");
+};
+
+sizeofSubfont = 16;
+aggr Subfont
+{
+ 'X' 0 name;
+ 'd' 4 n;
+ 'b' 6 height;
+ 'C' 7 ascent;
+ 'A' Fontchar 8 info;
+ 'A' Image 12 bits;
+};
+
+defn
+Subfont(addr) {
+ complex Subfont addr;
+ print(" name ", addr.name\X, "\n");
+ print(" n ", addr.n, "\n");
+ print(" height ", addr.height, "\n");
+ print(" ascent ", addr.ascent, "\n");
+ print(" info ", addr.info\X, "\n");
+ print(" bits ", addr.bits\X, "\n");
+};
+
+LOG2NFCACHE = 6;
+NFCACHE = 64;
+NFLOOK = 5;
+NFSUBF = 2;
+MAXFCACHE = 1029;
+MAXSUBF = 50;
+DSUBF = 4;
+SUBFAGE = 10000;
+CACHEAGE = 10000;
+sizeofCachefont = 16;
+aggr Cachefont
+{
+ 'u' 0 min;
+ 'u' 2 max;
+ 'D' 4 offset;
+ 'X' 8 name;
+ 'X' 12 subfontname;
+};
+
+defn
+Cachefont(addr) {
+ complex Cachefont addr;
+ print(" min ", addr.min, "\n");
+ print(" max ", addr.max, "\n");
+ print(" offset ", addr.offset, "\n");
+ print(" name ", addr.name\X, "\n");
+ print(" subfontname ", addr.subfontname\X, "\n");
+};
+
+sizeofCacheinfo = 8;
+aggr Cacheinfo
+{
+ 'u' 0 x;
+ 'b' 2 width;
+ 'C' 3 left;
+ 'u' 4 value;
+ 'u' 6 age;
+};
+
+defn
+Cacheinfo(addr) {
+ complex Cacheinfo addr;
+ print(" x ", addr.x, "\n");
+ print(" width ", addr.width, "\n");
+ print(" left ", addr.left, "\n");
+ print(" value ", addr.value, "\n");
+ print(" age ", addr.age, "\n");
+};
+
+sizeofCachesubf = 12;
+aggr Cachesubf
+{
+ 'U' 0 age;
+ 'A' Cachefont 4 cf;
+ 'A' Subfont 8 f;
+};
+
+defn
+Cachesubf(addr) {
+ complex Cachesubf addr;
+ print(" age ", addr.age, "\n");
+ print(" cf ", addr.cf\X, "\n");
+ print(" f ", addr.f\X, "\n");
+};
+
+sizeofFont = 52;
+aggr Font
+{
+ 'X' 0 name;
+ 'A' Display 4 display;
+ 'd' 8 height;
+ 'd' 10 ascent;
+ 'D' 12 maxldepth;
+ 'd' 16 width;
+ 'd' 18 ldepth;
+ 'd' 20 nsub;
+ 'U' 24 age;
+ 'D' 28 ncache;
+ 'D' 32 nsubf;
+ 'A' Cacheinfo 36 cache;
+ 'A' Cachesubf 40 subf;
+ 'A' Cachefont 44 sub;
+ 'A' Image 48 cacheimage;
+};
+
+defn
+Font(addr) {
+ complex Font addr;
+ print(" name ", addr.name\X, "\n");
+ print(" display ", addr.display\X, "\n");
+ print(" height ", addr.height, "\n");
+ print(" ascent ", addr.ascent, "\n");
+ print(" maxldepth ", addr.maxldepth, "\n");
+ print(" width ", addr.width, "\n");
+ print(" ldepth ", addr.ldepth, "\n");
+ print(" nsub ", addr.nsub, "\n");
+ print(" age ", addr.age, "\n");
+ print(" ncache ", addr.ncache, "\n");
+ print(" nsubf ", addr.nsubf, "\n");
+ print(" cache ", addr.cache\X, "\n");
+ print(" subf ", addr.subf\X, "\n");
+ print(" sub ", addr.sub\X, "\n");
+ print(" cacheimage ", addr.cacheimage\X, "\n");
+};
+
+complex Point ZP;
+complex Rectangle ZR;
+complex Display display;
+complex Font font;
+complex Image screen;
+sizeofAlt = 20;
+aggr Alt
+{
+ 'X' 0 c;
+ 'X' 4 v;
+ 'D' 8 op;
+ 'X' 12 tag;
+ 'U' 16 q;
+};
+
+defn
+Alt(addr) {
+ complex Alt addr;
+ print(" c ", addr.c\X, "\n");
+ print(" v ", addr.v\X, "\n");
+ print(" op ", addr.op, "\n");
+ print(" tag ", addr.tag\X, "\n");
+ print(" q ", addr.q, "\n");
+};
+
+sizeofRef = 4;
+aggr Ref
+{
+ 'D' 0 ref;
+};
+
+defn
+Ref(addr) {
+ complex Ref addr;
+ print(" ref ", addr.ref, "\n");
+};
+
+sizeofCursor = 72;
+aggr Cursor
+{
+ Point 0 offset;
+ 'a' 8 clr;
+ 'a' 40 set;
+};
+
+defn
+Cursor(addr) {
+ complex Cursor addr;
+ print("Point offset {\n");
+ Point(addr.offset);
+ print("}\n");
+ print(" clr ", addr.clr, "\n");
+ print(" set ", addr.set, "\n");
+};
+
+sizeofMouse = 16;
+aggr Mouse
+{
+ 'D' 0 buttons;
+ Point 4 xy;
+ 'U' 12 msec;
+};
+
+defn
+Mouse(addr) {
+ complex Mouse addr;
+ print(" buttons ", addr.buttons, "\n");
+ print("Point xy {\n");
+ Point(addr.xy);
+ print("}\n");
+ print(" msec ", addr.msec, "\n");
+};
+
+sizeofMousectl = 44;
+aggr Mousectl
+{
+ {
+ 'D' 0 buttons;
+ Point 4 xy;
+ 'U' 12 msec;
+ };
+ 'X' 16 c;
+ 'X' 20 reshapec;
+ 'X' 24 file;
+ 'D' 28 mfd;
+ 'D' 32 cfd;
+ 'D' 36 pid;
+ 'A' Image 40 image;
+};
+
+defn
+Mousectl(addr) {
+ complex Mousectl addr;
+ print("Mouse {\n");
+ Mouse(addr+0);
+ print("}\n");
+ print(" c ", addr.c\X, "\n");
+ print(" reshapec ", addr.reshapec\X, "\n");
+ print(" file ", addr.file\X, "\n");
+ print(" mfd ", addr.mfd, "\n");
+ print(" cfd ", addr.cfd, "\n");
+ print(" pid ", addr.pid, "\n");
+ print(" image ", addr.image\X, "\n");
+};
+
+sizeofMenu = 12;
+aggr Menu
+{
+ 'X' 0 item;
+ 'X' 4 gen;
+ 'D' 8 lasthit;
+};
+
+defn
+Menu(addr) {
+ complex Menu addr;
+ print(" item ", addr.item\X, "\n");
+ print(" gen ", addr.gen\X, "\n");
+ print(" lasthit ", addr.lasthit, "\n");
+};
+
+sizeofKeyboardctl = 20;
+aggr Keyboardctl
+{
+ 'X' 0 c;
+ 'X' 4 file;
+ 'D' 8 consfd;
+ 'D' 12 ctlfd;
+ 'D' 16 pid;
+};
+
+defn
+Keyboardctl(addr) {
+ complex Keyboardctl addr;
+ print(" c ", addr.c\X, "\n");
+ print(" file ", addr.file\X, "\n");
+ print(" consfd ", addr.consfd, "\n");
+ print(" ctlfd ", addr.ctlfd, "\n");
+ print(" pid ", addr.pid, "\n");
+};
+
+BACK = 0;
+HIGH = 1;
+BORD = 2;
+TEXT = 3;
+HTEXT = 4;
+NCOL = 5;
+sizeof_3_ = 4;
+aggr _3_
+{
+ 'd' 0 bc;
+ 'd' 2 minwid;
+};
+
+defn
+_3_(addr) {
+ complex _3_ addr;
+ print(" bc ", addr.bc, "\n");
+ print(" minwid ", addr.minwid, "\n");
+};
+
+sizeof_4_ = 4;
+aggr _4_
+{
+ 'X' 0 ptr;
+ {
+ 'd' 0 bc;
+ 'd' 2 minwid;
+ };
+};
+
+defn
+_4_(addr) {
+ complex _4_ addr;
+ print(" ptr ", addr.ptr\X, "\n");
+ print("_3_ {\n");
+ _3_(addr+0);
+ print("}\n");
+};
+
+sizeofFrbox = 12;
+aggr Frbox
+{
+ 'D' 0 wid;
+ 'D' 4 nrune;
+ {
+ 'X' 8 ptr;
+ {
+ 'd' 8 bc;
+ 'd' 10 minwid;
+ };
+ };
+};
+
+defn
+Frbox(addr) {
+ complex Frbox addr;
+ print(" wid ", addr.wid, "\n");
+ print(" nrune ", addr.nrune, "\n");
+ print("_4_ {\n");
+ _4_(addr+8);
+ print("}\n");
+};
+
+complex Font font;
+complex Display display;
+sizeofFrame = 108;
+aggr Frame
+{
+ 'A' Font 0 font;
+ 'A' Display 4 display;
+ 'A' Image 8 b;
+ 'a' 12 cols;
+ Rectangle 32 r;
+ Rectangle 48 entire;
+ 'X' 64 scroll;
+ 'A' Frbox 68 box;
+ 'U' 72 p0;
+ 'U' 76 p1;
+ 'u' 80 nbox;
+ 'u' 82 nalloc;
+ 'u' 84 maxtab;
+ 'u' 86 nchars;
+ 'u' 88 nlines;
+ 'u' 90 maxlines;
+ 'u' 92 lastlinefull;
+ 'u' 94 modified;
+ 'A' Image 96 tick;
+ 'A' Image 100 tickback;
+ 'D' 104 ticked;
+};
+
+defn
+Frame(addr) {
+ complex Frame addr;
+ print(" font ", addr.font\X, "\n");
+ print(" display ", addr.display\X, "\n");
+ print(" b ", addr.b\X, "\n");
+ print(" cols ", addr.cols, "\n");
+ print("Rectangle r {\n");
+ Rectangle(addr.r);
+ print("}\n");
+ print("Rectangle entire {\n");
+ Rectangle(addr.entire);
+ print("}\n");
+ print(" scroll ", addr.scroll\X, "\n");
+ print(" box ", addr.box\X, "\n");
+ print(" p0 ", addr.p0, "\n");
+ print(" p1 ", addr.p1, "\n");
+ print(" nbox ", addr.nbox, "\n");
+ print(" nalloc ", addr.nalloc, "\n");
+ print(" maxtab ", addr.maxtab, "\n");
+ print(" nchars ", addr.nchars, "\n");
+ print(" nlines ", addr.nlines, "\n");
+ print(" maxlines ", addr.maxlines, "\n");
+ print(" lastlinefull ", addr.lastlinefull, "\n");
+ print(" modified ", addr.modified, "\n");
+ print(" tick ", addr.tick\X, "\n");
+ print(" tickback ", addr.tickback\X, "\n");
+ print(" ticked ", addr.ticked, "\n");
+};
+
+None = 0;
+Some = 1;
+All = 2;
+Clicktime = 1000;
+sizeofFlayer = 172;
+aggr Flayer
+{
+ Frame 0 f;
+ 'D' 108 origin;
+ 'D' 112 p0;
+ 'D' 116 p1;
+ 'D' 120 click;
+ 'X' 124 textfn;
+ 'D' 128 user0;
+ 'X' 132 user1;
+ Rectangle 136 entire;
+ Rectangle 152 scroll;
+ 'D' 168 visible;
+};
+
+defn
+Flayer(addr) {
+ complex Flayer addr;
+ print("Frame f {\n");
+ Frame(addr.f);
+ print("}\n");
+ print(" origin ", addr.origin, "\n");
+ print(" p0 ", addr.p0, "\n");
+ print(" p1 ", addr.p1, "\n");
+ print(" click ", addr.click, "\n");
+ print(" textfn ", addr.textfn\X, "\n");
+ print(" user0 ", addr.user0, "\n");
+ print(" user1 ", addr.user1\X, "\n");
+ print("Rectangle entire {\n");
+ Rectangle(addr.entire);
+ print("}\n");
+ print("Rectangle scroll {\n");
+ Rectangle(addr.scroll);
+ print("}\n");
+ print(" visible ", addr.visible, "\n");
+};
+
+Up = 0;
+Down = 1;
+sizeofSection = 12;
+aggr Section
+{
+ 'D' 0 nrunes;
+ 'X' 4 text;
+ 'A' Section 8 next;
+};
+
+defn
+Section(addr) {
+ complex Section addr;
+ print(" nrunes ", addr.nrunes, "\n");
+ print(" text ", addr.text\X, "\n");
+ print(" next ", addr.next\X, "\n");
+};
+
+sizeofRasp = 8;
+aggr Rasp
+{
+ 'D' 0 nrunes;
+ 'A' Section 4 sect;
+};
+
+defn
+Rasp(addr) {
+ complex Rasp addr;
+ print(" nrunes ", addr.nrunes, "\n");
+ print(" sect ", addr.sect\X, "\n");
+};
+
+sizeofText = 876;
+aggr Text
+{
+ Rasp 0 rasp;
+ 'd' 8 nwin;
+ 'd' 10 front;
+ 'u' 12 tag;
+ 'C' 14 lock;
+ 'a' 16 l;
+};
+
+defn
+Text(addr) {
+ complex Text addr;
+ print("Rasp rasp {\n");
+ Rasp(addr.rasp);
+ print("}\n");
+ print(" nwin ", addr.nwin, "\n");
+ print(" front ", addr.front, "\n");
+ print(" tag ", addr.tag, "\n");
+ print(" lock ", addr.lock, "\n");
+ print(" l ", addr.l, "\n");
+};
+
+sizeofReadbuf = 8196;
+aggr Readbuf
+{
+ 'd' 0 n;
+ 'a' 2 data;
+};
+
+defn
+Readbuf(addr) {
+ complex Readbuf addr;
+ print(" n ", addr.n, "\n");
+ print(" data ", addr.data, "\n");
+};
+
+RHost = 0;
+RKeyboard = 1;
+RMouse = 2;
+RPlumb = 3;
+RReshape = 4;
+NRes = 5;
+complex Cursor bullseye;
+complex Cursor deadmouse;
+complex Cursor lockarrow;
+complex Cursor cursor;
+complex Flayer which;
+complex Flayer work;
+complex Text cmd;
+complex Mousectl mousectl;
+complex Keyboardctl keyboardctl;
+complex Mouse mousep;
+Tversion = 0;
+Tstartcmdfile = 1;
+Tcheck = 2;
+Trequest = 3;
+Torigin = 4;
+Tstartfile = 5;
+Tworkfile = 6;
+Ttype = 7;
+Tcut = 8;
+Tpaste = 9;
+Tsnarf = 10;
+Tstartnewfile = 11;
+Twrite = 12;
+Tclose = 13;
+Tlook = 14;
+Tsearch = 15;
+Tsend = 16;
+Tdclick = 17;
+Tstartsnarf = 18;
+Tsetsnarf = 19;
+Tack = 20;
+Texit = 21;
+Tplumb = 22;
+TMAX = 23;
+Hversion = 0;
+Hbindname = 1;
+Hcurrent = 2;
+Hnewname = 3;
+Hmovname = 4;
+Hgrow = 5;
+Hcheck0 = 6;
+Hcheck = 7;
+Hunlock = 8;
+Hdata = 9;
+Horigin = 10;
+Hunlockfile = 11;
+Hsetdot = 12;
+Hgrowdata = 13;
+Hmoveto = 14;
+Hclean = 15;
+Hdirty = 16;
+Hcut = 17;
+Hsetpat = 18;
+Hdelname = 19;
+Hclose = 20;
+Hsetsnarf = 21;
+Hsnarflen = 22;
+Hack = 23;
+Hexit = 24;
+Hplumb = 25;
+HMAX = 26;
+sizeofHeader = 4;
+aggr Header
+{
+ 'b' 0 type;
+ 'b' 1 count0;
+ 'b' 2 count1;
+ 'a' 3 data;
+};
+
+defn
+Header(addr) {
+ complex Header addr;
+ print(" type ", addr.type, "\n");
+ print(" count0 ", addr.count0, "\n");
+ print(" count1 ", addr.count1, "\n");
+ print(" data ", addr.data, "\n");
+};
+
+complex Text cmd;
+complex Cursor cursor;
+complex Flayer which;
+complex Flayer work;
+complex Text threadmain:t;
+complex Rectangle threadmain:r;
+complex Flayer threadmain:nwhich;
+complex Flayer current:nw;
+complex Text current:t;
+complex Flayer closeup:l;
+complex Text closeup:t;
+complex Text findl:t;
+complex Flayer duplicate:l;
+complex Rectangle duplicate:r;
+complex Font duplicate:f;
+complex Text duplicate:t;
+complex Flayer duplicate:nl;
+complex Rectangle getr:rp;
+complex Point getr:p;
+complex Rectangle getr:r;
+complex Text snarf:t;
+complex Flayer snarf:l;
+complex Text cut:t;
+complex Flayer cut:l;
+complex Text paste:t;
+complex Flayer scrorigin:l;
+complex Text scrorigin:t;
+complex Rasp raspc:r;
+complex Rasp ctlw:r;
+complex Rasp ctlu:r;
+complex Flayer center:l;
+complex Text center:t;
+complex Flayer onethird:l;
+complex Text onethird:t;
+complex Rectangle onethird:s;
+complex Text flushtyping:t;
+complex Flayer type:l;
+complex Text type:t;
+complex Flayer gettext:l;
+complex Text gettext:t;
+complex Flayer scrtotal:l;