Searched refs:ghcb (Results 1 - 13 of 13) sorted by relevance

/linux-master/arch/x86/kernel/
H A Dsev-shared.c171 static __always_inline void vc_ghcb_invalidate(struct ghcb *ghcb) argument
173 ghcb->save.sw_exit_code = 0;
174 __builtin_memset(ghcb->save.valid_bitmap, 0, sizeof(ghcb->save.valid_bitmap));
204 static enum es_result verify_exception_info(struct ghcb *ghcb, struct es_em_ctxt *ctxt) argument
208 ret = ghcb->save.sw_exit_info_1 & GENMASK_ULL(31, 0);
213 u64 info = ghcb->save.sw_exit_info_2;
232 static enum es_result sev_es_ghcb_hv_call(struct ghcb *ghc argument
289 __sev_cpuid_hv_ghcb(struct ghcb *ghcb, struct es_em_ctxt *ctxt, struct cpuid_leaf *leaf) argument
322 sev_cpuid_hv(struct ghcb *ghcb, struct es_em_ctxt *ctxt, struct cpuid_leaf *leaf) argument
431 snp_cpuid_hv(struct ghcb *ghcb, struct es_em_ctxt *ctxt, struct cpuid_leaf *leaf) argument
437 snp_cpuid_postprocess(struct ghcb *ghcb, struct es_em_ctxt *ctxt, struct cpuid_leaf *leaf) argument
533 snp_cpuid(struct ghcb *ghcb, struct es_em_ctxt *ctxt, struct cpuid_leaf *leaf) argument
825 vc_handle_ioio(struct ghcb *ghcb, struct es_em_ctxt *ctxt) argument
933 vc_handle_cpuid_snp(struct ghcb *ghcb, struct es_em_ctxt *ctxt) argument
952 vc_handle_cpuid(struct ghcb *ghcb, struct es_em_ctxt *ctxt) argument
994 vc_handle_rdtsc(struct ghcb *ghcb, struct es_em_ctxt *ctxt, unsigned long exit_code) argument
1116 vmgexit_psc(struct ghcb *ghcb, struct snp_psc_desc *desc) argument
[all...]
H A Dsev.c84 static struct ghcb boot_ghcb_page __bss_decrypted __aligned(PAGE_SIZE);
90 static struct ghcb *boot_ghcb __section(".data");
97 struct ghcb ghcb_page;
106 struct ghcb backup_ghcb;
133 struct ghcb *ghcb; member in struct:ghcb_state
235 static noinstr struct ghcb *__sev_get_ghcb(struct ghcb_state *state)
238 struct ghcb *ghcb; local
243 ghcb
513 vc_slow_virt_to_phys(struct ghcb *ghcb, struct es_em_ctxt *ctxt, unsigned long vaddr, phys_addr_t *paddr) argument
581 struct ghcb *ghcb; local
606 struct ghcb *ghcb; local
677 struct ghcb *ghcb; local
808 struct ghcb *ghcb; local
981 struct ghcb *ghcb; local
1203 vc_handle_msr(struct ghcb *ghcb, struct es_em_ctxt *ctxt) argument
1231 struct ghcb *ghcb; local
1285 struct ghcb *ghcb; local
1430 vc_do_mmio(struct ghcb *ghcb, struct es_em_ctxt *ctxt, unsigned int bytes, bool read) argument
1529 vc_handle_mmio(struct ghcb *ghcb, struct es_em_ctxt *ctxt) argument
1610 vc_handle_dr7_write(struct ghcb *ghcb, struct es_em_ctxt *ctxt) argument
1651 vc_handle_dr7_read(struct ghcb *ghcb, struct es_em_ctxt *ctxt) argument
1671 vc_handle_wbinvd(struct ghcb *ghcb, struct es_em_ctxt *ctxt) argument
1677 vc_handle_rdpmc(struct ghcb *ghcb, struct es_em_ctxt *ctxt) argument
1696 vc_handle_monitor(struct ghcb *ghcb, struct es_em_ctxt *ctxt) argument
1706 vc_handle_mwait(struct ghcb *ghcb, struct es_em_ctxt *ctxt) argument
1713 vc_handle_vmmcall(struct ghcb *ghcb, struct es_em_ctxt *ctxt) argument
1745 vc_handle_trap_ac(struct ghcb *ghcb, struct es_em_ctxt *ctxt) argument
1758 vc_handle_exitcode(struct es_em_ctxt *ctxt, struct ghcb *ghcb, unsigned long exit_code) argument
1874 struct ghcb *ghcb; local
2199 struct ghcb *ghcb; local
[all...]
H A Dkvm.c986 static void kvm_sev_es_hcall_prepare(struct ghcb *ghcb, struct pt_regs *regs) argument
989 ghcb_set_rbx(ghcb, regs->bx);
990 ghcb_set_rcx(ghcb, regs->cx);
991 ghcb_set_rdx(ghcb, regs->dx);
992 ghcb_set_rsi(ghcb, regs->si);
995 static bool kvm_sev_es_hcall_finish(struct ghcb *ghcb, struct pt_regs *regs) argument
/linux-master/arch/x86/kernel/cpu/
H A Dvmware.c484 static void vmware_sev_es_hcall_prepare(struct ghcb *ghcb, argument
488 ghcb_set_rip(ghcb, regs->ip);
489 ghcb_set_rbx(ghcb, regs->bx);
490 ghcb_set_rcx(ghcb, regs->cx);
491 ghcb_set_rdx(ghcb, regs->dx);
492 ghcb_set_rsi(ghcb, regs->si);
493 ghcb_set_rdi(ghcb, regs->di);
494 ghcb_set_rbp(ghcb, regs->bp);
497 static bool vmware_sev_es_hcall_finish(struct ghcb *ghc argument
[all...]
H A Dmshyperv.c625 static void hv_sev_es_hcall_prepare(struct ghcb *ghcb, struct pt_regs *regs) argument
628 ghcb_set_rcx(ghcb, regs->cx);
629 ghcb_set_rdx(ghcb, regs->dx);
630 ghcb_set_r8(ghcb, regs->r8);
633 static bool hv_sev_es_hcall_finish(struct ghcb *ghcb, struct pt_regs *regs) argument
/linux-master/arch/x86/include/asm/
H A Dx86_init.h5 struct ghcb;
272 void (*sev_es_hcall_prepare)(struct ghcb *ghcb, struct pt_regs *regs);
273 bool (*sev_es_hcall_finish)(struct ghcb *ghcb, struct pt_regs *regs);
H A Dsvm.h501 struct ghcb { struct
528 BUILD_BUG_ON(sizeof(struct ghcb) != EXPECTED_GHCB_SIZE);
561 BUILD_BUG_RESERVED_OFFSET(ghcb, 0xff0);
630 static __always_inline bool ghcb_##field##_is_valid(const struct ghcb *ghcb) \
633 (unsigned long *)&ghcb->save.valid_bitmap); \
636 static __always_inline u64 ghcb_get_##field(struct ghcb *ghcb) \
638 return ghcb->save.field; \
641 static __always_inline u64 ghcb_get_##field##_if_valid(struct ghcb *ghc
[all...]
/linux-master/arch/x86/hyperv/
H A Divm.c33 struct ghcb ghcb; member in union:hv_ghcb
89 hv_ghcb->ghcb.protocol_version = GHCB_PROTOCOL_MAX;
90 hv_ghcb->ghcb.ghcb_usage = GHCB_USAGE_HYPERV_CALL;
101 hv_ghcb->ghcb.ghcb_usage = 0xffffffff;
102 memset(hv_ghcb->ghcb.save.valid_bitmap, 0,
103 sizeof(hv_ghcb->ghcb.save.valid_bitmap));
122 static enum es_result hv_ghcb_hv_call(struct ghcb *ghcb, u64 exit_code, argument
126 ghcb
[all...]
/linux-master/arch/x86/boot/compressed/
H A Dsev.c29 static struct ghcb boot_ghcb_page __aligned(PAGE_SIZE);
30 struct ghcb *boot_ghcb;
275 static void __noreturn sev_es_ghcb_terminate(struct ghcb *ghcb, unsigned int set, argument
280 vc_ghcb_invalidate(ghcb);
281 ghcb_set_sw_exit_code(ghcb, SVM_VMGEXIT_TERM_REQUEST);
282 ghcb_set_sw_exit_info_1(ghcb, exit_info_1);
283 ghcb_set_sw_exit_info_2(ghcb, exit_info_2);
285 sev_es_wr_ghcb_msr(__pa(ghcb));
/linux-master/arch/x86/kvm/svm/
H A Dsev.c2395 struct ghcb *ghcb = svm->sev_es.ghcb; local
2404 nbits = sizeof(ghcb->save.valid_bitmap) * 8;
2408 ghcb->save.sw_exit_code, ghcb_sw_exit_code_is_valid(ghcb));
2410 ghcb->save.sw_exit_info_1, ghcb_sw_exit_info_1_is_valid(ghcb));
2412 ghcb->save.sw_exit_info_2, ghcb_sw_exit_info_2_is_valid(ghcb));
2421 struct ghcb *ghcb = svm->sev_es.ghcb; local
2441 struct ghcb *ghcb = svm->sev_es.ghcb; local
[all...]
H A Dsvm.h196 struct ghcb *ghcb; member in struct:vcpu_sev_es_state
712 static __always_inline u64 kvm_ghcb_get_##field##_if_valid(struct vcpu_svm *svm, struct ghcb *ghcb) \
714 return kvm_ghcb_##field##_is_valid(svm) ? ghcb->save.field : 0; \
H A Dsvm.c2935 if (!err || !sev_es_guest(vcpu->kvm) || WARN_ON_ONCE(!svm->sev_es.ghcb))
2938 ghcb_set_sw_exit_info_1(svm->sev_es.ghcb, 1);
2939 ghcb_set_sw_exit_info_2(svm->sev_es.ghcb,
3352 pr_err("%-20s%016llx\n", "ghcb:", control->ghcb_gpa);
/linux-master/arch/x86/kvm/
H A Dtrace.h1745 TP_PROTO(unsigned int vcpu_id, struct ghcb *ghcb),
1746 TP_ARGS(vcpu_id, ghcb),
1757 __entry->exit_reason = ghcb->save.sw_exit_code;
1758 __entry->info1 = ghcb->save.sw_exit_info_1;
1759 __entry->info2 = ghcb->save.sw_exit_info_2;
1771 TP_PROTO(unsigned int vcpu_id, struct ghcb *ghcb),
1772 TP_ARGS(vcpu_id, ghcb),
1783 __entry->exit_reason = ghcb
[all...]

Completed in 196 milliseconds