Merge tag 'drm-misc-next-2021-07-22' of git://anongit.freedesktop.org/drm/drm-misc...
[linux-2.6-microblaze.git] / tools / perf / util / cap.c
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Capability utilities
4  */
5
6 #ifdef HAVE_LIBCAP_SUPPORT
7
8 #include "cap.h"
9 #include <stdbool.h>
10 #include <sys/capability.h>
11
12 bool perf_cap__capable(cap_value_t cap)
13 {
14         cap_flag_value_t val;
15         cap_t caps = cap_get_proc();
16
17         if (!caps)
18                 return false;
19
20         if (cap_get_flag(caps, cap, CAP_EFFECTIVE, &val) != 0)
21                 val = CAP_CLEAR;
22
23         if (cap_free(caps) != 0)
24                 return false;
25
26         return val == CAP_SET;
27 }
28
29 #endif  /* HAVE_LIBCAP_SUPPORT */