TianoCore EDK2 master
|
#include "PeiMain.h"
Go to the source code of this file.
EFI PEI Core PPI services
Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file Ppi.c.
VOID ConvertPeiCorePpiPointers | ( | IN PEI_CORE_INSTANCE * | PrivateData, |
IN PEI_CORE_FV_HANDLE * | CoreFvHandle | ||
) |
VOID ConvertPointer | ( | IN OUT VOID ** | Pointer, |
IN UINTN | TempBottom, | ||
IN UINTN | TempTop, | ||
IN UINTN | Offset, | ||
IN BOOLEAN | OffsetPositive | ||
) |
Migrate Pointer from the temporary memory to PEI installed memory.
Pointer | Pointer to the Pointer needs to be converted. |
TempBottom | Base of old temporary memory |
TempTop | Top of old temporary memory |
Offset | Offset of new memory to old temporary memory. |
OffsetPositive | Positive flag of Offset value. |
VOID ConvertPointerInRanges | ( | IN CONST EFI_SEC_PEI_HAND_OFF * | SecCoreData, |
IN PEI_CORE_INSTANCE * | PrivateData, | ||
IN OUT VOID ** | Pointer | ||
) |
Migrate Pointer in ranges of the temporary memory to PEI installed memory.
SecCoreData | Points to a data structure containing SEC to PEI handoff data, such as the size and location of temporary RAM, the stack location and the BFV location. |
PrivateData | Pointer to PeiCore's private data structure. |
Pointer | Pointer to the Pointer needs to be converted. |
VOID ConvertPpiPointers | ( | IN CONST EFI_SEC_PEI_HAND_OFF * | SecCoreData, |
IN PEI_CORE_INSTANCE * | PrivateData | ||
) |
Migrate PPI Pointers from the temporary memory to PEI installed memory.
SecCoreData | Points to a data structure containing SEC to PEI handoff data, such as the size and location of temporary RAM, the stack location and the BFV location. |
PrivateData | Pointer to PeiCore's private data structure. |
VOID ConvertPpiPointersFv | ( | IN PEI_CORE_INSTANCE * | PrivateData, |
IN UINTN | OrgFvHandle, | ||
IN UINTN | FvHandle, | ||
IN UINTN | FvSize | ||
) |
Migrate Notify Pointers inside an FV from temporary memory to permanent memory.
PrivateData | Pointer to PeiCore's private data structure. |
OrgFvHandle | Address of FV Handle in temporary memory. |
FvHandle | Address of FV Handle in permanent memory. |
FvSize | Size of the FV. |
VOID ConvertSinglePpiPointer | ( | IN CONST EFI_SEC_PEI_HAND_OFF * | SecCoreData, |
IN PEI_CORE_INSTANCE * | PrivateData, | ||
IN PEI_PPI_LIST_POINTERS * | PpiPointer | ||
) |
Migrate Single PPI Pointer from the temporary memory to PEI installed memory.
SecCoreData | Points to a data structure containing SEC to PEI handoff data, such as the size and location of temporary RAM, the stack location and the BFV location. |
PrivateData | Pointer to PeiCore's private data structure. |
PpiPointer | Pointer to Ppi |
VOID DumpPpiList | ( | IN PEI_CORE_INSTANCE * | PrivateData | ) |
EFI_STATUS InternalPeiInstallPpi | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_PPI_DESCRIPTOR * | PpiList, | ||
IN BOOLEAN | Single | ||
) |
This function installs an interface in the PEI PPI database by GUID. The purpose of the service is to publish an interface that other parties can use to call additional PEIMs.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
PpiList | Pointer to a list of PEI PPI Descriptors. |
Single | TRUE if only single entry in the PpiList. FALSE if the PpiList is ended with an entry which has the EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST flag set in its Flags field. |
EFI_SUCCESS | if all PPIs in PpiList are successfully installed. |
EFI_INVALID_PARAMETER | if PpiList is NULL pointer if any PPI in PpiList is not valid |
EFI_OUT_OF_RESOURCES | if there is no more memory resource to install PPI |
EFI_STATUS InternalPeiNotifyPpi | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_NOTIFY_DESCRIPTOR * | NotifyList, | ||
IN BOOLEAN | Single | ||
) |
This function installs a notification service to be called back when a given interface is installed or reinstalled. The purpose of the service is to publish an interface that other parties can use to call additional PPIs that may materialize later.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
NotifyList | Pointer to list of Descriptors to notify upon. |
Single | TRUE if only single entry in the NotifyList. FALSE if the NotifyList is ended with an entry which has the EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST flag set in its Flags field. |
EFI_SUCCESS | if successful |
EFI_OUT_OF_RESOURCES | if no space in the database |
EFI_INVALID_PARAMETER | if not a good descriptor |
EFI_STATUS EFIAPI PeiInstallPpi | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_PPI_DESCRIPTOR * | PpiList | ||
) |
This function installs an interface in the PEI PPI database by GUID. The purpose of the service is to publish an interface that other parties can use to call additional PEIMs.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
PpiList | Pointer to a list of PEI PPI Descriptors. |
EFI_SUCCESS | if all PPIs in PpiList are successfully installed. |
EFI_INVALID_PARAMETER | if PpiList is NULL pointer if any PPI in PpiList is not valid |
EFI_OUT_OF_RESOURCES | if there is no more memory resource to install PPI |
EFI_STATUS EFIAPI PeiLocatePpi | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_GUID * | Guid, | ||
IN UINTN | Instance, | ||
IN OUT EFI_PEI_PPI_DESCRIPTOR ** | PpiDescriptor, | ||
IN OUT VOID ** | Ppi | ||
) |
Locate a given named PPI.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
Guid | Pointer to GUID of the PPI. |
Instance | Instance Number to discover. |
PpiDescriptor | Pointer to reference the found descriptor. If not NULL, returns a pointer to the descriptor (includes flags, etc) |
Ppi | Pointer to reference the found PPI |
EFI_SUCCESS | if the PPI is in the database |
EFI_NOT_FOUND | if the PPI is not in the database |
EFI_STATUS EFIAPI PeiNotifyPpi | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_NOTIFY_DESCRIPTOR * | NotifyList | ||
) |
This function installs a notification service to be called back when a given interface is installed or reinstalled. The purpose of the service is to publish an interface that other parties can use to call additional PPIs that may materialize later.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
NotifyList | Pointer to list of Descriptors to notify upon. |
EFI_SUCCESS | if successful |
EFI_OUT_OF_RESOURCES | if no space in the database |
EFI_INVALID_PARAMETER | if not a good descriptor |
EFI_STATUS EFIAPI PeiReInstallPpi | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_PPI_DESCRIPTOR * | OldPpi, | ||
IN CONST EFI_PEI_PPI_DESCRIPTOR * | NewPpi | ||
) |
This function reinstalls an interface in the PEI PPI database by GUID. The purpose of the service is to publish an interface that other parties can use to replace an interface of the same name in the protocol database with a different interface.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
OldPpi | Pointer to the old PEI PPI Descriptors. |
NewPpi | Pointer to the new PEI PPI Descriptors. |
EFI_SUCCESS | if the operation was successful |
EFI_INVALID_PARAMETER | if OldPpi or NewPpi is NULL |
EFI_INVALID_PARAMETER | if NewPpi is not valid |
EFI_NOT_FOUND | if the PPI was not in the database |
VOID ProcessDispatchNotifyList | ( | IN PEI_CORE_INSTANCE * | PrivateData | ) |
VOID ProcessNotify | ( | IN PEI_CORE_INSTANCE * | PrivateData, |
IN UINTN | NotifyType, | ||
IN INTN | InstallStartIndex, | ||
IN INTN | InstallStopIndex, | ||
IN INTN | NotifyStartIndex, | ||
IN INTN | NotifyStopIndex | ||
) |
Process notifications.
PrivateData | PeiCore's private data structure |
NotifyType | Type of notify to fire. |
InstallStartIndex | Install Beginning index. |
InstallStopIndex | Install Ending index. |
NotifyStartIndex | Notify Beginning index. |
NotifyStopIndex | Notify Ending index. |
VOID ProcessPpiListFromSec | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_PPI_DESCRIPTOR * | PpiList | ||
) |
Process PpiList from SEC phase.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
PpiList | Points to a list of one or more PPI descriptors to be installed initially by the PEI core. These PPI's will be installed and/or immediately signaled if they are notification type. |