我已经在fedora上下载并安装了yum install cpuid。你能告诉我如何调用CPUID叶子7和子叶子0吗?我想检查一下这个平台上的一些功能。我真的很感谢你的帮助。
_cpuid_count可用于获取函数7和带有子叶子的0xD。
定义在cpuid.h
#define __cpuid_count(level, count, a, b, c, d)
__asm__ ("cpuidnt"
: "=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;
}