| 
					
				 | 
			
			
				@@ -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 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |