# HG changeset patch # User Jerone Young <[EMAIL PROTECTED]> # Date 1193849564 18000 # Node ID a694904630e6805dfe51f4eed16e18b7ac2ed504 # Parent 054af67e39314b79bbee8e4cc92a7354aff92fc2 Move handle_mmio_abi10 to kvmctl-x86.c
Signed-off-by: Jerone Young <[EMAIL PROTECTED]> diff --git a/libkvm/libkvm-x86.c b/libkvm/libkvm-x86.c --- a/libkvm/libkvm-x86.c +++ b/libkvm/libkvm-x86.c @@ -460,3 +460,53 @@ static int handle_io_abi10(kvm_context_t return 0; } + +static int handle_mmio_abi10(kvm_context_t kvm, struct kvm_run_abi10 *kvm_run) +{ + unsigned long addr = kvm_run->mmio.phys_addr; + void *data = kvm_run->mmio.data; + int r = -1; + + if (kvm_run->mmio.is_write) { + switch (kvm_run->mmio.len) { + case 1: + r = kvm->callbacks->writeb(kvm->opaque, addr, + *(uint8_t *)data); + break; + case 2: + r = kvm->callbacks->writew(kvm->opaque, addr, + *(uint16_t *)data); + break; + case 4: + r = kvm->callbacks->writel(kvm->opaque, addr, + *(uint32_t *)data); + break; + case 8: + r = kvm->callbacks->writeq(kvm->opaque, addr, + *(uint64_t *)data); + break; + } + } else { + switch (kvm_run->mmio.len) { + case 1: + r = kvm->callbacks->readb(kvm->opaque, addr, + (uint8_t *)data); + break; + case 2: + r = kvm->callbacks->readw(kvm->opaque, addr, + (uint16_t *)data); + break; + case 4: + r = kvm->callbacks->readl(kvm->opaque, addr, + (uint32_t *)data); + break; + case 8: + r = kvm->callbacks->readq(kvm->opaque, addr, + (uint64_t *)data); + break; + } + kvm_run->io_completed = 1; + } + return r; +} + diff --git a/libkvm/libkvm.c b/libkvm/libkvm.c --- a/libkvm/libkvm.c +++ b/libkvm/libkvm.c @@ -793,46 +793,6 @@ static void kvm_show_code(kvm_context_t fprintf(stderr, "code:%s\n", code_str); } -static int handle_mmio_abi10(kvm_context_t kvm, struct kvm_run_abi10 *kvm_run) -{ - unsigned long addr = kvm_run->mmio.phys_addr; - void *data = kvm_run->mmio.data; - int r = -1; - - if (kvm_run->mmio.is_write) { - switch (kvm_run->mmio.len) { - case 1: - r = kvm->callbacks->writeb(kvm->opaque, addr, *(uint8_t *)data); - break; - case 2: - r = kvm->callbacks->writew(kvm->opaque, addr, *(uint16_t *)data); - break; - case 4: - r = kvm->callbacks->writel(kvm->opaque, addr, *(uint32_t *)data); - break; - case 8: - r = kvm->callbacks->writeq(kvm->opaque, addr, *(uint64_t *)data); - break; - } - } else { - switch (kvm_run->mmio.len) { - case 1: - r = kvm->callbacks->readb(kvm->opaque, addr, (uint8_t *)data); - break; - case 2: - r = kvm->callbacks->readw(kvm->opaque, addr, (uint16_t *)data); - break; - case 4: - r = kvm->callbacks->readl(kvm->opaque, addr, (uint32_t *)data); - break; - case 8: - r = kvm->callbacks->readq(kvm->opaque, addr, (uint64_t *)data); - break; - } - kvm_run->io_completed = 1; - } - return r; -} static int handle_mmio(kvm_context_t kvm, struct kvm_run *kvm_run) { ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel