18#ifndef _WIZARDSTOOLKIT_NTBASE_H
19#define _WIZARDSTOOLKIT_NTBASE_H
23#if defined(__cplusplus) || defined(c_plusplus)
27#if defined(WIZARDSTOOLKIT_WINDOWS_SUPPORT)
29#define WIN32_LEAN_AND_MEAN
43#if defined(__cplusplus) || defined(c_plusplus)
48#define PROT_WRITE 0x02
49#define MAP_SHARED 0x01
50#define MAP_PRIVATE 0x02
51#define MAP_ANONYMOUS 0x20
57#define _SC_PHYS_PAGES 2
59#if !defined(SSIZE_MAX)
60#define SSIZE_MAX 0x7fffffffL
74# if defined(__BORLANDC__)
75# define chsize(file,length) chsize(file,length)
77# define chsize(file,length) _chsize(file,length)
82#if defined(_VISUALC_) && (_MSC_VER >= 1400)
83# define access(path,mode) _access_s(path,mode)
93# define closedir(directory) NTCloseDirectory(directory)
96# define fdopen _fdopen
99# define fileno _fileno
101#if !defined(freelocale)
102# define freelocale _free_locale
104#if !defined(fseek) && !defined(__MINGW32__) && !defined(__MINGW64__)
105#if defined(WIZARDSTOOLKIT_WINDOWS_SUPPORT) && !defined(Windows95) && \
106 !(defined(_MSC_VER) && (_MSC_VER < 1400)) && \
107 !(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800))
108# define fseek _fseeki64
111#if !defined(fstat) && !defined(__BORLANDC__)
112#if defined(WIZARDSTOOLKIT_WINDOWS_SUPPORT) && !defined(Windows95) && \
113 !(defined(_MSC_VER) && (_MSC_VER < 1400)) && \
114 !(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800))
115# define fstat _fstati64
121# define fsync _commit
123#if !defined(ftell) && !defined(__MINGW32__) && !defined(__MINGW64__)
124#if defined(WIZARDSTOOLKIT_WINDOWS_SUPPORT) && !defined(Windows95) && \
125 !(defined(_MSC_VER) && (_MSC_VER < 1400)) && \
126 !(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800))
127# define ftell _ftelli64
130#if !defined(ftruncate)
131# define ftruncate(file,length) NTTruncateFile(file,length)
134# define getcwd _getcwd
137# define getpid _getpid
143# define inline __inline
146# define isatty _isatty
148#if !defined(locale_t)
149#define locale_t _locale_t
151#if defined(WIZARDSTOOLKIT_WINDOWS_SUPPORT) && !defined(Windows95) && \
152 !(defined(_MSC_VER) && (_MSC_VER < 1400)) && \
153 !(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800))
155# define lseek _lseeki64
162#if !defined(WIZARDSTOOLKIT_LTDL_DELEGATE)
163#if !defined(lt_dlclose)
164# define lt_dlclose(handle) NTCloseLibrary(handle)
166#if !defined(lt_dlerror)
167# define lt_dlerror() NTGetLibraryError()
169#if !defined(lt_dlexit)
170# define lt_dlexit() NTExitLibrary()
172#if !defined(lt_dlinit)
173# define lt_dlinit() NTInitializeLibrary()
175#if !defined(lt_dlopen)
176# define lt_dlopen(filename) NTOpenLibrary(filename)
178#if !defined(lt_dlsetsearchpath)
179# define lt_dlsetsearchpath(path) NTSetSearchPath(path)
181#if !defined(lt_dlsym)
182# define lt_dlsym(handle,name) NTGetLibrarySymbol(handle,name)
189# define mmap(address,length,protection,access,file,offset) \
190 NTMapMemory(address,length,protection,access,file,offset)
193# define msync(address,length,flags) NTSyncMemory(address,length,flags)
196# define munmap(address,length) NTUnmapMemory(address,length)
199# define opendir(directory) NTOpenDirectory(directory)
205# define pclose _pclose
210#if !defined(fprintf_l)
211#define fprintf_l _fprintf_s_l
217# define readdir(directory) NTReadDirectory(directory)
220# define seekdir(directory,offset) NTSeekDirectory(directory,offset)
223# define setmode _setmode
226# define spawnvp _spawnvp
228#if !defined(stat) && !defined(__BORLANDC__)
229#if defined(WIZARDSTOOLKIT_WINDOWS_SUPPORT) && !defined(Windows95) && \
230 !(defined(_MSC_VER) && (_MSC_VER < 1400)) && \
231 !(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800))
232# define stat _stati64
237#if !defined(strcasecmp)
238# define strcasecmp _stricmp
240#if !defined(strncasecmp)
241# define strncasecmp _strnicmp
243#if !defined(strtod_l)
244#define strtod_l _strtod_l
247# define sysconf(name) NTSystemConfiguration(name)
249#if defined(WIZARDSTOOLKIT_WINDOWS_SUPPORT) && !defined(Windows95) && \
250 !(defined(_MSC_VER) && (_MSC_VER < 1400)) && \
251 !(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800))
252# define tell _telli64
257# define telldir(directory) NTTellDirectory(directory)
260# define tempnam _tempnam_s
262#if !defined(vfprintf_l)
263#define vfprintf_l _vfprintf_l
265#if !defined(_MSC_VER) || (defined(_MSC_VER) && _MSC_VER < 1500)
266#define vsnprintf _vsnprintf
268#if !defined(vsnprintf_l)
269#define vsnprintf_l _vsnprintf_l
274#if !defined(wstat) && !defined(__BORLANDC__)
275#if defined(WIZARDSTOOLKIT_WINDOWS_SUPPORT) && !defined(Windows95) && \
276 !(defined(_MSC_VER) && (_MSC_VER < 1400)) && \
277 !(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800))
278# define wstat _wstati64
284#if defined(_MT) && defined(WIZARDSTOOLKIT_WINDOWS_SUPPORT)
285# define SAFE_GLOBAL __declspec(thread)
290#if defined(__BORLANDC__)
294#define _O_SEQUENTIAL 0
296#define _O_SHORT_LIVED 0
298#define _O_TEMPORARY 0
301#if !defined(XS_VERSION)
326typedef struct _NTMEMORYSTATUSEX
339 ullAvailExtendedVirtual;
342#if !defined(__MINGW32__) && !defined(__MINGW64__)
350typedef _locale_t locale_t;
354 (CALLBACK *LPFNDLLFUNC1)(DWORD,UINT);
357 (CALLBACK *LPFNDLLFUNC2)(NTMEMORYSTATUSEX *);
361#if defined(WIZARDSTOOLKIT_BZLIB_DELEGATE)
368 *NTGetLastError(
void);
370#if !defined(WIZARDSTOOLKIT_LTDL_DELEGATE)
372 *NTGetLibraryError(
void);
376 **NTArgvToUTF8(
const int argc,
wchar_t **),
377 *NTRegistryKeyLookup(
const char *);
380 *NTOpenDirectory(
const char *);
388#if !defined(__MINGW32__) && !defined(__MINGW64__)
389 gettimeofday(
struct timeval *,
struct timezone *),
392 NTCloseDirectory(DIR *),
393 NTCloseLibrary(
void *),
394 NTControlHandler(
void),
396 NTInitializeLibrary(
void),
397 NTSetSearchPath(
const char *),
398 NTSyncMemory(
void *,
size_t,
int),
399 NTUnmapMemory(
void *,
size_t),
400 NTSystemCommand(
const char *);
403 NTSystemConfiguration(
int),
404 NTTellDirectory(DIR *);
407 NTGetExecutionPath(
char *,
const size_t),
408 NTGetModulePath(
const char *,
char *),
409 NTGatherRandomData(
const size_t,
unsigned char *),
414 *NTReadDirectory(DIR *);
417 *NTResourceToBlob(
const char *);
420 NTErrorHandler(
const ExceptionType,
const char *,
const char *),
421 *NTGetLibrarySymbol(
void *,
const char *),
423 *NTOpenLibrary(
const char *),
424 NTSeekDirectory(DIR *,ssize_t),
425 NTWarningHandler(
const ExceptionType,
const char *,
const char *);
428#if defined(__cplusplus) || defined(c_plusplus)