
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 "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 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 Mellon 24: * the rights to redistribute these changes. 25: */ 26: /* 27: * (pre-GNU) HISTORY 28: * 29: * Revision 2.4 92/02/19 15:10:52 elf 30: * Moved mach_error_string and mach_error_type to mach_error_string.c. 31: * [92/02/11 rpd] 32: * 33: * Revision 2.3 92/01/23 15:22:06 rpd 34: * Changed <servers/errorlib.h> to <errorlib.h>. 35: * [92/01/16 rpd] 36: * 37: * Revision 2.2 92/01/16 00:08:03 rpd 38: * Moved from user collection to mk collection. 39: * 40: * Revision 2.3 91/08/29 15:51:50 rpd 41: * Changed IPC_MIG_MOD to MACH_IPC_MIG_MOD, to get the new error strings. 42: * [91/08/22 rpd] 43: * 44: * Revision 2.2 91/03/27 16:06:29 mrt 45: * Changed include of "errorlib.h" to <servers/errorlib.h> 46: * Added new copyright 47: * [91/03/20 mrt] 48: * 49: */ 50: /* 51: * File: mach_error.c 52: * Author: Douglas Orr, Carnegie Mellon University 53: * Date: Mar 1988 54: * 55: * interprets structured mach error codes and prints 56: * or returns a descriptive string. 57: */ 58: 59: #include <stdio.h> 60: #include <mach_error.h> 61: #include <mach/boolean.h> 62: 63: extern char * mach_error_string_int(mach_error_t, boolean_t *); 64: 65: void 66: mach_error( str, err ) 67: char *str; 68: mach_error_t err; 69: { 70: char * err_str; 71: char buf[1024]; 72: boolean_t diag; 73: 74: err_str=mach_error_string_int(err, &diag); 75: 76: if ( diag ) { 77: sprintf( buf, "%s %s (%x)", mach_error_type(err), err_str, err ); 78: err_str = buf; 79: } 80: 81: fprintf(stderr, "%s %s\n", str, err_str); 82: }