2023-02-01 01:00:21 +08:00
|
|
|
/*
|
|
|
|
* Copyright (C) 2023 Intel Corporation
|
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: MIT
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "level_zero/sysman/source/sysman_device_imp.h"
|
|
|
|
|
|
|
|
#include "shared/source/helpers/debug_helpers.h"
|
|
|
|
|
|
|
|
#include "level_zero/sysman/source/os_sysman.h"
|
|
|
|
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
namespace L0 {
|
|
|
|
namespace Sysman {
|
|
|
|
|
|
|
|
SysmanDeviceImp::SysmanDeviceImp(NEO::ExecutionEnvironment *executionEnvironment, const uint32_t rootDeviceIndex)
|
|
|
|
: executionEnvironment(executionEnvironment), rootDeviceIndex(rootDeviceIndex) {
|
|
|
|
this->executionEnvironment->incRefInternal();
|
2023-02-14 23:03:52 +08:00
|
|
|
pOsSysman = OsSysman::create(this);
|
|
|
|
UNRECOVERABLE_IF(nullptr == pOsSysman);
|
2023-03-06 23:46:51 +08:00
|
|
|
pFabricPortHandleContext = new FabricPortHandleContext(pOsSysman);
|
2023-03-08 18:35:11 +08:00
|
|
|
pMemoryHandleContext = new MemoryHandleContext(pOsSysman);
|
2023-03-01 20:51:33 +08:00
|
|
|
pPowerHandleContext = new PowerHandleContext(pOsSysman);
|
2023-03-14 14:07:21 +08:00
|
|
|
pEngineHandleContext = new EngineHandleContext(pOsSysman);
|
2023-02-01 01:00:21 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
SysmanDeviceImp::~SysmanDeviceImp() {
|
|
|
|
executionEnvironment->decRefInternal();
|
2023-03-01 20:51:33 +08:00
|
|
|
freeResource(pPowerHandleContext);
|
2023-03-14 14:07:21 +08:00
|
|
|
freeResource(pEngineHandleContext);
|
2023-03-06 23:46:51 +08:00
|
|
|
freeResource(pFabricPortHandleContext);
|
2023-03-08 18:35:11 +08:00
|
|
|
freeResource(pMemoryHandleContext);
|
|
|
|
freeResource(pOsSysman);
|
2023-02-01 01:00:21 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
ze_result_t SysmanDeviceImp::init() {
|
2023-02-14 23:03:52 +08:00
|
|
|
auto result = pOsSysman->init();
|
|
|
|
if (ZE_RESULT_SUCCESS != result) {
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
return result;
|
2023-02-01 01:00:21 +08:00
|
|
|
}
|
|
|
|
|
2023-03-06 23:46:51 +08:00
|
|
|
ze_result_t SysmanDeviceImp::fabricPortGet(uint32_t *pCount, zes_fabric_port_handle_t *phPort) {
|
|
|
|
return pFabricPortHandleContext->fabricPortGet(pCount, phPort);
|
|
|
|
}
|
|
|
|
|
2023-03-08 18:35:11 +08:00
|
|
|
ze_result_t SysmanDeviceImp::memoryGet(uint32_t *pCount, zes_mem_handle_t *phMemory) {
|
|
|
|
return pMemoryHandleContext->memoryGet(pCount, phMemory);
|
|
|
|
}
|
|
|
|
|
2023-03-01 20:51:33 +08:00
|
|
|
ze_result_t SysmanDeviceImp::powerGetCardDomain(zes_pwr_handle_t *phPower) {
|
|
|
|
return pPowerHandleContext->powerGetCardDomain(phPower);
|
|
|
|
}
|
|
|
|
|
|
|
|
ze_result_t SysmanDeviceImp::powerGet(uint32_t *pCount, zes_pwr_handle_t *phPower) {
|
|
|
|
return pPowerHandleContext->powerGet(pCount, phPower);
|
|
|
|
}
|
|
|
|
|
2023-03-14 14:07:21 +08:00
|
|
|
ze_result_t SysmanDeviceImp::engineGet(uint32_t *pCount, zes_engine_handle_t *phEngine) {
|
|
|
|
return pEngineHandleContext->engineGet(pCount, phEngine);
|
|
|
|
}
|
|
|
|
|
2023-02-01 01:00:21 +08:00
|
|
|
} // namespace Sysman
|
|
|
|
} // namespace L0
|