util/HugeAllocator: implement on Windows
This commit is contained in:
parent
43f964e28d
commit
c597538b40
@ -63,6 +63,28 @@ HugeFree(void *p, size_t size);
|
|||||||
void
|
void
|
||||||
HugeDiscard(void *p, size_t size);
|
HugeDiscard(void *p, size_t size);
|
||||||
|
|
||||||
|
#elif defined(WIN32)
|
||||||
|
#include <windows.h>
|
||||||
|
|
||||||
|
gcc_malloc
|
||||||
|
static inline void *
|
||||||
|
HugeAllocate(size_t size)
|
||||||
|
{
|
||||||
|
return VirtualAlloc(nullptr, size, MEM_LARGE_PAGES, PAGE_READWRITE);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
HugeFree(void *p, gcc_unused size_t size)
|
||||||
|
{
|
||||||
|
VirtualFree(p, 0, MEM_RELEASE);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
HugeDiscard(void *p, size_t size)
|
||||||
|
{
|
||||||
|
VirtualAlloc(p, size, MEM_RESET, PAGE_NOACCESS);
|
||||||
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
/* not Linux: fall back to standard C calls */
|
/* not Linux: fall back to standard C calls */
|
||||||
|
Loading…
Reference in New Issue
Block a user