X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Fcpuid%2Fcpuid.c;h=a64b1575092ad0daa770cb90c0761ab54f85a32b;hb=39c84ebc38cc5d1180eec154ec1e748d2ddc1682;hp=2ea522b71d64c489f2db4f0b5df28fca4bb5e2a5;hpb=7cc246278949c8536dcfc51330a99e42f93fdc35;p=ccan diff --git a/ccan/cpuid/cpuid.c b/ccan/cpuid/cpuid.c index 2ea522b7..a64b1575 100644 --- a/ccan/cpuid/cpuid.c +++ b/ccan/cpuid/cpuid.c @@ -310,14 +310,11 @@ void cpuid(cpuid_t info, uint32_t *buf) buf[3] = (eax >> 16) & 0x0F; /* Extended Model. */ buf[4] = (eax >> 24) & 0x0F; /* Extended Family. */ - buf[5] = edx; /* Feature flags #1. */ - buf[6] = ecx; /* Feature flags #2. */ - /* Additional Feature information. */ - buf[7] = ebx & 0xFF; - buf[8] = (ebx >> 8) & 0xFF; - buf[9] = (ebx >> 16) & 0xFF; - buf[10] = (ebx >> 24) & 0xFF; + buf[5] = ebx & 0xFF; + buf[6] = (ebx >> 8) & 0xFF; + buf[7] = (ebx >> 16) & 0xFF; + buf[8] = (ebx >> 24) & 0xFF; break; case CPUID_CACHE_AND_TLBD_INFO: buf[0] = eax; @@ -330,10 +327,25 @@ void cpuid(cpuid_t info, uint32_t *buf) buf[1] = ecx; break; case CPUID_L1_CACHE_AND_TLB_IDS: - buf[0] = eax; - buf[1] = ebx; - buf[2] = ecx; - buf[3] = edx; + buf[0] = eax & 0xFF; + buf[1] = (eax >> 8) & 0xFF; + buf[2] = (eax >> 16) & 0xFF; + buf[3] = (eax >> 24) & 0xFF; + + buf[4] = ebx & 0xFF; + buf[5] = (ebx >> 8) & 0xFF; + buf[6] = (ebx >> 16) & 0xFF; + buf[7] = (ebx >> 24) & 0xFF; + + buf[8] = ecx & 0xFF; + buf[9] = (ecx >> 8) & 0xFF; + buf[10] = (ecx >> 16) & 0xFF; + buf[11] = (ecx >> 24) & 0xFF; + + buf[12] = edx & 0xFF; + buf[13] = (edx >> 8) & 0xFF; + buf[14] = (edx >> 16) & 0xFF; + buf[15] = (edx >> 24) & 0xFF; break; case CPUID_EXTENDED_L2_CACHE_FEATURES: buf[0] = ecx & 0xFF; /* Line size. */