public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
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



  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