]> git.proxmox.com Git - mirror_edk2.git/blobdiff - FmpDevicePkg/Library/FmpDependencyLib/FmpDependencyLib.c
FmpDevicePkg: Apply uncrustify changes
[mirror_edk2.git] / FmpDevicePkg / Library / FmpDependencyLib / FmpDependencyLib.c
index ad0fa6532e8b9121d95029ea070e581510176ac2..76a1ee3f40db7d779435361345e7ae59797d7eca 100644 (file)
@@ -34,16 +34,16 @@ typedef enum {
 // Value of stack element\r
 //\r
 typedef union {\r
-  BOOLEAN   Boolean;\r
-  UINT32    Version;\r
+  BOOLEAN    Boolean;\r
+  UINT32     Version;\r
 } ELEMENT_VALUE;\r
 \r
 //\r
 // Stack element used to evaluate dependency expressions\r
 //\r
 typedef struct {\r
-  ELEMENT_VALUE Value;\r
-  ELEMENT_TYPE  Type;\r
+  ELEMENT_VALUE    Value;\r
+  ELEMENT_TYPE     Type;\r
 } DEPEX_ELEMENT;\r
 \r
 //\r
@@ -118,17 +118,17 @@ GrowDepexStack (
 **/\r
 EFI_STATUS\r
 Push (\r
-  IN UINT32   Value,\r
-  IN UINTN    Type\r
+  IN UINT32  Value,\r
+  IN UINTN   Type\r
   )\r
 {\r
-  EFI_STATUS      Status;\r
-  DEPEX_ELEMENT   Element;\r
+  EFI_STATUS     Status;\r
+  DEPEX_ELEMENT  Element;\r
 \r
   //\r
   // Check Type\r
   //\r
-  if (Type != BooleanType && Type != VersionType) {\r
+  if ((Type != BooleanType) && (Type != VersionType)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
@@ -146,7 +146,7 @@ Push (
   }\r
 \r
   Element.Value.Version = Value;\r
-  Element.Type = Type;\r
+  Element.Type          = Type;\r
 \r
   //\r
   // Push the item onto the stack\r
@@ -191,6 +191,7 @@ Pop (
     DEBUG ((DEBUG_ERROR, "EvaluateDependency: Popped element type is mismatched!\n"));\r
     return EFI_INVALID_PARAMETER;\r
   }\r
+\r
   return EFI_SUCCESS;\r
 }\r
 \r
@@ -225,25 +226,25 @@ EvaluateDependency (
   OUT UINT32                        *LastAttemptStatus OPTIONAL\r
   )\r
 {\r
-  EFI_STATUS                        Status;\r
-  UINT8                             *Iterator;\r
-  UINT8                             Index;\r
-  DEPEX_ELEMENT                     Element1;\r
-  DEPEX_ELEMENT                     Element2;\r
-  GUID                              ImageTypeId;\r
-  UINT32                            Version;\r
-  UINT32                            LocalLastAttemptStatus;\r
+  EFI_STATUS     Status;\r
+  UINT8          *Iterator;\r
+  UINT8          Index;\r
+  DEPEX_ELEMENT  Element1;\r
+  DEPEX_ELEMENT  Element2;\r
+  GUID           ImageTypeId;\r
+  UINT32         Version;\r
+  UINT32         LocalLastAttemptStatus;\r
 \r
   LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_SUCCESS;\r
 \r
   //\r
   // Check if parameter is valid.\r
   //\r
-  if (Dependencies == NULL || DependenciesSize == 0) {\r
+  if ((Dependencies == NULL) || (DependenciesSize == 0)) {\r
     return FALSE;\r
   }\r
 \r
-  if (FmpVersions == NULL && FmpVersionsCount > 0) {\r
+  if ((FmpVersions == NULL) && (FmpVersionsCount > 0)) {\r
     return FALSE;\r
   }\r
 \r
@@ -253,216 +254,247 @@ EvaluateDependency (
   //\r
   mDepexEvaluationStackPointer = mDepexEvaluationStack;\r
 \r
-  Iterator = (UINT8 *) Dependencies->Dependencies;\r
-  while (Iterator < (UINT8 *) Dependencies->Dependencies + DependenciesSize) {\r
-    switch (*Iterator)\r
-    {\r
-    case EFI_FMP_DEP_PUSH_GUID:\r
-      if (Iterator + sizeof (EFI_GUID) >= (UINT8 *) Dependencies->Dependencies + DependenciesSize) {\r
-        DEBUG ((DEBUG_ERROR, "EvaluateDependency: GUID extends beyond end of dependency expression!\n"));\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_GUID_BEYOND_DEPEX;\r
-        goto Error;\r
-      }\r
+  Iterator = (UINT8 *)Dependencies->Dependencies;\r
+  while (Iterator < (UINT8 *)Dependencies->Dependencies + DependenciesSize) {\r
+    switch (*Iterator) {\r
+      case EFI_FMP_DEP_PUSH_GUID:\r
+        if (Iterator + sizeof (EFI_GUID) >= (UINT8 *)Dependencies->Dependencies + DependenciesSize) {\r
+          DEBUG ((DEBUG_ERROR, "EvaluateDependency: GUID extends beyond end of dependency expression!\n"));\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_GUID_BEYOND_DEPEX;\r
+          goto Error;\r
+        }\r
+\r
+        CopyGuid (&ImageTypeId, (EFI_GUID *)(Iterator + 1));\r
+        Iterator = Iterator + sizeof (EFI_GUID);\r
 \r
-      CopyGuid (&ImageTypeId, (EFI_GUID *) (Iterator + 1));\r
-      Iterator = Iterator + sizeof (EFI_GUID);\r
+        for (Index = 0; Index < FmpVersionsCount; Index++) {\r
+          if (CompareGuid (&FmpVersions[Index].ImageTypeId, &ImageTypeId)) {\r
+            Status = Push (FmpVersions[Index].Version, VersionType);\r
+            if (EFI_ERROR (Status)) {\r
+              LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;\r
+              goto Error;\r
+            }\r
 \r
-      for (Index = 0; Index < FmpVersionsCount; Index ++) {\r
-        if(CompareGuid (&FmpVersions[Index].ImageTypeId, &ImageTypeId)){\r
-          Status = Push (FmpVersions[Index].Version, VersionType);\r
-          if (EFI_ERROR (Status)) {\r
-            LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;\r
-            goto Error;\r
+            break;\r
           }\r
-          break;\r
         }\r
-      }\r
-      if (Index == FmpVersionsCount) {\r
-        DEBUG ((DEBUG_ERROR, "EvaluateDependency: %g is not found!\n", &ImageTypeId));\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_FMP_NOT_FOUND;\r
-        goto Error;\r
-      }\r
-      break;\r
-    case EFI_FMP_DEP_PUSH_VERSION:\r
-      if (Iterator + sizeof (UINT32) >= (UINT8 *) Dependencies->Dependencies + DependenciesSize ) {\r
-        DEBUG ((DEBUG_ERROR, "EvaluateDependency: VERSION extends beyond end of dependency expression!\n"));\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_VERSION_BEYOND_DEPEX;\r
-        goto Error;\r
-      }\r
 \r
-      Version = *(UINT32 *) (Iterator + 1);\r
-      Status = Push (Version, VersionType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;\r
-        goto Error;\r
-      }\r
-      Iterator = Iterator + sizeof (UINT32);\r
-      break;\r
-    case EFI_FMP_DEP_VERSION_STR:\r
-      Iterator += AsciiStrnLenS ((CHAR8 *) Iterator, DependenciesSize - (Iterator - Dependencies->Dependencies));\r
-      if (Iterator == (UINT8 *) Dependencies->Dependencies + DependenciesSize) {\r
-        DEBUG ((DEBUG_ERROR, "EvaluateDependency: STRING extends beyond end of dependency expression!\n"));\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_VERSION_STR_BEYOND_DEPEX;\r
-        goto Error;\r
-      }\r
-      break;\r
-    case EFI_FMP_DEP_AND:\r
-      Status = Pop (&Element1, BooleanType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
-        goto Error;\r
-      }\r
-      Status = Pop (&Element2, BooleanType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
-        goto Error;\r
-      }\r
-      Status = Push (Element1.Value.Boolean & Element2.Value.Boolean, BooleanType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;\r
-        goto Error;\r
-      }\r
-      break;\r
-    case EFI_FMP_DEP_OR:\r
-      Status = Pop (&Element1, BooleanType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
-        goto Error;\r
-      }\r
-      Status = Pop(&Element2, BooleanType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
-        goto Error;\r
-      }\r
-      Status = Push (Element1.Value.Boolean | Element2.Value.Boolean, BooleanType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;\r
-        goto Error;\r
-      }\r
-      break;\r
-    case EFI_FMP_DEP_NOT:\r
-      Status = Pop (&Element1, BooleanType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
-        goto Error;\r
-      }\r
-      Status = Push (!(Element1.Value.Boolean), BooleanType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;\r
-        goto Error;\r
-      }\r
-      break;\r
-    case EFI_FMP_DEP_TRUE:\r
-      Status = Push (TRUE, BooleanType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;\r
-        goto Error;\r
-      }\r
-      break;\r
-    case EFI_FMP_DEP_FALSE:\r
-      Status = Push (FALSE, BooleanType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;\r
-        goto Error;\r
-      }\r
-      break;\r
-    case EFI_FMP_DEP_EQ:\r
-      Status = Pop (&Element1, VersionType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
-        goto Error;\r
-      }\r
-      Status = Pop (&Element2, VersionType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
-        goto Error;\r
-      }\r
-      Status = (Element1.Value.Version == Element2.Value.Version) ? Push (TRUE, BooleanType) : Push (FALSE, BooleanType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;\r
-        goto Error;\r
-      }\r
-      break;\r
-    case EFI_FMP_DEP_GT:\r
-      Status = Pop (&Element1, VersionType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
-        goto Error;\r
-      }\r
-      Status = Pop (&Element2, VersionType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
-        goto Error;\r
-      }\r
-      Status = (Element1.Value.Version >  Element2.Value.Version) ? Push (TRUE, BooleanType) : Push (FALSE, BooleanType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;\r
-        goto Error;\r
-      }\r
-      break;\r
-    case EFI_FMP_DEP_GTE:\r
-      Status = Pop (&Element1, VersionType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
-        goto Error;\r
-      }\r
-      Status = Pop (&Element2, VersionType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
-        goto Error;\r
-      }\r
-      Status = (Element1.Value.Version >= Element2.Value.Version) ? Push (TRUE, BooleanType) : Push (FALSE, BooleanType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;\r
-        goto Error;\r
-      }\r
-      break;\r
-    case EFI_FMP_DEP_LT:\r
-      Status = Pop (&Element1, VersionType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
-        goto Error;\r
-      }\r
-      Status = Pop (&Element2, VersionType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus= LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
-        goto Error;\r
-      }\r
-      Status = (Element1.Value.Version <  Element2.Value.Version) ? Push (TRUE, BooleanType) : Push (FALSE, BooleanType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;\r
-        goto Error;\r
-      }\r
-      break;\r
-    case EFI_FMP_DEP_LTE:\r
-      Status = Pop (&Element1, VersionType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
-        goto Error;\r
-      }\r
-      Status = Pop (&Element2, VersionType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
-        goto Error;\r
-      }\r
-      Status = (Element1.Value.Version <= Element2.Value.Version) ? Push (TRUE, BooleanType) : Push (FALSE, BooleanType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;\r
-        goto Error;\r
-      }\r
-      break;\r
-    case EFI_FMP_DEP_END:\r
-      Status = Pop (&Element1, BooleanType);\r
-      if (EFI_ERROR (Status)) {\r
-        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
+        if (Index == FmpVersionsCount) {\r
+          DEBUG ((DEBUG_ERROR, "EvaluateDependency: %g is not found!\n", &ImageTypeId));\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_FMP_NOT_FOUND;\r
+          goto Error;\r
+        }\r
+\r
+        break;\r
+      case EFI_FMP_DEP_PUSH_VERSION:\r
+        if (Iterator + sizeof (UINT32) >= (UINT8 *)Dependencies->Dependencies + DependenciesSize ) {\r
+          DEBUG ((DEBUG_ERROR, "EvaluateDependency: VERSION extends beyond end of dependency expression!\n"));\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_VERSION_BEYOND_DEPEX;\r
+          goto Error;\r
+        }\r
+\r
+        Version = *(UINT32 *)(Iterator + 1);\r
+        Status  = Push (Version, VersionType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        Iterator = Iterator + sizeof (UINT32);\r
+        break;\r
+      case EFI_FMP_DEP_VERSION_STR:\r
+        Iterator += AsciiStrnLenS ((CHAR8 *)Iterator, DependenciesSize - (Iterator - Dependencies->Dependencies));\r
+        if (Iterator == (UINT8 *)Dependencies->Dependencies + DependenciesSize) {\r
+          DEBUG ((DEBUG_ERROR, "EvaluateDependency: STRING extends beyond end of dependency expression!\n"));\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_VERSION_STR_BEYOND_DEPEX;\r
+          goto Error;\r
+        }\r
+\r
+        break;\r
+      case EFI_FMP_DEP_AND:\r
+        Status = Pop (&Element1, BooleanType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        Status = Pop (&Element2, BooleanType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        Status = Push (Element1.Value.Boolean & Element2.Value.Boolean, BooleanType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        break;\r
+      case EFI_FMP_DEP_OR:\r
+        Status = Pop (&Element1, BooleanType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        Status = Pop (&Element2, BooleanType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        Status = Push (Element1.Value.Boolean | Element2.Value.Boolean, BooleanType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        break;\r
+      case EFI_FMP_DEP_NOT:\r
+        Status = Pop (&Element1, BooleanType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        Status = Push (!(Element1.Value.Boolean), BooleanType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        break;\r
+      case EFI_FMP_DEP_TRUE:\r
+        Status = Push (TRUE, BooleanType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        break;\r
+      case EFI_FMP_DEP_FALSE:\r
+        Status = Push (FALSE, BooleanType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        break;\r
+      case EFI_FMP_DEP_EQ:\r
+        Status = Pop (&Element1, VersionType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        Status = Pop (&Element2, VersionType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        Status = (Element1.Value.Version == Element2.Value.Version) ? Push (TRUE, BooleanType) : Push (FALSE, BooleanType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        break;\r
+      case EFI_FMP_DEP_GT:\r
+        Status = Pop (&Element1, VersionType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        Status = Pop (&Element2, VersionType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        Status = (Element1.Value.Version >  Element2.Value.Version) ? Push (TRUE, BooleanType) : Push (FALSE, BooleanType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        break;\r
+      case EFI_FMP_DEP_GTE:\r
+        Status = Pop (&Element1, VersionType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        Status = Pop (&Element2, VersionType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        Status = (Element1.Value.Version >= Element2.Value.Version) ? Push (TRUE, BooleanType) : Push (FALSE, BooleanType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        break;\r
+      case EFI_FMP_DEP_LT:\r
+        Status = Pop (&Element1, VersionType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        Status = Pop (&Element2, VersionType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        Status = (Element1.Value.Version <  Element2.Value.Version) ? Push (TRUE, BooleanType) : Push (FALSE, BooleanType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        break;\r
+      case EFI_FMP_DEP_LTE:\r
+        Status = Pop (&Element1, VersionType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        Status = Pop (&Element2, VersionType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        Status = (Element1.Value.Version <= Element2.Value.Version) ? Push (TRUE, BooleanType) : Push (FALSE, BooleanType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_PUSH_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        break;\r
+      case EFI_FMP_DEP_END:\r
+        Status = Pop (&Element1, BooleanType);\r
+        if (EFI_ERROR (Status)) {\r
+          LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_POP_FAILURE;\r
+          goto Error;\r
+        }\r
+\r
+        return Element1.Value.Boolean;\r
+      default:\r
+        DEBUG ((DEBUG_ERROR, "EvaluateDependency: Unknown Opcode - %02x!\n", *Iterator));\r
+        LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_UNKNOWN_OPCODE;\r
         goto Error;\r
-      }\r
-      return Element1.Value.Boolean;\r
-    default:\r
-      DEBUG ((DEBUG_ERROR, "EvaluateDependency: Unknown Opcode - %02x!\n", *Iterator));\r
-      LocalLastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_UNKNOWN_OPCODE;\r
-      goto Error;\r
     }\r
+\r
     Iterator++;\r
   }\r
 \r
@@ -504,7 +536,7 @@ ValidateDependency (
   UINT8  *Depex;\r
 \r
   if (DepexSize != NULL) {\r
-      *DepexSize = 0;\r
+    *DepexSize = 0;\r
   }\r
 \r
   if (Dependencies == NULL) {\r
@@ -513,37 +545,37 @@ ValidateDependency (
 \r
   Depex = Dependencies->Dependencies;\r
   while (Depex < Dependencies->Dependencies + MaxDepexSize) {\r
-    switch (*Depex)\r
-    {\r
-    case EFI_FMP_DEP_PUSH_GUID:\r
-      Depex += sizeof (EFI_GUID) + 1;\r
-      break;\r
-    case EFI_FMP_DEP_PUSH_VERSION:\r
-      Depex += sizeof (UINT32) + 1;\r
-      break;\r
-    case EFI_FMP_DEP_VERSION_STR:\r
-      Depex += AsciiStrnLenS ((CHAR8 *) Depex, Dependencies->Dependencies + MaxDepexSize - Depex) + 1;\r
-      break;\r
-    case EFI_FMP_DEP_AND:\r
-    case EFI_FMP_DEP_OR:\r
-    case EFI_FMP_DEP_NOT:\r
-    case EFI_FMP_DEP_TRUE:\r
-    case EFI_FMP_DEP_FALSE:\r
-    case EFI_FMP_DEP_EQ:\r
-    case EFI_FMP_DEP_GT:\r
-    case EFI_FMP_DEP_GTE:\r
-    case EFI_FMP_DEP_LT:\r
-    case EFI_FMP_DEP_LTE:\r
-      Depex += 1;\r
-      break;\r
-    case EFI_FMP_DEP_END:\r
-      Depex += 1;\r
-      if (DepexSize != NULL) {\r
-        *DepexSize = (UINT32)(Depex - Dependencies->Dependencies);\r
-      }\r
-      return TRUE;\r
-    default:\r
-      return FALSE;\r
+    switch (*Depex) {\r
+      case EFI_FMP_DEP_PUSH_GUID:\r
+        Depex += sizeof (EFI_GUID) + 1;\r
+        break;\r
+      case EFI_FMP_DEP_PUSH_VERSION:\r
+        Depex += sizeof (UINT32) + 1;\r
+        break;\r
+      case EFI_FMP_DEP_VERSION_STR:\r
+        Depex += AsciiStrnLenS ((CHAR8 *)Depex, Dependencies->Dependencies + MaxDepexSize - Depex) + 1;\r
+        break;\r
+      case EFI_FMP_DEP_AND:\r
+      case EFI_FMP_DEP_OR:\r
+      case EFI_FMP_DEP_NOT:\r
+      case EFI_FMP_DEP_TRUE:\r
+      case EFI_FMP_DEP_FALSE:\r
+      case EFI_FMP_DEP_EQ:\r
+      case EFI_FMP_DEP_GT:\r
+      case EFI_FMP_DEP_GTE:\r
+      case EFI_FMP_DEP_LT:\r
+      case EFI_FMP_DEP_LTE:\r
+        Depex += 1;\r
+        break;\r
+      case EFI_FMP_DEP_END:\r
+        Depex += 1;\r
+        if (DepexSize != NULL) {\r
+          *DepexSize = (UINT32)(Depex - Dependencies->Dependencies);\r
+        }\r
+\r
+        return TRUE;\r
+      default:\r
+        return FALSE;\r
     }\r
   }\r
 \r
@@ -568,17 +600,17 @@ ValidateDependency (
   @retval  Null\r
 \r
 **/\r
-EFI_FIRMWARE_IMAGE_DEP*\r
+EFI_FIRMWARE_IMAGE_DEP *\r
 EFIAPI\r
 GetImageDependency (\r
-  IN  EFI_FIRMWARE_IMAGE_AUTHENTICATION *Image,\r
-  IN  UINTN                             ImageSize,\r
-  OUT UINT32                            *DepexSize,\r
-  OUT UINT32                            *LastAttemptStatus  OPTIONAL\r
+  IN  EFI_FIRMWARE_IMAGE_AUTHENTICATION  *Image,\r
+  IN  UINTN                              ImageSize,\r
+  OUT UINT32                             *DepexSize,\r
+  OUT UINT32                             *LastAttemptStatus  OPTIONAL\r
   )\r
 {\r
-  EFI_FIRMWARE_IMAGE_DEP *Depex;\r
-  UINTN                  MaxDepexSize;\r
+  EFI_FIRMWARE_IMAGE_DEP  *Depex;\r
+  UINTN                   MaxDepexSize;\r
 \r
   if (Image == NULL) {\r
     return NULL;\r
@@ -587,18 +619,20 @@ GetImageDependency (
   //\r
   // Check to make sure that operation can be safely performed.\r
   //\r
-  if (((UINTN)Image + sizeof (Image->MonotonicCount) + Image->AuthInfo.Hdr.dwLength) < (UINTN)Image || \\r
-      ((UINTN)Image + sizeof (Image->MonotonicCount) + Image->AuthInfo.Hdr.dwLength) >= (UINTN)Image + ImageSize) {\r
+  if ((((UINTN)Image + sizeof (Image->MonotonicCount) + Image->AuthInfo.Hdr.dwLength) < (UINTN)Image) || \\r
+      (((UINTN)Image + sizeof (Image->MonotonicCount) + Image->AuthInfo.Hdr.dwLength) >= (UINTN)Image + ImageSize))\r
+  {\r
     //\r
     // Pointer overflow. Invalid image.\r
     //\r
     if (LastAttemptStatus != NULL) {\r
       *LastAttemptStatus = LAST_ATTEMPT_STATUS_DEPENDENCY_LIB_ERROR_GET_DEPEX_FAILURE;\r
     }\r
+\r
     return NULL;\r
   }\r
 \r
-  Depex = (EFI_FIRMWARE_IMAGE_DEP*)((UINT8 *)Image + sizeof (Image->MonotonicCount) + Image->AuthInfo.Hdr.dwLength);\r
+  Depex        = (EFI_FIRMWARE_IMAGE_DEP *)((UINT8 *)Image + sizeof (Image->MonotonicCount) + Image->AuthInfo.Hdr.dwLength);\r
   MaxDepexSize = ImageSize - (sizeof (Image->MonotonicCount) + Image->AuthInfo.Hdr.dwLength);\r
 \r
   //\r