blob: a03192052066813e89b324eb091988569f97c542 [file] [log] [blame]
Andi Kleenbd2a6342015-12-01 17:00:58 -08001#ifndef TRACEPOINT_DEFS_H
2#define TRACEPOINT_DEFS_H 1
3
4/*
5 * File can be included directly by headers who only want to access
Vlastimil Babka20f6e032016-03-15 14:55:42 -07006 * tracepoint->key to guard out of line trace calls, or the definition of
7 * trace_print_flags{_u64}. Otherwise linux/tracepoint.h should be used.
Andi Kleenbd2a6342015-12-01 17:00:58 -08008 */
9
10#include <linux/atomic.h>
11#include <linux/static_key.h>
12
Vlastimil Babka20f6e032016-03-15 14:55:42 -070013struct trace_print_flags {
14 unsigned long mask;
15 const char *name;
16};
17
18struct trace_print_flags_u64 {
19 unsigned long long mask;
20 const char *name;
21};
22
Andi Kleenbd2a6342015-12-01 17:00:58 -080023struct tracepoint_func {
24 void *func;
25 void *data;
26 int prio;
27};
28
29struct tracepoint {
30 const char *name; /* Tracepoint name */
31 struct static_key key;
Steven Rostedt (Red Hat)8cf868a2016-11-28 13:03:21 -050032 int (*regfunc)(void);
Andi Kleenbd2a6342015-12-01 17:00:58 -080033 void (*unregfunc)(void);
34 struct tracepoint_func __rcu *funcs;
35};
36
37#endif