Lines Matching refs:ghcb
24 struct ghcb ghcb; member
78 hv_ghcb->ghcb.protocol_version = GHCB_PROTOCOL_MAX; in hv_ghcb_hypercall()
79 hv_ghcb->ghcb.ghcb_usage = GHCB_USAGE_HYPERV_CALL; in hv_ghcb_hypercall()
90 hv_ghcb->ghcb.ghcb_usage = 0xffffffff; in hv_ghcb_hypercall()
91 memset(hv_ghcb->ghcb.save.valid_bitmap, 0, in hv_ghcb_hypercall()
92 sizeof(hv_ghcb->ghcb.save.valid_bitmap)); in hv_ghcb_hypercall()
111 static enum es_result hv_ghcb_hv_call(struct ghcb *ghcb, u64 exit_code, in hv_ghcb_hv_call() argument
115 ghcb->protocol_version = hv_ghcb_version; in hv_ghcb_hv_call()
116 ghcb->ghcb_usage = GHCB_DEFAULT_USAGE; in hv_ghcb_hv_call()
118 ghcb_set_sw_exit_code(ghcb, exit_code); in hv_ghcb_hv_call()
119 ghcb_set_sw_exit_info_1(ghcb, exit_info_1); in hv_ghcb_hv_call()
120 ghcb_set_sw_exit_info_2(ghcb, exit_info_2); in hv_ghcb_hv_call()
124 if (ghcb->save.sw_exit_info_1 & GENMASK_ULL(31, 0)) in hv_ghcb_hv_call()
194 ghcb_set_rcx(&hv_ghcb->ghcb, msr); in hv_ghcb_msr_write()
195 ghcb_set_rax(&hv_ghcb->ghcb, lower_32_bits(value)); in hv_ghcb_msr_write()
196 ghcb_set_rdx(&hv_ghcb->ghcb, upper_32_bits(value)); in hv_ghcb_msr_write()
198 if (hv_ghcb_hv_call(&hv_ghcb->ghcb, SVM_EXIT_MSR, 1, 0)) in hv_ghcb_msr_write()
227 ghcb_set_rcx(&hv_ghcb->ghcb, msr); in hv_ghcb_msr_read()
228 if (hv_ghcb_hv_call(&hv_ghcb->ghcb, SVM_EXIT_MSR, 0, 0)) in hv_ghcb_msr_read()
231 *value = (u64)lower_32_bits(hv_ghcb->ghcb.save.rax) in hv_ghcb_msr_read()
232 | ((u64)lower_32_bits(hv_ghcb->ghcb.save.rdx) << 32); in hv_ghcb_msr_read()