1*368c31abSDavid du Colombiersizeof_1_ = 8; 2*368c31abSDavid du Colombieraggr _1_ 3*368c31abSDavid du Colombier{ 4*368c31abSDavid du Colombier 'U' 0 lo; 5*368c31abSDavid du Colombier 'U' 4 hi; 6*368c31abSDavid du Colombier}; 7*368c31abSDavid du Colombier 8*368c31abSDavid du Colombierdefn 9*368c31abSDavid du Colombier_1_(addr) { 10*368c31abSDavid du Colombier complex _1_ addr; 11*368c31abSDavid du Colombier print(" lo ", addr.lo, "\n"); 12*368c31abSDavid du Colombier print(" hi ", addr.hi, "\n"); 13*368c31abSDavid du Colombier}; 14*368c31abSDavid du Colombier 15*368c31abSDavid du ColombiersizeofFPdbleword = 8; 16*368c31abSDavid du Colombieraggr FPdbleword 17*368c31abSDavid du Colombier{ 18*368c31abSDavid du Colombier 'F' 0 x; 19*368c31abSDavid du Colombier { 20*368c31abSDavid du Colombier 'U' 0 lo; 21*368c31abSDavid du Colombier 'U' 4 hi; 22*368c31abSDavid du Colombier }; 23*368c31abSDavid du Colombier}; 24*368c31abSDavid du Colombier 25*368c31abSDavid du Colombierdefn 26*368c31abSDavid du ColombierFPdbleword(addr) { 27*368c31abSDavid du Colombier complex FPdbleword addr; 28*368c31abSDavid du Colombier print(" x ", addr.x, "\n"); 29*368c31abSDavid du Colombier print("_1_ {\n"); 30*368c31abSDavid du Colombier _1_(addr+0); 31*368c31abSDavid du Colombier print("}\n"); 32*368c31abSDavid du Colombier}; 33*368c31abSDavid du Colombier 34*368c31abSDavid du ColombierUTFmax = 3; 35*368c31abSDavid du ColombierRunesync = 128; 36*368c31abSDavid du ColombierRuneself = 128; 37*368c31abSDavid du ColombierRuneerror = 65533; 38*368c31abSDavid du ColombiersizeofFmt = 48; 39*368c31abSDavid du Colombieraggr Fmt 40*368c31abSDavid du Colombier{ 41*368c31abSDavid du Colombier 'b' 0 runes; 42*368c31abSDavid du Colombier 'X' 4 start; 43*368c31abSDavid du Colombier 'X' 8 to; 44*368c31abSDavid du Colombier 'X' 12 stop; 45*368c31abSDavid du Colombier 'X' 16 flush; 46*368c31abSDavid du Colombier 'X' 20 farg; 47*368c31abSDavid du Colombier 'D' 24 nfmt; 48*368c31abSDavid du Colombier 'X' 28 args; 49*368c31abSDavid du Colombier 'D' 32 r; 50*368c31abSDavid du Colombier 'D' 36 width; 51*368c31abSDavid du Colombier 'D' 40 prec; 52*368c31abSDavid du Colombier 'U' 44 flags; 53*368c31abSDavid du Colombier}; 54*368c31abSDavid du Colombier 55*368c31abSDavid du Colombierdefn 56*368c31abSDavid du ColombierFmt(addr) { 57*368c31abSDavid du Colombier complex Fmt addr; 58*368c31abSDavid du Colombier print(" runes ", addr.runes, "\n"); 59*368c31abSDavid du Colombier print(" start ", addr.start\X, "\n"); 60*368c31abSDavid du Colombier print(" to ", addr.to\X, "\n"); 61*368c31abSDavid du Colombier print(" stop ", addr.stop\X, "\n"); 62*368c31abSDavid du Colombier print(" flush ", addr.flush\X, "\n"); 63*368c31abSDavid du Colombier print(" farg ", addr.farg\X, "\n"); 64*368c31abSDavid du Colombier print(" nfmt ", addr.nfmt, "\n"); 65*368c31abSDavid du Colombier print(" args ", addr.args\X, "\n"); 66*368c31abSDavid du Colombier print(" r ", addr.r, "\n"); 67*368c31abSDavid du Colombier print(" width ", addr.width, "\n"); 68*368c31abSDavid du Colombier print(" prec ", addr.prec, "\n"); 69*368c31abSDavid du Colombier print(" flags ", addr.flags, "\n"); 70*368c31abSDavid du Colombier}; 71*368c31abSDavid du Colombier 72*368c31abSDavid du ColombierFmtWidth = 1; 73*368c31abSDavid du ColombierFmtLeft = 2; 74*368c31abSDavid du ColombierFmtPrec = 4; 75*368c31abSDavid du ColombierFmtSharp = 8; 76*368c31abSDavid du ColombierFmtSpace = 16; 77*368c31abSDavid du ColombierFmtSign = 32; 78*368c31abSDavid du ColombierFmtZero = 64; 79*368c31abSDavid du ColombierFmtUnsigned = 128; 80*368c31abSDavid du ColombierFmtShort = 256; 81*368c31abSDavid du ColombierFmtLong = 512; 82*368c31abSDavid du ColombierFmtVLong = 1024; 83*368c31abSDavid du ColombierFmtComma = 2048; 84*368c31abSDavid du ColombierFmtByte = 4096; 85*368c31abSDavid du ColombierFmtFlag = 8192; 86*368c31abSDavid du ColombiersizeofTm = 40; 87*368c31abSDavid du Colombieraggr Tm 88*368c31abSDavid du Colombier{ 89*368c31abSDavid du Colombier 'D' 0 sec; 90*368c31abSDavid du Colombier 'D' 4 min; 91*368c31abSDavid du Colombier 'D' 8 hour; 92*368c31abSDavid du Colombier 'D' 12 mday; 93*368c31abSDavid du Colombier 'D' 16 mon; 94*368c31abSDavid du Colombier 'D' 20 year; 95*368c31abSDavid du Colombier 'D' 24 wday; 96*368c31abSDavid du Colombier 'D' 28 yday; 97*368c31abSDavid du Colombier 'a' 32 zone; 98*368c31abSDavid du Colombier 'D' 36 tzoff; 99*368c31abSDavid du Colombier}; 100*368c31abSDavid du Colombier 101*368c31abSDavid du Colombierdefn 102*368c31abSDavid du ColombierTm(addr) { 103*368c31abSDavid du Colombier complex Tm addr; 104*368c31abSDavid du Colombier print(" sec ", addr.sec, "\n"); 105*368c31abSDavid du Colombier print(" min ", addr.min, "\n"); 106*368c31abSDavid du Colombier print(" hour ", addr.hour, "\n"); 107*368c31abSDavid du Colombier print(" mday ", addr.mday, "\n"); 108*368c31abSDavid du Colombier print(" mon ", addr.mon, "\n"); 109*368c31abSDavid du Colombier print(" year ", addr.year, "\n"); 110*368c31abSDavid du Colombier print(" wday ", addr.wday, "\n"); 111*368c31abSDavid du Colombier print(" yday ", addr.yday, "\n"); 112*368c31abSDavid du Colombier print(" zone ", addr.zone, "\n"); 113*368c31abSDavid du Colombier print(" tzoff ", addr.tzoff, "\n"); 114*368c31abSDavid du Colombier}; 115*368c31abSDavid du Colombier 116*368c31abSDavid du ColombierPNPROC = 1; 117*368c31abSDavid du ColombierPNGROUP = 2; 118*368c31abSDavid du ColombierProfoff = 0; 119*368c31abSDavid du ColombierProfuser = 1; 120*368c31abSDavid du ColombierProfkernel = 2; 121*368c31abSDavid du ColombierProftime = 3; 122*368c31abSDavid du ColombierProfsample = 4; 123*368c31abSDavid du ColombiersizeofLock = 4; 124*368c31abSDavid du Colombieraggr Lock 125*368c31abSDavid du Colombier{ 126*368c31abSDavid du Colombier 'D' 0 val; 127*368c31abSDavid du Colombier}; 128*368c31abSDavid du Colombier 129*368c31abSDavid du Colombierdefn 130*368c31abSDavid du ColombierLock(addr) { 131*368c31abSDavid du Colombier complex Lock addr; 132*368c31abSDavid du Colombier print(" val ", addr.val, "\n"); 133*368c31abSDavid du Colombier}; 134*368c31abSDavid du Colombier 135*368c31abSDavid du ColombiersizeofQLp = 12; 136*368c31abSDavid du Colombieraggr QLp 137*368c31abSDavid du Colombier{ 138*368c31abSDavid du Colombier 'D' 0 inuse; 139*368c31abSDavid du Colombier 'A' QLp 4 next; 140*368c31abSDavid du Colombier 'C' 8 state; 141*368c31abSDavid du Colombier}; 142*368c31abSDavid du Colombier 143*368c31abSDavid du Colombierdefn 144*368c31abSDavid du ColombierQLp(addr) { 145*368c31abSDavid du Colombier complex QLp addr; 146*368c31abSDavid du Colombier print(" inuse ", addr.inuse, "\n"); 147*368c31abSDavid du Colombier print(" next ", addr.next\X, "\n"); 148*368c31abSDavid du Colombier print(" state ", addr.state, "\n"); 149*368c31abSDavid du Colombier}; 150*368c31abSDavid du Colombier 151*368c31abSDavid du ColombiersizeofQLock = 16; 152*368c31abSDavid du Colombieraggr QLock 153*368c31abSDavid du Colombier{ 154*368c31abSDavid du Colombier Lock 0 lock; 155*368c31abSDavid du Colombier 'D' 4 locked; 156*368c31abSDavid du Colombier 'A' QLp 8 $head; 157*368c31abSDavid du Colombier 'A' QLp 12 $tail; 158*368c31abSDavid du Colombier}; 159*368c31abSDavid du Colombier 160*368c31abSDavid du Colombierdefn 161*368c31abSDavid du ColombierQLock(addr) { 162*368c31abSDavid du Colombier complex QLock addr; 163*368c31abSDavid du Colombier print("Lock lock {\n"); 164*368c31abSDavid du Colombier Lock(addr.lock); 165*368c31abSDavid du Colombier print("}\n"); 166*368c31abSDavid du Colombier print(" locked ", addr.locked, "\n"); 167*368c31abSDavid du Colombier print(" $head ", addr.$head\X, "\n"); 168*368c31abSDavid du Colombier print(" $tail ", addr.$tail\X, "\n"); 169*368c31abSDavid du Colombier}; 170*368c31abSDavid du Colombier 171*368c31abSDavid du ColombiersizeofRWLock = 20; 172*368c31abSDavid du Colombieraggr RWLock 173*368c31abSDavid du Colombier{ 174*368c31abSDavid du Colombier Lock 0 lock; 175*368c31abSDavid du Colombier 'D' 4 readers; 176*368c31abSDavid du Colombier 'D' 8 writer; 177*368c31abSDavid du Colombier 'A' QLp 12 $head; 178*368c31abSDavid du Colombier 'A' QLp 16 $tail; 179*368c31abSDavid du Colombier}; 180*368c31abSDavid du Colombier 181*368c31abSDavid du Colombierdefn 182*368c31abSDavid du ColombierRWLock(addr) { 183*368c31abSDavid du Colombier complex RWLock addr; 184*368c31abSDavid du Colombier print("Lock lock {\n"); 185*368c31abSDavid du Colombier Lock(addr.lock); 186*368c31abSDavid du Colombier print("}\n"); 187*368c31abSDavid du Colombier print(" readers ", addr.readers, "\n"); 188*368c31abSDavid du Colombier print(" writer ", addr.writer, "\n"); 189*368c31abSDavid du Colombier print(" $head ", addr.$head\X, "\n"); 190*368c31abSDavid du Colombier print(" $tail ", addr.$tail\X, "\n"); 191*368c31abSDavid du Colombier}; 192*368c31abSDavid du Colombier 193*368c31abSDavid du ColombiersizeofRendez = 12; 194*368c31abSDavid du Colombieraggr Rendez 195*368c31abSDavid du Colombier{ 196*368c31abSDavid du Colombier 'A' QLock 0 l; 197*368c31abSDavid du Colombier 'A' QLp 4 $head; 198*368c31abSDavid du Colombier 'A' QLp 8 $tail; 199*368c31abSDavid du Colombier}; 200*368c31abSDavid du Colombier 201*368c31abSDavid du Colombierdefn 202*368c31abSDavid du ColombierRendez(addr) { 203*368c31abSDavid du Colombier complex Rendez addr; 204*368c31abSDavid du Colombier print(" l ", addr.l\X, "\n"); 205*368c31abSDavid du Colombier print(" $head ", addr.$head\X, "\n"); 206*368c31abSDavid du Colombier print(" $tail ", addr.$tail\X, "\n"); 207*368c31abSDavid du Colombier}; 208*368c31abSDavid du Colombier 209*368c31abSDavid du ColombiersizeofNetConnInfo = 36; 210*368c31abSDavid du Colombieraggr NetConnInfo 211*368c31abSDavid du Colombier{ 212*368c31abSDavid du Colombier 'X' 0 dir; 213*368c31abSDavid du Colombier 'X' 4 root; 214*368c31abSDavid du Colombier 'X' 8 spec; 215*368c31abSDavid du Colombier 'X' 12 lsys; 216*368c31abSDavid du Colombier 'X' 16 lserv; 217*368c31abSDavid du Colombier 'X' 20 rsys; 218*368c31abSDavid du Colombier 'X' 24 rserv; 219*368c31abSDavid du Colombier 'X' 28 laddr; 220*368c31abSDavid du Colombier 'X' 32 raddr; 221*368c31abSDavid du Colombier}; 222*368c31abSDavid du Colombier 223*368c31abSDavid du Colombierdefn 224*368c31abSDavid du ColombierNetConnInfo(addr) { 225*368c31abSDavid du Colombier complex NetConnInfo addr; 226*368c31abSDavid du Colombier print(" dir ", addr.dir\X, "\n"); 227*368c31abSDavid du Colombier print(" root ", addr.root\X, "\n"); 228*368c31abSDavid du Colombier print(" spec ", addr.spec\X, "\n"); 229*368c31abSDavid du Colombier print(" lsys ", addr.lsys\X, "\n"); 230*368c31abSDavid du Colombier print(" lserv ", addr.lserv\X, "\n"); 231*368c31abSDavid du Colombier print(" rsys ", addr.rsys\X, "\n"); 232*368c31abSDavid du Colombier print(" rserv ", addr.rserv\X, "\n"); 233*368c31abSDavid du Colombier print(" laddr ", addr.laddr\X, "\n"); 234*368c31abSDavid du Colombier print(" raddr ", addr.raddr\X, "\n"); 235*368c31abSDavid du Colombier}; 236*368c31abSDavid du Colombier 237*368c31abSDavid du ColombierRFNAMEG = 1; 238*368c31abSDavid du ColombierRFENVG = 2; 239*368c31abSDavid du ColombierRFFDG = 4; 240*368c31abSDavid du ColombierRFNOTEG = 8; 241*368c31abSDavid du ColombierRFPROC = 16; 242*368c31abSDavid du ColombierRFMEM = 32; 243*368c31abSDavid du ColombierRFNOWAIT = 64; 244*368c31abSDavid du ColombierRFCNAMEG = 1024; 245*368c31abSDavid du ColombierRFCENVG = 2048; 246*368c31abSDavid du ColombierRFCFDG = 4096; 247*368c31abSDavid du ColombierRFREND = 8192; 248*368c31abSDavid du ColombierRFNOMNT = 16384; 249*368c31abSDavid du ColombiersizeofQid = 16; 250*368c31abSDavid du Colombieraggr Qid 251*368c31abSDavid du Colombier{ 252*368c31abSDavid du Colombier 'W' 0 path; 253*368c31abSDavid du Colombier 'U' 8 vers; 254*368c31abSDavid du Colombier 'b' 12 type; 255*368c31abSDavid du Colombier}; 256*368c31abSDavid du Colombier 257*368c31abSDavid du Colombierdefn 258*368c31abSDavid du ColombierQid(addr) { 259*368c31abSDavid du Colombier complex Qid addr; 260*368c31abSDavid du Colombier print(" path ", addr.path, "\n"); 261*368c31abSDavid du Colombier print(" vers ", addr.vers, "\n"); 262*368c31abSDavid du Colombier print(" type ", addr.type, "\n"); 263*368c31abSDavid du Colombier}; 264*368c31abSDavid du Colombier 265*368c31abSDavid du ColombiersizeofDir = 60; 266*368c31abSDavid du Colombieraggr Dir 267*368c31abSDavid du Colombier{ 268*368c31abSDavid du Colombier 'u' 0 type; 269*368c31abSDavid du Colombier 'U' 4 dev; 270*368c31abSDavid du Colombier Qid 8 qid; 271*368c31abSDavid du Colombier 'U' 24 mode; 272*368c31abSDavid du Colombier 'U' 28 atime; 273*368c31abSDavid du Colombier 'U' 32 mtime; 274*368c31abSDavid du Colombier 'V' 36 length; 275*368c31abSDavid du Colombier 'X' 44 name; 276*368c31abSDavid du Colombier 'X' 48 uid; 277*368c31abSDavid du Colombier 'X' 52 gid; 278*368c31abSDavid du Colombier 'X' 56 muid; 279*368c31abSDavid du Colombier}; 280*368c31abSDavid du Colombier 281*368c31abSDavid du Colombierdefn 282*368c31abSDavid du ColombierDir(addr) { 283*368c31abSDavid du Colombier complex Dir addr; 284*368c31abSDavid du Colombier print(" type ", addr.type, "\n"); 285*368c31abSDavid du Colombier print(" dev ", addr.dev, "\n"); 286*368c31abSDavid du Colombier print("Qid qid {\n"); 287*368c31abSDavid du Colombier Qid(addr.qid); 288*368c31abSDavid du Colombier print("}\n"); 289*368c31abSDavid du Colombier print(" mode ", addr.mode, "\n"); 290*368c31abSDavid du Colombier print(" atime ", addr.atime, "\n"); 291*368c31abSDavid du Colombier print(" mtime ", addr.mtime, "\n"); 292*368c31abSDavid du Colombier print(" length ", addr.length, "\n"); 293*368c31abSDavid du Colombier print(" name ", addr.name\X, "\n"); 294*368c31abSDavid du Colombier print(" uid ", addr.uid\X, "\n"); 295*368c31abSDavid du Colombier print(" gid ", addr.gid\X, "\n"); 296*368c31abSDavid du Colombier print(" muid ", addr.muid\X, "\n"); 297*368c31abSDavid du Colombier}; 298*368c31abSDavid du Colombier 299*368c31abSDavid du ColombiersizeofWaitmsg = 20; 300*368c31abSDavid du Colombieraggr Waitmsg 301*368c31abSDavid du Colombier{ 302*368c31abSDavid du Colombier 'D' 0 pid; 303*368c31abSDavid du Colombier 'a' 4 time; 304*368c31abSDavid du Colombier 'X' 16 msg; 305*368c31abSDavid du Colombier}; 306*368c31abSDavid du Colombier 307*368c31abSDavid du Colombierdefn 308*368c31abSDavid du ColombierWaitmsg(addr) { 309*368c31abSDavid du Colombier complex Waitmsg addr; 310*368c31abSDavid du Colombier print(" pid ", addr.pid, "\n"); 311*368c31abSDavid du Colombier print(" time ", addr.time, "\n"); 312*368c31abSDavid du Colombier print(" msg ", addr.msg\X, "\n"); 313*368c31abSDavid du Colombier}; 314*368c31abSDavid du Colombier 315*368c31abSDavid du ColombiersizeofIOchunk = 8; 316*368c31abSDavid du Colombieraggr IOchunk 317*368c31abSDavid du Colombier{ 318*368c31abSDavid du Colombier 'X' 0 addr; 319*368c31abSDavid du Colombier 'U' 4 len; 320*368c31abSDavid du Colombier}; 321*368c31abSDavid du Colombier 322*368c31abSDavid du Colombierdefn 323*368c31abSDavid du ColombierIOchunk(addr) { 324*368c31abSDavid du Colombier complex IOchunk addr; 325*368c31abSDavid du Colombier print(" addr ", addr.addr\X, "\n"); 326*368c31abSDavid du Colombier print(" len ", addr.len, "\n"); 327*368c31abSDavid du Colombier}; 328*368c31abSDavid du Colombier 329*368c31abSDavid du ColombierMaxFragSize = 9216; 330*368c31abSDavid du ColombiersizeofVtLog = 40; 331*368c31abSDavid du Colombieraggr VtLog 332*368c31abSDavid du Colombier{ 333*368c31abSDavid du Colombier 'A' VtLog 0 next; 334*368c31abSDavid du Colombier 'X' 4 name; 335*368c31abSDavid du Colombier 'X' 8 chunk; 336*368c31abSDavid du Colombier 'U' 12 nchunk; 337*368c31abSDavid du Colombier 'X' 16 w; 338*368c31abSDavid du Colombier QLock 20 lk; 339*368c31abSDavid du Colombier 'D' 36 ref; 340*368c31abSDavid du Colombier}; 341*368c31abSDavid du Colombier 342*368c31abSDavid du Colombierdefn 343*368c31abSDavid du ColombierVtLog(addr) { 344*368c31abSDavid du Colombier complex VtLog addr; 345*368c31abSDavid du Colombier print(" next ", addr.next\X, "\n"); 346*368c31abSDavid du Colombier print(" name ", addr.name\X, "\n"); 347*368c31abSDavid du Colombier print(" chunk ", addr.chunk\X, "\n"); 348*368c31abSDavid du Colombier print(" nchunk ", addr.nchunk, "\n"); 349*368c31abSDavid du Colombier print(" w ", addr.w\X, "\n"); 350*368c31abSDavid du Colombier print("QLock lk {\n"); 351*368c31abSDavid du Colombier QLock(addr.lk); 352*368c31abSDavid du Colombier print("}\n"); 353*368c31abSDavid du Colombier print(" ref ", addr.ref, "\n"); 354*368c31abSDavid du Colombier}; 355*368c31abSDavid du Colombier 356*368c31abSDavid du ColombiersizeofVtLogChunk = 12; 357*368c31abSDavid du Colombieraggr VtLogChunk 358*368c31abSDavid du Colombier{ 359*368c31abSDavid du Colombier 'X' 0 p; 360*368c31abSDavid du Colombier 'X' 4 ep; 361*368c31abSDavid du Colombier 'X' 8 wp; 362*368c31abSDavid du Colombier}; 363*368c31abSDavid du Colombier 364*368c31abSDavid du Colombierdefn 365*368c31abSDavid du ColombierVtLogChunk(addr) { 366*368c31abSDavid du Colombier complex VtLogChunk addr; 367*368c31abSDavid du Colombier print(" p ", addr.p\X, "\n"); 368*368c31abSDavid du Colombier print(" ep ", addr.ep\X, "\n"); 369*368c31abSDavid du Colombier print(" wp ", addr.wp\X, "\n"); 370*368c31abSDavid du Colombier}; 371*368c31abSDavid du Colombier 372*368c31abSDavid du ColombierVtScoreSize = 20; 373*368c31abSDavid du ColombierVtMaxStringSize = 1024; 374*368c31abSDavid du ColombierVtMaxLumpSize = 57344; 375*368c31abSDavid du ColombierVtPointerDepth = 7; 376*368c31abSDavid du ColombierVtDataType = 0; 377*368c31abSDavid du ColombierVtDirType = 8; 378*368c31abSDavid du ColombierVtRootType = 16; 379*368c31abSDavid du ColombierVtMaxType = 17; 380*368c31abSDavid du ColombierVtCorruptType = 255; 381*368c31abSDavid du ColombierVtTypeDepthMask = 7; 382*368c31abSDavid du ColombierVtTypeBaseMask = -8; 383*368c31abSDavid du ColombierVtEntryActive = 1; 384*368c31abSDavid du Colombier_VtEntryDir = 2; 385*368c31abSDavid du Colombier_VtEntryDepthShift = 2; 386*368c31abSDavid du Colombier_VtEntryDepthMask = 28; 387*368c31abSDavid du ColombierVtEntryLocal = 32; 388*368c31abSDavid du ColombierVtEntrySize = 40; 389*368c31abSDavid du ColombiersizeofVtEntry = 40; 390*368c31abSDavid du Colombieraggr VtEntry 391*368c31abSDavid du Colombier{ 392*368c31abSDavid du Colombier 'U' 0 gen; 393*368c31abSDavid du Colombier 'u' 4 psize; 394*368c31abSDavid du Colombier 'u' 6 dsize; 395*368c31abSDavid du Colombier 'b' 8 type; 396*368c31abSDavid du Colombier 'b' 9 flags; 397*368c31abSDavid du Colombier 'W' 12 size; 398*368c31abSDavid du Colombier 'a' 20 score; 399*368c31abSDavid du Colombier}; 400*368c31abSDavid du Colombier 401*368c31abSDavid du Colombierdefn 402*368c31abSDavid du ColombierVtEntry(addr) { 403*368c31abSDavid du Colombier complex VtEntry addr; 404*368c31abSDavid du Colombier print(" gen ", addr.gen, "\n"); 405*368c31abSDavid du Colombier print(" psize ", addr.psize, "\n"); 406*368c31abSDavid du Colombier print(" dsize ", addr.dsize, "\n"); 407*368c31abSDavid du Colombier print(" type ", addr.type, "\n"); 408*368c31abSDavid du Colombier print(" flags ", addr.flags, "\n"); 409*368c31abSDavid du Colombier print(" size ", addr.size, "\n"); 410*368c31abSDavid du Colombier print(" score ", addr.score, "\n"); 411*368c31abSDavid du Colombier}; 412*368c31abSDavid du Colombier 413*368c31abSDavid du ColombiersizeofVtRoot = 300; 414*368c31abSDavid du Colombieraggr VtRoot 415*368c31abSDavid du Colombier{ 416*368c31abSDavid du Colombier 'a' 0 name; 417*368c31abSDavid du Colombier 'a' 128 type; 418*368c31abSDavid du Colombier 'a' 256 score; 419*368c31abSDavid du Colombier 'u' 276 blocksize; 420*368c31abSDavid du Colombier 'a' 278 prev; 421*368c31abSDavid du Colombier}; 422*368c31abSDavid du Colombier 423*368c31abSDavid du Colombierdefn 424*368c31abSDavid du ColombierVtRoot(addr) { 425*368c31abSDavid du Colombier complex VtRoot addr; 426*368c31abSDavid du Colombier print(" name ", addr.name, "\n"); 427*368c31abSDavid du Colombier print(" type ", addr.type, "\n"); 428*368c31abSDavid du Colombier print(" score ", addr.score, "\n"); 429*368c31abSDavid du Colombier print(" blocksize ", addr.blocksize, "\n"); 430*368c31abSDavid du Colombier print(" prev ", addr.prev, "\n"); 431*368c31abSDavid du Colombier}; 432*368c31abSDavid du Colombier 433*368c31abSDavid du ColombierVtRootSize = 300; 434*368c31abSDavid du ColombierVtRootVersion = 2; 435*368c31abSDavid du ColombierVtCryptoStrengthNone = 0; 436*368c31abSDavid du ColombierVtCryptoStrengthAuth = 1; 437*368c31abSDavid du ColombierVtCryptoStrengthWeak = 2; 438*368c31abSDavid du ColombierVtCryptoStrengthStrong = 3; 439*368c31abSDavid du ColombierVtCryptoNone = 0; 440*368c31abSDavid du ColombierVtCryptoSSL3 = 1; 441*368c31abSDavid du ColombierVtCryptoTLS1 = 2; 442*368c31abSDavid du ColombierVtCryptoMax = 3; 443*368c31abSDavid du ColombierVtCodecNone = 0; 444*368c31abSDavid du ColombierVtCodecDeflate = 1; 445*368c31abSDavid du ColombierVtCodecThwack = 2; 446*368c31abSDavid du ColombierVtCodecMax = 3; 447*368c31abSDavid du ColombierVtRerror = 1; 448*368c31abSDavid du ColombierVtTping = 2; 449*368c31abSDavid du ColombierVtRping = 3; 450*368c31abSDavid du ColombierVtThello = 4; 451*368c31abSDavid du ColombierVtRhello = 5; 452*368c31abSDavid du ColombierVtTgoodbye = 6; 453*368c31abSDavid du ColombierVtRgoodbye = 7; 454*368c31abSDavid du ColombierVtTauth0 = 8; 455*368c31abSDavid du ColombierVtRauth0 = 9; 456*368c31abSDavid du ColombierVtTauth1 = 10; 457*368c31abSDavid du ColombierVtRauth1 = 11; 458*368c31abSDavid du ColombierVtTread = 12; 459*368c31abSDavid du ColombierVtRread = 13; 460*368c31abSDavid du ColombierVtTwrite = 14; 461*368c31abSDavid du ColombierVtRwrite = 15; 462*368c31abSDavid du ColombierVtTsync = 16; 463*368c31abSDavid du ColombierVtRsync = 17; 464*368c31abSDavid du ColombierVtTmax = 18; 465*368c31abSDavid du ColombiersizeofVtFcall = 80; 466*368c31abSDavid du Colombieraggr VtFcall 467*368c31abSDavid du Colombier{ 468*368c31abSDavid du Colombier 'b' 0 msgtype; 469*368c31abSDavid du Colombier 'b' 1 tag; 470*368c31abSDavid du Colombier 'X' 4 error; 471*368c31abSDavid du Colombier 'X' 8 version; 472*368c31abSDavid du Colombier 'X' 12 uid; 473*368c31abSDavid du Colombier 'b' 16 strength; 474*368c31abSDavid du Colombier 'X' 20 crypto; 475*368c31abSDavid du Colombier 'U' 24 ncrypto; 476*368c31abSDavid du Colombier 'X' 28 codec; 477*368c31abSDavid du Colombier 'U' 32 ncodec; 478*368c31abSDavid du Colombier 'X' 36 sid; 479*368c31abSDavid du Colombier 'b' 40 rcrypto; 480*368c31abSDavid du Colombier 'b' 41 rcodec; 481*368c31abSDavid du Colombier 'X' 44 auth; 482*368c31abSDavid du Colombier 'U' 48 nauth; 483*368c31abSDavid du Colombier 'a' 52 score; 484*368c31abSDavid du Colombier 'b' 72 blocktype; 485*368c31abSDavid du Colombier 'u' 74 count; 486*368c31abSDavid du Colombier 'X' 76 data; 487*368c31abSDavid du Colombier}; 488*368c31abSDavid du Colombier 489*368c31abSDavid du Colombierdefn 490*368c31abSDavid du ColombierVtFcall(addr) { 491*368c31abSDavid du Colombier complex VtFcall addr; 492*368c31abSDavid du Colombier print(" msgtype ", addr.msgtype, "\n"); 493*368c31abSDavid du Colombier print(" tag ", addr.tag, "\n"); 494*368c31abSDavid du Colombier print(" error ", addr.error\X, "\n"); 495*368c31abSDavid du Colombier print(" version ", addr.version\X, "\n"); 496*368c31abSDavid du Colombier print(" uid ", addr.uid\X, "\n"); 497*368c31abSDavid du Colombier print(" strength ", addr.strength, "\n"); 498*368c31abSDavid du Colombier print(" crypto ", addr.crypto\X, "\n"); 499*368c31abSDavid du Colombier print(" ncrypto ", addr.ncrypto, "\n"); 500*368c31abSDavid du Colombier print(" codec ", addr.codec\X, "\n"); 501*368c31abSDavid du Colombier print(" ncodec ", addr.ncodec, "\n"); 502*368c31abSDavid du Colombier print(" sid ", addr.sid\X, "\n"); 503*368c31abSDavid du Colombier print(" rcrypto ", addr.rcrypto, "\n"); 504*368c31abSDavid du Colombier print(" rcodec ", addr.rcodec, "\n"); 505*368c31abSDavid du Colombier print(" auth ", addr.auth\X, "\n"); 506*368c31abSDavid du Colombier print(" nauth ", addr.nauth, "\n"); 507*368c31abSDavid du Colombier print(" score ", addr.score, "\n"); 508*368c31abSDavid du Colombier print(" blocktype ", addr.blocktype, "\n"); 509*368c31abSDavid du Colombier print(" count ", addr.count, "\n"); 510*368c31abSDavid du Colombier print(" data ", addr.data\X, "\n"); 511*368c31abSDavid du Colombier}; 512*368c31abSDavid du Colombier 513*368c31abSDavid du ColombierVtStateAlloc = 0; 514*368c31abSDavid du ColombierVtStateConnected = 1; 515*368c31abSDavid du ColombierVtStateClosed = 2; 516*368c31abSDavid du ColombiersizeofVtConn = 1404; 517*368c31abSDavid du Colombieraggr VtConn 518*368c31abSDavid du Colombier{ 519*368c31abSDavid du Colombier QLock 0 lk; 520*368c31abSDavid du Colombier QLock 16 inlk; 521*368c31abSDavid du Colombier QLock 32 outlk; 522*368c31abSDavid du Colombier 'D' 48 debug; 523*368c31abSDavid du Colombier 'D' 52 infd; 524*368c31abSDavid du Colombier 'D' 56 outfd; 525*368c31abSDavid du Colombier 'D' 60 muxer; 526*368c31abSDavid du Colombier 'X' 64 writeq; 527*368c31abSDavid du Colombier 'X' 68 readq; 528*368c31abSDavid du Colombier 'D' 72 state; 529*368c31abSDavid du Colombier 'a' 76 wait; 530*368c31abSDavid du Colombier 'U' 1100 ntag; 531*368c31abSDavid du Colombier 'U' 1104 nsleep; 532*368c31abSDavid du Colombier 'X' 1108 part; 533*368c31abSDavid du Colombier Rendez 1112 tagrend; 534*368c31abSDavid du Colombier Rendez 1124 rpcfork; 535*368c31abSDavid du Colombier 'X' 1136 version; 536*368c31abSDavid du Colombier 'X' 1140 uid; 537*368c31abSDavid du Colombier 'X' 1144 sid; 538*368c31abSDavid du Colombier 'a' 1148 addr; 539*368c31abSDavid du Colombier}; 540*368c31abSDavid du Colombier 541*368c31abSDavid du Colombierdefn 542*368c31abSDavid du ColombierVtConn(addr) { 543*368c31abSDavid du Colombier complex VtConn addr; 544*368c31abSDavid du Colombier print("QLock lk {\n"); 545*368c31abSDavid du Colombier QLock(addr.lk); 546*368c31abSDavid du Colombier print("}\n"); 547*368c31abSDavid du Colombier print("QLock inlk {\n"); 548*368c31abSDavid du Colombier QLock(addr.inlk); 549*368c31abSDavid du Colombier print("}\n"); 550*368c31abSDavid du Colombier print("QLock outlk {\n"); 551*368c31abSDavid du Colombier QLock(addr.outlk); 552*368c31abSDavid du Colombier print("}\n"); 553*368c31abSDavid du Colombier print(" debug ", addr.debug, "\n"); 554*368c31abSDavid du Colombier print(" infd ", addr.infd, "\n"); 555*368c31abSDavid du Colombier print(" outfd ", addr.outfd, "\n"); 556*368c31abSDavid du Colombier print(" muxer ", addr.muxer, "\n"); 557*368c31abSDavid du Colombier print(" writeq ", addr.writeq\X, "\n"); 558*368c31abSDavid du Colombier print(" readq ", addr.readq\X, "\n"); 559*368c31abSDavid du Colombier print(" state ", addr.state, "\n"); 560*368c31abSDavid du Colombier print(" wait ", addr.wait, "\n"); 561*368c31abSDavid du Colombier print(" ntag ", addr.ntag, "\n"); 562*368c31abSDavid du Colombier print(" nsleep ", addr.nsleep, "\n"); 563*368c31abSDavid du Colombier print(" part ", addr.part\X, "\n"); 564*368c31abSDavid du Colombier print("Rendez tagrend {\n"); 565*368c31abSDavid du Colombier Rendez(addr.tagrend); 566*368c31abSDavid du Colombier print("}\n"); 567*368c31abSDavid du Colombier print("Rendez rpcfork {\n"); 568*368c31abSDavid du Colombier Rendez(addr.rpcfork); 569*368c31abSDavid du Colombier print("}\n"); 570*368c31abSDavid du Colombier print(" version ", addr.version\X, "\n"); 571*368c31abSDavid du Colombier print(" uid ", addr.uid\X, "\n"); 572*368c31abSDavid du Colombier print(" sid ", addr.sid\X, "\n"); 573*368c31abSDavid du Colombier print(" addr ", addr.addr, "\n"); 574*368c31abSDavid du Colombier}; 575*368c31abSDavid du Colombier 576*368c31abSDavid du ColombiersizeofVtReq = 168; 577*368c31abSDavid du Colombieraggr VtReq 578*368c31abSDavid du Colombier{ 579*368c31abSDavid du Colombier VtFcall 0 tx; 580*368c31abSDavid du Colombier VtFcall 80 rx; 581*368c31abSDavid du Colombier 'X' 160 srv; 582*368c31abSDavid du Colombier 'X' 164 sc; 583*368c31abSDavid du Colombier}; 584*368c31abSDavid du Colombier 585*368c31abSDavid du Colombierdefn 586*368c31abSDavid du ColombierVtReq(addr) { 587*368c31abSDavid du Colombier complex VtReq addr; 588*368c31abSDavid du Colombier print("VtFcall tx {\n"); 589*368c31abSDavid du Colombier VtFcall(addr.tx); 590*368c31abSDavid du Colombier print("}\n"); 591*368c31abSDavid du Colombier print("VtFcall rx {\n"); 592*368c31abSDavid du Colombier VtFcall(addr.rx); 593*368c31abSDavid du Colombier print("}\n"); 594*368c31abSDavid du Colombier print(" srv ", addr.srv\X, "\n"); 595*368c31abSDavid du Colombier print(" sc ", addr.sc\X, "\n"); 596*368c31abSDavid du Colombier}; 597*368c31abSDavid du Colombier 598*368c31abSDavid du ColombierNilBlock = -1; 599*368c31abSDavid du ColombiersizeofVtBlock = 84; 600*368c31abSDavid du Colombieraggr VtBlock 601*368c31abSDavid du Colombier{ 602*368c31abSDavid du Colombier 'X' 0 c; 603*368c31abSDavid du Colombier QLock 4 lk; 604*368c31abSDavid du Colombier 'X' 20 data; 605*368c31abSDavid du Colombier 'a' 24 score; 606*368c31abSDavid du Colombier 'b' 44 type; 607*368c31abSDavid du Colombier 'D' 48 nlock; 608*368c31abSDavid du Colombier 'D' 52 iostate; 609*368c31abSDavid du Colombier 'D' 56 ref; 610*368c31abSDavid du Colombier 'U' 60 heap; 611*368c31abSDavid du Colombier 'A' VtBlock 64 next; 612*368c31abSDavid du Colombier 'A' VtBlock 68 prev; 613*368c31abSDavid du Colombier 'U' 72 used; 614*368c31abSDavid du Colombier 'U' 76 used2; 615*368c31abSDavid du Colombier 'U' 80 addr; 616*368c31abSDavid du Colombier}; 617*368c31abSDavid du Colombier 618*368c31abSDavid du Colombierdefn 619*368c31abSDavid du ColombierVtBlock(addr) { 620*368c31abSDavid du Colombier complex VtBlock addr; 621*368c31abSDavid du Colombier print(" c ", addr.c\X, "\n"); 622*368c31abSDavid du Colombier print("QLock lk {\n"); 623*368c31abSDavid du Colombier QLock(addr.lk); 624*368c31abSDavid du Colombier print("}\n"); 625*368c31abSDavid du Colombier print(" data ", addr.data\X, "\n"); 626*368c31abSDavid du Colombier print(" score ", addr.score, "\n"); 627*368c31abSDavid du Colombier print(" type ", addr.type, "\n"); 628*368c31abSDavid du Colombier print(" nlock ", addr.nlock, "\n"); 629*368c31abSDavid du Colombier print(" iostate ", addr.iostate, "\n"); 630*368c31abSDavid du Colombier print(" ref ", addr.ref, "\n"); 631*368c31abSDavid du Colombier print(" heap ", addr.heap, "\n"); 632*368c31abSDavid du Colombier print(" next ", addr.next\X, "\n"); 633*368c31abSDavid du Colombier print(" prev ", addr.prev\X, "\n"); 634*368c31abSDavid du Colombier print(" used ", addr.used, "\n"); 635*368c31abSDavid du Colombier print(" used2 ", addr.used2, "\n"); 636*368c31abSDavid du Colombier print(" addr ", addr.addr, "\n"); 637*368c31abSDavid du Colombier}; 638*368c31abSDavid du Colombier 639*368c31abSDavid du ColombiersizeofVtFile = 84; 640*368c31abSDavid du Colombieraggr VtFile 641*368c31abSDavid du Colombier{ 642*368c31abSDavid du Colombier QLock 0 lk; 643*368c31abSDavid du Colombier 'D' 16 ref; 644*368c31abSDavid du Colombier 'D' 20 $local; 645*368c31abSDavid du Colombier 'A' VtBlock 24 b; 646*368c31abSDavid du Colombier 'a' 28 score; 647*368c31abSDavid du Colombier 'X' 48 c; 648*368c31abSDavid du Colombier 'D' 52 mode; 649*368c31abSDavid du Colombier 'U' 56 gen; 650*368c31abSDavid du Colombier 'D' 60 dsize; 651*368c31abSDavid du Colombier 'D' 64 psize; 652*368c31abSDavid du Colombier 'D' 68 dir; 653*368c31abSDavid du Colombier 'A' VtFile 72 parent; 654*368c31abSDavid du Colombier 'D' 76 epb; 655*368c31abSDavid du Colombier 'U' 80 offset; 656*368c31abSDavid du Colombier}; 657*368c31abSDavid du Colombier 658*368c31abSDavid du Colombierdefn 659*368c31abSDavid du ColombierVtFile(addr) { 660*368c31abSDavid du Colombier complex VtFile addr; 661*368c31abSDavid du Colombier print("QLock lk {\n"); 662*368c31abSDavid du Colombier QLock(addr.lk); 663*368c31abSDavid du Colombier print("}\n"); 664*368c31abSDavid du Colombier print(" ref ", addr.ref, "\n"); 665*368c31abSDavid du Colombier print(" $local ", addr.$local, "\n"); 666*368c31abSDavid du Colombier print(" b ", addr.b\X, "\n"); 667*368c31abSDavid du Colombier print(" score ", addr.score, "\n"); 668*368c31abSDavid du Colombier print(" c ", addr.c\X, "\n"); 669*368c31abSDavid du Colombier print(" mode ", addr.mode, "\n"); 670*368c31abSDavid du Colombier print(" gen ", addr.gen, "\n"); 671*368c31abSDavid du Colombier print(" dsize ", addr.dsize, "\n"); 672*368c31abSDavid du Colombier print(" psize ", addr.psize, "\n"); 673*368c31abSDavid du Colombier print(" dir ", addr.dir, "\n"); 674*368c31abSDavid du Colombier print(" parent ", addr.parent\X, "\n"); 675*368c31abSDavid du Colombier print(" epb ", addr.epb, "\n"); 676*368c31abSDavid du Colombier print(" offset ", addr.offset, "\n"); 677*368c31abSDavid du Colombier}; 678*368c31abSDavid du Colombier 679*368c31abSDavid du ColombierVtOREAD = 0; 680*368c31abSDavid du ColombierVtOWRITE = 1; 681*368c31abSDavid du ColombierVtORDWR = 2; 682*368c31abSDavid du ColombiersizeofRwait = 24; 683*368c31abSDavid du Colombieraggr Rwait 684*368c31abSDavid du Colombier{ 685*368c31abSDavid du Colombier Rendez 0 r; 686*368c31abSDavid du Colombier 'X' 12 p; 687*368c31abSDavid du Colombier 'D' 16 done; 688*368c31abSDavid du Colombier 'D' 20 sleeping; 689*368c31abSDavid du Colombier}; 690*368c31abSDavid du Colombier 691*368c31abSDavid du Colombierdefn 692*368c31abSDavid du ColombierRwait(addr) { 693*368c31abSDavid du Colombier complex Rwait addr; 694*368c31abSDavid du Colombier print("Rendez r {\n"); 695*368c31abSDavid du Colombier Rendez(addr.r); 696*368c31abSDavid du Colombier print("}\n"); 697*368c31abSDavid du Colombier print(" p ", addr.p\X, "\n"); 698*368c31abSDavid du Colombier print(" done ", addr.done, "\n"); 699*368c31abSDavid du Colombier print(" sleeping ", addr.sleeping, "\n"); 700*368c31abSDavid du Colombier}; 701*368c31abSDavid du Colombier 702*368c31abSDavid du Colombiercomplex VtConn vtrpc:z; 703*368c31abSDavid du Colombiercomplex Rwait vtrpc:r; 704*368c31abSDavid du Colombiercomplex Rwait vtrpc:rr; 705*368c31abSDavid du Colombiercomplex VtConn gettag:z; 706*368c31abSDavid du Colombiercomplex Rwait gettag:r; 707*368c31abSDavid du Colombiercomplex VtConn puttag:z; 708*368c31abSDavid du Colombiercomplex Rwait puttag:r; 709*368c31abSDavid du Colombiercomplex VtConn muxrpc:z; 710*368c31abSDavid du Colombiercomplex Rwait muxrpc:r; 711