\r
#include <IndustryStandard/Xen/memory.h>\r
\r
-#include "XenHypercall.h"\r
+#include <Library/XenHypercallLib.h>\r
+#include <Library/SynchronizationLib.h>\r
\r
#include "GrantTable.h"\r
-#include "InterlockedCompareExchange16.h"\r
\r
#define NR_RESERVED_ENTRIES 8\r
\r
\r
VOID\r
XenGrantTableInit (\r
- IN XENBUS_DEVICE *Dev,\r
- IN UINT64 MmioAddr\r
+ IN XENBUS_DEVICE *Dev\r
)\r
{\r
xen_add_to_physmap_t Parameters;\r
XenGrantTablePutFreeEntry ((grant_ref_t)Index);\r
}\r
\r
- GrantTable = (VOID*)(UINTN) MmioAddr;\r
+ GrantTable = (VOID*)(UINTN) Dev->XenIo->GrantTableAddress;\r
for (Index = 0; Index < NR_GRANT_FRAMES; Index++) {\r
Parameters.domid = DOMID_SELF;\r
Parameters.idx = Index;\r
Parameters.space = XENMAPSPACE_grant_table;\r
Parameters.gpfn = (xen_pfn_t) ((UINTN) GrantTable >> EFI_PAGE_SHIFT) + Index;\r
- ReturnCode = XenHypercallMemoryOp (Dev, XENMEM_add_to_physmap, &Parameters);\r
+ ReturnCode = XenHypercallMemoryOp (XENMEM_add_to_physmap, &Parameters);\r
if (ReturnCode != 0) {\r
- DEBUG ((EFI_D_ERROR, "Xen GrantTable, add_to_physmap hypercall error: %d\n", ReturnCode));\r
+ DEBUG ((EFI_D_ERROR,\r
+ "Xen GrantTable, add_to_physmap hypercall error: %Ld\n",\r
+ (INT64)ReturnCode));\r
}\r
}\r
}\r
for (Index = NR_GRANT_FRAMES - 1; Index >= 0; Index--) {\r
Parameters.domid = DOMID_SELF;\r
Parameters.gpfn = (xen_pfn_t) ((UINTN) GrantTable >> EFI_PAGE_SHIFT) + Index;\r
- DEBUG ((EFI_D_INFO, "Xen GrantTable, removing %X\n", Parameters.gpfn));\r
- ReturnCode = XenHypercallMemoryOp (Dev, XENMEM_remove_from_physmap, &Parameters);\r
+ DEBUG ((EFI_D_INFO, "Xen GrantTable, removing %Lx\n",\r
+ (UINT64)Parameters.gpfn));\r
+ ReturnCode = XenHypercallMemoryOp (XENMEM_remove_from_physmap, &Parameters);\r
if (ReturnCode != 0) {\r
- DEBUG ((EFI_D_ERROR, "Xen GrantTable, remove_from_physmap hypercall error: %d\n", ReturnCode));\r
+ DEBUG ((EFI_D_ERROR,\r
+ "Xen GrantTable, remove_from_physmap hypercall error: %Ld\n",\r
+ (INT64)ReturnCode));\r
}\r
}\r
GrantTable = NULL;\r