1d1be6b08SDavid du Colombiersizeof_1_ = 8; 2d1be6b08SDavid du Colombieraggr _1_ 3d1be6b08SDavid du Colombier{ 4d1be6b08SDavid du Colombier 'U' 0 lo; 5d1be6b08SDavid du Colombier 'U' 4 hi; 6d1be6b08SDavid du Colombier}; 7d1be6b08SDavid du Colombier 8d1be6b08SDavid du Colombierdefn 9d1be6b08SDavid du Colombier_1_(addr) { 10d1be6b08SDavid du Colombier complex _1_ addr; 11d1be6b08SDavid du Colombier print(" lo ", addr.lo, "\n"); 12d1be6b08SDavid du Colombier print(" hi ", addr.hi, "\n"); 13d1be6b08SDavid du Colombier}; 14d1be6b08SDavid du Colombier 15d1be6b08SDavid du ColombiersizeofFPdbleword = 8; 16d1be6b08SDavid du Colombieraggr FPdbleword 17d1be6b08SDavid du Colombier{ 18d1be6b08SDavid du Colombier 'F' 0 x; 19d1be6b08SDavid du Colombier { 20d1be6b08SDavid du Colombier 'U' 0 lo; 21d1be6b08SDavid du Colombier 'U' 4 hi; 22d1be6b08SDavid du Colombier }; 23d1be6b08SDavid du Colombier}; 24d1be6b08SDavid du Colombier 25d1be6b08SDavid du Colombierdefn 26d1be6b08SDavid du ColombierFPdbleword(addr) { 27d1be6b08SDavid du Colombier complex FPdbleword addr; 28d1be6b08SDavid du Colombier print(" x ", addr.x, "\n"); 29d1be6b08SDavid du Colombier print("_1_ {\n"); 30d1be6b08SDavid du Colombier _1_(addr+0); 31d1be6b08SDavid du Colombier print("}\n"); 32d1be6b08SDavid du Colombier}; 33d1be6b08SDavid du Colombier 34*f591d971SDavid du ColombierUTFmax = 4; 35d1be6b08SDavid du ColombierRunesync = 128; 36d1be6b08SDavid du ColombierRuneself = 128; 37d1be6b08SDavid du ColombierRuneerror = 65533; 38*f591d971SDavid du ColombierRunemax = 1114111; 39*f591d971SDavid du ColombierRunemask = 2097151; 40d1be6b08SDavid du ColombiersizeofFmt = 48; 41d1be6b08SDavid du Colombieraggr Fmt 42d1be6b08SDavid du Colombier{ 43d1be6b08SDavid du Colombier 'b' 0 runes; 44d1be6b08SDavid du Colombier 'X' 4 start; 45d1be6b08SDavid du Colombier 'X' 8 to; 46d1be6b08SDavid du Colombier 'X' 12 stop; 47d1be6b08SDavid du Colombier 'X' 16 flush; 48d1be6b08SDavid du Colombier 'X' 20 farg; 49d1be6b08SDavid du Colombier 'D' 24 nfmt; 50d1be6b08SDavid du Colombier 'X' 28 args; 51d1be6b08SDavid du Colombier 'D' 32 r; 52d1be6b08SDavid du Colombier 'D' 36 width; 53d1be6b08SDavid du Colombier 'D' 40 prec; 54d1be6b08SDavid du Colombier 'U' 44 flags; 55d1be6b08SDavid du Colombier}; 56d1be6b08SDavid du Colombier 57d1be6b08SDavid du Colombierdefn 58d1be6b08SDavid du ColombierFmt(addr) { 59d1be6b08SDavid du Colombier complex Fmt addr; 60d1be6b08SDavid du Colombier print(" runes ", addr.runes, "\n"); 61d1be6b08SDavid du Colombier print(" start ", addr.start\X, "\n"); 62d1be6b08SDavid du Colombier print(" to ", addr.to\X, "\n"); 63d1be6b08SDavid du Colombier print(" stop ", addr.stop\X, "\n"); 64d1be6b08SDavid du Colombier print(" flush ", addr.flush\X, "\n"); 65d1be6b08SDavid du Colombier print(" farg ", addr.farg\X, "\n"); 66d1be6b08SDavid du Colombier print(" nfmt ", addr.nfmt, "\n"); 67d1be6b08SDavid du Colombier print(" args ", addr.args\X, "\n"); 68d1be6b08SDavid du Colombier print(" r ", addr.r, "\n"); 69d1be6b08SDavid du Colombier print(" width ", addr.width, "\n"); 70d1be6b08SDavid du Colombier print(" prec ", addr.prec, "\n"); 71d1be6b08SDavid du Colombier print(" flags ", addr.flags, "\n"); 72d1be6b08SDavid du Colombier}; 73d1be6b08SDavid du Colombier 74d1be6b08SDavid du ColombierFmtWidth = 1; 75d1be6b08SDavid du ColombierFmtLeft = 2; 76d1be6b08SDavid du ColombierFmtPrec = 4; 77d1be6b08SDavid du ColombierFmtSharp = 8; 78d1be6b08SDavid du ColombierFmtSpace = 16; 79d1be6b08SDavid du ColombierFmtSign = 32; 80d1be6b08SDavid du ColombierFmtZero = 64; 81d1be6b08SDavid du ColombierFmtUnsigned = 128; 82d1be6b08SDavid du ColombierFmtShort = 256; 83d1be6b08SDavid du ColombierFmtLong = 512; 84d1be6b08SDavid du ColombierFmtVLong = 1024; 85d1be6b08SDavid du ColombierFmtComma = 2048; 86d1be6b08SDavid du ColombierFmtByte = 4096; 87d1be6b08SDavid du ColombierFmtFlag = 8192; 88d1be6b08SDavid du ColombiersizeofTm = 40; 89d1be6b08SDavid du Colombieraggr Tm 90d1be6b08SDavid du Colombier{ 91d1be6b08SDavid du Colombier 'D' 0 sec; 92d1be6b08SDavid du Colombier 'D' 4 min; 93d1be6b08SDavid du Colombier 'D' 8 hour; 94d1be6b08SDavid du Colombier 'D' 12 mday; 95d1be6b08SDavid du Colombier 'D' 16 mon; 96d1be6b08SDavid du Colombier 'D' 20 year; 97d1be6b08SDavid du Colombier 'D' 24 wday; 98d1be6b08SDavid du Colombier 'D' 28 yday; 99d1be6b08SDavid du Colombier 'a' 32 zone; 100d1be6b08SDavid du Colombier 'D' 36 tzoff; 101d1be6b08SDavid du Colombier}; 102d1be6b08SDavid du Colombier 103d1be6b08SDavid du Colombierdefn 104d1be6b08SDavid du ColombierTm(addr) { 105d1be6b08SDavid du Colombier complex Tm addr; 106d1be6b08SDavid du Colombier print(" sec ", addr.sec, "\n"); 107d1be6b08SDavid du Colombier print(" min ", addr.min, "\n"); 108d1be6b08SDavid du Colombier print(" hour ", addr.hour, "\n"); 109d1be6b08SDavid du Colombier print(" mday ", addr.mday, "\n"); 110d1be6b08SDavid du Colombier print(" mon ", addr.mon, "\n"); 111d1be6b08SDavid du Colombier print(" year ", addr.year, "\n"); 112d1be6b08SDavid du Colombier print(" wday ", addr.wday, "\n"); 113d1be6b08SDavid du Colombier print(" yday ", addr.yday, "\n"); 114d1be6b08SDavid du Colombier print(" zone ", addr.zone, "\n"); 115d1be6b08SDavid du Colombier print(" tzoff ", addr.tzoff, "\n"); 116d1be6b08SDavid du Colombier}; 117d1be6b08SDavid du Colombier 118d1be6b08SDavid du ColombierPNPROC = 1; 119d1be6b08SDavid du ColombierPNGROUP = 2; 120d1be6b08SDavid du ColombierProfoff = 0; 121d1be6b08SDavid du ColombierProfuser = 1; 122d1be6b08SDavid du ColombierProfkernel = 2; 123d1be6b08SDavid du ColombierProftime = 3; 124d1be6b08SDavid du ColombierProfsample = 4; 125*f591d971SDavid du ColombiersizeofLock = 8; 126d1be6b08SDavid du Colombieraggr Lock 127d1be6b08SDavid du Colombier{ 128*f591d971SDavid du Colombier 'D' 0 key; 129*f591d971SDavid du Colombier 'D' 4 sem; 130d1be6b08SDavid du Colombier}; 131d1be6b08SDavid du Colombier 132d1be6b08SDavid du Colombierdefn 133d1be6b08SDavid du ColombierLock(addr) { 134d1be6b08SDavid du Colombier complex Lock addr; 135*f591d971SDavid du Colombier print(" key ", addr.key, "\n"); 136*f591d971SDavid du Colombier print(" sem ", addr.sem, "\n"); 137d1be6b08SDavid du Colombier}; 138d1be6b08SDavid du Colombier 139d1be6b08SDavid du ColombiersizeofQLp = 12; 140d1be6b08SDavid du Colombieraggr QLp 141d1be6b08SDavid du Colombier{ 142d1be6b08SDavid du Colombier 'D' 0 inuse; 143d1be6b08SDavid du Colombier 'A' QLp 4 next; 144d1be6b08SDavid du Colombier 'C' 8 state; 145d1be6b08SDavid du Colombier}; 146d1be6b08SDavid du Colombier 147d1be6b08SDavid du Colombierdefn 148d1be6b08SDavid du ColombierQLp(addr) { 149d1be6b08SDavid du Colombier complex QLp addr; 150d1be6b08SDavid du Colombier print(" inuse ", addr.inuse, "\n"); 151d1be6b08SDavid du Colombier print(" next ", addr.next\X, "\n"); 152d1be6b08SDavid du Colombier print(" state ", addr.state, "\n"); 153d1be6b08SDavid du Colombier}; 154d1be6b08SDavid du Colombier 155*f591d971SDavid du ColombiersizeofQLock = 20; 156d1be6b08SDavid du Colombieraggr QLock 157d1be6b08SDavid du Colombier{ 158d1be6b08SDavid du Colombier Lock 0 lock; 159*f591d971SDavid du Colombier 'D' 8 locked; 160*f591d971SDavid du Colombier 'A' QLp 12 $head; 161*f591d971SDavid du Colombier 'A' QLp 16 $tail; 162d1be6b08SDavid du Colombier}; 163d1be6b08SDavid du Colombier 164d1be6b08SDavid du Colombierdefn 165d1be6b08SDavid du ColombierQLock(addr) { 166d1be6b08SDavid du Colombier complex QLock addr; 167d1be6b08SDavid du Colombier print("Lock lock {\n"); 168d1be6b08SDavid du Colombier Lock(addr.lock); 169d1be6b08SDavid du Colombier print("}\n"); 170d1be6b08SDavid du Colombier print(" locked ", addr.locked, "\n"); 171d1be6b08SDavid du Colombier print(" $head ", addr.$head\X, "\n"); 172d1be6b08SDavid du Colombier print(" $tail ", addr.$tail\X, "\n"); 173d1be6b08SDavid du Colombier}; 174d1be6b08SDavid du Colombier 175*f591d971SDavid du ColombiersizeofRWLock = 24; 176d1be6b08SDavid du Colombieraggr RWLock 177d1be6b08SDavid du Colombier{ 178d1be6b08SDavid du Colombier Lock 0 lock; 179*f591d971SDavid du Colombier 'D' 8 readers; 180*f591d971SDavid du Colombier 'D' 12 writer; 181*f591d971SDavid du Colombier 'A' QLp 16 $head; 182*f591d971SDavid du Colombier 'A' QLp 20 $tail; 183d1be6b08SDavid du Colombier}; 184d1be6b08SDavid du Colombier 185d1be6b08SDavid du Colombierdefn 186d1be6b08SDavid du ColombierRWLock(addr) { 187d1be6b08SDavid du Colombier complex RWLock addr; 188d1be6b08SDavid du Colombier print("Lock lock {\n"); 189d1be6b08SDavid du Colombier Lock(addr.lock); 190d1be6b08SDavid du Colombier print("}\n"); 191d1be6b08SDavid du Colombier print(" readers ", addr.readers, "\n"); 192d1be6b08SDavid du Colombier print(" writer ", addr.writer, "\n"); 193d1be6b08SDavid du Colombier print(" $head ", addr.$head\X, "\n"); 194d1be6b08SDavid du Colombier print(" $tail ", addr.$tail\X, "\n"); 195d1be6b08SDavid du Colombier}; 196d1be6b08SDavid du Colombier 197d1be6b08SDavid du ColombiersizeofRendez = 12; 198d1be6b08SDavid du Colombieraggr Rendez 199d1be6b08SDavid du Colombier{ 200d1be6b08SDavid du Colombier 'A' QLock 0 l; 201d1be6b08SDavid du Colombier 'A' QLp 4 $head; 202d1be6b08SDavid du Colombier 'A' QLp 8 $tail; 203d1be6b08SDavid du Colombier}; 204d1be6b08SDavid du Colombier 205d1be6b08SDavid du Colombierdefn 206d1be6b08SDavid du ColombierRendez(addr) { 207d1be6b08SDavid du Colombier complex Rendez addr; 208d1be6b08SDavid du Colombier print(" l ", addr.l\X, "\n"); 209d1be6b08SDavid du Colombier print(" $head ", addr.$head\X, "\n"); 210d1be6b08SDavid du Colombier print(" $tail ", addr.$tail\X, "\n"); 211d1be6b08SDavid du Colombier}; 212d1be6b08SDavid du Colombier 213d1be6b08SDavid du ColombiersizeofNetConnInfo = 36; 214d1be6b08SDavid du Colombieraggr NetConnInfo 215d1be6b08SDavid du Colombier{ 216d1be6b08SDavid du Colombier 'X' 0 dir; 217d1be6b08SDavid du Colombier 'X' 4 root; 218d1be6b08SDavid du Colombier 'X' 8 spec; 219d1be6b08SDavid du Colombier 'X' 12 lsys; 220d1be6b08SDavid du Colombier 'X' 16 lserv; 221d1be6b08SDavid du Colombier 'X' 20 rsys; 222d1be6b08SDavid du Colombier 'X' 24 rserv; 223d1be6b08SDavid du Colombier 'X' 28 laddr; 224d1be6b08SDavid du Colombier 'X' 32 raddr; 225d1be6b08SDavid du Colombier}; 226d1be6b08SDavid du Colombier 227d1be6b08SDavid du Colombierdefn 228d1be6b08SDavid du ColombierNetConnInfo(addr) { 229d1be6b08SDavid du Colombier complex NetConnInfo addr; 230d1be6b08SDavid du Colombier print(" dir ", addr.dir\X, "\n"); 231d1be6b08SDavid du Colombier print(" root ", addr.root\X, "\n"); 232d1be6b08SDavid du Colombier print(" spec ", addr.spec\X, "\n"); 233d1be6b08SDavid du Colombier print(" lsys ", addr.lsys\X, "\n"); 234d1be6b08SDavid du Colombier print(" lserv ", addr.lserv\X, "\n"); 235d1be6b08SDavid du Colombier print(" rsys ", addr.rsys\X, "\n"); 236d1be6b08SDavid du Colombier print(" rserv ", addr.rserv\X, "\n"); 237d1be6b08SDavid du Colombier print(" laddr ", addr.laddr\X, "\n"); 238d1be6b08SDavid du Colombier print(" raddr ", addr.raddr\X, "\n"); 239d1be6b08SDavid du Colombier}; 240d1be6b08SDavid du Colombier 241d1be6b08SDavid du ColombierRFNAMEG = 1; 242d1be6b08SDavid du ColombierRFENVG = 2; 243d1be6b08SDavid du ColombierRFFDG = 4; 244d1be6b08SDavid du ColombierRFNOTEG = 8; 245d1be6b08SDavid du ColombierRFPROC = 16; 246d1be6b08SDavid du ColombierRFMEM = 32; 247d1be6b08SDavid du ColombierRFNOWAIT = 64; 248d1be6b08SDavid du ColombierRFCNAMEG = 1024; 249d1be6b08SDavid du ColombierRFCENVG = 2048; 250d1be6b08SDavid du ColombierRFCFDG = 4096; 251d1be6b08SDavid du ColombierRFREND = 8192; 252d1be6b08SDavid du ColombierRFNOMNT = 16384; 253d1be6b08SDavid du ColombiersizeofQid = 16; 254d1be6b08SDavid du Colombieraggr Qid 255d1be6b08SDavid du Colombier{ 256d1be6b08SDavid du Colombier 'W' 0 path; 257d1be6b08SDavid du Colombier 'U' 8 vers; 258d1be6b08SDavid du Colombier 'b' 12 type; 259d1be6b08SDavid du Colombier}; 260d1be6b08SDavid du Colombier 261d1be6b08SDavid du Colombierdefn 262d1be6b08SDavid du ColombierQid(addr) { 263d1be6b08SDavid du Colombier complex Qid addr; 264d1be6b08SDavid du Colombier print(" path ", addr.path, "\n"); 265d1be6b08SDavid du Colombier print(" vers ", addr.vers, "\n"); 266d1be6b08SDavid du Colombier print(" type ", addr.type, "\n"); 267d1be6b08SDavid du Colombier}; 268d1be6b08SDavid du Colombier 269d1be6b08SDavid du ColombiersizeofDir = 60; 270d1be6b08SDavid du Colombieraggr Dir 271d1be6b08SDavid du Colombier{ 272d1be6b08SDavid du Colombier 'u' 0 type; 273d1be6b08SDavid du Colombier 'U' 4 dev; 274d1be6b08SDavid du Colombier Qid 8 qid; 275d1be6b08SDavid du Colombier 'U' 24 mode; 276d1be6b08SDavid du Colombier 'U' 28 atime; 277d1be6b08SDavid du Colombier 'U' 32 mtime; 278d1be6b08SDavid du Colombier 'V' 36 length; 279d1be6b08SDavid du Colombier 'X' 44 name; 280d1be6b08SDavid du Colombier 'X' 48 uid; 281d1be6b08SDavid du Colombier 'X' 52 gid; 282d1be6b08SDavid du Colombier 'X' 56 muid; 283d1be6b08SDavid du Colombier}; 284d1be6b08SDavid du Colombier 285d1be6b08SDavid du Colombierdefn 286d1be6b08SDavid du ColombierDir(addr) { 287d1be6b08SDavid du Colombier complex Dir addr; 288d1be6b08SDavid du Colombier print(" type ", addr.type, "\n"); 289d1be6b08SDavid du Colombier print(" dev ", addr.dev, "\n"); 290d1be6b08SDavid du Colombier print("Qid qid {\n"); 291d1be6b08SDavid du Colombier Qid(addr.qid); 292d1be6b08SDavid du Colombier print("}\n"); 293d1be6b08SDavid du Colombier print(" mode ", addr.mode, "\n"); 294d1be6b08SDavid du Colombier print(" atime ", addr.atime, "\n"); 295d1be6b08SDavid du Colombier print(" mtime ", addr.mtime, "\n"); 296d1be6b08SDavid du Colombier print(" length ", addr.length, "\n"); 297d1be6b08SDavid du Colombier print(" name ", addr.name\X, "\n"); 298d1be6b08SDavid du Colombier print(" uid ", addr.uid\X, "\n"); 299d1be6b08SDavid du Colombier print(" gid ", addr.gid\X, "\n"); 300d1be6b08SDavid du Colombier print(" muid ", addr.muid\X, "\n"); 301d1be6b08SDavid du Colombier}; 302d1be6b08SDavid du Colombier 303d1be6b08SDavid du ColombiersizeofWaitmsg = 20; 304d1be6b08SDavid du Colombieraggr Waitmsg 305d1be6b08SDavid du Colombier{ 306d1be6b08SDavid du Colombier 'D' 0 pid; 307d1be6b08SDavid du Colombier 'a' 4 time; 308d1be6b08SDavid du Colombier 'X' 16 msg; 309d1be6b08SDavid du Colombier}; 310d1be6b08SDavid du Colombier 311d1be6b08SDavid du Colombierdefn 312d1be6b08SDavid du ColombierWaitmsg(addr) { 313d1be6b08SDavid du Colombier complex Waitmsg addr; 314d1be6b08SDavid du Colombier print(" pid ", addr.pid, "\n"); 315d1be6b08SDavid du Colombier print(" time ", addr.time, "\n"); 316d1be6b08SDavid du Colombier print(" msg ", addr.msg\X, "\n"); 317d1be6b08SDavid du Colombier}; 318d1be6b08SDavid du Colombier 319d1be6b08SDavid du ColombiersizeofIOchunk = 8; 320d1be6b08SDavid du Colombieraggr IOchunk 321d1be6b08SDavid du Colombier{ 322d1be6b08SDavid du Colombier 'X' 0 addr; 323d1be6b08SDavid du Colombier 'U' 4 len; 324d1be6b08SDavid du Colombier}; 325d1be6b08SDavid du Colombier 326d1be6b08SDavid du Colombierdefn 327d1be6b08SDavid du ColombierIOchunk(addr) { 328d1be6b08SDavid du Colombier complex IOchunk addr; 329d1be6b08SDavid du Colombier print(" addr ", addr.addr\X, "\n"); 330d1be6b08SDavid du Colombier print(" len ", addr.len, "\n"); 331d1be6b08SDavid du Colombier}; 332d1be6b08SDavid du Colombier 333d1be6b08SDavid du ColombierNqwds = 2; 334d1be6b08SDavid du ColombierNqshift = 5; 335d1be6b08SDavid du ColombierNqmask = -1; 336d1be6b08SDavid du ColombierNqbits = 64; 337d1be6b08SDavid du ColombiersizeofChannel = 36; 338d1be6b08SDavid du Colombieraggr Channel 339d1be6b08SDavid du Colombier{ 340d1be6b08SDavid du Colombier 'D' 0 s; 341d1be6b08SDavid du Colombier 'U' 4 f; 342d1be6b08SDavid du Colombier 'U' 8 n; 343d1be6b08SDavid du Colombier 'D' 12 e; 344d1be6b08SDavid du Colombier 'D' 16 freed; 345d1be6b08SDavid du Colombier 'X' 20 qentry; 346d1be6b08SDavid du Colombier 'D' 24 nentry; 347d1be6b08SDavid du Colombier 'D' 28 closed; 348d1be6b08SDavid du Colombier 'a' 32 v; 349d1be6b08SDavid du Colombier}; 350d1be6b08SDavid du Colombier 351d1be6b08SDavid du Colombierdefn 352d1be6b08SDavid du ColombierChannel(addr) { 353d1be6b08SDavid du Colombier complex Channel addr; 354d1be6b08SDavid du Colombier print(" s ", addr.s, "\n"); 355d1be6b08SDavid du Colombier print(" f ", addr.f, "\n"); 356d1be6b08SDavid du Colombier print(" n ", addr.n, "\n"); 357d1be6b08SDavid du Colombier print(" e ", addr.e, "\n"); 358d1be6b08SDavid du Colombier print(" freed ", addr.freed, "\n"); 359d1be6b08SDavid du Colombier print(" qentry ", addr.qentry\X, "\n"); 360d1be6b08SDavid du Colombier print(" nentry ", addr.nentry, "\n"); 361d1be6b08SDavid du Colombier print(" closed ", addr.closed, "\n"); 362d1be6b08SDavid du Colombier print(" v ", addr.v, "\n"); 363d1be6b08SDavid du Colombier}; 364d1be6b08SDavid du Colombier 365d1be6b08SDavid du ColombierCHANEND = 0; 366d1be6b08SDavid du ColombierCHANSND = 1; 367d1be6b08SDavid du ColombierCHANRCV = 2; 368d1be6b08SDavid du ColombierCHANNOP = 3; 369d1be6b08SDavid du ColombierCHANNOBLK = 4; 370d1be6b08SDavid du ColombiersizeofAlt = 24; 371d1be6b08SDavid du Colombieraggr Alt 372d1be6b08SDavid du Colombier{ 373d1be6b08SDavid du Colombier 'A' Channel 0 c; 374d1be6b08SDavid du Colombier 'X' 4 v; 375d1be6b08SDavid du Colombier 'D' 8 op; 376d1be6b08SDavid du Colombier 'X' 12 err; 377d1be6b08SDavid du Colombier 'A' Channel 16 tag; 378d1be6b08SDavid du Colombier 'D' 20 entryno; 379d1be6b08SDavid du Colombier}; 380d1be6b08SDavid du Colombier 381d1be6b08SDavid du Colombierdefn 382d1be6b08SDavid du ColombierAlt(addr) { 383d1be6b08SDavid du Colombier complex Alt addr; 384d1be6b08SDavid du Colombier print(" c ", addr.c\X, "\n"); 385d1be6b08SDavid du Colombier print(" v ", addr.v\X, "\n"); 386d1be6b08SDavid du Colombier print(" op ", addr.op, "\n"); 387d1be6b08SDavid du Colombier print(" err ", addr.err\X, "\n"); 388d1be6b08SDavid du Colombier print(" tag ", addr.tag\X, "\n"); 389d1be6b08SDavid du Colombier print(" entryno ", addr.entryno, "\n"); 390d1be6b08SDavid du Colombier}; 391d1be6b08SDavid du Colombier 392d1be6b08SDavid du ColombiersizeofRef = 4; 393d1be6b08SDavid du Colombieraggr Ref 394d1be6b08SDavid du Colombier{ 395d1be6b08SDavid du Colombier 'D' 0 ref; 396d1be6b08SDavid du Colombier}; 397d1be6b08SDavid du Colombier 398d1be6b08SDavid du Colombierdefn 399d1be6b08SDavid du ColombierRef(addr) { 400d1be6b08SDavid du Colombier complex Ref addr; 401d1be6b08SDavid du Colombier print(" ref ", addr.ref, "\n"); 402d1be6b08SDavid du Colombier}; 403d1be6b08SDavid du Colombier 404d1be6b08SDavid du ColombierDead = 0; 405d1be6b08SDavid du ColombierRunning = 1; 406d1be6b08SDavid du ColombierReady = 2; 407d1be6b08SDavid du ColombierRendezvous = 3; 408d1be6b08SDavid du ColombierChannone = 0; 409d1be6b08SDavid du ColombierChanalt = 1; 410d1be6b08SDavid du ColombierChansend = 2; 411d1be6b08SDavid du ColombierChanrecv = 3; 412d1be6b08SDavid du ColombierRENDHASH = 13; 413d1be6b08SDavid du ColombierPrintsize = 2048; 414d1be6b08SDavid du ColombierNPRIV = 8; 415*f591d971SDavid du ColombiersizeofRgrp = 60; 416d1be6b08SDavid du Colombieraggr Rgrp 417d1be6b08SDavid du Colombier{ 418d1be6b08SDavid du Colombier Lock 0 lock; 419*f591d971SDavid du Colombier 'a' 8 hash; 420d1be6b08SDavid du Colombier}; 421d1be6b08SDavid du Colombier 422d1be6b08SDavid du Colombierdefn 423d1be6b08SDavid du ColombierRgrp(addr) { 424d1be6b08SDavid du Colombier complex Rgrp addr; 425d1be6b08SDavid du Colombier print("Lock lock {\n"); 426d1be6b08SDavid du Colombier Lock(addr.lock); 427d1be6b08SDavid du Colombier print("}\n"); 428d1be6b08SDavid du Colombier print(" hash ", addr.hash, "\n"); 429d1be6b08SDavid du Colombier}; 430d1be6b08SDavid du Colombier 431d1be6b08SDavid du ColombiersizeofTqueue = 12; 432d1be6b08SDavid du Colombieraggr Tqueue 433d1be6b08SDavid du Colombier{ 434d1be6b08SDavid du Colombier 'D' 0 asleep; 435d1be6b08SDavid du Colombier 'X' 4 $head; 436d1be6b08SDavid du Colombier 'X' 8 $tail; 437d1be6b08SDavid du Colombier}; 438d1be6b08SDavid du Colombier 439d1be6b08SDavid du Colombierdefn 440d1be6b08SDavid du ColombierTqueue(addr) { 441d1be6b08SDavid du Colombier complex Tqueue addr; 442d1be6b08SDavid du Colombier print(" asleep ", addr.asleep, "\n"); 443d1be6b08SDavid du Colombier print(" $head ", addr.$head\X, "\n"); 444d1be6b08SDavid du Colombier print(" $tail ", addr.$tail\X, "\n"); 445d1be6b08SDavid du Colombier}; 446d1be6b08SDavid du Colombier 447*f591d971SDavid du ColombiersizeofThread = 124; 448d1be6b08SDavid du Colombieraggr Thread 449d1be6b08SDavid du Colombier{ 450d1be6b08SDavid du Colombier Lock 0 lock; 451*f591d971SDavid du Colombier 'a' 8 sched; 452*f591d971SDavid du Colombier 'D' 16 id; 453*f591d971SDavid du Colombier 'D' 20 grp; 454*f591d971SDavid du Colombier 'D' 24 moribund; 455*f591d971SDavid du Colombier 'D' 28 state; 456*f591d971SDavid du Colombier 'D' 32 nextstate; 457*f591d971SDavid du Colombier 'X' 36 stk; 458*f591d971SDavid du Colombier 'U' 40 stksize; 459*f591d971SDavid du Colombier 'A' Thread 44 next; 460*f591d971SDavid du Colombier 'X' 48 proc; 461*f591d971SDavid du Colombier 'A' Thread 52 nextt; 462*f591d971SDavid du Colombier 'D' 56 ret; 463*f591d971SDavid du Colombier 'X' 60 cmdname; 464*f591d971SDavid du Colombier 'D' 64 inrendez; 465*f591d971SDavid du Colombier 'A' Thread 68 rendhash; 466*f591d971SDavid du Colombier 'X' 72 rendtag; 467*f591d971SDavid du Colombier 'X' 76 rendval; 468*f591d971SDavid du Colombier 'D' 80 rendbreak; 469*f591d971SDavid du Colombier 'D' 84 chan; 470*f591d971SDavid du Colombier 'A' Alt 88 alt; 471*f591d971SDavid du Colombier 'a' 92 udata; 472d1be6b08SDavid du Colombier}; 473d1be6b08SDavid du Colombier 474d1be6b08SDavid du Colombierdefn 475d1be6b08SDavid du ColombierThread(addr) { 476d1be6b08SDavid du Colombier complex Thread addr; 477d1be6b08SDavid du Colombier print("Lock lock {\n"); 478d1be6b08SDavid du Colombier Lock(addr.lock); 479d1be6b08SDavid du Colombier print("}\n"); 480d1be6b08SDavid du Colombier print(" sched ", addr.sched, "\n"); 481d1be6b08SDavid du Colombier print(" id ", addr.id, "\n"); 482d1be6b08SDavid du Colombier print(" grp ", addr.grp, "\n"); 483d1be6b08SDavid du Colombier print(" moribund ", addr.moribund, "\n"); 484d1be6b08SDavid du Colombier print(" state ", addr.state, "\n"); 485d1be6b08SDavid du Colombier print(" nextstate ", addr.nextstate, "\n"); 486d1be6b08SDavid du Colombier print(" stk ", addr.stk\X, "\n"); 487d1be6b08SDavid du Colombier print(" stksize ", addr.stksize, "\n"); 488d1be6b08SDavid du Colombier print(" next ", addr.next\X, "\n"); 489d1be6b08SDavid du Colombier print(" proc ", addr.proc\X, "\n"); 490d1be6b08SDavid du Colombier print(" nextt ", addr.nextt\X, "\n"); 491d1be6b08SDavid du Colombier print(" ret ", addr.ret, "\n"); 492d1be6b08SDavid du Colombier print(" cmdname ", addr.cmdname\X, "\n"); 493d1be6b08SDavid du Colombier print(" inrendez ", addr.inrendez, "\n"); 494d1be6b08SDavid du Colombier print(" rendhash ", addr.rendhash\X, "\n"); 495d1be6b08SDavid du Colombier print(" rendtag ", addr.rendtag\X, "\n"); 496d1be6b08SDavid du Colombier print(" rendval ", addr.rendval\X, "\n"); 497d1be6b08SDavid du Colombier print(" rendbreak ", addr.rendbreak, "\n"); 498d1be6b08SDavid du Colombier print(" chan ", addr.chan, "\n"); 499d1be6b08SDavid du Colombier print(" alt ", addr.alt\X, "\n"); 500d1be6b08SDavid du Colombier print(" udata ", addr.udata, "\n"); 501d1be6b08SDavid du Colombier}; 502d1be6b08SDavid du Colombier 503d1be6b08SDavid du ColombiersizeofExecargs = 16; 504d1be6b08SDavid du Colombieraggr Execargs 505d1be6b08SDavid du Colombier{ 506d1be6b08SDavid du Colombier 'X' 0 prog; 507d1be6b08SDavid du Colombier 'X' 4 args; 508d1be6b08SDavid du Colombier 'a' 8 fd; 509d1be6b08SDavid du Colombier}; 510d1be6b08SDavid du Colombier 511d1be6b08SDavid du Colombierdefn 512d1be6b08SDavid du ColombierExecargs(addr) { 513d1be6b08SDavid du Colombier complex Execargs addr; 514d1be6b08SDavid du Colombier print(" prog ", addr.prog\X, "\n"); 515d1be6b08SDavid du Colombier print(" args ", addr.args\X, "\n"); 516d1be6b08SDavid du Colombier print(" fd ", addr.fd, "\n"); 517d1be6b08SDavid du Colombier}; 518d1be6b08SDavid du Colombier 519*f591d971SDavid du ColombiersizeofProc = 2432; 520d1be6b08SDavid du Colombieraggr Proc 521d1be6b08SDavid du Colombier{ 522d1be6b08SDavid du Colombier Lock 0 lock; 523*f591d971SDavid du Colombier 'a' 8 sched; 524*f591d971SDavid du Colombier 'D' 16 pid; 525*f591d971SDavid du Colombier 'D' 20 splhi; 526*f591d971SDavid du Colombier 'A' Thread 24 thread; 527*f591d971SDavid du Colombier 'D' 28 needexec; 528*f591d971SDavid du Colombier Execargs 32 exec; 529*f591d971SDavid du Colombier 'A' Proc 48 newproc; 530*f591d971SDavid du Colombier 'a' 52 exitstr; 531*f591d971SDavid du Colombier 'D' 180 rforkflag; 532*f591d971SDavid du Colombier 'D' 184 nthreads; 533*f591d971SDavid du Colombier Tqueue 188 threads; 534*f591d971SDavid du Colombier Tqueue 200 ready; 535*f591d971SDavid du Colombier Lock 212 readylock; 536*f591d971SDavid du Colombier 'a' 220 printbuf; 537*f591d971SDavid du Colombier 'D' 2268 blocked; 538*f591d971SDavid du Colombier 'D' 2272 pending; 539*f591d971SDavid du Colombier 'D' 2276 nonotes; 540*f591d971SDavid du Colombier 'U' 2280 nextID; 541*f591d971SDavid du Colombier 'A' Proc 2284 next; 542*f591d971SDavid du Colombier 'X' 2288 arg; 543*f591d971SDavid du Colombier 'a' 2292 str; 544*f591d971SDavid du Colombier 'X' 2420 wdata; 545*f591d971SDavid du Colombier 'X' 2424 udata; 546*f591d971SDavid du Colombier 'C' 2428 threadint; 547d1be6b08SDavid du Colombier}; 548d1be6b08SDavid du Colombier 549d1be6b08SDavid du Colombierdefn 550d1be6b08SDavid du ColombierProc(addr) { 551d1be6b08SDavid du Colombier complex Proc addr; 552d1be6b08SDavid du Colombier print("Lock lock {\n"); 553d1be6b08SDavid du Colombier Lock(addr.lock); 554d1be6b08SDavid du Colombier print("}\n"); 555d1be6b08SDavid du Colombier print(" sched ", addr.sched, "\n"); 556d1be6b08SDavid du Colombier print(" pid ", addr.pid, "\n"); 557d1be6b08SDavid du Colombier print(" splhi ", addr.splhi, "\n"); 558d1be6b08SDavid du Colombier print(" thread ", addr.thread\X, "\n"); 559d1be6b08SDavid du Colombier print(" needexec ", addr.needexec, "\n"); 560d1be6b08SDavid du Colombier print("Execargs exec {\n"); 561d1be6b08SDavid du Colombier Execargs(addr.exec); 562d1be6b08SDavid du Colombier print("}\n"); 563d1be6b08SDavid du Colombier print(" newproc ", addr.newproc\X, "\n"); 564d1be6b08SDavid du Colombier print(" exitstr ", addr.exitstr, "\n"); 565d1be6b08SDavid du Colombier print(" rforkflag ", addr.rforkflag, "\n"); 566d1be6b08SDavid du Colombier print(" nthreads ", addr.nthreads, "\n"); 567d1be6b08SDavid du Colombier print("Tqueue threads {\n"); 568d1be6b08SDavid du Colombier Tqueue(addr.threads); 569d1be6b08SDavid du Colombier print("}\n"); 570d1be6b08SDavid du Colombier print("Tqueue ready {\n"); 571d1be6b08SDavid du Colombier Tqueue(addr.ready); 572d1be6b08SDavid du Colombier print("}\n"); 573d1be6b08SDavid du Colombier print("Lock readylock {\n"); 574d1be6b08SDavid du Colombier Lock(addr.readylock); 575d1be6b08SDavid du Colombier print("}\n"); 576d1be6b08SDavid du Colombier print(" printbuf ", addr.printbuf, "\n"); 577d1be6b08SDavid du Colombier print(" blocked ", addr.blocked, "\n"); 578d1be6b08SDavid du Colombier print(" pending ", addr.pending, "\n"); 579d1be6b08SDavid du Colombier print(" nonotes ", addr.nonotes, "\n"); 580d1be6b08SDavid du Colombier print(" nextID ", addr.nextID, "\n"); 581d1be6b08SDavid du Colombier print(" next ", addr.next\X, "\n"); 582d1be6b08SDavid du Colombier print(" arg ", addr.arg\X, "\n"); 583d1be6b08SDavid du Colombier print(" str ", addr.str, "\n"); 584d1be6b08SDavid du Colombier print(" wdata ", addr.wdata\X, "\n"); 585d1be6b08SDavid du Colombier print(" udata ", addr.udata\X, "\n"); 586d1be6b08SDavid du Colombier print(" threadint ", addr.threadint, "\n"); 587d1be6b08SDavid du Colombier}; 588d1be6b08SDavid du Colombier 589*f591d971SDavid du ColombiersizeofPqueue = 16; 590d1be6b08SDavid du Colombieraggr Pqueue 591d1be6b08SDavid du Colombier{ 592d1be6b08SDavid du Colombier Lock 0 lock; 593*f591d971SDavid du Colombier 'A' Proc 8 $head; 594*f591d971SDavid du Colombier 'A' Proc 12 $tail; 595d1be6b08SDavid du Colombier}; 596d1be6b08SDavid du Colombier 597d1be6b08SDavid du Colombierdefn 598d1be6b08SDavid du ColombierPqueue(addr) { 599d1be6b08SDavid du Colombier complex Pqueue addr; 600d1be6b08SDavid du Colombier print("Lock lock {\n"); 601d1be6b08SDavid du Colombier Lock(addr.lock); 602d1be6b08SDavid du Colombier print("}\n"); 603d1be6b08SDavid du Colombier print(" $head ", addr.$head\X, "\n"); 604d1be6b08SDavid du Colombier print(" $tail ", addr.$tail\X, "\n"); 605d1be6b08SDavid du Colombier}; 606d1be6b08SDavid du Colombier 607d1be6b08SDavid du ColombiersizeofIoproc = 160; 608d1be6b08SDavid du Colombieraggr Ioproc 609d1be6b08SDavid du Colombier{ 610d1be6b08SDavid du Colombier 'D' 0 tid; 611d1be6b08SDavid du Colombier 'A' Channel 4 c; 612d1be6b08SDavid du Colombier 'A' Channel 8 creply; 613d1be6b08SDavid du Colombier 'D' 12 inuse; 614d1be6b08SDavid du Colombier 'X' 16 op; 615d1be6b08SDavid du Colombier 'X' 20 arg; 616d1be6b08SDavid du Colombier 'D' 24 ret; 617d1be6b08SDavid du Colombier 'a' 28 err; 618d1be6b08SDavid du Colombier 'A' Ioproc 156 next; 619d1be6b08SDavid du Colombier}; 620d1be6b08SDavid du Colombier 621d1be6b08SDavid du Colombierdefn 622d1be6b08SDavid du ColombierIoproc(addr) { 623d1be6b08SDavid du Colombier complex Ioproc addr; 624d1be6b08SDavid du Colombier print(" tid ", addr.tid, "\n"); 625d1be6b08SDavid du Colombier print(" c ", addr.c\X, "\n"); 626d1be6b08SDavid du Colombier print(" creply ", addr.creply\X, "\n"); 627d1be6b08SDavid du Colombier print(" inuse ", addr.inuse, "\n"); 628d1be6b08SDavid du Colombier print(" op ", addr.op\X, "\n"); 629d1be6b08SDavid du Colombier print(" arg ", addr.arg\X, "\n"); 630d1be6b08SDavid du Colombier print(" ret ", addr.ret, "\n"); 631d1be6b08SDavid du Colombier print(" err ", addr.err, "\n"); 632d1be6b08SDavid du Colombier print(" next ", addr.next\X, "\n"); 633d1be6b08SDavid du Colombier}; 634d1be6b08SDavid du Colombier 635d1be6b08SDavid du Colombiercomplex Pqueue _threadpq; 636d1be6b08SDavid du Colombiercomplex Channel _threadwaitchan; 637d1be6b08SDavid du Colombiercomplex Rgrp _threadrgrp; 638d1be6b08SDavid du Colombiersizeof_2_ = 24; 639d1be6b08SDavid du Colombieraggr _2_ 640d1be6b08SDavid du Colombier{ 641d1be6b08SDavid du Colombier 'X' 0 pp; 642d1be6b08SDavid du Colombier 'X' 4 next; 643d1be6b08SDavid du Colombier 'X' 8 last; 644d1be6b08SDavid du Colombier 'X' 12 first; 645d1be6b08SDavid du Colombier 'U' 16 pid; 646d1be6b08SDavid du Colombier 'U' 20 what; 647d1be6b08SDavid du Colombier}; 648d1be6b08SDavid du Colombier 649d1be6b08SDavid du Colombierdefn 650d1be6b08SDavid du Colombier_2_(addr) { 651d1be6b08SDavid du Colombier complex _2_ addr; 652d1be6b08SDavid du Colombier print(" pp ", addr.pp\X, "\n"); 653d1be6b08SDavid du Colombier print(" next ", addr.next\X, "\n"); 654d1be6b08SDavid du Colombier print(" last ", addr.last\X, "\n"); 655d1be6b08SDavid du Colombier print(" first ", addr.first\X, "\n"); 656d1be6b08SDavid du Colombier print(" pid ", addr.pid, "\n"); 657d1be6b08SDavid du Colombier print(" what ", addr.what, "\n"); 658d1be6b08SDavid du Colombier}; 659d1be6b08SDavid du Colombier 660*f591d971SDavid du ColombiersizeofTos = 72; 661d1be6b08SDavid du Colombieraggr Tos 662d1be6b08SDavid du Colombier{ 663d1be6b08SDavid du Colombier _2_ 0 prof; 664d1be6b08SDavid du Colombier 'W' 24 cyclefreq; 665d1be6b08SDavid du Colombier 'V' 32 kcycles; 666d1be6b08SDavid du Colombier 'V' 40 pcycles; 667d1be6b08SDavid du Colombier 'U' 48 pid; 668d1be6b08SDavid du Colombier 'U' 52 clock; 669*f591d971SDavid du Colombier 'a' 56 kscr; 670d1be6b08SDavid du Colombier}; 671d1be6b08SDavid du Colombier 672d1be6b08SDavid du Colombierdefn 673d1be6b08SDavid du ColombierTos(addr) { 674d1be6b08SDavid du Colombier complex Tos addr; 675d1be6b08SDavid du Colombier print("_2_ prof {\n"); 676d1be6b08SDavid du Colombier _2_(addr.prof); 677d1be6b08SDavid du Colombier print("}\n"); 678d1be6b08SDavid du Colombier print(" cyclefreq ", addr.cyclefreq, "\n"); 679d1be6b08SDavid du Colombier print(" kcycles ", addr.kcycles, "\n"); 680d1be6b08SDavid du Colombier print(" pcycles ", addr.pcycles, "\n"); 681d1be6b08SDavid du Colombier print(" pid ", addr.pid, "\n"); 682d1be6b08SDavid du Colombier print(" clock ", addr.clock, "\n"); 683*f591d971SDavid du Colombier print(" kscr ", addr.kscr, "\n"); 684d1be6b08SDavid du Colombier}; 685d1be6b08SDavid du Colombier 686d1be6b08SDavid du Colombiercomplex Tos _tos; 687d1be6b08SDavid du Colombiercomplex Proc _schedinit:p; 688d1be6b08SDavid du Colombiercomplex Thread _schedinit:t; 689d1be6b08SDavid du Colombiercomplex Thread _schedinit:l; 690d1be6b08SDavid du Colombiercomplex Proc needstack:p; 691d1be6b08SDavid du Colombiercomplex Thread needstack:t; 692d1be6b08SDavid du Colombiercomplex Proc _sched:p; 693d1be6b08SDavid du Colombiercomplex Thread _sched:t; 694d1be6b08SDavid du Colombiercomplex Proc runthread:p; 695d1be6b08SDavid du Colombiercomplex Thread runthread:t; 696d1be6b08SDavid du Colombiercomplex Tqueue runthread:q; 697d1be6b08SDavid du Colombiercomplex Thread _threadready:t; 698d1be6b08SDavid du Colombiercomplex Tqueue _threadready:q; 699