MagickCore  6.9.10
Convert, Edit, Or Compose Bitmap Images
nt-base.h
Go to the documentation of this file.
1 /*
2  Copyright 1999-2020 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. You may
6  obtain a copy of the License at
7 
8  https://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  MagickCore Windows NT utility methods.
17 */
18 #ifndef MAGICKCORE_NT_BASE_H
19 #define MAGICKCORE_NT_BASE_H
20 
21 #include "magick/exception.h"
22 #include "magick/geometry.h"
23 
24 #if defined(__cplusplus) || defined(c_plusplus)
25 extern "C" {
26 #endif
27 
28 #if defined(MAGICKCORE_WINDOWS_SUPPORT)
29 
30 #define WIN32_LEAN_AND_MEAN
31 #define VC_EXTRALEAN
32 #define _CRT_SECURE_NO_DEPRECATE 1
33 #include <windows.h>
34 #include <wchar.h>
35 #include <winuser.h>
36 #include <wingdi.h>
37 #include <io.h>
38 #include <process.h>
39 #include <errno.h>
40 #include <malloc.h>
41 #include <sys/utime.h>
42 #if defined(_DEBUG) && !defined(__MINGW32__)
43 #include <crtdbg.h>
44 #endif
45 
46 #define PROT_READ 0x01
47 #define PROT_WRITE 0x02
48 #define MAP_SHARED 0x01
49 #define MAP_PRIVATE 0x02
50 #define MAP_ANONYMOUS 0x20
51 #define F_OK 0
52 #define R_OK 4
53 #define W_OK 2
54 #define RW_OK 6
55 #define _SC_PAGESIZE 1
56 #define _SC_PHYS_PAGES 2
57 #define _SC_OPEN_MAX 3
58 #if !defined(SSIZE_MAX)
59 #define SSIZE_MAX 0x7fffffffL
60 #endif
61 
62 /*
63  _MSC_VER values:
64  1100 MSVC 5.0
65  1200 MSVC 6.0
66  1300 MSVC 7.0 Visual C++ .NET 2002
67  1310 Visual c++ .NET 2003
68  1400 Visual C++ 2005
69  1500 Visual C++ 2008
70  1600 Visual C++ 2010
71  1700 Visual C++ 2012
72  1800 Visual C++ 2013
73  1900 Visual C++ 2015
74 */
75 
76 #if !defined(chsize)
77 # if defined(__BORLANDC__)
78 # define chsize(file,length) chsize(file,length)
79 # else
80 # define chsize(file,length) _chsize(file,length)
81 # endif
82 #endif
83 
84 #if !defined(access)
85 #if defined(_VISUALC_) && (_MSC_VER >= 1400)
86 # define access(path,mode) _access_s(path,mode)
87 #endif
88 #endif
89 #if !defined(chdir)
90 # define chdir _chdir
91 #endif
92 #if !defined(close)
93 # define close _close
94 #endif
95 #if !defined(closedir)
96 # define closedir(directory) NTCloseDirectory(directory)
97 #endif
98 #if !defined(fdopen)
99 # define fdopen _fdopen
100 #endif
101 #if !defined(fileno)
102 # define fileno _fileno
103 #endif
104 #if !defined(freelocale)
105 # define freelocale _free_locale
106 #endif
107 #if !defined(fseek) && !defined(__MINGW32__)
108 #if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(Windows95) && \
109  !(defined(_MSC_VER) && (_MSC_VER < 1400)) && \
110  !(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800))
111 # define fseek _fseeki64
112 #endif
113 #endif
114 #if !defined(fstat) && !defined(__BORLANDC__)
115 #if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(Windows95) && \
116  !(defined(_MSC_VER) && (_MSC_VER < 1400)) && \
117  !(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800))
118 # define fstat _fstati64
119 #else
120 # define fstat _fstat
121 #endif
122 #endif
123 #if !defined(fsync)
124 # define fsync _commit
125 #endif
126 #if !defined(ftell) && !defined(__MINGW32__)
127 #if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(Windows95) && \
128  !(defined(_MSC_VER) && (_MSC_VER < 1400)) && \
129  !(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800))
130 # define ftell _ftelli64
131 #endif
132 #endif
133 #if !defined(ftruncate)
134 # define ftruncate(file,length) NTTruncateFile(file,length)
135 #endif
136 #if !defined(getcwd)
137 # define getcwd _getcwd
138 #endif
139 #if !defined(getpid)
140 # define getpid _getpid
141 #endif
142 #if !defined(hypot)
143 # define hypot _hypot
144 #endif
145 #if !defined(inline)
146 # define inline __inline
147 #endif
148 #if !defined(isatty)
149 # define isatty _isatty
150 #endif
151 #if !defined(locale_t)
152 #define locale_t _locale_t
153 #endif
154 #if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(Windows95) && \
155  !(defined(_MSC_VER) && (_MSC_VER < 1400)) && \
156  !(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800))
157 #if !defined(lseek)
158 # define lseek _lseeki64
159 #endif
160 #else
161 #if !defined(lseek)
162 # define lseek _lseek
163 #endif
164 #endif
165 #if !defined(MAGICKCORE_LTDL_DELEGATE)
166 #if !defined(lt_dlclose)
167 # define lt_dlclose(handle) NTCloseLibrary(handle)
168 #endif
169 #if !defined(lt_dlerror)
170 # define lt_dlerror() NTGetLibraryError()
171 #endif
172 #if !defined(lt_dlexit)
173 # define lt_dlexit() NTExitLibrary()
174 #endif
175 #if !defined(lt_dlinit)
176 # define lt_dlinit() NTInitializeLibrary()
177 #endif
178 #if !defined(lt_dlopen)
179 # define lt_dlopen(filename) NTOpenLibrary(filename)
180 #endif
181 #if !defined(lt_dlsetsearchpath)
182 # define lt_dlsetsearchpath(path) NTSetSearchPath(path)
183 #endif
184 #if !defined(lt_dlsym)
185 # define lt_dlsym(handle,name) NTGetLibrarySymbol(handle,name)
186 #endif
187 #endif
188 #if !defined(mkdir)
189 # define mkdir _mkdir
190 #endif
191 #if !defined(mmap)
192 # define mmap(address,length,protection,access,file,offset) \
193  NTMapMemory(address,length,protection,access,file,offset)
194 #endif
195 #if !defined(msync)
196 # define msync(address,length,flags) NTSyncMemory(address,length,flags)
197 #endif
198 #if !defined(munmap)
199 # define munmap(address,length) NTUnmapMemory(address,length)
200 #endif
201 #if !defined(opendir)
202 # define opendir(directory) NTOpenDirectory(directory)
203 #endif
204 #if !defined(open)
205 # define open _open
206 #endif
207 #if !defined(pclose)
208 # define pclose _pclose
209 #endif
210 #if !defined(popen)
211 # define popen _popen
212 #endif
213 #if !defined(fprintf_l)
214 #define fprintf_l _fprintf_s_l
215 #endif
216 #if !defined(read)
217 # define read(fd,buffer,count) _read(fd,buffer,(unsigned int) count)
218 #endif
219 #if !defined(readdir)
220 # define readdir(directory) NTReadDirectory(directory)
221 #endif
222 #if !defined(seekdir)
223 # define seekdir(directory,offset) NTSeekDirectory(directory,offset)
224 #endif
225 #if !defined(setmode)
226 # define setmode _setmode
227 #endif
228 #if !defined(spawnvp)
229 # define spawnvp _spawnvp
230 #endif
231 #if !defined(strtod_l)
232 #define strtod_l _strtod_l
233 #endif
234 #if !defined(stat) && !defined(__BORLANDC__)
235 #if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(Windows95) && \
236  !(defined(_MSC_VER) && (_MSC_VER < 1400)) && \
237  !(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800))
238 # define stat _stati64
239 #else
240 # define stat _stat
241 #endif
242 #endif
243 #if !defined(strcasecmp)
244 # define strcasecmp _stricmp
245 #endif
246 #if !defined(strncasecmp)
247 # define strncasecmp _strnicmp
248 #endif
249 #if !defined(sysconf)
250 # define sysconf(name) NTSystemConfiguration(name)
251 #endif
252 #if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(Windows95) && \
253  !(defined(_MSC_VER) && (_MSC_VER < 1400)) && \
254  !(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800))
255 # define tell _telli64
256 #else
257 # define tell _tell
258 #endif
259 #if !defined(telldir)
260 # define telldir(directory) NTTellDirectory(directory)
261 #endif
262 #if !defined(tempnam)
263 # define tempnam _tempnam_s
264 #endif
265 #if !defined(tolower_l)
266 #define tolower_l _tolower_l
267 #endif
268 #if !defined(toupper_l)
269 #define toupper_l _toupper_l
270 #endif
271 #if !defined(umask)
272 # define umask _umask
273 #endif
274 #if !defined(unlink)
275 # define unlink _unlink
276 #endif
277 #if !defined(utime)
278 # define utime _utime
279 #endif
280 #if !defined(vfprintf_l)
281 #define vfprintf_l _vfprintf_l
282 #endif
283 #if !defined(vsnprintf)
284 #if !defined(_MSC_VER) || (defined(_MSC_VER) && _MSC_VER < 1500)
285 #define vsnprintf _vsnprintf
286 #endif
287 #endif
288 #if !defined(vsnprintf_l)
289 #define vsnprintf_l _vsnprintf_l
290 #endif
291 #if !defined(write)
292 # define write(fd,buffer,count) _write(fd,buffer,(unsigned int) count)
293 #endif
294 #if !defined(wstat) && !defined(__BORLANDC__)
295 #if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(Windows95) && \
296  !(defined(_MSC_VER) && (_MSC_VER < 1400)) && \
297  !(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800))
298 # define wstat _wstati64
299 #else
300 # define wstat _wstat
301 #endif
302 #endif
303 
304 #if defined(__BORLANDC__)
305 #undef _O_RANDOM
306 #define _O_RANDOM 0
307 #undef _O_SEQUENTIAL
308 #define _O_SEQUENTIAL 0
309 #undef _O_SHORT_LIVED
310 #define _O_SHORT_LIVED 0
311 #undef _O_TEMPORARY
312 #define _O_TEMPORARY 0
313 #endif
314 
315 #undef gettimeofday
316 
317 typedef struct _GhostInfo
318  GhostInfo_;
319 
320 extern MagickExport char
321  **NTArgvToUTF8(const int argc,wchar_t **);
322 
323 extern MagickExport const GhostInfo_
324  *NTGhostscriptDLLVectors(void);
325 
326 extern MagickExport int
327  NTGhostscriptUnLoadDLL(void);
328 
329 extern MagickExport void
330  NTErrorHandler(const ExceptionType,const char *,const char *),
331  NTWarningHandler(const ExceptionType,const char *,const char *);
332 
333 #endif
334 
335 #if defined(__cplusplus) || defined(c_plusplus)
336 }
337 #endif
338 
339 #endif
ExceptionType
Definition: exception.h:28
Definition: delegate-private.h:52
#define MagickExport
Definition: method-attribute.h:80