Annotation of OSKit-Mach/include/mach/error.h, revision 1.1.1.1

1.1       root        1: /* 
                      2:  * Mach Operating System
                      3:  * Copyright (c) 1991,1990,1989,1988,1987 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 "AS IS"
                     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  [email protected]
                     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 Mellon
                     24:  * the rights to redistribute these changes.
                     25:  */
                     26: /*
                     27:  * File:       mach/error.h
                     28:  * Purpose:
                     29:  *     error module definitions
                     30:  *
                     31:  */
                     32: 
                     33: #ifndef        _MACH_ERROR_H_
                     34: #define _MACH_ERROR_H_
                     35: #include <mach/kern_return.h>
                     36: 
                     37: /*
                     38:  *     error number layout as follows:
                     39:  *
                     40:  *     hi                                     lo
                     41:  *     | system(6) | subsystem(12) | code(14) |
                     42:  */
                     43: 
                     44: 
                     45: #define        err_none                (mach_error_t)0
                     46: #define ERR_SUCCESS            (mach_error_t)0
                     47: #define        ERR_ROUTINE_NIL         (mach_error_fn_t)0
                     48: 
                     49: 
                     50: #define        err_system(x)           (((x)&0x3f)<<26)
                     51: #define err_sub(x)             (((x)&0xfff)<<14)
                     52: 
                     53: #define err_get_system(err)    (((err)>>26)&0x3f)
                     54: #define err_get_sub(err)       (((err)>>14)&0xfff)
                     55: #define err_get_code(err)      ((err)&0x3fff)
                     56: 
                     57: #define system_emask           (err_system(0x3f))
                     58: #define sub_emask              (err_sub(0xfff))
                     59: #define code_emask             (0x3fff)
                     60: 
                     61: 
                     62: /*     Mach error systems      */
                     63: #define        err_kern                err_system(0x0)         /* kernel */
                     64: #define        err_us                  err_system(0x1)         /* user space library */
                     65: #define        err_server              err_system(0x2)         /* user space servers */
                     66: #define        err_ipc                 err_system(0x3)         /* old ipc errors */
                     67: #define err_mach_ipc           err_system(0x4)         /* mach-ipc errors */
                     68: #define err_bootstrap          err_system(0x5)         /* bootstrap errors */
                     69: #define err_hurd               err_system(0x10)        /* GNU Hurd server errors */
                     70: #define err_local              err_system(0x3e)        /* user defined errors */
                     71: #define        err_ipc_compat          err_system(0x3f)        /* (compatibility) mach-ipc errors */
                     72: 
                     73: #define        err_max_system          0x3f
                     74: 
                     75: 
                     76: /*     special old "subsystems" that don't really follow the above rules */
                     77: #define err_mig                        -300
                     78: #define err_exec               6000
                     79: 
                     80: /*     unix errors get lumped into one subsystem  */
                     81: #define err_unix               (err_kern|err_sub(3))
                     82: #define        unix_err(errno)         (err_kern|err_sub(3)|errno)
                     83: 
                     84: /*     MS-DOS extended error codes */
                     85: #define err_dos                        (err_kern|err_sub(0xd05))
                     86: 
                     87: /*     Flux OS error systems */
                     88: #define err_fluke              err_system(0x20)        /* Fluke API */
                     89: 
                     90: #ifndef ASSEMBLER
                     91: typedef        kern_return_t   mach_error_t;
                     92: typedef mach_error_t   (* mach_error_fn_t)();
                     93: #endif /* ASSEMBLER */
                     94: 
                     95: #endif /* _MACH_ERROR_H_ */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.