1*01a344a2SDavid du Colombier #include "all.h" 2*01a344a2SDavid du Colombier 3*01a344a2SDavid du Colombier char *errstr9p[MAXERR] = 4*01a344a2SDavid du Colombier { 5*01a344a2SDavid du Colombier [Ebadspc] "attach -- bad specifier", 6*01a344a2SDavid du Colombier [Efid] "unknown fid", 7*01a344a2SDavid du Colombier [Echar] "bad character in directory name", 8*01a344a2SDavid du Colombier [Eopen] "read/write -- on non open fid", 9*01a344a2SDavid du Colombier [Ecount] "read/write -- count too big", 10*01a344a2SDavid du Colombier [Ealloc] "phase error -- directory entry not allocated", 11*01a344a2SDavid du Colombier [Eqid] "phase error -- qid does not match", 12*01a344a2SDavid du Colombier [Eaccess] "access permission denied", 13*01a344a2SDavid du Colombier [Eentry] "directory entry not found", 14*01a344a2SDavid du Colombier [Emode] "open/create -- unknown mode", 15*01a344a2SDavid du Colombier [Edir1] "walk -- in a non-directory", 16*01a344a2SDavid du Colombier [Edir2] "create -- in a non-directory", 17*01a344a2SDavid du Colombier [Ephase] "phase error -- cannot happen", 18*01a344a2SDavid du Colombier [Eexist] "create/wstat -- file exists", 19*01a344a2SDavid du Colombier [Edot] "create/wstat -- . and .. illegal names", 20*01a344a2SDavid du Colombier [Eempty] "remove -- directory not empty", 21*01a344a2SDavid du Colombier [Ebadu] "attach -- unknown user or failed authentication", 22*01a344a2SDavid du Colombier [Enoattach] "attach -- system maintenance", 23*01a344a2SDavid du Colombier [Ewstatb] "wstat -- unknown bits in qid.type/mode", 24*01a344a2SDavid du Colombier [Ewstatd] "wstat -- attempt to change directory", 25*01a344a2SDavid du Colombier [Ewstatg] "wstat -- not in group", 26*01a344a2SDavid du Colombier [Ewstatl] "wstat -- attempt to make length negative", 27*01a344a2SDavid du Colombier [Ewstatm] "wstat -- attempt to change muid", 28*01a344a2SDavid du Colombier [Ewstato] "wstat -- not owner or group leader", 29*01a344a2SDavid du Colombier [Ewstatp] "wstat -- attempt to change qid.path", 30*01a344a2SDavid du Colombier [Ewstatq] "wstat -- qid.type/dir.mode mismatch", 31*01a344a2SDavid du Colombier [Ewstatu] "wstat -- not owner", 32*01a344a2SDavid du Colombier [Ewstatv] "wstat -- attempt to change qid.vers", 33*01a344a2SDavid du Colombier [Ename] "create/wstat -- bad character in file name", 34*01a344a2SDavid du Colombier [Ewalk] "walk -- too many (system wide)", 35*01a344a2SDavid du Colombier [Eronly] "file system read only", 36*01a344a2SDavid du Colombier [Efull] "file system full", 37*01a344a2SDavid du Colombier [Eoffset] "read/write -- offset negative", 38*01a344a2SDavid du Colombier [Elocked] "open/create -- file is locked", 39*01a344a2SDavid du Colombier [Ebroken] "read/write -- lock is broken", 40*01a344a2SDavid du Colombier [Eauth] "attach -- authentication failed", 41*01a344a2SDavid du Colombier [Eauth2] "read/write -- authentication unimplemented", 42*01a344a2SDavid du Colombier [Etoolong] "name too long", 43*01a344a2SDavid du Colombier [Efidinuse] "fid in use", 44*01a344a2SDavid du Colombier [Econvert] "protocol botch", 45*01a344a2SDavid du Colombier [Eversion] "version conversion", 46*01a344a2SDavid du Colombier [Eauthnone] "auth -- user 'none' requires no authentication", 47*01a344a2SDavid du Colombier [Eauthdisabled] "auth -- authentication disabled", /* development */ 48*01a344a2SDavid du Colombier [Eauthfile] "auth -- out of auth files", 49*01a344a2SDavid du Colombier [Eedge] "at the bleeding edge", /* development */ 50*01a344a2SDavid du Colombier }; 51*01a344a2SDavid du Colombier 52*01a344a2SDavid du Colombier char* wormscode[0x80] = 53*01a344a2SDavid du Colombier { 54*01a344a2SDavid du Colombier [0x00] "no sense", 55*01a344a2SDavid du Colombier [0x01] "invalid command", 56*01a344a2SDavid du Colombier [0x02] "recovered error", 57*01a344a2SDavid du Colombier [0x03] "illegal request", 58*01a344a2SDavid du Colombier [0x06] "unit attention", 59*01a344a2SDavid du Colombier [0x07] "parity error", 60*01a344a2SDavid du Colombier [0x08] "message reject error", 61*01a344a2SDavid du Colombier [0x0a] "copy aborted", 62*01a344a2SDavid du Colombier [0x0b] "initiator detected error", 63*01a344a2SDavid du Colombier [0x0c] "select re-select failed", 64*01a344a2SDavid du Colombier [0x0e] "miscompare", 65*01a344a2SDavid du Colombier 66*01a344a2SDavid du Colombier [0x10] "ecc trouble occurred", 67*01a344a2SDavid du Colombier [0x11] "time out error", 68*01a344a2SDavid du Colombier [0x12] "controller error", 69*01a344a2SDavid du Colombier [0x13] "sony i/f II hardware/firmware error", 70*01a344a2SDavid du Colombier [0x14] "scsi hardware/firmware error", 71*01a344a2SDavid du Colombier [0x15] "rom version unmatched error", 72*01a344a2SDavid du Colombier [0x16] "logical block address out of range", 73*01a344a2SDavid du Colombier 74*01a344a2SDavid du Colombier [0x20] "command not terminated", 75*01a344a2SDavid du Colombier [0x21] "drive interface parity error", 76*01a344a2SDavid du Colombier [0x22] "loading trouble", 77*01a344a2SDavid du Colombier [0x23] "focus trouble", 78*01a344a2SDavid du Colombier [0x24] "tracking trouble", 79*01a344a2SDavid du Colombier [0x25] "spindle trouble", 80*01a344a2SDavid du Colombier [0x26] "slide trouble", 81*01a344a2SDavid du Colombier [0x27] "skew trouble", 82*01a344a2SDavid du Colombier [0x28] "head lead out", 83*01a344a2SDavid du Colombier [0x29] "write modulation trouble", 84*01a344a2SDavid du Colombier [0x2a] "under laser power", 85*01a344a2SDavid du Colombier [0x2b] "over laser power", 86*01a344a2SDavid du Colombier [0x2f] "drive error", 87*01a344a2SDavid du Colombier 88*01a344a2SDavid du Colombier [0x30] "drive power off", 89*01a344a2SDavid du Colombier [0x31] "no disk in drive", 90*01a344a2SDavid du Colombier [0x32] "drive not ready", 91*01a344a2SDavid du Colombier [0x38] "disk already exists in drive", 92*01a344a2SDavid du Colombier [0x39] "no disk in shelf", 93*01a344a2SDavid du Colombier [0x3a] "disk already exists in shelf", 94*01a344a2SDavid du Colombier 95*01a344a2SDavid du Colombier [0x40] "write warning", 96*01a344a2SDavid du Colombier [0x41] "write error", 97*01a344a2SDavid du Colombier [0x42] "disk error", 98*01a344a2SDavid du Colombier [0x43] "cannot read disk ID", 99*01a344a2SDavid du Colombier [0x44] "write protect error 1", 100*01a344a2SDavid du Colombier [0x45] "write protect error 2", 101*01a344a2SDavid du Colombier [0x46] "disk warning", 102*01a344a2SDavid du Colombier [0x47] "alternation trouble", 103*01a344a2SDavid du Colombier 104*01a344a2SDavid du Colombier [0x50] "specified address not found", 105*01a344a2SDavid du Colombier [0x51] "address block not found", 106*01a344a2SDavid du Colombier [0x52] "all address could not be read", 107*01a344a2SDavid du Colombier [0x53] "data could not be read", 108*01a344a2SDavid du Colombier [0x54] "uncorrectable read error", 109*01a344a2SDavid du Colombier [0x55] "tracking error", 110*01a344a2SDavid du Colombier [0x56] "write servo error", 111*01a344a2SDavid du Colombier [0x57] "write monitor error", 112*01a344a2SDavid du Colombier [0x58] "write verify error", 113*01a344a2SDavid du Colombier 114*01a344a2SDavid du Colombier [0x60] "no data in specified address", 115*01a344a2SDavid du Colombier [0x61] "blank check failed", 116*01a344a2SDavid du Colombier [0x62] "controller diagnostics failed", 117*01a344a2SDavid du Colombier [0x63] "drive diagnostice failed", 118*01a344a2SDavid du Colombier [0x64] "diagnostice aborted", 119*01a344a2SDavid du Colombier [0x67] "juke diagnostice failed", 120*01a344a2SDavid du Colombier [0x68] "z-axis servo failed", 121*01a344a2SDavid du Colombier [0x69] "roter servo error", 122*01a344a2SDavid du Colombier [0x6a] "hook servo error", 123*01a344a2SDavid du Colombier [0x6b] "I/O self error", 124*01a344a2SDavid du Colombier [0x6c] "drive 0 error", 125*01a344a2SDavid du Colombier [0x6d] "drive 1 error", 126*01a344a2SDavid du Colombier [0x6e] "shelf error", 127*01a344a2SDavid du Colombier [0x6f] "carrier error", 128*01a344a2SDavid du Colombier 129*01a344a2SDavid du Colombier [0x70] "rob made me do it", 130*01a344a2SDavid du Colombier [0x71] "out of range", 131*01a344a2SDavid du Colombier }; 132*01a344a2SDavid du Colombier 133*01a344a2SDavid du Colombier char* tagnames[] = 134*01a344a2SDavid du Colombier { 135*01a344a2SDavid du Colombier [Tbuck] "Tbuck", 136*01a344a2SDavid du Colombier [Tdir] "Tdir", 137*01a344a2SDavid du Colombier [Tfile] "Tfile", 138*01a344a2SDavid du Colombier [Tfree] "Tfree", 139*01a344a2SDavid du Colombier [Tind1] "Tind1", 140*01a344a2SDavid du Colombier [Tind2] "Tind2", 141*01a344a2SDavid du Colombier #ifndef COMPAT32 142*01a344a2SDavid du Colombier [Tind3] "Tind3", 143*01a344a2SDavid du Colombier [Tind4] "Tind4", 144*01a344a2SDavid du Colombier /* add more Tind tags here ... */ 145*01a344a2SDavid du Colombier #endif 146*01a344a2SDavid du Colombier [Tnone] "Tnone", 147*01a344a2SDavid du Colombier [Tsuper] "Tsuper", 148*01a344a2SDavid du Colombier [Tvirgo] "Tvirgo", 149*01a344a2SDavid du Colombier [Tcache] "Tcache", 150*01a344a2SDavid du Colombier }; 151