]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gdb/rdi-share/logging.h
Initial creation of sourceware repository
[thirdparty/binutils-gdb.git] / gdb / rdi-share / logging.h
1 /*
2 * Copyright (C) 1995 Advanced RISC Machines Limited. All rights reserved.
3 *
4 * This software may be freely used, copied, modified, and distributed
5 * provided that the above copyright notice is preserved in all copies of the
6 * software.
7 */
8
9 /* -*-C-*-
10 *
11 * $Revision$
12 * $Date$
13 *
14 *
15 * logging.h - methods for logging warnings, errors and trace info
16 */
17
18 #ifndef angel_logging_h
19 #define angel_logging_h
20
21 #include <stdarg.h>
22
23 /*
24 * __rt_warning
25 * ------------
26 * Provides a standard method of generating run-time system
27 * warnings. The actual action taken by this code can be board or
28 * target application specific, e.g. internal logging, debug message,
29 * etc.
30 */
31 extern void __rt_warning(char *format, ...);
32
33 /*---------------------------------------------------------------------------*/
34
35 /*
36 * __rt_error
37 * ----------
38 * Raise an internal Angel error. The parameters are passed directly
39 * to "__rt_warning" for display, and the code then raises a debugger
40 * event and stops the target processing.
41 */
42 extern void __rt_error(char *format, ...);
43
44 /*
45 * Some macros for debugging and warning messages
46 */
47
48 typedef enum WarnLevel {
49 WL_TRACE,
50 WL_WARN,
51 WL_ERROR
52 } WarnLevel;
53
54 void va_warn(WarnLevel level, char *format, va_list args);
55
56 #ifdef _WINGDI_
57 /* stupidity in MSVC <wingdi.h> (in <windows.h> in <winsock.h>) */
58 # undef ERROR
59 #endif
60
61 #ifndef ERROR
62 # define ERROR_FORMAT "Error \"%s\" in %s at line %d\n"
63 # define ERROR(e) __rt_error(ERROR_FORMAT, (e), __FILE__, __LINE__)
64 #endif
65
66 #ifndef ASSERT
67 # ifdef ASSERTIONS_ENABLED
68 # define ASSERT(x, y) ((x) ? (void)(0) : ERROR((y)))
69 # else
70 # define ASSERT(x, y) ((void)(0))
71 # endif
72 #endif
73
74 #ifndef WARN
75 # ifdef ASSERTIONS_ENABLED
76 # define WARN_FORMAT "Warning \"%s\" in %s at line %d\n"
77 # define WARN(w) __rt_warning(WARN_FORMAT, (w), __FILE__, __LINE__)
78 # else
79 # define WARN(w) ((void)(0))
80 # endif
81 #endif
82
83
84 #ifdef NO_INFO_MESSAGES
85 # define __rt_info (void)
86 # ifndef INFO
87 # define INFO(w)
88 # endif
89 #else
90 # define __rt_info __rt_warning
91 # ifndef INFO
92 # ifdef DEBUG
93 # define INFO(w) __rt_warning("%s\n", (w))
94 # else
95 # define INFO(w) ((void)(0))
96 # endif
97 # endif
98 #endif
99
100
101 #if defined(DEBUG) && !defined(NO_IDLE_CHITCHAT)
102 # ifndef DO_TRACE
103 # define DO_TRACE (1)
104 # endif
105 #endif
106
107 #ifdef DO_TRACE
108 extern void __rt_trace(char *format, ...);
109 #endif
110
111 #ifndef TRACE
112 # ifdef DO_TRACE
113 # define TRACE(w) __rt_trace("%s ", (w))
114 # else
115 # define TRACE(w) ((void)(0))
116 # endif
117 #endif
118
119 #endif /* ndef angel_logging_h */
120
121 /* EOF logging.h */