kvm: libkvm: in-kernel LAPIC get/set ioctls
This patch allows save and restore of in-kernel local apics
Signed-off-by: Qing He <[EMAIL PROTECTED]>
Signed-off-by: Yaozu (Eddie) Dong <[EMAIL PROTECTED]>
---
user/kvmctl.c | 26 ++++++++++++++++++++++++++
user/kvmctl.h | 22 ++++++++++++++++++++++
2 files changed, 48 insertions(+), 0 deletions(-)
diff --git a/user/kvmctl.c b/user/kvmctl.c
index b256707..8038245 100644
--- a/user/kvmctl.c
+++ b/user/kvmctl.c
@@ -460,6 +460,32 @@ int kvm_set_irqchip(kvm_context_t kvm, struct
kvm_irqchip *chip)
return r;
}
+int kvm_get_lapic(kvm_context_t kvm, int vcpu, struct kvm_lapic_state
*s)
+{
+ int r;
+ if (!kvm->irqchip_in_kernel)
+ return 0;
+ r = ioctl(kvm->vcpu_fd[vcpu], KVM_GET_LAPIC, s);
+ if (r == -1) {
+ r = -errno;
+ perror("kvm_get_lapic");
+ }
+ return r;
+}
+
+int kvm_set_lapic(kvm_context_t kvm, int vcpu, struct kvm_lapic_state
*s)
+{
+ int r;
+ if (!kvm->irqchip_in_kernel)
+ return 0;
+ r = ioctl(kvm->vcpu_fd[vcpu], KVM_SET_LAPIC, s);
+ if (r == -1) {
+ r = -errno;
+ perror("kvm_set_lapic");
+ }
+ return r;
+}
+
static int handle_io_abi10(kvm_context_t kvm, struct kvm_run_abi10
*run,
int vcpu)
{
diff --git a/user/kvmctl.h b/user/kvmctl.h
index 073ac01..aa3f9b8 100644
--- a/user/kvmctl.h
+++ b/user/kvmctl.h
@@ -444,4 +444,26 @@ int kvm_get_irqchip(kvm_context_t kvm, struct
kvm_irqchip *chip);
*/
int kvm_set_irqchip(kvm_context_t kvm, struct kvm_irqchip *chip);
+/*!
+ * \brief Get in kernel local APIC for vcpu
+ *
+ * Save the local apic state including the timer of a virtual CPU
+ *
+ * \param kvm Pointer to the current kvm_context
+ * \param vcpu Which virtual CPU should be accessed
+ * \param s Local apic state of the specific virtual CPU
+ */
+int kvm_get_lapic(kvm_context_t kvm, int vcpu, struct kvm_lapic_state
*s);
+
+/*!
+ * \brief Set in kernel local APIC for vcpu
+ *
+ * Restore the local apic state including the timer of a virtual CPU
+ *
+ * \param kvm Pointer to the current kvm_context
+ * \param vcpu Which virtual CPU should be accessed
+ * \param s Local apic state of the specific virtual CPU
+ */
+int kvm_set_lapic(kvm_context_t kvm, int vcpu, struct kvm_lapic_state
*s);
+
#endif
kvm-libkvm-lapic-lm.patch
Description: kvm-libkvm-lapic-lm.patch
------------------------------------------------------------------------- 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 [email protected] https://lists.sourceforge.net/lists/listinfo/kvm-devel
