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