ust-fd: Add close_range declaration
[lttng-ust.git] / include / lttng / tracepoint-event.h
index 65120d4b80d04523950e2e19b24f681ee47d7b26..20d8280ae1c00c6c2b6019c44d02e3c8bc9d2c27 100644 (file)
-/*
- * Copyright (C) 2009     Steven Rostedt <srostedt@redhat.com>
- * Copyright (C) 2011     Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
- *
- *
- * Trace files that want to automate creationg of all tracepoints defined
- * in their file should include this file. The following are macros that the
- * trace file may define:
- *
- * TRACEPOINT_SYSTEM defines the system the tracepoint is for:
- *     < [com_company_]project_[component_] >
- *
- * TRACEPOINT_INCLUDE_FILE if the file name is something other than
- *     TRACEPOINT_SYSTEM.h. This macro may be defined to tell
- *     define_trace.h what file to include.  Note, leave off the ".h".
- *
- * TRACEPOINT_INCLUDE_PATH if the path is something other than within
- *     the system's include/tracepoint/ path, then this macro can define
- *     the path to use. This path is relative to tracepoint-event.h, or
- *     to the include search path. Trick: Use a
- *       #define TRACEPOINT_INCLUDE_PATH .
- *     combined with -Ipath_to_header as compiler argument to allow
- *     searching for a header within your project build tree.
- */
+// SPDX-FileCopyrightText: 2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+//
+// SPDX-License-Identifier: MIT
 
-#ifdef __cplusplus
-extern "C" {
-#endif
+#include <lttng/ust-api-compat.h>
 
-#ifdef TRACEPOINT_CREATE_PROBES
-
-/* Prevent recursion */
-#undef TRACEPOINT_CREATE_PROBES
 
-#ifndef __tp_stringify
-#define __tp_stringify_1(x...) #x
-#define __tp_stringify(x...)   __tp_stringify_1(x)
-#endif
+#if LTTNG_UST_COMPAT_API(0)
+# if defined(TRACEPOINT_CREATE_PROBES) && !defined(LTTNG_UST_TRACEPOINT_CREATE_PROBES)
+#  define LTTNG_UST_TRACEPOINT_CREATE_PROBES
+# endif
+#endif /* #if LTTNG_UST_COMPAT_API(0) */
 
-#undef TRACEPOINT_EVENT
-#define TRACEPOINT_EVENT(name, proto, args, fields)            \
-       _DEFINE_TRACEPOINT(name)
+#ifdef LTTNG_UST_TRACEPOINT_CREATE_PROBES
 
-#undef TRACEPOINT_EVENT_INSTANCE
-#define TRACEPOINT_EVENT_INSTANCE(template, name, proto, args) \
-       _DEFINE_TRACEPOINT(name)
+#define lttng_ust__tp_stringify1(x)    #x
+#define lttng_ust__tp_stringify(x)     lttng_ust__tp_stringify1(x)
 
-#undef TRACEPOINT_EVENT_NOARGS
-#define TRACEPOINT_EVENT_NOARGS(name, fields)                  \
-       _DEFINE_TRACEPOINT(name)
+#undef LTTNG_UST_TRACEPOINT_EVENT_INSTANCE
+#define LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(_template_provider, _template_name, \
+       _provider, _name, _args)
 
-#undef TRACEPOINT_EVENT_INSTANCE_NOARGS
-#define TRACEPOINT_EVENT_INSTANCE_NOARGS(template, name)       \
-       _DEFINE_TRACEPOINT(name)
+#undef LTTNG_UST_TRACEPOINT_EVENT
+#define LTTNG_UST_TRACEPOINT_EVENT(_provider, _name, _args, _fields)           \
+       LTTNG_UST_TRACEPOINT_EVENT_CLASS(_provider, _name, LTTNG_UST__TP_PARAMS(_args), \
+                       LTTNG_UST__TP_PARAMS(_fields))                          \
+       LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(_provider, _name, _provider, _name, \
+                       LTTNG_UST__TP_PARAMS(_args))
 
-#undef TRACEPOINT_INCLUDE
-#undef __TRACEPOINT_INCLUDE
 
-#ifndef TRACEPOINT_INCLUDE_FILE
-# define TRACEPOINT_INCLUDE_FILE TRACEPOINT_SYSTEM
-# define UNDEF_TRACEPOINT_INCLUDE_FILE
+#undef LTTNG_UST_TRACEPOINT_CREATE_PROBES
+#if LTTNG_UST_COMPAT_API(0)
+#undef TRACEPOINT_CREATE_PROBES
 #endif
 
-#ifndef TRACEPOINT_INCLUDE_PATH
-# define __TRACEPOINT_INCLUDE(system) <tracepoint/system.h>
-# define UNDEF_TRACEPOINT_INCLUDE_PATH
-#else
-# define __TRACEPOINT_INCLUDE(system)                          \
-       __tp_stringify(TRACEPOINT_INCLUDE_PATH/system.h)
+#define LTTNG_UST_TRACEPOINT_HEADER_MULTI_READ
+#if LTTNG_UST_COMPAT_API(0)
+#define TRACEPOINT_HEADER_MULTI_READ
 #endif
 
