18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci#ifndef __PERF_CAP_H
38c2ecf20Sopenharmony_ci#define __PERF_CAP_H
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci#include <stdbool.h>
68c2ecf20Sopenharmony_ci#include <linux/capability.h>
78c2ecf20Sopenharmony_ci#include <linux/compiler.h>
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci#ifdef HAVE_LIBCAP_SUPPORT
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci#include <sys/capability.h>
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_cibool perf_cap__capable(cap_value_t cap);
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci#else
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci#include <unistd.h>
188c2ecf20Sopenharmony_ci#include <sys/types.h>
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_cistatic inline bool perf_cap__capable(int cap __maybe_unused)
218c2ecf20Sopenharmony_ci{
228c2ecf20Sopenharmony_ci	return geteuid() == 0;
238c2ecf20Sopenharmony_ci}
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci#endif /* HAVE_LIBCAP_SUPPORT */
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci/* For older systems */
288c2ecf20Sopenharmony_ci#ifndef CAP_SYSLOG
298c2ecf20Sopenharmony_ci#define CAP_SYSLOG	34
308c2ecf20Sopenharmony_ci#endif
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci#ifndef CAP_PERFMON
338c2ecf20Sopenharmony_ci#define CAP_PERFMON	38
348c2ecf20Sopenharmony_ci#endif
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ci#endif /* __PERF_CAP_H */
37