Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-03-13 09:14:25

0001 /*
0002   Copyright @ 1999 ImageMagick Studio LLC, a non-profit organization
0003   dedicated to making software imaging solutions freely available.
0004 
0005   You may not use this file except in compliance with the License.  You may
0006   obtain a copy of the License at
0007 
0008     https://imagemagick.org/script/license.php
0009 
0010   Unless required by applicable law or agreed to in writing, software
0011   distributed under the License is distributed on an "AS IS" BASIS,
0012   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0013   See the License for the specific language governing permissions and
0014   limitations under the License.
0015 
0016   MagickCore method attributes.
0017 */
0018 #ifndef MAGICKCORE_METHOD_ATTRIBUTE_H
0019 #define MAGICKCORE_METHOD_ATTRIBUTE_H
0020 
0021 #if defined(__cplusplus) || defined(c_plusplus)
0022 extern "C" {
0023 #endif
0024 
0025 #if defined(__BORLANDC__) && defined(_DLL)
0026 #  define _MAGICKDLL_
0027 #  define _MAGICKLIB_
0028 #  define MAGICKCORE_MODULES_SUPPORT
0029 #  undef MAGICKCORE_BUILD_MODULES
0030 #endif
0031 
0032 #if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__CYGWIN__)
0033 #  define MagickPrivate
0034 #  if defined(_MT) && defined(_DLL) && !defined(_MAGICKDLL_) && !defined(_LIB)
0035 #    define _MAGICKDLL_
0036 #  endif
0037 #  if defined(_MAGICKDLL_)
0038 #    if defined(_VISUALC_)
0039 #      pragma warning( disable: 4273 )  /* Disable the dll linkage warnings */
0040 #    endif
0041 #    if !defined(_MAGICKLIB_)
0042 #      if defined(__clang__) || defined(__GNUC__)
0043 #        define MagickExport __attribute__ ((dllimport))
0044 #      else
0045 #        define MagickExport __declspec(dllimport)
0046 #      endif
0047 #    else
0048 #      if defined(__clang__) || defined(__GNUC__)
0049 #        define MagickExport __attribute__ ((dllexport))
0050 #      else
0051 #        define MagickExport __declspec(dllexport)
0052 #      endif
0053 #    endif
0054 #  else
0055 #    define MagickExport
0056 #  endif
0057 #  if defined(_DLL) && !defined(_LIB)
0058 #    if defined(__clang__) || defined(__GNUC__)
0059 #      define ModuleExport __attribute__ ((dllexport))
0060 #    else
0061 #      define ModuleExport __declspec(dllexport)
0062 #    endif
0063 #  else
0064 #    define ModuleExport
0065 #  endif
0066 #  if defined(_VISUALC_)
0067 #    pragma warning(disable : 4018)
0068 #    pragma warning(disable : 4068)
0069 #    pragma warning(disable : 4244)
0070 #    pragma warning(disable : 4142)
0071 #    pragma warning(disable : 4800)
0072 #    pragma warning(disable : 4786)
0073 #    pragma warning(disable : 4996)
0074 #  endif
0075 #else
0076 #  if defined(__clang__) || (__GNUC__ >= 4)
0077 #    define MagickExport __attribute__ ((visibility ("default")))
0078 #    define MagickPrivate  __attribute__ ((visibility ("hidden")))
0079 #  else
0080 #    define MagickExport
0081 #    define MagickPrivate
0082 #  endif
0083 #  define ModuleExport  MagickExport
0084 #endif
0085 
0086 #define MagickCoreSignature  0xabacadabUL
0087 #if !defined(MagickPathExtent)
0088 #  define MagickPathExtent  4096  /* always >= max(PATH_MAX,4096) */
0089 #endif
0090 #define MaxTextExtent  MagickPathExtent
0091 #define MagickTimeExtent  26
0092 
0093 #if defined(MAGICKCORE_HAVE___ATTRIBUTE__)
0094 #  define magick_aligned(x,y)  x __attribute__((aligned(y)))
0095 #  define magick_attribute  __attribute__
0096 #  define magick_unused(x)  magick_unused_ ## x __attribute__((unused))
0097 #  define magick_unreferenced(x)  /* nothing */
0098 #elif defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__CYGWIN__)
0099 #  define magick_aligned(x,y)  __declspec(align(y)) x
0100 #  define magick_attribute(x)  /* nothing */
0101 #  define magick_unused(x) x
0102 #  define magick_unreferenced(x) (x)
0103 #else
0104 #  define magick_aligned(x,y)  /* nothing */
0105 #  define magick_attribute(x)  /* nothing */
0106 #  define magick_unused(x) x
0107 #  define magick_unreferenced(x)  /* nothing */
0108 #endif
0109 
0110 #if !defined(__clang__) && (((__GNUC__) > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)))
0111 #  define magick_alloc_size(x)  __attribute__((__alloc_size__(x)))
0112 #  define magick_alloc_sizes(x,y)  __attribute__((__alloc_size__(x,y)))
0113 #  define magick_fallthrough  __attribute__((fallthrough))
0114 #else
0115 #  define magick_alloc_size(x)  /* nothing */
0116 #  define magick_alloc_sizes(x,y)  /* nothing */
0117 #  define magick_fallthrough /* nothing */
0118 #endif
0119 
0120 #if defined(__clang__) || (((__GNUC__) > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)))
0121 #  define magick_cold_spot  __attribute__((__cold__))
0122 #  define magick_hot_spot  __attribute__((__hot__))
0123 #else
0124 #  define magick_cold_spot
0125 #  define magick_hot_spot
0126 #endif
0127 
0128 #if defined(__cplusplus) || defined(c_plusplus)
0129 }
0130 #endif
0131 
0132 #endif