Re: [patch 1/2] libkvm: pit not reinject support
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
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
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
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