brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · c88aac4 Raw
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