35 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
| //===- FuzzerExtFunctions.h - Interface to external functions ---*- 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
 | |
| //
 | |
| //===----------------------------------------------------------------------===//
 | |
| // Defines an interface to (possibly optional) functions.
 | |
| //===----------------------------------------------------------------------===//
 | |
| 
 | |
| #ifndef LLVM_FUZZER_EXT_FUNCTIONS_H
 | |
| #define LLVM_FUZZER_EXT_FUNCTIONS_H
 | |
| 
 | |
| #include <stddef.h>
 | |
| #include <stdint.h>
 | |
| 
 | |
| namespace fuzzer {
 | |
| 
 | |
| struct ExternalFunctions {
 | |
|   // Initialize function pointers. Functions that are not available will be set
 | |
|   // to nullptr.  Do not call this constructor  before ``main()`` has been
 | |
|   // entered.
 | |
|   ExternalFunctions();
 | |
| 
 | |
| #define EXT_FUNC(NAME, RETURN_TYPE, FUNC_SIG, WARN)                            \
 | |
|   RETURN_TYPE(*NAME) FUNC_SIG = nullptr
 | |
| 
 | |
| #include "FuzzerExtFunctions.def"
 | |
| 
 | |
| #undef EXT_FUNC
 | |
| };
 | |
| } // namespace fuzzer
 | |
| 
 | |
| #endif
 |