|
TianoCore EDK2 master
|
Go to the source code of this file.
Functions | |
| BOOLEAN | IsPpiInstalled (IN EFI_PEI_SERVICES **PeiServices, IN EVAL_STACK_ENTRY *Stack) |
| BOOLEAN | PeimDispatchReadiness (IN EFI_PEI_SERVICES **PeiServices, IN VOID *DependencyExpression) |
PEI Dispatcher Dependency Evaluator
This routine evaluates a dependency expression (DEPENDENCY_EXPRESSION) to determine if a driver can be scheduled for execution. The criteria to be scheduled is that the dependency expression is satisfied.
Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file Dependency.c.
| BOOLEAN IsPpiInstalled | ( | IN EFI_PEI_SERVICES ** | PeiServices, |
| IN EVAL_STACK_ENTRY * | Stack | ||
| ) |
This routine determines if a PPI has been installed. The truth value of a GUID is determined by if the PPI has been published and can be queried from the PPI database.
| PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation |
| Stack | Reference to EVAL_STACK_ENTRY that contains PPI GUID to check |
| TRUE | if the PPI is already installed. |
| FALSE | if the PPI has yet to be installed. |
Definition at line 31 of file Dependency.c.
| BOOLEAN PeimDispatchReadiness | ( | IN EFI_PEI_SERVICES ** | PeiServices, |
| IN VOID * | DependencyExpression | ||
| ) |
This is the POSTFIX version of the dependency evaluator. When a PUSH [PPI GUID] is encountered, a pointer to the GUID is stored on the evaluation stack. When that entry is popped from the evaluation stack, the PPI is checked if it is installed. This method allows some time savings as not all PPIs must be checked for certain operation types (AND, OR).
| PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation |
| DependencyExpression | Pointer to a dependency expression. The Grammar adheres to the BNF described above and is stored in postfix notation. |
| TRUE | if it is a well-formed Grammar |
| FALSE | if the dependency expression overflows the evaluation stack if the dependency expression underflows the evaluation stack if the dependency expression is not a well-formed Grammar. |
Definition at line 92 of file Dependency.c.