]> git.proxmox.com Git - mirror_edk2.git/blobdiff - SecurityPkg/Library/DxeTcgPhysicalPresenceLib/DxeTcgPhysicalPresenceLib.c
SecurityPkg DxeTcgPhysicalPresenceLib: Enable Storage actions.
[mirror_edk2.git] / SecurityPkg / Library / DxeTcgPhysicalPresenceLib / DxeTcgPhysicalPresenceLib.c
index 4f35be80bb2d6589d84c9e018647c838848b3381..ca8de26b75a0a0d8d04ea58eab5445787b73f051 100644 (file)
@@ -35,6 +35,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Guid/EventGroup.h>\r
 #include <Guid/PhysicalPresenceData.h>\r
 #include <Library/TcgPpVendorLib.h>\r
+#include <Library/TcgPhysicalPresenceStorageLib.h>\r
 \r
 #define CONFIRM_BUFFER_SIZE         4096\r
 \r
@@ -1172,7 +1173,12 @@ TcgPhysicalPresenceLibProcessRequest (
   EFI_TCG_PROTOCOL                  *TcgProtocol;\r
   EDKII_VARIABLE_LOCK_PROTOCOL      *VariableLockProtocol;\r
   EFI_PHYSICAL_PRESENCE_FLAGS       PpiFlags;\r
-  \r
+\r
+  //\r
+  // Process the storage related action first.\r
+  //\r
+  TcgPhysicalPresenceStorageLibProcessRequest();\r
+\r
   Status = gBS->LocateProtocol (&gEfiTcgProtocolGuid, NULL, (VOID **)&TcgProtocol);\r
   if (EFI_ERROR (Status)) {\r
     return ;\r
@@ -1317,7 +1323,16 @@ TcgPhysicalPresenceLibNeedUserConfirm(
   BOOLEAN                      CmdEnable;\r
   EFI_TCG_PROTOCOL             *TcgProtocol;\r
   EFI_PHYSICAL_PRESENCE_FLAGS  PpiFlags;\r
-  \r
+\r
+  //\r
+  // Process the storage related action first.\r
+  // If confirm need user confirm, just return TRUE.\r
+  // else continue check other actions.\r
+  //\r
+  if (TcgPhysicalPresenceStorageLibNeedUserConfirm()) {\r
+    return TRUE;\r
+  }\r
+\r
   Status = gBS->LocateProtocol (&gEfiTcgProtocolGuid, NULL, (VOID **)&TcgProtocol);\r
   if (EFI_ERROR (Status)) {\r
     return FALSE;\r