repository: /home/avi/kvm
branch: master
commit 9ee6d75b06465110d823b754997259aa5236cbbc
Author: Avi Kivity <[EMAIL PROTECTED]>
Date:   Tue Dec 4 12:28:22 2007 +0200

    kvm: libkvm: remove abi 10 compatibility
    
    Signed-off-by: Avi Kivity <[EMAIL PROTECTED]>

diff --git a/libkvm/kvm-common.h b/libkvm/kvm-common.h
index c903409..65d137e 100644
--- a/libkvm/kvm-common.h
+++ b/libkvm/kvm-common.h
@@ -75,8 +75,6 @@ int kvm_arch_run(struct kvm_run *run, kvm_context_t kvm, int 
vcpu);
 
 
 void kvm_show_code(kvm_context_t kvm, int vcpu);
-int kvm_run_abi10(kvm_context_t kvm, int vcpu);
-
 
 int handle_halt(kvm_context_t kvm, int vcpu);
 int handle_shutdown(kvm_context_t kvm, int vcpu);
diff --git a/libkvm/libkvm-x86.c b/libkvm/libkvm-x86.c
index acb9af7..1ca6c76 100644
--- a/libkvm/libkvm-x86.c
+++ b/libkvm/libkvm-x86.c
@@ -1,6 +1,5 @@
 #include "libkvm.h"
 #include "kvm-x86.h"
-#include "kvm-abi-10.h"
 #include <errno.h>
 #include <sys/ioctl.h>
 #include <string.h>
@@ -267,188 +266,6 @@ int kvm_set_lapic(kvm_context_t kvm, int vcpu, struct 
kvm_lapic_state *s)
 
 #endif
 
