geopm  3.1.1.dev272+gdfb40a8d
GEOPM - Global Extensible Open Power Manager
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 {
15  {
16  public:
17  struct rdt_info_s
18  {
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
Definition: Cpuid.hpp:15
virtual ~Cpuid()=default
virtual int cpuid(void) const =0
virtual rdt_info_s rdt_info(void) const =0
virtual bool is_hwp_supported(void) const =0
Cpuid()=default
virtual double freq_sticker(void) const =0
virtual uint32_t pmc_bit_width(void) const =0
#define GEOPM_PUBLIC
Definition: geopm_public.h:10
Definition: Agg.cpp:20
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
Definition: Cpuid.hpp:18
bool rdt_support
Definition: Cpuid.hpp:19
uint32_t mbm_scalar
Definition: Cpuid.hpp:21
uint32_t rmid_bit_width
Definition: Cpuid.hpp:20