factor/vm/os-windows.hpp

55 lines
1.0 KiB
C++
Raw Normal View History

2009-05-02 05:04:19 -04:00
#include <ctype.h>
#ifndef wcslen
/* for cygwin */
#include <wchar.h>
2009-05-02 05:04:19 -04:00
#endif
2009-05-04 02:46:13 -04:00
namespace factor
{
2009-05-02 05:04:19 -04:00
2009-05-04 05:50:24 -04:00
typedef wchar_t vm_char;
2009-05-02 05:04:19 -04:00
#define STRING_LITERAL(string) L##string
#define MAX_UNICODE_PATH 32768
#define VM_C_API extern "C" __declspec(dllexport)
2009-05-02 05:04:19 -04:00
#define SSCANF swscanf
#define STRCMP wcscmp
#define STRNCMP wcsncmp
#define STRDUP _wcsdup
#ifdef _MSC_VER
#define FTELL ftell
#define FSEEK fseek
#define SNPRINTF _snprintf
#define SNWPRINTF _snwprintf
#else
#define FTELL ftello64
#define FSEEK fseeko64
#define SNPRINTF snprintf
#define SNWPRINTF snwprintf
#endif
2009-05-02 05:04:19 -04:00
#ifdef WIN64
2009-05-13 02:08:16 -04:00
#define CELL_HEX_FORMAT "%Ix"
2009-05-02 05:04:19 -04:00
#else
2009-05-13 02:08:16 -04:00
#define CELL_HEX_FORMAT "%lx"
2009-05-02 05:04:19 -04:00
#endif
#define OPEN_READ(path) _wfopen((path),L"rb")
#define OPEN_WRITE(path) _wfopen((path),L"wb")
2009-05-02 05:04:19 -04:00
/* Difference between Jan 1 00:00:00 1601 and Jan 1 00:00:00 1970 */
#define EPOCH_OFFSET 0x019db1ded53e8000LL
2009-05-05 12:33:35 -04:00
inline static void early_init() {}
2009-05-02 05:04:19 -04:00
u64 system_micros();
u64 nano_count();
2009-11-20 05:21:21 -05:00
void sleep_nanos(u64 nsec);
2009-09-26 03:41:01 -04:00
long getpagesize();
void move_file(const vm_char *path1, const vm_char *path2);
2009-05-02 05:04:19 -04:00
2009-05-04 02:46:13 -04:00
}