Lines Matching refs:run

100 			vcpu->run->exit_reason = KVM_EXIT_INTR;  in kvmppc_prepare_to_enter()
287 int kvmppc_emulate_mmio(struct kvm_run *run, struct kvm_vcpu *vcpu) in kvmppc_emulate_mmio() argument
303 run->exit_reason = KVM_EXIT_MMIO; in kvmppc_emulate_mmio()
1092 struct kvm_run *run) in kvmppc_complete_mmio_load() argument
1096 if (run->mmio.len > sizeof(gpr)) { in kvmppc_complete_mmio_load()
1097 printk(KERN_ERR "bad MMIO length: %d\n", run->mmio.len); in kvmppc_complete_mmio_load()
1102 switch (run->mmio.len) { in kvmppc_complete_mmio_load()
1103 case 8: gpr = *(u64 *)run->mmio.data; break; in kvmppc_complete_mmio_load()
1104 case 4: gpr = *(u32 *)run->mmio.data; break; in kvmppc_complete_mmio_load()
1105 case 2: gpr = *(u16 *)run->mmio.data; break; in kvmppc_complete_mmio_load()
1106 case 1: gpr = *(u8 *)run->mmio.data; break; in kvmppc_complete_mmio_load()
1109 switch (run->mmio.len) { in kvmppc_complete_mmio_load()
1110 case 8: gpr = swab64(*(u64 *)run->mmio.data); break; in kvmppc_complete_mmio_load()
1111 case 4: gpr = swab32(*(u32 *)run->mmio.data); break; in kvmppc_complete_mmio_load()
1112 case 2: gpr = swab16(*(u16 *)run->mmio.data); break; in kvmppc_complete_mmio_load()
1113 case 1: gpr = *(u8 *)run->mmio.data; break; in kvmppc_complete_mmio_load()
1118 if ((vcpu->arch.mmio_sp64_extend) && (run->mmio.len == 4)) in kvmppc_complete_mmio_load()
1122 switch (run->mmio.len) { in kvmppc_complete_mmio_load()
1195 static int __kvmppc_handle_load(struct kvm_run *run, struct kvm_vcpu *vcpu, in __kvmppc_handle_load() argument
1209 if (bytes > sizeof(run->mmio.data)) { in __kvmppc_handle_load()
1211 run->mmio.len); in __kvmppc_handle_load()
1214 run->mmio.phys_addr = vcpu->arch.paddr_accessed; in __kvmppc_handle_load()
1215 run->mmio.len = bytes; in __kvmppc_handle_load()
1216 run->mmio.is_write = 0; in __kvmppc_handle_load()
1226 ret = kvm_io_bus_read(vcpu, KVM_MMIO_BUS, run->mmio.phys_addr, in __kvmppc_handle_load()
1227 bytes, &run->mmio.data); in __kvmppc_handle_load()
1232 kvmppc_complete_mmio_load(vcpu, run); in __kvmppc_handle_load()
1240 int kvmppc_handle_load(struct kvm_run *run, struct kvm_vcpu *vcpu, in kvmppc_handle_load() argument
1244 return __kvmppc_handle_load(run, vcpu, rt, bytes, is_default_endian, 0); in kvmppc_handle_load()
1249 int kvmppc_handle_loads(struct kvm_run *run, struct kvm_vcpu *vcpu, in kvmppc_handle_loads() argument
1253 return __kvmppc_handle_load(run, vcpu, rt, bytes, is_default_endian, 1); in kvmppc_handle_loads()
1257 int kvmppc_handle_vsx_load(struct kvm_run *run, struct kvm_vcpu *vcpu, in kvmppc_handle_vsx_load() argument
1268 emulated = __kvmppc_handle_load(run, vcpu, rt, bytes, in kvmppc_handle_vsx_load()
1274 vcpu->arch.paddr_accessed += run->mmio.len; in kvmppc_handle_vsx_load()
1283 int kvmppc_handle_store(struct kvm_run *run, struct kvm_vcpu *vcpu, in kvmppc_handle_store() argument
1286 void *data = run->mmio.data; in kvmppc_handle_store()
1297 if (bytes > sizeof(run->mmio.data)) { in kvmppc_handle_store()
1299 run->mmio.len); in kvmppc_handle_store()
1302 run->mmio.phys_addr = vcpu->arch.paddr_accessed; in kvmppc_handle_store()
1303 run->mmio.len = bytes; in kvmppc_handle_store()
1304 run->mmio.is_write = 1; in kvmppc_handle_store()
1330 ret = kvm_io_bus_write(vcpu, KVM_MMIO_BUS, run->mmio.phys_addr, in kvmppc_handle_store()
1331 bytes, &run->mmio.data); in kvmppc_handle_store()
1399 int kvmppc_handle_vsx_store(struct kvm_run *run, struct kvm_vcpu *vcpu, in kvmppc_handle_vsx_store() argument
1415 emulated = kvmppc_handle_store(run, vcpu, in kvmppc_handle_vsx_store()
1421 vcpu->arch.paddr_accessed += run->mmio.len; in kvmppc_handle_vsx_store()
1431 struct kvm_run *run) in kvmppc_emulate_mmio_vsx_loadstore() argument
1436 vcpu->arch.paddr_accessed += run->mmio.len; in kvmppc_emulate_mmio_vsx_loadstore()
1439 emulated = kvmppc_handle_vsx_load(run, vcpu, vcpu->arch.io_gpr, in kvmppc_emulate_mmio_vsx_loadstore()
1440 run->mmio.len, 1, vcpu->arch.mmio_sign_extend); in kvmppc_emulate_mmio_vsx_loadstore()
1442 emulated = kvmppc_handle_vsx_store(run, vcpu, in kvmppc_emulate_mmio_vsx_loadstore()
1443 vcpu->arch.io_gpr, run->mmio.len, 1); in kvmppc_emulate_mmio_vsx_loadstore()
1448 run->exit_reason = KVM_EXIT_MMIO; in kvmppc_emulate_mmio_vsx_loadstore()
1453 run->exit_reason = KVM_EXIT_INTERNAL_ERROR; in kvmppc_emulate_mmio_vsx_loadstore()
1454 run->internal.suberror = KVM_INTERNAL_ERROR_EMULATION; in kvmppc_emulate_mmio_vsx_loadstore()
1466 int kvmppc_handle_vmx_load(struct kvm_run *run, struct kvm_vcpu *vcpu, in kvmppc_handle_vmx_load() argument
1475 emulated = __kvmppc_handle_load(run, vcpu, rt, bytes, in kvmppc_handle_vmx_load()
1481 vcpu->arch.paddr_accessed += run->mmio.len; in kvmppc_handle_vmx_load()
1561 int kvmppc_handle_vmx_store(struct kvm_run *run, struct kvm_vcpu *vcpu, in kvmppc_handle_vmx_store() argument
1596 emulated = kvmppc_handle_store(run, vcpu, val, bytes, in kvmppc_handle_vmx_store()
1601 vcpu->arch.paddr_accessed += run->mmio.len; in kvmppc_handle_vmx_store()
1610 struct kvm_run *run) in kvmppc_emulate_mmio_vmx_loadstore() argument
1615 vcpu->arch.paddr_accessed += run->mmio.len; in kvmppc_emulate_mmio_vmx_loadstore()
1618 emulated = kvmppc_handle_vmx_load(run, vcpu, in kvmppc_emulate_mmio_vmx_loadstore()
1619 vcpu->arch.io_gpr, run->mmio.len, 1); in kvmppc_emulate_mmio_vmx_loadstore()
1621 emulated = kvmppc_handle_vmx_store(run, vcpu, in kvmppc_emulate_mmio_vmx_loadstore()
1622 vcpu->arch.io_gpr, run->mmio.len, 1); in kvmppc_emulate_mmio_vmx_loadstore()
1627 run->exit_reason = KVM_EXIT_MMIO; in kvmppc_emulate_mmio_vmx_loadstore()
1632 run->exit_reason = KVM_EXIT_INTERNAL_ERROR; in kvmppc_emulate_mmio_vmx_loadstore()
1633 run->internal.suberror = KVM_INTERNAL_ERROR_EMULATION; in kvmppc_emulate_mmio_vmx_loadstore()
1741 int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run) in kvm_arch_vcpu_ioctl_run() argument
1750 kvmppc_complete_mmio_load(vcpu, run); in kvm_arch_vcpu_ioctl_run()
1758 r = kvmppc_emulate_mmio_vsx_loadstore(vcpu, run); in kvm_arch_vcpu_ioctl_run()
1772 r = kvmppc_emulate_mmio_vmx_loadstore(vcpu, run); in kvm_arch_vcpu_ioctl_run()
1780 u64 *gprs = run->osi.gprs; in kvm_arch_vcpu_ioctl_run()
1789 kvmppc_set_gpr(vcpu, 3, run->papr_hcall.ret); in kvm_arch_vcpu_ioctl_run()
1791 kvmppc_set_gpr(vcpu, 4 + i, run->papr_hcall.args[i]); in kvm_arch_vcpu_ioctl_run()
1795 kvmppc_set_epr(vcpu, run->epr.epr); in kvm_arch_vcpu_ioctl_run()
1802 if (run->immediate_exit) in kvm_arch_vcpu_ioctl_run()
1805 r = kvmppc_vcpu_run(run, vcpu); in kvm_arch_vcpu_ioctl_run()