Commit | Line | Data |
---|---|---|
9f36eaed MJ |
1 | /* SPDX-License-Identifier: (GPL-2.0 or LGPL-2.1) |
2 | * | |
886d51a3 | 3 | * wrapper/perf.h |
90f5546c | 4 | * |
886d51a3 | 5 | * Copyright (C) 2010-2012 Mathieu Desnoyers <mathieu.desnoyers@efficios.com> |
90f5546c MD |
6 | */ |
7 | ||
9f36eaed MJ |
8 | #ifndef _LTTNG_WRAPPER_PERF_H |
9 | #define _LTTNG_WRAPPER_PERF_H | |
10 | ||
90f5546c MD |
11 | #include <linux/perf_event.h> |
12 | ||
bed5dbd4 DE |
13 | #ifdef CONFIG_PERF_EVENTS |
14 | ||
b78104db | 15 | #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0)) |
90f5546c MD |
16 | static inline struct perf_event * |
17 | wrapper_perf_event_create_kernel_counter(struct perf_event_attr *attr, | |
18 | int cpu, | |
19 | struct task_struct *task, | |
20 | perf_overflow_handler_t callback) | |
21 | { | |
22 | return perf_event_create_kernel_counter(attr, cpu, task, callback, NULL); | |
23 | } | |
b78104db | 24 | #else /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0)) */ |
3a523f5b | 25 | |
b78104db | 26 | #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(2,6,37)) |
90f5546c MD |
27 | static inline struct perf_event * |
28 | wrapper_perf_event_create_kernel_counter(struct perf_event_attr *attr, | |
29 | int cpu, | |
30 | struct task_struct *task, | |
31 | perf_overflow_handler_t callback) | |
32 | { | |
33 | return perf_event_create_kernel_counter(attr, cpu, task, callback); | |
34 | } | |
b78104db | 35 | #else /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(2,6,37)) */ |
3a523f5b MD |
36 | static inline struct perf_event * |
37 | wrapper_perf_event_create_kernel_counter(struct perf_event_attr *attr, | |
38 | int cpu, | |
39 | struct task_struct *task, | |
40 | perf_overflow_handler_t callback) | |
41 | { | |
42 | pid_t pid; | |
43 | ||
44 | if (!task) | |
45 | pid = -1; | |
46 | else | |
47 | pid = task->pid; | |
48 | ||
49 | return perf_event_create_kernel_counter(attr, cpu, pid, callback); | |
50 | } | |
51 | ||
b78104db | 52 | #endif /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(2,6,37)) */ |
745dd71e | 53 | |
b78104db | 54 | #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(2,6,36)) |
3a523f5b | 55 | #define local64_read(l) atomic64_read(l) |
745dd71e | 56 | #endif |
3a523f5b | 57 | |
b78104db | 58 | #endif /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0)) */ |
bed5dbd4 DE |
59 | |
60 | #endif /* CONFIG_PERF_EVENTS */ | |
90f5546c | 61 | |
a90917c3 | 62 | #endif /* _LTTNG_WRAPPER_PERF_H */ |