X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=crc%2Fcrc32c-arm64.c;h=11bfe5d5c0b212ee6548a4a473eaf00720fdf11b;hb=6c5d3a1c08bda1bbf22187c7b80573400e1c1053;hp=08177ba6cff66e78884eaed9148c6909a67097b8;hpb=e6fe02651641fc64d2fa4fcfe9b1013b2947d11b;p=fio.git diff --git a/crc/crc32c-arm64.c b/crc/crc32c-arm64.c index 08177ba6..11bfe5d5 100644 --- a/crc/crc32c-arm64.c +++ b/crc/crc32c-arm64.c @@ -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)));\ @@ -15,15 +20,6 @@ CRC32C3X8((ITR)*7+6) \ } while(0) -#ifndef HWCAP_CRC32 -#define HWCAP_CRC32 (1 << 7) -#endif /* HWCAP_CRC32 */ - -bool crc32c_arm64_available = false; - -#ifdef ARCH_HAVE_ARM64_CRC_CRYPTO - -#include #include #include @@ -102,13 +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); - crc32c_arm64_available = (hwcap & HWCAP_CRC32) != 0; + crc32c_arm64_available = os_cpu_has(CPU_ARM64_CRC32C); crc32c_probed = true; } } -#endif /* ARCH_HAVE_ARM64_CRC_CRYPTO */ +#endif /* ARCH_HAVE_CRC_CRYPTO */