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