/* * cpu_info.h * * Created on: Dec 14, 2019 * Author: devel */ #ifndef SRC_LIBRARY_OS_CPU_INFO_H_ #define SRC_LIBRARY_OS_CPU_INFO_H_ #include namespace license { typedef enum { BARE_TO_METAL, VMWARE, VIRTUALBOX, V_XEN, KVM, HV, V_OTHER } VIRTUALIZATION_DETAIL; /** * Cpu informations */ class CpuInfo { private: bool is_hypervisor_set() const; public: CpuInfo(); virtual ~CpuInfo(); /** * Detect Virtual machine using hypervisor bit or the cpu vendor name. * @return true if the cpu is detected to be a virtual cpu */ bool cpu_virtual() const; uint32_t model() const; std::string vendor() const; VIRTUALIZATION_DETAIL getVirtualizationDetail() const; }; } /* namespace license */ #endif /* SRC_LIBRARY_OS_CPU_INFO_H_ */