EDK2 doxygen online documents - Firmware Encoding Index 1
EDK2 doxygen online documents - Firmware Encoding Index

MdeModulePkg/Universal/CapsulePei/X64/X64Entry.c

Go to the documentation of this file.
00001 
00015 #include <Library/DebugLib.h>
00016 #include "CommonHeader.h"
00017 
00028 EFI_STATUS
00029 EFIAPI
00030 _ModuleEntryPoint (
00031   SWITCH_32_TO_64_CONTEXT       *EntrypointContext,
00032   SWITCH_64_TO_32_CONTEXT       *ReturnContext
00033 )
00034 {
00035   EFI_STATUS    Status;
00036 
00037   //
00038   // Call CapsuleDataCoalesce to process capsule.
00039   //
00040   Status = CapsuleDataCoalesce (
00041              NULL,
00042              (EFI_PHYSICAL_ADDRESS *) (UINTN) EntrypointContext->BlockListAddr,
00043              (VOID **) (UINTN) EntrypointContext->MemoryBase64Ptr,
00044              (UINTN *) (UINTN) EntrypointContext->MemorySize64Ptr
00045              );
00046   
00047   ReturnContext->ReturnStatus = Status;
00048 
00049   //
00050   // Finish to coalesce capsule, and return to 32-bit mode.
00051   //
00052   AsmDisablePaging64 (
00053     ReturnContext->ReturnCs,
00054     (UINT32) ReturnContext->ReturnEntryPoint,
00055     (UINT32) (UINTN) EntrypointContext,
00056     (UINT32) (UINTN) ReturnContext,
00057     (UINT32) (EntrypointContext->StackBufferBase + EntrypointContext->StackBufferLength)
00058     );  
00059   
00060   //
00061   // Should never be here.
00062   //
00063   ASSERT (FALSE);
00064   return EFI_SUCCESS;
00065 }
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Defines