1 /*
2  * Mach Operating System
3  * Copyright (c) 1991,1990,1989 Carnegie Mellon University
4  * All Rights Reserved.
5  *
6  * Permission to use, copy, modify and distribute this software and its
7  * documentation is hereby granted, provided that both the copyright
8  * notice and this permission notice appear in all copies of the
9  * software, derivative works or modified versions, and any portions
10  * thereof, and that both notices appear in supporting documentation.
11  *
12  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS
13  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
14  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
15  *
16  * Carnegie Mellon requests users of this software to return to
17  *
18  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
19  *  School of Computer Science
20  *  Carnegie Mellon University
21  *  Pittsburgh PA 15213-3890
22  *
23  * any improvements or extensions that they make and grant Carnegie the
24  * rights to redistribute these changes.
25  */
26 /*
27  * (pre-GNU) HISTORY
28  *
29  * Revision 2.3  92/03/31  15:18:52  rpd
30  * 	Added KERN_DEVICE_MOD for device errors.
31  * 	[92/03/09            rpd]
32  *
33  * Revision 2.2  92/01/16  00:21:17  rpd
34  * 	Moved from user collection to mk collection.
35  *
36  * Revision 2.2  91/03/27  15:37:37  mrt
37  * 	First checkin
38  *
39  */
40 /*
41  *	File:	errorlib.h
42  *	Author:	Douglas Orr, Carnegie Mellon University
43  *	Date:	Mar. 1988
44  *
45  *	Error bases for subsytems errors.
46  */
47 
48 #include <mach/error.h>
49 
50 #define KERN_DEVICE_MOD		(err_kern|err_sub(1))
51 
52 #define BOOTSTRAP_FS_MOD	(err_bootstrap|err_sub(0))
53 
54 #define	MACH_IPC_SEND_MOD	(err_mach_ipc|err_sub(0))
55 #define	MACH_IPC_RCV_MOD	(err_mach_ipc|err_sub(1))
56 #define	MACH_IPC_MIG_MOD	(err_mach_ipc|err_sub(2))
57 
58 #define	IPC_SEND_MOD		(err_ipc|err_sub(0))
59 #define	IPC_RCV_MOD		(err_ipc|err_sub(1))
60 #define	IPC_MIG_MOD		(err_ipc|err_sub(2))
61 
62 #define	SERV_NETNAME_MOD	(err_server|err_sub(0))
63 #define	SERV_ENV_MOD		(err_server|err_sub(1))
64 #define	SERV_EXECD_MOD		(err_server|err_sub(2))
65 
66 
67 #define	NO_SUCH_ERROR		"unknown error code"
68 
69 struct error_subsystem {
70 	const char		* subsys_name;
71 	int			max_code;
72 	const char		* const * codes;
73 };
74 
75 struct error_system {
76 	int			max_sub;
77 	const char		* bad_sub;
78 	const struct error_subsystem	* subsystem;
79 };
80 
81 #define errors __mach_error_systems
82 extern const struct error_system 	errors[err_max_system+1];
83 
84 #define	errlib_count(s)		(sizeof(s)/sizeof(s[0]))
85