1 /*
2  * Copyright (C) 2020 Intel Corporation
3  *
4  * SPDX-License-Identifier: MIT
5  *
6  */
7 
8 #pragma once
9 #include "shared/source/helpers/non_copyable_or_moveable.h"
10 
11 #include "level_zero/tools/source/sysman/fan/os_fan.h"
12 
13 namespace L0 {
14 
15 class SysfsAccess;
16 
17 class LinuxFanImp : public OsFan, NEO::NonCopyableOrMovableClass {
18   public:
19     ze_result_t getProperties(zes_fan_properties_t *pProperties) override;
20     ze_result_t getConfig(zes_fan_config_t *pConfig) override;
21     ze_result_t setDefaultMode() override;
22     ze_result_t setFixedSpeedMode(const zes_fan_speed_t *pSpeed) override;
23     ze_result_t setSpeedTableMode(const zes_fan_speed_table_t *pSpeedTable) override;
24     ze_result_t getState(zes_fan_speed_units_t units, int32_t *pSpeed) override;
25     bool isFanModuleSupported() override;
26     LinuxFanImp(OsSysman *pOsSysman);
27     LinuxFanImp() = default;
28     ~LinuxFanImp() override = default;
29 };
30 } // namespace L0
31