From: Jerone Young <jyoung5-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
To: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Cc: kvm-ppc-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: [PATCH 15 of 27] Move handle_io_abi_10 to kvmctl-x86.c
Date: Wed, 31 Oct 2007 12:05:20 -0500 [thread overview]
Message-ID: <054af67e39314b79bbee.1193850320@thinkpad> (raw)
In-Reply-To: <patchbomb.1193850305@thinkpad>
# HG changeset patch
# User Jerone Young <jyoung5-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
# Date 1193849564 18000
# Node ID 054af67e39314b79bbee8e4cc92a7354aff92fc2
# Parent 8bb1470e4e5d442f0b46abedc9402a05e00119b6
Move handle_io_abi_10 to kvmctl-x86.c
Signed-off-by: Jerone Young <jyoung5-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
diff --git a/libkvm/libkvm-x86.c b/libkvm/libkvm-x86.c
--- a/libkvm/libkvm-x86.c
+++ b/libkvm/libkvm-x86.c
@@ -1,4 +1,5 @@
#include "libkvm.h"
+#include "kvm-abi-10.h"
#include <unistd.h>
#include <stropts.h>
#include <sys/mman.h>
@@ -403,4 +404,59 @@ int kvm_set_lapic(kvm_context_t kvm, int
#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;
+}
diff --git a/libkvm/libkvm.c b/libkvm/libkvm.c
--- a/libkvm/libkvm.c
+++ b/libkvm/libkvm.c
@@ -538,8 +538,7 @@ int kvm_set_irqchip(kvm_context_t kvm, s
#endif
-static int handle_io_abi10(kvm_context_t kvm, struct kvm_run_abi10 *run,
- int vcpu)
+static int handle_io(kvm_context_t kvm, struct kvm_run *run, int vcpu)
{
uint16_t addr = run->io.port;
int r;
@@ -590,62 +589,6 @@ static int handle_io_abi10(kvm_context_t
p += run->io.size;
}
- run->io_completed = 1;
-
- return 0;
-}
-
-static int handle_io(kvm_context_t kvm, struct kvm_run *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;
- }
return 0;
}
@@ -1224,3 +1167,4 @@ int kvm_irqchip_in_kernel(kvm_context_t
{
return kvm->irqchip_in_kernel;
}
+
-------------------------------------------------------------------------
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/
next prev parent reply other threads:[~2007-10-31 17:05 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-31 17:05 [PATCH 00 of 27] Refactor libkvm code Phase 1 Jerone Young
2007-10-31 17:05 ` [PATCH 01 of 27] Move kvm_context to kvmctl.h Jerone Young
2007-10-31 17:37 ` Hollis Blanchard
2007-10-31 18:48 ` Jerone Young
2007-10-31 22:33 ` Avi Kivity
2007-10-31 17:05 ` [PATCH 02 of 27] Make static slot & kvm_memory region funcions public Jerone Young
2007-11-01 12:41 ` Avi Kivity
2007-10-31 17:05 ` [PATCH 03 of 27] Move fuction kvm_alloc_kernel_memory to kvmctl-x86.c Jerone Young
2007-10-31 17:05 ` [PATCH 04 of 27] Move kvm_alloc_userspace_memory " Jerone Young
2007-10-31 17:05 ` [PATCH 05 of 27] Move kvm_set_tss_addr " Jerone Young
2007-10-31 17:05 ` [PATCH 06 of 27] imported patch move_kvm_set_init_tss Jerone Young
2007-10-31 17:05 ` [PATCH 07 of 27] Move function kvm_create_default_phys_mem to kvmctl-x86 and rename Jerone Young
2007-11-01 12:44 ` Avi Kivity
2007-10-31 17:05 ` [PATCH 08 of 27] Modify out arch specific code from kvm_create function Jerone Young
2007-11-01 12:45 ` Avi Kivity
2007-10-31 17:05 ` [PATCH 09 of 27] Move kvm_create_kernel_phys_mem to kvmctl-x86.c Jerone Young
2007-10-31 17:05 ` [PATCH 10 of 27] Move kvm_create_phys_mem " Jerone Young
2007-10-31 17:05 ` [PATCH 11 of 27] Move kvm_destroy_phys_mem " Jerone Young
2007-10-31 21:11 ` Izik Eidus
2007-10-31 17:05 ` [PATCH 12 of 27] Move kvm_create_memory_alias & kvm_destroy_memory_alias " Jerone Young
2007-10-31 17:05 ` [PATCH 13 of 27] Move kvm_get & kmv_set_lapci functions " Jerone Young
2007-10-31 17:05 ` [PATCH 14 of 27] Make functions in kvmctl.c nonstatic Jerone Young
2007-10-31 17:05 ` Jerone Young [this message]
2007-10-31 17:05 ` [PATCH 16 of 27] Move handle_mmio_abi10 to kvmctl-x86.c Jerone Young
2007-10-31 17:05 ` [PATCH 17 of 27] Move kvm_run_abi10 " Jerone Young
2007-10-31 17:05 ` [PATCH 18 of 27] Change name of post_kvm_run & pre_kvm_run in kvmctl.c Jerone Young
2007-10-31 17:05 ` [PATCH 19 of 27] Move msrs functions to kvmctl-x86.c Jerone Young
2007-10-31 17:05 ` [PATCH 20 of 27] Move print_seg " Jerone Young
2007-10-31 17:05 ` [PATCH 21 of 27] Move kvm_show_regs " Jerone Young
2007-10-31 17:05 ` [PATCH 22 of 27] Declare kvm_abi as a global variable in kvmctl.h Jerone Young
2007-10-31 17:05 ` [PATCH 23 of 27] Move kvm_get_apic to kvmctl-x86.c Jerone Young
2007-10-31 17:05 ` [PATCH 24 of 27] Move cr8 functions " Jerone Young
2007-10-31 17:05 ` [PATCH 25 of 27] Move kvm_setup_cpuid " Jerone Young
2007-10-31 17:05 ` [PATCH 26 of 27] Move kvm_show_code " Jerone Young
2007-10-31 17:05 ` [PATCH 27 of 27] Remove unsued inclusion of linux/kvm_parah.h in userspace kvmctl.h Jerone Young
2007-11-01 12:52 ` [PATCH 00 of 27] Refactor libkvm code Phase 1 Avi Kivity
2007-11-02 5:26 ` Zhang, Xiantao
[not found] ` <42DFA526FC41B1429CE7279EF83C6BDC9040D8-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-11-02 7:49 ` Jerone Young
2007-11-02 19:41 ` [kvm-ppc-devel] " Hollis Blanchard
2007-11-04 7:40 ` Avi Kivity
[not found] ` <472D7772.9070907-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-11-05 1:13 ` Zhang, Xiantao
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=054af67e39314b79bbee.1193850320@thinkpad \
--to=jyoung5-r/jw6+rmf7hqt0dzr+alfa@public.gmane.org \
--cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
--cc=kvm-ppc-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox