2.5-18.1
[jlayton/glibc.git] / mach / errorlib.h
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]))