1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef __PERF_CAP_H 3*4882a593Smuzhiyun #define __PERF_CAP_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <stdbool.h> 6*4882a593Smuzhiyun #include <linux/capability.h> 7*4882a593Smuzhiyun #include <linux/compiler.h> 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #ifdef HAVE_LIBCAP_SUPPORT 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #include <sys/capability.h> 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun bool perf_cap__capable(cap_value_t cap); 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun #else 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun #include <unistd.h> 18*4882a593Smuzhiyun #include <sys/types.h> 19*4882a593Smuzhiyun perf_cap__capable(int cap __maybe_unused)20*4882a593Smuzhiyunstatic inline bool perf_cap__capable(int cap __maybe_unused) 21*4882a593Smuzhiyun { 22*4882a593Smuzhiyun return geteuid() == 0; 23*4882a593Smuzhiyun } 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun #endif /* HAVE_LIBCAP_SUPPORT */ 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun /* For older systems */ 28*4882a593Smuzhiyun #ifndef CAP_SYSLOG 29*4882a593Smuzhiyun #define CAP_SYSLOG 34 30*4882a593Smuzhiyun #endif 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun #ifndef CAP_PERFMON 33*4882a593Smuzhiyun #define CAP_PERFMON 38 34*4882a593Smuzhiyun #endif 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun #endif /* __PERF_CAP_H */ 37