Staging: hv: hv_mouse: unwind the initialization process a bit
[zen-stable.git] / arch / powerpc / include / asm / kvm.h
blob18ea6963ad7723e1478f290c17a334ee15e898f3
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.
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.
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.
15 * Copyright IBM Corp. 2007
17 * Authors: Hollis Blanchard <hollisb@us.ibm.com>
20 #ifndef __LINUX_KVM_POWERPC_H
21 #define __LINUX_KVM_POWERPC_H
23 #include <linux/types.h>
25 struct 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;
36 __u64 sprg0;
37 __u64 sprg1;
38 __u64 sprg2;
39 __u64 sprg3;
40 __u64 sprg4;
41 __u64 sprg5;
42 __u64 sprg6;
43 __u64 sprg7;
45 __u64 gpr[32];
48 struct 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;
69 struct kvm_fpu {
70 __u64 fpr[32];
73 struct kvm_debug_exit_arch {
76 /* for KVM_SET_GUEST_DEBUG */
77 struct kvm_guest_debug_arch {
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
87 #define KVM_INTERRUPT_SET -1U
88 #define KVM_INTERRUPT_UNSET -2U
89 #define KVM_INTERRUPT_SET_LEVEL -3U
91 #endif /* __LINUX_KVM_POWERPC_H */