/* 
 * Mach Operating System
 * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
 * All Rights Reserved.
 * 
 * Permission to use, copy, modify and distribute this software and its
 * documentation is hereby granted, provided that both the copyright
 * notice and this permission notice appear in all copies of the
 * software, derivative works or modified versions, and any portions
 * thereof, and that both notices appear in supporting documentation.
 * 
 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS 
 * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
 * 
 * Carnegie Mellon requests users of this software to return to
 * 
 *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
 *  School of Computer Science
 *  Carnegie Mellon University
 *  Pittsburgh PA 15213-3890
 * 
 * any improvements or extensions that they make and grant Carnegie the
 * rights to redistribute these changes.
 */
/*
 * HISTORY
 * $Log$
 * Revision 1.1  1992/10/06 18:29:53  roland
 * entered into RCS
 *
 * Revision 2.2  92/01/16  00:10:29  rpd
 * 	Moved from user collection to mk collection.
 * 
 * Revision 2.3  91/08/29  15:51:39  rpd
 * 	Fixed err_codes_netname.
 * 	[91/08/22            rpd]
 * 
 * Revision 2.2  91/03/27  16:05:51  mrt
 * 	First checkin
 * 
 * Revision 2.3  90/10/29  17:27:20  dpj
 * 	Merged-up to U25
 * 	[90/09/02  20:00:25  dpj]
 * 
 */
/*
 *	File:	err_server.sub
 *	Author:	Douglas Orr, Carnegie Mellon University
 *	Date:	Mar, 1988
 *
 *	Definitions of Servers error strings
 */

static char * err_codes_netname[] = {			/* 0 */
		"(server/netname) name is not yours",
		"(server/netname) name not checked in",
		"(server/netname) no such host",
		"(server/netname) host not found",
};
static char * err_codes_env_mgr[] = {			/* 1 */
		NO_SUCH_ERROR,
		"(server/env_mgr) variable not found",
		"(server/env_mgr) wrong type of variable",
		"(server/env_mgr) unknown port",
		"(server/env_mgr) read only environment",
		"(server/env_mgr) no more connections available",
		"(server/env_mgr) port table full",
		"(server/env_mgr) attempting to enter a null port ",
};
static char * err_codes_execd[] = {			/* 2 */
		NO_SUCH_ERROR,
		"(server/execd) could not find file to run",
		"(server/execd) userid or password incorrect",
		"(server/execd) fork failed",
};
static char * err_codes_netmemory[] = {			/* 3 */
		"(server/netmemory) successful",
		"(server/netmemory) invalid argument",
		"(server/netmemory) resource shortage",
};
static char * err_codes_ufs[] = {			/* 4 */
		NO_SUCH_ERROR,
/* XXX		"(server/ufs) invalid port", */
};

static char * err_codes_task_master[] = {		/* 5 */
		"(server/task_master) GENERIC ERROR",
		"(server/task_master) invalid tm_task port",
		"(server/task_master) invalid task id",
		"(server/task_master) invalid kernel port",
		"(server/task_master) invalid job group",
		"(server/task_master) invalid action",
};

static char * err_codes_ns[] = {			/* 6 */
		"(server/ns) GENERIC ERROR",
		"(server/ns) invalid handle",
		"(server/ns) name not found",
		"(server/ns) name already exists",
		"(server/ns) name too long",
		"(server/ns) path too long",
		"(server/ns) invalid name",
		"(server/ns) not a directory",
		"(server/ns) is a directory",
		"(server/ns) directory not empty",
		"(server/ns) infinite retry loop in resolver",
		"(server/ns) infinite forwarding loop in resolver",
		"(server/ns) invalid prefix",
		"(server/ns) prefix table overflow",
		"(server/ns) bad format for directory",
		"(server/ns) unknown entry type",
		"(server/ns) invalid generation",
		"(server/ns) entry not reserved",
};

