chiark / gitweb /
Change licensing conditions to LGPL.
[mLib] / trace.h
CommitLineData
0875b58f 1/* -*-c-*-
2 *
c846879c 3 * $Id: trace.h,v 1.2 1999/05/05 18:50:31 mdw Exp $
0875b58f 4 *
5 * Tracing functions for debugging
6 *
7 * (c) 1998 Straylight/Edgeware
8 */
9
c846879c 10/*----- Licensing notice --------------------------------------------------*
0875b58f 11 *
12 * This file is part of the mLib utilities library.
13 *
14 * mLib is free software; you can redistribute it and/or modify
c846879c 15 * it under the terms of the GNU Library General Public License as
16 * published by the Free Software Foundation; either version 2 of the
17 * License, or (at your option) any later version.
18 *
0875b58f 19 * mLib is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
c846879c 22 * GNU Library General Public License for more details.
23 *
24 * You should have received a copy of the GNU Library General Public
25 * License along with mLib; if not, write to the Free Software
26 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
0875b58f 27 */
28
29/*----- Revision history --------------------------------------------------*
30 *
31 * $Log: trace.h,v $
c846879c 32 * Revision 1.2 1999/05/05 18:50:31 mdw
33 * Change licensing conditions to LGPL.
34 *
35 * Revision 1.1.1.1 1998/06/17 23:44:42 mdw
36 * Initial version of mLib
0875b58f 37 *
38 */
39
40#ifndef TRACE_H
41#define TRACE_H
42
43#ifdef __cplusplus
44 extern "C" {
45#endif
46
47#include <stdio.h>
48
49/*----- Functions provided ------------------------------------------------*/
50
51/* --- @trace@ --- *
52 *
53 * Arguments: @unsigned int l@ = trace level for output
54 * @const char *f@ = a @printf@-style format string
55 * @...@ = other arguments
56 *
57 * Returns: ---
58 *
59 * Use: Reports a message to the trace output.
60 */
61
62extern void trace(unsigned int /*l*/, const char */*f*/, ...);
63
64/* --- @trace_block@ --- *
65 *
66 * Arguments: @unsigned int l@ = trace level for output
67 * @const char *s@ = some header string to write
68 * @const void *b@ = pointer to a block of memory to dump
69 * @size_t sz@ = size of the block of memory
70 *
71 * Returns: ---
72 *
73 * Use: Dumps the contents of a block to the trace output.
74 */
75
76extern void trace_block(unsigned int /*l*/, const char */*s*/,
77 const void */*b*/, size_t /*sz*/);
78
79/* --- @trace_on@ --- *
80 *
81 * Arguments: @FILE *fp@ = a file to trace on
82 * @unsigned int l@ = trace level to set
83 *
84 * Returns: ---
85 *
86 * Use: Enables tracing to a file.
87 */
88
89extern void trace_on(FILE */*fp*/, unsigned int /*l*/);
90
91/* --- @trace_setLevel@ --- *
92 *
93 * Arguments: @unsigned int l@ = trace level to set
94 *
95 * Returns: ---
96 *
97 * Use: Sets the tracing level.
98 */
99
100extern void trace_setLevel(unsigned int /*l*/);
101
102/* --- @tracing@ --- *
103 *
104 * Arguments: ---
105 *
106 * Returns: Zero if not tracing, tracing level if tracing.
107 *
108 * Use: Informs the caller whether tracing is enabled.
109 */
110
111extern unsigned int tracing(void);
112
113/*----- Tracing macros ----------------------------------------------------*/
114
115#ifndef NTRACE
116# define T(x) x
117# define IF_TRACING(l, x) if ((l) & tracing()) x
118#else
119# define T(x)
120# define IF_TRACING(l, x)
121#endif
122
123/*----- That's all, folks -------------------------------------------------*/
124
125#ifdef __cplusplus
126 }
127#endif
128
129#endif