/** @file\r
+ PEI Dispatcher Dependency Evaluator\r
+\r
+ This routine evaluates a dependency expression (DEPENDENCY_EXPRESSION) to determine\r
+ if a driver can be scheduled for execution. The criteria for\r
+ schedulability is that the dependency expression is satisfied.\r
\r
Copyright (c) 2006, Intel Corporation \r
All rights reserved. This program and the accompanying materials \r
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
\r
-Module Name:\r
-\r
- dependency.c\r
-\r
-Abstract:\r
-\r
- PEI Dispatcher Dependency Evaluator\r
-\r
- This routine evaluates a dependency expression (DEPENDENCY_EXPRESSION) to determine\r
- if a driver can be scheduled for execution. The criteria for\r
- schedulability is that the dependency expression is satisfied.\r
- \r
**/\r
\r
#include <PeiMain.h>\r
#include "dependency.h"\r
\r
-STATIC\r
-BOOLEAN\r
-IsPpiInstalled (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EVAL_STACK_ENTRY *Stack\r
- )\r
-/*++\r
-\r
-Routine Description:\r
+/**\r
\r
This routine determines if a PPI has been installed.\r
The truth value of a GUID is determined by if the PPI has\r
been published and can be queried from the PPI database.\r
\r
-Arguments:\r
- PeiServices - The PEI core services table.\r
- Stack - Reference to EVAL_STACK_ENTRY that contains PPI GUID to check\r
\r
-Returns:\r
+ @param PeiServices The PEI core services table.\r
+ @param Stack Reference to EVAL_STACK_ENTRY that contains PPI GUID to check\r
\r
- True if the PPI is already installed.\r
- False if the PPI has yet to be installed.\r
+ @retval TRUE if the PPI is already installed.\r
+ @retval FALSE if the PPI has yet to be installed.\r
\r
---*/\r
+**/\r
+BOOLEAN\r
+IsPpiInstalled (\r
+ IN EFI_PEI_SERVICES **PeiServices,\r
+ IN EVAL_STACK_ENTRY *Stack\r
+ )\r
{\r
VOID *PeiInstance;\r
EFI_STATUS Status;\r
return TRUE;\r
}\r
\r
-\r
-BOOLEAN\r
-PeimDispatchReadiness (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN VOID *DependencyExpression\r
- )\r
-/*++\r
-\r
-Routine Description:\r
+/**\r
\r
This is the POSTFIX version of the dependency evaluator. When a\r
PUSH [PPI GUID] is encountered, a pointer to the GUID is stored on\r
some time savings as not all PPIs must be checked for certain\r
operation types (AND, OR).\r
\r
-Arguments:\r
\r
- PeiServices - Calling context.\r
+ @param PeiServices Calling context.\r
+ @param DependencyExpression Pointer to a dependency expression. The Grammar adheres to\r
+ the BNF described above and is stored in postfix notation.\r
\r
- DependencyExpression - Pointer to a dependency expression. The Grammar adheres to \r
- the BNF described above and is stored in postfix notation.\r
-Returns:\r
+ @retval TRUE if it is a well-formed Grammar\r
+ @retval FALSE if the dependency expression overflows the evaluation stack\r
+ if the dependency expression underflows the evaluation stack\r
+ if the dependency expression is not a well-formed Grammar.\r
\r
- Status = EFI_SUCCESS if it is a well-formed Grammar\r
- EFI_INVALID_PARAMETER if the dependency expression overflows\r
- the evaluation stack\r
- EFI_INVALID_PARAMETER if the dependency expression underflows\r
- the evaluation stack\r
- EFI_INVALID_PARAMETER if the dependency expression is not a\r
- well-formed Grammar.\r
---*/\r
+**/\r
+BOOLEAN\r
+PeimDispatchReadiness (\r
+ IN EFI_PEI_SERVICES **PeiServices,\r
+ IN VOID *DependencyExpression\r
+ )\r
{\r
DEPENDENCY_EXPRESSION_OPERAND *Iterator;\r
EVAL_STACK_ENTRY *StackPtr;\r