| #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 */ |