Re: [patch 1/2] libkvm: pit not reinject support

2008-12-31 Thread Avi Kivity

Marcelo Tosatti wrote:

Signed-off-by: Marcelo Tosatti 

Index: kvm-userspace.pit/libkvm/libkvm-x86.c
===
--- kvm-userspace.pit.orig/libkvm/libkvm-x86.c
+++ kvm-userspace.pit/libkvm/libkvm-x86.c
@@ -75,6 +75,23 @@ int kvm_create_pit(kvm_context_t kvm)
return 0;
 }
 
+int kvm_pit_reinject_control(kvm_context_t kvm, int reinject)

+{
+#ifdef KVM_CAP_PIT_REINJECT_CONTROL
+int r;
+struct kvm_pit_reinject_control control;
+
+control.reinject = reinject;
+
+r = ioctl(kvm->fd, KVM_CHECK_EXTENSION, KVM_CAP_PIT_REINJECT_CONTROL);
+if (r > 0) {
+r = ioctl(kvm->vm_fd, KVM_PIT_REINJECT_CONTROL, &control);
+return r;
+}
+#endif
+return -ENOSYS;
+}
+
  


I moved this to libkvm.c to avoid a link error on non-x86.


--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[patch 1/2] libkvm: pit not reinject support

2008-12-30 Thread Marcelo Tosatti
Signed-off-by: Marcelo Tosatti 

Index: kvm-userspace.pit/libkvm/libkvm-x86.c
===
--- kvm-userspace.pit.orig/libkvm/libkvm-x86.c
+++ kvm-userspace.pit/libkvm/libkvm-x86.c
@@ -75,6 +75,23 @@ int kvm_create_pit(kvm_context_t kvm)
return 0;
 }
 
+int kvm_pit_reinject_control(kvm_context_t kvm, int reinject)
+{
+#ifdef KVM_CAP_PIT_REINJECT_CONTROL
+int r;
+struct kvm_pit_reinject_control control;
+
+control.reinject = reinject;
+
+r = ioctl(kvm->fd, KVM_CHECK_EXTENSION, KVM_CAP_PIT_REINJECT_CONTROL);
+if (r > 0) {
+r = ioctl(kvm->vm_fd, KVM_PIT_REINJECT_CONTROL, &control);
+return r;
+}
+#endif
+return -ENOSYS;
+}
+
 int kvm_arch_create(kvm_context_t kvm, unsigned long phys_mem_bytes,
void **vm_mem)
 {
Index: kvm-userspace.pit/libkvm/libkvm.h
===
--- kvm-userspace.pit.orig/libkvm/libkvm.h
+++ kvm-userspace.pit/libkvm/libkvm.h
@@ -646,6 +646,8 @@ int kvm_get_pit(kvm_context_t kvm, struc
 int kvm_set_pit(kvm_context_t kvm, struct kvm_pit_state *s);
 #endif
 
+int kvm_pit_reinject_control(kvm_context_t kvm, int reinject);
+
 #endif
 
 #ifdef KVM_CAP_VAPIC

-- 

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [patch 1/2] libkvm: pit not reinject support

2008-12-30 Thread Avi Kivity

Marcelo Tosatti wrote:

Signed-off-by: Marcelo Tosatti 

Index: kvm-userspace.pit/libkvm/libkvm-x86.c
===
--- kvm-userspace.pit.orig/libkvm/libkvm-x86.c
+++ kvm-userspace.pit/libkvm/libkvm-x86.c
@@ -75,6 +75,20 @@ int kvm_create_pit(kvm_context_t kvm)
return 0;
 }
 
+int kvm_pit_no_reinjection(kvm_context_t kvm)

+{
+#ifdef KVM_CAP_PIT_NO_REINJECT
+int r;
+
+r = ioctl(kvm->fd, KVM_CHECK_EXTENSION, KVM_CAP_PIT_NO_REINJECT);
+if (r > 0) {
+r = ioctl(kvm->vm_fd, KVM_PIT_NO_REINJECT);
+return r;
+}
+#endif
+return -1;
+}
  


Most (not all unfortunately) return -errno on error.

 
+int kvm_pit_no_reinjection(kvm_context_t kvm);

+
  


Don't use nonpositive logic.

--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[patch 1/2] libkvm: pit not reinject support

2008-12-29 Thread Marcelo Tosatti
Signed-off-by: Marcelo Tosatti 

Index: kvm-userspace.pit/libkvm/libkvm-x86.c
===
--- kvm-userspace.pit.orig/libkvm/libkvm-x86.c
+++ kvm-userspace.pit/libkvm/libkvm-x86.c
@@ -75,6 +75,20 @@ int kvm_create_pit(kvm_context_t kvm)
return 0;
 }
 
+int kvm_pit_no_reinjection(kvm_context_t kvm)
+{
+#ifdef KVM_CAP_PIT_NO_REINJECT
+int r;
+
+r = ioctl(kvm->fd, KVM_CHECK_EXTENSION, KVM_CAP_PIT_NO_REINJECT);
+if (r > 0) {
+r = ioctl(kvm->vm_fd, KVM_PIT_NO_REINJECT);
+return r;
+}
+#endif
+return -1;
+}
+
 int kvm_arch_create(kvm_context_t kvm, unsigned long phys_mem_bytes,
void **vm_mem)
 {
Index: kvm-userspace.pit/libkvm/libkvm.h
===
--- kvm-userspace.pit.orig/libkvm/libkvm.h
+++ kvm-userspace.pit/libkvm/libkvm.h
@@ -648,6 +648,8 @@ int kvm_set_pit(kvm_context_t kvm, struc
 
 #endif
 
+int kvm_pit_no_reinjection(kvm_context_t kvm);
+
 #ifdef KVM_CAP_VAPIC
 
 /*!

-- 

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html