Split out td error handling code
[fio.git] / verify.c
index c0485d55bf268563a5bc760bede3333f7a58e8e6..787cc377d2fbf33699721d5310b6b50f939a70c5 100644 (file)
--- a/verify.c
+++ b/verify.c
@@ -10,9 +10,9 @@
 
 #include "fio.h"
 #include "verify.h"
-#include "smalloc.h"
 #include "trim.h"
 #include "lib/rand.h"
+#include "lib/hweight.h"
 
 #include "crc/md5.h"
 #include "crc/crc64.h"
@@ -308,14 +308,6 @@ static inline void *io_u_verify_off(struct verify_header *hdr, struct vcont *vc)
        return vc->io_u->buf + vc->hdr_num * hdr->len + hdr_size(hdr);
 }
 
-static unsigned int hweight8(unsigned int w)
-{
-       unsigned int res = w - ((w >> 1) & 0x55);
-
-       res = (res & 0x33) + ((res >> 2) & 0x33);
-       return (res + (res >> 4)) & 0x0F;
-}
-
 static int verify_io_u_pattern(struct verify_header *hdr, struct vcont *vc)
 {
        struct thread_data *td = vc->td;
@@ -1014,6 +1006,14 @@ int get_next_verify(struct thread_data *td, struct io_u *io_u)
        return 1;
 }
 
+void fio_verify_init(struct thread_data *td)
+{
+       if (td->o.verify == VERIFY_CRC32C_INTEL ||
+           td->o.verify == VERIFY_CRC32C) {
+               crc32c_intel_probe();
+       }
+}
+
 static void *verify_async_thread(void *data)
 {
        struct thread_data *td = data;