nt-base-private.h revision 0bc5220b6c01ee338358de7f19080f1d19d21d58
1/*
2  Copyright 1999-2015 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  MagickCore Windows NT private methods.
17*/
18#ifndef _MAGICKCORE_NT_BASE_PRIVATE_H
19#define _MAGICKCORE_NT_BASE_PRIVATE_H
20
21#include "MagickCore/delegate.h"
22#include "MagickCore/delegate-private.h"
23#include "MagickCore/exception.h"
24#include "MagickCore/splay-tree.h"
25
26#if defined(__cplusplus) || defined(c_plusplus)
27extern "C" {
28#endif
29
30#if defined(MAGICKCORE_WINDOWS_SUPPORT)
31
32#if !defined(XS_VERSION)
33struct dirent
34{
35  char
36    d_name[2048];
37
38  int
39    d_namlen;
40};
41
42typedef struct _DIR
43{
44  HANDLE
45    hSearch;
46
47  WIN32_FIND_DATAW
48    Win32FindData;
49
50  BOOL
51    firsttime;
52
53  struct dirent
54    file_info;
55} DIR;
56
57typedef struct _NTMEMORYSTATUSEX
58{
59  DWORD
60    dwLength,
61    dwMemoryLoad;
62
63  DWORDLONG
64    ullTotalPhys,
65    ullAvailPhys,
66    ullTotalPageFile,
67    ullAvailPageFile,
68    ullTotalVirtual,
69    ullAvailVirtual,
70    ullAvailExtendedVirtual;
71} NTMEMORYSTATUSEX;
72
73#if !defined(__MINGW32__) && !defined(__MINGW64__)
74struct timezone
75{
76  int
77    tz_minuteswest,
78    tz_dsttime;
79};
80#endif
81
82typedef UINT
83  (CALLBACK *LPFNDLLFUNC1)(DWORD,UINT);
84
85typedef UINT
86  (CALLBACK *LPFNDLLFUNC2)(NTMEMORYSTATUSEX *);
87
88#endif
89
90#if defined(MAGICKCORE_BZLIB_DELEGATE)
91#  if defined(_WIN32)
92#    define BZ_IMPORT 1
93#  endif
94#endif
95
96extern MagickPrivate char
97  *NTGetLastError(void);
98
99#if !defined(MAGICKCORE_LTDL_DELEGATE)
100extern MagickPrivate const char
101  *NTGetLibraryError(void);
102#endif
103
104#if !defined(XS_VERSION)
105extern MagickPrivate const char
106  *NTGetLibraryError(void);
107
108extern MagickPrivate DIR
109  *NTOpenDirectory(const char *);
110
111extern MagickPrivate double
112  NTElapsedTime(void),
113  NTUserTime(void);
114
115extern MagickPrivate int
116  Exit(int),
117#if !defined(__MINGW32__) && !defined(__MINGW64__)
118  gettimeofday(struct timeval *,struct timezone *),
119#endif
120  IsWindows95(void),
121  NTCloseDirectory(DIR *),
122  NTCloseLibrary(void *),
123  NTControlHandler(void),
124  NTExitLibrary(void),
125  NTTruncateFile(int,off_t),
126  NTGhostscriptDLL(char *,int),
127  NTGhostscriptEXE(char *,int),
128  NTGhostscriptFonts(char *,int),
129  NTGhostscriptLoadDLL(void),
130  NTInitializeLibrary(void),
131  NTSetSearchPath(const char *),
132  NTSyncMemory(void *,size_t,int),
133  NTUnmapMemory(void *,size_t),
134  NTSystemCommand(const char *,char *);
135
136extern MagickPrivate ssize_t
137  NTSystemConfiguration(int),
138  NTTellDirectory(DIR *);
139
140extern MagickPrivate MagickBooleanType
141  NTGatherRandomData(const size_t,unsigned char *),
142  NTGetExecutionPath(char *,const size_t),
143  NTGetModulePath(const char *,char *),
144  NTReportEvent(const char *,const MagickBooleanType),
145  NTReportException(const char *,const MagickBooleanType);
146
147extern MagickPrivate struct dirent
148  *NTReadDirectory(DIR *);
149
150extern MagickPrivate unsigned char
151  *NTRegistryKeyLookup(const char *),
152  *NTResourceToBlob(const char *);
153
154extern MagickPrivate void
155  *NTGetLibrarySymbol(void *,const char *),
156  NTInitializeWinsock(MagickBooleanType),
157  *NTMapMemory(char *,size_t,int,int,int,MagickOffsetType),
158  *NTOpenLibrary(const char *),
159  NTSeekDirectory(DIR *,ssize_t),
160  NTWindowsGenesis(void),
161  NTWindowsTerminus(void);
162
163#endif /* !XS_VERSION */
164
165#endif /* MAGICKCORE_WINDOWS_SUPPORT */
166
167#if defined(__cplusplus) || defined(c_plusplus)
168}
169#endif /* !C++ */
170
171#endif /* !_MAGICKCORE_NT_BASE_H */
172