Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerExtFunctions.h
35262 views
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-exception
6
//
7
//===----------------------------------------------------------------------===//
8
// Defines an interface to (possibly optional) functions.
9
//===----------------------------------------------------------------------===//
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
17
namespace fuzzer {
18
19
struct ExternalFunctions {
20
// 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.
23
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
34
#endif
35
36