- switch (td->o.verify) {
- case VERIFY_MD5:
- fill_md5(hdr, p, len);
- break;
- case VERIFY_CRC32:
- fill_crc32(hdr, p, len);
- break;
- case VERIFY_CRC16:
- fill_crc16(hdr, p, len);
- break;
- case VERIFY_CRC7:
- fill_crc7(hdr, p, len);
- break;
- default:
- log_err("fio: bad verify type: %d\n", td->o.verify);
- assert(0);
+ for (;p < (unsigned char*) io_u->buf + io_u->buflen; p += hdr->len) {
+ hdr = (struct verify_header*) p;
+
+ hdr->fio_magic = FIO_HDR_MAGIC;
+ hdr->verify_type = td->o.verify;
+ hdr->len = io_u->buflen;
+ if (td->o.header_interval)
+ hdr->len = td->o.header_interval;
+
+ data = p + sizeof(*hdr);
+ data_len = hdr->len - sizeof(*hdr);
+ switch (td->o.verify) {
+ case VERIFY_MD5:
+ fill_md5(hdr, data, data_len);
+ break;
+ case VERIFY_CRC64:
+ fill_crc64(hdr, data, data_len);
+ break;
+ case VERIFY_CRC32:
+ fill_crc32(hdr, data, data_len);
+ break;
+ case VERIFY_CRC16:
+ fill_crc16(hdr, data, data_len);
+ break;
+ case VERIFY_CRC7:
+ fill_crc7(hdr, data, data_len);
+ break;
+ default:
+ log_err("fio: bad verify type: %d\n", td->o.verify);
+ assert(0);
+ }