linux/arch/powerpc/include/asm/kvm.h
<<
>>
Prefs
   1/*
   2 * This program is free software; you can redistribute it and/or modify
   3 * it under the terms of the GNU General Public License, version 2, as
   4 * published by the Free Software Foundation.
   5 *
   6 * This program is distributed in the hope that it will be useful,
   7 * but WITHOUT ANY WARRANTY; without even the implied warranty of
   8 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   9 * GNU General Public License for more details.
  10 *
  11 * You should have received a copy of the GNU General Public License
  12 * along with this program; if not, write to the Free Software
  13 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  14 *
  15 * Copyright IBM Corp. 2007
  16 *
  17 * Authors: Hollis Blanchard <hollisb@us.ibm.com>
  18 */
  19
  20#ifndef __LINUX_KVM_POWERPC_H
  21#define __LINUX_KVM_POWERPC_H
  22
  23#include <linux/types.h>
  24
  25struct kvm_regs {
  26        __u64 pc;
  27        __u64 cr;
  28        __u64 ctr;
  29        __u64 lr;
  30        __u64 xer;
  31        __u64 msr;
  32        __u64 srr0;
  33        __u64 srr1;
  34        __u64 pid;
  35
  36        __u64 sprg0;
  37        __u64 sprg1;
  38        __u64 sprg2;
  39        __u64 sprg3;
  40        __u64 sprg4;
  41        __u64 sprg5;
  42        __u64 sprg6;
  43        __u64 sprg7;
  44
  45        __u64 gpr[32];
  46};
  47
  48struct kvm_sregs {
  49        __u32 pvr;
  50        union {
  51                struct {
  52                        __u64 sdr1;
  53                        struct {
  54                                struct {
  55                                        __u64 slbe;
  56                                        __u64 slbv;
  57                                } slb[64];
  58                        } ppc64;
  59                        struct {
  60                                __u32 sr[16];
  61                                __u64 ibat[8]; 
  62                                __u64 dbat[8]; 
  63                        } ppc32;
  64                } s;
  65                __u8 pad[1020];
  66        } u;
  67};
  68
  69struct kvm_fpu {
  70        __u64 fpr[32];
  71};
  72
  73struct kvm_debug_exit_arch {
  74};
  75
  76/* for KVM_SET_GUEST_DEBUG */
  77struct kvm_guest_debug_arch {
  78};
  79
  80#define KVM_REG_MASK            0x001f
  81#define KVM_REG_EXT_MASK        0xffe0
  82#define KVM_REG_GPR             0x0000
  83#define KVM_REG_FPR             0x0020
  84#define KVM_REG_QPR             0x0040
  85#define KVM_REG_FQPR            0x0060
  86
  87#define KVM_INTERRUPT_SET       -1U
  88#define KVM_INTERRUPT_UNSET     -2U
  89#define KVM_INTERRUPT_SET_LEVEL -3U
  90
  91#endif /* __LINUX_KVM_POWERPC_H */
  92