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#include <util-cxx.h> /* for __maybe_unused */ 7 8#ifdef __cplusplus 9extern "C" { 10#endif 11 12#ifdef HAVE_LIBCLANGLLVM_SUPPORT 13extern void perf_clang__init(void); 14extern void perf_clang__cleanup(void); 15 16extern int test__clang_to_IR(void); 17extern int test__clang_to_obj(void); 18 19extern int perf_clang__compile_bpf(const char *filename, 20 void **p_obj_buf, 21 size_t *p_obj_buf_sz); 22#else 23 24#include <errno.h> 25 26static inline void perf_clang__init(void) { } 27static inline void perf_clang__cleanup(void) { } 28 29static inline int test__clang_to_IR(void) { return -1; } 30static inline int test__clang_to_obj(void) { return -1;} 31 32static inline int 33perf_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