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  
perf_cap__capable(cap_value_t cap)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 */
30