blob: cb3b32ae119646d669a2f68dc8783cec8652cc7c [file] [log] [blame]
cristy72bdba32011-10-08 00:16:18 +00001/*
cristyb56bb242014-11-25 17:12:48 +00002 Copyright 1999-2015 ImageMagick Studio LLC, a non-profit organization
cristy72bdba32011-10-08 00:16:18 +00003 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
cristy6398ec72013-11-28 02:00:27 +000021#include "MagickCore/delegate.h"
22#include "MagickCore/delegate-private.h"
23#include "MagickCore/exception.h"
24#include "MagickCore/splay-tree.h"
25
cristy72bdba32011-10-08 00:16:18 +000026#if defined(__cplusplus) || defined(c_plusplus)
27extern "C" {
28#endif
29
cristy3a745a22011-10-08 13:17:57 +000030#if defined(MAGICKCORE_WINDOWS_SUPPORT)
31
cristy72bdba32011-10-08 00:16:18 +000032#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
dirk33cccbb2013-11-15 15:06:30 +000047 WIN32_FIND_DATAW
cristy72bdba32011-10-08 00:16:18 +000048 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
cristy277f3a22012-12-10 13:18:45 +000073#if !defined(__MINGW32__) && !defined(__MINGW64__)
cristy72bdba32011-10-08 00:16:18 +000074struct 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
cristydaeba5e2011-10-13 17:32:44 +000097 *NTGetLastError(void);
cristy72bdba32011-10-08 00:16:18 +000098
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),
cristy277f3a22012-12-10 13:18:45 +0000117#if !defined(__MINGW32__) && !defined(__MINGW64__)
cristy72bdba32011-10-08 00:16:18 +0000118 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),
cristy72bdba32011-10-08 00:16:18 +0000130 NTInitializeLibrary(void),
131 NTSetSearchPath(const char *),
132 NTSyncMemory(void *,size_t,int),
133 NTUnmapMemory(void *,size_t),
dirk4dd75672014-10-12 12:52:42 +0000134 NTSystemCommand(const char *,char *);
cristy72bdba32011-10-08 00:16:18 +0000135
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 *),
cristy72bdba32011-10-08 00:16:18 +0000144 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
cristy9f3b4fc2014-02-08 14:56:20 +0000155 NTWindowsGenesis(void),
cristy72bdba32011-10-08 00:16:18 +0000156 *NTGetLibrarySymbol(void *,const char *),
157 *NTMapMemory(char *,size_t,int,int,int,MagickOffsetType),
158 *NTOpenLibrary(const char *),
cristy417d8452011-10-13 17:09:49 +0000159 NTSeekDirectory(DIR *,ssize_t);
cristy72bdba32011-10-08 00:16:18 +0000160
161#endif /* !XS_VERSION */
162
cristy3a745a22011-10-08 13:17:57 +0000163#endif /* MAGICKCORE_WINDOWS_SUPPORT */
164
cristy72bdba32011-10-08 00:16:18 +0000165#if defined(__cplusplus) || defined(c_plusplus)
166}
167#endif /* !C++ */
168
169#endif /* !_MAGICKCORE_NT_BASE_H */