Lines Matching refs:spapr
122 static int spapr_vcpu_id(SpaprMachineState *spapr, int cpu_index) in spapr_vcpu_id() argument
124 MachineState *ms = MACHINE(spapr); in spapr_vcpu_id()
127 assert(spapr->vsmt); in spapr_vcpu_id()
129 (cpu_index / smp_threads) * spapr->vsmt + cpu_index % smp_threads; in spapr_vcpu_id()
131 static bool spapr_is_thread0_in_vcore(SpaprMachineState *spapr, in spapr_is_thread0_in_vcore() argument
134 assert(spapr->vsmt); in spapr_is_thread0_in_vcore()
135 return spapr_get_vcpu_id(cpu) % spapr->vsmt == 0; in spapr_is_thread0_in_vcore()
138 int spapr_max_server_number(SpaprMachineState *spapr) in spapr_max_server_number() argument
140 MachineState *ms = MACHINE(spapr); in spapr_max_server_number()
142 assert(spapr->vsmt); in spapr_max_server_number()
143 return DIV_ROUND_UP(ms->smp.max_cpus * spapr->vsmt, ms->smp.threads); in spapr_max_server_number()
179 static void spapr_dt_pa_features(SpaprMachineState *spapr, in spapr_dt_pa_features() argument
289 if ((spapr_get_cap(spapr, SPAPR_CAP_HTM) != 0) && pa_size > 24) { in spapr_dt_pa_features()
292 if (spapr->cas_pre_isa3_guest && pa_size > 40) { in spapr_dt_pa_features()
298 if (spapr_get_cap(spapr, SPAPR_CAP_DAWR1)) { in spapr_dt_pa_features()
306 static void spapr_dt_pi_features(SpaprMachineState *spapr, in spapr_dt_pi_features() argument
351 static int spapr_dt_memory_node(SpaprMachineState *spapr, void *fdt, int nodeid, in spapr_dt_memory_node() argument
367 spapr_numa_write_associativity_dt(spapr, fdt, off, nodeid); in spapr_dt_memory_node()
421 static int spapr_dt_dynamic_memory_v2(SpaprMachineState *spapr, void *fdt, in spapr_dt_dynamic_memory_v2() argument
424 MachineState *machine = MACHINE(spapr); in spapr_dt_dynamic_memory_v2()
514 static int spapr_dt_dynamic_memory(SpaprMachineState *spapr, void *fdt, in spapr_dt_dynamic_memory() argument
517 MachineState *machine = MACHINE(spapr); in spapr_dt_dynamic_memory()
583 static int spapr_dt_dynamic_reconfiguration_memory(SpaprMachineState *spapr, in spapr_dt_dynamic_reconfiguration_memory() argument
586 MachineState *machine = MACHINE(spapr); in spapr_dt_dynamic_reconfiguration_memory()
618 if (spapr_ovec_test(spapr->ov5_cas, OV5_DRMEM_V2)) { in spapr_dt_dynamic_reconfiguration_memory()
619 ret = spapr_dt_dynamic_memory_v2(spapr, fdt, offset, dimms); in spapr_dt_dynamic_reconfiguration_memory()
621 ret = spapr_dt_dynamic_memory(spapr, fdt, offset, dimms); in spapr_dt_dynamic_reconfiguration_memory()
629 ret = spapr_numa_write_assoc_lookup_arrays(spapr, fdt, offset); in spapr_dt_dynamic_reconfiguration_memory()
634 static int spapr_dt_memory(SpaprMachineState *spapr, void *fdt) in spapr_dt_memory() argument
636 MachineState *machine = MACHINE(spapr); in spapr_dt_memory()
656 spapr_dt_memory_node(spapr, fdt, i, 0, spapr->rma_size); in spapr_dt_memory()
657 mem_start += spapr->rma_size; in spapr_dt_memory()
658 node_size -= spapr->rma_size; in spapr_dt_memory()
668 spapr_dt_memory_node(spapr, fdt, i, mem_start, sizetmp); in spapr_dt_memory()
675 if (spapr_ovec_test(spapr->ov5_cas, OV5_DRCONF_MEMORY)) { in spapr_dt_memory()
678 ret = spapr_dt_dynamic_reconfiguration_memory(spapr, fdt); in spapr_dt_memory()
688 SpaprMachineState *spapr) in spapr_dt_cpu() argument
690 MachineState *ms = MACHINE(spapr); in spapr_dt_cpu()
704 uint32_t pft_size_prop[] = {0, cpu_to_be32(spapr->htab_shift)}; in spapr_dt_cpu()
769 if (spapr_get_cap(spapr, SPAPR_CAP_VSX) != 0) { in spapr_dt_cpu()
779 if (spapr_get_cap(spapr, SPAPR_CAP_DFP) != 0) { in spapr_dt_cpu()
790 spapr_dt_pa_features(spapr, cpu, fdt, offset); in spapr_dt_cpu()
792 spapr_dt_pi_features(spapr, cpu, fdt, offset); in spapr_dt_cpu()
801 _FDT(spapr_numa_fixup_cpu_dt(spapr, fdt, offset, cpu)); in spapr_dt_cpu()
821 if (spapr_get_cap(spapr, SPAPR_CAP_LARGE_DECREMENTER) != SPAPR_CAP_OFF) in spapr_dt_cpu()
826 static void spapr_dt_one_cpu(void *fdt, SpaprMachineState *spapr, CPUState *cs, in spapr_dt_one_cpu() argument
835 if (!spapr_is_thread0_in_vcore(spapr, cpu)) { in spapr_dt_one_cpu()
842 spapr_dt_cpu(cs, fdt, offset, spapr); in spapr_dt_one_cpu()
846 static void spapr_dt_cpus(void *fdt, SpaprMachineState *spapr) in spapr_dt_cpus() argument
875 spapr_dt_one_cpu(fdt, spapr, rev[i], cpus_offset); in spapr_dt_cpus()
904 static void spapr_dt_rtas(SpaprMachineState *spapr, void *fdt) in spapr_dt_rtas() argument
906 MachineState *ms = MACHINE(spapr); in spapr_dt_rtas()
919 if (MACHINE(spapr)->device_memory) { in spapr_dt_rtas()
920 uint64_t max_device_addr = MACHINE(spapr)->device_memory->base + in spapr_dt_rtas()
921 memory_region_size(&MACHINE(spapr)->device_memory->mr); in spapr_dt_rtas()
944 if (spapr_get_cap(spapr, SPAPR_CAP_RPT_INVALIDATE) == SPAPR_CAP_ON) { in spapr_dt_rtas()
954 if (spapr->resize_hpt != SPAPR_RESIZE_HPT_DISABLED) { in spapr_dt_rtas()
967 spapr_numa_write_rtas_dt(spapr, fdt, rtas); in spapr_dt_rtas()
1024 static void spapr_dt_ov5_platform_support(SpaprMachineState *spapr, void *fdt, in spapr_dt_ov5_platform_support() argument
1036 if (spapr->irq->xics && spapr->irq->xive) { in spapr_dt_ov5_platform_support()
1038 } else if (spapr->irq->xive) { in spapr_dt_ov5_platform_support()
1041 assert(spapr->irq->xics); in spapr_dt_ov5_platform_support()
1070 static void spapr_dt_chosen(SpaprMachineState *spapr, void *fdt, bool reset) in spapr_dt_chosen() argument
1072 MachineState *machine = MACHINE(spapr); in spapr_dt_chosen()
1079 const char *boot_device = spapr->boot_device; in spapr_dt_chosen()
1080 g_autofree char *stdout_path = spapr_vio_stdout_path(spapr->vio_bus); in spapr_dt_chosen()
1089 if (spapr->initrd_size) { in spapr_dt_chosen()
1091 spapr->initrd_base)); in spapr_dt_chosen()
1093 spapr->initrd_base + spapr->initrd_size)); in spapr_dt_chosen()
1096 if (spapr->kernel_size) { in spapr_dt_chosen()
1097 uint64_t kprop[2] = { cpu_to_be64(spapr->kernel_addr), in spapr_dt_chosen()
1098 cpu_to_be64(spapr->kernel_size) }; in spapr_dt_chosen()
1102 if (spapr->kernel_le) { in spapr_dt_chosen()
1128 if (spapr->want_stdout_path && stdout_path) { in spapr_dt_chosen()
1148 spapr_dt_ov5_platform_support(spapr, fdt, chosen); in spapr_dt_chosen()
1151 _FDT(fdt_setprop(fdt, chosen, "rng-seed", spapr->fdt_rng_seed, 32)); in spapr_dt_chosen()
1153 _FDT(spapr_dt_ovec(fdt, chosen, spapr->ov5_cas, "ibm,architecture-vec-5")); in spapr_dt_chosen()
1156 static void spapr_dt_hypervisor(SpaprMachineState *spapr, void *fdt) in spapr_dt_hypervisor() argument
1179 void *spapr_build_fdt(SpaprMachineState *spapr, bool reset, size_t space) in spapr_build_fdt() argument
1181 MachineState *machine = MACHINE(spapr); in spapr_build_fdt()
1212 if (spapr->host_model) { in spapr_build_fdt()
1213 _FDT(fdt_setprop_string(fdt, 0, "host-model", spapr->host_model)); in spapr_build_fdt()
1219 if (spapr->host_serial) { in spapr_build_fdt()
1220 _FDT(fdt_setprop_string(fdt, 0, "host-serial", spapr->host_serial)); in spapr_build_fdt()
1230 spapr_irq_dt(spapr, spapr_max_server_number(spapr), fdt, PHANDLE_INTC); in spapr_build_fdt()
1232 ret = spapr_dt_memory(spapr, fdt); in spapr_build_fdt()
1239 spapr_dt_vdevice(spapr->vio_bus, fdt); in spapr_build_fdt()
1249 QLIST_FOREACH(phb, &spapr->phbs, list) { in spapr_build_fdt()
1250 ret = spapr_dt_phb(spapr, phb, PHANDLE_INTC, fdt, NULL); in spapr_build_fdt()
1257 spapr_dt_cpus(fdt, spapr); in spapr_build_fdt()
1281 spapr_dt_events(spapr, fdt); in spapr_build_fdt()
1284 spapr_dt_rtas(spapr, fdt); in spapr_build_fdt()
1287 spapr_dt_chosen(spapr, fdt, reset); in spapr_build_fdt()
1291 spapr_dt_hypervisor(spapr, fdt); in spapr_build_fdt()
1296 if (spapr->kernel_size) { in spapr_build_fdt()
1297 _FDT((fdt_add_mem_rsv(fdt, spapr->kernel_addr, in spapr_build_fdt()
1298 spapr->kernel_size))); in spapr_build_fdt()
1300 if (spapr->initrd_size) { in spapr_build_fdt()
1301 _FDT((fdt_add_mem_rsv(fdt, spapr->initrd_base, in spapr_build_fdt()
1302 spapr->initrd_size))); in spapr_build_fdt()
1308 spapr_dt_persistent_memory(spapr, fdt); in spapr_build_fdt()
1316 SpaprMachineState *spapr = opaque; in translate_kernel_address() local
1318 return (addr & 0x0fffffff) + spapr->kernel_addr; in translate_kernel_address()
1388 SpaprMachineState *spapr = SPAPR_MACHINE(vhyp); in spapr_get_pate() local
1395 entry->dw0 = spapr->patb_entry & PATE0_HR; in spapr_get_pate()
1396 entry->dw1 = spapr->patb_entry; in spapr_get_pate()
1399 if (spapr_nested_api(spapr) == NESTED_API_KVM_HV) { in spapr_get_pate()
1400 return spapr_get_pate_nested_hv(spapr, cpu, lpid, entry); in spapr_get_pate()
1401 } else if (spapr_nested_api(spapr) == NESTED_API_PAPR) { in spapr_get_pate()
1402 return spapr_get_pate_nested_papr(spapr, cpu, lpid, entry); in spapr_get_pate()
1441 static int get_htab_fd(SpaprMachineState *spapr) in get_htab_fd() argument
1445 if (spapr->htab_fd >= 0) { in get_htab_fd()
1446 return spapr->htab_fd; in get_htab_fd()
1449 spapr->htab_fd = kvmppc_get_htab_fd(false, 0, &local_err); in get_htab_fd()
1450 if (spapr->htab_fd < 0) { in get_htab_fd()
1454 return spapr->htab_fd; in get_htab_fd()
1457 void close_htab_fd(SpaprMachineState *spapr) in close_htab_fd() argument
1459 if (spapr->htab_fd >= 0) { in close_htab_fd()
1460 close(spapr->htab_fd); in close_htab_fd()
1462 spapr->htab_fd = -1; in close_htab_fd()
1467 SpaprMachineState *spapr = SPAPR_MACHINE(vhyp); in spapr_hpt_mask() local
1469 return HTAB_SIZE(spapr) / HASH_PTEG_SIZE_64 - 1; in spapr_hpt_mask()
1474 SpaprMachineState *spapr = SPAPR_MACHINE(vhyp); in spapr_encode_hpt_for_kvm_pr() local
1478 if (!spapr->htab) { in spapr_encode_hpt_for_kvm_pr()
1482 return (target_ulong)(uintptr_t)spapr->htab | (spapr->htab_shift - 18); in spapr_encode_hpt_for_kvm_pr()
1488 SpaprMachineState *spapr = SPAPR_MACHINE(vhyp); in spapr_map_hptes() local
1491 if (!spapr->htab) { in spapr_map_hptes()
1504 return (const ppc_hash_pte64_t *)(spapr->htab + pte_offset); in spapr_map_hptes()
1511 SpaprMachineState *spapr = SPAPR_MACHINE(vhyp); in spapr_unmap_hptes() local
1513 if (!spapr->htab) { in spapr_unmap_hptes()
1523 SpaprMachineState *spapr = SPAPR_MACHINE(cpu->vhyp); in spapr_store_hpte() local
1526 if (!spapr->htab) { in spapr_store_hpte()
1530 stq_p(spapr->htab + offset + HPTE64_DW1, pte1); in spapr_store_hpte()
1537 stq_p(spapr->htab + offset, pte0); in spapr_store_hpte()
1539 stq_p(spapr->htab + offset, pte0); in spapr_store_hpte()
1546 stq_p(spapr->htab + offset + HPTE64_DW1, pte1); in spapr_store_hpte()
1555 SpaprMachineState *spapr = SPAPR_MACHINE(vhyp); in spapr_hpte_set_c() local
1557 if (!spapr->htab) { in spapr_hpte_set_c()
1564 stb_p(spapr->htab + offset, (pte1 & 0xff) | 0x80); in spapr_hpte_set_c()
1571 SpaprMachineState *spapr = SPAPR_MACHINE(vhyp); in spapr_hpte_set_r() local
1573 if (!spapr->htab) { in spapr_hpte_set_r()
1580 stb_p(spapr->htab + offset, ((pte1 >> 8) & 0xff) | 0x01); in spapr_hpte_set_r()
1596 void spapr_free_hpt(SpaprMachineState *spapr) in spapr_free_hpt() argument
1598 qemu_vfree(spapr->htab); in spapr_free_hpt()
1599 spapr->htab = NULL; in spapr_free_hpt()
1600 spapr->htab_shift = 0; in spapr_free_hpt()
1601 close_htab_fd(spapr); in spapr_free_hpt()
1604 int spapr_reallocate_hpt(SpaprMachineState *spapr, int shift, Error **errp) in spapr_reallocate_hpt() argument
1610 spapr_free_hpt(spapr); in spapr_reallocate_hpt()
1635 spapr->htab_shift = shift; in spapr_reallocate_hpt()
1636 spapr->htab = NULL; in spapr_reallocate_hpt()
1642 spapr->htab = qemu_memalign(size, size); in spapr_reallocate_hpt()
1643 memset(spapr->htab, 0, size); in spapr_reallocate_hpt()
1644 spapr->htab_shift = shift; in spapr_reallocate_hpt()
1647 hpte_set_dirty(spapr, i); in spapr_reallocate_hpt()
1651 spapr->patb_entry = 0; in spapr_reallocate_hpt()
1656 void spapr_setup_hpt(SpaprMachineState *spapr) in spapr_setup_hpt() argument
1660 if (spapr->resize_hpt == SPAPR_RESIZE_HPT_DISABLED) { in spapr_setup_hpt()
1661 hpt_shift = spapr_hpt_shift_for_ramsize(MACHINE(spapr)->maxram_size); in spapr_setup_hpt()
1665 current_ram_size = MACHINE(spapr)->ram_size + get_plugged_memory_size(); in spapr_setup_hpt()
1668 spapr_reallocate_hpt(spapr, hpt_shift, &error_fatal); in spapr_setup_hpt()
1671 hwaddr vrma_limit = kvmppc_vrma_limit(spapr->htab_shift); in spapr_setup_hpt()
1674 if (vrma_limit < spapr->rma_size) { in spapr_setup_hpt()
1677 spapr->rma_size / MiB, vrma_limit / MiB); in spapr_setup_hpt()
1701 SpaprMachineState *spapr = SPAPR_MACHINE(machine); in spapr_machine_reset() local
1712 qemu_guest_getrandom_nofail(spapr->fdt_rng_seed, 32); in spapr_machine_reset()
1718 spapr_caps_apply(spapr); in spapr_machine_reset()
1719 spapr_nested_reset(spapr); in spapr_machine_reset()
1724 spapr->max_compat_pvr)) { in spapr_machine_reset()
1730 spapr->patb_entry = PATE1_GR; in spapr_machine_reset()
1733 spapr_setup_hpt(spapr); in spapr_machine_reset()
1738 spapr_ovec_cleanup(spapr->ov5_cas); in spapr_machine_reset()
1739 spapr->ov5_cas = spapr_ovec_new(); in spapr_machine_reset()
1741 ppc_init_compat_all(spapr->max_compat_pvr, &error_fatal); in spapr_machine_reset()
1747 spapr_irq_reset(spapr, &error_fatal); in spapr_machine_reset()
1755 spapr_ovec_cleanup(spapr->ov5_cas); in spapr_machine_reset()
1756 spapr->ov5_cas = spapr_ovec_clone(spapr->ov5); in spapr_machine_reset()
1766 spapr_drc_reset_all(spapr); in spapr_machine_reset()
1768 spapr_clear_pending_events(spapr); in spapr_machine_reset()
1775 fdt_addr = MIN(spapr->rma_size, FDT_MAX_ADDR) - FDT_MAX_SIZE; in spapr_machine_reset()
1777 fdt = spapr_build_fdt(spapr, true, FDT_MAX_SIZE); in spapr_machine_reset()
1778 if (spapr->vof) { in spapr_machine_reset()
1779 spapr_vof_reset(spapr, fdt, &error_fatal); in spapr_machine_reset()
1794 g_free(spapr->fdt_blob); in spapr_machine_reset()
1795 spapr->fdt_size = fdt_totalsize(fdt); in spapr_machine_reset()
1796 spapr->fdt_initial_size = spapr->fdt_size; in spapr_machine_reset()
1797 spapr->fdt_blob = fdt; in spapr_machine_reset()
1805 spapr->fwnmi_system_reset_addr = -1; in spapr_machine_reset()
1806 spapr->fwnmi_machine_check_addr = -1; in spapr_machine_reset()
1807 spapr->fwnmi_machine_check_interlock = -1; in spapr_machine_reset()
1810 qemu_cond_broadcast(&spapr->fwnmi_machine_check_interlock_cond); in spapr_machine_reset()
1812 migrate_del_blocker(&spapr->fwnmi_migration_blocker); in spapr_machine_reset()
1815 static void spapr_create_nvram(SpaprMachineState *spapr) in spapr_create_nvram() argument
1825 qdev_realize_and_unref(dev, &spapr->vio_bus->bus, &error_fatal); in spapr_create_nvram()
1827 spapr->nvram = (struct SpaprNvram *)dev; in spapr_create_nvram()
1830 static void spapr_rtc_create(SpaprMachineState *spapr) in spapr_rtc_create() argument
1832 object_initialize_child_with_props(OBJECT(spapr), "rtc", &spapr->rtc, in spapr_rtc_create()
1833 sizeof(spapr->rtc), TYPE_SPAPR_RTC, in spapr_rtc_create()
1835 qdev_realize(DEVICE(&spapr->rtc), NULL, &error_fatal); in spapr_rtc_create()
1836 object_property_add_alias(OBJECT(spapr), "rtc-time", OBJECT(&spapr->rtc), in spapr_rtc_create()
1874 SpaprMachineState *spapr = (SpaprMachineState *)opaque; in spapr_post_load() local
1877 err = spapr_caps_post_migration(spapr); in spapr_post_load()
1889 err = spapr_rtc_import_offset(&spapr->rtc, spapr->rtc_offset); in spapr_post_load()
1895 if (kvm_enabled() && spapr->patb_entry) { in spapr_post_load()
1897 bool radix = !!(spapr->patb_entry & PATE1_GR); in spapr_post_load()
1907 err = kvmppc_configure_v3_mmu(cpu, radix, gtse, spapr->patb_entry); in spapr_post_load()
1914 err = spapr_irq_post_load(spapr, version_id); in spapr_post_load()
1941 SpaprMachineState *spapr = (SpaprMachineState *)opaque; in spapr_pending_events_needed() local
1942 return !QTAILQ_EMPTY(&spapr->pending_events); in spapr_pending_events_needed()
1972 SpaprMachineState *spapr = opaque; in spapr_ov5_cas_needed() local
2007 cas_needed = !spapr_ovec_subset(spapr->ov5, ov5_mask); in spapr_ov5_cas_needed()
2028 SpaprMachineState *spapr = opaque; in spapr_patb_entry_needed() local
2030 return !!spapr->patb_entry; in spapr_patb_entry_needed()
2046 SpaprMachineState *spapr = opaque; in spapr_irq_map_needed() local
2048 return spapr->irq_map && !bitmap_empty(spapr->irq_map, spapr->irq_map_nr); in spapr_irq_map_needed()
2071 SpaprMachineState *spapr = (SpaprMachineState *)opaque; in spapr_dtb_pre_load() local
2073 g_free(spapr->fdt_blob); in spapr_dtb_pre_load()
2074 spapr->fdt_blob = NULL; in spapr_dtb_pre_load()
2075 spapr->fdt_size = 0; in spapr_dtb_pre_load()
2097 SpaprMachineState *spapr = (SpaprMachineState *)opaque; in spapr_fwnmi_needed() local
2099 return spapr->fwnmi_machine_check_addr != -1; in spapr_fwnmi_needed()
2104 SpaprMachineState *spapr = (SpaprMachineState *)opaque; in spapr_fwnmi_pre_save() local
2110 if (spapr->fwnmi_machine_check_interlock != -1) { in spapr_fwnmi_pre_save()
2177 SpaprMachineState *spapr = opaque; in htab_save_setup() local
2180 if (!spapr->htab_shift) { in htab_save_setup()
2183 qemu_put_be32(f, spapr->htab_shift); in htab_save_setup()
2186 if (spapr->htab) { in htab_save_setup()
2187 spapr->htab_save_index = 0; in htab_save_setup()
2188 spapr->htab_first_pass = true; in htab_save_setup()
2190 if (spapr->htab_shift) { in htab_save_setup()
2199 static void htab_save_chunk(QEMUFile *f, SpaprMachineState *spapr, in htab_save_chunk() argument
2205 qemu_put_buffer(f, (void *)hpte_get_ptr(spapr, chunkstart), in htab_save_chunk()
2216 static void htab_save_first_pass(QEMUFile *f, SpaprMachineState *spapr, in htab_save_first_pass() argument
2220 int htabslots = HTAB_SIZE(spapr) / HASH_PTE_SIZE_64; in htab_save_first_pass()
2221 int index = spapr->htab_save_index; in htab_save_first_pass()
2224 assert(spapr->htab_first_pass); in htab_save_first_pass()
2231 && !hpte_is_valid(spapr, index)) { in htab_save_first_pass()
2232 hpte_set_clean(spapr, index); in htab_save_first_pass()
2239 && hpte_is_valid(spapr, index)) { in htab_save_first_pass()
2240 hpte_set_clean(spapr, index); in htab_save_first_pass()
2247 htab_save_chunk(f, spapr, chunkstart, n_valid, 0); in htab_save_first_pass()
2259 spapr->htab_first_pass = false; in htab_save_first_pass()
2261 spapr->htab_save_index = index; in htab_save_first_pass()
2264 static int htab_save_later_pass(QEMUFile *f, SpaprMachineState *spapr, in htab_save_later_pass() argument
2268 int htabslots = HTAB_SIZE(spapr) / HASH_PTE_SIZE_64; in htab_save_later_pass()
2270 int index = spapr->htab_save_index; in htab_save_later_pass()
2273 assert(!spapr->htab_first_pass); in htab_save_later_pass()
2280 && !hpte_is_dirty(spapr, index)) { in htab_save_later_pass()
2288 && hpte_is_dirty(spapr, index) in htab_save_later_pass()
2289 && hpte_is_valid(spapr, index)) { in htab_save_later_pass()
2290 hpte_set_clean(spapr, index); in htab_save_later_pass()
2298 && hpte_is_dirty(spapr, index) in htab_save_later_pass()
2299 && !hpte_is_valid(spapr, index)) { in htab_save_later_pass()
2300 hpte_set_clean(spapr, index); in htab_save_later_pass()
2309 htab_save_chunk(f, spapr, chunkstart, n_valid, n_invalid); in htab_save_later_pass()
2332 spapr->htab_save_index = index; in htab_save_later_pass()
2342 SpaprMachineState *spapr = opaque; in htab_save_iterate() local
2347 if (!spapr->htab_shift) { in htab_save_iterate()
2354 if (!spapr->htab) { in htab_save_iterate()
2357 fd = get_htab_fd(spapr); in htab_save_iterate()
2366 } else if (spapr->htab_first_pass) { in htab_save_iterate()
2367 htab_save_first_pass(f, spapr, MAX_ITERATION_NS); in htab_save_iterate()
2369 rc = htab_save_later_pass(f, spapr, MAX_ITERATION_NS); in htab_save_iterate()
2379 SpaprMachineState *spapr = opaque; in htab_save_complete() local
2383 if (!spapr->htab_shift) { in htab_save_complete()
2390 if (!spapr->htab) { in htab_save_complete()
2395 fd = get_htab_fd(spapr); in htab_save_complete()
2405 if (spapr->htab_first_pass) { in htab_save_complete()
2406 htab_save_first_pass(f, spapr, -1); in htab_save_complete()
2408 htab_save_later_pass(f, spapr, -1); in htab_save_complete()
2419 SpaprMachineState *spapr = opaque; in htab_load() local
2432 spapr_free_hpt(spapr); in htab_load()
2440 ret = spapr_reallocate_hpt(spapr, section_hdr, &local_err); in htab_load()
2448 if (!spapr->htab) { in htab_load()
2472 (HTAB_SIZE(spapr) / HASH_PTE_SIZE_64)) { in htab_load()
2476 index, n_valid, n_invalid, spapr->htab_shift); in htab_load()
2480 if (spapr->htab) { in htab_load()
2482 qemu_get_buffer(f, (void *)hpte_get_ptr(spapr, index), in htab_load()
2486 memset(hpte_get_ptr(spapr, index + n_valid), 0, in htab_load()
2503 if (!spapr->htab) { in htab_load()
2513 SpaprMachineState *spapr = opaque; in htab_save_cleanup() local
2515 close_htab_fd(spapr); in htab_save_cleanup()
2529 SpaprMachineState *spapr = SPAPR_MACHINE(opaque); in spapr_boot_set() local
2531 g_free(spapr->boot_device); in spapr_boot_set()
2532 spapr->boot_device = g_strdup(boot_device); in spapr_boot_set()
2535 static void spapr_create_lmb_dr_connectors(SpaprMachineState *spapr) in spapr_create_lmb_dr_connectors() argument
2537 MachineState *machine = MACHINE(spapr); in spapr_create_lmb_dr_connectors()
2547 spapr_dr_connector_new(OBJECT(spapr), TYPE_SPAPR_DRC_LMB, in spapr_create_lmb_dr_connectors()
2603 static void spapr_set_vsmt_mode(SpaprMachineState *spapr, Error **errp) in spapr_set_vsmt_mode() argument
2605 MachineState *ms = MACHINE(spapr); in spapr_set_vsmt_mode()
2606 SpaprMachineClass *smc = SPAPR_MACHINE_GET_CLASS(spapr); in spapr_set_vsmt_mode()
2608 bool vsmt_user = !!spapr->vsmt; in spapr_set_vsmt_mode()
2616 spapr->max_compat_pvr)) { in spapr_set_vsmt_mode()
2635 if (spapr->vsmt < smp_threads) { in spapr_set_vsmt_mode()
2638 spapr->vsmt, smp_threads); in spapr_set_vsmt_mode()
2650 spapr->vsmt = MAX(8, smp_threads); in spapr_set_vsmt_mode()
2652 spapr->vsmt = smp_threads; in spapr_set_vsmt_mode()
2656 if (kvm_enabled() && (spapr->vsmt != kvm_smt)) { in spapr_set_vsmt_mode()
2657 ret = kvmppc_set_smt_threads(spapr->vsmt); in spapr_set_vsmt_mode()
2662 spapr->vsmt, ret); in spapr_set_vsmt_mode()
2667 if ((kvm_smt >= smp_threads) && ((spapr->vsmt % kvm_smt) == 0)) { in spapr_set_vsmt_mode()
2675 smp_threads, kvm_smt, spapr->vsmt); in spapr_set_vsmt_mode()
2685 static void spapr_init_cpus(SpaprMachineState *spapr) in spapr_init_cpus() argument
2687 MachineState *machine = MACHINE(spapr); in spapr_init_cpus()
2721 spapr_dr_connector_new(OBJECT(spapr), TYPE_SPAPR_DRC_CPU, in spapr_init_cpus()
2722 spapr_vcpu_id(spapr, core_id)); in spapr_init_cpus()
2756 static hwaddr spapr_rma_size(SpaprMachineState *spapr, Error **errp) in spapr_rma_size() argument
2758 MachineState *machine = MACHINE(spapr); in spapr_rma_size()
2759 SpaprMachineClass *smc = SPAPR_MACHINE_GET_CLASS(spapr); in spapr_rma_size()
2792 static void spapr_create_nvdimm_dr_connectors(SpaprMachineState *spapr) in spapr_create_nvdimm_dr_connectors() argument
2794 MachineState *machine = MACHINE(spapr); in spapr_create_nvdimm_dr_connectors()
2798 spapr_dr_connector_new(OBJECT(spapr), TYPE_SPAPR_DRC_PMEM, i); in spapr_create_nvdimm_dr_connectors()
2805 SpaprMachineState *spapr = SPAPR_MACHINE(machine); in spapr_machine_init() local
2808 const char *bios_default = spapr->vof ? FW_FILE_NAME_VOF : FW_FILE_NAME; in spapr_machine_init()
2840 QLIST_INIT(&spapr->phbs); in spapr_machine_init()
2841 QTAILQ_INIT(&spapr->pending_dimm_unplugs); in spapr_machine_init()
2844 spapr_caps_init(spapr); in spapr_machine_init()
2847 if (spapr->resize_hpt == SPAPR_RESIZE_HPT_DEFAULT) { in spapr_machine_init()
2855 spapr->resize_hpt = SPAPR_RESIZE_HPT_DISABLED; in spapr_machine_init()
2859 spapr->resize_hpt = smc->resize_hpt_default; in spapr_machine_init()
2863 assert(spapr->resize_hpt != SPAPR_RESIZE_HPT_DEFAULT); in spapr_machine_init()
2865 if ((spapr->resize_hpt != SPAPR_RESIZE_HPT_DISABLED) && resize_hpt_err) { in spapr_machine_init()
2874 spapr->rma_size = spapr_rma_size(spapr, &error_fatal); in spapr_machine_init()
2877 load_limit = MIN(spapr->rma_size, FDT_MAX_ADDR) - FW_OVERHEAD; in spapr_machine_init()
2883 spapr_set_vsmt_mode(spapr, &error_fatal); in spapr_machine_init()
2886 spapr_irq_init(spapr, &error_fatal); in spapr_machine_init()
2890 spapr->ov5 = spapr_ovec_new(); in spapr_machine_init()
2891 spapr->ov5_cas = spapr_ovec_new(); in spapr_machine_init()
2893 spapr_ovec_set(spapr->ov5, OV5_DRCONF_MEMORY); in spapr_machine_init()
2896 spapr_ovec_set(spapr->ov5, OV5_FORM1_AFFINITY); in spapr_machine_init()
2900 spapr_ovec_set(spapr->ov5, OV5_FORM2_AFFINITY); in spapr_machine_init()
2904 if (spapr->use_hotplug_event_source) { in spapr_machine_init()
2905 spapr_ovec_set(spapr->ov5, OV5_HP_EVT); in spapr_machine_init()
2909 if (spapr->resize_hpt != SPAPR_RESIZE_HPT_DISABLED) { in spapr_machine_init()
2910 spapr_ovec_set(spapr->ov5, OV5_HPT_RESIZE); in spapr_machine_init()
2914 spapr_ovec_set(spapr->ov5, OV5_DRMEM_V2); in spapr_machine_init()
2917 if (spapr->irq->xive) { in spapr_machine_init()
2918 spapr_ovec_set(spapr->ov5, OV5_XIVE_EXPLOIT); in spapr_machine_init()
2921 qemu_guest_getrandom_nofail(&spapr->hashpkey_val, in spapr_machine_init()
2922 sizeof(spapr->hashpkey_val)); in spapr_machine_init()
2925 spapr_init_cpus(spapr); in spapr_machine_init()
2928 spapr_numa_associativity_init(spapr, machine); in spapr_machine_init()
2932 spapr->max_compat_pvr)) { in spapr_machine_init()
2933 spapr_ovec_set(spapr->ov5, OV5_MMU_RADIX_300); in spapr_machine_init()
2935 spapr_ovec_set(spapr->ov5, OV5_MMU_RADIX_GTSE); in spapr_machine_init()
2981 spapr_create_lmb_dr_connectors(spapr); in spapr_machine_init()
2984 spapr_create_nvdimm_dr_connectors(spapr); in spapr_machine_init()
2988 spapr_events_init(spapr); in spapr_machine_init()
2991 spapr_rtc_create(spapr); in spapr_machine_init()
2994 spapr->vio_bus = spapr_vio_bus_init(); in spapr_machine_init()
2997 spapr_vty_create(spapr->vio_bus, serial_hd(i)); in spapr_machine_init()
3001 spapr_create_nvram(spapr); in spapr_machine_init()
3022 spapr_vlan_create(spapr->vio_bus, nd); in spapr_machine_init()
3028 spapr_vscsi_create(spapr->vio_bus); in spapr_machine_init()
3034 spapr->want_stdout_path = !machine->enable_graphics; in spapr_machine_init()
3037 spapr->want_stdout_path = true; in spapr_machine_init()
3056 spapr->kernel_size = load_elf(kernel_filename, NULL, in spapr_machine_init()
3057 translate_kernel_address, spapr, in spapr_machine_init()
3060 if (spapr->kernel_size == ELF_LOAD_WRONG_ENDIAN) { in spapr_machine_init()
3061 spapr->kernel_size = load_elf(kernel_filename, NULL, in spapr_machine_init()
3062 translate_kernel_address, spapr, in spapr_machine_init()
3065 spapr->kernel_le = spapr->kernel_size > 0; in spapr_machine_init()
3067 if (spapr->kernel_size < 0) { in spapr_machine_init()
3069 load_elf_strerror(spapr->kernel_size)); in spapr_machine_init()
3073 if (spapr->kernel_addr != loaded_addr) { in spapr_machine_init()
3076 spapr->kernel_addr, loaded_addr); in spapr_machine_init()
3077 spapr->kernel_addr = loaded_addr; in spapr_machine_init()
3085 spapr->initrd_base = (spapr->kernel_addr + spapr->kernel_size in spapr_machine_init()
3087 spapr->initrd_size = load_image_targphys(initrd_filename, in spapr_machine_init()
3088 spapr->initrd_base, in spapr_machine_init()
3090 - spapr->initrd_base); in spapr_machine_init()
3091 if (spapr->initrd_size < 0) { in spapr_machine_init()
3102 vmstate_register(NULL, 0, &vmstate_spapr, spapr); in spapr_machine_init()
3104 &savevm_htab_handlers, spapr); in spapr_machine_init()
3108 qemu_register_boot_set(spapr_boot_set, spapr); in spapr_machine_init()
3120 &spapr->tb); in spapr_machine_init()
3125 qemu_cond_init(&spapr->fwnmi_machine_check_interlock_cond); in spapr_machine_init()
3126 if (spapr->vof) { in spapr_machine_init()
3127 spapr->vof->fw_size = fw_size; /* for claim() on itself */ in spapr_machine_init()
3131 spapr_watchdog_init(spapr); in spapr_machine_init()
3175 void *spapr = CAST(void, bus->parent, "spapr-vscsi"); in spapr_get_fw_dev_path() local
3179 if (spapr) { in spapr_get_fw_dev_path()
3255 SpaprMachineState *spapr = SPAPR_MACHINE(obj); in spapr_get_kvm_type() local
3257 return g_strdup(spapr->kvm_type); in spapr_get_kvm_type()
3262 SpaprMachineState *spapr = SPAPR_MACHINE(obj); in spapr_set_kvm_type() local
3264 g_free(spapr->kvm_type); in spapr_set_kvm_type()
3265 spapr->kvm_type = g_strdup(value); in spapr_set_kvm_type()
3270 SpaprMachineState *spapr = SPAPR_MACHINE(obj); in spapr_get_modern_hotplug_events() local
3272 return spapr->use_hotplug_event_source; in spapr_get_modern_hotplug_events()
3278 SpaprMachineState *spapr = SPAPR_MACHINE(obj); in spapr_set_modern_hotplug_events() local
3280 spapr->use_hotplug_event_source = value; in spapr_set_modern_hotplug_events()
3290 SpaprMachineState *spapr = SPAPR_MACHINE(obj); in spapr_get_resize_hpt() local
3292 switch (spapr->resize_hpt) { in spapr_get_resize_hpt()
3307 SpaprMachineState *spapr = SPAPR_MACHINE(obj); in spapr_set_resize_hpt() local
3310 spapr->resize_hpt = SPAPR_RESIZE_HPT_DEFAULT; in spapr_set_resize_hpt()
3312 spapr->resize_hpt = SPAPR_RESIZE_HPT_DISABLED; in spapr_set_resize_hpt()
3314 spapr->resize_hpt = SPAPR_RESIZE_HPT_ENABLED; in spapr_set_resize_hpt()
3316 spapr->resize_hpt = SPAPR_RESIZE_HPT_REQUIRED; in spapr_set_resize_hpt()
3324 SpaprMachineState *spapr = SPAPR_MACHINE(obj); in spapr_get_vof() local
3326 return spapr->vof != NULL; in spapr_get_vof()
3331 SpaprMachineState *spapr = SPAPR_MACHINE(obj); in spapr_set_vof() local
3333 if (spapr->vof) { in spapr_set_vof()
3334 vof_cleanup(spapr->vof); in spapr_set_vof()
3335 g_free(spapr->vof); in spapr_set_vof()
3336 spapr->vof = NULL; in spapr_set_vof()
3341 spapr->vof = g_malloc0(sizeof(*spapr->vof)); in spapr_set_vof()
3346 SpaprMachineState *spapr = SPAPR_MACHINE(obj); in spapr_get_ic_mode() local
3348 if (spapr->irq == &spapr_irq_xics_legacy) { in spapr_get_ic_mode()
3350 } else if (spapr->irq == &spapr_irq_xics) { in spapr_get_ic_mode()
3352 } else if (spapr->irq == &spapr_irq_xive) { in spapr_get_ic_mode()
3354 } else if (spapr->irq == &spapr_irq_dual) { in spapr_get_ic_mode()
3362 SpaprMachineState *spapr = SPAPR_MACHINE(obj); in spapr_set_ic_mode() local
3364 if (SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { in spapr_set_ic_mode()
3371 spapr->irq = &spapr_irq_xics; in spapr_set_ic_mode()
3373 spapr->irq = &spapr_irq_xive; in spapr_set_ic_mode()
3375 spapr->irq = &spapr_irq_dual; in spapr_set_ic_mode()
3383 SpaprMachineState *spapr = SPAPR_MACHINE(obj); in spapr_get_host_model() local
3385 return g_strdup(spapr->host_model); in spapr_get_host_model()
3390 SpaprMachineState *spapr = SPAPR_MACHINE(obj); in spapr_set_host_model() local
3392 g_free(spapr->host_model); in spapr_set_host_model()
3393 spapr->host_model = g_strdup(value); in spapr_set_host_model()
3398 SpaprMachineState *spapr = SPAPR_MACHINE(obj); in spapr_get_host_serial() local
3400 return g_strdup(spapr->host_serial); in spapr_get_host_serial()
3405 SpaprMachineState *spapr = SPAPR_MACHINE(obj); in spapr_set_host_serial() local
3407 g_free(spapr->host_serial); in spapr_set_host_serial()
3408 spapr->host_serial = g_strdup(value); in spapr_set_host_serial()
3413 SpaprMachineState *spapr = SPAPR_MACHINE(obj); in spapr_instance_init() local
3414 SpaprMachineClass *smc = SPAPR_MACHINE_GET_CLASS(spapr); in spapr_instance_init()
3415 MachineState *ms = MACHINE(spapr); in spapr_instance_init()
3429 spapr->htab_fd = -1; in spapr_instance_init()
3430 spapr->use_hotplug_event_source = true; in spapr_instance_init()
3431 spapr->kvm_type = g_strdup(DEFAULT_KVM_TYPE); in spapr_instance_init()
3447 ppc_compat_add_property(obj, "max-cpu-compat", &spapr->max_compat_pvr, in spapr_instance_init()
3455 &spapr->vsmt, OBJ_PROP_FLAG_READWRITE); in spapr_instance_init()
3464 &spapr->kernel_addr, OBJ_PROP_FLAG_READWRITE); in spapr_instance_init()
3468 spapr->kernel_addr = KERNEL_LOAD_ADDR; in spapr_instance_init()
3475 spapr->irq = smc->irq; in spapr_instance_init()
3493 SpaprMachineState *spapr = SPAPR_MACHINE(obj); in spapr_machine_finalizefn() local
3495 g_free(spapr->kvm_type); in spapr_machine_finalizefn()
3500 SpaprMachineState *spapr = SPAPR_MACHINE(qdev_get_machine()); in spapr_do_system_reset_on_cpu() local
3505 if (spapr->fwnmi_system_reset_addr != -1) { in spapr_do_system_reset_on_cpu()
3521 if (spapr->fwnmi_system_reset_addr != -1) { in spapr_do_system_reset_on_cpu()
3522 env->nip = spapr->fwnmi_system_reset_addr; in spapr_do_system_reset_on_cpu()
3535 int spapr_lmb_dt_populate(SpaprDrc *drc, SpaprMachineState *spapr, in spapr_lmb_dt_populate() argument
3544 *fdt_start_offset = spapr_dt_memory_node(spapr, fdt, node, addr, in spapr_lmb_dt_populate()
3621 SpaprMachineState *spapr = SPAPR_MACHINE(hotplug_dev); in spapr_memory_pre_plug() local
3648 if (!spapr_check_pagesize(spapr, pagesize, errp)) { in spapr_memory_pre_plug()
3674 static SpaprDimmState *spapr_pending_dimm_unplugs_add(SpaprMachineState *spapr, in spapr_pending_dimm_unplugs_add() argument
3686 ds = spapr_pending_dimm_unplugs_find(spapr, dimm); in spapr_pending_dimm_unplugs_add()
3691 QTAILQ_INSERT_HEAD(&spapr->pending_dimm_unplugs, ds, next); in spapr_pending_dimm_unplugs_add()
3696 static void spapr_pending_dimm_unplugs_remove(SpaprMachineState *spapr, in spapr_pending_dimm_unplugs_remove() argument
3699 QTAILQ_REMOVE(&spapr->pending_dimm_unplugs, dimm_state, next); in spapr_pending_dimm_unplugs_remove()
3731 void spapr_memory_unplug_rollback(SpaprMachineState *spapr, DeviceState *dev) in spapr_memory_unplug_rollback() argument
3745 ds = spapr_pending_dimm_unplugs_find(spapr, dimm); in spapr_memory_unplug_rollback()
3754 spapr_pending_dimm_unplugs_remove(spapr, ds); in spapr_memory_unplug_rollback()
3784 SpaprMachineState *spapr = SPAPR_MACHINE(hotplug_ctrl); in spapr_lmb_release() local
3785 SpaprDimmState *ds = spapr_pending_dimm_unplugs_find(spapr, PC_DIMM(dev)); in spapr_lmb_release()
3790 ds = spapr_recover_pending_dimm_state(spapr, PC_DIMM(dev)); in spapr_lmb_release()
3810 SpaprMachineState *spapr = SPAPR_MACHINE(hotplug_dev); in spapr_memory_unplug() local
3811 SpaprDimmState *ds = spapr_pending_dimm_unplugs_find(spapr, PC_DIMM(dev)); in spapr_memory_unplug()
3818 spapr_pending_dimm_unplugs_remove(spapr, ds); in spapr_memory_unplug()
3824 SpaprMachineState *spapr = SPAPR_MACHINE(hotplug_dev); in spapr_memory_unplug_request() local
3848 if (spapr_pending_dimm_unplugs_find(spapr, dimm)) { in spapr_memory_unplug_request()
3854 spapr_pending_dimm_unplugs_add(spapr, nr_lmbs, dimm); in spapr_memory_unplug_request()
3897 SpaprMachineState *spapr = SPAPR_MACHINE(OBJECT(hotplug_dev)); in spapr_core_unplug_request() local
3913 spapr_vcpu_id(spapr, cc->core_id)); in spapr_core_unplug_request()
3931 int spapr_core_dt_populate(SpaprDrc *drc, SpaprMachineState *spapr, in spapr_core_dt_populate() argument
3945 spapr_dt_cpu(cs, fdt, offset, spapr); in spapr_core_dt_populate()
3966 SpaprMachineState *spapr = SPAPR_MACHINE(OBJECT(hotplug_dev)); in spapr_core_plug() local
3967 MachineClass *mc = MACHINE_GET_CLASS(spapr); in spapr_core_plug()
3980 spapr_vcpu_id(spapr, cc->core_id)); in spapr_core_plug()
4072 int spapr_phb_dt_populate(SpaprDrc *drc, SpaprMachineState *spapr, in spapr_phb_dt_populate() argument
4078 intc_phandle = spapr_irq_get_phandle(spapr, spapr->fdt_blob, errp); in spapr_phb_dt_populate()
4083 if (spapr_dt_phb(spapr, sphb, intc_phandle, fdt, fdt_start_offset)) { in spapr_phb_dt_populate()
4097 SpaprMachineState *spapr = SPAPR_MACHINE(OBJECT(hotplug_dev)); in spapr_phb_pre_plug() local
4099 SpaprMachineClass *smc = SPAPR_MACHINE_GET_CLASS(spapr); in spapr_phb_pre_plug()
4124 smc->phb_placement(spapr, sphb->index, in spapr_phb_pre_plug()
4133 SpaprMachineState *spapr = SPAPR_MACHINE(OBJECT(hotplug_dev)); in spapr_phb_plug() local
4134 SpaprMachineClass *smc = SPAPR_MACHINE_GET_CLASS(spapr); in spapr_phb_plug()
4193 SpaprMachineState *spapr = SPAPR_MACHINE(OBJECT(hotplug_dev)); in spapr_tpm_proxy_pre_plug() local
4195 if (spapr->tpm_proxy != NULL) { in spapr_tpm_proxy_pre_plug()
4205 SpaprMachineState *spapr = SPAPR_MACHINE(OBJECT(hotplug_dev)); in spapr_tpm_proxy_plug() local
4209 g_assert(spapr->tpm_proxy == NULL); in spapr_tpm_proxy_plug()
4211 spapr->tpm_proxy = tpm_proxy; in spapr_tpm_proxy_plug()
4216 SpaprMachineState *spapr = SPAPR_MACHINE(OBJECT(hotplug_dev)); in spapr_tpm_proxy_unplug() local
4220 spapr->tpm_proxy = NULL; in spapr_tpm_proxy_unplug()
4251 bool spapr_memory_hot_unplug_supported(SpaprMachineState *spapr) in spapr_memory_hot_unplug_supported() argument
4253 return spapr_ovec_test(spapr->ov5_cas, OV5_HP_EVT) || in spapr_memory_hot_unplug_supported()
4260 spapr_ovec_empty(spapr->ov5_cas); in spapr_memory_hot_unplug_supported()
4387 static bool spapr_phb_placement(SpaprMachineState *spapr, uint32_t index, in spapr_phb_placement() argument
4440 SpaprMachineState *spapr = SPAPR_MACHINE(dev); in spapr_ics_get() local
4442 return ics_valid_irq(spapr->ics, irq) ? spapr->ics : NULL; in spapr_ics_get()
4447 SpaprMachineState *spapr = SPAPR_MACHINE(dev); in spapr_ics_resend() local
4449 ics_resend(spapr->ics); in spapr_ics_resend()
4461 SpaprMachineState *spapr = SPAPR_MACHINE(obj); in spapr_pic_print_info() local
4463 spapr_irq_print_info(spapr, buf); in spapr_pic_print_info()
4476 SpaprMachineState *spapr = SPAPR_MACHINE(xfb); in spapr_match_nvt() local
4477 XivePresenter *xptr = XIVE_PRESENTER(spapr->active_intc); in spapr_match_nvt()
4511 SpaprMachineState *spapr = SPAPR_MACHINE(qdev_get_machine()); in spapr_set_vcpu_id() local
4512 MachineState *ms = MACHINE(spapr); in spapr_set_vcpu_id()
4515 vcpu_id = spapr_vcpu_id(spapr, cpu_index); in spapr_set_vcpu_id()
4521 vcpu_id * ms->smp.threads / spapr->vsmt); in spapr_set_vcpu_id()
4740 static void MACHINE_VER_SYM(class_init, spapr, __VA_ARGS__)( \
4745 MACHINE_VER_SYM(class_options, spapr, __VA_ARGS__)(mc); \
4751 static const TypeInfo MACHINE_VER_SYM(info, spapr, __VA_ARGS__) = \
4755 .class_init = MACHINE_VER_SYM(class_init, spapr, __VA_ARGS__), \
4757 static void MACHINE_VER_SYM(register, spapr, __VA_ARGS__)(void) \
4760 type_register_static(&MACHINE_VER_SYM(info, spapr, __VA_ARGS__)); \
4762 type_init(MACHINE_VER_SYM(register, spapr, __VA_ARGS__))
5011 static bool phb_placement_4_0(SpaprMachineState *spapr, uint32_t index, in phb_placement_4_0() argument
5016 if (!spapr_phb_placement(spapr, index, buid, pio, mmio32, mmio64, n_dma, in phb_placement_4_0()