X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Fcpuid%2Fcpuid.c;fp=ccan%2Fcpuid%2Fcpuid.c;h=df215eef616a26a45227d0fac7783d51032d5633;hp=d64f2cf57bb7afaacdf95fc393ed20957e12d0c6;hb=ea830cd11ee1f05fd510ea0f97b7c6020d0387df;hpb=f9ab35934568e164ce8eace2bddc8a57941c7fb4 diff --git a/ccan/cpuid/cpuid.c b/ccan/cpuid/cpuid.c index d64f2cf5..df215eef 100644 --- a/ccan/cpuid/cpuid.c +++ b/ccan/cpuid/cpuid.c @@ -215,7 +215,7 @@ static uint32_t fetch_edx(uint32_t what) static uint32_t REGISTER; \ if (REGISTER == 0) \ REGISTER = fetch_##REGISTER(TYPE); \ - return (REGISTER & feature) == feature; \ + return !!(REGISTER & feature); \ } DEFINE_FEATURE_FUNC(ecxfeature, ecx, CPUID_PROCINFO_AND_FEATUREBITS) @@ -226,25 +226,6 @@ DEFINE_FEATURE_FUNC(edxfeature_ext, edx, CPUID_EXTENDED_PROC_INFO_FEATURE_BITS) #undef DEFINE_FEATURE_FUNC -static const char *const cpuids[] = { - "Nooooooooone", - "AMDisbetter!", - "AuthenticAMD", - "CentaurHauls", - "CyrixInstead", - "GenuineIntel", - "TransmetaCPU", - "GeniuneTMx86", - "Geode by NSC", - "NexGenDriven", - "RiseRiseRise", - "SiS SiS SiS ", - "UMC UMC UMC ", - "VIA VIA VIA ", - "Vortex86 SoC", - "KVMKVMKVMKVM" -}; - cputype_t cpuid_get_cpu_type(void) { static cputype_t cputype; @@ -256,8 +237,8 @@ cputype_t cpuid_get_cpu_type(void) uint32_t i; ___cpuid(CPUID_VENDORID, &i, &u.bufu32[0], &u.bufu32[2], &u.bufu32[1]); - for (i = 0; i < sizeof(cpuids) / sizeof(cpuids[0]); ++i) { - if (strncmp(cpuids[i], u.buf, 12) == 0) { + for (i = 0; i < sizeof(c_cpunames) / sizeof(c_cpunames); ++i) { + if (strncmp(c_cpunames[i], u.buf, sizeof(c_cpunames[0])) == 0) { cputype = (cputype_t)i; break; } @@ -267,16 +248,6 @@ cputype_t cpuid_get_cpu_type(void) return cputype; } -bool cpuid_sprintf_cputype(const cputype_t cputype, char *buf) -{ - if (cputype == CT_NONE) - return false; - - memcpy(buf, cpuids[(int)cputype], 12); - buf[12] = '\0'; - return true; -} - uint32_t cpuid_highest_ext_func_supported(void) { static uint32_t highest; @@ -300,16 +271,16 @@ uint32_t cpuid_highest_ext_func_supported(void) return highest; } -void cpuid(cpuid_t info, uint32_t *buf) +void cpuid(cpuid_t request, uint32_t *buf) { /* Sanity checks, make sure we're not trying to do something * invalid or we are trying to get information that isn't supported * by the CPU. */ - if (info > CPUID_VIRT_PHYS_ADDR_SIZES || (info > CPUID_HIGHEST_EXTENDED_FUNCTION_SUPPORTED - && !cpuid_test_feature(info))) + if (request > CPUID_VIRT_PHYS_ADDR_SIZES || (request > CPUID_HIGHEST_EXTENDED_FUNCTION_SUPPORTED + && !cpuid_test_feature(request))) return; - if (info == CPUID_PROC_BRAND_STRING) { + if (request == CPUID_PROC_BRAND_STRING) { static char cached[48] = { 0 }; if (cached[0] == '\0') { ___cpuid(CPUID_PROC_BRAND_STRING, &buf[0], &buf[1], &buf[2], &buf[3] ); @@ -321,15 +292,15 @@ void cpuid(cpuid_t info, uint32_t *buf) buf = (uint32_t *)cached; return; - } else if (info == CPUID_HIGHEST_EXTENDED_FUNCTION_SUPPORTED) { + } else if (request == CPUID_HIGHEST_EXTENDED_FUNCTION_SUPPORTED) { *buf = cpuid_highest_ext_func_supported(); return; } uint32_t eax, ebx, ecx, edx; - ___cpuid(info, &eax, &ebx, &ecx, &edx); + ___cpuid(request, &eax, &ebx, &ecx, &edx); - switch (info) { + switch (request) { case CPUID_VENDORID: buf[0] = ebx; buf[1] = edx;