-# define TRACEPOINT_INCLUDE(system) __TRACEPOINT_INCLUDE(system)
+#if LTTNG_UST_COMPAT_API(0)
+# if defined(TRACEPOINT_INCLUDE) && !defined(LTTNG_UST_TRACEPOINT_INCLUDE)
+#  define LTTNG_UST_TRACEPOINT_INCLUDE TRACEPOINT_INCLUDE
+# endif
+#endif /* #if LTTNG_UST_COMPAT_API(0) */
 
-/* Let the trace headers be reread */
-#define TRACEPOINT_HEADER_MULTI_READ
+#if LTTNG_UST_COMPAT_API(0)
+# if defined(TRACEPOINT_PROVIDER) && !defined(LTTNG_UST_TRACEPOINT_PROVIDER)
+#  define LTTNG_UST_TRACEPOINT_PROVIDER TRACEPOINT_PROVIDER
+# endif
+#endif /* #if LTTNG_UST_COMPAT_API(0) */
+
+#if LTTNG_UST_COMPAT_API(0)
+# if defined(TP_SESSION_CHECK) && !defined(LTTNG_UST_TP_SESSION_CHECK)
+#  define LTTNG_UST_TP_SESSION_CHECK
+# endif
+#endif /* #if LTTNG_UST_COMPAT_API(0) */
 
-#include TRACEPOINT_INCLUDE(TRACEPOINT_INCLUDE_FILE)
+#if LTTNG_UST_COMPAT_API(0)
+# if defined(TP_IP_PARAM) && !defined(LTTNG_UST_TP_IP_PARAM)
+#  define LTTNG_UST_TP_IP_PARAM
+# endif
+#endif /* #if LTTNG_UST_COMPAT_API(0) */
+
+#include LTTNG_UST_TRACEPOINT_INCLUDE
 
 #include <lttng/ust-tracepoint-event.h>
 
-#undef TRACEPOINT_EVENT
-#undef TRACEPOINT_EVENT_CLASS
-#undef TRACEPOINT_EVENT_INSTANCE
-#undef TRACEPOINT_EVENT_NOARGS
-#undef TRACEPOINT_EVENT_CLASS_NOARGS
-#undef TRACEPOINT_EVENT_INSTANCE_NOARGS
+#undef LTTNG_UST_TRACEPOINT_HEADER_MULTI_READ
+#if LTTNG_UST_COMPAT_API(0)
 #undef TRACEPOINT_HEADER_MULTI_READ
-
-/* Only undef what we defined in this file */
-#ifdef UNDEF_TRACEPOINT_INCLUDE_FILE
-# undef TRACEPOINT_INCLUDE_FILE
-# undef UNDEF_TRACEPOINT_INCLUDE_FILE
 #endif
 
-#ifdef UNDEF_TRACEPOINT_INCLUDE_PATH
-# undef TRACEPOINT_INCLUDE_PATH
-# undef UNDEF_TRACEPOINT_INCLUDE_PATH
+#undef LTTNG_UST_TRACEPOINT_INCLUDE
+#if LTTNG_UST_COMPAT_API(0)
+# undef TRACEPOINT_INCLUDE
 #endif
 
-/* We may be processing more files */
-#define TRACEPOINT_CREATE_PROBES
+#define LTTNG_UST_TRACEPOINT_CREATE_PROBES
 
-#endif /* TRACEPOINT_CREATE_PROBES */
+/*
+ * Put back definitions to the state they were when defined by
+ * tracepoint.h.
+ */
+#undef LTTNG_UST_TP_ARGS
+#define LTTNG_UST_TP_ARGS(...)       __VA_ARGS__
 
-#ifdef __cplusplus 
-}
-#endif
+#undef LTTNG_UST_TRACEPOINT_EVENT
+#define LTTNG_UST_TRACEPOINT_EVENT(provider, name, args, fields)                       \
+       LTTNG_UST__DECLARE_TRACEPOINT(provider, name, LTTNG_UST__TP_PARAMS(args))               \
+       LTTNG_UST__DEFINE_TRACEPOINT(provider, name, LTTNG_UST__TP_PARAMS(args))
+
+#undef LTTNG_UST_TRACEPOINT_EVENT_CLASS
+#define LTTNG_UST_TRACEPOINT_EVENT_CLASS(provider, name, args, fields)
+
+#undef LTTNG_UST_TRACEPOINT_EVENT_INSTANCE
+#define LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(template_provider, template_name, provider, name, args) \
+       LTTNG_UST__DECLARE_TRACEPOINT(provider, name, LTTNG_UST__TP_PARAMS(args))               \
+       LTTNG_UST__DEFINE_TRACEPOINT(provider, name, LTTNG_UST__TP_PARAMS(args))
+
+#undef LTTNG_UST_TRACEPOINT_LOGLEVEL
+#define LTTNG_UST_TRACEPOINT_LOGLEVEL(provider, name, loglevel)
+
+#undef LTTNG_UST_TRACEPOINT_MODEL_EMF_URI
+#define LTTNG_UST_TRACEPOINT_MODEL_EMF_URI(provider, name, uri)
+
+#endif /* LTTNG_UST_TRACEPOINT_CREATE_PROBES */
This page took 0.024481 seconds and 4 git commands to generate.