libsodium (1.0.19)

(root)/
include/
sodium/
export.h
       1  
       2  #ifndef sodium_export_H
       3  #define sodium_export_H
       4  
       5  #include <stddef.h>
       6  #include <stdint.h>
       7  #include <limits.h>
       8  
       9  #if !defined(__clang__) && !defined(__GNUC__)
      10  # ifdef __attribute__
      11  #  undef __attribute__
      12  # endif
      13  # define __attribute__(a)
      14  #endif
      15  
      16  #ifdef SODIUM_STATIC
      17  # define SODIUM_EXPORT
      18  # define SODIUM_EXPORT_WEAK
      19  #else
      20  # if defined(_MSC_VER)
      21  #  ifdef SODIUM_DLL_EXPORT
      22  #   define SODIUM_EXPORT __declspec(dllexport)
      23  #  else
      24  #   define SODIUM_EXPORT __declspec(dllimport)
      25  #  endif
      26  # else
      27  #  if defined(__SUNPRO_C)
      28  #   ifndef __GNU_C__
      29  #    define SODIUM_EXPORT __attribute__ (visibility(__global))
      30  #   else
      31  #    define SODIUM_EXPORT __attribute__ __global
      32  #   endif
      33  #  elif defined(_MSG_VER)
      34  #   define SODIUM_EXPORT extern __declspec(dllexport)
      35  #  else
      36  #   define SODIUM_EXPORT __attribute__ ((visibility ("default")))
      37  #  endif
      38  # endif
      39  # if defined(__ELF__) && !defined(SODIUM_DISABLE_WEAK_FUNCTIONS)
      40  #  define SODIUM_EXPORT_WEAK SODIUM_EXPORT __attribute__((weak))
      41  # else
      42  #  define SODIUM_EXPORT_WEAK SODIUM_EXPORT
      43  # endif
      44  #endif
      45  
      46  #ifndef CRYPTO_ALIGN
      47  # if defined(__INTEL_COMPILER) || defined(_MSC_VER)
      48  #  define CRYPTO_ALIGN(x) __declspec(align(x))
      49  # else
      50  #  define CRYPTO_ALIGN(x) __attribute__ ((aligned(x)))
      51  # endif
      52  #endif
      53  
      54  #define SODIUM_MIN(A, B) ((A) < (B) ? (A) : (B))
      55  #define SODIUM_SIZE_MAX SODIUM_MIN(UINT64_MAX, SIZE_MAX)
      56  
      57  #endif