2023-02-01 01:00:21 +08:00
|
|
|
/*
|
2024-02-09 01:24:11 +08:00
|
|
|
* Copyright (C) 2023-2024 Intel Corporation
|
2023-02-01 01:00:21 +08:00
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: MIT
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#pragma once
|
2023-10-30 18:25:31 +08:00
|
|
|
#include "level_zero/sysman/source/driver/sysman_driver_handle.h"
|
2023-02-01 01:00:21 +08:00
|
|
|
|
2023-05-23 16:05:00 +08:00
|
|
|
#include <string>
|
|
|
|
#include <unordered_map>
|
|
|
|
|
2023-02-01 01:00:21 +08:00
|
|
|
namespace L0 {
|
|
|
|
namespace Sysman {
|
|
|
|
struct SysmanDevice;
|
|
|
|
struct SysmanDriverHandleImp : SysmanDriverHandle {
|
|
|
|
~SysmanDriverHandleImp() override;
|
|
|
|
SysmanDriverHandleImp();
|
|
|
|
ze_result_t initialize(NEO::ExecutionEnvironment &executionEnvironment);
|
|
|
|
ze_result_t getDevice(uint32_t *pCount, zes_device_handle_t *phDevices) override;
|
2023-11-03 14:33:16 +08:00
|
|
|
ze_result_t getExtensionProperties(uint32_t *pCount, zes_driver_extension_properties_t *pExtensionProperties) override;
|
2023-04-24 19:11:23 +08:00
|
|
|
ze_result_t sysmanEventsListen(uint32_t timeout, uint32_t count, zes_device_handle_t *phDevices,
|
|
|
|
uint32_t *pNumDeviceEvents, zes_event_type_flags_t *pEvents) override;
|
|
|
|
ze_result_t sysmanEventsListenEx(uint64_t timeout, uint32_t count, zes_device_handle_t *phDevices,
|
|
|
|
uint32_t *pNumDeviceEvents, zes_event_type_flags_t *pEvents) override;
|
2023-02-01 01:00:21 +08:00
|
|
|
std::vector<SysmanDevice *> sysmanDevices;
|
|
|
|
uint32_t numDevices = 0;
|
2023-05-23 16:05:00 +08:00
|
|
|
ze_result_t getExtensionFunctionAddress(const char *pFuncName, void **pfunc) override;
|
2023-04-24 19:11:23 +08:00
|
|
|
struct OsSysmanDriver *pOsSysmanDriver = nullptr;
|
2023-02-01 01:00:21 +08:00
|
|
|
};
|
|
|
|
|
2023-11-24 01:09:04 +08:00
|
|
|
extern struct SysmanDriverHandleImp *globalSysmanDriver;
|
2023-02-01 01:00:21 +08:00
|
|
|
|
|
|
|
} // namespace Sysman
|
|
|
|
} // namespace L0
|