]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Core/Dxe/DxeMain.h
1) Initialize gBS, gST, gImageHandle in UefiBootServicesTableLib.c to NULL
[mirror_edk2.git] / EdkModulePkg / Core / Dxe / DxeMain.h
index 9a9ba683e7931cf6d4aaf19d2f610903090068b0..b4cd76a2a1b25805b407148bfb5c415c605c76c4 100644 (file)
@@ -1,6 +1,6 @@
 /*++\r
 \r
-Copyright (c) 2006, Intel Corporation                                                         \r
+Copyright (c) 2006 - 2007, Intel Corporation                                                         \r
 All rights reserved. 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
@@ -33,6 +33,18 @@ Revision History
 #include "Exec.h"\r
 #include "hand.h"\r
 \r
+///\r
+/// EFI_DEP_REPLACE_TRUE - Used to dynamically patch the dependecy expression\r
+///                        to save time.  A EFI_DEP_PUSH is evauated one an\r
+///                        replaced with EFI_DEP_REPLACE_TRUE\r
+///\r
+#define EFI_DEP_REPLACE_TRUE  0xff\r
+\r
+///\r
+/// Define the initial size of the dependency expression evaluation stack\r
+///\r
+#define DEPEX_STACK_SIZE_INCREMENT  0x1000\r
+\r
 typedef struct {\r
   EFI_GUID                    *ProtocolGuid;\r
   VOID                        **Protocol;\r
@@ -104,10 +116,10 @@ typedef struct {
 //\r
 // DXE Core Global Variables\r
 //\r
-extern EFI_SYSTEM_TABLE                         *gST;\r
-extern EFI_BOOT_SERVICES                        *gBS;\r
-extern EFI_RUNTIME_SERVICES                     *gRT;\r
-extern EFI_DXE_SERVICES                         *gDS;\r
+extern EFI_SYSTEM_TABLE                         *gDxeCoreST;\r
+extern EFI_BOOT_SERVICES                        *gDxeCoreBS;\r
+extern EFI_RUNTIME_SERVICES                     *gDxeCoreRT;\r
+extern EFI_DXE_SERVICES                         *gDxeCoreDS;\r
 extern EFI_HANDLE                               gDxeCoreImageHandle;\r
 \r
 extern EFI_DECOMPRESS_PROTOCOL                  gEfiDecompress;\r
@@ -130,6 +142,7 @@ extern EFI_LOADED_IMAGE_PROTOCOL                *gDxeCoreLoadedImage;
 extern EFI_MEMORY_TYPE_INFORMATION              gMemoryTypeInformation[EfiMaxMemoryType + 1];\r
 \r
 extern BOOLEAN                                  gDispatcherRunning;\r
+extern EFI_RUNTIME_ARCH_PROTOCOL                gRuntimeTemplate;\r
 \r
 //\r
 // Service Initialization Functions\r
@@ -315,27 +328,6 @@ Returns:
 --*/\r
 ;\r
 \r
