sizeof_1_ = 8;
aggr _1_
{
	'U' 0 lo;
	'U' 4 hi;
};

defn
_1_(addr) {
	complex _1_ addr;
	print("	lo	", addr.lo, "\n");
	print("	hi	", addr.hi, "\n");
};

sizeofFPdbleword = 8;
aggr FPdbleword
{
	'F' 0 x;
	{
	'U' 0 lo;
	'U' 4 hi;
	};
};

defn
FPdbleword(addr) {
	complex FPdbleword addr;
	print("	x	", addr.x, "\n");
	print("_1_ {\n");
		_1_(addr+0);
	print("}\n");
};

UTFmax = 3;
Runesync = 128;
Runeself = 128;
Runeerror = 128;
sizeofFmt = 48;
aggr Fmt
{
	'b' 0 runes;
	'X' 4 start;
	'X' 8 to;
	'X' 12 stop;
	'X' 16 flush;
	'X' 20 farg;
	'D' 24 nfmt;
	'X' 28 args;
	'D' 32 r;
	'D' 36 width;
	'D' 40 prec;
	'U' 44 flags;
};

defn
Fmt(addr) {
	complex Fmt addr;
	print("	runes	", addr.runes, "\n");
	print("	start	", addr.start\X, "\n");
	print("	to	", addr.to\X, "\n");
	print("	stop	", addr.stop\X, "\n");
	print("	flush	", addr.flush\X, "\n");
	print("	farg	", addr.farg\X, "\n");
	print("	nfmt	", addr.nfmt, "\n");
	print("	args	", addr.args\X, "\n");
	print("	r	", addr.r, "\n");
	print("	width	", addr.width, "\n");
	print("	prec	", addr.prec, "\n");
	print("	flags	", addr.flags, "\n");
};

FmtWidth = 1;
FmtLeft = 2;
FmtPrec = 4;
FmtSharp = 8;
FmtSpace = 16;
FmtSign = 32;
FmtZero = 64;
FmtUnsigned = 128;
FmtShort = 256;
FmtLong = 512;
FmtVLong = 1024;
FmtComma = 2048;
FmtByte = 4096;
FmtFlag = 8192;
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");
};

sizeofRendez = 12;
aggr Rendez
{
	'A' QLock 0 l;
	'A' QLp 4 $head;
	'A' QLp 8 $tail;
};

defn
Rendez(addr) {
	complex Rendez addr;
	print("	l	", addr.l\X, "\n");
	print("	$head	", addr.$head\X, "\n");
	print("	$tail	", addr.$tail\X, "\n");
};

sizeofNetConnInfo = 28;
aggr NetConnInfo
{
	'X' 0 dir;
	'X' 4 root;
	'X' 8 spec;
	'X' 12 lsys;
	'X' 16 lserv;
	'X' 20 rsys;
	'X' 24 rserv;
};

defn
NetConnInfo(addr) {
	complex NetConnInfo addr;
	print("	dir	", addr.dir\X, "\n");
	print("	root	", addr.root\X, "\n");
	print("	spec	", addr.spec\X, "\n");
	print("	lsys	", addr.lsys\X, "\n");
	print("	lserv	", addr.lserv\X, "\n");
	print("	rsys	", addr.rsys\X, "\n");
	print("	rserv	", addr.rserv\X, "\n");
};

RFNAMEG = 1;
RFENVG = 2;
RFFDG = 4;
RFNOTEG = 8;
RFPROC = 16;
RFMEM = 32;
RFNOWAIT = 64;
RFCNAMEG = 1024;
RFCENVG = 2048;
RFCFDG = 4096;
RFREND = 8192;
RFNOMNT = 16384;
sizeofQid = 16;
aggr Qid
{
	'W' 0 path;
	'U' 8 vers;
	'b' 12 type;
};

defn
Qid(addr) {
	complex Qid addr;
	print("	path	", addr.path, "\n");
	print("	vers	", addr.vers, "\n");
	print("	type	", addr.type, "\n");
};

