我已经在fedora上下载并安装了yum install cpuid。 能不能让我知道如何拨打CPUID leaf 7和subleaf 0?我想检查该平台上的一些可用功能。 我非常感谢你的帮助。提前谢谢。
答案 0 :(得分:0)
_cpuid_count可用于通过subleaf获取函数7和0xD。
定义在cpuid.h中
#define __cpuid_count(level, count, a, b, c, d)
__asm__ ("cpuid\n\t"
: "=a" (a), "=b" (b), "=c" (c), "=d" (d)
: "0" (level), "2" (count))
请注意,_cpuid_count不会检查是否支持该功能。 您可以在cpuid.h中进行类似于__get_cpuid的检查。这应该可以添加到stdc库中。
static __inline int
__get_cpuid_count (unsigned int __level, unsigned int __count,
unsigned int *__eax, unsigned int *__ebx,
unsigned int *__ecx, unsigned int *__edx)
{
unsigned int __ext = __level & 0x80000000;
if (__get_cpuid_max (__ext, 0) < __level)
return 0;
__cpuid_count (__level, __count, *__eax, *__ebx, *__ecx, *__edx);
return 1;
}