Use Memory Allocation Library instance for modules of type DXE_SMM_DRIVER

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10014 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
mdkinney 2010-02-16 04:06:46 +00:00
parent 300240b62b
commit d3308de7f5
6 changed files with 17 additions and 34 deletions

View File

@ -2,7 +2,7 @@
Report Status Code Router Driver which produces SMM Report Stataus Code Handler Protocol Report Status Code Router Driver which produces SMM Report Stataus Code Handler Protocol
and SMM Status Code Protocol. and SMM Status Code Protocol.
Copyright (c) 2009, Intel Corporation Copyright (c) 2009 -2010, Intel Corporation
All rights reserved. This program and the accompanying materials All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License 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 which accompanies this distribution. The full text of the license may be found at
@ -54,9 +54,8 @@ Register (
IN EFI_SMM_RSC_HANDLER_CALLBACK Callback IN EFI_SMM_RSC_HANDLER_CALLBACK Callback
) )
{ {
EFI_STATUS Status; LIST_ENTRY *Link;
LIST_ENTRY *Link; SMM_RSC_HANDLER_CALLBACK_ENTRY *CallbackEntry;
SMM_RSC_HANDLER_CALLBACK_ENTRY *CallbackEntry;
if (Callback == NULL) { if (Callback == NULL) {
return EFI_INVALID_PARAMETER; return EFI_INVALID_PARAMETER;
@ -72,13 +71,7 @@ Register (
} }
} }
Status = gSmst->SmmAllocatePool ( CallbackEntry = (SMM_RSC_HANDLER_CALLBACK_ENTRY *)AllocatePool (sizeof (SMM_RSC_HANDLER_CALLBACK_ENTRY));
EfiRuntimeServicesData,
sizeof (SMM_RSC_HANDLER_CALLBACK_ENTRY),
(VOID**)&CallbackEntry
);
ASSERT_EFI_ERROR(Status);
ASSERT (CallbackEntry != NULL); ASSERT (CallbackEntry != NULL);
CallbackEntry->Signature = SMM_RSC_HANDLER_CALLBACK_ENTRY_SIGNATURE; CallbackEntry->Signature = SMM_RSC_HANDLER_CALLBACK_ENTRY_SIGNATURE;
@ -122,7 +115,7 @@ Unregister (
// If the function is found in list, delete it and return. // If the function is found in list, delete it and return.
// //
RemoveEntryList (&CallbackEntry->Node); RemoveEntryList (&CallbackEntry->Node);
gSmst->SmmFreePool (CallbackEntry); FreePool (CallbackEntry);
return EFI_SUCCESS; return EFI_SUCCESS;
} }
} }

View File

