diff --git a/io.h b/io.h index c27344b7f..dc69eb2e3 100644 --- a/io.h +++ b/io.h @@ -43,6 +43,12 @@ enum ethash_io_rc { ETHASH_IO_MEMO_MATCH, ///< DAG file existed and revision/hash matched. No need to do anything }; +// small hack for windows. I don't feel I should use va_args and forward just +// to have this one function properly cross-platform abstracted +#if defined(_WIN32) +#define snprintf(...) sprintf_s(__VA_ARGS__) +#endif + /** * Prepares io for ethash * diff --git a/io_win32.c b/io_win32.c index 9906c359e..6fdfec28b 100644 --- a/io_win32.c +++ b/io_win32.c @@ -23,6 +23,8 @@ #include #include #include +#include +#include FILE *ethash_fopen(const char *file_name, const char *mode) { diff --git a/mmap.h b/mmap.h index 17f145888..1eed116a9 100644 --- a/mmap.h +++ b/mmap.h @@ -20,8 +20,26 @@ */ #pragma once #if defined(__MINGW32__) || defined(_WIN32) -void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset); +#include + +#define PROT_READ 0x1 +#define PROT_WRITE 0x2 +/* This flag is only available in WinXP+ */ +#ifdef FILE_MAP_EXECUTE +#define PROT_EXEC 0x4 #else +#define PROT_EXEC 0x0 +#define FILE_MAP_EXECUTE 0 +#endif + +#define MAP_SHARED 0x01 +#define MAP_PRIVATE 0x02 +#define MAP_ANONYMOUS 0x20 +#define MAP_ANON MAP_ANONYMOUS +#define MAP_FAILED ((void *) -1) + +void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset); +#else // posix, yay! ^_^ #include #endif diff --git a/mmap_win32.c b/mmap_win32.c index 9a37b6c79..3d2a04133 100644 --- a/mmap_win32.c +++ b/mmap_win32.c @@ -13,25 +13,8 @@ #include #include -#include #include "mmap.h" -#define PROT_READ 0x1 -#define PROT_WRITE 0x2 -/* This flag is only available in WinXP+ */ -#ifdef FILE_MAP_EXECUTE -#define PROT_EXEC 0x4 -#else -#define PROT_EXEC 0x0 -#define FILE_MAP_EXECUTE 0 -#endif - -#define MAP_SHARED 0x01 -#define MAP_PRIVATE 0x02 -#define MAP_ANONYMOUS 0x20 -#define MAP_ANON MAP_ANONYMOUS -#define MAP_FAILED ((void *) -1) - #ifdef __USE_FILE_OFFSET64 # define DWORD_HI(x) (x >> 32) # define DWORD_LO(x) ((x) & 0xffffffff)