Lines Matching defs:hr

28 void kvmhv_save_hv_regs(struct kvm_vcpu *vcpu, struct hv_guest_state *hr)
32 hr->pcr = vc->pcr | PCR_MASK;
33 hr->dpdes = vc->dpdes;
34 hr->hfscr = vcpu->arch.hfscr;
35 hr->tb_offset = vc->tb_offset;
36 hr->dawr0 = vcpu->arch.dawr;
37 hr->dawrx0 = vcpu->arch.dawrx;
38 hr->ciabr = vcpu->arch.ciabr;
39 hr->purr = vcpu->arch.purr;
40 hr->spurr = vcpu->arch.spurr;
41 hr->ic = vcpu->arch.ic;
42 hr->vtb = vc->vtb;
43 hr->srr0 = vcpu->arch.shregs.srr0;
44 hr->srr1 = vcpu->arch.shregs.srr1;
45 hr->sprg[0] = vcpu->arch.shregs.sprg0;
46 hr->sprg[1] = vcpu->arch.shregs.sprg1;
47 hr->sprg[2] = vcpu->arch.shregs.sprg2;
48 hr->sprg[3] = vcpu->arch.shregs.sprg3;
49 hr->pidr = vcpu->arch.pid;
50 hr->cfar = vcpu->arch.cfar;
51 hr->ppr = vcpu->arch.ppr;
63 static void byteswap_hv_regs(struct hv_guest_state *hr)
65 hr->version = swab64(hr->version);
66 hr->lpid = swab32(hr->lpid);
67 hr->vcpu_token = swab32(hr->vcpu_token);
68 hr->lpcr = swab64(hr->lpcr);
69 hr->pcr = swab64(hr->pcr) | PCR_MASK;
70 hr->amor = swab64(hr->amor);
71 hr->dpdes = swab64(hr->dpdes);
72 hr->hfscr = swab64(hr->hfscr);
73 hr->tb_offset = swab64(hr->tb_offset);
74 hr->dawr0 = swab64(hr->dawr0);
75 hr->dawrx0 = swab64(hr->dawrx0);
76 hr->ciabr = swab64(hr->ciabr);
77 hr->hdec_expiry = swab64(hr->hdec_expiry);
78 hr->purr = swab64(hr->purr);
79 hr->spurr = swab64(hr->spurr);
80 hr->ic = swab64(hr->ic);
81 hr->vtb = swab64(hr->vtb);
82 hr->hdar = swab64(hr->hdar);
83 hr->hdsisr = swab64(hr->hdsisr);
84 hr->heir = swab64(hr->heir);
85 hr->asdr = swab64(hr->asdr);
86 hr->srr0 = swab64(hr->srr0);
87 hr->srr1 = swab64(hr->srr1);
88 hr->sprg[0] = swab64(hr->sprg[0]);
89 hr->sprg[1] = swab64(hr->sprg[1]);
90 hr->sprg[2] = swab64(hr->sprg[2]);
91 hr->sprg[3] = swab64(hr->sprg[3]);
92 hr->pidr = swab64(hr->pidr);
93 hr->cfar = swab64(hr->cfar);
94 hr->ppr = swab64(hr->ppr);
98 struct hv_guest_state *hr)
102 hr->dpdes = vc->dpdes;
103 hr->hfscr = vcpu->arch.hfscr;
104 hr->purr = vcpu->arch.purr;
105 hr->spurr = vcpu->arch.spurr;
106 hr->ic = vcpu->arch.ic;
107 hr->vtb = vc->vtb;
108 hr->srr0 = vcpu->arch.shregs.srr0;
109 hr->srr1 = vcpu->arch.shregs.srr1;
110 hr->sprg[0] = vcpu->arch.shregs.sprg0;
111 hr->sprg[1] = vcpu->arch.shregs.sprg1;
112 hr->sprg[2] = vcpu->arch.shregs.sprg2;
113 hr->sprg[3] = vcpu->arch.shregs.sprg3;
114 hr->pidr = vcpu->arch.pid;
115 hr->cfar = vcpu->arch.cfar;
116 hr->ppr = vcpu->arch.ppr;
119 hr->hdar = vcpu->arch.fault_dar;
120 hr->hdsisr = vcpu->arch.fault_dsisr;
121 hr->asdr = vcpu->arch.fault_gpa;
124 hr->asdr = vcpu->arch.fault_gpa;
127 hr->heir = vcpu->arch.emul_inst;
132 static void sanitise_hv_regs(struct kvm_vcpu *vcpu, struct hv_guest_state *hr)
138 hr->hfscr &= (HFSCR_INTR_CAUSE | vcpu->arch.hfscr);
141 hr->dawrx0 &= ~DAWRX_HYP;
144 if ((hr->ciabr & CIABR_PRIV) == CIABR_PRIV_HYPER)
145 hr->ciabr &= ~CIABR_PRIV;
148 static void restore_hv_regs(struct kvm_vcpu *vcpu, struct hv_guest_state *hr)
152 vc->pcr = hr->pcr | PCR_MASK;
153 vc->dpdes = hr->dpdes;
154 vcpu->arch.hfscr = hr->hfscr;
155 vcpu->arch.dawr = hr->dawr0;
156 vcpu->arch.dawrx = hr->dawrx0;
157 vcpu->arch.ciabr = hr->ciabr;
158 vcpu->arch.purr = hr->purr;
159 vcpu->arch.spurr = hr->spurr;
160 vcpu->arch.ic = hr->ic;
161 vc->vtb = hr->vtb;
162 vcpu->arch.shregs.srr0 = hr->srr0;
163 vcpu->arch.shregs.srr1 = hr->srr1;
164 vcpu->arch.shregs.sprg0 = hr->sprg[0];
165 vcpu->arch.shregs.sprg1 = hr->sprg[1];
166 vcpu->arch.shregs.sprg2 = hr->sprg[2];
167 vcpu->arch.shregs.sprg3 = hr->sprg[3];
168 vcpu->arch.pid = hr->pidr;
169 vcpu->arch.cfar = hr->cfar;
170 vcpu->arch.ppr = hr->ppr;
174 struct hv_guest_state *hr)
178 vc->dpdes = hr->dpdes;
179 vcpu->arch.hfscr = hr->hfscr;
180 vcpu->arch.purr = hr->purr;
181 vcpu->arch.spurr = hr->spurr;
182 vcpu->arch.ic = hr->ic;
183 vc->vtb = hr->vtb;
184 vcpu->arch.fault_dar = hr->hdar;
185 vcpu->arch.fault_dsisr = hr->hdsisr;
186 vcpu->arch.fault_gpa = hr->asdr;
187 vcpu->arch.emul_inst = hr->heir;
188 vcpu->arch.shregs.srr0 = hr->srr0;
189 vcpu->arch.shregs.srr1 = hr->srr1;
190 vcpu->arch.shregs.sprg0 = hr->sprg[0];
191 vcpu->arch.shregs.sprg1 = hr->sprg[1];
192 vcpu->arch.shregs.sprg2 = hr->sprg[2];
193 vcpu->arch.shregs.sprg3 = hr->sprg[3];
194 vcpu->arch.pid = hr->pidr;
195 vcpu->arch.cfar = hr->cfar;
196 vcpu->arch.ppr = hr->ppr;