1/* 2 * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. 3 * 4 * @APPLE_LICENSE_HEADER_START@ 5 * 6 * This file contains Original Code and/or Modifications of Original Code 7 * as defined in and that are subject to the Apple Public Source License 8 * Version 2.0 (the 'License'). You may not use this file except in 9 * compliance with the License. Please obtain a copy of the License at 10 * http://www.opensource.apple.com/apsl/ and read it before using this 11 * file. 12 * 13 * The Original Code and all software distributed under the License are 14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 18 * Please see the License for the specific language governing rights and 19 * limitations under the License. 20 * 21 * @APPLE_LICENSE_HEADER_END@ 22 */ 23#ifndef RLD 24#include <stdlib.h> 25#include <string.h> 26#include <stdio.h> 27#include <stdarg.h> 28#include <errno.h> 29#include <mach/mach.h> 30#include <mach/mach_error.h> 31 32#include "stuff/errors.h" 33 34__private_extern__ uint32_t errors = 0; /* number of calls to error() */ 35 36/* 37 * Just print the message in the standard format without setting an error. 38 */ 39__private_extern__ 40void 41warning( 42const char *format, 43...) 44{ 45 va_list ap; 46 47 va_start(ap, format); 48 fprintf(stderr, "%s: ", progname); 49 vfprintf(stderr, format, ap); 50 fprintf(stderr, "\n"); 51 va_end(ap); 52} 53 54/* 55 * Print the error message and return to the caller after setting the error 56 * indication. 57 */ 58__private_extern__ 59void 60error( 61const char *format, 62...) 63{ 64 va_list ap; 65 66 va_start(ap, format); 67 fprintf(stderr, "%s: ", progname); 68 vfprintf(stderr, format, ap); 69 fprintf(stderr, "\n"); 70 va_end(ap); 71 errors++; 72} 73 74/* 75 * Print the error message, the architecture if not NULL and return to the 76 * caller after setting the error indication. 77 */ 78__private_extern__ 79void 80error_with_arch( 81const char *arch_name, 82const char *format, 83...) 84{ 85 va_list ap; 86 87 va_start(ap, format); 88 fprintf(stderr, "%s: ", progname); 89 if(arch_name != NULL) 90 fprintf(stderr, "for architecture: %s ", arch_name); 91 vfprintf(stderr, format, ap); 92 fprintf(stderr, "\n"); 93 va_end(ap); 94 errors++; 95} 96 97/* 98 * Print the error message along with the system error message and return to 99 * the caller after setting the error indication. 100 */ 101__private_extern__ 102void 103system_error( 104const char *format, 105...) 106{ 107 va_list ap; 108 109 va_start(ap, format); 110 fprintf(stderr, "%s: ", progname); 111 vfprintf(stderr, format, ap); 112 fprintf(stderr, " (%s)\n", strerror(errno)); 113 va_end(ap); 114 errors++; 115} 116 117/* 118 * Print the error message along with the mach error string. 119 */ 120__private_extern__ 121void 122my_mach_error( 123kern_return_t r, 124char *format, 125...) 126{ 127 va_list ap; 128 129 va_start(ap, format); 130 fprintf(stderr, "%s: ", progname); 131 vfprintf(stderr, format, ap); 132 fprintf(stderr, " (%s)\n", mach_error_string(r)); 133 va_end(ap); 134 errors++; 135} 136#endif /* !defined(RLD) */ 137