]>
Commit | Line | Data |
---|---|---|
bbf45ba5 HB |
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 | ||
dd135ebb CB |
20 | #ifndef __LINUX_KVM_POWERPC_H |
21 | #define __LINUX_KVM_POWERPC_H | |
22 | ||
9f2cd967 | 23 | #include <linux/types.h> |
bbf45ba5 HB |
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 { | |
ec3c11aa | 49 | __u32 pvr; |
e15a1137 AG |
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; | |
bbf45ba5 HB |
67 | }; |
68 | ||
69 | struct kvm_fpu { | |
70 | __u64 fpr[32]; | |
71 | }; | |
dd135ebb | 72 | |
d0bfb940 JK |
73 | struct kvm_debug_exit_arch { |
74 | }; | |
75 | ||
76 | /* for KVM_SET_GUEST_DEBUG */ | |
77 | struct kvm_guest_debug_arch { | |
78 | }; | |
79 | ||
b104d066 AG |
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 | ||
18978768 AG |
87 | #define KVM_INTERRUPT_SET -1U |
88 | #define KVM_INTERRUPT_UNSET -2U | |
89 | ||
bbf45ba5 | 90 | #endif /* __LINUX_KVM_POWERPC_H */ |