CryptoAuthLib
Microchip CryptoAuthentication Library
atca_compiler.h
Go to the documentation of this file.
1
31
#ifndef ATCA_COMPILER_H_
32
#define ATCA_COMPILER_H_
33
34
#if defined(__clang__)
35
/* Clang/LLVM. ---------------------------------------------- */
36
#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
37
#define ATCA_UINT32_HOST_TO_BE(x) (x)
38
#define ATCA_UINT32_BE_TO_HOST(x) (x)
39
#define ATCA_UINT64_HOST_TO_BE(x) (x)
40
#define ATCA_UINT64_BE_TO_HOST(x) (x)
41
#else
42
#define ATCA_UINT32_HOST_TO_BE(x) __builtin_bswap32(x)
43
#define ATCA_UINT32_BE_TO_HOST(x) __builtin_bswap32(x)
44
#define ATCA_UINT64_HOST_TO_BE(x) __builtin_bswap64(x)
45
#define ATCA_UINT64_BE_TO_HOST(x) __builtin_bswap64(x)
46
#endif
47
48
#elif defined(__ICC) || defined(__INTEL_COMPILER)
49
/* Intel ICC/ICPC. ------------------------------------------ */
50
51
#elif defined(__GNUC__) || defined(__GNUG__)
52
/* GNU GCC/G++. --------------------------------------------- */
53
#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
54
#define ATCA_UINT32_HOST_TO_BE(x) (x)
55
#define ATCA_UINT32_BE_TO_HOST(x) (x)
56
#define ATCA_UINT64_HOST_TO_BE(x) (x)
57
#define ATCA_UINT64_BE_TO_HOST(x) (x)
58
#else
59
#define ATCA_UINT32_HOST_TO_BE(x) __builtin_bswap32(x)
60
#define ATCA_UINT32_BE_TO_HOST(x) __builtin_bswap32(x)
61
#define ATCA_UINT64_HOST_TO_BE(x) __builtin_bswap64(x)
62
#define ATCA_UINT64_BE_TO_HOST(x) __builtin_bswap64(x)
63
#endif
64
65
#elif defined(__HP_cc) || defined(__HP_aCC)
66
/* Hewlett-Packard C/aC++. ---------------------------------- */
67
68
#elif defined(__IBMC__) || defined(__IBMCPP__)
69
/* IBM XL C/C++. -------------------------------------------- */
70
71
#elif defined(_MSC_VER)
72
/* Microsoft Visual Studio. --------------------------------- */
73
// MSVC is usually always little-endian architecture
74
#include <stdlib.h>
75
#define ATCA_UINT32_HOST_TO_BE(x) _byteswap_ulong(x)
76
#define ATCA_UINT32_BE_TO_HOST(x) _byteswap_ulong(x)
77
#define ATCA_UINT64_HOST_TO_BE(x) _byteswap_uint64(x)
78
#define ATCA_UINT64_BE_TO_HOST(x) _byteswap_uint64(x)
79
80
#elif defined(__PGI)
81
/* Portland Group PGCC/PGCPP. ------------------------------- */
82
83
#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
84
/* Oracle Solaris Studio. ----------------------------------- */
85
86
#endif
87
88
#endif
/* ATCA_COMPILER_H_ */
lib
atca_compiler.h
Generated by
1.8.14