blob: aa34d2c5cc5b555ee0259de3b96dde1655f9a540 [file] [log] [blame]
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <parlib/arch/arch.h>
int main(int argc, char *argv[])
{
uint32_t eax, ebx, ecx, edx;
uint32_t info1, info2 = 0;
if (argc < 2) {
printf("%s: eax_leaf [ecx_leaf]\n", argv[0]);
exit(-1);
}
errno = 0;
info1 = strtoul(argv[1], 0, 16);
if (errno) {
perror("info1");
exit(-1);
}
if (argc > 2) {
errno = 0;
info2 = strtoul(argv[2], 0, 16);
if (errno) {
perror("info2");
exit(-1);
}
}
eax = ebx = ecx = edx = 0xffffffff;
parlib_cpuid(info1, info2, &eax, &ebx, &ecx, &edx);
printf("CPUID for Leaf 0x%08x, Sublevel 0x%08x:\n", info1, info2);
printf("\teax: %08x\n\tebx: %08x\n\tecx: %08x\n\tedx: %08x\n", eax, ebx,
ecx, edx);
return 0;
}