/** @file
  Header file for SMM Relocation Library.

  The SmmRelocationLib class provides the SmmRelocationInit()
  interface for platform to do the smbase relocation, which
  shall provide below 2 functionalities:
  1. Relocate SmBases for each processor.
  2. Create the SmBase HOB (gSmmBaseHobGuid).

  With SmmRelocationLib, PiSmmCpuDxeSmm driver (which runs at a later phase)
  shall:
  1. Consume the gSmmBaseHobGuid for the relocated smbase for each Processor.
  2. Execute early SMM init.

  Copyright (c) 2024, Intel Corporation. All rights reserved.<BR>
  SPDX-License-Identifier: BSD-2-Clause-Patent

**/

#pragma once

#include <Ppi/MpServices2.h>

/**
  CPU SmmBase Relocation Init.

  This function is to relocate CPU SmmBase.

  @param[in] MpServices2        Pointer to this instance of the MpServices.

  @retval EFI_SUCCESS           CPU SmmBase Relocated successfully.
  @retval Others                CPU SmmBase Relocation failed.

**/
EFI_STATUS
EFIAPI
SmmRelocationInit (
  IN EFI_PEI_MP_SERVICES2_PPI  *MpServices2
  );
