#ifndef LLVM_LIBC_BENCHMARKS_LIBC_FUNCTION_PROTOTYPES_H #define LLVM_LIBC_BENCHMARKS_LIBC_FUNCTION_PROTOTYPES_H #include "llvm/ADT/StringRef.h" namespace llvm { namespace libc_benchmarks { /// Memory function prototype and configuration. using MemcpyFunction = void *(*)(void *__restrict, const void *__restrict, size_t); struct MemcpyConfiguration { MemcpyFunction Function; llvm::StringRef Name; }; using MemmoveFunction = void *(*)(void *, const void *, size_t); struct MemmoveConfiguration { MemmoveFunction Function; llvm::StringRef Name; }; using MemsetFunction = void *(*)(void *, int, size_t); struct MemsetConfiguration { MemsetFunction Function; llvm::StringRef Name; }; using BzeroFunction = void (*)(void *, size_t); struct BzeroConfiguration { BzeroFunction Function; llvm::StringRef Name; }; using MemcmpOrBcmpFunction = int (*)(const void *, const void *, size_t); struct MemcmpOrBcmpConfiguration { MemcmpOrBcmpFunction Function; llvm::StringRef Name; }; } // namespace libc_benchmarks } // namespace llvm #endif /* LLVM_LIBC_BENCHMARKS_LIBC_FUNCTION_PROTOTYPES_H */