66 EFI_SMM_HANDLER_ENTRY_POINT2 Handler;
76#define SMI_ENTRY_SIGNATURE SIGNATURE_32('s','m','i','e')
86#define SMI_HANDLER_SIGNATURE SIGNATURE_32('s','m','i','h')
91 EFI_SMM_HANDLER_ENTRY_POINT2 Handler;
102#define EFI_SMM_DRIVER_ENTRY_SIGNATURE SIGNATURE_32('s', 'd','r','v')
125 BOOLEAN DepexProtocolError;
132 PHYSICAL_ADDRESS ImageEntryPoint;
136 PHYSICAL_ADDRESS ImageBuffer;
145#define EFI_HANDLE_SIGNATURE SIGNATURE_32('s','h','d','l')
159#define ASSERT_IS_HANDLE(a) ASSERT((a)->Signature == EFI_HANDLE_SIGNATURE)
161#define PROTOCOL_ENTRY_SIGNATURE SIGNATURE_32('s','p','t','e')
180#define PROTOCOL_INTERFACE_SIGNATURE SIGNATURE_32('s','p','i','f')
200#define PROTOCOL_NOTIFY_SIGNATURE SIGNATURE_32('s','p','t','n')
532 IN EFI_SMM_NOTIFY_FN Function,
533 OUT VOID **Registration
559 IN VOID *SearchKey OPTIONAL,
584 IN VOID *Registration OPTIONAL,
615 IN VOID *SearchKey OPTIONAL,
638 IN CONST VOID *Context OPTIONAL,
639 IN OUT VOID *CommBuffer OPTIONAL,
657 IN EFI_SMM_HANDLER_ENTRY_POINT2 Handler,
694 IN CONST VOID *Context OPTIONAL,
695 IN OUT VOID *CommBuffer OPTIONAL,
716 IN CONST VOID *Context OPTIONAL,
717 IN OUT VOID *CommBuffer OPTIONAL,
738 IN CONST VOID *Context OPTIONAL,
739 IN OUT VOID *CommBuffer OPTIONAL,
760 IN CONST VOID *Context OPTIONAL,
761 IN OUT VOID *CommBuffer OPTIONAL,
782 IN CONST VOID *Context OPTIONAL,
783 IN OUT VOID *CommBuffer OPTIONAL,
804 IN CONST VOID *Context OPTIONAL,
805 IN OUT VOID *CommBuffer OPTIONAL,
827 IN CONST VOID *Context OPTIONAL,
828 IN OUT VOID *CommBuffer OPTIONAL,
850 IN CONST VOID *Context OPTIONAL,
851 IN OUT VOID *CommBuffer OPTIONAL,
1024 IN BOOLEAN RegisterToDxe
1042 IN BOOLEAN UnregisterToDxe
1070 IN PHYSICAL_ADDRESS CallerAddress,
1071 IN MEMORY_PROFILE_ACTION Action,
1075 IN CHAR8 *ActionString OPTIONAL
1142 OUT UINT32 *DescriptorVersion
1178 IN EFI_SMM_HANDLER_ENTRY_POINT2 Handler,
1179 IN PHYSICAL_ADDRESS CallerAddress,
1180 IN VOID *Context OPTIONAL,
1206 IN EFI_SMM_HANDLER_ENTRY_POINT2 Handler,
1207 IN VOID *Context OPTIONAL,
1211extern UINTN mFullSmramRangeCount;
1224 UINTN NumberOfPages;
1236#define MIN_POOL_SHIFT 6
1237#define MIN_POOL_SIZE (1 << MIN_POOL_SHIFT)
1242#define MAX_POOL_SHIFT (EFI_PAGE_SHIFT - 1)
1243#define MAX_POOL_SIZE (1 << MAX_POOL_SHIFT)
1248#define MAX_POOL_INDEX (MAX_POOL_SHIFT - MIN_POOL_SHIFT + 1)
1250#define POOL_HEAD_SIGNATURE SIGNATURE_32('s','p','h','d')
1259#define POOL_TAIL_SIGNATURE SIGNATURE_32('s','p','t','l')
1267#define POOL_OVERHEAD (sizeof(POOL_HEADER) + sizeof(POOL_TAIL))
1269#define HEAD_TO_TAIL(a) \
1270 ((POOL_TAIL *) (((CHAR8 *) (a)) + (a)->Size - sizeof(POOL_TAIL)));
1283extern LIST_ENTRY mSmmPoolLists[SmmPoolTypeMax][MAX_POOL_INDEX];
1315 IN BOOLEAN AddRegion
1344 IN BOOLEAN AddRegion
PROTOCOL_INTERFACE * SmmFindProtocolInterface(IN IHANDLE *Handle, IN EFI_GUID *Protocol, IN VOID *Interface)
VOID CoreFreeMemoryMapStack(VOID)
EFI_STATUS EFIAPI SmmInstallConfigurationTable(IN CONST EFI_SMM_SYSTEM_TABLE2 *SystemTable, IN CONST EFI_GUID *Guid, IN VOID *Table, IN UINTN TableSize)
VOID SmramProfileReadyToLock(VOID)
VOID SmmDisplayDiscoveredNotDispatched(VOID)
EFI_STATUS EFIAPI SmmFreePages(IN EFI_PHYSICAL_ADDRESS Memory, IN UINTN NumberOfPages)
EFI_STATUS EFIAPI SmiManage(IN CONST EFI_GUID *HandlerType, IN CONST VOID *Context OPTIONAL, IN OUT VOID *CommBuffer OPTIONAL, IN OUT UINTN *CommBufferSize OPTIONAL)
VOID SmramProfileInstallProtocol(VOID)
EFI_STATUS EFIAPI SmmUninstallProtocolInterface(IN EFI_HANDLE UserHandle, IN EFI_GUID *Protocol, IN VOID *Interface)
VOID SmmCoreInitializeSmiHandlerProfile(VOID)
EFI_STATUS EFIAPI SmmS3SmmInitDoneHandler(IN EFI_HANDLE DispatchHandle, IN CONST VOID *Context OPTIONAL, IN OUT VOID *CommBuffer OPTIONAL, IN OUT UINTN *CommBufferSize OPTIONAL)
EFI_STATUS UnregisterSmramProfileImage(IN EFI_SMM_DRIVER_ENTRY *DriverEntry, IN BOOLEAN UnregisterToDxe)
EFI_STATUS EFIAPI SmmInternalFreePool(IN VOID *Buffer)
EFI_STATUS EFIAPI SmmLocateProtocol(IN EFI_GUID *Protocol, IN VOID *Registration OPTIONAL, OUT VOID **Interface)
UINTN InternalAllocPagesOnOneNode(IN OUT FREE_PAGE_LIST *Pages, IN UINTN NumberOfPages, IN UINTN MaxAddress)
VOID SmmNotifyProtocol(IN PROTOCOL_INTERFACE *Prot)
EFI_STATUS EFIAPI SmmHandleProtocol(IN EFI_HANDLE UserHandle, IN EFI_GUID *Protocol, OUT VOID **Interface)
EFI_STATUS SmmInternalFreePagesEx(IN EFI_PHYSICAL_ADDRESS Memory, IN UINTN NumberOfPages, IN BOOLEAN AddRegion)
EFI_STATUS EFIAPI SmiHandlerUnRegister(IN EFI_HANDLE DispatchHandle)
VOID ConvertSmmMemoryMapEntry(IN EFI_MEMORY_TYPE Type, IN EFI_PHYSICAL_ADDRESS Memory, IN UINTN NumberOfPages, IN BOOLEAN AddRegion)
EFI_STATUS EFIAPI SmmInternalAllocatePool(IN EFI_MEMORY_TYPE PoolType, IN UINTN Size, OUT VOID **Buffer)
EFI_STATUS EFIAPI SmmFreePool(IN VOID *Buffer)
EFI_STATUS EFIAPI SmiHandlerProfileRegisterHandler(IN SMI_HANDLER_PROFILE_PROTOCOL *This, IN EFI_GUID *HandlerGuid, IN EFI_SMM_HANDLER_ENTRY_POINT2 Handler, IN PHYSICAL_ADDRESS CallerAddress, IN VOID *Context OPTIONAL, IN UINTN ContextSize OPTIONAL)
EFI_STATUS EFIAPI SmmAllocatePool(IN EFI_MEMORY_TYPE PoolType, IN UINTN Size, OUT VOID **Buffer)
EFI_STATUS EFIAPI SmmInstallProtocolInterface(IN OUT EFI_HANDLE *UserHandle, IN EFI_GUID *Protocol, IN EFI_INTERFACE_TYPE InterfaceType, IN VOID *Interface)
EFI_STATUS SmmInstallProtocolInterfaceNotify(IN OUT EFI_HANDLE *UserHandle, IN EFI_GUID *Protocol, IN EFI_INTERFACE_TYPE InterfaceType, IN VOID *Interface, IN BOOLEAN Notify)
VOID RegisterSmramProfileHandler(VOID)
EFI_STATUS EFIAPI SmmInternalAllocatePages(IN EFI_ALLOCATE_TYPE Type, IN EFI_MEMORY_TYPE MemoryType, IN UINTN NumberOfPages, OUT EFI_PHYSICAL_ADDRESS *Memory, IN BOOLEAN NeedGuard)
EFI_STATUS EFIAPI SmmAllocatePages(IN EFI_ALLOCATE_TYPE Type, IN EFI_MEMORY_TYPE MemoryType, IN UINTN NumberOfPages, OUT EFI_PHYSICAL_ADDRESS *Memory)
EFI_STATUS EFIAPI SmmEndOfS3ResumeHandler(IN EFI_HANDLE DispatchHandle, IN CONST VOID *Context OPTIONAL, IN OUT VOID *CommBuffer OPTIONAL, IN OUT UINTN *CommBufferSize OPTIONAL)
PROTOCOL_INTERFACE * SmmRemoveInterfaceFromProtocol(IN IHANDLE *Handle, IN EFI_GUID *Protocol, IN VOID *Interface)
EFI_STATUS EFIAPI SmmLocateHandle(IN EFI_LOCATE_SEARCH_TYPE SearchType, IN EFI_GUID *Protocol OPTIONAL, IN VOID *SearchKey OPTIONAL, IN OUT UINTN *BufferSize, OUT EFI_HANDLE *Buffer)
EFI_STATUS EFIAPI SmmReadyToLockHandler(IN EFI_HANDLE DispatchHandle, IN CONST VOID *Context OPTIONAL, IN OUT VOID *CommBuffer OPTIONAL, IN OUT UINTN *CommBufferSize OPTIONAL)
EFI_STATUS EFIAPI SmmEfiNotAvailableYetArg5(UINTN Arg1, UINTN Arg2, UINTN Arg3, UINTN Arg4, UINTN Arg5)
EFI_STATUS EFIAPI SmmLocateHandleBuffer(IN EFI_LOCATE_SEARCH_TYPE SearchType, IN EFI_GUID *Protocol OPTIONAL, IN VOID *SearchKey OPTIONAL, IN OUT UINTN *NumberHandles, OUT EFI_HANDLE **Buffer)
EFI_STATUS EFIAPI SmmInternalFreePages(IN EFI_PHYSICAL_ADDRESS Memory, IN UINTN NumberOfPages, IN BOOLEAN IsGuarded)
BOOLEAN SmmIsSchedulable(IN EFI_SMM_DRIVER_ENTRY *DriverEntry)
VOID SmramProfileInit(VOID)
VOID SmmAddMemoryRegion(IN EFI_PHYSICAL_ADDRESS MemBase, IN UINT64 MemLength, IN EFI_MEMORY_TYPE Type, IN UINT64 Attributes)
VOID EFIAPI SmmCoreInitializeMemoryAttributesTable(VOID)
EFI_STATUS EFIAPI SmmDriverDispatchHandler(IN EFI_HANDLE DispatchHandle, IN CONST VOID *Context OPTIONAL, IN OUT VOID *CommBuffer OPTIONAL, IN OUT UINTN *CommBufferSize OPTIONAL)
EFI_STATUS EFIAPI SmiHandlerProfileUnregisterHandler(IN SMI_HANDLER_PROFILE_PROTOCOL *This, IN EFI_GUID *HandlerGuid, IN EFI_SMM_HANDLER_ENTRY_POINT2 Handler, IN VOID *Context OPTIONAL, IN UINTN ContextSize OPTIONAL)
EFI_STATUS EFIAPI SmiHandlerRegister(IN EFI_SMM_HANDLER_ENTRY_POINT2 Handler, IN CONST EFI_GUID *HandlerType OPTIONAL, OUT EFI_HANDLE *DispatchHandle)
PROTOCOL_ENTRY * SmmFindProtocolEntry(IN EFI_GUID *Protocol, IN BOOLEAN Create)
EFI_STATUS EFIAPI SmmCoreUpdateProfile(IN PHYSICAL_ADDRESS CallerAddress, IN MEMORY_PROFILE_ACTION Action, IN EFI_MEMORY_TYPE MemoryType, IN UINTN Size, IN VOID *Buffer, IN CHAR8 *ActionString OPTIONAL)
VOID SmmEntryPointMemoryManagementHook(VOID)
EFI_STATUS EFIAPI SmmEndOfDxeHandler(IN EFI_HANDLE DispatchHandle, IN CONST VOID *Context OPTIONAL, IN OUT VOID *CommBuffer OPTIONAL, IN OUT UINTN *CommBufferSize OPTIONAL)
EFI_STATUS EFIAPI SmmExitBootServicesHandler(IN EFI_HANDLE DispatchHandle, IN CONST VOID *Context OPTIONAL, IN OUT VOID *CommBuffer OPTIONAL, IN OUT UINTN *CommBufferSize OPTIONAL)
EFI_STATUS EFIAPI SmmReadyToBootHandler(IN EFI_HANDLE DispatchHandle, IN CONST VOID *Context OPTIONAL, IN OUT VOID *CommBuffer OPTIONAL, IN OUT UINTN *CommBufferSize OPTIONAL)
EFI_STATUS EFIAPI SmmLegacyBootHandler(IN EFI_HANDLE DispatchHandle, IN CONST VOID *Context OPTIONAL, IN OUT VOID *CommBuffer OPTIONAL, IN OUT UINTN *CommBufferSize OPTIONAL)
EFI_STATUS EFIAPI SmmRegisterProtocolNotify(IN CONST EFI_GUID *Protocol, IN EFI_SMM_NOTIFY_FN Function, OUT VOID **Registration)
VOID SmmInitializeMemoryServices(IN UINTN SmramRangeCount, IN EFI_SMRAM_DESCRIPTOR *SmramRanges)
EFI_STATUS EFIAPI SmmCoreGetMemoryMap(IN OUT UINTN *MemoryMapSize, IN OUT EFI_MEMORY_DESCRIPTOR *MemoryMap, OUT UINTN *MapKey, OUT UINTN *DescriptorSize, OUT UINT32 *DescriptorVersion)
EFI_STATUS RegisterSmramProfileImage(IN EFI_SMM_DRIVER_ENTRY *DriverEntry, IN BOOLEAN RegisterToDxe)
EFI_STATUS EFIAPI DriverEntry(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
UINT64 EFI_PHYSICAL_ADDRESS
EFI_SMM_NOTIFY_FN Function
Notification function.