Lines Matching refs:spapr
14 void spapr_nested_reset(SpaprMachineState *spapr) in spapr_nested_reset() argument
16 if (spapr_get_cap(spapr, SPAPR_CAP_NESTED_KVM_HV)) { in spapr_nested_reset()
19 } else if (spapr_get_cap(spapr, SPAPR_CAP_NESTED_PAPR)) { in spapr_nested_reset()
20 spapr->nested.capabilities_set = false; in spapr_nested_reset()
25 spapr->nested.api = 0; in spapr_nested_reset()
29 uint8_t spapr_nested_api(SpaprMachineState *spapr) in spapr_nested_api() argument
31 return spapr->nested.api; in spapr_nested_api()
36 bool spapr_get_pate_nested_hv(SpaprMachineState *spapr, PowerPCCPU *cpu, in spapr_get_pate_nested_hv() argument
43 patb = spapr->nested.ptcr & PTCR_PATB; in spapr_get_pate_nested_hv()
44 pats = spapr->nested.ptcr & PTCR_PATS; in spapr_get_pate_nested_hv()
65 SpaprMachineStateNestedGuest *spapr_get_nested_guest(SpaprMachineState *spapr, in spapr_get_nested_guest() argument
68 return spapr->nested.guests ? in spapr_get_nested_guest()
69 g_hash_table_lookup(spapr->nested.guests, in spapr_get_nested_guest()
73 bool spapr_get_pate_nested_papr(SpaprMachineState *spapr, PowerPCCPU *cpu, in spapr_get_pate_nested_papr() argument
78 guest = spapr_get_nested_guest(spapr, lpid); in spapr_get_pate_nested_papr()
91 SpaprMachineState *spapr, in h_set_ptbl() argument
97 if (!spapr_get_cap(spapr, SPAPR_CAP_NESTED_KVM_HV)) { in h_set_ptbl()
105 spapr->nested.ptcr = ptcr; /* Save new partition table */ in h_set_ptbl()
111 SpaprMachineState *spapr, in h_tlb_invalidate() argument
125 SpaprMachineState *spapr, in h_copy_tofrom_guest() argument
139 SpaprMachineState *spapr = SPAPR_MACHINE(qdev_get_machine()); in nested_save_state() local
166 if (spapr_nested_api(spapr) == NESTED_API_PAPR) { in nested_save_state()
215 } else if (spapr_nested_api(spapr) == NESTED_API_KVM_HV) { in nested_save_state()
238 SpaprMachineState *spapr = SPAPR_MACHINE(qdev_get_machine()); in nested_load_state() local
265 if (spapr_nested_api(spapr) == NESTED_API_PAPR) { in nested_load_state()
314 } else if (spapr_nested_api(spapr) == NESTED_API_KVM_HV) { in nested_load_state()
325 SpaprMachineState *spapr, in h_enter_nested() argument
343 if (spapr->nested.ptcr == 0) { in h_enter_nested()
596 static void *get_vcpu_state_ptr(SpaprMachineState *spapr, in get_vcpu_state_ptr() argument
604 static void *get_vcpu_ptr(SpaprMachineState *spapr, in get_vcpu_ptr() argument
612 static void *get_guest_ptr(SpaprMachineState *spapr, in get_guest_ptr() argument
619 static void *get_machine_ptr(SpaprMachineState *spapr, in get_machine_ptr() argument
624 return &spapr->nested; in get_machine_ptr()
1210 SpaprMachineState *spapr, in h_guest_get_capabilities() argument
1223 spapr->max_compat_pvr)) { in h_guest_get_capabilities()
1229 spapr->max_compat_pvr)) { in h_guest_get_capabilities()
1235 spapr->max_compat_pvr)) { in h_guest_get_capabilities()
1243 SpaprMachineState *spapr, in h_guest_set_capabilities() argument
1270 spapr->max_compat_pvr)) { in h_guest_set_capabilities()
1273 spapr->max_compat_pvr)) { in h_guest_set_capabilities()
1276 spapr->max_compat_pvr)) { in h_guest_set_capabilities()
1296 if (!spapr->nested.capabilities_set) { in h_guest_set_capabilities()
1297 spapr->nested.capabilities_set = true; in h_guest_set_capabilities()
1298 spapr->nested.pvr_base = env->spr[SPR_PVR]; in h_guest_set_capabilities()
1314 SpaprMachineState *spapr, in h_guest_create() argument
1333 if (!spapr->nested.capabilities_set) { in h_guest_create()
1337 if (!spapr->nested.guests) { in h_guest_create()
1338 spapr->nested.guests = g_hash_table_new_full(NULL, in h_guest_create()
1344 nguests = g_hash_table_size(spapr->nested.guests); in h_guest_create()
1352 if (!(g_hash_table_lookup(spapr->nested.guests, in h_guest_create()
1367 guest->pvr_logical = spapr->nested.pvr_base; in h_guest_create()
1368 g_hash_table_insert(spapr->nested.guests, GINT_TO_POINTER(guestid), guest); in h_guest_create()
1375 SpaprMachineState *spapr, in h_guest_delete() argument
1391 g_hash_table_destroy(spapr->nested.guests); in h_guest_delete()
1395 guest = g_hash_table_lookup(spapr->nested.guests, GINT_TO_POINTER(guestid)); in h_guest_delete()
1400 g_hash_table_remove(spapr->nested.guests, GINT_TO_POINTER(guestid)); in h_guest_delete()
1406 SpaprMachineState *spapr, in h_guest_create_vcpu() argument
1419 guest = spapr_get_nested_guest(spapr, guestid); in h_guest_create_vcpu()
1453 static target_ulong getset_state(SpaprMachineState *spapr, in getset_state() argument
1487 ptr = type->location(spapr, guest, vcpuid); in getset_state()
1504 SpaprMachineState *spapr, in map_and_getset_state() argument
1528 rc = getset_state(spapr, guest, vcpuid, gsr); in map_and_getset_state()
1536 SpaprMachineState *spapr, in h_guest_getset_state() argument
1580 guest = spapr_get_nested_guest(spapr, lpid); in h_guest_getset_state()
1585 return map_and_getset_state(cpu, spapr, guest, vcpuid, &gsr); in h_guest_getset_state()
1589 SpaprMachineState *spapr, in h_guest_set_state() argument
1593 return h_guest_getset_state(cpu, spapr, args, true); in h_guest_set_state()
1597 SpaprMachineState *spapr, in h_guest_get_state() argument
1601 return h_guest_getset_state(cpu, spapr, args, false); in h_guest_get_state()
1696 static void exit_process_output_buffer(SpaprMachineState *spapr, in exit_process_output_buffer() argument
1735 getset_state(spapr, guest, vcpuid, &gsr); in exit_process_output_buffer()
1741 void spapr_exit_nested_papr(SpaprMachineState *spapr, PowerPCCPU *cpu, int excp) in spapr_exit_nested_papr() argument
1753 guest = spapr_get_nested_guest(spapr, lpid); in spapr_exit_nested_papr()
1760 exit_process_output_buffer(spapr, cpu, guest, vcpuid, &r3_return); in spapr_exit_nested_papr()
1777 SpaprMachineState *spapr = SPAPR_MACHINE(qdev_get_machine()); in spapr_exit_nested() local
1781 if (spapr_nested_api(spapr) == NESTED_API_KVM_HV) { in spapr_exit_nested()
1783 } else if (spapr_nested_api(spapr) == NESTED_API_PAPR) { in spapr_exit_nested()
1784 spapr_exit_nested_papr(spapr, cpu, excp); in spapr_exit_nested()
1820 SpaprMachineState *spapr = SPAPR_MACHINE(qdev_get_machine()); in nested_papr_run_vcpu() local
1827 assert(spapr->nested.api); /* ensure API version is initialized */ in nested_papr_run_vcpu()
1840 SpaprMachineState *spapr, in h_guest_run_vcpu() argument
1856 guest = spapr_get_nested_guest(spapr, lpid); in h_guest_run_vcpu()
1875 rc = map_and_getset_state(cpu, spapr, guest, vcpuid, &gsr); in h_guest_run_vcpu()
1942 bool spapr_get_pate_nested_hv(SpaprMachineState *spapr, PowerPCCPU *cpu, in spapr_get_pate_nested_hv() argument
1948 bool spapr_get_pate_nested_papr(SpaprMachineState *spapr, PowerPCCPU *cpu, in spapr_get_pate_nested_papr() argument