/* * Copyright (C) 2017-2019 Intel Corporation * * SPDX-License-Identifier: MIT * */ #pragma once #include "runtime/gmm_helper/gmm_lib.h" #include "runtime/os_interface/windows/os_time_win.h" #include #include #include "Windows.h" #include "umKmInc/sharedata.h" #include #include #define DECL_FUNCTIONS() \ FUNCTION(OpenAdapterFromHdc, IN OUT D3DKMT_OPENADAPTERFROMHDC *) \ FUNCTION(DestroyAllocation, IN CONST D3DKMT_DESTROYALLOCATION *) \ FUNCTION(CloseAdapter, IN CONST D3DKMT_CLOSEADAPTER *) \ FUNCTION(Lock, IN OUT D3DKMT_LOCK *) \ FUNCTION(Unlock, IN CONST D3DKMT_UNLOCK *) \ FUNCTION(Render, IN OUT D3DKMT_RENDER *) \ FUNCTION(CreateSynchronizationObject, IN OUT D3DKMT_CREATESYNCHRONIZATIONOBJECT *) \ FUNCTION(DestroySynchronizationObject, IN CONST D3DKMT_DESTROYSYNCHRONIZATIONOBJECT *) \ FUNCTION(SignalSynchronizationObject, IN CONST D3DKMT_SIGNALSYNCHRONIZATIONOBJECT *) \ FUNCTION(WaitForSynchronizationObject, IN OUT CONST D3DKMT_WAITFORSYNCHRONIZATIONOBJECT *) \ FUNCTION(WaitForSynchronizationObjectFromCpu, IN CONST D3DKMT_WAITFORSYNCHRONIZATIONOBJECTFROMCPU *) \ FUNCTION(SignalSynchronizationObjectFromCpu, IN CONST D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMCPU *) \ FUNCTION(WaitForSynchronizationObjectFromGpu, IN CONST D3DKMT_WAITFORSYNCHRONIZATIONOBJECTFROMGPU *) \ FUNCTION(SignalSynchronizationObjectFromGpu, IN CONST D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMGPU *) \ FUNCTION(FreeGpuVirtualAddress, IN CONST D3DKMT_FREEGPUVIRTUALADDRESS *) \ FUNCTION(UpdateGpuVirtualAddress, IN CONST D3DKMT_UPDATEGPUVIRTUALADDRESS *) \ FUNCTION(SubmitCommand, IN CONST D3DKMT_SUBMITCOMMAND *) \ FUNCTION(Evict, IN OUT D3DKMT_EVICT *) \ FUNCTION(GetDeviceState, IN OUT D3DKMT_GETDEVICESTATE *) \ FUNCTION(RegisterTrimNotification, IN D3DKMT_REGISTERTRIMNOTIFICATION *) \ FUNCTION(UnregisterTrimNotification, IN D3DKMT_UNREGISTERTRIMNOTIFICATION *) #define STR(X) #X #define FUNCTION(FUNC_NAME, FUNC_ARG) \ NTSTATUS __stdcall D3DKMT##FUNC_NAME(FUNC_ARG) { \ return STATUS_SUCCESS; \ } #define ADAPTER_HANDLE (static_cast(0x40001234)) #define DEVICE_HANDLE (static_cast(0x40004321)) #define PAGINGQUEUE_HANDLE (static_cast(0x40005678)) #define PAGINGQUEUE_SYNCOBJECT_HANDLE (static_cast(0x40008765)) #define CONTEXT_HANDLE (static_cast(0x40001111)) #define INVALID_HANDLE (static_cast(0)) #define RESOURCE_HANDLE (static_cast(0x80000000)) #define ALLOCATION_HANDLE (static_cast(0x80000008)) #define NT_RESOURCE_HANDLE (static_cast(0x80000001)) #define NT_ALLOCATION_HANDLE (static_cast(0x80000009)) #define GPUVA (static_cast(0x80123000000)) NTSTATUS MockSetSizes(void *gmmPtr, UINT numAllocsToReturn, UINT gmmSize, UINT totalPrivateSize); NTSTATUS GetMockSizes(UINT &destroyAlloactionWithResourceHandleCalled, D3DKMT_DESTROYALLOCATION2 *&ptrDestroyAlloc); D3DKMT_HANDLE GetMockLastDestroyedResHandle(); void SetMockLastDestroyedResHandle(D3DKMT_HANDLE handle); D3DKMT_CREATEDEVICE GetMockCreateDeviceParams(); void SetMockCreateDeviceParams(D3DKMT_CREATEDEVICE params); D3DKMT_CREATEALLOCATION *getMockAllocation(); ADAPTER_INFO *getAdapterInfoAddress(); D3DDDI_MAPGPUVIRTUALADDRESS *getLastCallMapGpuVaArg(); D3DDDI_RESERVEGPUVIRTUALADDRESS *getLastCallReserveGpuVaArg(); void setMapGpuVaFailConfig(uint32_t count, uint32_t max); D3DKMT_CREATECONTEXTVIRTUAL *getCreateContextData(); D3DKMT_CREATEHWQUEUE *getCreateHwQueueData(); D3DKMT_DESTROYHWQUEUE *getDestroyHwQueueData(); D3DKMT_SUBMITCOMMANDTOHWQUEUE *getSubmitCommandToHwQueueData(); void InitGfxPartition();