Home | History | Annotate | Line # | Download | only in fuzzer
      1  1.1  kamil //===- FuzzerExtFunctions.h - Interface to external functions ---*- C++ -* ===//
      2  1.1  kamil //
      3  1.1  kamil //                     The LLVM Compiler Infrastructure
      4  1.1  kamil //
      5  1.1  kamil // This file is distributed under the University of Illinois Open Source
      6  1.1  kamil // License. See LICENSE.TXT for details.
      7  1.1  kamil //
      8  1.1  kamil //===----------------------------------------------------------------------===//
      9  1.1  kamil // Defines an interface to (possibly optional) functions.
     10  1.1  kamil //===----------------------------------------------------------------------===//
     11  1.1  kamil 
     12  1.1  kamil #ifndef LLVM_FUZZER_EXT_FUNCTIONS_H
     13  1.1  kamil #define LLVM_FUZZER_EXT_FUNCTIONS_H
     14  1.1  kamil 
     15  1.1  kamil #include <stddef.h>
     16  1.1  kamil #include <stdint.h>
     17  1.1  kamil 
     18  1.1  kamil namespace fuzzer {
     19  1.1  kamil 
     20  1.1  kamil struct ExternalFunctions {
     21  1.1  kamil   // Initialize function pointers. Functions that are not available will be set
     22  1.1  kamil   // to nullptr.  Do not call this constructor  before ``main()`` has been
     23  1.1  kamil   // entered.
     24  1.1  kamil   ExternalFunctions();
     25  1.1  kamil 
     26  1.1  kamil #define EXT_FUNC(NAME, RETURN_TYPE, FUNC_SIG, WARN)                            \
     27  1.1  kamil   RETURN_TYPE(*NAME) FUNC_SIG = nullptr
     28  1.1  kamil 
     29  1.1  kamil #include "FuzzerExtFunctions.def"
     30  1.1  kamil 
     31  1.1  kamil #undef EXT_FUNC
     32  1.1  kamil };
     33  1.1  kamil } // namespace fuzzer
     34  1.1  kamil 
     35  1.1  kamil #endif
     36