Home
last modified time | relevance | path

Searched refs:ghcb (Results 1 – 8 of 8) sorted by relevance

/linux/arch/x86/coco/sev/
H A Dcore.c87 static struct ghcb boot_ghcb_page __bss_decrypted __aligned(PAGE_SIZE);
93 static struct ghcb *boot_ghcb __section(".data");
112 struct ghcb ghcb_page;
121 struct ghcb backup_ghcb;
148 struct ghcb *ghcb; member
236 static noinstr struct ghcb *__sev_get_ghcb(struct ghcb_state *state) in __sev_get_ghcb()
239 struct ghcb *ghcb; in __sev_get_ghcb() local
244 ghcb = &data->ghcb_page; in __sev_get_ghcb()
267 state->ghcb = &data->backup_ghcb; in __sev_get_ghcb()
270 *state->ghcb = *ghcb; in __sev_get_ghcb()
[all …]
/linux/arch/x86/kernel/cpu/
H A Dvmware.c545 static void vmware_sev_es_hcall_prepare(struct ghcb *ghcb, in vmware_sev_es_hcall_prepare() argument
549 ghcb_set_rip(ghcb, regs->ip); in vmware_sev_es_hcall_prepare()
550 ghcb_set_rbx(ghcb, regs->bx); in vmware_sev_es_hcall_prepare()
551 ghcb_set_rcx(ghcb, regs->cx); in vmware_sev_es_hcall_prepare()
552 ghcb_set_rdx(ghcb, regs->dx); in vmware_sev_es_hcall_prepare()
553 ghcb_set_rsi(ghcb, regs->si); in vmware_sev_es_hcall_prepare()
554 ghcb_set_rdi(ghcb, regs->di); in vmware_sev_es_hcall_prepare()
555 ghcb_set_rbp(ghcb, regs->bp); in vmware_sev_es_hcall_prepare()
558 static bool vmware_sev_es_hcall_finish(struct ghcb *ghcb, struct pt_regs *regs) in vmware_sev_es_hcall_finish() argument
560 if (!(ghcb_rbx_is_valid(ghcb) && in vmware_sev_es_hcall_finish()
[all …]
H A Dmshyperv.c687 static void hv_sev_es_hcall_prepare(struct ghcb *ghcb, struct pt_regs *regs) in hv_sev_es_hcall_prepare() argument
690 ghcb_set_rcx(ghcb, regs->cx); in hv_sev_es_hcall_prepare()
691 ghcb_set_rdx(ghcb, regs->dx); in hv_sev_es_hcall_prepare()
692 ghcb_set_r8(ghcb, regs->r8); in hv_sev_es_hcall_prepare()
695 static bool hv_sev_es_hcall_finish(struct ghcb *ghcb, struct pt_regs *regs) in hv_sev_es_hcall_finish() argument
/linux/arch/x86/hyperv/
H A Divm.c32 struct ghcb ghcb; member
88 hv_ghcb->ghcb.protocol_version = GHCB_PROTOCOL_MAX; in hv_ghcb_hypercall()
89 hv_ghcb->ghcb.ghcb_usage = GHCB_USAGE_HYPERV_CALL; in hv_ghcb_hypercall()
100 hv_ghcb->ghcb.ghcb_usage = 0xffffffff; in hv_ghcb_hypercall()
101 memset(hv_ghcb->ghcb.save.valid_bitmap, 0, in hv_ghcb_hypercall()
102 sizeof(hv_ghcb->ghcb.save.valid_bitmap)); in hv_ghcb_hypercall()
121 static enum es_result hv_ghcb_hv_call(struct ghcb *ghcb, u64 exit_code, in hv_ghcb_hv_call() argument
125 ghcb->protocol_version = hv_ghcb_version; in hv_ghcb_hv_call()
126 ghcb->ghcb_usage = GHCB_DEFAULT_USAGE; in hv_ghcb_hv_call()
128 ghcb_set_sw_exit_code(ghcb, exit_code); in hv_ghcb_hv_call()
[all …]
/linux/arch/x86/include/asm/
H A Dx86_init.h5 struct ghcb;
282 void (*sev_es_hcall_prepare)(struct ghcb *ghcb, struct pt_regs *regs);
283 bool (*sev_es_hcall_finish)(struct ghcb *ghcb, struct pt_regs *regs);
/linux/arch/x86/kvm/svm/
H A Dsev.c3198 struct ghcb *ghcb = svm->sev_es.ghcb; in dump_ghcb() local
3207 nbits = sizeof(ghcb->save.valid_bitmap) * 8; in dump_ghcb()
3211 ghcb->save.sw_exit_code, ghcb_sw_exit_code_is_valid(ghcb)); in dump_ghcb()
3213 ghcb->save.sw_exit_info_1, ghcb_sw_exit_info_1_is_valid(ghcb)); in dump_ghcb()
3215 ghcb->save.sw_exit_info_2, ghcb_sw_exit_info_2_is_valid(ghcb)); in dump_ghcb()
3217 ghcb->save.sw_scratch, ghcb_sw_scratch_is_valid(ghcb)); in dump_ghcb()
3218 pr_err("%-20s%*pb\n", "valid_bitmap", nbits, ghcb->save.valid_bitmap); in dump_ghcb()
3224 struct ghcb *ghcb = svm->sev_es.ghcb; in sev_es_sync_to_ghcb() local
3234 ghcb_set_rax(ghcb, vcpu->arch.regs[VCPU_REGS_RAX]); in sev_es_sync_to_ghcb()
3235 ghcb_set_rbx(ghcb, vcpu->arch.regs[VCPU_REGS_RBX]); in sev_es_sync_to_ghcb()
[all …]
H A Dsvm.h218 struct ghcb *ghcb; member
805 …static __always_inline u64 kvm_ghcb_get_##field##_if_valid(struct vcpu_svm *svm, struct ghcb *ghcb
807 return kvm_ghcb_##field##_is_valid(svm) ? ghcb->save.field : 0; \
H A Dsvm.c2973 if (!err || !sev_es_guest(vcpu->kvm) || WARN_ON_ONCE(!svm->sev_es.ghcb)) in svm_complete_emulated_msr()
2976 ghcb_set_sw_exit_info_1(svm->sev_es.ghcb, 1); in svm_complete_emulated_msr()
2977 ghcb_set_sw_exit_info_2(svm->sev_es.ghcb, in svm_complete_emulated_msr()