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