gcontini
2020-03-15 919409cb28a2ef9e97d7b15046fed2c5a4d0500f
fix cpuid
2个文件已修改
11 ■■■■ 已修改文件
src/library/os/cpu_info.hpp 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/library/os/windows/cpu_info.cpp 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/library/os/cpu_info.hpp
@@ -29,6 +29,7 @@
    bool cpu_virtual() const;
    uint32_t model() const;
    std::string vendor() const;
    // std::string brand() const;
    VIRTUALIZATION_DETAIL getVirtualizationDetail() const;
};
src/library/os/windows/cpu_info.cpp
@@ -41,8 +41,14 @@
string CpuInfo::vendor() const {
    // hypervisor flag false, try to get the vendor name, see if it's a virtual cpu
    int cpui[4] = {0};
    __cpuid(cpui, 0x0);
    return string(reinterpret_cast<const char *>(cpui), 12);
    __cpuidex(cpui, 0x0, 0x0);
    char vendor[13];
    memset(vendor, 0, sizeof(vendor));
    *reinterpret_cast<int *>(vendor) = cpui[1];
    *reinterpret_cast<int *>(vendor +4) = cpui[3];
    *reinterpret_cast<int *>(vendor + 8) = cpui[2];
    return string(vendor, 12);
}
}  // namespace os
} /* namespace license */