|
Description
|
The following is part of the code used to initialize the cpi_cacheinfo field of each cpuid_info structure. Here only two bytes from cp_eax are considered instead of three.
file: uts/i86pc/os/cpuid.c
cpuid_pass2(cpu_t *cpu)
{
...
if (BITX(cp->cp_eax, 31, 31) == 0) {
uint8_t *p = (void *)&cp->cp_eax;
for (i = 1; i < 3; i++)
if (p[i] != 0)
*dp++ = p[i];
}
...
}
See CPUID.2 values in the Intel instructions specifications for more details.
There is similar code in cpuid.c:intel_cpubrand(). See sections for EAX and EBX registers.
|