Home | History | Annotate | Download | only in MagickWand
      1 /*
      2   Copyright 1999-2016 ImageMagick Studio LLC, a non-profit organization
      3   dedicated to making software imaging solutions freely available.
      4 
      5   You may not use this file except in compliance with the License.
      6   obtain a copy of the License at
      7 
      8     http://www.imagemagick.org/script/license.php
      9 
     10   Unless required by applicable law or agreed to in writing, software
     11   distributed under the License is distributed on an "AS IS" BASIS,
     12   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13   See the License for the specific language governing permissions and
     14   limitations under the License.
     15 
     16   MagickWand private application programming interface declarations.
     17 */
     18 #ifndef MAGICKWAND_STUDIO_H
     19 #define MAGICKWAND_STUDIO_H
     20 
     21 #if defined(__cplusplus) || defined(c_plusplus)
     22 extern "C" {
     23 #endif
     24 
     25 #if defined(WIN32) || defined(WIN64)
     26 #  define MAGICKWAND_WINDOWS_SUPPORT
     27 #else
     28 #  define MAGICKWAND_POSIX_SUPPORT
     29 #endif
     30 
     31 #define MAGICKWAND_IMPLEMENTATION  1
     32 
     33 #if !defined(MAGICKWAND_CONFIG_H)
     34 # define MAGICKWAND_CONFIG_H
     35 # include "MagickCore/magick-config.h"
     36 #if defined(MAGICKCORE__FILE_OFFSET_BITS) && !defined(_FILE_OFFSET_BITS)
     37 # define _FILE_OFFSET_BITS MAGICKCORE__FILE_OFFSET_BITS
     38 #endif
     39 #if defined(_magickcore_const) && !defined(const)
     40 # define const _magickcore_const
     41 #endif
     42 #if defined(_magickcore_inline) && !defined(inline)
     43 # define inline _magickcore_inline
     44 #endif
     45 # if defined(__cplusplus) || defined(c_plusplus)
     46 #  undef inline
     47 # endif
     48 #endif
     49 
     50 #if !defined(const)
     51 #  define STDC
     52 #endif
     53 
     54 #if defined(__cplusplus) || defined(c_plusplus)
     55 # define storage_class  c_class
     56 #else
     57 # define storage_class  class
     58 #endif
     59 
     60 #include <stdarg.h>
     61 #include <stdio.h>
     62 #if defined(MAGICKCORE_HAVE_SYS_STAT_H)
     63 # include <sys/stat.h>
     64 #endif
     65 #if defined(MAGICKCORE_STDC_HEADERS)
     66 # include <stdlib.h>
     67 # include <stddef.h>
     68 #else
     69 # if defined(MAGICKCORE_HAVE_STDLIB_H)
     70 #  include <stdlib.h>
     71 # endif
     72 #endif
     73 #if !defined(magick_restrict)
     74 # if !defined(_magickcore_restrict)
     75 #  define magick_restrict restrict
     76 # else
     77 #  define magick_restrict _magickcore_restrict
     78 # endif
     79 #endif
     80 #if defined(MAGICKCORE_HAVE_STRING_H)
     81 # if !defined(STDC_HEADERS) && defined(MAGICKCORE_HAVE_MEMORY_H)
     82 #  include <memory.h>
     83 # endif
     84 # include <string.h>
     85 #endif
     86 #if defined(MAGICKCORE_HAVE_STRINGS_H)
     87 # include <strings.h>
     88 #endif
     89 #if defined(MAGICKCORE_HAVE_INTTYPES_H)
     90 # include <inttypes.h>
     91 #endif
     92 #if defined(MAGICKCORE_HAVE_STDINT_H)
     93 # include <stdint.h>
     94 #endif
     95 #if defined(MAGICKCORE_HAVE_UNISTD_H)
     96 # include <unistd.h>
     97 #endif
     98 #if defined(MAGICKWAND_WINDOWS_SUPPORT) && defined(_DEBUG)
     99 #define _CRTDBG_MAP_ALLOC
    100 #endif
    101 
    102 #if defined(MAGICKWAND_WINDOWS_SUPPORT) && defined(_DEBUG)
    103 #define _CRTDBG_MAP_ALLOC
    104 #endif
    105 #if defined(MAGICKWAND_WINDOWS_SUPPORT)
    106 # include <io.h>
    107 # include <direct.h>
    108 # if !defined(MAGICKCORE_HAVE_STRERROR)
    109 #  define HAVE_STRERROR
    110 # endif
    111 #endif
    112 
    113 #include <ctype.h>
    114 #include <locale.h>
    115 #include <errno.h>
    116 #include <fcntl.h>
    117 #include <math.h>
    118 #include <time.h>
    119 #include <limits.h>
    120 #include <signal.h>
    121 #include <assert.h>
    122 
    123 #if defined(MAGICKCORE_HAVE_XLOCALE_H)
    124 # include <xlocale.h>
    125 #endif
    126 #if defined(MAGICKCORE_THREAD_SUPPORT)
    127 # include <pthread.h>
    128 #endif
    129 #if defined(MAGICKCORE_HAVE_SYS_SYSLIMITS_H)
    130 # include <sys/syslimits.h>
    131 #endif
    132 #if defined(MAGICKCORE_HAVE_ARM_LIMITS_H)
    133 # include <arm/limits.h>
    134 #endif
    135 
    136 #if defined(MAGICKCORE__OPENCL)
    137 #if defined(MAGICKCORE_HAVE_CL_CL_H)
    138 #  include <CL/cl.h>
    139 #endif
    140 #if defined(MAGICKCORE_HAVE_OPENCL_CL_H)
    141 #  include <OpenCL/cl.h>
    142 #endif
    143 #  define MAGICKCORE_OPENCL_SUPPORT  1
    144 #endif
    145 
    146 #if defined(_OPENMP) && ((_OPENMP >= 200203) || defined(__OPENCC__))
    147 #  include <omp.h>
    148 #  define MAGICKCORE_OPENMP_SUPPORT  1
    149 #endif
    150 
    151 #if defined(MAGICKCORE_HAVE_PREAD) && defined(MAGICKCORE_HAVE_DECL_PREAD) && !MAGICKCORE_HAVE_DECL_PREAD
    152 ssize_t pread(int,void *,size_t,off_t);
    153 #endif
    154 
    155 #if defined(MAGICKCORE_HAVE_PWRITE) && defined(MAGICKCORE_HAVE_DECL_PWRITE) && !MAGICKCORE_HAVE_DECL_PWRITE
    156 ssize_t pwrite(int,const void *,size_t,off_t);
    157 #endif
    158 
    159 #if defined(MAGICKCORE_HAVE_STRLCPY) && defined(MAGICKCORE_HAVE_DECL_STRLCPY) && !MAGICKCORE_HAVE_DECL_STRLCPY
    160 extern size_t strlcpy(char *,const char *,size_t);
    161 #endif
    162 
    163 #if defined(MAGICKCORE_HAVE_VSNPRINTF) && defined(MAGICKCORE_HAVE_DECL_VSNPRINTF) && !MAGICKCORE_HAVE_DECL_VSNPRINTF
    164 extern int vsnprintf(char *,size_t,const char *,va_list);
    165 #endif
    166 
    167 #include "MagickWand/method-attribute.h"
    168 
    169 #if defined(MAGICKWAND_WINDOWS_SUPPORT) || defined(MAGICKWAND_POSIX_SUPPORT)
    170 # include <sys/types.h>
    171 # include <sys/stat.h>
    172 # if defined(MAGICKCORE_HAVE_SYS_TIMEB_H)
    173 # include <sys/timeb.h>
    174 # endif
    175 # if defined(MAGICKWAND_POSIX_SUPPORT)
    176 #  if defined(MAGICKCORE_HAVE_SYS_NDIR_H) || defined(MAGICKCORE_HAVE_SYS_DIR_H) || defined(MAGICKCORE_HAVE_NDIR_H)
    177 #   define dirent direct
    178 #   define NAMLEN(dirent) (dirent)->d_namlen
    179 #   if defined(MAGICKCORE_HAVE_SYS_NDIR_H)
    180 #    include <sys/ndir.h>
    181 #   endif
    182 #   if defined(MAGICKCORE_HAVE_SYS_DIR_H)
    183 #    include <sys/dir.h>
    184 #   endif
    185 #   if defined(MAGICKCORE_HAVE_NDIR_H)
    186 #    include <ndir.h>
    187 #   endif
    188 #  else
    189 #   include <dirent.h>
    190 #   define NAMLEN(dirent) strlen((dirent)->d_name)
    191 #  endif
    192 #  include <sys/wait.h>
    193 #  include <pwd.h>
    194 # endif
    195 # if !defined(S_ISDIR)
    196 #  define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
    197 # endif
    198 # if !defined(S_ISREG)
    199 #  define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG)
    200 # endif
    201 # include "MagickWand/MagickWand.h"
    202 # if !defined(MAGICKWAND_WINDOWS_SUPPORT)
    203 #  include <sys/time.h>
    204 # if defined(MAGICKCORE_HAVE_SYS_TIMES_H)
    205 #  include <sys/times.h>
    206 # endif
    207 # if defined(MAGICKCORE_HAVE_SYS_RESOURCE_H)
    208 #  include <sys/resource.h>
    209 # endif
    210 # if defined(MAGICKCORE_HAVE_SYS_MMAN_H)
    211 #  include <sys/mman.h>
    212 # endif
    213 # if defined(MAGICKCORE_HAVE_SYS_SENDFILE_H)
    214 #  include <sys/sendfile.h>
    215 # endif
    216 #endif
    217 #else
    218 # include <types.h>
    219 # include <stat.h>
    220 # if defined(macintosh)
    221 #  if !defined(DISABLE_SIOUX)
    222 #   include <SIOUX.h>
    223 #   include <console.h>
    224 #  endif
    225 #  include <unix.h>
    226 # endif
    227 #endif
    228 
    229 #if defined(S_IRUSR) && defined(S_IWUSR)
    230 # define S_MODE (S_IRUSR | S_IWUSR)
    231 #elif defined (MAGICKWAND_WINDOWS_SUPPORT)
    232 # define S_MODE (_S_IREAD | _S_IWRITE)
    233 #else
    234 # define S_MODE  0600
    235 #endif
    236 
    237 #if defined(MAGICKWAND_WINDOWS_SUPPORT)
    238 # include "MagickCore/nt-base.h"
    239 #endif
    240 
    241 #undef HAVE_CONFIG_H
    242 #undef gamma
    243 #undef index
    244 #undef pipe
    245 #undef y1
    246 
    247 /*
    248   Review these platform specific definitions.
    249 */
    250 #if defined(MAGICKWAND_POSIX_SUPPORT) && !defined(__OS2__)
    251 # define DirectorySeparator  "/"
    252 # define DirectoryListSeparator  ':'
    253 # define EditorOptions  " -title \"Edit Image Comment\" -e vi"
    254 # define Exit  exit
    255 # define IsBasenameSeparator(c)  ((c) == '/' ? MagickTrue : MagickFalse)
    256 # define X11_PREFERENCES_PATH  "~/."
    257 # define ProcessPendingEvents(text)
    258 # define ReadCommandlLine(argc,argv)
    259 # define SetNotifyHandlers
    260 #else
    261 # if defined(__OS2__)
    262 #   define DirectorySeparator  "\\"
    263 #   define DirectoryListSeparator  ';'
    264 # define EditorOptions  " -title \"Edit Image Comment\" -e vi"
    265 # define Exit  exit
    266 #  define IsBasenameSeparator(c) \
    267   (((c) == '/') || ((c) == '\\') ? MagickTrue : MagickFalse)
    268 # define PreferencesDefaults  "~\."
    269 # define ProcessPendingEvents(text)
    270 # define ReadCommandlLine(argc,argv)
    271 # define SetNotifyHandlers
    272 #endif
    273 # if defined(MAGICKWAND_WINDOWS_SUPPORT)
    274 #  define DirectorySeparator  "\\"
    275 #  define DirectoryListSeparator  ';'
    276 #  define EditorOptions ""
    277 #  define IsBasenameSeparator(c) \
    278   (((c) == '/') || ((c) == '\\') ? MagickTrue : MagickFalse)
    279 #  define ProcessPendingEvents(text)
    280 #  if !defined(X11_PREFERENCES_PATH)
    281 #    define X11_PREFERENCES_PATH  "~\\."
    282 #  endif
    283 #  define ReadCommandlLine(argc,argv)
    284 #  define SetNotifyHandlers \
    285     SetErrorHandler(NTErrorHandler); \
    286     SetWarningHandler(NTWarningHandler)
    287 #  if !defined(MAGICKCORE_HAVE_TIFFCONF_H)
    288 #    define HAVE_TIFFCONF_H
    289 #  endif
    290 # endif
    291 
    292 #endif
    293 
    294 /*
    295   Define system symbols if not already defined.
    296 */
    297 #if !defined(STDIN_FILENO)
    298 #define STDIN_FILENO  0x00
    299 #endif
    300 
    301 #if !defined(O_BINARY)
    302 #define O_BINARY  0x00
    303 #endif
    304 
    305 #if !defined(PATH_MAX)
    306 #define PATH_MAX  4096
    307 #endif
    308 
    309 /*
    310   Magick defines.
    311 */
    312 #if defined(_MSC_VER)
    313 # define DisableMSCWarning(nr) __pragma(warning(push)) \
    314   __pragma(warning(disable:nr))
    315 # define RestoreMSCWarning __pragma(warning(pop))
    316 #else
    317 # define DisableMSCWarning(nr)
    318 # define RestoreMSCWarning
    319 #endif
    320 
    321 #if defined(__cplusplus) || defined(c_plusplus)
    322 }
    323 #endif
    324 
    325 #endif
    326