Lines Matching refs:ctxt

76 static enum es_result vc_init_em_ctxt(struct es_em_ctxt *ctxt,  in vc_init_em_ctxt()  argument
82 memset(ctxt, 0, sizeof(*ctxt)); in vc_init_em_ctxt()
83 ctxt->regs = regs; in vc_init_em_ctxt()
86 ret = vc_decode_insn(ctxt); in vc_init_em_ctxt()
91 static void vc_finish_insn(struct es_em_ctxt *ctxt) in vc_finish_insn() argument
93 ctxt->regs->ip += ctxt->insn.length; in vc_finish_insn()
97 struct es_em_ctxt *ctxt, in sev_es_ghcb_hv_call() argument
125 ctxt->fi.vector = v; in sev_es_ghcb_hv_call()
127 ctxt->fi.error_code = info >> 32; in sev_es_ghcb_hv_call()
221 static enum es_result vc_insn_string_read(struct es_em_ctxt *ctxt, in vc_insn_string_read() argument
234 ret = vc_read_mem(ctxt, s, d, data_size); in vc_insn_string_read()
242 static enum es_result vc_insn_string_write(struct es_em_ctxt *ctxt, in vc_insn_string_write() argument
255 ret = vc_write_mem(ctxt, d, b, data_size); in vc_insn_string_write()
282 static enum es_result vc_ioio_exitinfo(struct es_em_ctxt *ctxt, u64 *exitinfo) in vc_ioio_exitinfo() argument
284 struct insn *insn = &ctxt->insn; in vc_ioio_exitinfo()
293 *exitinfo |= (ctxt->regs->dx & 0xffff) << 16; in vc_ioio_exitinfo()
301 *exitinfo |= (ctxt->regs->dx & 0xffff) << 16; in vc_ioio_exitinfo()
322 *exitinfo |= (ctxt->regs->dx & 0xffff) << 16; in vc_ioio_exitinfo()
329 *exitinfo |= (ctxt->regs->dx & 0xffff) << 16; in vc_ioio_exitinfo()
369 static enum es_result vc_handle_ioio(struct ghcb *ghcb, struct es_em_ctxt *ctxt) in vc_handle_ioio() argument
371 struct pt_regs *regs = ctxt->regs; in vc_handle_ioio()
375 ret = vc_ioio_exitinfo(ctxt, &exit_info_1); in vc_handle_ioio()
402 es_base = insn_get_seg_base(ctxt->regs, INAT_SEG_REG_ES); in vc_handle_ioio()
406 ret = vc_insn_string_read(ctxt, in vc_handle_ioio()
421 ret = sev_es_ghcb_hv_call(ghcb, ctxt, SVM_EXIT_IOIO, in vc_handle_ioio()
428 ret = vc_insn_string_write(ctxt, in vc_handle_ioio()
463 ret = sev_es_ghcb_hv_call(ghcb, ctxt, SVM_EXIT_IOIO, exit_info_1, 0); in vc_handle_ioio()
478 struct es_em_ctxt *ctxt) in vc_handle_cpuid() argument
480 struct pt_regs *regs = ctxt->regs; in vc_handle_cpuid()
494 ret = sev_es_ghcb_hv_call(ghcb, ctxt, SVM_EXIT_CPUID, 0, 0); in vc_handle_cpuid()
513 struct es_em_ctxt *ctxt, in vc_handle_rdtsc() argument
519 ret = sev_es_ghcb_hv_call(ghcb, ctxt, exit_code, 0, 0); in vc_handle_rdtsc()
527 ctxt->regs->ax = ghcb->save.rax; in vc_handle_rdtsc()
528 ctxt->regs->dx = ghcb->save.rdx; in vc_handle_rdtsc()
530 ctxt->regs->cx = ghcb->save.rcx; in vc_handle_rdtsc()