| /* 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 |