Lines Matching refs:vmcb

86 	struct vmcb *hsave;
106 struct vmcb *vmcb;
181 struct vmcb *current_vmcb;
183 /* index = sev_asid, value = vmcb pointer */
184 struct vmcb **sev_vmcbs;
196 static inline void vmcb_mark_all_dirty(struct vmcb *vmcb)
198 vmcb->control.clean = 0;
201 static inline void vmcb_mark_all_clean(struct vmcb *vmcb)
203 vmcb->control.clean = ((1 << VMCB_DIRTY_MAX) - 1)
207 static inline void vmcb_mark_dirty(struct vmcb *vmcb, int bit)
209 vmcb->control.clean &= ~(1 << bit);
217 static inline struct vmcb *get_host_vmcb(struct vcpu_svm *svm)
222 return svm->vmcb;
245 struct vmcb *vmcb = get_host_vmcb(svm);
247 vmcb_set_intercept(&vmcb->control, INTERCEPT_DR0_READ);
248 vmcb_set_intercept(&vmcb->control, INTERCEPT_DR1_READ);
249 vmcb_set_intercept(&vmcb->control, INTERCEPT_DR2_READ);
250 vmcb_set_intercept(&vmcb->control, INTERCEPT_DR3_READ);
251 vmcb_set_intercept(&vmcb->control, INTERCEPT_DR4_READ);
252 vmcb_set_intercept(&vmcb->control, INTERCEPT_DR5_READ);
253 vmcb_set_intercept(&vmcb->control, INTERCEPT_DR6_READ);
254 vmcb_set_intercept(&vmcb->control, INTERCEPT_DR7_READ);
255 vmcb_set_intercept(&vmcb->control, INTERCEPT_DR0_WRITE);
256 vmcb_set_intercept(&vmcb->control, INTERCEPT_DR1_WRITE);
257 vmcb_set_intercept(&vmcb->control, INTERCEPT_DR2_WRITE);
258 vmcb_set_intercept(&vmcb->control, INTERCEPT_DR3_WRITE);
259 vmcb_set_intercept(&vmcb->control, INTERCEPT_DR4_WRITE);
260 vmcb_set_intercept(&vmcb->control, INTERCEPT_DR5_WRITE);
261 vmcb_set_intercept(&vmcb->control, INTERCEPT_DR6_WRITE);
262 vmcb_set_intercept(&vmcb->control, INTERCEPT_DR7_WRITE);
269 struct vmcb *vmcb = get_host_vmcb(svm);
271 vmcb->control.intercepts[INTERCEPT_DR] = 0;
278 struct vmcb *vmcb = get_host_vmcb(svm);
281 vmcb_set_intercept(&vmcb->control, INTERCEPT_EXCEPTION_OFFSET + bit);
288 struct vmcb *vmcb = get_host_vmcb(svm);
291 vmcb_clr_intercept(&vmcb->control, INTERCEPT_EXCEPTION_OFFSET + bit);
298 struct vmcb *vmcb = get_host_vmcb(svm);
300 vmcb_set_intercept(&vmcb->control, bit);
307 struct vmcb *vmcb = get_host_vmcb(svm);
309 vmcb_clr_intercept(&vmcb->control, bit);
316 return vmcb_is_intercept(&svm->vmcb->control, bit);
321 return !!(svm->vmcb->control.int_ctl & V_GIF_ENABLE_MASK);
327 svm->vmcb->control.int_ctl |= V_GIF_MASK;
335 svm->vmcb->control.int_ctl &= ~V_GIF_MASK;
343 return !!(svm->vmcb->control.int_ctl & V_GIF_MASK);
395 struct vmcb *nested_vmcb);
400 void nested_svm_vmloadsave(struct vmcb *from_vmcb, struct vmcb *to_vmcb);
428 svm->vmcb->control.avic_vapic_bar = data & VMCB_AVIC_APIC_BAR_MASK;
429 vmcb_mark_dirty(svm->vmcb, VMCB_AVIC);