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
 |