[PATCH 3 of 3] [KVM POWERPC] PowerPC 440 KVM implementation

Arnd Bergmann arnd at arndb.de
Tue Apr 8 12:58:17 EST 2008


On Monday 07 April 2008, Hollis Blanchard wrote:
> --- a/include/asm-powerpc/kvm.h
> +++ b/include/asm-powerpc/kvm.h
> @@ -1,6 +1,55 @@
> +/*
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License, version 2, as
> + * published by the Free Software Foundation.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
> + *
> + * Copyright IBM Corp. 2007
> + *
> + * Authors: Hollis Blanchard <hollisb at us.ibm.com>
> + */
> +
>  #ifndef __LINUX_KVM_POWERPC_H
>  #define __LINUX_KVM_POWERPC_H
>  
> -/* powerpc does not support KVM */
> +#include <asm/types.h>
>  
> -#endif
> +struct kvm_regs {
> +       __u32 pc;
> +       __u32 cr;
> +       __u32 ctr;
> +       __u32 lr;
> +       __u32 xer;
> +       __u32 msr;
> +       __u32 srr0;
> +       __u32 srr1;
> +       __u32 pid;
> +
> +       __u32 sprg0;
> +       __u32 sprg1;
> +       __u32 sprg2;
> +       __u32 sprg3;
> +       __u32 sprg4;
> +       __u32 sprg5;
> +       __u32 sprg6;
> +       __u32 sprg7;
> +
> +       __u64 fpr[32];
> +       __u32 gpr[32];
> +};
> +
> +struct kvm_sregs {
> +};
> +
> +struct kvm_fpu {
> +};
> +
> +#endif /* __LINUX_KVM_POWERPC_H */

Since this defines part of the ABI, it would be nice if it's possible
to have it in a platform independent way. Most of the registers here
should probably become "unsigned long" instead of "__u32" so that
the definition can be used for a potential 64 bit port.

Also, I noticed that you lump everything into kvm_regs, instead of
using sregs for stuff like srr0 and kvm_fpu for the fprs. What is
the reason for that?

	Arnd <><



More information about the Linuxppc-dev mailing list