1*9a747e4fSDavid du Colombiersizeof_1_ = 8; 2*9a747e4fSDavid du Colombieraggr _1_ 3*9a747e4fSDavid du Colombier{ 4*9a747e4fSDavid du Colombier 'D' 0 lo; 5*9a747e4fSDavid du Colombier 'D' 4 hi; 6*9a747e4fSDavid du Colombier}; 7*9a747e4fSDavid du Colombier 8*9a747e4fSDavid du Colombierdefn 9*9a747e4fSDavid du Colombier_1_(addr) { 10*9a747e4fSDavid du Colombier complex _1_ addr; 11*9a747e4fSDavid du Colombier print(" lo ", addr.lo, "\n"); 12*9a747e4fSDavid du Colombier print(" hi ", addr.hi, "\n"); 13*9a747e4fSDavid du Colombier}; 14*9a747e4fSDavid du Colombier 15*9a747e4fSDavid du ColombiersizeofFPdbleword = 8; 16*9a747e4fSDavid du Colombieraggr FPdbleword 17*9a747e4fSDavid du Colombier{ 18*9a747e4fSDavid du Colombier 'F' 0 x; 19*9a747e4fSDavid du Colombier { 20*9a747e4fSDavid du Colombier 'D' 0 lo; 21*9a747e4fSDavid du Colombier 'D' 4 hi; 22*9a747e4fSDavid du Colombier }; 23*9a747e4fSDavid du Colombier}; 24*9a747e4fSDavid du Colombier 25*9a747e4fSDavid du Colombierdefn 26*9a747e4fSDavid du ColombierFPdbleword(addr) { 27*9a747e4fSDavid du Colombier complex FPdbleword addr; 28*9a747e4fSDavid du Colombier print(" x ", addr.x, "\n"); 29*9a747e4fSDavid du Colombier print("_1_ {\n"); 30*9a747e4fSDavid du Colombier _1_(addr+0); 31*9a747e4fSDavid du Colombier print("}\n"); 32*9a747e4fSDavid du Colombier}; 33*9a747e4fSDavid du Colombier 34*9a747e4fSDavid du ColombierUTFmax = 3; 35*9a747e4fSDavid du ColombierRunesync = 128; 36*9a747e4fSDavid du ColombierRuneself = 128; 37*9a747e4fSDavid du ColombierRuneerror = 128; 38*9a747e4fSDavid du ColombiersizeofFconv = 24; 39*9a747e4fSDavid du Colombieraggr Fconv 40*9a747e4fSDavid du Colombier{ 41*9a747e4fSDavid du Colombier 'X' 0 out; 42*9a747e4fSDavid du Colombier 'X' 4 eout; 43*9a747e4fSDavid du Colombier 'D' 8 f1; 44*9a747e4fSDavid du Colombier 'D' 12 f2; 45*9a747e4fSDavid du Colombier 'D' 16 f3; 46*9a747e4fSDavid du Colombier 'D' 20 chr; 47*9a747e4fSDavid du Colombier}; 48*9a747e4fSDavid du Colombier 49*9a747e4fSDavid du Colombierdefn 50*9a747e4fSDavid du ColombierFconv(addr) { 51*9a747e4fSDavid du Colombier complex Fconv addr; 52*9a747e4fSDavid du Colombier print(" out ", addr.out\X, "\n"); 53*9a747e4fSDavid du Colombier print(" eout ", addr.eout\X, "\n"); 54*9a747e4fSDavid du Colombier print(" f1 ", addr.f1, "\n"); 55*9a747e4fSDavid du Colombier print(" f2 ", addr.f2, "\n"); 56*9a747e4fSDavid du Colombier print(" f3 ", addr.f3, "\n"); 57*9a747e4fSDavid du Colombier print(" chr ", addr.chr, "\n"); 58*9a747e4fSDavid du Colombier}; 59*9a747e4fSDavid du Colombier 60*9a747e4fSDavid du ColombiersizeofTm = 40; 61*9a747e4fSDavid du Colombieraggr Tm 62*9a747e4fSDavid du Colombier{ 63*9a747e4fSDavid du Colombier 'D' 0 sec; 64*9a747e4fSDavid du Colombier 'D' 4 min; 65*9a747e4fSDavid du Colombier 'D' 8 hour; 66*9a747e4fSDavid du Colombier 'D' 12 mday; 67*9a747e4fSDavid du Colombier 'D' 16 mon; 68*9a747e4fSDavid du Colombier 'D' 20 year; 69*9a747e4fSDavid du Colombier 'D' 24 wday; 70*9a747e4fSDavid du Colombier 'D' 28 yday; 71*9a747e4fSDavid du Colombier 'a' 32 zone; 72*9a747e4fSDavid du Colombier 'D' 36 tzoff; 73*9a747e4fSDavid du Colombier}; 74*9a747e4fSDavid du Colombier 75*9a747e4fSDavid du Colombierdefn 76*9a747e4fSDavid du ColombierTm(addr) { 77*9a747e4fSDavid du Colombier complex Tm addr; 78*9a747e4fSDavid du Colombier print(" sec ", addr.sec, "\n"); 79*9a747e4fSDavid du Colombier print(" min ", addr.min, "\n"); 80*9a747e4fSDavid du Colombier print(" hour ", addr.hour, "\n"); 81*9a747e4fSDavid du Colombier print(" mday ", addr.mday, "\n"); 82*9a747e4fSDavid du Colombier print(" mon ", addr.mon, "\n"); 83*9a747e4fSDavid du Colombier print(" year ", addr.year, "\n"); 84*9a747e4fSDavid du Colombier print(" wday ", addr.wday, "\n"); 85*9a747e4fSDavid du Colombier print(" yday ", addr.yday, "\n"); 86*9a747e4fSDavid du Colombier print(" zone ", addr.zone, "\n"); 87*9a747e4fSDavid du Colombier print(" tzoff ", addr.tzoff, "\n"); 88*9a747e4fSDavid du Colombier}; 89*9a747e4fSDavid du Colombier 90*9a747e4fSDavid du ColombierPNPROC = 1; 91*9a747e4fSDavid du ColombierPNGROUP = 2; 92*9a747e4fSDavid du ColombiersizeofLock = 4; 93*9a747e4fSDavid du Colombieraggr Lock 94*9a747e4fSDavid du Colombier{ 95*9a747e4fSDavid du Colombier 'D' 0 val; 96*9a747e4fSDavid du Colombier}; 97*9a747e4fSDavid du Colombier 98*9a747e4fSDavid du Colombierdefn 99*9a747e4fSDavid du ColombierLock(addr) { 100*9a747e4fSDavid du Colombier complex Lock addr; 101*9a747e4fSDavid du Colombier print(" val ", addr.val, "\n"); 102*9a747e4fSDavid du Colombier}; 103*9a747e4fSDavid du Colombier 104*9a747e4fSDavid du ColombiersizeofQLp = 12; 105*9a747e4fSDavid du Colombieraggr QLp 106*9a747e4fSDavid du Colombier{ 107*9a747e4fSDavid du Colombier 'D' 0 inuse; 108*9a747e4fSDavid du Colombier 'A' QLp 4 next; 109*9a747e4fSDavid du Colombier 'C' 8 state; 110*9a747e4fSDavid du Colombier}; 111*9a747e4fSDavid du Colombier 112*9a747e4fSDavid du Colombierdefn 113*9a747e4fSDavid du ColombierQLp(addr) { 114*9a747e4fSDavid du Colombier complex QLp addr; 115*9a747e4fSDavid du Colombier print(" inuse ", addr.inuse, "\n"); 116*9a747e4fSDavid du Colombier print(" next ", addr.next\X, "\n"); 117*9a747e4fSDavid du Colombier print(" state ", addr.state, "\n"); 118*9a747e4fSDavid du Colombier}; 119*9a747e4fSDavid du Colombier 120*9a747e4fSDavid du ColombiersizeofQLock = 16; 121*9a747e4fSDavid du Colombieraggr QLock 122*9a747e4fSDavid du Colombier{ 123*9a747e4fSDavid du Colombier Lock 0 lock; 124*9a747e4fSDavid du Colombier 'D' 4 locked; 125*9a747e4fSDavid du Colombier 'A' QLp 8 $head; 126*9a747e4fSDavid du Colombier 'A' QLp 12 $tail; 127*9a747e4fSDavid du Colombier}; 128*9a747e4fSDavid du Colombier 129*9a747e4fSDavid du Colombierdefn 130*9a747e4fSDavid du ColombierQLock(addr) { 131*9a747e4fSDavid du Colombier complex QLock addr; 132*9a747e4fSDavid du Colombier print("Lock lock {\n"); 133*9a747e4fSDavid du Colombier Lock(addr.lock); 134*9a747e4fSDavid du Colombier print("}\n"); 135*9a747e4fSDavid du Colombier print(" locked ", addr.locked, "\n"); 136*9a747e4fSDavid du Colombier print(" $head ", addr.$head\X, "\n"); 137*9a747e4fSDavid du Colombier print(" $tail ", addr.$tail\X, "\n"); 138*9a747e4fSDavid du Colombier}; 139*9a747e4fSDavid du Colombier 140*9a747e4fSDavid du ColombiersizeofRWLock = 20; 141*9a747e4fSDavid du Colombieraggr RWLock 142*9a747e4fSDavid du Colombier{ 143*9a747e4fSDavid du Colombier Lock 0 lock; 144*9a747e4fSDavid du Colombier 'D' 4 readers; 145*9a747e4fSDavid du Colombier 'D' 8 writer; 146*9a747e4fSDavid du Colombier 'A' QLp 12 $head; 147*9a747e4fSDavid du Colombier 'A' QLp 16 $tail; 148*9a747e4fSDavid du Colombier}; 149*9a747e4fSDavid du Colombier 150*9a747e4fSDavid du Colombierdefn 151*9a747e4fSDavid du ColombierRWLock(addr) { 152*9a747e4fSDavid du Colombier complex RWLock addr; 153*9a747e4fSDavid du Colombier print("Lock lock {\n"); 154*9a747e4fSDavid du Colombier Lock(addr.lock); 155*9a747e4fSDavid du Colombier print("}\n"); 156*9a747e4fSDavid du Colombier print(" readers ", addr.readers, "\n"); 157*9a747e4fSDavid du Colombier print(" writer ", addr.writer, "\n"); 158*9a747e4fSDavid du Colombier print(" $head ", addr.$head\X, "\n"); 159*9a747e4fSDavid du Colombier print(" $tail ", addr.$tail\X, "\n"); 160*9a747e4fSDavid du Colombier}; 161*9a747e4fSDavid du Colombier 162*9a747e4fSDavid du ColombierRFNAMEG = 1; 163*9a747e4fSDavid du ColombierRFENVG = 2; 164*9a747e4fSDavid du ColombierRFFDG = 4; 165*9a747e4fSDavid du ColombierRFNOTEG = 8; 166*9a747e4fSDavid du ColombierRFPROC = 16; 167*9a747e4fSDavid du ColombierRFMEM = 32; 168*9a747e4fSDavid du ColombierRFNOWAIT = 64; 169*9a747e4fSDavid du ColombierRFCNAMEG = 1024; 170*9a747e4fSDavid du ColombierRFCENVG = 2048; 171*9a747e4fSDavid du ColombierRFCFDG = 4096; 172*9a747e4fSDavid du ColombierRFREND = 8192; 173*9a747e4fSDavid du ColombierRFNOMNT = 16384; 174*9a747e4fSDavid du ColombiersizeofQid = 16; 175*9a747e4fSDavid du Colombieraggr Qid 176*9a747e4fSDavid du Colombier{ 177*9a747e4fSDavid du Colombier 'W' 0 path; 178*9a747e4fSDavid du Colombier 'U' 8 vers; 179*9a747e4fSDavid du Colombier 'b' 12 type; 180*9a747e4fSDavid du Colombier}; 181*9a747e4fSDavid du Colombier 182*9a747e4fSDavid du Colombierdefn 183*9a747e4fSDavid du ColombierQid(addr) { 184*9a747e4fSDavid du Colombier complex Qid addr; 185*9a747e4fSDavid du Colombier print(" path ", addr.path, "\n"); 186*9a747e4fSDavid du Colombier print(" vers ", addr.vers, "\n"); 187*9a747e4fSDavid du Colombier print(" type ", addr.type, "\n"); 188*9a747e4fSDavid du Colombier}; 189*9a747e4fSDavid du Colombier 190*9a747e4fSDavid du ColombiersizeofDir = 60; 191*9a747e4fSDavid du Colombieraggr Dir 192*9a747e4fSDavid du Colombier{ 193*9a747e4fSDavid du Colombier 'u' 0 type; 194*9a747e4fSDavid du Colombier 'U' 4 dev; 195*9a747e4fSDavid du Colombier Qid 8 qid; 196*9a747e4fSDavid du Colombier 'U' 24 mode; 197*9a747e4fSDavid du Colombier 'U' 28 atime; 198*9a747e4fSDavid du Colombier 'U' 32 mtime; 199*9a747e4fSDavid du Colombier 'V' 36 length; 200*9a747e4fSDavid du Colombier 'X' 44 name; 201*9a747e4fSDavid du Colombier 'X' 48 uid; 202*9a747e4fSDavid du Colombier 'X' 52 gid; 203*9a747e4fSDavid du Colombier 'X' 56 muid; 204*9a747e4fSDavid du Colombier}; 205*9a747e4fSDavid du Colombier 206*9a747e4fSDavid du Colombierdefn 207*9a747e4fSDavid du ColombierDir(addr) { 208*9a747e4fSDavid du Colombier complex Dir addr; 209*9a747e4fSDavid du Colombier print(" type ", addr.type, "\n"); 210*9a747e4fSDavid du Colombier print(" dev ", addr.dev, "\n"); 211*9a747e4fSDavid du Colombier print("Qid qid {\n"); 212*9a747e4fSDavid du Colombier Qid(addr.qid); 213*9a747e4fSDavid du Colombier print("}\n"); 214*9a747e4fSDavid du Colombier print(" mode ", addr.mode, "\n"); 215*9a747e4fSDavid du Colombier print(" atime ", addr.atime, "\n"); 216*9a747e4fSDavid du Colombier print(" mtime ", addr.mtime, "\n"); 217*9a747e4fSDavid du Colombier print(" length ", addr.length, "\n"); 218*9a747e4fSDavid du Colombier print(" name ", addr.name\X, "\n"); 219*9a747e4fSDavid du Colombier print(" uid ", addr.uid\X, "\n"); 220*9a747e4fSDavid du Colombier print(" gid ", addr.gid\X, "\n"); 221*9a747e4fSDavid du Colombier print(" muid ", addr.muid\X, "\n"); 222*9a747e4fSDavid du Colombier}; 223*9a747e4fSDavid du Colombier 224*9a747e4fSDavid du ColombiersizeofWaitmsg = 20; 225*9a747e4fSDavid du Colombieraggr Waitmsg 226*9a747e4fSDavid du Colombier{ 227*9a747e4fSDavid du Colombier 'D' 0 pid; 228*9a747e4fSDavid du Colombier 'a' 4 time; 229*9a747e4fSDavid du Colombier 'X' 16 msg; 230*9a747e4fSDavid du Colombier}; 231*9a747e4fSDavid du Colombier 232*9a747e4fSDavid du Colombierdefn 233*9a747e4fSDavid du ColombierWaitmsg(addr) { 234*9a747e4fSDavid du Colombier complex Waitmsg addr; 235*9a747e4fSDavid du Colombier print(" pid ", addr.pid, "\n"); 236*9a747e4fSDavid du Colombier print(" time ", addr.time, "\n"); 237*9a747e4fSDavid du Colombier print(" msg ", addr.msg\X, "\n"); 238*9a747e4fSDavid du Colombier}; 239*9a747e4fSDavid du Colombier 240*9a747e4fSDavid du ColombiersizeofIOchunk = 8; 241*9a747e4fSDavid du Colombieraggr IOchunk 242*9a747e4fSDavid du Colombier{ 243*9a747e4fSDavid du Colombier 'X' 0 addr; 244*9a747e4fSDavid du Colombier 'U' 4 len; 245*9a747e4fSDavid du Colombier}; 246*9a747e4fSDavid du Colombier 247*9a747e4fSDavid du Colombierdefn 248*9a747e4fSDavid du ColombierIOchunk(addr) { 249*9a747e4fSDavid du Colombier complex IOchunk addr; 250*9a747e4fSDavid du Colombier print(" addr ", addr.addr\X, "\n"); 251*9a747e4fSDavid du Colombier print(" len ", addr.len, "\n"); 252*9a747e4fSDavid du Colombier}; 253*9a747e4fSDavid du Colombier 254*9a747e4fSDavid du ColombiersizeofPool = 88; 255*9a747e4fSDavid du Colombieraggr Pool 256*9a747e4fSDavid du Colombier{ 257*9a747e4fSDavid du Colombier 'X' 0 name; 258*9a747e4fSDavid du Colombier 'U' 4 maxsize; 259*9a747e4fSDavid du Colombier 'U' 8 cursize; 260*9a747e4fSDavid du Colombier 'U' 12 curfree; 261*9a747e4fSDavid du Colombier 'U' 16 curalloc; 262*9a747e4fSDavid du Colombier 'U' 20 minarena; 263*9a747e4fSDavid du Colombier 'U' 24 quantum; 264*9a747e4fSDavid du Colombier 'U' 28 minblock; 265*9a747e4fSDavid du Colombier 'X' 32 freeroot; 266*9a747e4fSDavid du Colombier 'X' 36 arenalist; 267*9a747e4fSDavid du Colombier 'X' 40 alloc; 268*9a747e4fSDavid du Colombier 'X' 44 merge; 269*9a747e4fSDavid du Colombier 'X' 48 move; 270*9a747e4fSDavid du Colombier 'D' 52 flags; 271*9a747e4fSDavid du Colombier 'D' 56 nfree; 272*9a747e4fSDavid du Colombier 'D' 60 lastcompact; 273*9a747e4fSDavid du Colombier 'X' 64 lock; 274*9a747e4fSDavid du Colombier 'X' 68 unlock; 275*9a747e4fSDavid du Colombier 'X' 72 print; 276*9a747e4fSDavid du Colombier 'X' 76 panic; 277*9a747e4fSDavid du Colombier 'X' 80 logstack; 278*9a747e4fSDavid du Colombier 'X' 84 private; 279*9a747e4fSDavid du Colombier}; 280*9a747e4fSDavid du Colombier 281*9a747e4fSDavid du Colombierdefn 282*9a747e4fSDavid du ColombierPool(addr) { 283*9a747e4fSDavid du Colombier complex Pool addr; 284*9a747e4fSDavid du Colombier print(" name ", addr.name\X, "\n"); 285*9a747e4fSDavid du Colombier print(" maxsize ", addr.maxsize, "\n"); 286*9a747e4fSDavid du Colombier print(" cursize ", addr.cursize, "\n"); 287*9a747e4fSDavid du Colombier print(" curfree ", addr.curfree, "\n"); 288*9a747e4fSDavid du Colombier print(" curalloc ", addr.curalloc, "\n"); 289*9a747e4fSDavid du Colombier print(" minarena ", addr.minarena, "\n"); 290*9a747e4fSDavid du Colombier print(" quantum ", addr.quantum, "\n"); 291*9a747e4fSDavid du Colombier print(" minblock ", addr.minblock, "\n"); 292*9a747e4fSDavid du Colombier print(" freeroot ", addr.freeroot\X, "\n"); 293*9a747e4fSDavid du Colombier print(" arenalist ", addr.arenalist\X, "\n"); 294*9a747e4fSDavid du Colombier print(" alloc ", addr.alloc\X, "\n"); 295*9a747e4fSDavid du Colombier print(" merge ", addr.merge\X, "\n"); 296*9a747e4fSDavid du Colombier print(" move ", addr.move\X, "\n"); 297*9a747e4fSDavid du Colombier print(" flags ", addr.flags, "\n"); 298*9a747e4fSDavid du Colombier print(" nfree ", addr.nfree, "\n"); 299*9a747e4fSDavid du Colombier print(" lastcompact ", addr.lastcompact, "\n"); 300*9a747e4fSDavid du Colombier print(" lock ", addr.lock\X, "\n"); 301*9a747e4fSDavid du Colombier print(" unlock ", addr.unlock\X, "\n"); 302*9a747e4fSDavid du Colombier print(" print ", addr.print\X, "\n"); 303*9a747e4fSDavid du Colombier print(" panic ", addr.panic\X, "\n"); 304*9a747e4fSDavid du Colombier print(" logstack ", addr.logstack\X, "\n"); 305*9a747e4fSDavid du Colombier print(" private ", addr.private\X, "\n"); 306*9a747e4fSDavid du Colombier}; 307*9a747e4fSDavid du Colombier 308*9a747e4fSDavid du ColombiersizeofTraverse = 20; 309*9a747e4fSDavid du Colombieraggr Traverse 310*9a747e4fSDavid du Colombier{ 311*9a747e4fSDavid du Colombier 'X' 0 visit; 312*9a747e4fSDavid du Colombier 'D' 4 maxvisit; 313*9a747e4fSDavid du Colombier 'X' 8 a; 314*9a747e4fSDavid du Colombier 'X' 12 b; 315*9a747e4fSDavid du Colombier 'X' 16 prev; 316*9a747e4fSDavid du Colombier}; 317*9a747e4fSDavid du Colombier 318*9a747e4fSDavid du Colombierdefn 319*9a747e4fSDavid du ColombierTraverse(addr) { 320*9a747e4fSDavid du Colombier complex Traverse addr; 321*9a747e4fSDavid du Colombier print(" visit ", addr.visit\X, "\n"); 322*9a747e4fSDavid du Colombier print(" maxvisit ", addr.maxvisit, "\n"); 323*9a747e4fSDavid du Colombier print(" a ", addr.a\X, "\n"); 324*9a747e4fSDavid du Colombier print(" b ", addr.b\X, "\n"); 325*9a747e4fSDavid du Colombier print(" prev ", addr.prev\X, "\n"); 326*9a747e4fSDavid du Colombier}; 327*9a747e4fSDavid du Colombier 328*9a747e4fSDavid du Colombiercomplex Pool mainmem; 329*9a747e4fSDavid du Colombiercomplex Pool imagmem; 330*9a747e4fSDavid du ColombierPOOL_ANTAGONISM = 1; 331*9a747e4fSDavid du ColombierPOOL_PARANOIA = 2; 332*9a747e4fSDavid du ColombierPOOL_VERBOSITY = 4; 333*9a747e4fSDavid du ColombierPOOL_DEBUGGING = 8; 334*9a747e4fSDavid du ColombierPOOL_LOGGING = 16; 335*9a747e4fSDavid du ColombierPOOL_TOLERANCE = 32; 336*9a747e4fSDavid du ColombiersizeofPrivate = 8; 337*9a747e4fSDavid du Colombieraggr Private 338*9a747e4fSDavid du Colombier{ 339*9a747e4fSDavid du Colombier Lock 0 lk; 340*9a747e4fSDavid du Colombier 'D' 4 printfd; 341*9a747e4fSDavid du Colombier}; 342*9a747e4fSDavid du Colombier 343*9a747e4fSDavid du Colombierdefn 344*9a747e4fSDavid du ColombierPrivate(addr) { 345*9a747e4fSDavid du Colombier complex Private addr; 346*9a747e4fSDavid du Colombier print("Lock lk {\n"); 347*9a747e4fSDavid du Colombier Lock(addr.lk); 348*9a747e4fSDavid du Colombier print("}\n"); 349*9a747e4fSDavid du Colombier print(" printfd ", addr.printfd, "\n"); 350*9a747e4fSDavid du Colombier}; 351*9a747e4fSDavid du Colombier 352*9a747e4fSDavid du Colombiercomplex Private sbrkmempriv; 353*9a747e4fSDavid du Colombiercomplex Pool sbrkmem; 354*9a747e4fSDavid du Colombiercomplex Pool mainmem; 355*9a747e4fSDavid du Colombiercomplex Pool imagmem; 356*9a747e4fSDavid du Colombiercomplex Pool plock:p; 357*9a747e4fSDavid du Colombiercomplex Private plock:pv; 358*9a747e4fSDavid du Colombiercomplex Pool punlock:p; 359*9a747e4fSDavid du Colombiercomplex Private punlock:pv; 360*9a747e4fSDavid du Colombiercomplex Pool pprint:p; 361*9a747e4fSDavid du Colombiercomplex Private pprint:pv; 362*9a747e4fSDavid du Colombiercomplex Pool ppanic:p; 363*9a747e4fSDavid du Colombiercomplex Private ppanic:pv; 364*9a747e4fSDavid du ColombierNpadlong = 2; 365*9a747e4fSDavid du ColombierMallocOffset = 0; 366*9a747e4fSDavid du ColombierReallocOffset = 1; 367