Lines Matching refs:ctxt
174 static enum es_result vc_init_em_ctxt(struct es_em_ctxt *ctxt, in vc_init_em_ctxt() argument
180 memset(ctxt, 0, sizeof(*ctxt)); in vc_init_em_ctxt()
181 ctxt->regs = regs; in vc_init_em_ctxt()
184 ret = vc_decode_insn(ctxt); in vc_init_em_ctxt()
189 static void vc_finish_insn(struct es_em_ctxt *ctxt) in vc_finish_insn() argument
191 ctxt->regs->ip += ctxt->insn.length; in vc_finish_insn()
194 static enum es_result verify_exception_info(struct ghcb *ghcb, struct es_em_ctxt *ctxt) in verify_exception_info() argument
210 ctxt->fi.vector = v; in verify_exception_info()
213 ctxt->fi.error_code = info >> 32; in verify_exception_info()
223 struct es_em_ctxt *ctxt, in sev_es_ghcb_hv_call() argument
238 return verify_exception_info(ghcb, ctxt); in sev_es_ghcb_hv_call()
592 static enum es_result vc_insn_string_read(struct es_em_ctxt *ctxt, in vc_insn_string_read() argument
605 ret = vc_read_mem(ctxt, s, d, data_size); in vc_insn_string_read()
613 static enum es_result vc_insn_string_write(struct es_em_ctxt *ctxt, in vc_insn_string_write() argument
626 ret = vc_write_mem(ctxt, d, b, data_size); in vc_insn_string_write()
653 static enum es_result vc_ioio_exitinfo(struct es_em_ctxt *ctxt, u64 *exitinfo) in vc_ioio_exitinfo() argument
655 struct insn *insn = &ctxt->insn; in vc_ioio_exitinfo()
664 *exitinfo |= (ctxt->regs->dx & 0xffff) << 16; in vc_ioio_exitinfo()
672 *exitinfo |= (ctxt->regs->dx & 0xffff) << 16; in vc_ioio_exitinfo()
693 *exitinfo |= (ctxt->regs->dx & 0xffff) << 16; in vc_ioio_exitinfo()
700 *exitinfo |= (ctxt->regs->dx & 0xffff) << 16; in vc_ioio_exitinfo()
740 static enum es_result vc_handle_ioio(struct ghcb *ghcb, struct es_em_ctxt *ctxt) in vc_handle_ioio() argument
742 struct pt_regs *regs = ctxt->regs; in vc_handle_ioio()
746 ret = vc_ioio_exitinfo(ctxt, &exit_info_1); in vc_handle_ioio()
773 es_base = insn_get_seg_base(ctxt->regs, INAT_SEG_REG_ES); in vc_handle_ioio()
777 ret = vc_insn_string_read(ctxt, in vc_handle_ioio()
792 ret = sev_es_ghcb_hv_call(ghcb, ctxt, SVM_EXIT_IOIO, in vc_handle_ioio()
799 ret = vc_insn_string_write(ctxt, in vc_handle_ioio()
834 ret = sev_es_ghcb_hv_call(ghcb, ctxt, SVM_EXIT_IOIO, exit_info_1, 0); in vc_handle_ioio()
867 struct es_em_ctxt *ctxt) in vc_handle_cpuid() argument
869 struct pt_regs *regs = ctxt->regs; in vc_handle_cpuid()
890 ret = sev_es_ghcb_hv_call(ghcb, ctxt, SVM_EXIT_CPUID, 0, 0); in vc_handle_cpuid()
909 struct es_em_ctxt *ctxt, in vc_handle_rdtsc() argument
915 ret = sev_es_ghcb_hv_call(ghcb, ctxt, exit_code, 0, 0); in vc_handle_rdtsc()
923 ctxt->regs->ax = ghcb->save.rax; in vc_handle_rdtsc()
924 ctxt->regs->dx = ghcb->save.rdx; in vc_handle_rdtsc()
926 ctxt->regs->cx = ghcb->save.rcx; in vc_handle_rdtsc()