/* The constructor function caches the pointer of the MM Services Table. */
EFI_STATUS EFIAPI MmServicesTableLibConstructor(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
/* The constructor function caches the pointer of the MM Services Table. */
EFI_STATUS EFIAPI MmServicesTableLibConstructor(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
{
  EFI_STATUS            Status;
  EFI_MM_BASE_PROTOCOL  *InternalMmBase;
  InternalMmBase = NULL;
  Status = SystemTable->BootServices->LocateProtocol (
                                        &gEfiMmBaseProtocolGuid,
                                        NULL,
                                        (VOID **)&InternalMmBase
                                        );
  ASSERT_EFI_ERROR (Status);
  ASSERT (InternalMmBase != NULL);
  InternalMmBase->GetMmstLocation (InternalMmBase, &gMmst);
  ASSERT (gMmst != NULL);
  return EFI_SUCCESS;
}