Я скачал и установил yum install cpuid на Fedora. Не могли бы вы сообщить мне, как я могу вызвать CPUID leaf 7 и subleaf 0? Я хотел проверить некоторые функции, доступные на этой платформе. Я действительно ценю твою помощь. Заранее спасибо.
Как вызвать лист CPUID 7 и подлист 0?
Ответы (1)
_cpuid_count можно использовать для получения функции 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 не проверяет, поддерживается ли функция. Вы можете сделать проверку, аналогичную __get_cpuid в cpuid.h. Это, вероятно, следует добавить в библиотеки 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;
}
person
Norm
schedule
02.06.2013
Похоже, вы можете использовать
__get_cpuid_max
вместо этого. __get_cpuid_max
выполняет необходимые проверки, чтобы убедиться, что функция/лист доступна.
- person jww; 22.03.2018