-static int handle_io_abi10(kvm_context_t kvm, struct kvm_run_abi10 *run,
-                          int vcpu)
-{
-       uint16_t addr = run->io.port;
-       int r;
-       int i;
-       void *p = (void *)run + run->io.data_offset;
-
-       for (i = 0; i < run->io.count; ++i) {
-               switch (run->io.direction) {
-               case KVM_EXIT_IO_IN:
-                       switch (run->io.size) {
-                       case 1:
-                               r = kvm->callbacks->inb(kvm->opaque, addr, p);
-                               break;
-                       case 2:
-                               r = kvm->callbacks->inw(kvm->opaque, addr, p);
-                               break;
-                       case 4:
-                               r = kvm->callbacks->inl(kvm->opaque, addr, p);
-                               break;
-                       default:
-                               fprintf(stderr, "bad I/O size %d\n", 
run->io.size);
-                               return -EMSGSIZE;
-                       }
-                       break;
-               case KVM_EXIT_IO_OUT:
-                       switch (run->io.size) {
-                       case 1:
-                               r = kvm->callbacks->outb(kvm->opaque, addr,
-                                                    *(uint8_t *)p);
-                               break;
-                       case 2:
-                               r = kvm->callbacks->outw(kvm->opaque, addr,
-                                                    *(uint16_t *)p);
-                               break;
-                       case 4:
-                               r = kvm->callbacks->outl(kvm->opaque, addr,
-                                                    *(uint32_t *)p);
-                               break;
-                       default:
-                               fprintf(stderr, "bad I/O size %d\n", 
run->io.size);
-                               return -EMSGSIZE;
-                       }
-                       break;
-               default:
-                       fprintf(stderr, "bad I/O direction %d\n", 
run->io.direction);
-                       return -EPROTO;
-               }
-
-               p += run->io.size;
-       }
-       run->io_completed = 1;
-
-       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;
-}
-
-int kvm_run_abi10(kvm_context_t kvm, int vcpu)
-{
-       int r;
-       int fd = kvm->vcpu_fd[vcpu];
-       struct kvm_run_abi10 *run = (struct kvm_run_abi10 *)kvm->run[vcpu];
-
-again:
-       run->request_interrupt_window = try_push_interrupts(kvm);
-       r = pre_kvm_run(kvm, vcpu);
-       if (r)
-           return r;
-       r = ioctl(fd, KVM_RUN, 0);
-       post_kvm_run(kvm, vcpu);
-
-       run->io_completed = 0;
-       if (r == -1 && errno != EINTR) {
-               r = -errno;
-               printf("kvm_run: %m\n");
-               return r;
-       }
-       if (r == -1) {
-               r = handle_io_window(kvm);
-               goto more;
-       }
-       if (1) {
-               switch (run->exit_reason) {
-               case KVM_EXIT_UNKNOWN:
-                       fprintf(stderr, "unhandled vm exit: 0x%x vcpu_id %d\n",
-                               (unsigned)run->hw.hardware_exit_reason, vcpu);
-                       kvm_show_regs(kvm, vcpu);
-                       abort();
-                       break;
-               case KVM_EXIT_FAIL_ENTRY:
-                       fprintf(stderr, "kvm_run: failed entry, reason %u\n",
-                               
(unsigned)run->fail_entry.hardware_entry_failure_reason & 0xffff);
-                       return -ENOEXEC;
-                       break;
-               case KVM_EXIT_EXCEPTION:
-                       fprintf(stderr, "exception %d (%x)\n",
-                              run->ex.exception,
-                              run->ex.error_code);
-                       kvm_show_regs(kvm, vcpu);
-                       kvm_show_code(kvm, vcpu);
-                       abort();
-                       break;
-               case KVM_EXIT_IO:
-                       r = handle_io_abi10(kvm, run, vcpu);
-                       break;
-               case KVM_EXIT_DEBUG:
-                       r = handle_debug(kvm, vcpu);
-                       break;
-               case KVM_EXIT_MMIO:
-                       r = handle_mmio_abi10(kvm, run);
-                       break;
-               case KVM_EXIT_HLT:
-                       r = handle_halt(kvm, vcpu);
-                       break;
-               case KVM_EXIT_IRQ_WINDOW_OPEN:
-                       break;
-               case KVM_EXIT_SHUTDOWN:
-                       r = handle_shutdown(kvm, vcpu);
-                       break;
-               default:
-                       fprintf(stderr, "unhandled vm exit: 0x%x\n", 
run->exit_reason);
-                       kvm_show_regs(kvm, vcpu);
-                       abort();
-                       break;
-               }
-       }
-more:
-       if (!r)
-               goto again;
-       return r;
-}
-
-
 void kvm_show_code(kvm_context_t kvm, int vcpu)
 {
 #define CR0_PE_MASK    (1ULL<<0)
@@ -619,8 +436,6 @@ uint64_t kvm_get_apic_base(kvm_context_t kvm, int vcpu)
 {
        struct kvm_run *run = kvm->run[vcpu];
 
-       if (kvm_abi == 10)
-               return ((struct kvm_run_abi10 *)run)->apic_base;
        return run->apic_base;
 }
 
@@ -628,10 +443,6 @@ void kvm_set_cr8(kvm_context_t kvm, int vcpu, uint64_t cr8)
 {
        struct kvm_run *run = kvm->run[vcpu];
 
-       if (kvm_abi == 10) {
-               ((struct kvm_run_abi10 *)run)->cr8 = cr8;
-               return;
-       }
        run->cr8 = cr8;
 }
 
diff --git a/libkvm/libkvm.c b/libkvm/libkvm.c
index 394cfaa..573a9ab 100644
--- a/libkvm/libkvm.c
+++ b/libkvm/libkvm.c
@@ -35,7 +35,6 @@
 #include <errno.h>
 #include <sys/ioctl.h>
 #include "libkvm.h"
-#include "kvm-abi-10.h"
 
 #if defined(__x86_64__) || defined(__i386__)
 #include "kvm-x86.h"
@@ -223,7 +222,7 @@ kvm_context_t kvm_init(struct kvm_callbacks *callbacks,
                    "KVM_GET_API_VERSION ioctl not supported\n");
            goto out_close;
        }
-       if (r < EXPECTED_KVM_API_VERSION && r != 10) {
+       if (r < EXPECTED_KVM_API_VERSION) {
                fprintf(stderr, "kvm kernel version too old: "
                        "We expect API version %d or newer, but got "
                        "version %d\n",
@@ -846,8 +845,6 @@ int kvm_get_interrupt_flag(kvm_context_t kvm, int vcpu)
 {
        struct kvm_run *run = kvm->run[vcpu];
 
-       if (kvm_abi == 10)
-               return ((struct kvm_run_abi10 *)run)->if_flag;
        return run->if_flag;
 }
 
@@ -855,8 +852,6 @@ int kvm_is_ready_for_interrupt_injection(kvm_context_t kvm, 
int vcpu)
 {
        struct kvm_run *run = kvm->run[vcpu];
 
-       if (kvm_abi == 10)
-               return ((struct kvm_run_abi10 
*)run)->ready_for_interrupt_injection;
        return run->ready_for_interrupt_injection;
 }
 
@@ -866,9 +861,6 @@ int kvm_run(kvm_context_t kvm, int vcpu)
        int fd = kvm->vcpu_fd[vcpu];
        struct kvm_run *run = kvm->run[vcpu];
 
-       if (kvm_abi == 10)
-               return kvm_run_abi10(kvm, vcpu);
-
 again:
        if (!kvm->irqchip_in_kernel)
                run->request_interrupt_window = try_push_interrupts(kvm);

-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
kvm-commits mailing list
kvm-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-commits

Reply via email to