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()
98 struct es_em_ctxt *ctxt, in sev_es_ghcb_hv_call() argument
126 ctxt->fi.vector = v; in sev_es_ghcb_hv_call()
128 ctxt->fi.error_code = info >> 32; in sev_es_ghcb_hv_call()
216 static enum es_result vc_insn_string_read(struct es_em_ctxt *ctxt, in vc_insn_string_read() argument
229 ret = vc_read_mem(ctxt, s, d, data_size); in vc_insn_string_read()
237 static enum es_result vc_insn_string_write(struct es_em_ctxt *ctxt, in vc_insn_string_write() argument
250 ret = vc_write_mem(ctxt, d, b, data_size); in vc_insn_string_write()
277 static enum es_result vc_ioio_exitinfo(struct es_em_ctxt *ctxt, u64 *exitinfo) in vc_ioio_exitinfo() argument
279 struct insn *insn = &ctxt->insn; in vc_ioio_exitinfo()
288 *exitinfo |= (ctxt->regs->dx & 0xffff) << 16; in vc_ioio_exitinfo()
296 *exitinfo |= (ctxt->regs->dx & 0xffff) << 16; in vc_ioio_exitinfo()
317 *exitinfo |= (ctxt->regs->dx & 0xffff) << 16; in vc_ioio_exitinfo()
324 *exitinfo |= (ctxt->regs->dx & 0xffff) << 16; in vc_ioio_exitinfo()
364 static enum es_result vc_handle_ioio(struct ghcb *ghcb, struct es_em_ctxt *ctxt) in vc_handle_ioio() argument
366 struct pt_regs *regs = ctxt->regs; in vc_handle_ioio()
370 ret = vc_ioio_exitinfo(ctxt, &exit_info_1); in vc_handle_ioio()
397 es_base = insn_get_seg_base(ctxt->regs, INAT_SEG_REG_ES); in vc_handle_ioio()
401 ret = vc_insn_string_read(ctxt, in vc_handle_ioio()
416 ret = sev_es_ghcb_hv_call(ghcb, ctxt, SVM_EXIT_IOIO, in vc_handle_ioio()
423 ret = vc_insn_string_write(ctxt, in vc_handle_ioio()
458 ret = sev_es_ghcb_hv_call(ghcb, ctxt, SVM_EXIT_IOIO, exit_info_1, 0); in vc_handle_ioio()
473 struct es_em_ctxt *ctxt) in vc_handle_cpuid() argument
475 struct pt_regs *regs = ctxt->regs; in vc_handle_cpuid()
489 ret = sev_es_ghcb_hv_call(ghcb, ctxt, SVM_EXIT_CPUID, 0, 0); in vc_handle_cpuid()
508 struct es_em_ctxt *ctxt, in vc_handle_rdtsc() argument
514 ret = sev_es_ghcb_hv_call(ghcb, ctxt, exit_code, 0, 0); in vc_handle_rdtsc()
522 ctxt->regs->ax = ghcb->save.rax; in vc_handle_rdtsc()
523 ctxt->regs->dx = ghcb->save.rdx; in vc_handle_rdtsc()
525 ctxt->regs->cx = ghcb->save.rcx; in vc_handle_rdtsc()