geopm
3.1.1.dev272+gdfb40a8d
GEOPM - Global Extensible Open Power Manager
libgeopmd
include
geopm
Cpuid.hpp
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2015 - 2024 Intel Corporation
3
* SPDX-License-Identifier: BSD-3-Clause
4
*/
5
#ifndef CPUID_HPP_INCLUDE
6
#define CPUID_HPP_INCLUDE
7
8
#include <memory>
9
10
#include "
geopm_public.h
"
11
12
namespace
geopm
13
{
14
class
GEOPM_PUBLIC
Cpuid
15
{
16
public
:
17
struct
rdt_info_s
18
{
19
bool
rdt_support
;
20
uint32_t
rmid_bit_width
;
21
uint32_t
mbm_scalar
;
22
};
23
24
static
std::unique_ptr<Cpuid>
make_unique
(
void
);
25
Cpuid
() =
default
;
26
virtual
~Cpuid
() =
default
;
27
virtual
int
cpuid
(
void
)
const
= 0;
28
virtual
bool
is_hwp_supported
(
void
)
const
= 0;
29
virtual
double
freq_sticker
(
void
)
const
= 0;
30
virtual
rdt_info_s
rdt_info
(
void
)
const
= 0;
31
virtual
uint32_t
pmc_bit_width
(
void
)
const
= 0;
32
};
33
}
34
35
#endif
geopm::Cpuid
Definition:
Cpuid.hpp:15
geopm::Cpuid::~Cpuid
virtual ~Cpuid()=default
geopm::Cpuid::cpuid
virtual int cpuid(void) const =0
geopm::Cpuid::rdt_info
virtual rdt_info_s rdt_info(void) const =0
geopm::Cpuid::is_hwp_supported
virtual bool is_hwp_supported(void) const =0
geopm::Cpuid::Cpuid
Cpuid()=default
geopm::Cpuid::freq_sticker
virtual double freq_sticker(void) const =0
geopm::Cpuid::pmc_bit_width
virtual uint32_t pmc_bit_width(void) const =0
geopm_public.h
GEOPM_PUBLIC
#define GEOPM_PUBLIC
Definition:
geopm_public.h:10
geopm
Definition:
Agg.cpp:20
geopm::make_unique
std::unique_ptr< Type > make_unique(Args &&...args)
Implementation of std::make_unique (C++14) for C++11. Note that this version will only work for non-a...
Definition:
Helper.hpp:28
geopm::Cpuid::rdt_info_s
Definition:
Cpuid.hpp:18
geopm::Cpuid::rdt_info_s::rdt_support
bool rdt_support
Definition:
Cpuid.hpp:19
geopm::Cpuid::rdt_info_s::mbm_scalar
uint32_t mbm_scalar
Definition:
Cpuid.hpp:21
geopm::Cpuid::rdt_info_s::rmid_bit_width
uint32_t rmid_bit_width
Definition:
Cpuid.hpp:20
Generated by
1.9.1