|  | /* SPDX-License-Identifier: GPL-2.0 */ | 
|  | #ifndef PERF_UTIL_CLANG_C_H | 
|  | #define PERF_UTIL_CLANG_C_H | 
|  |  | 
|  | #include <stddef.h>	/* for size_t */ | 
|  | #include <util-cxx.h>	/* for __maybe_unused */ | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | #ifdef HAVE_LIBCLANGLLVM_SUPPORT | 
|  | extern void perf_clang__init(void); | 
|  | extern void perf_clang__cleanup(void); | 
|  |  | 
|  | extern int test__clang_to_IR(void); | 
|  | extern int test__clang_to_obj(void); | 
|  |  | 
|  | extern int perf_clang__compile_bpf(const char *filename, | 
|  | void **p_obj_buf, | 
|  | size_t *p_obj_buf_sz); | 
|  | #else | 
|  |  | 
|  | #include <errno.h> | 
|  |  | 
|  | static inline void perf_clang__init(void) { } | 
|  | static inline void perf_clang__cleanup(void) { } | 
|  |  | 
|  | static inline int test__clang_to_IR(void) { return -1; } | 
|  | static inline int test__clang_to_obj(void) { return -1;} | 
|  |  | 
|  | static inline int | 
|  | perf_clang__compile_bpf(const char *filename __maybe_unused, | 
|  | void **p_obj_buf __maybe_unused, | 
|  | size_t *p_obj_buf_sz __maybe_unused) | 
|  | { | 
|  | return -ENOTSUP; | 
|  | } | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  | #endif |