fdwalk should return 0 on an empty directory
[kopensolaris-gnu/glibc.git] / mach / mach / error.h
1 /*  err_hurd added by roland@gnu.ai.mit.edu for GNU Hurd.
2  *
3  * Mach Operating System
4  * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
5  * All Rights Reserved.
6  *
7  * Permission to use, copy, modify and distribute this software and its
8  * documentation is hereby granted, provided that both the copyright
9  * notice and this permission notice appear in all copies of the
10  * software, derivative works or modified versions, and any portions
11  * thereof, and that both notices appear in supporting documentation.
12  *
13  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
14  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
15  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
16  *
17  * Carnegie Mellon requests users of this software to return to
18  *
19  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
20  *  School of Computer Science
21  *  Carnegie Mellon University
22  *  Pittsburgh PA 15213-3890
23  *
24  * any improvements or extensions that they make and grant Carnegie Mellon
25  * the rights to redistribute these changes.
26  */
27 /*
28  * (pre-GNU) HISTORY
29  *
30  * Revision 2.6  93/01/14  17:41:31  danner
31  *      Standardized include symbol name.
32  *      [92/06/10            pds]
33  *
34  * Revision 2.5  92/03/31  15:18:11  rpd
35  *      Added err_bootstrap for bootstrap errors.
36  *      [92/03/09            rpd]
37  *
38  * Revision 2.4  91/05/14  16:51:24  mrt
39  *      Correcting copyright
40  *
41  * Revision 2.3  91/02/05  17:31:48  mrt
42  *      Changed to new Mach copyright
43  *      [91/02/01  17:16:50  mrt]
44  *
45  * Revision 2.2  90/06/02  14:57:47  rpd
46  *      Added err_mach_ipc for new IPC.
47  *      [90/03/26  22:28:42  rpd]
48  *
49  * Revision 2.1  89/08/03  16:02:07  rwd
50  * Created.
51  *
52  * Revision 2.4  89/02/25  18:13:18  gm0w
53  *      Changes for cleanup.
54  *
55  * Revision 2.3  89/02/07  00:51:57  mwyoung
56  * Relocated from sys/error.h
57  *
58  * Revision 2.2  88/10/18  00:37:31  mwyoung
59  *      Added {system,sub and code}_emask
60  *      [88/10/17  17:06:58  mrt]
61  *
62  *      Added {system,sub and code}_emask
63  *
64  *  12-May-88 Mary Thompson (mrt) at Carnegie Mellon
65  *      Changed mach_error_t from unsigned int to kern_return_t
66  *      which is a 32 bit integer regardless of machine type.
67  *      unsigned int was incompatible with old usages of mach_error.
68  *
69  *  10-May-88 Douglas Orr (dorr) at Carnegie-Mellon University
70  *      Missing endif replaced
71  *
72  *   5-May-88 Mary Thompson (mrt) at Carnegie Mellon
73  *      Changed typedef of mach_error_t from long to unsigned int
74  *      to keep our Camelot users happy. Also moved the nonkernel
75  *      function declarations from here to mach_error.h.
76  *
77  *  10-Feb-88 Douglas Orr (dorr) at Carnegie-Mellon University
78  *      Created.
79  *
80  */
81 /*
82  * File:        mach/error.h
83  * Purpose:
84  *      error module definitions
85  *
86  */
87
88 #ifndef _MACH_ERROR_H_
89 #define _MACH_ERROR_H_
90 #include <mach/kern_return.h>
91
92 /*
93  *      error number layout as follows:
94  *
95  *      hi                                     lo
96  *      | system(6) | subsystem(12) | code(14) |
97  */
98
99
100 #define err_none                (mach_error_t)0
101 #define ERR_SUCCESS             (mach_error_t)0
102 #define ERR_ROUTINE_NIL         (mach_error_fn_t)0
103
104
105 #define err_system(x)           (((x)&0x3f)<<26)
106 #define err_sub(x)              (((x)&0xfff)<<14)
107
108 #define err_get_system(err)     (((err)>>26)&0x3f)
109 #define err_get_sub(err)        (((err)>>14)&0xfff)
110 #define err_get_code(err)       ((err)&0x3fff)
111
112 #define system_emask            (err_system(0x3f))
113 #define sub_emask               (err_sub(0xfff))
114 #define code_emask              (0x3fff)
115
116
117 /*      major error systems     */
118 #define err_kern                err_system(0x0)         /* kernel */
119 #define err_us                  err_system(0x1)         /* user space library */
120 #define err_server              err_system(0x2)         /* user space servers */
121 #define err_ipc                 err_system(0x3)         /* old ipc errors */
122 #define err_mach_ipc            err_system(0x4)         /* mach-ipc errors */
123 #define err_bootstrap           err_system(0x5)         /* bootstrap errors */
124 #define err_hurd                err_system(0x10) /* GNU Hurd server errors */
125 #define err_local               err_system(0x3e)        /* user defined errors */
126 #define err_ipc_compat          err_system(0x3f)        /* (compatibility) mach-ipc errors */
127
128 #define err_max_system          0x3f
129
130
131 /*      unix errors get lumped into one subsystem  */
132 #define unix_err(errno)         (err_kern|err_sub(3)|errno)
133
134 typedef kern_return_t   mach_error_t;
135 /* typedef mach_error_t (* mach_error_fn_t)(); */
136
137 #endif  /* _MACH_ERROR_H_ */