Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 10:18:53

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(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__CYGWIN__)
0026 #  define MagickPrivate
0027 #  if defined(_MT) && defined(_DLL) && !defined(_MAGICKDLL_) && !defined(_LIB)
0028 #    define _MAGICKDLL_
0029 #  endif
0030 #  if defined(_MAGICKDLL_)
0031 #    if defined(_VISUALC_)
0032 #      pragma warning( disable: 4273 )  /* Disable the dll linkage warnings */
0033 #    endif
0034 #    if !defined(_MAGICKLIB_)
0035 #      if defined(__clang__) || defined(__GNUC__)
0036 #        define MagickExport __attribute__ ((dllimport))
0037 #      else
0038 #        define MagickExport __declspec(dllimport)
0039 #      endif
0040 #    else
0041 #      if defined(__clang__) || defined(__GNUC__)
0042 #        define MagickExport __attribute__ ((dllexport))
0043 #      else
0044 #        define MagickExport __declspec(dllexport)
0045 #      endif
0046 #    endif
0047 #  else
0048 #    define MagickExport
0049 #  endif
0050 #  if defined(_DLL) && !defined(_LIB)
0051 #    if defined(__clang__) || defined(__GNUC__)
0052 #      define ModuleExport __attribute__ ((dllexport))
0053 #    else
0054 #      define ModuleExport __declspec(dllexport)
0055 #    endif
0056 #  else
0057 #    define ModuleExport
0058 #  endif
0059 #  if defined(_VISUALC_)
0060 #    pragma warning(disable : 4018)
0061 #    pragma warning(disable : 4068)
0062 #    pragma warning(disable : 4244)
0063 #    pragma warning(disable : 4142)
0064 #    pragma warning(disable : 4800)
0065 #    pragma warning(disable : 4786)
0066 #    pragma warning(disable : 4996)
0067 #  endif
0068 #else
0069 #  if defined(__clang__) || (__GNUC__ >= 4)
0070 #    define MagickExport __attribute__ ((visibility ("default")))
0071 #    define MagickPrivate  __attribute__ ((visibility ("hidden")))
0072 #  else
0073 #    define MagickExport
0074 #    define MagickPrivate
0075 #  endif
0076 #  define ModuleExport  MagickExport
0077 #endif
0078 
0079 #define MagickCoreSignature  0xabacadabUL
0080 #if !defined(MagickPathExtent)
0081 #  define MagickPathExtent  4096  /* always >= max(PATH_MAX,4096) */
0082 #endif
0083 #define MaxTextExtent  MagickPathExtent
0084 #define MagickTimeExtent  26
0085 
0086 #if defined(MAGICKCORE_HAVE___ATTRIBUTE__)
0087 #  define magick_aligned(x,y)  x __attribute__((aligned(y)))
0088 #  define magick_attribute  __attribute__
0089 #  define magick_unused(x)  magick_unused_ ## x __attribute__((unused))
0090 #  define magick_unreferenced(x)  /* nothing */
0091 #elif defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__CYGWIN__)
0092 #  define magick_aligned(x,y)  __declspec(align(y)) x
0093 #  define magick_attribute(x)  /* nothing */
0094 #  define magick_unused(x) x
0095 #  define magick_unreferenced(x) (x)
0096 #else
0097 #  define magick_aligned(x,y)  /* nothing */
0098 #  define magick_attribute(x)  /* nothing */
0099 #  define magick_unused(x) x
0100 #  define magick_unreferenced(x)  /* nothing */
0101 #endif
0102 
0103 #if !defined(__clang__) && (defined(__GNUC__) && (__GNUC__) > 4)
0104 #  define magick_alloc_size(x)  __attribute__((__alloc_size__(x)))
0105 #  define magick_alloc_sizes(x,y)  __attribute__((__alloc_size__(x,y)))
0106 #  define magick_fallthrough  __attribute__((fallthrough))
0107 #else
0108 #  define magick_alloc_size(x)  /* nothing */
0109 #  define magick_alloc_sizes(x,y)  /* nothing */
0110 #  define magick_fallthrough /* nothing */
0111 #endif
0112 
0113 #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__) > 4)
0114 #  define magick_cold_spot  __attribute__((__cold__))
0115 #  define magick_hot_spot  __attribute__((__hot__))
0116 #else
0117 #  define magick_cold_spot
0118 #  define magick_hot_spot
0119 #endif
0120 
0121 #if defined(__cplusplus) || defined(c_plusplus)
0122 }
0123 #endif
0124 
0125 #endif