45 lines · c
1#ifndef LLVM_LIBC_BENCHMARKS_LIBC_FUNCTION_PROTOTYPES_H2#define LLVM_LIBC_BENCHMARKS_LIBC_FUNCTION_PROTOTYPES_H3 4#include "llvm/ADT/StringRef.h"5 6namespace llvm {7namespace libc_benchmarks {8 9/// Memory function prototype and configuration.10using MemcpyFunction = void *(*)(void *__restrict, const void *__restrict,11 size_t);12struct MemcpyConfiguration {13 MemcpyFunction Function;14 llvm::StringRef Name;15};16 17using MemmoveFunction = void *(*)(void *, const void *, size_t);18struct MemmoveConfiguration {19 MemmoveFunction Function;20 llvm::StringRef Name;21};22 23using MemsetFunction = void *(*)(void *, int, size_t);24struct MemsetConfiguration {25 MemsetFunction Function;26 llvm::StringRef Name;27};28 29using BzeroFunction = void (*)(void *, size_t);30struct BzeroConfiguration {31 BzeroFunction Function;32 llvm::StringRef Name;33};34 35using MemcmpOrBcmpFunction = int (*)(const void *, const void *, size_t);36struct MemcmpOrBcmpConfiguration {37 MemcmpOrBcmpFunction Function;38 llvm::StringRef Name;39};40 41} // namespace libc_benchmarks42} // namespace llvm43 44#endif /* LLVM_LIBC_BENCHMARKS_LIBC_FUNCTION_PROTOTYPES_H */45