35 lines · c
1//===- FuzzerExtFunctions.h - Interface to external functions ---*- C++ -* ===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8// Defines an interface to (possibly optional) functions.9//===----------------------------------------------------------------------===//10 11#ifndef LLVM_FUZZER_EXT_FUNCTIONS_H12#define LLVM_FUZZER_EXT_FUNCTIONS_H13 14#include <stddef.h>15#include <stdint.h>16 17namespace fuzzer {18 19struct ExternalFunctions {20 // Initialize function pointers. Functions that are not available will be set21 // to nullptr. Do not call this constructor before ``main()`` has been22 // entered.23 ExternalFunctions();24 25#define EXT_FUNC(NAME, RETURN_TYPE, FUNC_SIG, WARN) \26 RETURN_TYPE(*NAME) FUNC_SIG = nullptr27 28#include "FuzzerExtFunctions.def"29 30#undef EXT_FUNC31};32} // namespace fuzzer33 34#endif35