1 /* 2 Copyright 1999-2019 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 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) 27 extern "C" { 28 #endif 29 30 #if defined(MAGICKCORE_WINDOWS_SUPPORT) 31 32 #if !defined(XS_VERSION) 33 struct dirent 34 { 35 char 36 d_name[2048]; 37 38 int 39 d_namlen; 40 }; 41 42 typedef 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 57 typedef 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__) 74 struct timeval; 75 76 struct timezone 77 { 78 int 79 tz_minuteswest, 80 tz_dsttime; 81 }; 82 #endif 83 84 typedef UINT 85 (CALLBACK *LPFNDLLFUNC1)(DWORD,UINT); 86 87 typedef UINT 88 (CALLBACK *LPFNDLLFUNC2)(NTMEMORYSTATUSEX *); 89 90 #endif 91 92 #if defined(MAGICKCORE_BZLIB_DELEGATE) 93 # if defined(_WIN32) 94 # define BZ_IMPORT 1 95 # endif 96 #endif 97 98 extern MagickPrivate char 99 *NTGetLastError(void); 100 101 #if !defined(MAGICKCORE_LTDL_DELEGATE) 102 extern MagickPrivate const char 103 *NTGetLibraryError(void); 104 #endif 105 106 #if !defined(XS_VERSION) 107 extern MagickPrivate const char 108 *NTGetLibraryError(void); 109 110 extern MagickPrivate DIR 111 *NTOpenDirectory(const char *); 112 113 extern MagickPrivate double 114 NTElapsedTime(void), 115 NTErf(double), 116 NTUserTime(void); 117 118 extern MagickPrivate int 119 Exit(int), 120 #if !defined(__MINGW32__) 121 gettimeofday(struct timeval *,struct timezone *), 122 #endif 123 IsWindows95(void), 124 NTCloseDirectory(DIR *), 125 NTCloseLibrary(void *), 126 NTControlHandler(void), 127 NTExitLibrary(void), 128 NTTruncateFile(int,off_t), 129 NTGhostscriptDLL(char *,int), 130 NTGhostscriptEXE(char *,int), 131 NTGhostscriptFonts(char *,int), 132 NTGhostscriptLoadDLL(void), 133 NTInitializeLibrary(void), 134 NTSetSearchPath(const char *), 135 NTSyncMemory(void *,size_t,int), 136 NTUnmapMemory(void *,size_t), 137 NTSystemCommand(const char *,char *); 138 139 extern MagickPrivate ssize_t 140 NTGetPageSize(void), 141 NTSystemConfiguration(int), 142 NTTellDirectory(DIR *); 143 144 extern MagickPrivate MagickBooleanType 145 NTGatherRandomData(const size_t,unsigned char *), 146 NTGetExecutionPath(char *,const size_t), 147 NTGetModulePath(const char *,char *), 148 NTReportEvent(const char *,const MagickBooleanType); 149 150 extern MagickPrivate struct dirent 151 *NTReadDirectory(DIR *); 152 153 extern MagickPrivate unsigned char 154 *NTRegistryKeyLookup(const char *), 155 *NTResourceToBlob(const char *); 156 157 extern MagickPrivate void 158 *NTGetLibrarySymbol(void *,const char *), 159 NTInitializeWinsock(MagickBooleanType), 160 *NTMapMemory(char *,size_t,int,int,int,MagickOffsetType), 161 *NTOpenLibrary(const char *), 162 NTSeekDirectory(DIR *,ssize_t), 163 NTWindowsGenesis(void), 164 NTWindowsTerminus(void); 165 166 #endif /* !XS_VERSION */ 167 168 #endif /* MAGICKCORE_WINDOWS_SUPPORT */ 169 170 #if defined(__cplusplus) || defined(c_plusplus) 171 } 172 #endif /* !C++ */ 173 174 #endif /* !MAGICKCORE_NT_BASE_H */ 175