1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
/*
* Copyright (C) 2019-2023 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
#include "shared/source/os_interface/os_memory.h"
#include "shared/source/os_interface/windows/windows_wrapper.h"
namespace NEO {
class OSMemoryWindows : public OSMemory {
public:
OSMemoryWindows() = default;
void getMemoryMaps(MemoryMaps &memoryMaps) override {}
typedef BOOL(WINAPI *VirtualFreeFcn)(LPVOID ptr, SIZE_T size, DWORD flags);
typedef LPVOID(WINAPI *VirtualAllocFcn)(LPVOID inPtr, SIZE_T size, DWORD flags, DWORD type);
protected:
void *osReserveCpuAddressRange(void *baseAddress, size_t sizeToReserve, bool topDownHint) override;
void osReleaseCpuAddressRange(void *reservedCpuAddressRange, size_t reservedSize) override;
MOCKABLE_VIRTUAL LPVOID virtualAllocWrapper(LPVOID, SIZE_T, DWORD, DWORD);
MOCKABLE_VIRTUAL BOOL virtualFreeWrapper(LPVOID, SIZE_T, DWORD);
static VirtualFreeFcn virtualFreeFnc;
static VirtualAllocFcn virtualAllocFnc;
};
}; // namespace NEO
|