mirror of https://github.com/acidanthera/audk.git
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:
parent
300240b62b
commit
d3308de7f5
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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')
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue