diff options
author | Taru Karttunen <taruti@taruti.net> | 2011-03-30 15:46:40 +0300 |
---|---|---|
committer | Taru Karttunen <taruti@taruti.net> | 2011-03-30 15:46:40 +0300 |
commit | e5888a1ffdae813d7575f5fb02275c6bb07e5199 (patch) | |
tree | d8d51eac403f07814b9e936eed0c9a79195e2450 /sys/src/libventi/packet.acid |
Import sources from 2011-03-30 iso image
Diffstat (limited to 'sys/src/libventi/packet.acid')
-rwxr-xr-x | sys/src/libventi/packet.acid | 1194 |
1 files changed, 1194 insertions, 0 deletions
diff --git a/sys/src/libventi/packet.acid b/sys/src/libventi/packet.acid new file mode 100755 index 000000000..70fbe058c --- /dev/null +++ b/sys/src/libventi/packet.acid @@ -0,0 +1,1194 @@ +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 = 65533; +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; +Profoff = 0; +Profuser = 1; +Profkernel = 2; +Proftime = 3; +Profsample = 4; +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 = 36; +aggr NetConnInfo +{ + 'X' 0 dir; + 'X' 4 root; + 'X' 8 spec; + 'X' 12 lsys; + 'X' 16 lserv; + 'X' 20 rsys; + 'X' 24 rserv; + 'X' 28 laddr; + 'X' 32 raddr; +}; + +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"); + print(" laddr ", addr.laddr\X, "\n"); + print(" raddr ", addr.raddr\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; +sizeofVtLog = 40; +aggr VtLog +{ + 'A' VtLog 0 next; + 'X' 4 name; + 'X' 8 chunk; + 'U' 12 nchunk; + 'X' 16 w; + QLock 20 lk; + 'D' 36 ref; +}; + +defn +VtLog(addr) { + complex VtLog addr; + print(" next ", addr.next\X, "\n"); + print(" name ", addr.name\X, "\n"); + print(" chunk ", addr.chunk\X, "\n"); + print(" nchunk ", addr.nchunk, "\n"); + print(" w ", addr.w\X, "\n"); + print("QLock lk {\n"); + QLock(addr.lk); + print("}\n"); + print(" ref ", addr.ref, "\n"); +}; + +sizeofVtLogChunk = 12; +aggr VtLogChunk +{ + 'X' 0 p; + 'X' 4 ep; + 'X' 8 wp; +}; + +defn +VtLogChunk(addr) { + complex VtLogChunk addr; + print(" p ", addr.p\X, "\n"); + print(" ep ", addr.ep\X, "\n"); + print(" wp ", addr.wp\X, "\n"); +}; + +VtScoreSize = 20; +VtMaxStringSize = 1024; +VtMaxLumpSize = 57344; +VtPointerDepth = 7; +VtDataType = 0; +VtDirType = 8; +VtRootType = 16; +VtMaxType = 17; +VtCorruptType = 255; +VtTypeDepthMask = 7; +VtTypeBaseMask = -8; +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 msgtype; + '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 blocktype; + 'u' 74 count; + 'X' 76 data; +}; + +defn +VtFcall(addr) { + complex VtFcall addr; + print(" msgtype ", addr.msgtype, "\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(" blocktype ", addr.blocktype, "\n"); + print(" count ", addr.count, "\n"); + print(" data ", addr.data\X, "\n"); +}; + +VtStateAlloc = 0; +VtStateConnected = 1; +VtStateClosed = 2; +sizeofVtConn = 1404; +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; + 'a' 1148 addr; +}; + +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"); + print(" addr ", addr.addr, "\n"); +}; + +sizeofVtReq = 168; +aggr VtReq +{ + VtFcall 0 tx; + VtFcall 80 rx; + 'X' 160 srv; + 'X' 164 sc; +}; + +defn +VtReq(addr) { + complex VtReq addr; + print("VtFcall tx {\n"); + VtFcall(addr.tx); + print("}\n"); + print("VtFcall rx {\n"); + VtFcall(addr.rx); + print("}\n"); + print(" srv ", addr.srv\X, "\n"); + print(" sc ", addr.sc\X, "\n"); +}; + +NilBlock = -1; +sizeofVtBlock = 84; +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; +}; + +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"); +}; + +sizeofVtFile = 84; +aggr VtFile +{ + QLock 0 lk; + 'D' 16 ref; + 'D' 20 $local; + 'A' VtBlock 24 b; + 'a' 28 score; + 'X' 48 c; + 'D' 52 mode; + 'U' 56 gen; + 'D' 60 dsize; + 'D' 64 psize; + 'D' 68 dir; + 'A' VtFile 72 parent; + 'D' 76 epb; + 'U' 80 offset; +}; + +defn +VtFile(addr) { + complex VtFile addr; + print("QLock lk {\n"); + QLock(addr.lk); + print("}\n"); + print(" ref ", addr.ref, "\n"); + print(" $local ", addr.$local, "\n"); + print(" b ", addr.b\X, "\n"); + print(" score ", addr.score, "\n"); + print(" c ", addr.c\X, "\n"); + print(" mode ", addr.mode, "\n"); + print(" gen ", addr.gen, "\n"); + print(" dsize ", addr.dsize, "\n"); + print(" psize ", addr.psize, "\n"); + print(" dir ", addr.dir, "\n"); + print(" parent ", addr.parent\X, "\n"); + print(" epb ", addr.epb, "\n"); + print(" offset ", addr.offset, "\n"); +}; + +VtOREAD = 0; +VtOWRITE = 1; +VtORDWR = 2; +AESbsize = 16; +AESmaxkey = 32; +AESmaxrounds = 14; +sizeofAESstate = 540; +aggr AESstate +{ + 'U' 0 setup; + 'D' 4 rounds; + 'D' 8 keybytes; + 'a' 12 key; + 'a' 44 ekey; + 'a' 284 dkey; + 'a' 524 ivec; +}; + +defn +AESstate(addr) { + complex AESstate addr; + print(" setup ", addr.setup, "\n"); + print(" rounds ", addr.rounds, "\n"); + print(" keybytes ", addr.keybytes, "\n"); + print(" key ", addr.key, "\n"); + print(" ekey ", addr.ekey, "\n"); + print(" dkey ", addr.dkey, "\n"); + print(" ivec ", addr.ivec, "\n"); +}; + +BFbsize = 8; +BFrounds = 16; +sizeofBFstate = 4236; +aggr BFstate +{ + 'U' 0 setup; + 'a' 4 key; + 'a' 60 ivec; + 'a' 68 pbox; + 'a' 140 sbox; +}; + +defn +BFstate(addr) { + complex BFstate addr; + print(" setup ", addr.setup, "\n"); + print(" key ", addr.key, "\n"); + print(" ivec ", addr.ivec, "\n"); + print(" pbox ", addr.pbox, "\n"); + print(" sbox ", addr.sbox, "\n"); +}; + +DESbsize = 8; +sizeofDESstate = 148; +aggr DESstate +{ + 'U' 0 setup; + 'a' 4 key; + 'a' 12 expanded; + 'a' 140 ivec; +}; + +defn +DESstate(addr) { + complex DESstate addr; + print(" setup ", addr.setup, "\n"); + print(" key ", addr.key, "\n"); + print(" expanded ", addr.expanded, "\n"); + print(" ivec ", addr.ivec, "\n"); +}; + +DES3E = 0; +DES3D = 1; +DES3EEE = 0; +DES3EDE = 2; +DES3DED = 5; +DES3DDD = 7; +sizeofDES3state = 420; +aggr DES3state +{ + 'U' 0 setup; + 'a' 4 key; + 'a' 28 expanded; + 'a' 412 ivec; +}; + +defn +DES3state(addr) { + complex DES3state addr; + print(" setup ", addr.setup, "\n"); + print(" key ", addr.key, "\n"); + print(" expanded ", addr.expanded, "\n"); + print(" ivec ", addr.ivec, "\n"); +}; + +SHA1dlen = 20; +MD4dlen = 16; +MD5dlen = 16; +sizeofDigestState = 164; +aggr DigestState +{ + 'W' 0 len; + 'a' 8 state; + 'a' 28 buf; + 'D' 156 blen; + 'C' 160 malloced; + 'C' 161 seeded; +}; + +defn +DigestState(addr) { + complex DigestState addr; + print(" len ", addr.len, "\n"); + print(" state ", addr.state, "\n"); + print(" buf ", addr.buf, "\n"); + print(" blen ", addr.blen, "\n"); + print(" malloced ", addr.malloced, "\n"); + print(" seeded ", addr.seeded, "\n"); +}; + +sizeofRC4state = 260; +aggr RC4state +{ + 'a' 0 state; + 'b' 256 x; + 'b' 257 y; +}; + +defn +RC4state(addr) { + complex RC4state addr; + print(" state ", addr.state, "\n"); + print(" x ", addr.x, "\n"); + print(" y ", addr.y, "\n"); +}; + +sizeofRSApub = 8; +aggr RSApub +{ + 'X' 0 n; + 'X' 4 ek; +}; + +defn +RSApub(addr) { + complex RSApub addr; + print(" n ", addr.n\X, "\n"); + print(" ek ", addr.ek\X, "\n"); +}; + +sizeofRSApriv = 32; +aggr RSApriv +{ + RSApub 0 pub; + 'X' 8 dk; + 'X' 12 p; + 'X' 16 q; + 'X' 20 kp; + 'X' 24 kq; + 'X' 28 c2; +}; + +defn +RSApriv(addr) { + complex RSApriv addr; + print("RSApub pub {\n"); + RSApub(addr.pub); + print("}\n"); + print(" dk ", addr.dk\X, "\n"); + print(" p ", addr.p\X, "\n"); + print(" q ", addr.q\X, "\n"); + print(" kp ", addr.kp\X, "\n"); + print(" kq ", addr.kq\X, "\n"); + print(" c2 ", addr.c2\X, "\n"); +}; + +sizeofPEMChain = 12; +aggr PEMChain +{ + 'A' PEMChain 0 next; + 'X' 4 pem; + 'D' 8 pemlen; +}; + +defn +PEMChain(addr) { + complex PEMChain addr; + print(" next ", addr.next\X, "\n"); + print(" pem ", addr.pem\X, "\n"); + print(" pemlen ", addr.pemlen, "\n"); +}; + +sizeofEGpub = 12; +aggr EGpub +{ + 'X' 0 p; + 'X' 4 alpha; + 'X' 8 key; +}; + +defn +EGpub(addr) { + complex EGpub addr; + print(" p ", addr.p\X, "\n"); + print(" alpha ", addr.alpha\X, "\n"); + print(" key ", addr.key\X, "\n"); +}; + +sizeofEGpriv = 16; +aggr EGpriv +{ + EGpub 0 pub; + 'X' 12 secret; +}; + +defn +EGpriv(addr) { + complex EGpriv addr; + print("EGpub pub {\n"); + EGpub(addr.pub); + print("}\n"); + print(" secret ", addr.secret\X, "\n"); +}; + +sizeofEGsig = 8; +aggr EGsig +{ + 'X' 0 r; + 'X' 4 s; +}; + +defn +EGsig(addr) { + complex EGsig addr; + print(" r ", addr.r\X, "\n"); + print(" s ", addr.s\X, "\n"); +}; + +sizeofDSApub = 16; +aggr DSApub +{ + 'X' 0 p; + 'X' 4 q; + 'X' 8 alpha; + 'X' 12 key; +}; + +defn +DSApub(addr) { + complex DSApub addr; + print(" p ", addr.p\X, "\n"); + print(" q ", addr.q\X, "\n"); + print(" alpha ", addr.alpha\X, "\n"); + print(" key ", addr.key\X, "\n"); +}; + +sizeofDSApriv = 20; +aggr DSApriv +{ + DSApub 0 pub; + 'X' 16 secret; +}; + +defn +DSApriv(addr) { + complex DSApriv addr; + print("DSApub pub {\n"); + DSApub(addr.pub); + print("}\n"); + print(" secret ", addr.secret\X, "\n"); +}; + +sizeofDSAsig = 8; +aggr DSAsig +{ + 'X' 0 r; + 'X' 4 s; +}; + +defn +DSAsig(addr) { + complex DSAsig addr; + print(" r ", addr.r\X, "\n"); + print(" s ", addr.s\X, "\n"); +}; + +sizeofThumbprint = 24; +aggr Thumbprint +{ + 'A' Thumbprint 0 next; + 'a' 4 sha1; +}; + +defn +Thumbprint(addr) { + complex Thumbprint addr; + print(" next ", addr.next\X, "\n"); + print(" sha1 ", addr.sha1, "\n"); +}; + +sizeofTLSconn = 80; +aggr TLSconn +{ + 'a' 0 dir; + 'X' 40 cert; + 'X' 44 sessionID; + 'D' 48 certlen; + 'D' 52 sessionIDlen; + 'X' 56 trace; + 'A' PEMChain 60 chain; + 'X' 64 sessionType; + 'X' 68 sessionKey; + 'D' 72 sessionKeylen; + 'X' 76 sessionConst; +}; + +defn +TLSconn(addr) { + complex TLSconn addr; + print(" dir ", addr.dir, "\n"); + print(" cert ", addr.cert\X, "\n"); + print(" sessionID ", addr.sessionID\X, "\n"); + print(" certlen ", addr.certlen, "\n"); + print(" sessionIDlen ", addr.sessionIDlen, "\n"); + print(" trace ", addr.trace\X, "\n"); + print(" chain ", addr.chain\X, "\n"); + print(" sessionType ", addr.sessionType\X, "\n"); + print(" sessionKey ", addr.sessionKey\X, "\n"); + print(" sessionKeylen ", addr.sessionKeylen, "\n"); + print(" sessionConst ", addr.sessionConst\X, "\n"); +}; + +BigMemSize = 9216; +SmallMemSize = 1152; +NLocalFrag = 2; +PFront = 0; +PMiddle = 1; +PEnd = 2; +sizeofMem = 28; +aggr Mem +{ + Lock 0 lk; + 'D' 4 ref; + 'X' 8 bp; + 'X' 12 ep; + 'X' 16 rp; + 'X' 20 wp; + 'A' Mem 24 next; +}; + +defn +Mem(addr) { + complex Mem addr; + print("Lock lk {\n"); + Lock(addr.lk); + print("}\n"); + print(" ref ", addr.ref, "\n"); + print(" bp ", addr.bp\X, "\n"); + print(" ep ", addr.ep\X, "\n"); + print(" rp ", addr.rp\X, "\n"); + print(" wp ", addr.wp\X, "\n"); + print(" next ", addr.next\X, "\n"); +}; + +FragLocalFree = 0; +FragLocalAlloc = 1; +FragGlobal = 2; +sizeofFrag = 32; +aggr Frag +{ + 'D' 0 state; + 'A' Mem 4 mem; + 'X' 8 rp; + 'X' 12 wp; + 'A' Frag 16 next; + 'X' 20 free; + 'X' 24 a; + 'X' 28 p; +}; + +defn +Frag(addr) { + complex Frag addr; + print(" state ", addr.state, "\n"); + print(" mem ", addr.mem\X, "\n"); + print(" rp ", addr.rp\X, "\n"); + print(" wp ", addr.wp\X, "\n"); + print(" next ", addr.next\X, "\n"); + print(" free ", addr.free\X, "\n"); + print(" a ", addr.a\X, "\n"); + print(" p ", addr.p\X, "\n"); +}; + +sizeofPacket = 88; +aggr Packet +{ + 'D' 0 size; + 'D' 4 asize; + 'U' 8 pc; + 'A' Packet 12 next; + 'A' Frag 16 first; + 'A' Frag 20 last; + 'a' 24 $local; +}; + +defn +Packet(addr) { + complex Packet addr; + print(" size ", addr.size, "\n"); + print(" asize ", addr.asize, "\n"); + print(" pc ", addr.pc, "\n"); + print(" next ", addr.next\X, "\n"); + print(" first ", addr.first\X, "\n"); + print(" last ", addr.last\X, "\n"); + print(" $local ", addr.$local, "\n"); +}; + +sizeof_2_ = 36; +aggr _2_ +{ + Lock 0 lk; + 'A' Packet 4 packet; + 'D' 8 npacket; + 'A' Frag 12 frag; + 'D' 16 nfrag; + 'A' Mem 20 bigmem; + 'D' 24 nbigmem; + 'A' Mem 28 smallmem; + 'D' 32 nsmallmem; +}; + +defn +_2_(addr) { + complex _2_ addr; + print("Lock lk {\n"); + Lock(addr.lk); + print("}\n"); + print(" packet ", addr.packet\X, "\n"); + print(" npacket ", addr.npacket, "\n"); + print(" frag ", addr.frag\X, "\n"); + print(" nfrag ", addr.nfrag, "\n"); + print(" bigmem ", addr.bigmem\X, "\n"); + print(" nbigmem ", addr.nbigmem, "\n"); + print(" smallmem ", addr.smallmem\X, "\n"); + print(" nsmallmem ", addr.nsmallmem, "\n"); +}; + +complex _2_ freelist; +complex Packet packetalloc:p; +complex Packet packetfree:p; +complex Frag packetfree:f; +complex Frag packetfree:ff; +complex Packet packetdup:p; +complex Frag packetdup:f; +complex Frag packetdup:ff; +complex Packet packetdup:pp; +complex Packet packetsplit:p; +complex Packet packetsplit:pp; +complex Frag packetsplit:f; +complex Frag packetsplit:ff; +complex Packet packetconsume:p; +complex Packet packettrim:p; +complex Frag packettrim:f; +complex Frag packettrim:ff; +complex Packet packetheader:p; +complex Frag packetheader:f; +complex Mem packetheader:m; +complex Packet packettrailer:p; +complex Mem packettrailer:m; +complex Frag packettrailer:f; +complex Packet packetprefix:p; +complex Frag packetprefix:f; +complex Mem packetprefix:m; +complex Packet packetappend:p; +complex Frag packetappend:f; +complex Mem packetappend:m; +complex Packet packetconcat:p; +complex Packet packetconcat:pp; +complex Frag packetconcat:f; +complex Packet packetpeek:p; +complex Frag packetpeek:f; +complex Packet packetcopy:p; +complex Packet packetfragments:p; +complex IOchunk packetfragments:io; +complex Frag packetfragments:f; +complex IOchunk packetfragments:eio; +complex Packet packetstats:p; +complex Frag packetstats:f; +complex Mem packetstats:m; +complex Packet packetsize:p; +complex Frag packetsize:f; +complex Packet packetasize:p; +complex Frag packetasize:f; +complex Packet packetsha1:p; +complex DigestState packetsha1:ds; +complex Frag packetsha1:f; +complex Packet packetcmp:pkt0; +complex Packet packetcmp:pkt1; +complex Frag packetcmp:f0; +complex Frag packetcmp:f1; +complex Packet fragalloc:p; +complex Frag fragalloc:next; +complex Frag fragalloc:f; +complex Frag fragalloc:ef; +complex Mem fragalloc:m; +complex Packet packetforeign:p; +complex Frag packetforeign:f; +complex Packet fragdup:p; +complex Frag fragdup:f; +complex Frag fragdup:ff; +complex Mem fragdup:m; +complex Frag fragfree:f; +complex Mem memalloc:m; +complex Mem memfree:m; +complex Mem memhead:m; +complex Mem memtail:m; |