mirror of
https://github.com/KytyPS5/KytyPS5.git
synced 2026-10-20 02:47:02 +02:00
c7b0d77970
Co-authored-by: Ali Almohaya <AliAlmohaya@gmail.com>
46 lines
1.5 KiB
C++
46 lines
1.5 KiB
C++
#include "common/common.h"
|
|
|
|
// IWYU pragma: no_include <basetsd.h>
|
|
// IWYU pragma: no_include <memoryapi.h>
|
|
// IWYU pragma: no_include <minwindef.h>
|
|
// IWYU pragma: no_include <processthreadsapi.h>
|
|
// IWYU pragma: no_include <winbase.h>
|
|
|
|
#if KYTY_PLATFORM != KYTY_PLATFORM_WINDOWS
|
|
// #error "KYTY_PLATFORM != KYTY_PLATFORM_WINDOWS"
|
|
#else
|
|
|
|
#include <windows.h> // IWYU pragma: keep
|
|
|
|
#include "common/assert.h"
|
|
#include "common/platform/sysDbg.h"
|
|
|
|
void SysStackUsage(sys_dbg_stack_info_t& s) {
|
|
MEMORY_BASIC_INFORMATION mbi {};
|
|
[[maybe_unused]] size_t ss = VirtualQuery(&mbi, &mbi, sizeof(mbi));
|
|
EXIT_IF(ss == 0);
|
|
PVOID reserved = mbi.AllocationBase;
|
|
ss = VirtualQuery(reserved, &mbi, sizeof(mbi));
|
|
EXIT_IF(ss == 0);
|
|
size_t reserved_size = mbi.RegionSize;
|
|
ss = VirtualQuery(static_cast<char*>(reserved) + reserved_size, &mbi, sizeof(mbi));
|
|
EXIT_IF(ss == 0);
|
|
void* guard_page = mbi.BaseAddress;
|
|
size_t guard_page_size = mbi.RegionSize;
|
|
ss = VirtualQuery(static_cast<char*>(guard_page) + guard_page_size, &mbi, sizeof(mbi));
|
|
EXIT_IF(ss == 0);
|
|
void* commited = mbi.BaseAddress;
|
|
size_t commited_size = mbi.RegionSize;
|
|
s.reserved_addr = reinterpret_cast<uintptr_t>(reserved);
|
|
s.reserved_size = reserved_size;
|
|
s.guard_addr = reinterpret_cast<uintptr_t>(guard_page);
|
|
s.guard_size = guard_page_size;
|
|
s.commited_addr = reinterpret_cast<uintptr_t>(commited);
|
|
s.commited_size = commited_size;
|
|
|
|
s.addr = s.reserved_addr;
|
|
s.total_size = s.reserved_size + s.guard_size + s.commited_size;
|
|
}
|
|
|
|
#endif
|