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