1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef PERF_UTIL_CLANG_C_H 3 #define PERF_UTIL_CLANG_C_H 4 5 #include <stddef.h> /* for size_t */ 6 7 #ifdef __cplusplus 8 extern "C" { 9 #endif 10 11 #ifdef HAVE_LIBCLANGLLVM_SUPPORT 12 extern void perf_clang__init(void); 13 extern void perf_clang__cleanup(void); 14 15 extern int test__clang_to_IR(void); 16 extern int test__clang_to_obj(void); 17 18 extern int perf_clang__compile_bpf(const char *filename, 19 void **p_obj_buf, 20 size_t *p_obj_buf_sz); 21 #else 22 23 #include <errno.h> 24 #include <linux/compiler.h> /* for __maybe_unused */ 25 26 static inline void perf_clang__init(void) { } 27 static inline void perf_clang__cleanup(void) { } 28 29 static inline int test__clang_to_IR(void) { return -1; } 30 static inline int test__clang_to_obj(void) { return -1;} 31 32 static inline int 33 perf_clang__compile_bpf(const char *filename __maybe_unused, 34 void **p_obj_buf __maybe_unused, 35 size_t *p_obj_buf_sz __maybe_unused) 36 { 37 return -ENOTSUP; 38 } 39 40 #endif 41 42 #ifdef __cplusplus 43 } 44 #endif 45 #endif 46