Lines Matching defs:info_p

269 cpuid_set_cache_info( i386_cpu_info_t * info_p )
279 DBG("cpuid_set_cache_info(%p)\n", info_p);
290 ((uint32_t *) info_p->cache_info)[j] = cpuid_result[j];
293 for (i = 1; i < info_p->cache_info[0]; i++) {
294 if (i*16 > sizeof(info_p->cache_info))
300 ((uint32_t *) info_p->cache_info)[4*i+j] =
335 info_p->cpuid_cores_per_package
367 info_p->cache_size[type] = cache_size;
368 info_p->cache_sharing[type] = cache_sharing;
369 info_p->cache_partitions[type] = cache_partitions;
385 info_p->cpuid_cache_L2_associativity = cache_associativity;
420 if (info_p->cpuid_cores_per_package == 0) {
421 info_p->cpuid_cores_per_package = 1;
424 info_p->cache_size[L2U] = info_p->cpuid_cache_size * 1024;
425 info_p->cache_sharing[L2U] = 1;
426 info_p->cache_partitions[L2U] = 1;
428 linesizes[L2U] = info_p->cpuid_cache_linesize;
431 info_p->cache_size[L2U]);
435 info_p->cpuid_cache_linesize);
443 info_p->cache_linesize = linesizes[L2U];
445 info_p->cache_linesize = linesizes[L1D];
447 DBG(" cache_linesize : %d\n", info_p->cache_linesize);
452 DBG(" %ld leaf2 descriptors:\n", sizeof(info_p->cache_info));
453 for (i = 1; i < sizeof(info_p->cache_info); i++) {
459 DBG(" 0x%02x", info_p->cache_info[i]);
460 descp = cpuid_leaf2_find(info_p->cache_info[i]);
488 info_p->cpuid_tlb[id][page][level] = descp->entries;
491 info_p->cpuid_stlb = descp->entries;
498 cpuid_set_generic_info(i386_cpu_info_t *info_p)
503 DBG("cpuid_set_generic_info(%p)\n", info_p);
507 info_p->cpuid_max_basic = reg[eax];
508 bcopy((char *)&reg[ebx], &info_p->cpuid_vendor[0], 4); /* ug */
509 bcopy((char *)&reg[ecx], &info_p->cpuid_vendor[8], 4);
510 bcopy((char *)&reg[edx], &info_p->cpuid_vendor[4], 4);
511 info_p->cpuid_vendor[12] = 0;
515 info_p->cpuid_max_ext = reg[eax];
518 if (info_p->cpuid_max_ext >= 0x80000004) {
532 strlcpy(info_p->cpuid_brand_string,
533 p, sizeof(info_p->cpuid_brand_string));
535 if (!strncmp(info_p->cpuid_brand_string, CPUID_STRING_UNKNOWN,
536 min(sizeof(info_p->cpuid_brand_string),
542 info_p->cpuid_brand_string[0] = '\0';
547 if (info_p->cpuid_max_ext >= 0x80000006) {
550 info_p->cpuid_cache_linesize = bitfield32(reg[ecx], 7, 0);
565 info_p->cpuid_cache_L2_associativity = assoc;
566 info_p->cpuid_cache_size = bitfield32(reg[ecx],31,16);
568 info_p->cpuid_address_bits_physical =
570 info_p->cpuid_address_bits_virtual =
581 info_p->cpuid_microcode_version =
583 info_p->cpuid_signature = reg[eax];
584 info_p->cpuid_stepping = bitfield32(reg[eax], 3, 0);
585 info_p->cpuid_model = bitfield32(reg[eax], 7, 4);
586 info_p->cpuid_family = bitfield32(reg[eax], 11, 8);
587 info_p->cpuid_type = bitfield32(reg[eax], 13, 12);
588 info_p->cpuid_extmodel = bitfield32(reg[eax], 19, 16);
589 info_p->cpuid_extfamily = bitfield32(reg[eax], 27, 20);
590 info_p->cpuid_brand = bitfield32(reg[ebx], 7, 0);
591 info_p->cpuid_features = quad(reg[ecx], reg[edx]);
594 info_p->cpuid_processor_flag = (rdmsr64(MSR_IA32_PLATFORM_ID)>> 50) & 0x7;
597 if (info_p->cpuid_family == 0x0f)
598 info_p->cpuid_family += info_p->cpuid_extfamily;
599 if (info_p->cpuid_family == 0x0f || info_p->cpuid_family == 0x06)
600 info_p->cpuid_model += (info_p->cpuid_extmodel << 4);
602 if (info_p->cpuid_features & CPUID_FEATURE_HTT)
603 info_p->cpuid_logical_per_package =
606 info_p->cpuid_logical_per_package = 1;
608 if (info_p->cpuid_max_ext >= 0x80000001) {
610 info_p->cpuid_extfeatures =
614 DBG(" max_basic : %d\n", info_p->cpuid_max_basic);
615 DBG(" max_ext : 0x%08x\n", info_p->cpuid_max_ext);
616 DBG(" vendor : %s\n", info_p->cpuid_vendor);
617 DBG(" brand_string : %s\n", info_p->cpuid_brand_string);
618 DBG(" signature : 0x%08x\n", info_p->cpuid_signature);
619 DBG(" stepping : %d\n", info_p->cpuid_stepping);
620 DBG(" model : %d\n", info_p->cpuid_model);
621 DBG(" family : %d\n", info_p->cpuid_family);
622 DBG(" type : %d\n", info_p->cpuid_type);
623 DBG(" extmodel : %d\n", info_p->cpuid_extmodel);
624 DBG(" extfamily : %d\n", info_p->cpuid_extfamily);
625 DBG(" brand : %d\n", info_p->cpuid_brand);
626 DBG(" features : 0x%016llx\n", info_p->cpuid_features);
627 DBG(" extfeatures : 0x%016llx\n", info_p->cpuid_extfeatures);
628 DBG(" logical_per_package : %d\n", info_p->cpuid_logical_per_package);
629 DBG(" microcode_version : 0x%08x\n", info_p->cpuid_microcode_version);
632 if (info_p->cpuid_max_ext >= 0x80000007) {
634 info_p->cpuid_extfeatures |=
637 info_p->cpuid_extfeatures);
640 if (info_p->cpuid_max_basic >= 0x5) {
641 cpuid_mwait_leaf_t *cmp = &info_p->cpuid_mwait_leaf;
651 info_p->cpuid_mwait_leafp = cmp;
660 if (info_p->cpuid_max_basic >= 0x6) {
661 cpuid_thermal_leaf_t *ctp = &info_p->cpuid_thermal_leaf;
677 info_p->cpuid_thermal_leafp = ctp;
692 if (info_p->cpuid_max_basic >= 0xa) {
693 cpuid_arch_perf_leaf_t *capp = &info_p->cpuid_arch_perf_leaf;
706 info_p->cpuid_arch_perf_leafp = capp;
718 if (info_p->cpuid_max_basic >= 0xd) {
719 cpuid_xsave_leaf_t *xsp = &info_p->cpuid_xsave_leaf;
723 cpuid_fn(0xd, info_p->cpuid_xsave_leaf.extended_state);
724 info_p->cpuid_xsave_leafp = xsp;
733 if (info_p->cpuid_model >= CPUID_MODEL_IVYBRIDGE) {
738 info_p->cpuid_leaf7_features = reg[ebx];
748 cpuid_set_cpufamily(i386_cpu_info_t *info_p)
752 switch (info_p->cpuid_family) {
754 switch (info_p->cpuid_model) {
793 info_p->cpuid_cpufamily = cpufamily;
794 DBG("cpuid_set_cpufamily(%p) returning 0x%x\n", info_p, cpufamily);
804 i386_cpu_info_t *info_p = &cpuid_cpu_info;
808 bzero((void *)info_p, sizeof(cpuid_cpu_info));
810 cpuid_set_generic_info(info_p);
813 if ((strncmp(CPUID_VID_INTEL, info_p->cpuid_vendor,
815 sizeof(info_p->cpuid_vendor)))) ||
816 (cpuid_set_cpufamily(info_p) == CPUFAMILY_UNKNOWN))
819 info_p->cpuid_cpu_type = CPU_TYPE_X86;
820 info_p->cpuid_cpu_subtype = CPU_SUBTYPE_X86_ARCH1;
828 switch (info_p->cpuid_cpufamily) {
831 info_p->core_count = bitfield32((uint32_t)msr, 19, 16);
832 info_p->thread_count = bitfield32((uint32_t)msr, 15, 0);
840 info_p->core_count = bitfield32((uint32_t)msr, 31, 16);
841 info_p->thread_count = bitfield32((uint32_t)msr, 15, 0);
845 if (info_p->core_count == 0) {
846 info_p->core_count = info_p->cpuid_cores_per_package;
847 info_p->thread_count = info_p->cpuid_logical_per_package;
850 DBG(" core_count : %d\n", info_p->core_count);
851 DBG(" thread_count : %d\n", info_p->thread_count);
1104 cpuid_init_vmm_info(i386_vmm_info_t *info_p)
1109 bzero(info_p, sizeof(*info_p));
1114 DBG("cpuid_init_vmm_info(%p)\n", info_p);
1119 bcopy((char *)&reg[ebx], &info_p->cpuid_vmm_vendor[0], 4);
1120 bcopy((char *)&reg[ecx], &info_p->cpuid_vmm_vendor[4], 4);
1121 bcopy((char *)&reg[edx], &info_p->cpuid_vmm_vendor[8], 4);
1122 info_p->cpuid_vmm_vendor[12] = '\0';
1124 if (0 == strcmp(info_p->cpuid_vmm_vendor, CPUID_VMM_ID_VMWARE)) {
1126 info_p->cpuid_vmm_family = CPUID_VMM_FAMILY_VMWARE;
1128 info_p->cpuid_vmm_family = CPUID_VMM_FAMILY_UNKNOWN;
1135 info_p->cpuid_vmm_tsc_frequency = reg[eax];
1136 info_p->cpuid_vmm_bus_frequency = reg[ebx];
1139 DBG(" vmm_vendor : %s\n", info_p->cpuid_vmm_vendor);
1140 DBG(" vmm_family : %u\n", info_p->cpuid_vmm_family);
1141 DBG(" vmm_bus_frequency : %u\n", info_p->cpuid_vmm_bus_frequency);
1142 DBG(" vmm_tsc_frequency : %u\n", info_p->cpuid_vmm_tsc_frequency);