From: Shenglei Zhang <shenglei.zhang@intel.com>
To: edk2-devel@lists.01.org
Cc: Liming Gao <liming.gao@intel.com>,
Michael D Kinney <michael.d.kinney@intel.com>
Subject: [PATCH 2/8] IntelFrameworkPkg/Library: Remove DxeSmmDriverEntryPoint
Date: Tue, 13 Nov 2018 16:35:12 +0800 [thread overview]
Message-ID: <20181113083518.6824-3-shenglei.zhang@intel.com> (raw)
In-Reply-To: <20181113083518.6824-1-shenglei.zhang@intel.com>
DxeSmmDriverEntryPoint is not used, so it is removed.
https://bugzilla.tianocore.org/show_bug.cgi?id=1190
Cc: Liming Gao <liming.gao@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com>
---
.../DxeSmmDriverEntryPoint/DriverEntryPoint.c | 276 ------------------
.../DxeSmmDriverEntryPoint.inf | 55 ----
.../DxeSmmDriverEntryPoint.uni | 21 --
3 files changed, 352 deletions(-)
delete mode 100644 IntelFrameworkPkg/Library/DxeSmmDriverEntryPoint/DriverEntryPoint.c
delete mode 100644 IntelFrameworkPkg/Library/DxeSmmDriverEntryPoint/DxeSmmDriverEntryPoint.inf
delete mode 100644 IntelFrameworkPkg/Library/DxeSmmDriverEntryPoint/DxeSmmDriverEntryPoint.uni
diff --git a/IntelFrameworkPkg/Library/DxeSmmDriverEntryPoint/DriverEntryPoint.c b/IntelFrameworkPkg/Library/DxeSmmDriverEntryPoint/DriverEntryPoint.c
deleted file mode 100644
index d1491655fe..0000000000
--- a/IntelFrameworkPkg/Library/DxeSmmDriverEntryPoint/DriverEntryPoint.c
+++ /dev/null
@@ -1,276 +0,0 @@
-/** @file
- This file implement EfiMain() for library class DxeSmmDriverEntryPoint.
- EfiMain() is common driver entry point for all SMM driver who uses DxeSmmDriverEntryPoint
- library class.
-
-Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
-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.
-
-**/
-
-
-#include <FrameworkSmm.h>
-
-#include <Protocol/LoadedImage.h>
-#include <Protocol/SmmBase.h>
-#include <Protocol/DevicePath.h>
-
-#include <Library/UefiDriverEntryPoint.h>
-#include <Library/UefiBootServicesTableLib.h>
-#include <Library/DebugLib.h>
-#include <Library/DevicePathLib.h>
-
-/**
- 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.
-
-**/
-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 (!IsDevicePathEnd (DevicePath)) {
- DevicePath = NextDevicePathNode (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 = gBS->AllocatePool (EfiBootServicesData, Size, (VOID **) &NewDevicePath);
-
- if (EFI_SUCCESS == Status) {
- //
- // CopyMem in gBS is used as this service should always be ready. We didn't choose
- // to use a BaseMemoryLib function as such library instance may have constructor.
- //
- gBS->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)));
- gBS->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
- )
-{
- //
- // Call the unload handlers for all the modules.
- //
- // Note: All libraries were constructed in SMM space,
- // therefore we can not destruct them in Unload
- // handler.
- //
- return ProcessModuleUnloadList (ImageHandle);
-}
-
-/**
- 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
- //
- gBS = SystemTable->BootServices;
-
- //
- // Retrieve SMM Base Protocol
- //
- Status = gBS->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 Loaded Image Protocol
- //
- Status = gBS->HandleProtocol (
- ImageHandle,
- &gEfiLoadedImageProtocolGuid,
- (VOID*)&LoadedImage
- );
- ASSERT_EFI_ERROR (Status);
- //
- // Retrieve the Device Path Protocol from the DeviceHandle from which this driver was loaded
- //
- Status = gBS->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, LoadedImage->ImageBase, 0, &Handle, FALSE);
- ASSERT_EFI_ERROR (Status);
- //
- // Optionally install the unload handler
- //
- if (_gDriverUnloadImageCount > 0) {
- Status = gBS->HandleProtocol (
- ImageHandle,
- &gEfiLoadedImageProtocolGuid,
- (VOID **)&LoadedImage
- );
- ASSERT_EFI_ERROR (Status);
- LoadedImage->Unload = _DriverUnloadHandler;
- }
-
- return Status;
- }
-
- //
- // Call constructor for all libraries
- //
- ProcessLibraryConstructorList (ImageHandle, SystemTable);
-
- //
- // 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/IntelFrameworkPkg/Library/DxeSmmDriverEntryPoint/DxeSmmDriverEntryPoint.inf b/IntelFrameworkPkg/Library/DxeSmmDriverEntryPoint/DxeSmmDriverEntryPoint.inf
deleted file mode 100644
index 5b20355665..0000000000
--- a/IntelFrameworkPkg/Library/DxeSmmDriverEntryPoint/DxeSmmDriverEntryPoint.inf
+++ /dev/null
@@ -1,55 +0,0 @@
-## @file
-# Framework SMM driver entry point library.
-#
-# Register driver in SMRAM and wrapper driver's library constructors and entry point.
-#
-# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
-#
-# 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.
-#
-#
-##
-
-[Defines]
- INF_VERSION = 0x00010005
- BASE_NAME = DxeSmmDriverEntryPoint
- MODULE_UNI_FILE = DxeSmmDriverEntryPoint.uni
- FILE_GUID = 79C5C7B7-1083-42a6-AD15-2A4E7C4274D7
- MODULE_TYPE = DXE_SMM_DRIVER
- VERSION_STRING = 1.0
- LIBRARY_CLASS = UefiDriverEntryPoint|DXE_SMM_DRIVER
-
-
-#
-# The following information is for reference only and not required by the build tools.
-#
-# VALID_ARCHITECTURES = IA32 X64
-#
-
-[Sources]
- DriverEntryPoint.c
-
-
-[Packages]
- MdePkg/MdePkg.dec
- IntelFrameworkPkg/IntelFrameworkPkg.dec
-
-
-[LibraryClasses]
- DebugLib
- UefiBootServicesTableLib
- DevicePathLib
-
-[Protocols]
- gEfiLoadedImageProtocolGuid ## CONSUMES
- gEfiSmmBaseProtocolGuid ## CONSUMES
- gEfiDevicePathProtocolGuid ## CONSUMES
-
-[Depex]
- gEfiSmmBaseProtocolGuid
-
diff --git a/IntelFrameworkPkg/Library/DxeSmmDriverEntryPoint/DxeSmmDriverEntryPoint.uni b/IntelFrameworkPkg/Library/DxeSmmDriverEntryPoint/DxeSmmDriverEntryPoint.uni
deleted file mode 100644
index 5042026ac0..0000000000
--- a/IntelFrameworkPkg/Library/DxeSmmDriverEntryPoint/DxeSmmDriverEntryPoint.uni
+++ /dev/null
@@ -1,21 +0,0 @@
-// /** @file
-// Framework SMM driver entry point library.
-//
-// Register driver in SMRAM and wrapper driver's library constructors and entry point.
-//
-// Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
-//
-// 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.
-//
-// **/
-
-
-#string STR_MODULE_ABSTRACT #language en-US "SMM Driver Entry Point Library"
-
-#string STR_MODULE_DESCRIPTION #language en-US "Registers a driver in SMRAM, and wrappers the driver's library constructors and entry point."
-
--
2.18.0.windows.1
next prev parent reply other threads:[~2018-11-13 8:35 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-13 8:35 [PATCH 0/8] IntelFrameworkPkg: Remove unused library instances Shenglei Zhang
2018-11-13 8:35 ` [PATCH 1/8] IntelFrameworkPkg/DxeIoLibCpuIo: Remove DxeIoLibCpuIo Shenglei Zhang
2018-11-13 8:35 ` Shenglei Zhang [this message]
2018-11-13 8:35 ` [PATCH 3/8] IntelFrameworkPkg/FrameworkUefiLib: Remove FrameworkUefiLib Shenglei Zhang
2018-11-13 8:35 ` [PATCH 4/8] IntelFrameworkPkg/PeiHobLibFramework: Remove PeiHobLibFramework Shenglei Zhang
2018-11-13 8:35 ` [PATCH 5/8] IntelFrameworkPkg/PeiSmbusLibSmbusPpi: Remove PeiSmbusLibSmbusPpi Shenglei Zhang
2018-11-13 8:35 ` [PATCH 6/8] IntelFrameworkPkg: Remove the redundant INFs Shenglei Zhang
2018-11-14 3:12 ` Ni, Ruiyu
2018-11-14 3:32 ` Zhang, Shenglei
2018-11-14 5:18 ` Kinney, Michael D
2018-11-19 5:15 ` Gao, Liming
2018-11-19 20:05 ` Kinney, Michael D
2018-11-13 8:35 ` [PATCH 7/8] MdePkg: Remove DxeIoLibCpuIo in comments Shenglei Zhang
2018-11-13 8:35 ` [PATCH 8/8] Vlv2TbltDevicePkg: Remove DxeSmmDriverEntryPoint in DSCs Shenglei Zhang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181113083518.6824-3-shenglei.zhang@intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox