X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=verify.h;h=8d40ff66de0806d26f425e9c7eae001937285503;hp=87675af831b668e6100175cf3ab6ab835f9bce76;hb=9bae252254d0ce37a144cb4c8d2cb4222d539a9e;hpb=b638d82f882bd8c15cc933ee0b8fa684308e7855 diff --git a/verify.h b/verify.h index 87675af8..8d40ff66 100644 --- a/verify.h +++ b/verify.h @@ -2,6 +2,7 @@ #define FIO_VERIFY_H #include +#include "verify-state.h" #define FIO_HDR_MAGIC 0xacca @@ -14,6 +15,7 @@ enum { VERIFY_CRC64, /* crc64 sum data blocks */ VERIFY_CRC32, /* crc32 sum data blocks */ VERIFY_CRC32C, /* crc32c sum data blocks */ + VERIFY_CRC32C_ARM64, /* crc32c sum data blocks with hw */ VERIFY_CRC32C_INTEL, /* crc32c sum data blocks with hw */ VERIFY_CRC16, /* crc16 sum data blocks */ VERIFY_CRC7, /* crc7 sum data blocks */ @@ -94,91 +96,4 @@ extern void verify_async_exit(struct thread_data *); */ extern int paste_blockoff(char *buf, unsigned int len, void *priv); -struct thread_rand32_state { - uint32_t s[4]; -}; - -struct thread_rand64_state { - uint64_t s[6]; -}; - -struct thread_rand_state { - uint64_t use64; - union { - struct thread_rand32_state state32; - struct thread_rand64_state state64; - }; -}; - -/* - * For dumping current write state - */ -struct thread_io_list { - uint64_t no_comps; - uint64_t depth; - uint64_t numberio; - uint64_t index; - struct thread_rand_state rand; - uint8_t name[64]; - uint64_t offsets[0]; -}; - -struct thread_io_list_v1 { - uint64_t no_comps; - uint64_t depth; - uint64_t numberio; - uint64_t index; - struct thread_rand32_state rand; - uint8_t name[64]; - uint64_t offsets[0]; -}; - -struct all_io_list { - uint64_t threads; - struct thread_io_list state[0]; -}; - -#define VSTATE_HDR_VERSION_V1 0x01 -#define VSTATE_HDR_VERSION 0x02 - -struct verify_state_hdr { - uint64_t version; - uint64_t size; - uint64_t crc; -}; - -#define IO_LIST_ALL 0xffffffff -extern struct all_io_list *get_all_io_list(int, size_t *); -extern void __verify_save_state(struct all_io_list *, const char *); -extern void verify_save_state(int mask); -extern int verify_load_state(struct thread_data *, const char *); -extern void verify_free_state(struct thread_data *); -extern int verify_state_should_stop(struct thread_data *, struct io_u *); -extern void verify_convert_assign_state(struct thread_data *, void *, int); -extern int verify_state_hdr(struct verify_state_hdr *, struct thread_io_list *, - int *); - -static inline size_t __thread_io_list_sz(uint64_t depth) -{ - return sizeof(struct thread_io_list) + depth * sizeof(uint64_t); -} - -static inline size_t thread_io_list_sz(struct thread_io_list *s) -{ - return __thread_io_list_sz(le64_to_cpu(s->depth)); -} - -static inline struct thread_io_list *io_list_next(struct thread_io_list *s) -{ - return (void *) s + thread_io_list_sz(s); -} - -static inline void verify_state_gen_name(char *out, size_t size, - const char *name, const char *prefix, - int num) -{ - snprintf(out, size, "%s-%s-%d-verify.state", prefix, name, num); - out[size - 1] = '\0'; -} - #endif