TianoCore EDK2 master
|
#include "Defer3rdPartyImageLoad.h"
Go to the source code of this file.
Data Structures | |
struct | DEFERRED_3RD_PARTY_IMAGE_INFO |
struct | DEFERRED_3RD_PARTY_IMAGE_TABLE |
Functions | |
BOOLEAN | FileFromFv (IN CONST EFI_DEVICE_PATH_PROTOCOL *File) |
DEFERRED_3RD_PARTY_IMAGE_INFO * | LookupImage (IN CONST EFI_DEVICE_PATH_PROTOCOL *ImageDevicePath, IN BOOLEAN BootOption) |
VOID | QueueImage (IN CONST EFI_DEVICE_PATH_PROTOCOL *ImageDevicePath, IN BOOLEAN BootOption) |
EFI_STATUS EFIAPI | GetDefferedImageInfo (IN EFI_DEFERRED_IMAGE_LOAD_PROTOCOL *This, IN UINTN ImageIndex, OUT EFI_DEVICE_PATH_PROTOCOL **ImageDevicePath, OUT VOID **Image, OUT UINTN *ImageSize, OUT BOOLEAN *BootOption) |
VOID EFIAPI | EndOfDxe (IN EFI_EVENT Event, IN VOID *Context) |
VOID EFIAPI | DxeSmmReadyToLock (IN EFI_EVENT Event, IN VOID *Context) |
EFI_STATUS | Defer3rdPartyImageLoad (IN CONST EFI_DEVICE_PATH_PROTOCOL *File, IN BOOLEAN BootPolicy) |
VOID | Defer3rdPartyImageLoadInitialize (VOID) |
Variables | |
BOOLEAN | mImageLoadedAfterEndOfDxe = FALSE |
BOOLEAN | mEndOfDxe = FALSE |
DEFERRED_3RD_PARTY_IMAGE_TABLE | mDeferred3rdPartyImage |
EFI_DEFERRED_IMAGE_LOAD_PROTOCOL | mDeferredImageLoad |
Implement defer image load services for user identification in UEFI2.2.
Copyright (c) 2016, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file Defer3rdPartyImageLoad.c.
EFI_STATUS Defer3rdPartyImageLoad | ( | IN CONST EFI_DEVICE_PATH_PROTOCOL * | File, |
IN BOOLEAN | BootPolicy | ||
) |
Defer the 3rd party image load and installs Deferred Image Load Protocol.
[in] | File | This is a pointer to the device path of the file that is being dispatched. This will optionally be used for logging. |
[in] | BootPolicy | A boot policy that was used to call LoadImage() UEFI service. |
EFI_SUCCESS | The file is not 3rd party image and can be loaded immediately. |
EFI_ACCESS_DENIED | The file is 3rd party image and needs deferred. |
Definition at line 314 of file Defer3rdPartyImageLoad.c.
VOID Defer3rdPartyImageLoadInitialize | ( | VOID | ) |
Installs DeferredImageLoad Protocol and listens EndOfDxe event.
Definition at line 379 of file Defer3rdPartyImageLoad.c.
Event notification for gEfiDxeSmmReadyToLockProtocolGuid event.
This function reports failure if any deferred image is loaded before this callback. Platform should publish ReadyToLock protocol immediately after signaling of the End of DXE Event.
Event | The Event that is being processed, not used. |
Context | Event Context, not used. |
Definition at line 269 of file Defer3rdPartyImageLoad.c.
Callback function executed when the EndOfDxe event group is signaled.
[in] | Event | Event whose notification function is being invoked. |
[in] | Context | The pointer to the notification function's context, which is implementation-dependent. |
Definition at line 247 of file Defer3rdPartyImageLoad.c.
BOOLEAN FileFromFv | ( | IN CONST EFI_DEVICE_PATH_PROTOCOL * | File | ) |
Return whether the file comes from FV.
[in] | File | This is a pointer to the device path of the file that is being dispatched. |
TRUE | File comes from FV. |
FALSE | File doesn't come from FV. |
Definition at line 48 of file Defer3rdPartyImageLoad.c.
EFI_STATUS EFIAPI GetDefferedImageInfo | ( | IN EFI_DEFERRED_IMAGE_LOAD_PROTOCOL * | This, |
IN UINTN | ImageIndex, | ||
OUT EFI_DEVICE_PATH_PROTOCOL ** | ImageDevicePath, | ||
OUT VOID ** | Image, | ||
OUT UINTN * | ImageSize, | ||
OUT BOOLEAN * | BootOption | ||
) |
Returns information about a deferred image.
This function returns information about a single deferred image. The deferred images are numbered consecutively, starting with 0. If there is no image which corresponds to ImageIndex, then EFI_NOT_FOUND is returned. All deferred images may be returned by iteratively calling this function until EFI_NOT_FOUND is returned. Image may be NULL and ImageSize set to 0 if the decision to defer execution was made because of the location of the executable image, rather than its actual contents.
[in] | This | Points to this instance of the EFI_DEFERRED_IMAGE_LOAD_PROTOCOL. |
[in] | ImageIndex | Zero-based index of the deferred index. |
[out] | ImageDevicePath | On return, points to a pointer to the device path of the image. The device path should not be freed by the caller. |
[out] | Image | On return, points to the first byte of the image or NULL if the image is not available. The image should not be freed by the caller unless LoadImage() has been successfully called. |
[out] | ImageSize | On return, the size of the image, or 0 if the image is not available. |
[out] | BootOption | On return, points to TRUE if the image was intended as a boot option or FALSE if it was not intended as a boot option. |
EFI_SUCCESS | Image information returned successfully. |
EFI_NOT_FOUND | ImageIndex does not refer to a valid image. |
EFI_INVALID_PARAMETER | ImageDevicePath is NULL or Image is NULL or ImageSize is NULL or BootOption is NULL. |
Definition at line 184 of file Defer3rdPartyImageLoad.c.
DEFERRED_3RD_PARTY_IMAGE_INFO * LookupImage | ( | IN CONST EFI_DEVICE_PATH_PROTOCOL * | ImageDevicePath, |
IN BOOLEAN | BootOption | ||
) |
Find the deferred image which matches the device path.
[in] | ImageDevicePath | A pointer to the device path of a image. |
[in] | BootOption | Whether the image is a boot option. |
Definition at line 92 of file Defer3rdPartyImageLoad.c.
VOID QueueImage | ( | IN CONST EFI_DEVICE_PATH_PROTOCOL * | ImageDevicePath, |
IN BOOLEAN | BootOption | ||
) |
Add the image info to a deferred image list.
[in] | ImageDevicePath | A pointer to the device path of a image. |
[in] | BootOption | Whether the image is a boot option. |
Definition at line 120 of file Defer3rdPartyImageLoad.c.
DEFERRED_3RD_PARTY_IMAGE_TABLE mDeferred3rdPartyImage |
Definition at line 29 of file Defer3rdPartyImageLoad.c.
EFI_DEFERRED_IMAGE_LOAD_PROTOCOL mDeferredImageLoad |
Definition at line 34 of file Defer3rdPartyImageLoad.c.
BOOLEAN mEndOfDxe = FALSE |
The flag to indicate whether the platform has left the DXE phase of execution.
Definition at line 28 of file Defer3rdPartyImageLoad.c.
BOOLEAN mImageLoadedAfterEndOfDxe = FALSE |
Definition at line 27 of file Defer3rdPartyImageLoad.c.