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