On 09/19/2013 12:45 PM, Alexey Kardashevskiy wrote:
> This adds QEMU wrappers for KVM_SET_ONE_REG/KVM_GET_ONE_REG ioctls.

Ping?


> 
> Signed-off-by: Alexey Kardashevskiy <a...@ozlabs.ru>
> ---
> Changes:
> v3:
> * changed comments
> 
> v2:
> * added Doc Comments
> * removed error_print
> ---
>  include/sysemu/kvm.h | 21 +++++++++++++++++++++
>  kvm-all.c            | 18 ++++++++++++++++++
>  2 files changed, 39 insertions(+)
> 
> diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h
> index c7bc07b..9080ffe 100644
> --- a/include/sysemu/kvm.h
> +++ b/include/sysemu/kvm.h
> @@ -319,4 +319,25 @@ int kvm_irqchip_remove_irqfd_notifier(KVMState *s, 
> EventNotifier *n, int virq);
>  void kvm_pc_gsi_handler(void *opaque, int n, int level);
>  void kvm_pc_setup_irq_routing(bool pci_enabled);
>  void kvm_init_irq_routing(KVMState *s);
> +
> +/**
> + * kvm_set_one_reg - set a register value in KVM via KVM_SET_ONE_REG ioctl
> + * @id: The register ID
> + * @addr: The pointer to a value must point to a variable of the correct
> + * type/size for the register being accessed.
> + *
> + * Returns: 0 on success, or a negative errno on failure.
> + */
> +int kvm_set_one_reg(CPUState *cs, uint64_t id, void *addr);
> +
> +/**
> + * kvm_get_one_reg - get a register value from KVM via KVM_GET_ONE_REG ioctl
> + * @id: The register ID
> + * @addr: The pointer to a value must point to a variable of the correct
> + * type/size for the register being accessed.
> + *
> + * Returns: 0 on success, or a negative errno on failure.
> + */
> +int kvm_get_one_reg(CPUState *cs, uint64_t id, void *addr);
> +
>  #endif
> diff --git a/kvm-all.c b/kvm-all.c
> index ded7fc8..cdc32ec 100644
> --- a/kvm-all.c
> +++ b/kvm-all.c
> @@ -2049,3 +2049,21 @@ int kvm_on_sigbus(int code, void *addr)
>  {
>      return kvm_arch_on_sigbus(code, addr);
>  }
> +
> +int kvm_set_one_reg(CPUState *cs, uint64_t id, void *addr)
> +{
> +    struct kvm_one_reg reg = {
> +        .id = id,
> +        .addr = (uintptr_t)addr,
> +    };
> +    return kvm_vcpu_ioctl(cs, KVM_SET_ONE_REG, &reg);
> +}
> +
> +int kvm_get_one_reg(CPUState *cs, uint64_t id, void *addr)
> +{
> +    struct kvm_one_reg reg = {
> +        .id = id,
> +        .addr = (uintptr_t)addr,
> +    };
> +    return kvm_vcpu_ioctl(cs, KVM_GET_ONE_REG, &reg);
> +}
> 


-- 
Alexey

Reply via email to