|  | 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; |