Split syscall tracepoint generation in their own files
[lttng-modules.git] / include / lttng / tracepoint-event.h
CommitLineData
b7cdc182 1/* SPDX-License-Identifier: (GPL-2.0-only or LGPL-2.1-only)
9f36eaed 2 *
3b4aafcb 3 * lttng/tracepoint-event.h
3bc29f0a
MD
4 *
5 * Copyright (C) 2014 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
3bc29f0a
MD
6 */
7
9f36eaed
MJ
8#ifndef LTTNG_TRACEPOINT_EVENT_H
9#define LTTNG_TRACEPOINT_EVENT_H
10
3bc29f0a
MD
11#include <linux/tracepoint.h>
12
13/*
14 * If code defines LTTNG_INSTRUMENTATION before including the instrumentation
15 * header, generate the instrumentation static inlines. Else, it means
16 * we are a probe for the Linux kernel, and it is the probe responsibility
17 * to have already included the Linux kernel instrumentation header.
18 */
19#ifdef LTTNG_INSTRUMENTATION
20#define _LTTNG_INSTRUMENTATION(...) __VA_ARGS__
21#else
22#define _LTTNG_INSTRUMENTATION(...)
23#endif
24
e42c4f49 25#undef LTTNG_TRACEPOINT_EVENT
f127e61e 26#define LTTNG_TRACEPOINT_EVENT(name, proto, args, fields) \
3bc29f0a 27 _LTTNG_INSTRUMENTATION(DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)))
e42c4f49 28#undef LTTNG_TRACEPOINT_EVENT_CODE
265822ae 29#define LTTNG_TRACEPOINT_EVENT_CODE(name, proto, args, _locvar, _code_pre, fields, _code_post) \
3bc29f0a 30 _LTTNG_INSTRUMENTATION(DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)))
e42c4f49 31#undef LTTNG_TRACEPOINT_EVENT_CODE_MAP
265822ae 32#define LTTNG_TRACEPOINT_EVENT_CODE_MAP(name, map, proto, args, _locvar, _code_pre, fields, _code_post) \
3bc29f0a 33 _LTTNG_INSTRUMENTATION(DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)))
e42c4f49 34#undef LTTNG_TRACEPOINT_EVENT_MAP
f127e61e 35#define LTTNG_TRACEPOINT_EVENT_MAP(name, map, proto, args, fields) \
3bc29f0a 36 _LTTNG_INSTRUMENTATION(DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)))
e42c4f49 37#undef LTTNG_TRACEPOINT_EVENT_MAP_NOARGS
f127e61e 38#define LTTNG_TRACEPOINT_EVENT_MAP_NOARGS(name, map, fields) \
3bc29f0a
MD
39 _LTTNG_INSTRUMENTATION(DECLARE_TRACE_NOARGS(name))
40
e42c4f49 41#undef LTTNG_TRACEPOINT_EVENT_CLASS
f127e61e 42#define LTTNG_TRACEPOINT_EVENT_CLASS(name, proto, args, fields)
e42c4f49
FD
43#undef LTTNG_TRACEPOINT_EVENT_CLASS_NOARGS
44#define LTTNG_TRACEPOINT_EVENT_CLASS_NOARGS(name, fields)
45#undef LTTNG_TRACEPOINT_EVENT_CLASS_CODE
265822ae 46#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE(_name, _proto, _args, _locvar, _code_pre, _fields, _code_post)
e42c4f49 47#undef LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS
265822ae 48#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS(_name, _locvar, _code_pre, _fields, _code_post)
3bc29f0a 49
e42c4f49 50#undef LTTNG_TRACEPOINT_EVENT_INSTANCE
3bc29f0a
MD
51#define LTTNG_TRACEPOINT_EVENT_INSTANCE(template, name, proto, args) \
52 _LTTNG_INSTRUMENTATION(DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)))
e42c4f49 53#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_NOARGS
3bc29f0a
MD
54#define LTTNG_TRACEPOINT_EVENT_INSTANCE_NOARGS(template, name) \
55 _LTTNG_INSTRUMENTATION(DECLARE_TRACE_NOARGS(name))
e42c4f49 56#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP
3bc29f0a
MD
57#define LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(_template, _name, _map, _proto, _args) \
58 _LTTNG_INSTRUMENTATION(DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)))
e42c4f49 59#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS
3bc29f0a
MD
60#define LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS(_template, _name, _map) \
61 _LTTNG_INSTRUMENTATION(DECLARE_TRACE_NOARGS(name))
62
e42c4f49 63#undef LTTNG_TRACEPOINT_ENUM
141ddf28
MD
64#define LTTNG_TRACEPOINT_ENUM(_name, _values)
65
e42c4f49
FD
66#undef LTTNG_TRACEPOINT_TYPE
67#define LTTNG_TRACEPOINT_TYPE(_prototype, _init)
68
3bc29f0a 69#endif /* LTTNG_TRACEPOINT_EVENT_H */
This page took 0.044963 seconds and 4 git commands to generate.