Lines Matching defs:ghcb

2374 	struct ghcb *ghcb = svm->sev_es.ghcb;
2383 nbits = sizeof(ghcb->save.valid_bitmap) * 8;
2387 ghcb->save.sw_exit_code, ghcb_sw_exit_code_is_valid(ghcb));
2389 ghcb->save.sw_exit_info_1, ghcb_sw_exit_info_1_is_valid(ghcb));
2391 ghcb->save.sw_exit_info_2, ghcb_sw_exit_info_2_is_valid(ghcb));
2393 ghcb->save.sw_scratch, ghcb_sw_scratch_is_valid(ghcb));
2394 pr_err("%-20s%*pb\n", "valid_bitmap", nbits, ghcb->save.valid_bitmap);
2400 struct ghcb *ghcb = svm->sev_es.ghcb;
2410 ghcb_set_rax(ghcb, vcpu->arch.regs[VCPU_REGS_RAX]);
2411 ghcb_set_rbx(ghcb, vcpu->arch.regs[VCPU_REGS_RBX]);
2412 ghcb_set_rcx(ghcb, vcpu->arch.regs[VCPU_REGS_RCX]);
2413 ghcb_set_rdx(ghcb, vcpu->arch.regs[VCPU_REGS_RDX]);
2420 struct ghcb *ghcb = svm->sev_es.ghcb;
2437 BUILD_BUG_ON(sizeof(svm->sev_es.valid_bitmap) != sizeof(ghcb->save.valid_bitmap));
2438 memcpy(&svm->sev_es.valid_bitmap, &ghcb->save.valid_bitmap, sizeof(ghcb->save.valid_bitmap));
2440 vcpu->arch.regs[VCPU_REGS_RAX] = kvm_ghcb_get_rax_if_valid(svm, ghcb);
2441 vcpu->arch.regs[VCPU_REGS_RBX] = kvm_ghcb_get_rbx_if_valid(svm, ghcb);
2442 vcpu->arch.regs[VCPU_REGS_RCX] = kvm_ghcb_get_rcx_if_valid(svm, ghcb);
2443 vcpu->arch.regs[VCPU_REGS_RDX] = kvm_ghcb_get_rdx_if_valid(svm, ghcb);
2444 vcpu->arch.regs[VCPU_REGS_RSI] = kvm_ghcb_get_rsi_if_valid(svm, ghcb);
2446 svm->vmcb->save.cpl = kvm_ghcb_get_cpl_if_valid(svm, ghcb);
2449 vcpu->arch.xcr0 = ghcb_get_xcr0(ghcb);
2454 exit_code = ghcb_get_sw_exit_code(ghcb);
2457 control->exit_info_1 = ghcb_get_sw_exit_info_1(ghcb);
2458 control->exit_info_2 = ghcb_get_sw_exit_info_2(ghcb);
2459 svm->sev_es.sw_scratch = kvm_ghcb_get_sw_scratch_if_valid(svm, ghcb);
2462 memset(ghcb->save.valid_bitmap, 0, sizeof(ghcb->save.valid_bitmap));
2484 if (svm->sev_es.ghcb->ghcb_usage) {
2577 vcpu_unimpl(vcpu, "vmgexit: ghcb usage %#x is not valid\n",
2578 svm->sev_es.ghcb->ghcb_usage);
2588 ghcb_set_sw_exit_info_1(svm->sev_es.ghcb, 2);
2589 ghcb_set_sw_exit_info_2(svm->sev_es.ghcb, reason);
2597 if (!svm->sev_es.ghcb)
2619 trace_kvm_vmgexit_exit(svm->vcpu.vcpu_id, svm->sev_es.ghcb);
2624 svm->sev_es.ghcb = NULL;
2674 offsetof(struct ghcb, shared_buffer);
2676 offsetof(struct ghcb, reserved_0xff0);
2689 scratch_va = (void *)svm->sev_es.ghcb;
2729 ghcb_set_sw_exit_info_1(svm->sev_es.ghcb, 2);
2730 ghcb_set_sw_exit_info_2(svm->sev_es.ghcb, GHCB_ERR_INVALID_SCRATCH_AREA);
2866 svm->sev_es.ghcb = svm->sev_es.ghcb_map.hva;
2868 trace_kvm_vmgexit_enter(vcpu->vcpu_id, svm->sev_es.ghcb);
2875 ghcb_set_sw_exit_info_1(svm->sev_es.ghcb, 0);
2876 ghcb_set_sw_exit_info_2(svm->sev_es.ghcb, 0);
2919 ghcb_set_sw_exit_info_2(svm->sev_es.ghcb, sev->ap_jump_table);
2924 ghcb_set_sw_exit_info_1(svm->sev_es.ghcb, 2);
2925 ghcb_set_sw_exit_info_2(svm->sev_es.ghcb, GHCB_ERR_INVALID_INPUT);
3136 if (!svm->sev_es.ghcb)
3139 ghcb_set_sw_exit_info_2(svm->sev_es.ghcb, 1);