xref: /plan9/sys/src/cmd/disk/kfs/dat.c (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
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