Implement macros for error printout
[babeltrace.git] / include / babeltrace / babeltrace-internal.h
CommitLineData
70bd0a12
JD
1#ifndef _BABELTRACE_INTERNAL_H
2#define _BABELTRACE_INTERNAL_H
3
eb31c5e6
MD
4/*
5 * babeltrace/babeltrace-internal.h
6 *
7 * Copyright 2012 - Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 *
9 * Permission is hereby granted, free of charge, to any person obtaining a copy
10 * of this software and associated documentation files (the "Software"), to deal
11 * in the Software without restriction, including without limitation the rights
12 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13 * copies of the Software, and to permit persons to whom the Software is
14 * furnished to do so, subject to the following conditions:
15 *
16 * The above copyright notice and this permission notice shall be included in
17 * all copies or substantial portions of the Software.
c462e188
MD
18 *
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25 * SOFTWARE.
eb31c5e6 26 */
70bd0a12
JD
27#include <stdio.h>
28#include <glib.h>
11ac6674 29#include <stdint.h>
70bd0a12
JD
30
31extern int babeltrace_verbose, babeltrace_debug;
32
3394d22e
MD
33#define printf_verbose(fmt, args...) \
34 do { \
35 if (babeltrace_verbose) \
36 fprintf(stdout, "[verbose] " fmt, ## args); \
70bd0a12
JD
37 } while (0)
38
3394d22e
MD
39#define printf_debug(fmt, args...) \
40 do { \
41 if (babeltrace_debug) \
42 fprintf(stdout, "[debug] " fmt, ## args); \
70bd0a12
JD
43 } while (0)
44
b8c621ad
EB
45#define _bt_printf(fp, kindstr, fmt, args...) \
46 fprintf(fp, "[%s]%s%s%s: " fmt "\n", \
47 kindstr, \
48 (babeltrace_debug ? " \"" : ""), \
49 (babeltrace_debug ? __func__ : ""), \
50 (babeltrace_debug ? "\"" : ""), \
51 ## args)
52
53#define _bt_printfl(fp, kindstr, lineno, fmt, args...) \
54 fprintf(fp, "[%s]%s%s%s at line %u: " fmt "\n", \
55 kindstr, \
56 (babeltrace_debug ? " \"" : ""), \
57 (babeltrace_debug ? __func__ : ""), \
58 (babeltrace_debug ? "\"" : ""), \
59 lineno, \
60 ## args)
61
62/* printf without lineno information */
63#define printf_fatal(fmt, args...) \
64 _bt_printf(stderr, "fatal", fmt, ## args)
65#define printf_error(fmt, args...) \
66 _bt_printf(stderr, "error", fmt, ## args)
67#define printf_warning(fmt, args...) \
68 _bt_printf(stderr, "warning", fmt, ## args)
69
70/* printf with lineno information */
71#define printfl_fatal(lineno, fmt, args...) \
72 _bt_printfl(stderr, "fatal", lineno, fmt, ## args)
73#define printfl_error(lineno, fmt, args...) \
74 _bt_printfl(stderr, "error", lineno, fmt, ## args)
75#define printfl_warning(lineno, fmt, args...) \
76 _bt_printfl(stderr, "warning", lineno, fmt, ## args)
77
78/* printf with node lineno information */
79#define printfn_fatal(node, fmt, args...) \
80 _bt_printfl(stderr, "fatal", (node)->lineno, fmt, ## args)
81#define printfn_error(node, fmt, args...) \
82 _bt_printfl(stderr, "error", (node)->lineno, fmt, ## args)
83#define printfn_warning(node, fmt, args...) \
84 _bt_printfl(stderr, "warning", (node)->lineno, fmt, ## args)
85
86/* fprintf with Node lineno information */
87#define fprintfn_fatal(fp, node, fmt, args...) \
88 _bt_printfl(fp, "fatal", (node)->lineno, fmt, ## args)
89#define fprintfn_error(fp, node, fmt, args...) \
90 _bt_printfl(fp, "error", (node)->lineno, fmt, ## args)
91#define fprintfn_warning(fp, node, fmt, args...) \
92 _bt_printfl(fp, "warning", (node)->lineno, fmt, ## args)
93
90bf3cef
MD
94#define likely(x) __builtin_expect(!!(x), 1)
95#define unlikely(x) __builtin_expect(!!(x), 0)
96
5d6c80a5
JD
97/*
98 * BT_HIDDEN: set the hidden attribute for internal functions
99 */
100#define BT_HIDDEN __attribute__((visibility("hidden")))
101
1b8455b7 102struct bt_trace_descriptor;
70bd0a12 103struct trace_collection {
1b8455b7 104 GPtrArray *array; /* struct bt_trace_descriptor */
a44bc4c9 105 GHashTable *clocks; /* struct ctf_clock */
0716bb06
MD
106
107 uint64_t single_clock_offset_avg;
108 uint64_t offset_first;
109 int64_t delta_offset_first_sum;
110 int offset_nr;
50052405 111 int clock_use_offset_avg;
70bd0a12
JD
112};
113
cba1661c
MD
114extern int opt_all_field_names,
115 opt_scope_field_names,
116 opt_header_field_names,
117 opt_context_field_names,
82662ad4 118 opt_payload_field_names,
359d7456
MD
119 opt_all_fields,
120 opt_trace_field,
121 opt_trace_domain_field,
122 opt_trace_procname_field,
123 opt_trace_vpid_field,
32cfb8ad 124 opt_trace_hostname_field,
c3815874 125 opt_trace_default_fields,
359d7456 126 opt_loglevel_field,
f6714e20 127 opt_emf_field,
f133896d 128 opt_callsite_field,
11ac6674 129 opt_delta_field,
03798a93 130 opt_clock_cycles,
11ac6674
MD
131 opt_clock_seconds,
132 opt_clock_date,
82ace6d6
MD
133 opt_clock_gmt,
134 opt_clock_force_correlate;
11ac6674
MD
135
136extern uint64_t opt_clock_offset;
70bd0a12
JD
137
138#endif
This page took 0.031174 seconds and 4 git commands to generate.