2018-10-23 12:42:57 +00:00
|
|
|
|
|
|
|
#ifndef sodium_export_H
|
|
|
|
#define sodium_export_H
|
|
|
|
|
|
|
|
#include <stddef.h>
|
|
|
|
#include <stdint.h>
|
|
|
|
#include <limits.h>
|
|
|
|
|
|
|
|
#if !defined(__clang__) && !defined(__GNUC__)
|
2019-08-31 18:54:19 +00:00
|
|
|
#ifdef __attribute__
|
|
|
|
#undef __attribute__
|
|
|
|
#endif
|
|
|
|
#define __attribute__(a)
|
2018-10-23 12:42:57 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef SODIUM_STATIC
|
2019-08-31 18:54:19 +00:00
|
|
|
#define SODIUM_EXPORT
|
|
|
|
#define SODIUM_EXPORT_WEAK
|
|
|
|
#else
|
|
|
|
#if defined(_MSC_VER)
|
|
|
|
#ifdef SODIUM_DLL_EXPORT
|
|
|
|
#define SODIUM_EXPORT __declspec(dllexport)
|
|
|
|
#else
|
|
|
|
#define SODIUM_EXPORT __declspec(dllimport)
|
|
|
|
#endif
|
|
|
|
#else
|
|
|
|
#if defined(__SUNPRO_C)
|
|
|
|
#ifndef __GNU_C__
|
|
|
|
#define SODIUM_EXPORT __attribute__(visibility(__global))
|
|
|
|
#else
|
|
|
|
#define SODIUM_EXPORT __attribute__ __global
|
|
|
|
#endif
|
|
|
|
#elif defined(_MSG_VER)
|
|
|
|
#define SODIUM_EXPORT extern __declspec(dllexport)
|
2018-10-23 12:42:57 +00:00
|
|
|
#else
|
2019-08-31 18:54:19 +00:00
|
|
|
#define SODIUM_EXPORT __attribute__((visibility("default")))
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if defined(__ELF__) && !defined(SODIUM_DISABLE_WEAK_FUNCTIONS)
|
|
|
|
#define SODIUM_EXPORT_WEAK SODIUM_EXPORT __attribute__((weak))
|
|
|
|
#else
|
|
|
|
#define SODIUM_EXPORT_WEAK SODIUM_EXPORT
|
|
|
|
#endif
|
2018-10-23 12:42:57 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef CRYPTO_ALIGN
|
2019-08-31 18:54:19 +00:00
|
|
|
#if defined(__INTEL_COMPILER) || defined(_MSC_VER)
|
|
|
|
#define CRYPTO_ALIGN(x) __declspec(align(x))
|
|
|
|
#else
|
|
|
|
#define CRYPTO_ALIGN(x) __attribute__((aligned(x)))
|
|
|
|
#endif
|
2018-10-23 12:42:57 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#define SODIUM_MIN(A, B) ((A) < (B) ? (A) : (B))
|
|
|
|
#define SODIUM_SIZE_MAX SODIUM_MIN(UINT64_MAX, SIZE_MAX)
|
|
|
|
|
|
|
|
#endif
|