summaryrefslogtreecommitdiff
path: root/OldMdePkg/Library/DxeSmmDriverEntryPoint
diff options
context:
space:
mode:
Diffstat (limited to 'OldMdePkg/Library/DxeSmmDriverEntryPoint')
-rw-r--r--OldMdePkg/Library/DxeSmmDriverEntryPoint/DriverEntryPoint.c274
-rw-r--r--OldMdePkg/Library/DxeSmmDriverEntryPoint/DxeSmmDriverEntryPoint.msa56
2 files changed, 0 insertions, 330 deletions
diff --git a/OldMdePkg/Library/DxeSmmDriverEntryPoint/DriverEntryPoint.c b/OldMdePkg/Library/DxeSmmDriverEntryPoint/DriverEntryPoint.c
deleted file mode 100644
index 3439d6da35..0000000000
--- a/OldMdePkg/Library/DxeSmmDriverEntryPoint/DriverEntryPoint.c
+++ /dev/null
@@ -1,274 +0,0 @@
-/** @file
- Entry point to a EFI/DXE driver.
-
-Copyright (c) 2006, Intel Corporation<BR>
-All rights reserved. This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution. The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-EFI_BOOT_SERVICES *mBS;
-
-/**
- This function returns the size, in bytes,
- of the device path data structure specified by DevicePath.
- If DevicePath is NULL, then 0 is returned.
-
- @param DevicePath A pointer to a device path data structure.
-
- @return The size of a device path in bytes.
-
-**/
-STATIC
-UINTN
-EFIAPI
-SmmGetDevicePathSize (
- IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
- )
-{
- CONST EFI_DEVICE_PATH_PROTOCOL *Start;
-
- if (DevicePath == NULL) {
- return 0;
- }
-
- //
- // Search for the end of the device path structure
- //
- Start = DevicePath;
- while (!EfiIsDevicePathEnd (DevicePath)) {
- DevicePath = EfiNextDevicePathNode (DevicePath);
- }
-
- //
- // Compute the size and add back in the size of the end device path structure
- //
- return ((UINTN) DevicePath - (UINTN) Start) + sizeof (EFI_DEVICE_PATH_PROTOCOL);
-}
-
-/**
- This function appends the device path SecondDevicePath
- to every device path instance in FirstDevicePath.
-
- @param FirstDevicePath A pointer to a device path data structure.
-
- @param SecondDevicePath A pointer to a device path data structure.
-
- @return A pointer to the new device path is returned.
- NULL is returned if space for the new device path could not be allocated from pool.
- It is up to the caller to free the memory used by FirstDevicePath and SecondDevicePath
- if they are no longer needed.
-
-**/
-EFI_DEVICE_PATH_PROTOCOL *
-EFIAPI
-SmmAppendDevicePath (
- IN CONST EFI_DEVICE_PATH_PROTOCOL *FirstDevicePath,
- IN CONST EFI_DEVICE_PATH_PROTOCOL *SecondDevicePath
- )
-{
- EFI_STATUS Status;
- UINTN Size;
- UINTN Size1;
- UINTN Size2;
- EFI_DEVICE_PATH_PROTOCOL *NewDevicePath;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath2;
-
- ASSERT (FirstDevicePath != NULL && SecondDevicePath != NULL);
-
- //
- // Allocate space for the combined device path. It only has one end node of
- // length EFI_DEVICE_PATH_PROTOCOL
- //
- Size1 = SmmGetDevicePathSize (FirstDevicePath);
- Size2 = SmmGetDevicePathSize (SecondDevicePath);
- Size = Size1 + Size2 - sizeof (EFI_DEVICE_PATH_PROTOCOL);
-
- Status = mBS->AllocatePool (EfiBootServicesData, Size, (VOID **) &NewDevicePath);
-
- if (EFI_SUCCESS == Status) {
- mBS->CopyMem ((VOID *) NewDevicePath, (VOID *) FirstDevicePath, Size1);
- //
- // Over write Src1 EndNode and do the copy
- //
- DevicePath2 = (EFI_DEVICE_PATH_PROTOCOL *) ((CHAR8 *) NewDevicePath + (Size1 - sizeof (EFI_DEVICE_PATH_PROTOCOL)));
- mBS->CopyMem ((VOID *) DevicePath2, (VOID *) SecondDevicePath, Size2);
- }
-
- return NewDevicePath;
-}
-
-/**
- Unload function that is registered in the LoadImage protocol. It un-installs
- protocols produced and deallocates pool used by the driver. Called by the core
- when unloading the driver.
-
- @param ImageHandle ImageHandle of the unloaded driver
-
- @return Status of the ProcessModuleUnloadList.
-
-**/
-EFI_STATUS
-EFIAPI
-_DriverUnloadHandler (
- EFI_HANDLE ImageHandle
- )
-{
- EFI_STATUS Status;
-
- //
- // Call the unload handlers for all the modules
- //
- Status = ProcessModuleUnloadList (ImageHandle);
-
- //
- // If the driver specific unload handler does not return an error, then call all of the
- // library destructors. If the unload handler returned an error, then the driver can not be
- // unloaded, and the library destructors should not be called
- //
- if (!EFI_ERROR (Status)) {
- ProcessLibraryDestructorList (ImageHandle, gST);
- }
-
- //
- // Return the status from the driver specific unload handler
- //
- return Status;
-}
-
-/**
- Enrty point to DXE SMM Driver.
-
- @param ImageHandle ImageHandle of the loaded driver.
- @param SystemTable Pointer to the EFI System Table.
-
- @retval EFI_SUCCESS One or more of the drivers returned a success code.
- @retval !EFI_SUCESS The return status from the last driver entry point in the list.
-
-**/
-EFI_STATUS
-EFIAPI
-_ModuleEntryPoint (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
- )
-{
- EFI_STATUS Status;
- EFI_LOADED_IMAGE_PROTOCOL *LoadedImage;
- EFI_SMM_BASE_PROTOCOL *SmmBase;
- BOOLEAN InSmm;
- EFI_DEVICE_PATH_PROTOCOL *CompleteFilePath;
- EFI_DEVICE_PATH_PROTOCOL *ImageDevicePath;
- EFI_HANDLE Handle;
-
- //
- // Cache a pointer to the Boot Services Table
- //
- mBS = SystemTable->BootServices;
-
- //
- // Retrieve the Loaded Image Protocol
- //
- Status = mBS->HandleProtocol (
- ImageHandle,
- &gEfiLoadedImageProtocolGuid,
- (VOID*)&LoadedImage
- );
- ASSERT_EFI_ERROR (Status);
-
- //
- // Retrieve SMM Base Protocol
- //
- Status = mBS->LocateProtocol (
- &gEfiSmmBaseProtocolGuid,
- NULL,
- (VOID **) &SmmBase
- );
- ASSERT_EFI_ERROR (Status);
-
- //
- // Check to see if we are already in SMM
- //
- SmmBase->InSmm (SmmBase, &InSmm);
-
- //
- //
- //
- if (!InSmm) {
- //
- // Retrieve the Device Path Protocol from the DeviceHandle tha this driver was loaded from
- //
- Status = mBS->HandleProtocol (
- LoadedImage->DeviceHandle,
- &gEfiDevicePathProtocolGuid,
- (VOID*)&ImageDevicePath
- );
- ASSERT_EFI_ERROR (Status);
-
- //
- // Build the full device path to the currently execuing image
- //
- CompleteFilePath = SmmAppendDevicePath (ImageDevicePath, LoadedImage->FilePath);
-
- //
- // Load the image in memory to SMRAM; it will automatically generate the
- // SMI.
- //
- Status = SmmBase->Register (SmmBase, CompleteFilePath, NULL, 0, &Handle, FALSE);
- ASSERT_EFI_ERROR (Status);
- return Status;
- }
-
- //
- // Call constructor for all libraries
- //
- ProcessLibraryConstructorList (ImageHandle, SystemTable);
-
- //
- // Optionally install the unload handler
- //
- if (_gDriverUnloadImageCount > 0) {
- Status = mBS->HandleProtocol (
- ImageHandle,
- &gEfiLoadedImageProtocolGuid,
- (VOID **)&LoadedImage
- );
- ASSERT_EFI_ERROR (Status);
- LoadedImage->Unload = _DriverUnloadHandler;
- }
-
- //
- // Call the list of driver entry points
- //
- Status = ProcessModuleEntryPointList (ImageHandle, SystemTable);
- if (EFI_ERROR (Status)) {
- ProcessLibraryDestructorList (ImageHandle, SystemTable);
- }
-
- return Status;
-}
-
-/**
- Enrty point wrapper of DXE SMM Driver.
-
- @param ImageHandle ImageHandle of the loaded driver.
- @param SystemTable Pointer to the EFI System Table.
-
- @retval EFI_SUCCESS One or more of the drivers returned a success code.
- @retval !EFI_SUCESS The return status from the last driver entry point in the list.
-
-**/
-EFI_STATUS
-EFIAPI
-EfiMain (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
- )
-{
- return _ModuleEntryPoint (ImageHandle, SystemTable);
-}
diff --git a/OldMdePkg/Library/DxeSmmDriverEntryPoint/DxeSmmDriverEntryPoint.msa b/OldMdePkg/Library/DxeSmmDriverEntryPoint/DxeSmmDriverEntryPoint.msa
deleted file mode 100644
index 605579758c..0000000000
--- a/OldMdePkg/Library/DxeSmmDriverEntryPoint/DxeSmmDriverEntryPoint.msa
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <MsaHeader>
- <ModuleName>DxeSmmDriverEntryPoint</ModuleName>
- <ModuleType>DXE_SMM_DRIVER</ModuleType>
- <GuidValue>79C5C7B7-1083-42a6-AD15-2A4E7C4274D7</GuidValue>
- <Version>1.0</Version>
- <Abstract>SMM driver entry point library</Abstract>
- <Description>Register driver in SMRAM and wrapper driver library constructors and entry point</Description>
- <Copyright>Copyright (c) 2006 - 2007, Intel Corporation.</Copyright>
- <License>All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.</License>
- <Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052</Specification>
- </MsaHeader>
- <ModuleDefinitions>
- <SupportedArchitectures>IA32 X64</SupportedArchitectures>
- <BinaryModule>false</BinaryModule>
- <OutputFileBasename>DxeSmmDriverEntryPoint</OutputFileBasename>
- </ModuleDefinitions>
- <LibraryClassDefinitions>
- <LibraryClass Usage="ALWAYS_PRODUCED" SupModuleList="DXE_SMM_DRIVER">
- <Keyword>DxeSmmDriverEntryPoint</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>UefiBootServicesTableLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>DebugLib</Keyword>
- </LibraryClass>
- </LibraryClassDefinitions>
- <SourceFiles>
- <Filename>DriverEntryPoint.c</Filename>
- </SourceFiles>
- <PackageDependencies>
- <Package PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
- </PackageDependencies>
- <Protocols>
- <Protocol Usage="ALWAYS_CONSUMED">
- <ProtocolCName>gEfiDevicePathProtocolGuid</ProtocolCName>
- </Protocol>
- <Protocol Usage="ALWAYS_CONSUMED">
- <ProtocolCName>gEfiSmmBaseProtocolGuid</ProtocolCName>
- </Protocol>
- <Protocol Usage="ALWAYS_CONSUMED">
- <ProtocolCName>gEfiLoadedImageProtocolGuid</ProtocolCName>
- </Protocol>
- </Protocols>
- <Externs>
- <Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>
- <Specification>EDK_RELEASE_VERSION 0x00020000</Specification>
- </Externs>
-</ModuleSurfaceArea> \ No newline at end of file