From af1a266670d040d2f4083ff309d732d648afba2a Mon Sep 17 00:00:00 2001 From: Angelos Mouzakitis Date: Tue, 10 Oct 2023 14:33:42 +0000 Subject: Add submodule dependency files Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec --- .../SecurityStubDxe/Defer3rdPartyImageLoad.h | 89 ++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 roms/edk2/MdeModulePkg/Universal/SecurityStubDxe/Defer3rdPartyImageLoad.h (limited to 'roms/edk2/MdeModulePkg/Universal/SecurityStubDxe/Defer3rdPartyImageLoad.h') diff --git a/roms/edk2/MdeModulePkg/Universal/SecurityStubDxe/Defer3rdPartyImageLoad.h b/roms/edk2/MdeModulePkg/Universal/SecurityStubDxe/Defer3rdPartyImageLoad.h new file mode 100644 index 000000000..8986b3d8d --- /dev/null +++ b/roms/edk2/MdeModulePkg/Universal/SecurityStubDxe/Defer3rdPartyImageLoad.h @@ -0,0 +1,89 @@ +/** @file + 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 + +**/ + +#ifndef _DEFER_3RD_PARTY_IMAGE_LOAD_H_ +#define _DEFER_3RD_PARTY_IMAGE_LOAD_H_ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +/** + 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. + + @param[in] This Points to this instance of the EFI_DEFERRED_IMAGE_LOAD_PROTOCOL. + @param[in] ImageIndex Zero-based index of the deferred index. + @param[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. + @param[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. + @param[out] ImageSize On return, the size of the image, or 0 if the image is not available. + @param[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. + + @retval EFI_SUCCESS Image information returned successfully. + @retval EFI_NOT_FOUND ImageIndex does not refer to a valid image. + @retval EFI_INVALID_PARAMETER ImageDevicePath is NULL or Image is NULL or ImageSize is NULL or + BootOption is NULL. + +**/ +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 + ); + +/** + Defer the 3rd party image load and installs Deferred Image Load Protocol. + + @param[in] File This is a pointer to the device path of the file that + is being dispatched. This will optionally be used for + logging. + @param[in] BootPolicy A boot policy that was used to call LoadImage() UEFI service. + + @retval EFI_SUCCESS The file is not 3rd party image and can be loaded immediately. + @retval EFI_ACCESS_DENIED The file is 3rd party image and needs deferred. +**/ +EFI_STATUS +Defer3rdPartyImageLoad ( + IN CONST EFI_DEVICE_PATH_PROTOCOL *File, + IN BOOLEAN BootPolicy + ); + +/** + Installs DeferredImageLoad Protocol and listens EndOfDxe event. +**/ +VOID +Defer3rdPartyImageLoadInitialize ( + VOID + ); + +#endif -- cgit