#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
**/\r
EFI_STATUS\r
SetDmaProtectedRange (\r
+ IN UINT64 EngineMask,\r
IN UINT32 LowMemoryBase,\r
IN UINT32 LowMemoryLength,\r
IN UINT64 HighMemoryBase,\r
/**\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