sizeofDir = 60;
aggr Dir
{
	'u' 0 type;
	'U' 4 dev;
	Qid 8 qid;
	'U' 24 mode;
	'U' 28 atime;
	'U' 32 mtime;
	'V' 36 length;
	'X' 44 name;
	'X' 48 uid;
	'X' 52 gid;
	'X' 56 muid;
};

defn
Dir(addr) {
	complex Dir addr;
	print("	type	", addr.type, "\n");
	print("	dev	", addr.dev, "\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("	length	", addr.length, "\n");
	print("	name	", addr.name\X, "\n");
	print("	uid	", addr.uid\X, "\n");
	print("	gid	", addr.gid\X, "\n");
	print("	muid	", addr.muid\X, "\n");
};

sizeofWaitmsg = 20;
aggr Waitmsg
{
	'D' 0 pid;
	'a' 4 time;
	'X' 16 msg;
};

defn
Waitmsg(addr) {
	complex Waitmsg addr;
	print("	pid	", addr.pid, "\n");
	print("	time	", addr.time, "\n");
	print("	msg	", addr.msg\X, "\n");
};

sizeofIOchunk = 8;
aggr IOchunk
{
	'X' 0 addr;
	'U' 4 len;
};

defn
IOchunk(addr) {
	complex IOchunk addr;
	print("	addr	", addr.addr\X, "\n");
	print("	len	", addr.len, "\n");
};

MaxFragSize = 9216;
VtScoreSize = 20;
VtMaxStringSize = 1024;
VtMaxFileSize = 281474976710655;
VtMaxLumpSize = 57344;
VtPointerDepth = 7;
VtDataType = 0;
VtDirType = 8;
VtRootType = 16;
VtMaxType = 17;
VtTypeDepthMask = 7;
VtEntryActive = 1;
VtEntryDir = 2;
VtEntryDepthShift = 2;
VtEntryDepthMask = 28;
VtEntryLocal = 32;
VtEntrySize = 40;
sizeofVtEntry = 40;
aggr VtEntry
{
	'U' 0 gen;
	'u' 4 psize;
	'u' 6 dsize;
	'b' 8 type;
	'b' 9 flags;
	'W' 12 size;
	'a' 20 score;
};

defn
VtEntry(addr) {
	complex VtEntry addr;
	print("	gen	", addr.gen, "\n");
	print("	psize	", addr.psize, "\n");
	print("	dsize	", addr.dsize, "\n");
	print("	type	", addr.type, "\n");
	print("	flags	", addr.flags, "\n");
	print("	size	", addr.size, "\n");
	print("	score	", addr.score, "\n");
};

sizeofVtRoot = 300;
aggr VtRoot
{
	'a' 0 name;
	'a' 128 type;
	'a' 256 score;
	'u' 276 blocksize;
	'a' 278 prev;
};

defn
VtRoot(addr) {
	complex VtRoot addr;
	print("	name	", addr.name, "\n");
	print("	type	", addr.type, "\n");
	print("	score	", addr.score, "\n");
	print("	blocksize	", addr.blocksize, "\n");
	print("	prev	", addr.prev, "\n");
};

VtRootSize = 300;
VtRootVersion = 2;
VtCryptoStrengthNone = 0;
VtCryptoStrengthAuth = 1;
VtCryptoStrengthWeak = 2;
VtCryptoStrengthStrong = 3;
VtCryptoNone = 0;
VtCryptoSSL3 = 1;
VtCryptoTLS1 = 2;
VtCryptoMax = 3;
VtCodecNone = 0;
VtCodecDeflate = 1;
VtCodecThwack = 2;
VtCodecMax = 3;
VtRerror = 1;
VtTping = 2;
VtRping = 3;
VtThello = 4;
VtRhello = 5;
VtTgoodbye = 6;
VtRgoodbye = 7;
VtTauth0 = 8;
VtRauth0 = 9;
VtTauth1 = 10;
VtRauth1 = 11;
VtTread = 12;
VtRread = 13;
VtTwrite = 14;
VtRwrite = 15;
VtTsync = 16;
VtRsync = 17;
VtTmax = 18;
sizeofVtFcall = 80;
aggr VtFcall
{
	'b' 0 type;
	'b' 1 tag;
	'X' 4 error;
	'X' 8 version;
	'X' 12 uid;
	'b' 16 strength;
	'X' 20 crypto;
	'U' 24 ncrypto;
	'X' 28 codec;
	'U' 32 ncodec;
	'X' 36 sid;
	'b' 40 rcrypto;
	'b' 41 rcodec;
	'X' 44 auth;
	'U' 48 nauth;
	'a' 52 score;
	'b' 72 dtype;
	'u' 74 count;
	'X' 76 data;
};

defn
VtFcall(addr) {
	complex VtFcall addr;
	print("	type	", addr.type, "\n");
	print("	tag	", addr.tag, "\n");
	print("	error	", addr.error\X, "\n");
	print("	version	", addr.version\X, "\n");
	print("	uid	", addr.uid\X, "\n");
	print("	strength	", addr.strength, "\n");
	print("	crypto	", addr.crypto\X, "\n");
	print("	ncrypto	", addr.ncrypto, "\n");
	print("	codec	", addr.codec\X, "\n");
	print("	ncodec	", addr.ncodec, "\n");
	print("	sid	", addr.sid\X, "\n");
	print("	rcrypto	", addr.rcrypto, "\n");
	print("	rcodec	", addr.rcodec, "\n");
	print("	auth	", addr.auth\X, "\n");
	print("	nauth	", addr.nauth, "\n");
	print("	score	", addr.score, "\n");
	print("	dtype	", addr.dtype, "\n");
	print("	count	", addr.count, "\n");
	print("	data	", addr.data\X, "\n");
};

VtStateAlloc = 0;
VtStateConnected = 1;
VtStateClosed = 2;
sizeofVtConn = 1148;
aggr VtConn
{
	QLock 0 lk;
	QLock 16 inlk;
	QLock 32 outlk;
	'D' 48 debug;
	'D' 52 infd;
	'D' 56 outfd;
	'D' 60 muxer;
	'X' 64 writeq;
	'X' 68 readq;
	'D' 72 state;
	'a' 76 wait;
	'U' 1100 ntag;
	'U' 1104 nsleep;
	'X' 1108 part;
	Rendez 1112 tagrend;
	Rendez 1124 rpcfork;
	'X' 1136 version;
	'X' 1140 uid;
	'X' 1144 sid;
};

defn
VtConn(addr) {
	complex VtConn addr;
	print("QLock lk {\n");
	QLock(addr.lk);
	print("}\n");
	print("QLock inlk {\n");
	QLock(addr.inlk);
	print("}\n");
	print("QLock outlk {\n");
	QLock(addr.outlk);
	print("}\n");
	print("	debug	", addr.debug, "\n");
	print("	infd	", addr.infd, "\n");
	print("	outfd	", addr.outfd, "\n");
	print("	muxer	", addr.muxer, "\n");
	print("	writeq	", addr.writeq\X, "\n");
	print("	readq	", addr.readq\X, "\n");
	print("	state	", addr.state, "\n");
	print("	wait	", addr.wait, "\n");
	print("	ntag	", addr.ntag, "\n");
	print("	nsleep	", addr.nsleep, "\n");
	print("	part	", addr.part\X, "\n");
	print("Rendez tagrend {\n");
	Rendez(addr.tagrend);
	print("}\n");
	print("Rendez rpcfork {\n");
	Rendez(addr.rpcfork);
	print("}\n");
	print("	version	", addr.version\X, "\n");
	print("	uid	", addr.uid\X, "\n");
	print("	sid	", addr.sid\X, "\n");
};

NilBlock = -1;
sizeofVtBlock = 88;
aggr VtBlock
{
	'X' 0 c;
	QLock 4 lk;
	'X' 20 data;
	'a' 24 score;
	'b' 44 type;
	'D' 48 nlock;
	'D' 52 iostate;
	'D' 56 ref;
	'U' 60 heap;
	'A' VtBlock 64 next;
	'A' VtBlock 68 prev;
	'U' 72 used;
	'U' 76 used2;
	'U' 80 addr;
	'D' 84 decrypted;
};

defn
VtBlock(addr) {
	complex VtBlock addr;
	print("	c	", addr.c\X, "\n");
	print("QLock lk {\n");
	QLock(addr.lk);
	print("}\n");
	print("	data	", addr.data\X, "\n");
	print("	score	", addr.score, "\n");
	print("	type	", addr.type, "\n");
	print("	nlock	", addr.nlock, "\n");
	print("	iostate	", addr.iostate, "\n");
	print("	ref	", addr.ref, "\n");
	print("	heap	", addr.heap, "\n");
	print("	next	", addr.next\X, "\n");
	print("	prev	", addr.prev\X, "\n");
	print("	used	", addr.used, "\n");
	print("	used2	", addr.used2, "\n");
	print("	addr	", addr.addr, "\n");
	print("	decrypted	", addr.decrypted, "\n");
};

VtOREAD = 0;
VtOWRITE = 1;
VtORDWR = 2;
VtOCREATE = 256;
BioLocal = 1;
BioVenti = 2;
BioReading = 3;
BioWriting = 4;
BioEmpty = 5;
BioVentiError = 6;
BadHeap = -1;
sizeofVtCache = 60;
aggr VtCache
{
	QLock 0 lk;
	'A' VtConn 16 z;
	'U' 20 blocksize;
	'U' 24 now;
	'A' VtBlock 28 hash;
	'D' 32 nhash;
	'A' VtBlock 36 heap;
	'D' 40 nheap;
	'A' VtBlock 44 block;
	'D' 48 nblock;
	'X' 52 mem;
	'D' 56 mode;
};

defn
VtCache(addr) {
	complex VtCache addr;
	print("QLock lk {\n");
	QLock(addr.lk);
	print("}\n");
	print("	z	", addr.z\X, "\n");
	print("	blocksize	", addr.blocksize, "\n");
	print("	now	", addr.now, "\n");
	print("	hash	", addr.hash\X, "\n");
	print("	nhash	", addr.nhash, "\n");
	print("	heap	", addr.heap\X, "\n");
	print("	nheap	", addr.nheap, "\n");
	print("	block	", addr.block\X, "\n");
	print("	nblock	", addr.nblock, "\n");
	print("	mem	", addr.mem\X, "\n");
	print("	mode	", addr.mode, "\n");
};

complex VtConn vtcachealloc:z;
complex VtCache vtcachealloc:c;
complex VtBlock vtcachealloc:b;
complex VtCache vtcachefree:c;
complex VtCache vtcachedump:c;
complex VtBlock vtcachedump:b;
complex VtCache cachecheck:c;
complex VtBlock cachecheck:b;
complex VtBlock upheap:b;
complex VtBlock upheap:bb;
complex VtCache upheap:c;
complex VtBlock downheap:b;
complex VtBlock downheap:bb;
complex VtCache downheap:c;
complex VtBlock heapdel:b;
complex VtCache heapdel:c;
complex VtBlock heapins:b;
complex VtCache vtcachebumpblock:c;
complex VtBlock vtcachebumpblock:b;
complex VtCache vtcachelocal:c;
complex VtBlock vtcachelocal:b;
complex VtCache vtcacheallocblock:c;
complex VtBlock vtcacheallocblock:b;
complex VtCache vtcacheglobal:c;
complex VtBlock vtcacheglobal:b;
complex VtBlock vtblockduplock:b;
complex VtBlock vtblockput:b;
complex VtCache vtblockput:c;
complex VtBlock vtblockwrite:b;
complex VtCache vtblockwrite:c;
complex VtCache vtcacheblocksize:c;
complex VtBlock vtblockcopy:b;
complex VtBlock vtblockcopy:bb;
