Lines Matching defs:ghcb
32 struct ghcb ghcb;
88 hv_ghcb->ghcb.protocol_version = GHCB_PROTOCOL_MAX;
89 hv_ghcb->ghcb.ghcb_usage = GHCB_USAGE_HYPERV_CALL;
100 hv_ghcb->ghcb.ghcb_usage = 0xffffffff;
101 memset(hv_ghcb->ghcb.save.valid_bitmap, 0,
102 sizeof(hv_ghcb->ghcb.save.valid_bitmap));
121 static enum es_result hv_ghcb_hv_call(struct ghcb *ghcb, u64 exit_code,
125 ghcb->protocol_version = hv_ghcb_version;
126 ghcb->ghcb_usage = GHCB_DEFAULT_USAGE;
128 ghcb_set_sw_exit_code(ghcb, exit_code);
129 ghcb_set_sw_exit_info_1(ghcb, exit_info_1);
130 ghcb_set_sw_exit_info_2(ghcb, exit_info_2);
134 if (ghcb->save.sw_exit_info_1 & GENMASK_ULL(31, 0))
160 /* Save ghcb page gpa. */
178 /* Write ghcb page back after negotiating protocol. */
204 ghcb_set_rcx(&hv_ghcb->ghcb, msr);
205 ghcb_set_rax(&hv_ghcb->ghcb, lower_32_bits(value));
206 ghcb_set_rdx(&hv_ghcb->ghcb, upper_32_bits(value));
208 if (hv_ghcb_hv_call(&hv_ghcb->ghcb, SVM_EXIT_MSR, 1, 0))
209 pr_warn("Fail to write msr via ghcb %llx.\n", msr);
236 ghcb_set_rcx(&hv_ghcb->ghcb, msr);
237 if (hv_ghcb_hv_call(&hv_ghcb->ghcb, SVM_EXIT_MSR, 0, 0))
238 pr_warn("Fail to read msr via ghcb %llx.\n", msr);
240 *value = (u64)lower_32_bits(hv_ghcb->ghcb.save.rax)
241 | ((u64)lower_32_bits(hv_ghcb->ghcb.save.rdx) << 32);