-EFI_STATUS\r
-CoreShutdownEventServices (\r
-  VOID\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Register all runtime events to make sure they are still available after ExitBootService.\r
-\r
-Arguments:\r
-\r
-  None\r
-    \r
-Returns:\r
-\r
-  EFI_SUCCESS - Always return success\r
-\r
---*/\r
-;\r
-\r
 EFI_STATUS\r
 CoreInitializeImageServices (\r
   IN  VOID *HobStart\r
@@ -358,27 +350,6 @@ Returns:
 --*/\r
 ;\r
 \r
-EFI_STATUS\r
-CoreShutdownImageServices (\r
-  VOID\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Transfer control of runtime images to runtime service\r
-\r
-Arguments:\r
-\r
-  None\r
-\r
-Returns:\r
-\r
-  EFI_SUCCESS       - Function successfully returned\r
-\r
---*/\r
-;\r
-\r
 VOID\r
 CoreNotifyOnArchProtocolInstallation (\r
   VOID\r
@@ -1669,7 +1640,7 @@ Arguments:
   ExitData        - Pointer to a pointer to a data buffer that includes a Null-terminated\r
                     Unicode string, optionally followed by additional binary data. The string\r
                     is a description that the caller may use to further indicate the reason for\r
-                    the image¡¯s exit.\r
+                    the image's exit.\r
 \r
 Returns:\r
 \r
@@ -1701,13 +1672,13 @@ Arguments:
 \r
   ImageHandle       - Handle that identifies the image. This parameter is passed to the image \r
                       on entry.\r
-  Status            - The image¡¯s exit code.\r
+  Status            - The image's exit code.\r
   ExitDataSize      - The size, in bytes, of ExitData. Ignored if ExitStatus is\r
                       EFI_SUCCESS.\r
   ExitData          - Pointer to a data buffer that includes a Null-terminated Unicode string,\r
                       optionally followed by additional binary data. The string is a \r
                       description that the caller may use to further indicate the reason for\r
-                      the image¡¯s exit.\r
+                      the image's exit.\r
 \r
 Returns:\r
 \r
@@ -1740,8 +1711,8 @@ Arguments:
 \r
   Type                - The type of event to create and its mode and attributes\r
   NotifyTpl           - The task priority level of event notifications\r
-  NotifyFunction      - Pointer to the event\92s notification function\r
-  NotifyContext       - Pointer to the notification function\92s context; corresponds to\r
+  NotifyFunction      - Pointer to the event's notification function\r
+  NotifyContext       - Pointer to the notification function's context; corresponds to\r
                         parameter "Context" in the notification function\r
   pEvent              - Pointer to the newly created event if the call succeeds; undefined otherwise\r
 \r
@@ -2536,4 +2507,256 @@ CoreDisplayDiscoveredNotDispatched (
     NONE \r
 \r
 --*/;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+CoreEfiNotAvailableYetArg0 (\r
+  VOID\r
+  )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+  Place holder function until all the Boot Services and Runtime Services are available\r
+\r
+Arguments:\r
+\r
+  None\r
+\r
+Returns:\r
+\r
+  EFI_NOT_AVAILABLE_YET\r
+\r
+--*/\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+CoreEfiNotAvailableYetArg1 (\r
+  UINTN Arg1\r
+  )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+  Place holder function until all the Boot Services and Runtime Services are available\r
+\r
+Arguments:\r
+\r
+  Arg1        - Undefined\r
+\r
+Returns:\r
+\r
+  EFI_NOT_AVAILABLE_YET\r
+\r
+--*/\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+CoreEfiNotAvailableYetArg2 (\r
+  UINTN Arg1,\r
+  UINTN Arg2\r
+  )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+  Place holder function until all the Boot Services and Runtime Services are available\r
+\r
+Arguments:\r
+\r
+  Arg1        - Undefined\r
+  \r
+  Arg2        - Undefined\r
+\r
+Returns:\r
+\r
+  EFI_NOT_AVAILABLE_YET\r
+\r
+--*/\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+CoreEfiNotAvailableYetArg3 (\r
+  UINTN Arg1,\r
+  UINTN Arg2,\r
+  UINTN Arg3\r
+  )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+  Place holder function until all the Boot Services and Runtime Services are available\r
+\r
+Arguments:\r
+\r
+  Arg1        - Undefined\r
+  \r
+  Arg2        - Undefined\r
+  \r
+  Arg3        - Undefined\r
+\r
+Returns:\r
+\r
+  EFI_NOT_AVAILABLE_YET\r
+\r
+--*/\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+CoreEfiNotAvailableYetArg4 (\r
+  UINTN Arg1,\r
+  UINTN Arg2,\r
+  UINTN Arg3,\r
+  UINTN Arg4\r
+  )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+  Place holder function until all the Boot Services and Runtime Services are available\r
+\r
+Arguments:\r
+\r
+  Arg1        - Undefined\r
+  \r
+  Arg2        - Undefined\r
+  \r
+  Arg3        - Undefined\r
+  \r
+  Arg4        - Undefined\r
+\r
+Returns:\r
+\r
+  EFI_NOT_AVAILABLE_YET\r
+\r
+--*/\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+CoreEfiNotAvailableYetArg5 (\r
+  UINTN Arg1,\r
+  UINTN Arg2,\r
+  UINTN Arg3,\r
+  UINTN Arg4,\r
+  UINTN Arg5\r
+  )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+  Place holder function until all the Boot Services and Runtime Services are available\r
+\r
+Arguments:\r
+\r
+  Arg1        - Undefined\r
+  \r
+  Arg2        - Undefined\r
+  \r
+  Arg3        - Undefined\r
+  \r
+  Arg4        - Undefined\r
+  \r
+  Arg5        - Undefined\r
+\r
+Returns:\r
+\r
+  EFI_NOT_AVAILABLE_YET\r
+\r
+--*/\r
+;\r
+\r
+EFI_STATUS\r
+CoreGetPeiProtocol (\r
+  IN EFI_GUID  *ProtocolGuid,\r
+  IN VOID      **Interface\r
+  )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+  Searches for a Protocol Interface passed from PEI through a HOB\r
+\r
+Arguments:\r
+\r
+  ProtocolGuid - The Protocol GUID to search for in the HOB List\r
+\r
+  Interface    - A pointer to the interface for the Protocol GUID\r
+\r
+Returns:\r
+\r
+  EFI_SUCCESS   - The Protocol GUID was found and its interface is returned in Interface\r
+\r
+  EFI_NOT_FOUND - The Protocol GUID was not found in the HOB List\r
+\r
+--*/\r
+;\r
+  \r
+EFI_STATUS\r
+DxeMainUefiDecompressGetInfo (\r
+  IN EFI_DECOMPRESS_PROTOCOL            *This,\r
+  IN   VOID                             *Source,\r
+  IN   UINT32                           SourceSize,\r
+  OUT  UINT32                           *DestinationSize,\r
+  OUT  UINT32                           *ScratchSize\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+DxeMainUefiDecompress (\r
+  IN EFI_DECOMPRESS_PROTOCOL              *This,\r
+  IN     VOID                             *Source,\r
+  IN     UINT32                           SourceSize,\r
+  IN OUT VOID                             *Destination,\r
+  IN     UINT32                           DestinationSize,\r
+  IN OUT VOID                             *Scratch,\r
+  IN     UINT32                           ScratchSize\r
+  );\r
+\r
+EFI_STATUS\r
+DxeMainTianoDecompressGetInfo (\r
+  IN EFI_TIANO_DECOMPRESS_PROTOCOL      *This,\r
+  IN   VOID                             *Source,\r
+  IN   UINT32                           SourceSize,\r
+  OUT  UINT32                           *DestinationSize,\r
+  OUT  UINT32                           *ScratchSize\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+DxeMainTianoDecompress (\r
+  IN EFI_TIANO_DECOMPRESS_PROTOCOL        *This,\r
+  IN     VOID                             *Source,\r
+  IN     UINT32                           SourceSize,\r
+  IN OUT VOID                             *Destination,\r
+  IN     UINT32                           DestinationSize,\r
+  IN OUT VOID                             *Scratch,\r
+  IN     UINT32                           ScratchSize\r
+  );\r
+\r
+EFI_STATUS\r
+DxeMainCustomDecompressGetInfo (\r
+  IN EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL  *This,\r
+  IN   VOID                              *Source,\r
+  IN   UINT32                            SourceSize,\r
+  OUT  UINT32                            *DestinationSize,\r
+  OUT  UINT32                            *ScratchSize\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+DxeMainCustomDecompress (\r
+  IN EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL  *This,\r
+  IN     VOID                            *Source,\r
+  IN     UINT32                          SourceSize,\r
+  IN OUT VOID                            *Destination,\r
+  IN     UINT32                          DestinationSize,\r
+  IN OUT VOID                            *Scratch,\r
+  IN     UINT32                          ScratchSize\r
+  );\r
+\r
 #endif\r