mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-27 15:53:13 +08:00
wrap destruction logic within unique ptr set csr handle when creating page table manager Related-To: NEO-11080 Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
24 lines
831 B
C++
24 lines
831 B
C++
/*
|
|
* Copyright (C) 2019-2025 Intel Corporation
|
|
*
|
|
* SPDX-License-Identifier: MIT
|
|
*
|
|
*/
|
|
|
|
#include "shared/source/gmm_helper/client_context/gmm_client_context.h"
|
|
#include "shared/source/gmm_helper/page_table_mngr.h"
|
|
|
|
namespace NEO {
|
|
GmmPageTableMngr::GmmPageTableMngr(GmmClientContext *gmmClientContext, unsigned int translationTableFlags, GMM_TRANSLATIONTABLE_CALLBACKS *translationTableCb, void *aubCsrHandle) {
|
|
auto clientContext = gmmClientContext->getHandle();
|
|
auto deleter = [=](GMM_PAGETABLE_MGR *pageTableManager) {
|
|
clientContext->DestroyPageTblMgrObject(pageTableManager);
|
|
};
|
|
|
|
pageTableManager = {clientContext->CreatePageTblMgrObject(translationTableCb, translationTableFlags), deleter};
|
|
if (aubCsrHandle) {
|
|
pageTableManager->GmmSetCsrHandle(aubCsrHandle);
|
|
}
|
|
}
|
|
} // namespace NEO
|