IntelSiliconPkg/IntelVTdPmrPei: Parse RMRR table.
[mirror_edk2.git] / IntelSiliconPkg / Feature / VTd / IntelVTdPmrPei / IntelVTdPmrPei.h
index aa5926a..720f5d4 100644 (file)
 #ifndef __DMA_ACCESS_LIB_H__\r
 #define __DMA_ACCESS_LIB_H__\r
 \r
+typedef struct {\r
+  UINT8                                   HostAddressWidth;\r
+  UINTN                                   VTdEngineCount;\r
+  UINT64                                  VTdEngineAddress[1];\r
+} VTD_INFO;\r
+\r
 /**\r
   Set DMA protected region.\r
 \r
+  @param EngineMask         The mask of the VTd engine to be accessed.\r
   @param LowMemoryBase      The protected low memory region base.\r
   @param LowMemoryLength    The protected low memory region length.\r
   @param HighMemoryBase     The protected high memory region base.\r
@@ -28,6 +35,7 @@
 **/\r
 EFI_STATUS\r
 SetDmaProtectedRange (\r
+  IN UINT64        EngineMask,\r
   IN UINT32        LowMemoryBase,\r
   IN UINT32        LowMemoryLength,\r
   IN UINT64        HighMemoryBase,\r
@@ -37,31 +45,37 @@ SetDmaProtectedRange (
 /**\r
   Diable DMA protection.\r
 \r
+  @param EngineMask         The mask of the VTd engine to be accessed.\r
+\r
   @retval DMA protection is disabled.\r
 **/\r
 EFI_STATUS\r
 DisableDmaProtection (\r
-  VOID\r
+  IN UINT64        EngineMask\r
   );\r
 \r
 /**\r
   Get protected low memory alignment.\r
 \r
+  @param EngineMask         The mask of the VTd engine to be accessed.\r
+\r
   @return protected low memory alignment.\r
 **/\r
 UINT32\r
 GetLowMemoryAlignment (\r
-  VOID\r
+  IN UINT64        EngineMask\r
   );\r
 \r
 /**\r
   Get protected high memory alignment.\r
 \r
+  @param EngineMask         The mask of the VTd engine to be accessed.\r
+\r
   @return protected high memory alignment.\r
 **/\r
 UINT64\r
 GetHighMemoryAlignment (\r
-  VOID\r
+  IN UINT64        EngineMask\r
   );\r
 \r
 #endif\r