eta: Fix compiler warning
[fio.git] / crc / crc32c-arm64.c
index 78fa64ec76cfd6af6d2feb87560ad31d2b0ea756..11bfe5d5c0b212ee6548a4a473eaf00720fdf11b 100644 (file)
@@ -1,4 +1,9 @@
 #include "crc32c.h"
+#include "../os/os.h"
+
+bool crc32c_arm64_available = false;
+
+#ifdef ARCH_HAVE_CRC_CRYPTO
 
 #define CRC32C3X8(ITR) \
        crc1 = __crc32cd(crc1, *((const uint64_t *)data + 42*1 + (ITR)));\
        CRC32C3X8((ITR)*7+6) \
        } while(0)
 
-#ifndef HWCAP_CRC32
-#define HWCAP_CRC32             (1 << 7)
-#endif /* HWCAP_CRC32 */
-
-int crc32c_arm64_available = 0;
-
-#ifdef ARCH_HAVE_ARM64_CRC_CRYPTO
-
-#include <sys/auxv.h>
 #include <arm_acle.h>
 #include <arm_neon.h>
 
-static int crc32c_probed;
+static bool crc32c_probed;
 
 /*
  * Function to calculate reflected crc with PMULL Instruction
@@ -76,7 +72,7 @@ uint32_t crc32c_arm64(unsigned char const *data, unsigned long length)
                data += sizeof(uint64_t);
        }
 
-       if(!(len += 1024))
+       if (!(len += 1024))
                return crc;
 
        while ((len -= sizeof(uint64_t)) >= 0) {
@@ -102,14 +98,10 @@ uint32_t crc32c_arm64(unsigned char const *data, unsigned long length)
 
 void crc32c_arm64_probe(void)
 {
-       unsigned long hwcap;
        if (!crc32c_probed) {
-               hwcap = getauxval(AT_HWCAP);
-               if (hwcap & HWCAP_CRC32) {
-                       crc32c_arm64_available = 1;
-               }
-               crc32c_probed = 1;
+               crc32c_arm64_available = os_cpu_has(CPU_ARM64_CRC32C);
+               crc32c_probed = true;
        }
 }
 
-#endif /* ARCH_HAVE_ARM64_CRC_CRYPTO */
+#endif /* ARCH_HAVE_CRC_CRYPTO */