|
@@ -50,37 +50,42 @@
|
|
|
#include <asm/hwcap.h>
|
|
|
#endif
|
|
|
|
|
|
+#ifdef ZT_ARCH_ARM_HAS_NEON
|
|
|
+
|
|
|
+#ifdef __LINUX__
|
|
|
+#include <sys/auxv.h>
|
|
|
+#include <asm/hwcap.h>
|
|
|
+#endif
|
|
|
+
|
|
|
#if defined(__FreeBSD__)
|
|
|
#include <elf.h>
|
|
|
#include <sys/auxv.h>
|
|
|
-static inline long getauxval(int caps) {
|
|
|
+static inline long getauxval(int caps)
|
|
|
+{
|
|
|
long hwcaps = 0;
|
|
|
elf_aux_info(caps, &hwcaps, sizeof(hwcaps));
|
|
|
return hwcaps;
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
-// If these are not even defined, then they're not supported at all
|
|
|
+// If these are not even defined, obviously they are not supported.
|
|
|
#ifndef HWCAP_AES
|
|
|
#define HWCAP_AES 0
|
|
|
#endif
|
|
|
-
|
|
|
#ifndef HWCAP_CRC32
|
|
|
#define HWCAP_CRC32 0
|
|
|
#endif
|
|
|
-
|
|
|
#ifndef HWCAP_PMULL
|
|
|
#define HWCAP_PMULL 0
|
|
|
#endif
|
|
|
-
|
|
|
#ifndef HWCAP_SHA1
|
|
|
#define HWCAP_SHA1 0
|
|
|
#endif
|
|
|
-
|
|
|
#ifndef HWCAP_SHA2
|
|
|
#define HWCAP_SHA2 0
|
|
|
#endif
|
|
|
|
|
|
+#endif // ZT_ARCH_ARM_HAS_NEON
|
|
|
|
|
|
namespace ZeroTier {
|
|
|
|