Home | History | Annotate | Download | only in crypto
      1 #ifndef __ARM_ARCH_H__
      2 #define __ARM_ARCH_H__
      3 
      4 #if !defined(__ARM_ARCH__)
      5 # if defined(__CC_ARM)
      6 #  define __ARM_ARCH__ __TARGET_ARCH_ARM
      7 #  if defined(__BIG_ENDIAN)
      8 #   define __ARMEB__
      9 #  else
     10 #   define __ARMEL__
     11 #  endif
     12 # elif defined(__GNUC__)
     13 #  if	defined(__aarch64__)
     14 #   define __ARM_ARCH__ 8
     15 #   if __BYTE_ORDER__==__ORDER_BIG_ENDIAN__
     16 #    define __ARMEB__
     17 #   else
     18 #    define __ARMEL__
     19 #   endif
     20   /*
     21    * Why doesn't gcc define __ARM_ARCH__? Instead it defines
     22    * bunch of below macros. See all_architectires[] table in
     23    * gcc/config/arm/arm.c. On a side note it defines
     24    * __ARMEL__/__ARMEB__ for little-/big-endian.
     25    */
     26 #  elif defined(__ARM_ARCH)
     27 #   define __ARM_ARCH__ __ARM_ARCH
     28 #  elif	defined(__ARM_ARCH_8A__)
     29 #   define __ARM_ARCH__ 8
     30 #  elif	defined(__ARM_ARCH_7__)	|| defined(__ARM_ARCH_7A__)	|| \
     31 	defined(__ARM_ARCH_7R__)|| defined(__ARM_ARCH_7M__)	|| \
     32 	defined(__ARM_ARCH_7EM__)
     33 #   define __ARM_ARCH__ 7
     34 #  elif	defined(__ARM_ARCH_6__)	|| defined(__ARM_ARCH_6J__)	|| \
     35 	defined(__ARM_ARCH_6K__)|| defined(__ARM_ARCH_6M__)	|| \
     36 	defined(__ARM_ARCH_6Z__)|| defined(__ARM_ARCH_6ZK__)	|| \
     37 	defined(__ARM_ARCH_6T2__)
     38 #   define __ARM_ARCH__ 6
     39 #  elif	defined(__ARM_ARCH_5__)	|| defined(__ARM_ARCH_5T__)	|| \
     40 	defined(__ARM_ARCH_5E__)|| defined(__ARM_ARCH_5TE__)	|| \
     41 	defined(__ARM_ARCH_5TEJ__)
     42 #   define __ARM_ARCH__ 5
     43 #  elif	defined(__ARM_ARCH_4__)	|| defined(__ARM_ARCH_4T__)
     44 #   define __ARM_ARCH__ 4
     45 #  else
     46 #   error "unsupported ARM architecture"
     47 #  endif
     48 # endif
     49 #endif
     50 
     51 #ifdef OPENSSL_FIPSCANISTER
     52 #include <openssl/fipssyms.h>
     53 #endif
     54 
     55 #if !__ASSEMBLER__
     56 extern unsigned int OPENSSL_armcap_P;
     57 #endif
     58 
     59 #define ARMV7_NEON      (1<<0)
     60 #define ARMV7_TICK      (1<<1)
     61 #define ARMV8_AES       (1<<2)
     62 #define ARMV8_SHA1      (1<<3)
     63 #define ARMV8_SHA256    (1<<4)
     64 #define ARMV8_PMULL     (1<<5)
     65 
     66 #endif
     67