1 /*
2 * Copyright (C) 2020-2021 Intel Corporation
3 *
4 * SPDX-License-Identifier: MIT
5 *
6 */
7
8 #include "level_zero/tools/source/sysman/ras/ras_imp.h"
9
10 #include "shared/source/helpers/debug_helpers.h"
11 #include "shared/source/helpers/string.h"
12
13 #include <cstring>
14
15 namespace L0 {
16
rasGetProperties(zes_ras_properties_t * pProperties)17 ze_result_t RasImp::rasGetProperties(zes_ras_properties_t *pProperties) {
18 *pProperties = rasProperties;
19 return ZE_RESULT_SUCCESS;
20 }
21
rasGetConfig(zes_ras_config_t * pConfig)22 ze_result_t RasImp::rasGetConfig(zes_ras_config_t *pConfig) {
23 return pOsRas->osRasGetConfig(pConfig);
24 }
25
rasSetConfig(const zes_ras_config_t * pConfig)26 ze_result_t RasImp::rasSetConfig(const zes_ras_config_t *pConfig) {
27 return pOsRas->osRasSetConfig(pConfig);
28 }
29
rasGetState(zes_ras_state_t * pState,ze_bool_t clear)30 ze_result_t RasImp::rasGetState(zes_ras_state_t *pState, ze_bool_t clear) {
31 memset(pState->category, 0, sizeof(pState->category));
32 return pOsRas->osRasGetState(*pState, clear);
33 }
34
init()35 void RasImp::init() {
36 pOsRas->osRasGetProperties(rasProperties);
37 }
38
RasImp(OsSysman * pOsSysman,zes_ras_error_type_t type,ze_device_handle_t handle)39 RasImp::RasImp(OsSysman *pOsSysman, zes_ras_error_type_t type, ze_device_handle_t handle) : deviceHandle(handle) {
40 ze_device_properties_t deviceProperties = {ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES};
41 Device::fromHandle(deviceHandle)->getProperties(&deviceProperties);
42 pOsRas = OsRas::create(pOsSysman, type, deviceProperties.flags & ZE_DEVICE_PROPERTY_FLAG_SUBDEVICE, deviceProperties.subdeviceId);
43 init();
44 }
45
~RasImp()46 RasImp::~RasImp() {
47 if (nullptr != pOsRas) {
48 delete pOsRas;
49 }
50 }
51
52 } // namespace L0
53