Add intel hardware assisted crc32c support

Not tested, since I don't have the hardware.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
diff --git a/verify.c b/verify.c
index afb4cb7..2aa5ab4 100644
--- a/verify.c
+++ b/verify.c
@@ -128,6 +128,7 @@
 		break;
 	case VERIFY_CRC32C:
 	case VERIFY_CRC32:
+	case VERIFY_CRC32C_INTEL:
 		len = sizeof(struct vhdr_crc32);
 		break;
 	case VERIFY_CRC16:
@@ -337,7 +338,10 @@
 
 	dprint(FD_VERIFY, "crc32c verify io_u %p, len %u\n", io_u, hdr->len);
 
-	c = crc32c(p, hdr->len - hdr_size(hdr));
+	if (hdr->verify_type == VERIFY_CRC32C_INTEL)
+		c = crc32c_intel(p, hdr->len - hdr_size(hdr));
+	else
+		c = crc32c(p, hdr->len - hdr_size(hdr));
 
 	if (c != vh->crc32) {
 		log_err("crc32c: verify failed at %llu/%u\n",
@@ -466,6 +470,7 @@
 			ret = verify_io_u_crc64(hdr, io_u, hdr_num);
 			break;
 		case VERIFY_CRC32C:
+		case VERIFY_CRC32C_INTEL:
 			ret = verify_io_u_crc32c(hdr, io_u, hdr_num);
 			break;
 		case VERIFY_CRC32:
@@ -557,7 +562,10 @@
 {
 	struct vhdr_crc32 *vh = hdr_priv(hdr);
 
-	vh->crc32 = crc32c(p, len);
+	if (hdr->verify_type == VERIFY_CRC32C_INTEL)
+		vh->crc32 = crc32c_intel(p, len);
+	else
+		vh->crc32 = crc32c(p, len);
 }
 
 static void fill_crc64(struct verify_header *hdr, void *p, unsigned int len)
@@ -618,6 +626,7 @@
 			fill_crc64(hdr, data, data_len);
 			break;
 		case VERIFY_CRC32C:
+		case VERIFY_CRC32C_INTEL:
 			dprint(FD_VERIFY, "fill crc32c io_u %p, len %u\n",
 							io_u, hdr->len);
 			fill_crc32c(hdr, data, data_len);