/kernel/linux/linux-6.6/arch/x86/kvm/ |
H A D | smm.c | 468 const struct kvm_smram_state_32 *smstate) in rsm_load_state_32() 474 ctxt->eflags = smstate->eflags | X86_EFLAGS_FIXED; in rsm_load_state_32() 475 ctxt->_eip = smstate->eip; in rsm_load_state_32() 478 *reg_write(ctxt, i) = smstate->gprs[i]; in rsm_load_state_32() 480 if (kvm_set_dr(vcpu, 6, smstate->dr6)) in rsm_load_state_32() 482 if (kvm_set_dr(vcpu, 7, smstate->dr7)) in rsm_load_state_32() 485 rsm_load_seg_32(vcpu, &smstate->tr, smstate->tr_sel, VCPU_SREG_TR); in rsm_load_state_32() 486 rsm_load_seg_32(vcpu, &smstate->ldtr, smstate in rsm_load_state_32() 467 rsm_load_state_32(struct x86_emulate_ctxt *ctxt, const struct kvm_smram_state_32 *smstate) rsm_load_state_32() argument 519 rsm_load_state_64(struct x86_emulate_ctxt *ctxt, const struct kvm_smram_state_64 *smstate) rsm_load_state_64() argument [all...] |
/kernel/linux/linux-5.10/arch/x86/kvm/ |
H A D | emulate.c | 2449 static int rsm_load_seg_32(struct x86_emulate_ctxt *ctxt, const char *smstate, in rsm_load_seg_32() argument 2456 selector = GET_SMSTATE(u32, smstate, 0x7fa8 + n * 4); in rsm_load_seg_32() 2463 set_desc_base(&desc, GET_SMSTATE(u32, smstate, offset + 8)); in rsm_load_seg_32() 2464 set_desc_limit(&desc, GET_SMSTATE(u32, smstate, offset + 4)); in rsm_load_seg_32() 2465 rsm_set_desc_flags(&desc, GET_SMSTATE(u32, smstate, offset)); in rsm_load_seg_32() 2471 static int rsm_load_seg_64(struct x86_emulate_ctxt *ctxt, const char *smstate, in rsm_load_seg_64() argument 2481 selector = GET_SMSTATE(u16, smstate, offset); in rsm_load_seg_64() 2482 rsm_set_desc_flags(&desc, GET_SMSTATE(u16, smstate, offset + 2) << 8); in rsm_load_seg_64() 2483 set_desc_limit(&desc, GET_SMSTATE(u32, smstate, offset + 4)); in rsm_load_seg_64() 2484 set_desc_base(&desc, GET_SMSTATE(u32, smstate, offse in rsm_load_seg_64() 2537 rsm_load_state_32(struct x86_emulate_ctxt *ctxt, const char *smstate) rsm_load_state_32() argument 2598 rsm_load_state_64(struct x86_emulate_ctxt *ctxt, const char *smstate) rsm_load_state_64() argument [all...] |
H A D | kvm_emulate.h | 235 const char *smstate);
|
H A D | x86.c | 7083 const char *smstate) in emulator_pre_leave_smm() 7085 return kvm_x86_ops.pre_leave_smm(emul_to_vcpu(ctxt), smstate); in emulator_pre_leave_smm() 7082 emulator_pre_leave_smm(struct x86_emulate_ctxt *ctxt, const char *smstate) emulator_pre_leave_smm() argument
|
/kernel/linux/linux-5.10/arch/x86/kvm/svm/ |
H A D | svm.c | 4029 static int svm_pre_enter_smm(struct kvm_vcpu *vcpu, char *smstate) in svm_pre_enter_smm() argument 4036 put_smstate(u64, smstate, 0x7ed8, 1); in svm_pre_enter_smm() 4038 put_smstate(u64, smstate, 0x7ee0, svm->nested.vmcb12_gpa); in svm_pre_enter_smm() 4051 static int svm_pre_leave_smm(struct kvm_vcpu *vcpu, const char *smstate) in svm_pre_leave_smm() argument 4058 u64 saved_efer = GET_SMSTATE(u64, smstate, 0x7ed0); in svm_pre_leave_smm() 4059 u64 guest = GET_SMSTATE(u64, smstate, 0x7ed8); in svm_pre_leave_smm() 4060 u64 vmcb12_gpa = GET_SMSTATE(u64, smstate, 0x7ee0); in svm_pre_leave_smm()
|
/kernel/linux/linux-5.10/arch/x86/include/asm/ |
H A D | kvm_host.h | 1274 int (*pre_enter_smm)(struct kvm_vcpu *vcpu, char *smstate); 1275 int (*pre_leave_smm)(struct kvm_vcpu *vcpu, const char *smstate);
|
/kernel/linux/linux-5.10/arch/x86/kvm/vmx/ |
H A D | vmx.c | 7720 static int vmx_pre_enter_smm(struct kvm_vcpu *vcpu, char *smstate) in vmx_pre_enter_smm() argument 7734 static int vmx_pre_leave_smm(struct kvm_vcpu *vcpu, const char *smstate) in vmx_pre_leave_smm() argument
|