1 1.1 kamil //===- FuzzerExtFunctions.h - Interface to external functions ---*- C++ -* ===// 2 1.1 kamil // 3 1.1 kamil // The LLVM Compiler Infrastructure 4 1.1 kamil // 5 1.1 kamil // This file is distributed under the University of Illinois Open Source 6 1.1 kamil // License. See LICENSE.TXT for details. 7 1.1 kamil // 8 1.1 kamil //===----------------------------------------------------------------------===// 9 1.1 kamil // Defines an interface to (possibly optional) functions. 10 1.1 kamil //===----------------------------------------------------------------------===// 11 1.1 kamil 12 1.1 kamil #ifndef LLVM_FUZZER_EXT_FUNCTIONS_H 13 1.1 kamil #define LLVM_FUZZER_EXT_FUNCTIONS_H 14 1.1 kamil 15 1.1 kamil #include <stddef.h> 16 1.1 kamil #include <stdint.h> 17 1.1 kamil 18 1.1 kamil namespace fuzzer { 19 1.1 kamil 20 1.1 kamil struct ExternalFunctions { 21 1.1 kamil // Initialize function pointers. Functions that are not available will be set 22 1.1 kamil // to nullptr. Do not call this constructor before ``main()`` has been 23 1.1 kamil // entered. 24 1.1 kamil ExternalFunctions(); 25 1.1 kamil 26 1.1 kamil #define EXT_FUNC(NAME, RETURN_TYPE, FUNC_SIG, WARN) \ 27 1.1 kamil RETURN_TYPE(*NAME) FUNC_SIG = nullptr 28 1.1 kamil 29 1.1 kamil #include "FuzzerExtFunctions.def" 30 1.1 kamil 31 1.1 kamil #undef EXT_FUNC 32 1.1 kamil }; 33 1.1 kamil } // namespace fuzzer 34 1.1 kamil 35 1.1 kamil #endif 36