| //===- FuzzerExtFunctions.h - Interface to external functions ---*- C++ -* ===// | |
| // | |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | |
| // See https://llvm.org/LICENSE.txt for license information. | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| // | |
| //===----------------------------------------------------------------------===// | |
| // Defines an interface to (possibly optional) functions. | |
| //===----------------------------------------------------------------------===// | |
| #ifndef LLVM_FUZZER_EXT_FUNCTIONS_H | |
| #define LLVM_FUZZER_EXT_FUNCTIONS_H | |
| #include <stddef.h> | |
| #include <stdint.h> | |
| namespace fuzzer { | |
| struct ExternalFunctions { | |
| // Initialize function pointers. Functions that are not available will be set | |
| // to nullptr. Do not call this constructor before ``main()`` has been | |
| // entered. | |
| ExternalFunctions(); | |
| #define EXT_FUNC(NAME, RETURN_TYPE, FUNC_SIG, WARN) \ | |
| RETURN_TYPE(*NAME) FUNC_SIG = nullptr | |
| #include "FuzzerExtFunctions.def" | |
| #undef EXT_FUNC | |
| }; | |
| } // namespace fuzzer | |
| #endif |