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 
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;
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 
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;
67 };
68 
69 struct kvm_fpu {
70 	__u64 fpr[32];
71 };
72 
73 struct kvm_debug_exit_arch {
74 };
75 
76 /* for KVM_SET_GUEST_DEBUG */
77 struct 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