|
TianoCore EDK2 master
|
#include "PiSmmCore.h"Go to the source code of this file.
Functions | |
| EFI_STATUS | SmmValidateHandle (IN EFI_HANDLE UserHandle) |
| PROTOCOL_ENTRY * | SmmFindProtocolEntry (IN EFI_GUID *Protocol, IN BOOLEAN Create) |
| PROTOCOL_INTERFACE * | SmmFindProtocolInterface (IN IHANDLE *Handle, IN EFI_GUID *Protocol, IN VOID *Interface) |
| 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) |
| EFI_STATUS EFIAPI | SmmUninstallProtocolInterface (IN EFI_HANDLE UserHandle, IN EFI_GUID *Protocol, IN VOID *Interface) |
| PROTOCOL_INTERFACE * | SmmGetProtocolInterface (IN EFI_HANDLE UserHandle, IN EFI_GUID *Protocol) |
| EFI_STATUS EFIAPI | SmmHandleProtocol (IN EFI_HANDLE UserHandle, IN EFI_GUID *Protocol, OUT VOID **Interface) |
Variables | |
| LIST_ENTRY | mProtocolDatabase = INITIALIZE_LIST_HEAD_VARIABLE (mProtocolDatabase) |
| LIST_ENTRY | gHandleList = INITIALIZE_LIST_HEAD_VARIABLE (gHandleList) |
SMM handle & protocol handling.
Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file Handle.c.
| PROTOCOL_ENTRY * SmmFindProtocolEntry | ( | IN EFI_GUID * | Protocol, |
| IN BOOLEAN | Create | ||
| ) |
| PROTOCOL_INTERFACE * SmmFindProtocolInterface | ( | IN IHANDLE * | Handle, |
| IN EFI_GUID * | Protocol, | ||
| IN VOID * | Interface | ||
| ) |
Finds the protocol instance for the requested handle and protocol. Note: This function doesn't do parameters checking, it's caller's responsibility to pass in valid parameters.
| Handle | The handle to search the protocol on |
| Protocol | GUID of the protocol |
| Interface | The interface for the protocol being searched |
| PROTOCOL_INTERFACE * SmmGetProtocolInterface | ( | IN EFI_HANDLE | UserHandle, |
| IN EFI_GUID * | Protocol | ||
| ) |
| EFI_STATUS EFIAPI SmmHandleProtocol | ( | IN EFI_HANDLE | UserHandle, |
| IN EFI_GUID * | Protocol, | ||
| OUT VOID ** | Interface | ||
| ) |
Queries a handle to determine if it supports a specified protocol.
| UserHandle | The handle being queried. |
| Protocol | The published unique identifier of the protocol. |
| Interface | Supplies the address where a pointer to the corresponding Protocol Interface is returned. |
| EFI_SUCCESS | The interface information for the specified protocol was returned. |
| EFI_UNSUPPORTED | The device does not support the specified protocol. |
| EFI_INVALID_PARAMETER | Handle is not a valid EFI_HANDLE.. |
| EFI_INVALID_PARAMETER | Protocol is NULL. |
| EFI_INVALID_PARAMETER | Interface is NULL. |
| EFI_STATUS EFIAPI SmmInstallProtocolInterface | ( | IN OUT EFI_HANDLE * | UserHandle, |
| IN EFI_GUID * | Protocol, | ||
| IN EFI_INTERFACE_TYPE | InterfaceType, | ||
| IN VOID * | Interface | ||
| ) |
Wrapper function to SmmInstallProtocolInterfaceNotify. This is the public API which Calls the private one which contains a BOOLEAN parameter for notifications
| UserHandle | The handle to install the protocol handler on, or NULL if a new handle is to be allocated |
| Protocol | The protocol to add to the handle |
| InterfaceType | Indicates whether Interface is supplied in native form. |
| Interface | The interface for the protocol being added |
| EFI_STATUS SmmInstallProtocolInterfaceNotify | ( | IN OUT EFI_HANDLE * | UserHandle, |
| IN EFI_GUID * | Protocol, | ||
| IN EFI_INTERFACE_TYPE | InterfaceType, | ||
| IN VOID * | Interface, | ||
| IN BOOLEAN | Notify | ||
| ) |
Installs a protocol interface into the boot services environment.
| UserHandle | The handle to install the protocol handler on, or NULL if a new handle is to be allocated |
| Protocol | The protocol to add to the handle |
| InterfaceType | Indicates whether Interface is supplied in native form. |
| Interface | The interface for the protocol being added |
| Notify | indicates whether notify the notification list for this protocol |
| EFI_INVALID_PARAMETER | Invalid parameter |
| EFI_OUT_OF_RESOURCES | No enough buffer to allocate |
| EFI_SUCCESS | Protocol interface successfully installed |
| EFI_STATUS EFIAPI SmmUninstallProtocolInterface | ( | IN EFI_HANDLE | UserHandle, |
| IN EFI_GUID * | Protocol, | ||
| IN VOID * | Interface | ||
| ) |
Uninstalls all instances of a protocol:interfacer from a handle. If the last protocol interface is remove from the handle, the handle is freed.
| UserHandle | The handle to remove the protocol handler from |
| Protocol | The protocol, of protocol:interface, to remove |
| Interface | The interface, of protocol:interface, to remove |
| EFI_INVALID_PARAMETER | Protocol is NULL. |
| EFI_SUCCESS | Protocol interface successfully uninstalled. |
| EFI_STATUS SmmValidateHandle | ( | IN EFI_HANDLE | UserHandle | ) |
| LIST_ENTRY gHandleList = INITIALIZE_LIST_HEAD_VARIABLE (gHandleList) |
| LIST_ENTRY mProtocolDatabase = INITIALIZE_LIST_HEAD_VARIABLE (mProtocolDatabase) |