/** @file Functions to make Xen hypercalls. Copyright (C) 2014, Citrix Ltd. SPDX-License-Identifier: BSD-2-Clause-Patent **/ #include #include #include #include #include UINT64 EFIAPI XenHypercallHvmGetParam ( IN UINT32 Index ) { xen_hvm_param_t Parameter; INTN Error; Parameter.domid = DOMID_SELF; Parameter.index = Index; Error = XenHypercall2 (__HYPERVISOR_hvm_op, HVMOP_get_param, (INTN) &Parameter); if (Error != 0) { DEBUG ((EFI_D_ERROR, "XenHypercall: Error %Ld trying to get HVM parameter %d\n", (INT64)Error, Index)); return 0; } return Parameter.value; } INTN EFIAPI XenHypercallMemoryOp ( IN UINTN Operation, IN OUT VOID *Arguments ) { return XenHypercall2 (__HYPERVISOR_memory_op, Operation, (INTN) Arguments); } INTN EFIAPI XenHypercallEventChannelOp ( IN INTN Operation, IN OUT VOID *Arguments ) { return XenHypercall2 (__HYPERVISOR_event_channel_op, Operation, (INTN) Arguments); }