Re: [kvm-ppc-devel] [PATCH 17 of 19] Move cr8 functions to libkvm-x86.c

Hollis Blanchard
2007-11-02T19:46:37Z

These are exported functions, right? So their prototypes should remain
in libkvm.h. (This is OK even on other architectures, because you'll
only get build error if somebody actually calls them.)

The alternative is to make many exported headers: libkvm.h,
libkvm-x86.h, etc. I think a combined libkvm.h is simpler and therefore
better.

--
Hollis Blanchard
IBM Linux Technology Center

On Fri, 2007-11-02 at 13:25 -0500, Jerone Young wrote:
> # HG changeset patch
> # User Jerone Young <jyoung5-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
> # Date 1194027873 18000
> # Node ID ab3e5d875c37bf36db4e73331fd3234523598c6e
> # Parent 7e750325679dd770206ec6da84f00a4dc4be1b2c
> Move cr8 functions to libkvm-x86.c
>
> This patch moves functions:
> kvm_set_cr8
> kvm_get_cr8
>
> cr8 is an x86 only register.
>
> 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
> @@ -766,3 +766,19 @@ uint64_t kvm_get_apic_base(kvm_context_t
> return run->apic_base;
> }
>
> +void kvm_set_cr8(kvm_context_t kvm, int vcpu, uint64_t cr8)
> +{
> + struct kvm_run *run = kvm->run[vcpu];
> +
> + if (kvm_abi == 10) {
> + ((struct kvm_run_abi10 *)run)->cr8 = cr8;
> + return;
> + }
> + run->cr8 = cr8;
> +}
> +
> +__u64 kvm_get_cr8(kvm_context_t kvm, int vcpu)
> +{
> + return kvm->run[vcpu]->cr8;
> +}
> +
> diff --git a/libkvm/libkvm-x86.h b/libkvm/libkvm-x86.h
> --- a/libkvm/libkvm-x86.h
> +++ b/libkvm/libkvm-x86.h
> @@ -81,5 +81,27 @@ void kvm_show_regs(kvm_context_t kvm, in
> */
> uint64_t kvm_get_apic_base(kvm_context_t kvm, int vcpu);
>
> +/*!
> + * \brief Set up cr8 for next time the vcpu is executed
> + *
> + * This is a fast setter for cr8, which will be applied when the
> + * vcpu next enters guest mode.
> + *
> + * \param kvm Pointer to the current kvm_context
> + * \param vcpu Which virtual CPU should get dumped
> + * \param cr8 next cr8 value
> + */
> +void kvm_set_cr8(kvm_context_t kvm, int vcpu, uint64_t cr8);
> +
> +/*!
> + * \brief Get cr8 for sync tpr in qemu apic emulation
> + *
> + * This is a getter for cr8, which used to sync with the tpr in qemu
> + * apic emualtion.
> + *
> + * \param kvm Pointer to the current kvm_context
> + * \param vcpu Which virtual CPU should get dumped
> + */
> +__u64 kvm_get_cr8(kvm_context_t kvm, int vcpu);
>
> #endif
> diff --git a/libkvm/libkvm.c b/libkvm/libkvm.c
> --- a/libkvm/libkvm.c
> +++ b/libkvm/libkvm.c
> @@ -727,22 +727,6 @@ int kvm_is_ready_for_interrupt_injection
> return run->ready_for_interrupt_injection;
> }
>
> -void kvm_set_cr8(kvm_context_t kvm, int vcpu, uint64_t cr8)
> -{
> - struct kvm_run *run = kvm->run[vcpu];
> -
> - if (kvm_abi == 10) {
> - ((struct kvm_run_abi10 *)run)->cr8 = cr8;
> - return;
> - }
> - run->cr8 = cr8;
> -}
> -
> -__u64 kvm_get_cr8(kvm_context_t kvm, int vcpu)
> -{
> - return kvm->run[vcpu]->cr8;
> -}
> -
> int kvm_run(kvm_context_t kvm, int vcpu)
> {
> int r;
> diff --git a/libkvm/libkvm.h b/libkvm/libkvm.h
> --- a/libkvm/libkvm.h
> +++ b/libkvm/libkvm.h
> @@ -215,29 +215,6 @@ int kvm_is_ready_for_interrupt_injection
> int kvm_is_ready_for_interrupt_injection(kvm_context_t kvm, int vcpu);
>
> /*!
> - * \brief Set up cr8 for next time the vcpu is executed
> - *
> - * This is a fast setter for cr8, which will be applied when the
> - * vcpu next enters guest mode.
> - *
> - * \param kvm Pointer to the current kvm_context
> - * \param vcpu Which virtual CPU should get dumped
> - * \param cr8 next cr8 value
> - */
> -void kvm_set_cr8(kvm_context_t kvm, int vcpu, uint64_t cr8);
> -
> -/*!
> - * \brief Get cr8 for sync tpr in qemu apic emulation
> - *
> - * This is a getter for cr8, which used to sync with the tpr in qemu
> - * apic emualtion.
> - *
> - * \param kvm Pointer to the current kvm_context
> - * \param vcpu Which virtual CPU should get dumped
> - */
> -__u64 kvm_get_cr8(kvm_context_t kvm, int vcpu);
> -
> -/*!
> * \brief Read VCPU registers
> *
> * This gets the GP registers from the VCPU and outputs them
>
> -------------------------------------------------------------------------
> 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-ppc-devel mailing list
> kvm-ppc-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> https://lists.sourceforge.net/lists/listinfo/kvm-ppc-devel