mirror of
https://github.com/BertoldVdb/ZoneDetect.git
synced 2026-04-27 14:57:40 +00:00
Support non-Posix toolchain
This commit is contained in:
parent
05567e3675
commit
880f563d17
1 changed files with 12 additions and 6 deletions
|
|
@ -34,7 +34,7 @@
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#if defined(_MSC_VER) || defined(__MINGW32__)
|
#if defined(_MSC_VER) || defined(__MINGW32__)
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#else
|
#elif defined(__APPLE__) || defined(__linux__) || defined(__unix__) || defined(_POSIX_VERSION)
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
|
@ -64,9 +64,11 @@ struct ZoneDetectOpaque {
|
||||||
HANDLE fdMap;
|
HANDLE fdMap;
|
||||||
int32_t length;
|
int32_t length;
|
||||||
int32_t padding;
|
int32_t padding;
|
||||||
#else
|
#elif defined(__APPLE__) || defined(__linux__) || defined(__unix__) || defined(_POSIX_VERSION)
|
||||||
int fd;
|
int fd;
|
||||||
off_t length;
|
off_t length;
|
||||||
|
#else
|
||||||
|
int length;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
uint8_t closeType;
|
uint8_t closeType;
|
||||||
|
|
@ -793,9 +795,9 @@ void ZDCloseDatabase(ZoneDetect *library)
|
||||||
if(library->mapping && !UnmapViewOfFile(library->mapping)) zdError(ZD_E_DB_MUNMAP_MSVIEW, (int)GetLastError());
|
if(library->mapping && !UnmapViewOfFile(library->mapping)) zdError(ZD_E_DB_MUNMAP_MSVIEW, (int)GetLastError());
|
||||||
if(library->fdMap && !CloseHandle(library->fdMap)) zdError(ZD_E_DB_MUNMAP, (int)GetLastError());
|
if(library->fdMap && !CloseHandle(library->fdMap)) zdError(ZD_E_DB_MUNMAP, (int)GetLastError());
|
||||||
if(library->fd && !CloseHandle(library->fd)) zdError(ZD_E_DB_CLOSE, (int)GetLastError());
|
if(library->fd && !CloseHandle(library->fd)) zdError(ZD_E_DB_CLOSE, (int)GetLastError());
|
||||||
#else
|
#elif defined(__APPLE__) || defined(__linux__) || defined(__unix__) || defined(_POSIX_VERSION)
|
||||||
if(library->mapping && munmap(library->mapping, (size_t)(library->length))) zdError(ZD_E_DB_MUNMAP, errno);
|
if(library->mapping && munmap(library->mapping, (size_t)(library->length))) zdError(ZD_E_DB_MUNMAP, 0);
|
||||||
if(library->fd >= 0 && close(library->fd)) zdError(ZD_E_DB_CLOSE, errno);
|
if(library->fd >= 0 && close(library->fd)) zdError(ZD_E_DB_CLOSE, 0);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -813,7 +815,11 @@ ZoneDetect *ZDOpenDatabaseFromMemory(void* buffer, size_t length)
|
||||||
library->length = (long int)length;
|
library->length = (long int)length;
|
||||||
|
|
||||||
if(library->length <= 0) {
|
if(library->length <= 0) {
|
||||||
|
#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__APPLE__) || defined(__linux__) || defined(__unix__) || defined(_POSIX_VERSION)
|
||||||
zdError(ZD_E_DB_SEEK, errno);
|
zdError(ZD_E_DB_SEEK, errno);
|
||||||
|
#else
|
||||||
|
zdError(ZD_E_DB_SEEK, 0);
|
||||||
|
#endif
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -865,7 +871,7 @@ ZoneDetect *ZDOpenDatabase(const char *path)
|
||||||
zdError(ZD_E_DB_MMAP_MSVIEW, (int)GetLastError());
|
zdError(ZD_E_DB_MMAP_MSVIEW, (int)GetLastError());
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
#else
|
#elif defined(__APPLE__) || defined(__linux__) || defined(__unix__) || defined(_POSIX_VERSION)
|
||||||
library->fd = open(path, O_RDONLY | O_CLOEXEC);
|
library->fd = open(path, O_RDONLY | O_CLOEXEC);
|
||||||
if(library->fd < 0) {
|
if(library->fd < 0) {
|
||||||
zdError(ZD_E_DB_OPEN, errno);
|
zdError(ZD_E_DB_OPEN, errno);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue