Files
compute-runtime/level_zero/sysman/source/linux/pmu/sysman_pmu_imp.h
shubham kumar 501c8e87d7 fix: rename files under sysman to make them unique
Related-To: LOCI-4383

Signed-off-by: shubham kumar <shubham.kumar@intel.com>
2023-05-30 10:23:15 +02:00

46 lines
1.3 KiB
C++

/*
* Copyright (C) 2020-2023 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
#include "level_zero/sysman/source/linux/pmu/sysman_pmu.h"
#include "level_zero/sysman/source/linux/sysman_fs_access.h"
#include "level_zero/sysman/source/linux/zes_os_sysman_imp.h"
#include <linux/perf_event.h>
#include <string>
#include <sys/sysinfo.h>
#include <unistd.h>
namespace L0 {
namespace Sysman {
class PmuInterfaceImp : public PmuInterface, NEO::NonCopyableOrMovableClass {
public:
PmuInterfaceImp() = delete;
PmuInterfaceImp(LinuxSysmanImp *pLinuxSysmanImp);
~PmuInterfaceImp() override = default;
int64_t pmuInterfaceOpen(uint64_t config, int group, uint32_t format) override;
int pmuRead(int fd, uint64_t *data, ssize_t sizeOfdata) override;
protected:
virtual int getErrorNo();
virtual int64_t perfEventOpen(perf_event_attr *attr, pid_t pid, int cpu, int groupFd, uint64_t flags);
decltype(&read) readFunction = read;
decltype(&syscall) syscallFunction = syscall;
private:
uint32_t getEventType();
FsAccess *pFsAccess = nullptr;
SysfsAccess *pSysfsAccess = nullptr;
SysmanDeviceImp *pDevice = nullptr;
static const std::string deviceDir;
static const std::string sysDevicesDir;
};
} // namespace Sysman
} // namespace L0