13e12c5d1SDavid du Colombier #include "all.h" 23e12c5d1SDavid du Colombier 33e12c5d1SDavid du Colombier Uid* uid; 43e12c5d1SDavid du Colombier char* uidspace; 53e12c5d1SDavid du Colombier short* gidspace; 67dd7cddfSDavid du Colombier RWLock mainlock; 73e12c5d1SDavid du Colombier long boottime; 83e12c5d1SDavid du Colombier Tlock *tlocks; 93e12c5d1SDavid du Colombier Conf conf; 103e12c5d1SDavid du Colombier Cons cons; 113e12c5d1SDavid du Colombier Chan *chan; 123e12c5d1SDavid du Colombier char service[2*NAMELEN]; 133e12c5d1SDavid du Colombier char *progname; 143e12c5d1SDavid du Colombier char *procname; 153e12c5d1SDavid du Colombier int RBUFSIZE; 163e12c5d1SDavid du Colombier int BUFSIZE; 173e12c5d1SDavid du Colombier int DIRPERBUF; 183e12c5d1SDavid du Colombier int INDPERBUF; 193e12c5d1SDavid du Colombier int INDPERBUF2; 203e12c5d1SDavid du Colombier int FEPERBUF; 213e12c5d1SDavid du Colombier 227dd7cddfSDavid du Colombier Filsys filesys[MAXFILSYS] = 233e12c5d1SDavid du Colombier { 243e12c5d1SDavid du Colombier {"main", {Devwren, 0, 0, 0}, 0}, 253e12c5d1SDavid du Colombier }; 263e12c5d1SDavid du Colombier 273e12c5d1SDavid du Colombier Device devnone = {Devnone, 0, 0, 0}; 283e12c5d1SDavid du Colombier 293e12c5d1SDavid du Colombier Devcall devcall[MAXDEV] = { 303e12c5d1SDavid du Colombier [Devnone] {0}, 313e12c5d1SDavid du Colombier [Devwren] {wreninit, wrenream, wrencheck, wrensuper, wrenroot, wrensize, wrenread, wrenwrite}, 323e12c5d1SDavid du Colombier }; 333e12c5d1SDavid du Colombier 343e12c5d1SDavid du Colombier char* tagnames[] = 353e12c5d1SDavid du Colombier { 363e12c5d1SDavid du Colombier [Tbuck] "Tbuck", 373e12c5d1SDavid du Colombier [Tdir] "Tdir", 383e12c5d1SDavid du Colombier [Tfile] "Tfile", 393e12c5d1SDavid du Colombier [Tfree] "Tfree", 403e12c5d1SDavid du Colombier [Tind1] "Tind1", 413e12c5d1SDavid du Colombier [Tind2] "Tind2", 423e12c5d1SDavid du Colombier [Tnone] "Tnone", 433e12c5d1SDavid du Colombier [Tsuper] "Tsuper", 443e12c5d1SDavid du Colombier [Tvirgo] "Tvirgo", 453e12c5d1SDavid du Colombier [Tcache] "Tcache", 463e12c5d1SDavid du Colombier }; 473e12c5d1SDavid du Colombier 487dd7cddfSDavid du Colombier char *errstring[MAXERR] = 493e12c5d1SDavid du Colombier { 503e12c5d1SDavid du Colombier [Ebadspc] "attach -- bad specifier", 513e12c5d1SDavid du Colombier [Efid] "unknown fid", 523e12c5d1SDavid du Colombier [Echar] "bad character in directory name", 533e12c5d1SDavid du Colombier [Eopen] "read/write -- on non open fid", 543e12c5d1SDavid du Colombier [Ecount] "read/write -- count too big", 553e12c5d1SDavid du Colombier [Ealloc] "phase error -- directory entry not allocated", 563e12c5d1SDavid du Colombier [Eqid] "phase error -- qid does not match", 57*9a747e4fSDavid du Colombier [Eauth] "authentication failed", 58*9a747e4fSDavid du Colombier [Eauthmsg] "kfs: authentication not required", 593e12c5d1SDavid du Colombier [Eaccess] "access permission denied", 603e12c5d1SDavid du Colombier [Eentry] "directory entry not found", 613e12c5d1SDavid du Colombier [Emode] "open/create -- unknown mode", 623e12c5d1SDavid du Colombier [Edir1] "walk -- in a non-directory", 633e12c5d1SDavid du Colombier [Edir2] "create -- in a non-directory", 643e12c5d1SDavid du Colombier [Ephase] "phase error -- cannot happen", 653e12c5d1SDavid du Colombier [Eexist] "create -- file exists", 663e12c5d1SDavid du Colombier [Edot] "create -- . and .. illegal names", 673e12c5d1SDavid du Colombier [Eempty] "remove -- directory not empty", 683e12c5d1SDavid du Colombier [Ebadu] "attach -- privileged user", 693e12c5d1SDavid du Colombier [Enotu] "wstat -- not owner", 703e12c5d1SDavid du Colombier [Enotg] "wstat -- not in group", 71*9a747e4fSDavid du Colombier [Enotl] "wstat -- attempt to change length", 72*9a747e4fSDavid du Colombier [Enotd] "wstat -- attempt to change directory", 73*9a747e4fSDavid du Colombier [Enotm] "wstat -- unknown type/mode", 743e12c5d1SDavid du Colombier [Ename] "create/wstat -- bad character in file name", 753e12c5d1SDavid du Colombier [Ewalk] "walk -- too many (system wide)", 763e12c5d1SDavid du Colombier [Eronly] "file system read only", 773e12c5d1SDavid du Colombier [Efull] "file system full", 783e12c5d1SDavid du Colombier [Eoffset] "read/write -- offset negative", 793e12c5d1SDavid du Colombier [Elocked] "open/create -- file is locked", 803e12c5d1SDavid du Colombier [Ebroken] "close/read/write -- lock is broken", 81*9a747e4fSDavid du Colombier [Efidinuse] "fid already in use", 82*9a747e4fSDavid du Colombier [Etoolong] "name too long", 83*9a747e4fSDavid du Colombier [Ersc] "it's russ's fault. bug him.", 84*9a747e4fSDavid du Colombier [Econvert] "protocol botch", 85*9a747e4fSDavid du Colombier [Eqidmode] "wstat -- qid.type/dir.mode mismatch", 86*9a747e4fSDavid du Colombier [Esystem] "kfs system error", 873e12c5d1SDavid du Colombier }; 88