static char 	* err_codes_io[] = {			/* 7 */
		"(server/io) GENERIC ERROR",
		"(server/io) invalid offset",
		"(server/io) invalid size",
		"(server/io) invalid mode",
		"(server/io) invalid strategy",
		"(server/io) operation rejected under current I/O strategy",
};

static char * err_codes_auth[] = {			/* 8 */
		"(server/auth) GENERIC ERROR",
		"(server/auth) bad private port",
		"(server/auth) bad name",
		"(server/auth) not primary",
		"(server/auth) bad pauthsword",
		"(server/auth) bad group",
		"(server/auth) duplicate id",
		"(server/auth) duplicate name",
		"(server/auth) not secondary",
};

static char * err_codes_us[] = {			/* 9 */
		"(server/us) GENERIC ERROR",
		"(server/us) unknown error",
		"(server/us) object not found",
		"(server/us) object exists",
		"(server/us) object busy",
		"(server/us) object not started",
		"(server/us) object dead",
		"(server/us) invalid args",
		"(server/us) invalid access",
		"(server/us) invalid format",
		"(server/us) invalid buffer size",
		"(server/us) access denied",
		"(server/us) resource exhausted",
		"(server/us) quota exceeded",
		"(server/us) limit exceeded",
		"(server/us) not implemented",
		"(server/us) not supported",
		"(server/us) hardware error",
		"(server/us) retry required",
		"(server/us) not authenticated",
		"(server/us) exclusive access",
		"(server/us) timeout",
		"(server/us) bad reference count",
		"(server/us) internal error",
};

static char * err_codes_sunrpc[] = {			/* 10 */
		"(server/sunrpc) GENERIC ERROR",
		"(server/sunrpc) cannot encode arguments",
		"(server/sunrpc) cannot decode results",
		"(server/sunrpc) failure in sending call",
		"(server/sunrpc) failure in receiving result",
		"(server/sunrpc) call timed out",
		"(server/sunrpc) rpc versions not compatible",
		"(server/sunrpc) authentication error",
		"(server/sunrpc) program not available",
		"(server/sunrpc) program version mismatched",
		"(server/sunrpc) procedure unavailable",
		"(server/sunrpc) decode arguments error",
		"(server/sunrpc) generic other problem",
		"(server/sunrpc) unknown host name",
		"(server/sunrpc) portmapper failed",
		"(server/sunrpc) remote program not registered",
		"(server/sunrpc) unspecified error",
		"(server/sunrpc) unknown protocol",
};

static char	* err_codes_machobj[] = {		/* 11 */
		"(server/object system) GENERIC ERROR",
		"(server/object system) object not found",
		"(server/object system) no such operation",
		"(server/object system) undefined ipc method arguments",
		"(server/object system) too many arguments to method",
		"(server/object system) bad ipc message format",
};

static char 	* err_codes_loader[] = {		/* 12 */
		"(server/loader) GENERIC ERROR",
		"(server/loader) object file not relocated",
		"(server/loader) unknown file type",
		"(server/loader) symbol not found",
		"(server/loader) symbol multiply defined",
		"(server/loader) memory region overlap",
};


static char	* err_codes_exception[] = {		/* 13 */
	"(server/exception) GENERIC ERROR",
	"(server/exception) invalid access",
	"(server/exception) invalid instruction",
	"(server/exception) arithmetic exception",
	"(server/exception) emulation exception",
	"(server/exception) software exception",
	"(server/exception) breakpoint exception",
};

