]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/XenBusDxe/GrantTable.c
CryptoPkg/TlsLib: pre-compute OpensslCipherLength in TlsCipherMappingTable
[mirror_edk2.git] / OvmfPkg / XenBusDxe / GrantTable.c
index 8405edc51bc4c6c82825eabe9f18ee0b70df1fce..90dec26ab00147bc1788a2b778c238e0073054af 100644 (file)
 \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
@@ -139,8 +139,7 @@ XenGrantTableEndAccess (
 \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
@@ -155,15 +154,17 @@ XenGrantTableInit (
     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
@@ -183,10 +184,13 @@ XenGrantTableDeinit (
   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