@ -1,7 +1,7 @@
/** @file /** @file
Internal include file for Report Status Code Router Driver. Internal include file for Report Status Code Router Driver.
Copyright (c) 2009, Intel Corporation Copyright (c) 2009 - 2010, Intel Corporation
All rights reserved. This program and the accompanying materials All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License 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 which accompanies this distribution. The full text of the license may be found at
@ -25,6 +25,7 @@
#include <Library/PcdLib.h> #include <Library/PcdLib.h>
#include <Library/UefiDriverEntryPoint.h> #include <Library/UefiDriverEntryPoint.h>
#include <Library/SmmServicesTableLib.h> #include <Library/SmmServicesTableLib.h>
#include <Library/MemoryAllocationLib.h>
#define SMM_RSC_HANDLER_CALLBACK_ENTRY_SIGNATURE SIGNATURE_32 ('s', 'h', 'c', 'e') #define SMM_RSC_HANDLER_CALLBACK_ENTRY_SIGNATURE SIGNATURE_32 ('s', 'h', 'c', 'e')

View File

@ -20,7 +20,6 @@
FILE_GUID = A6885402-D022-4b0e-A509-4711B90F2A39 FILE_GUID = A6885402-D022-4b0e-A509-4711B90F2A39
MODULE_TYPE = DXE_SMM_DRIVER MODULE_TYPE = DXE_SMM_DRIVER
PI_SPECIFICATION_VERSION = 0x0001000A PI_SPECIFICATION_VERSION = 0x0001000A
ENTRY_POINT = GenericStatusCodeSmmEntry ENTRY_POINT = GenericStatusCodeSmmEntry
# #
@ -29,11 +28,10 @@
# VALID_ARCHITECTURES = IA32 X64 # VALID_ARCHITECTURES = IA32 X64
# #
[Sources.common] [Sources]
ReportStatusCodeRouterSmm.c ReportStatusCodeRouterSmm.c
ReportStatusCodeRouterSmm.h ReportStatusCodeRouterSmm.h
[Packages] [Packages]
MdePkg/MdePkg.dec MdePkg/MdePkg.dec
MdeModulePkg/MdeModulePkg.dec MdeModulePkg/MdeModulePkg.dec
@ -44,6 +42,7 @@
DebugLib DebugLib
BaseLib BaseLib
SynchronizationLib SynchronizationLib
MemoryAllocationLib
[Protocols] [Protocols]
gEfiSmmRscHandlerProtocolGuid ## PRODUCES gEfiSmmRscHandlerProtocolGuid ## PRODUCES

View File

@ -1,7 +1,7 @@
/** @file /** @file
Runtime memory status code worker. Runtime memory status code worker.
Copyright (c) 2006 - 2009, Intel Corporation Copyright (c) 2006 - 2010, Intel Corporation
All rights reserved. This program and the accompanying materials All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License 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 which accompanies this distribution. The full text of the license may be found at
@ -27,24 +27,13 @@ MemoryStatusCodeInitializeWorker (
VOID VOID
) )
{ {
EFI_STATUS Status;
// //
// Allocate SMM memory status code pool. // Allocate SMM memory status code pool.
// //
Status = gSmst->SmmAllocatePool ( mSmmMemoryStatusCodeTable = (RUNTIME_MEMORY_STATUSCODE_HEADER *)AllocateZeroPool (sizeof (RUNTIME_MEMORY_STATUSCODE_HEADER) + PcdGet16 (PcdStatusCodeMemorySize) * 1024);
EfiRuntimeServicesData,
sizeof (RUNTIME_MEMORY_STATUSCODE_HEADER) + PcdGet16 (PcdStatusCodeMemorySize) * 1024,
(VOID**)&mSmmMemoryStatusCodeTable
);
ASSERT_EFI_ERROR(Status);
ASSERT (mSmmMemoryStatusCodeTable != NULL); ASSERT (mSmmMemoryStatusCodeTable != NULL);
mSmmMemoryStatusCodeTable->RecordIndex = 0; mSmmMemoryStatusCodeTable->MaxRecordsNumber = (PcdGet16 (PcdStatusCodeMemorySize) * 1024) / sizeof (MEMORY_STATUSCODE_RECORD);
mSmmMemoryStatusCodeTable->NumberOfRecords = 0;
mSmmMemoryStatusCodeTable->MaxRecordsNumber =
(PcdGet16 (PcdStatusCodeMemorySize) * 1024) / sizeof (MEMORY_STATUSCODE_RECORD);
return EFI_SUCCESS; return EFI_SUCCESS;
} }

View File

@ -1,7 +1,7 @@
/** @file /** @file
Internal include file for Status Code Handler Driver. Internal include file for Status Code Handler Driver.
Copyright (c) 2009, Intel Corporation Copyright (c) 2009 - 2010, Intel Corporation
All rights reserved. This program and the accompanying materials All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License 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 which accompanies this distribution. The full text of the license may be found at
@ -29,6 +29,7 @@
#include <Library/UefiDriverEntryPoint.h> #include <Library/UefiDriverEntryPoint.h>
#include <Library/SmmServicesTableLib.h> #include <Library/SmmServicesTableLib.h>
#include <Library/SerialPortLib.h> #include <Library/SerialPortLib.h>
#include <Library/MemoryAllocationLib.h>
// //
// Runtime memory status code worker definition // Runtime memory status code worker definition

View File

@ -2,7 +2,7 @@
# Status Code Handler Driver which produces general handlers and hook them # Status Code Handler Driver which produces general handlers and hook them
# onto the SMM status code router. # onto the SMM status code router.
# #
# Copyright (c) 2009, Intel Corporation. # Copyright (c) 2009 - 2010, Intel Corporation.
# #
# All rights reserved. This program and the accompanying materials # All rights reserved. This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License # are licensed and made available under the terms and conditions of the BSD License
@ -20,7 +20,6 @@
FILE_GUID = 79CD78D8-6EDC-4978-BD02-3299C387AB17 FILE_GUID = 79CD78D8-6EDC-4978-BD02-3299C387AB17
MODULE_TYPE = DXE_SMM_DRIVER MODULE_TYPE = DXE_SMM_DRIVER
PI_SPECIFICATION_VERSION = 0x0001000A PI_SPECIFICATION_VERSION = 0x0001000A
ENTRY_POINT = StatusCodeHandlerSmmEntry ENTRY_POINT = StatusCodeHandlerSmmEntry
# #
@ -29,7 +28,7 @@
# VALID_ARCHITECTURES = IA32 X64 # VALID_ARCHITECTURES = IA32 X64
# #
[Sources.common] [Sources]
StatusCodeHandlerSmm.c StatusCodeHandlerSmm.c
StatusCodeHandlerSmm.h StatusCodeHandlerSmm.h
SerialStatusCodeWorker.c SerialStatusCodeWorker.c
@ -48,6 +47,7 @@
ReportStatusCodeLib ReportStatusCodeLib
DebugLib DebugLib
SynchronizationLib SynchronizationLib
MemoryAllocationLib
[Guids] [Guids]
gMemoryStatusCodeRecordGuid ## CONSUMES ## HOB gMemoryStatusCodeRecordGuid ## CONSUMES ## HOB