static char	* err_codes_ux_signal[] = {		/* 14 */
	"(server/unix-signal) GENERIC ERROR",
	"(server/unix-signal) hangup",
	"(server/unix-signal) interrupt",
	"(server/unix-signal) quit",
	"(server/unix-signal) undefined",
	"(server/unix-signal) undefined",
	"(server/unix-signal) undefined",
	"(server/unix-signal) undefined",
	"(server/unix-signal) kill",
	"(server/unix-signal) undefined",
	"(server/unix-signal) undefined",
	"(server/unix-signal) system error",
	"(server/unix-signal) pipe signal",
	"(server/unix-signal) alarm",
	"(server/unix-signal) terminate",
	"(server/unix-signal) urgent i/o",
	"(server/unix-signal) stop",
	"(server/unix-signal) terminal stop",
	"(server/unix-signal) continue",
	"(server/unix-signal) child death",
	"(server/unix-signal) tty input",
	"(server/unix-signal) tty output",
	"(server/unix-signal) i/o signal",
	"(server/unix-signal) cpu time limit exceeded",
	"(server/unix-signal) file size exceeded",
	"(server/unix-signal) virtual alarm",
	"(server/unix-signal) profile signal",
	"(server/unix-signal) window size change",
	"(server/unix-signal) user-defined signal 1",
	"(server/unix-signal) user-defined signal 2",
};

static char	* err_codes_xkernel[] = {		/* 15 */
	"(server/xkernel) GENERIC ERROR",
	"(server/xkernel) map full",
	"(server/xkernel) inconsistent bind",
	"(server/xkernel) cannot resolve",
	"(server/xkernel) cannot unbind",
	"(server/xkernel) invalid type",
	"(server/xkernel) invalid opcode",
	"(server/xkernel) buffer too small",
	"(server/xkernel) invalid ev code",
	"(server/xkernel) event not registered",
	"(server/xkernel) invalid open",
	"(server/xkernel) already open",
	"(server/xkernel) bad addr",
};


/*	err_server subsystems      	*/
static struct error_subsystem err_server_sub[] = {
	/* server/0; */
	{
		"(server/netname)",
		errlib_count(err_codes_netname),
		err_codes_netname,
	},
	/* server/1; */
	{
		"(server/env_mgr)",
		errlib_count(err_codes_env_mgr),
		err_codes_env_mgr,
	},
	/* server/2; */
	{
		"(server/execd)",
		errlib_count(err_codes_execd),
		err_codes_execd,
	},
	/* server/3; */
	{
		"(server/netmemory)",
		errlib_count(err_codes_netmemory),
		err_codes_netmemory,
	},
	/* server/4; */
	{
		"(server/ufs)",
		errlib_count(err_codes_ufs),
		err_codes_ufs,
	},
	/* server/5; */
	{
		"(server/task_master)",
		errlib_count(err_codes_task_master),
		err_codes_task_master,
	},
	/* server/6; */
	{
		"(server/ns)",
		errlib_count(err_codes_ns),
		err_codes_ns,
	},

	/* server/7; i/o subsystem */
	{
		"(server/io)",
		errlib_count(err_codes_io),
		err_codes_io,
	},

	/* server/8; authentication server */
	{
		"(server/auth)",
		errlib_count(err_codes_auth),
		err_codes_auth,
	},

	/* server/9; generic US system */
	{
		"(server/us)",
		errlib_count(err_codes_us),
		err_codes_us,
	},

	/* server/10; SUN RPC package */
	{
		"(server/sunrpc)",
		errlib_count(err_codes_sunrpc),
		err_codes_sunrpc,
	},

	/* server/11; MachObject system */
	{
		"(server/object system)",
		errlib_count(err_codes_machobj),
		err_codes_machobj,
	},

	/* server/12; loader */
	{
		"(server/loader)",
		errlib_count(err_codes_loader),
		err_codes_loader,
	},

	/* server/13; mach exception */
	{
		"(server/exception)",
		errlib_count(err_codes_exception),
		err_codes_exception,
	},

	/* server/14; unix signal */
	{
		"(server/unix-signal)",
		errlib_count(err_codes_ux_signal),
		err_codes_ux_signal,
	},

	/* server/15; xkernel */
	{
		"(server/xkernel)",
		errlib_count(err_codes_xkernel),
		err_codes_xkernel,
	},

};

