Lines Matching refs:ctxt
77 static enum es_result vc_init_em_ctxt(struct es_em_ctxt *ctxt, in vc_init_em_ctxt() argument
83 memset(ctxt, 0, sizeof(*ctxt)); in vc_init_em_ctxt()
84 ctxt->regs = regs; in vc_init_em_ctxt()
87 ret = vc_decode_insn(ctxt); in vc_init_em_ctxt()
92 static void vc_finish_insn(struct es_em_ctxt *ctxt) in vc_finish_insn() argument
94 ctxt->regs->ip += ctxt->insn.length; in vc_finish_insn()
97 static enum es_result verify_exception_info(struct ghcb *ghcb, struct es_em_ctxt *ctxt) in verify_exception_info() argument
116 ctxt->fi.vector = v; in verify_exception_info()
119 ctxt->fi.error_code = info >> 32; in verify_exception_info()
129 struct es_em_ctxt *ctxt, u64 exit_code, in sev_es_ghcb_hv_call() argument
150 return verify_exception_info(ghcb, ctxt); in sev_es_ghcb_hv_call()
227 static enum es_result vc_insn_string_read(struct es_em_ctxt *ctxt, in vc_insn_string_read() argument
240 ret = vc_read_mem(ctxt, s, d, data_size); in vc_insn_string_read()
248 static enum es_result vc_insn_string_write(struct es_em_ctxt *ctxt, in vc_insn_string_write() argument
261 ret = vc_write_mem(ctxt, d, b, data_size); in vc_insn_string_write()
288 static enum es_result vc_ioio_exitinfo(struct es_em_ctxt *ctxt, u64 *exitinfo) in vc_ioio_exitinfo() argument
290 struct insn *insn = &ctxt->insn; in vc_ioio_exitinfo()
299 *exitinfo |= (ctxt->regs->dx & 0xffff) << 16; in vc_ioio_exitinfo()
307 *exitinfo |= (ctxt->regs->dx & 0xffff) << 16; in vc_ioio_exitinfo()
328 *exitinfo |= (ctxt->regs->dx & 0xffff) << 16; in vc_ioio_exitinfo()
335 *exitinfo |= (ctxt->regs->dx & 0xffff) << 16; in vc_ioio_exitinfo()
375 static enum es_result vc_handle_ioio(struct ghcb *ghcb, struct es_em_ctxt *ctxt) in vc_handle_ioio() argument
377 struct pt_regs *regs = ctxt->regs; in vc_handle_ioio()
381 ret = vc_ioio_exitinfo(ctxt, &exit_info_1); in vc_handle_ioio()
408 es_base = insn_get_seg_base(ctxt->regs, INAT_SEG_REG_ES); in vc_handle_ioio()
412 ret = vc_insn_string_read(ctxt, in vc_handle_ioio()
427 ret = sev_es_ghcb_hv_call(ghcb, true, ctxt, SVM_EXIT_IOIO, in vc_handle_ioio()
434 ret = vc_insn_string_write(ctxt, in vc_handle_ioio()
469 ret = sev_es_ghcb_hv_call(ghcb, true, ctxt, in vc_handle_ioio()
485 struct es_em_ctxt *ctxt) in vc_handle_cpuid() argument
487 struct pt_regs *regs = ctxt->regs; in vc_handle_cpuid()
501 ret = sev_es_ghcb_hv_call(ghcb, true, ctxt, SVM_EXIT_CPUID, 0, 0); in vc_handle_cpuid()
520 struct es_em_ctxt *ctxt, in vc_handle_rdtsc() argument
526 ret = sev_es_ghcb_hv_call(ghcb, true, ctxt, exit_code, 0, 0); in vc_handle_rdtsc()
534 ctxt->regs->ax = ghcb->save.rax; in vc_handle_rdtsc()
535 ctxt->regs->dx = ghcb->save.rdx; in vc_handle_rdtsc()
537 ctxt->regs->cx = ghcb->save.rcx; in vc_handle_rdtsc()