forked from OSchip/llvm-project
56 lines
1.4 KiB
C++
56 lines
1.4 KiB
C++
//===- FuzzerDefs.h - Internal header for the Fuzzer ------------*- 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
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
// Basic definitions.
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_FUZZER_DEFS_H
|
|
#define LLVM_FUZZER_DEFS_H
|
|
|
|
#include <cassert>
|
|
#include <cstddef>
|
|
#include <cstdint>
|
|
#include <cstring>
|
|
#include <memory>
|
|
#include <set>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
|
|
namespace fuzzer {
|
|
|
|
template <class T> T Min(T a, T b) { return a < b ? a : b; }
|
|
template <class T> T Max(T a, T b) { return a > b ? a : b; }
|
|
|
|
class Random;
|
|
class Dictionary;
|
|
class DictionaryEntry;
|
|
class MutationDispatcher;
|
|
struct FuzzingOptions;
|
|
class InputCorpus;
|
|
struct InputInfo;
|
|
struct ExternalFunctions;
|
|
|
|
// Global interface to functions that may or may not be available.
|
|
extern ExternalFunctions *EF;
|
|
|
|
typedef std::vector<uint8_t> Unit;
|
|
typedef std::vector<Unit> UnitVector;
|
|
typedef int (*UserCallback)(const uint8_t *Data, size_t Size);
|
|
|
|
int FuzzerDriver(int *argc, char ***argv, UserCallback Callback);
|
|
|
|
uint8_t *ExtraCountersBegin();
|
|
uint8_t *ExtraCountersEnd();
|
|
void ClearExtraCounters();
|
|
|
|
extern bool RunningUserCallback;
|
|
|
|
} // namespace fuzzer
|
|
|
|
#endif // LLVM_FUZZER_DEFS_H
|