Lines Matching refs:run
86 vcpu->run->exit_reason = KVM_EXIT_INTR; in kvmppc_prepare_to_enter()
270 int kvmppc_emulate_mmio(struct kvm_run *run, struct kvm_vcpu *vcpu) in kvmppc_emulate_mmio() argument
286 run->exit_reason = KVM_EXIT_MMIO; in kvmppc_emulate_mmio()
717 struct kvm_run *run) in kvmppc_complete_mmio_load() argument
721 if (run->mmio.len > sizeof(gpr)) { in kvmppc_complete_mmio_load()
722 printk(KERN_ERR "bad MMIO length: %d\n", run->mmio.len); in kvmppc_complete_mmio_load()
727 switch (run->mmio.len) { in kvmppc_complete_mmio_load()
728 case 8: gpr = *(u64 *)run->mmio.data; break; in kvmppc_complete_mmio_load()
729 case 4: gpr = *(u32 *)run->mmio.data; break; in kvmppc_complete_mmio_load()
730 case 2: gpr = *(u16 *)run->mmio.data; break; in kvmppc_complete_mmio_load()
731 case 1: gpr = *(u8 *)run->mmio.data; break; in kvmppc_complete_mmio_load()
734 switch (run->mmio.len) { in kvmppc_complete_mmio_load()
735 case 8: gpr = swab64(*(u64 *)run->mmio.data); break; in kvmppc_complete_mmio_load()
736 case 4: gpr = swab32(*(u32 *)run->mmio.data); break; in kvmppc_complete_mmio_load()
737 case 2: gpr = swab16(*(u16 *)run->mmio.data); break; in kvmppc_complete_mmio_load()
738 case 1: gpr = *(u8 *)run->mmio.data; break; in kvmppc_complete_mmio_load()
743 switch (run->mmio.len) { in kvmppc_complete_mmio_load()
781 int kvmppc_handle_load(struct kvm_run *run, struct kvm_vcpu *vcpu, in kvmppc_handle_load() argument
795 if (bytes > sizeof(run->mmio.data)) { in kvmppc_handle_load()
797 run->mmio.len); in kvmppc_handle_load()
800 run->mmio.phys_addr = vcpu->arch.paddr_accessed; in kvmppc_handle_load()
801 run->mmio.len = bytes; in kvmppc_handle_load()
802 run->mmio.is_write = 0; in kvmppc_handle_load()
812 ret = kvm_io_bus_read(vcpu, KVM_MMIO_BUS, run->mmio.phys_addr, in kvmppc_handle_load()
813 bytes, &run->mmio.data); in kvmppc_handle_load()
818 kvmppc_complete_mmio_load(vcpu, run); in kvmppc_handle_load()
828 int kvmppc_handle_loads(struct kvm_run *run, struct kvm_vcpu *vcpu, in kvmppc_handle_loads() argument
835 r = kvmppc_handle_load(run, vcpu, rt, bytes, is_default_endian); in kvmppc_handle_loads()
840 int kvmppc_handle_store(struct kvm_run *run, struct kvm_vcpu *vcpu, in kvmppc_handle_store() argument
843 void *data = run->mmio.data; in kvmppc_handle_store()
854 if (bytes > sizeof(run->mmio.data)) { in kvmppc_handle_store()
856 run->mmio.len); in kvmppc_handle_store()
859 run->mmio.phys_addr = vcpu->arch.paddr_accessed; in kvmppc_handle_store()
860 run->mmio.len = bytes; in kvmppc_handle_store()
861 run->mmio.is_write = 1; in kvmppc_handle_store()
884 ret = kvm_io_bus_write(vcpu, KVM_MMIO_BUS, run->mmio.phys_addr, in kvmppc_handle_store()
885 bytes, &run->mmio.data); in kvmppc_handle_store()
995 int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run) in kvm_arch_vcpu_ioctl_run() argument
1005 kvmppc_complete_mmio_load(vcpu, run); in kvm_arch_vcpu_ioctl_run()
1008 u64 *gprs = run->osi.gprs; in kvm_arch_vcpu_ioctl_run()
1017 kvmppc_set_gpr(vcpu, 3, run->papr_hcall.ret); in kvm_arch_vcpu_ioctl_run()
1019 kvmppc_set_gpr(vcpu, 4 + i, run->papr_hcall.args[i]); in kvm_arch_vcpu_ioctl_run()
1023 kvmppc_set_epr(vcpu, run->epr.epr); in kvm_arch_vcpu_ioctl_run()
1028 r = kvmppc_vcpu_run(run, vcpu); in kvm_arch_vcpu_ioctl_run()