X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=include%2Fbabeltrace%2Fbabeltrace-internal.h;h=1cf3af96331caf0e782937cb88978f4ee089e411;hp=0b7b1eee860d04831cfd9e77e8b334f435e9813b;hb=312c056ae3d374b253fa0cfe5ed576c0b0e5e569;hpb=90bf3cefc3f8799b3a822bf9123f21e81220574e diff --git a/include/babeltrace/babeltrace-internal.h b/include/babeltrace/babeltrace-internal.h index 0b7b1eee..1cf3af96 100644 --- a/include/babeltrace/babeltrace-internal.h +++ b/include/babeltrace/babeltrace-internal.h @@ -1,34 +1,90 @@ #ifndef _BABELTRACE_INTERNAL_H #define _BABELTRACE_INTERNAL_H +/* + * babeltrace/babeltrace-internal.h + * + * Copyright 2012 - Mathieu Desnoyers + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ #include #include +#include +#include +#include +#include +#include -extern int babeltrace_verbose, babeltrace_debug; +#define PERROR_BUFLEN 200 -#define printf_verbose(fmt, args...) \ - do { \ - if (babeltrace_verbose) \ - printf("[verbose] " fmt, ## args); \ - } while (0) +#ifndef likely +# ifdef __GNUC__ +# define likely(x) __builtin_expect(!!(x), 1) +# else +# define likely(x) (!!(x)) +# endif +#endif + +#ifndef unlikely +# ifdef __GNUC__ +# define unlikely(x) __builtin_expect(!!(x), 0) +# else +# define unlikely(x) (!!(x)) +# endif +#endif -#define printf_debug(fmt, args...) \ - do { \ - if (babeltrace_debug) \ - printf("[debug] " fmt, ## args); \ - } while (0) +#ifndef min +#define min(a, b) (((a) < (b)) ? (a) : (b)) +#endif -#define likely(x) __builtin_expect(!!(x), 1) -#define unlikely(x) __builtin_expect(!!(x), 0) +#ifndef max +#define max(a, b) (((a) > (b)) ? (a) : (b)) +#endif -struct trace_descriptor; -struct trace_collection { - GPtrArray *array; -}; +#ifndef max_t +#define max_t(type, a, b) \ + ((type) (a) > (type) (b) ? (type) (a) : (type) (b)) +#endif + +/* + * Memory allocation zeroed + */ +#define zmalloc(x) calloc(1, x) + +/* + * BT_HIDDEN: set the hidden attribute for internal functions + * On Windows, symbols are local unless explicitly exported, + * see https://gcc.gnu.org/wiki/Visibility + */ +#if defined(_WIN32) || defined(__CYGWIN__) +#define BT_HIDDEN +#else +#define BT_HIDDEN __attribute__((visibility("hidden"))) +#endif + +#ifndef __STRINGIFY +#define __STRINGIFY(x) #x +#endif -int convert_trace(struct trace_descriptor *td_write, - struct trace_collection *trace_collection_read); +#define TOSTRING(x) __STRINGIFY(x) -extern int opt_field_names; +#define BT_UNUSED __attribute__((unused)) #endif