// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef SRC_LIB_FUZZING_FIDL_LIBFUZZER_H_
#define SRC_LIB_FUZZING_FIDL_LIBFUZZER_H_

#include <stddef.h>
#include <stdint.h>
#include <zircon/compiler.h>

// Defines the interface by LLVM exposed for fuzzing.
// See https://github.com/llvm/llvm-project/blob/HEAD/compiler-rt/lib/fuzzer/FuzzerInterface.h

extern "C" {

// Required user functions

__EXPORT int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size);

// Optional user functions

__WEAK __EXPORT int LLVMFuzzerInitialize(int *argc, char ***argv);

// Other interfaces to libFuzzer

__EXPORT void LLVMFuzzerSetRemoteCallerPC(uintptr_t pc);

}  // extern "C"

// namespace fuzzer {

// } // namespace fuzzer

#endif  // SRC_LIB_FUZZING_FIDL_LIBFUZZER_H_
