From 792ddeb80dc9ec38fa1531160dcbbd119a67751e Mon Sep 17 00:00:00 2001 From: rhuibertsjr Date: Thu, 25 Apr 2024 19:33:44 +0200 Subject: [PATCH] Added: Win32 platform layer --- src/win32_platform.c | 34 ++++++++++++++++++++++++++++++++++ src/win32_platform.h | 17 +++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 src/win32_platform.c create mode 100644 src/win32_platform.h diff --git a/src/win32_platform.c b/src/win32_platform.c new file mode 100644 index 0000000..bf0f9eb --- /dev/null +++ b/src/win32_platform.c @@ -0,0 +1,34 @@ + +internal void * +platform_memory_reserve(u64 size) +{ + void *result = VirtualAlloc(0, size, MEM_RESERVE, PAGE_READWRITE); + return result; +} + +internal b8 +platform_memory_commit(void *ptr, u64 size) +{ + b32 result = (VirtualAlloc(ptr, size, MEM_COMMIT, PAGE_READWRITE) != 0); + return result; +} + +internal void +platform_memory_decommit(void *ptr, u64 size) +{ + VirtualFree(ptr, size, MEM_DECOMMIT); +}; + +internal void +platform_memory_release(void *ptr, u64 size) +{ + VirtualFree(ptr, 0, MEM_RELEASE); +} + +internal u64 +platform_get_page_size(void) +{ + SYSTEM_INFO sysinfo = {0}; + GetSystemInfo(&sysinfo); + return sysinfo.dwPageSize; +} diff --git a/src/win32_platform.h b/src/win32_platform.h new file mode 100644 index 0000000..63e279a --- /dev/null +++ b/src/win32_platform.h @@ -0,0 +1,17 @@ +#ifndef WIN32_PLATFORM_H +#define WIN32_PLATFORM_H + +#undef internal +#include +#define internal static + +//= rhjr: platform memory management + +internal void * platform_memory_reserve(u64 size); +internal b8 platform_memory_commit(void *ptr, u64 size); +internal void platform_memory_decommit(void *ptr, u64 size); +internal void platform_memory_release(void *ptr, u64 size); + +internal u64 platform_get_page_size(void); + +#endif // WIN32_PLATFORM_H