|
|
1.1 root 1: /*
2: * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
3: *
4: * @APPLE_LICENSE_HEADER_START@
5: *
6: * The contents of this file constitute Original Code as defined in and
7: * are subject to the Apple Public Source License Version 1.1 (the
8: * "License"). You may not use this file except in compliance with the
9: * License. Please obtain a copy of the License at
10: * http://www.apple.com/publicsource and read it before using this file.
11: *
12: * This Original Code and all software distributed under the License are
13: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17: * License for the specific language governing rights and limitations
18: * under the License.
19: *
20: * @APPLE_LICENSE_HEADER_END@
21: */
22: /*
23: * @OSF_COPYRIGHT@
24: */
25: /*
26: * HISTORY
27: *
28: * Revision 1.1.1.1 1998/09/22 21:05:29 wsanchez
29: * Import of Mac OS X kernel (~semeria)
30: *
31: * Revision 1.1.1.1 1998/03/07 02:25:45 wsanchez
32: * Import of OSF Mach kernel (~mburg)
33: *
34: * Revision 1.2.10.2 1995/02/23 17:51:15 alanl
35: * Merge with DIPC2_SHARED.
36: * [1995/01/03 21:49:04 alanl]
37: *
38: * Revision 1.2.10.1 1994/09/23 02:35:28 ezf
39: * change marker to not FREE
40: * [1994/09/22 21:39:26 ezf]
41: *
42: * Revision 1.2.8.1 1994/08/04 02:27:36 mmp
43: * NOTE: file was moved back to b11 version for dipc2_shared.
44: * Added DIPC error system.
45: * [1994/05/11 17:36:37 alanl]
46: *
47: * Revision 1.2.2.3 1993/08/12 21:59:50 jvs
48: * Correctly prototype mach_error_fn_t typedef. 9523
49: * [1993/08/12 21:57:56 jvs]
50: *
51: * Revision 1.2.2.2 1993/06/09 02:39:58 gm
52: * Added to OSF/1 R1.3 from NMK15.0.
53: * [1993/06/02 21:15:47 jeffc]
54: *
55: * Revision 1.2 1993/04/19 16:33:02 devrcs
56: * make endif tags ansi compliant/include files
57: * [1993/02/20 21:44:37 david]
58: *
59: * Revision 1.1 1992/09/30 02:30:35 robert
60: * Initial revision
61: *
62: * $EndLog$
63: */
64: /* CMU_HIST */
65: /*
66: * Revision 2.4 91/05/14 16:51:24 mrt
67: * Correcting copyright
68: *
69: * Revision 2.3 91/02/05 17:31:48 mrt
70: * Changed to new Mach copyright
71: * [91/02/01 17:16:50 mrt]
72: *
73: * Revision 2.2 90/06/02 14:57:47 rpd
74: * Added err_mach_ipc for new IPC.
75: * [90/03/26 22:28:42 rpd]
76: *
77: * Revision 2.1 89/08/03 16:02:07 rwd
78: * Created.
79: *
80: * Revision 2.4 89/02/25 18:13:18 gm0w
81: * Changes for cleanup.
82: *
83: * Revision 2.3 89/02/07 00:51:57 mwyoung
84: * Relocated from sys/error.h
85: *
86: * Revision 2.2 88/10/18 00:37:31 mwyoung
87: * Added {system,sub and code}_emask
88: * [88/10/17 17:06:58 mrt]
89: *
90: * Added {system,sub and code}_emask
91: *
92: * 12-May-88 Mary Thompson (mrt) at Carnegie Mellon
93: * Changed mach_error_t from unsigned int to kern_return_t
94: * which is a 32 bit integer regardless of machine type.
95: * insigned int was incompatible with old usages of mach_error.
96: *
97: * 10-May-88 Douglas Orr (dorr) at Carnegie-Mellon University
98: * Missing endif replaced
99: *
100: * 5-May-88 Mary Thompson (mrt) at Carnegie Mellon
101: * Changed typedef of mach_error_t from long to unsigned int
102: * to keep our Camelot users happy. Also moved the nonkernel
103: * function declarations from here to mach_error.h.
104: *
105: * 10-Feb-88 Douglas Orr (dorr) at Carnegie-Mellon University
106: * Created.
107: *
108: */
109: /* CMU_ENDHIST */
110: /*
111: * Mach Operating System
112: * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
113: * All Rights Reserved.
114: *
115: * Permission to use, copy, modify and distribute this software and its
116: * documentation is hereby granted, provided that both the copyright
117: * notice and this permission notice appear in all copies of the
118: * software, derivative works or modified versions, and any portions
119: * thereof, and that both notices appear in supporting documentation.
120: *
121: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
122: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
123: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
124: *
125: * Carnegie Mellon requests users of this software to return to
126: *
127: * Software Distribution Coordinator or [email protected]
128: * School of Computer Science
129: * Carnegie Mellon University
130: * Pittsburgh PA 15213-3890
131: *
132: * any improvements or extensions that they make and grant Carnegie Mellon
133: * the rights to redistribute these changes.
134: */
135: /*
136: */
137: /*
138: * File: mach/error.h
139: * Purpose:
140: * error module definitions
141: *
142: */
143:
144: #ifndef ERROR_H_
145: #define ERROR_H_
146: #include <mach/kern_return.h>
147:
148: /*
149: * error number layout as follows:
150: *
151: * hi lo
152: * | system(6) | subsystem(12) | code(14) |
153: */
154:
155:
156: #define err_none (mach_error_t)0
157: #define ERR_SUCCESS (mach_error_t)0
158: #define ERR_ROUTINE_NIL (mach_error_fn_t)0
159:
160:
161: #define err_system(x) (((x)&0x3f)<<26)
162: #define err_sub(x) (((x)&0xfff)<<14)
163:
164: #define err_get_system(err) (((err)>>26)&0x3f)
165: #define err_get_sub(err) (((err)>>14)&0xfff)
166: #define err_get_code(err) ((err)&0x3fff)
167:
168: #define system_emask (err_system(0x3f))
169: #define sub_emask (err_sub(0xfff))
170: #define code_emask (0x3fff)
171:
172:
173: /* major error systems */
174: #define err_kern err_system(0x0) /* kernel */
175: #define err_us err_system(0x1) /* user space library */
176: #define err_server err_system(0x2) /* user space servers */
177: #define err_ipc err_system(0x3) /* old ipc errors */
178: #define err_mach_ipc err_system(0x4) /* mach-ipc errors */
179: #define err_dipc err_system(0x7) /* distributed ipc */
180: #define err_local err_system(0x3e) /* user defined errors */
181: #define err_ipc_compat err_system(0x3f) /* (compatibility) mach-ipc errors */
182:
183: #define err_max_system 0x3f
184:
185:
186: /* unix errors get lumped into one subsystem */
187: #define unix_err(errno) (err_kern|err_sub(3)|errno)
188:
189: typedef kern_return_t mach_error_t;
190: typedef mach_error_t (* mach_error_fn_t)( void );
191:
192: #endif /* ERROR_H_ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.