Use types of gmm dll functions in gmm interfaces

Change-Id: I91bd9563abbcde32a0c88066a2f6747c1d5abc81
This commit is contained in:
Mateusz Jablonski
2018-07-20 12:16:32 +02:00
committed by sys_ocldev
parent 8ed9991910
commit 8537c7f42f
8 changed files with 22 additions and 26 deletions

View File

@@ -23,6 +23,8 @@ if(USE_STATIC_GMM)
else()
set(GMM_INTERFACE_FILE_LINUX ${CMAKE_CURRENT_SOURCE_DIR}/gmm_interface_dynamic_linux.cpp)
endif()
set_property(GLOBAL PROPERTY GMM_INTERFACE_FILE_LINUX ${GMM_INTERFACE_FILE_LINUX})
set(RUNTIME_SRCS_OS_INTERFACE_LINUX
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
${CMAKE_CURRENT_SOURCE_DIR}/allocator_helper.h

View File

@@ -29,12 +29,7 @@ extern const char *gmmEntryName;
} // namespace Os
namespace OCLRT {
GMM_STATUS(GMM_STDCALL *myPfnCreateSingletonContext)
(const PLATFORM Platform, const void *pSkuTable, const void *pWaTable, const void *pGtSysInfo);
GMM_STATUS GMM_STDCALL myGmmInitGlobalContext(const PLATFORM Platform, const SKU_FEATURE_TABLE *pSkuTable, const WA_TABLE *pWaTable, const GT_SYSTEM_INFO *pGtSysInfo, GMM_CLIENT ClientType) {
return myPfnCreateSingletonContext(Platform, pSkuTable, pWaTable, pGtSysInfo);
}
decltype(GmmHelper::initGlobalContextFunc) GmmHelper::initGlobalContextFunc = &myGmmInitGlobalContext;
decltype(GmmHelper::initGlobalContextFunc) GmmHelper::initGlobalContextFunc = nullptr;
decltype(GmmHelper::destroyGlobalContextFunc) GmmHelper::destroyGlobalContextFunc = nullptr;
decltype(GmmHelper::createClientContextFunc) GmmHelper::createClientContextFunc = nullptr;
decltype(GmmHelper::deleteClientContextFunc) GmmHelper::deleteClientContextFunc = nullptr;
@@ -48,11 +43,11 @@ void GmmHelper::loadLib() {
GmmExportEntries entries;
auto status = openGmmFunc(&entries);
if (status == GMM_SUCCESS) {
myPfnCreateSingletonContext = entries.pfnCreateSingletonContext;
GmmHelper::initGlobalContextFunc = entries.pfnCreateSingletonContext;
GmmHelper::destroyGlobalContextFunc = entries.pfnDestroySingletonContext;
GmmHelper::createClientContextFunc = entries.pfnCreateClientContext;
GmmHelper::deleteClientContextFunc = entries.pfnDeleteClientContext;
isLoaded = myPfnCreateSingletonContext && GmmHelper::destroyGlobalContextFunc && GmmHelper::createClientContextFunc && GmmHelper::deleteClientContextFunc;
isLoaded = GmmHelper::initGlobalContextFunc && GmmHelper::destroyGlobalContextFunc && GmmHelper::createClientContextFunc && GmmHelper::deleteClientContextFunc;
}
}
UNRECOVERABLE_IF(!isLoaded);

View File

@@ -23,14 +23,16 @@
#include "runtime/gmm_helper/gmm_helper.h"
namespace OCLRT {
GMM_STATUS GMM_STDCALL myPfnCreateSingletonContext(const PLATFORM platform, const void *pSkuTable, const void *pWaTable, const void *pGtSysInfo) {
return GmmInitGlobalContext(platform, reinterpret_cast<const SKU_FEATURE_TABLE *>(pSkuTable), reinterpret_cast<const WA_TABLE *>(pWaTable), reinterpret_cast<const GT_SYSTEM_INFO *>(pGtSysInfo), GMM_CLIENT::GMM_OCL_VISTA);
}
decltype(GmmHelper::initGlobalContextFunc) GmmHelper::initGlobalContextFunc = nullptr;
decltype(GmmHelper::destroyGlobalContextFunc) GmmHelper::destroyGlobalContextFunc = nullptr;
decltype(GmmHelper::createClientContextFunc) GmmHelper::createClientContextFunc = nullptr;
decltype(GmmHelper::deleteClientContextFunc) GmmHelper::deleteClientContextFunc = nullptr;
void GmmHelper::loadLib() {
GmmHelper::initGlobalContextFunc = GmmInitGlobalContext;
GmmHelper::initGlobalContextFunc = myPfnCreateSingletonContext;
GmmHelper::destroyGlobalContextFunc = GmmDestroyGlobalContext;
GmmHelper::createClientContextFunc = GmmCreateClientContext;
GmmHelper::deleteClientContextFunc = GmmDeleteClientContext;

View File

@@ -30,12 +30,7 @@ extern const char *gmmEntryName;
} // namespace Os
namespace OCLRT {
GMM_STATUS(GMM_STDCALL *myPfnCreateSingletonContext)
(const PLATFORM Platform, const SKU_FEATURE_TABLE *pSkuTable, const WA_TABLE *pWaTable, const GT_SYSTEM_INFO *pGtSysInfo);
GMM_STATUS GMM_STDCALL myGmmInitGlobalContext(const PLATFORM Platform, const SKU_FEATURE_TABLE *pSkuTable, const WA_TABLE *pWaTable, const GT_SYSTEM_INFO *pGtSysInfo, GMM_CLIENT ClientType) {
return myPfnCreateSingletonContext(Platform, pSkuTable, pWaTable, pGtSysInfo);
}
decltype(GmmHelper::initGlobalContextFunc) GmmHelper::initGlobalContextFunc = &myGmmInitGlobalContext;
decltype(GmmHelper::initGlobalContextFunc) GmmHelper::initGlobalContextFunc = nullptr;
decltype(GmmHelper::destroyGlobalContextFunc) GmmHelper::destroyGlobalContextFunc = nullptr;
decltype(GmmHelper::createClientContextFunc) GmmHelper::createClientContextFunc = nullptr;
decltype(GmmHelper::deleteClientContextFunc) GmmHelper::deleteClientContextFunc = nullptr;
@@ -49,11 +44,11 @@ void GmmHelper::loadLib() {
GmmExportEntries entries;
auto status = openGmmFunc(&entries);
if (status == GMM_SUCCESS) {
myPfnCreateSingletonContext = entries.pfnCreateSingletonContext;
GmmHelper::initGlobalContextFunc = entries.pfnCreateSingletonContext;
GmmHelper::destroyGlobalContextFunc = entries.pfnDestroySingletonContext;
GmmHelper::createClientContextFunc = entries.pfnCreateClientContext;
GmmHelper::deleteClientContextFunc = entries.pfnDeleteClientContext;
isLoaded = myPfnCreateSingletonContext && GmmHelper::destroyGlobalContextFunc && GmmHelper::createClientContextFunc && GmmHelper::deleteClientContextFunc;
isLoaded = GmmHelper::initGlobalContextFunc && GmmHelper::destroyGlobalContextFunc && GmmHelper::createClientContextFunc && GmmHelper::deleteClientContextFunc;
}
}
UNRECOVERABLE_IF(!isLoaded);

View File

@@ -23,14 +23,16 @@
#include "runtime/gmm_helper/gmm_helper.h"
namespace OCLRT {
GMM_STATUS GMM_STDCALL myPfnCreateSingletonContext(const PLATFORM platform, const SKU_FEATURE_TABLE *pSkuTable, const WA_TABLE *pWaTable, const GT_SYSTEM_INFO *pGtSysInfo) {
return GmmInitGlobalContext(platform, pSkuTable, pWaTable, pGtSysInfo, GMM_CLIENT::GMM_OCL_VISTA);
}
decltype(GmmHelper::initGlobalContextFunc) GmmHelper::initGlobalContextFunc = nullptr;
decltype(GmmHelper::destroyGlobalContextFunc) GmmHelper::destroyGlobalContextFunc = nullptr;
decltype(GmmHelper::createClientContextFunc) GmmHelper::createClientContextFunc = nullptr;
decltype(GmmHelper::deleteClientContextFunc) GmmHelper::deleteClientContextFunc = nullptr;
void GmmHelper::loadLib() {
GmmHelper::initGlobalContextFunc = GmmInitGlobalContext;
GmmHelper::initGlobalContextFunc = myPfnCreateSingletonContext;
GmmHelper::destroyGlobalContextFunc = GmmDestroyGlobalContext;
GmmHelper::createClientContextFunc = GmmCreateClientContext;
GmmHelper::deleteClientContextFunc = GmmDeleteClientContext;