Home | History | Annotate | Download | only in MagickCore
      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