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