The internal header file includes the common header files, defines\r
internal structure and functions used by DxeCore module.\r
\r
-Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
which accompanies this distribution. The full text of the license may be found at\r
#include <Protocol/Decompress.h>\r
#include <Protocol/LoadPe32Image.h>\r
#include <Protocol/Security.h>\r
+#include <Protocol/Security2.h>\r
#include <Protocol/Ebc.h>\r
#include <Protocol/Reset.h>\r
#include <Protocol/Cpu.h>\r
#include <Guid/MemoryAllocationHob.h>\r
#include <Guid/EventLegacyBios.h>\r
#include <Guid/EventGroup.h>\r
+#include <Guid/EventExitBootServiceFailed.h>\r
#include <Guid/LoadModuleAtFixedAddress.h>\r
#include <Guid/IdleLoopEvent.h>\r
+#include <Guid/VectorHandoffTable.h>\r
+#include <Ppi/VectorHandoffInfo.h>\r
\r
#include <Library/DxeCoreEntryPoint.h>\r
#include <Library/DebugLib.h>\r
extern EFI_METRONOME_ARCH_PROTOCOL *gMetronome;\r
extern EFI_TIMER_ARCH_PROTOCOL *gTimer;\r
extern EFI_SECURITY_ARCH_PROTOCOL *gSecurity;\r
+extern EFI_SECURITY2_ARCH_PROTOCOL *gSecurity2;\r
extern EFI_BDS_ARCH_PROTOCOL *gBds;\r
extern EFI_SMM_BASE2_PROTOCOL *gSmmBase2;\r
\r
arguments to InstallProtocolInterface(). All the\r
protocols are added to Handle.\r
\r
+ @retval EFI_SUCCESS All the protocol interface was installed.\r
+ @retval EFI_OUT_OF_RESOURCES There was not enough memory in pool to install all the protocols.\r
+ @retval EFI_ALREADY_STARTED A Device Path Protocol instance was passed in that is already present in\r
+ the handle database.\r
@retval EFI_INVALID_PARAMETER Handle is NULL.\r
- @retval EFI_SUCCESS Protocol interfaces successfully installed.\r
+ @retval EFI_INVALID_PARAMETER Protocol is already installed on the handle specified by Handle.\r
\r
**/\r
EFI_STATUS\r
/**\r
Connects one or more drivers to a controller.\r
\r
- @param ControllerHandle Handle of the controller to be\r
- connected.\r
- @param DriverImageHandle DriverImageHandle A pointer to an\r
- ordered list of driver image\r
- handles.\r
- @param RemainingDevicePath RemainingDevicePath A pointer to\r
- the device path that specifies a\r
- child of the controller specified\r
- by ControllerHandle.\r
- @param Recursive Whether the function would be\r
- called recursively or not.\r
+ @param ControllerHandle The handle of the controller to which driver(s) are to be connected.\r
+ @param DriverImageHandle A pointer to an ordered list handles that support the\r
+ EFI_DRIVER_BINDING_PROTOCOL.\r
+ @param RemainingDevicePath A pointer to the device path that specifies a child of the\r
+ controller specified by ControllerHandle.\r
+ @param Recursive If TRUE, then ConnectController() is called recursively\r
+ until the entire tree of controllers below the controller specified\r
+ by ControllerHandle have been created. If FALSE, then\r
+ the tree of controllers is only expanded one level.\r
\r
- @return Status code.\r
+ @retval EFI_SUCCESS 1) One or more drivers were connected to ControllerHandle.\r
+ 2) No drivers were connected to ControllerHandle, but\r
+ RemainingDevicePath is not NULL, and it is an End Device\r
+ Path Node.\r
+ @retval EFI_INVALID_PARAMETER ControllerHandle is NULL.\r
+ @retval EFI_NOT_FOUND 1) There are no EFI_DRIVER_BINDING_PROTOCOL instances\r
+ present in the system.\r
+ 2) No drivers were connected to ControllerHandle.\r
+ @retval EFI_SECURITY_VIOLATION \r
+ The user has no permission to start UEFI device drivers on the device path \r
+ associated with the ControllerHandle or specified by the RemainingDevicePath.\r
\r
**/\r
EFI_STATUS\r
\r
@retval EFI_INVALID_PARAMETER Invalid parameter\r
@retval EFI_OUT_OF_RESOURCES No enough buffer to allocate\r
+ @retval EFI_SECURITY_VIOLATION The current platform policy specifies that the image should not be started.\r
@retval EFI_SUCCESS Successfully transfer control to the image's\r
entry point.\r
\r
SEP member function. Deletes an existing section stream\r
\r
@param StreamHandleToClose Indicates the stream to close\r
+ @param FreeStreamBuffer TRUE - Need to free stream buffer;\r
+ FALSE - No need to free stream buffer.\r
\r
@retval EFI_SUCCESS The section stream is closed sucessfully.\r
@retval EFI_OUT_OF_RESOURCES Memory allocation failed.\r
EFI_STATUS\r
EFIAPI\r
CloseSectionStream (\r
- IN UINTN StreamHandleToClose\r
+ IN UINTN StreamHandleToClose,\r
+ IN BOOLEAN FreeStreamBuffer\r
);\r
\r
/**\r
IN EFI_SYSTEM_TABLE *SystemTable\r
);\r
\r
+/**\r
+\r
+ Get FVB authentication status\r
+\r
+ @param FvbProtocol FVB protocol.\r
+\r
+ @return Authentication status.\r
+\r
+**/\r
+UINT32\r
+GetFvbAuthenticationStatus (\r
+ IN EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *FvbProtocol\r
+ );\r
\r
/**\r
This routine produces a firmware volume block protocol on a given\r
@param BaseAddress base address of the firmware volume image\r
@param Length length of the firmware volume image\r
@param ParentHandle handle of parent firmware volume, if this image\r
- came from an FV image file in another firmware\r
+ came from an FV image file and section in another firmware\r
volume (ala capsules)\r
+ @param AuthenticationStatus Authentication status inherited, if this image\r
+ came from an FV image file and section in another firmware volume.\r
@param FvProtocol Firmware volume block protocol produced.\r
\r
@retval EFI_VOLUME_CORRUPTED Volume corrupted.\r
IN EFI_PHYSICAL_ADDRESS BaseAddress,\r
IN UINT64 Length,\r
IN EFI_HANDLE ParentHandle,\r
+ IN UINT32 AuthenticationStatus,\r
OUT EFI_HANDLE *FvProtocol OPTIONAL\r
);\r
\r
@retval EFI_OUT_OF_RESOURCES No enough buffer could be allocated.\r
@retval EFI_SUCCESS Successfully read volume header to the allocated\r
buffer.\r
+ @retval EFI_INVALID_PARAMETER The FV Header signature is not as expected or\r
+ the file system could not be understood.\r
\r
**/\r
EFI_STATUS\r