TianoCore EDK2 master
|
Go to the source code of this file.
Data Structures | |
struct | _EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL |
struct | EFI_CONFIGURE_CLP_PARAMETER_BLK |
Macros | |
#define | EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL_GUID { 0x642cd590, 0x8059, 0x4c0a, { 0xa9, 0x58, 0xc5, 0xec, 0x7, 0xd2, 0x3c, 0x4b } } |
#define | EFI_PLATFORM_TO_DRIVER_CONFIGURATION_CLP_GUID {0x345ecc0e, 0xcb6, 0x4b75, { 0xbb, 0x57, 0x1b, 0x12, 0x9c, 0x47, 0x33,0x3e } } |
Typedefs | |
typedef struct _EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL | EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL |
typedef EFI_STATUS(EFIAPI * | EFI_PLATFORM_TO_DRIVER_CONFIGURATION_QUERY) (IN CONST EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL *This, IN CONST EFI_HANDLE ControllerHandle, IN CONST EFI_HANDLE ChildHandle OPTIONAL, IN CONST UINTN *Instance, OUT EFI_GUID **ParameterTypeGuid, OUT VOID **ParameterBlock, OUT UINTN *ParameterBlockSize) |
typedef EFI_STATUS(EFIAPI * | EFI_PLATFORM_TO_DRIVER_CONFIGURATION_RESPONSE) (IN CONST EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL *This, IN CONST EFI_HANDLE ControllerHandle, IN CONST EFI_HANDLE ChildHandle OPTIONAL, IN CONST UINTN *Instance, IN CONST EFI_GUID *ParameterTypeGuid, IN CONST VOID *ParameterBlock, IN CONST UINTN ParameterBlockSize, IN CONST EFI_PLATFORM_CONFIGURATION_ACTION ConfigurationAction) |
Enumerations | |
enum | EFI_PLATFORM_CONFIGURATION_ACTION { EfiPlatformConfigurationActionNone = 0 , EfiPlatformConfigurationActionStopController = 1 , EfiPlatformConfigurationActionRestartController = 2 , EfiPlatformConfigurationActionRestartPlatform = 3 , EfiPlatformConfigurationActionNvramFailed = 4 , EfiPlatformConfigurationActionUnsupportedGuid = 5 , EfiPlatformConfigurationActionMaximum } |
Variables | |
EFI_GUID | gEfiPlatformToDriverConfigurationClpGuid |
EFI_GUID | gEfiPlatformToDriverConfigurationProtocolGuid |
UEFI Platform to Driver Configuration Protocol is defined in UEFI specification.
This is a protocol that is optionally produced by the platform and optionally consumed by a UEFI Driver in its Start() function. This protocol allows the driver to receive configuration information as part of being started.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file PlatformToDriverConfiguration.h.
#define EFI_PLATFORM_TO_DRIVER_CONFIGURATION_CLP_GUID {0x345ecc0e, 0xcb6, 0x4b75, { 0xbb, 0x57, 0x1b, 0x12, 0x9c, 0x47, 0x33,0x3e } } |
Definition at line 285 of file PlatformToDriverConfiguration.h.
#define EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL_GUID { 0x642cd590, 0x8059, 0x4c0a, { 0xa9, 0x58, 0xc5, 0xec, 0x7, 0xd2, 0x3c, 0x4b } } |
Definition at line 16 of file PlatformToDriverConfiguration.h.
typedef struct _EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL |
Definition at line 19 of file PlatformToDriverConfiguration.h.
typedef EFI_STATUS(EFIAPI * EFI_PLATFORM_TO_DRIVER_CONFIGURATION_QUERY) (IN CONST EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL *This, IN CONST EFI_HANDLE ControllerHandle, IN CONST EFI_HANDLE ChildHandle OPTIONAL, IN CONST UINTN *Instance, OUT EFI_GUID **ParameterTypeGuid, OUT VOID **ParameterBlock, OUT UINTN *ParameterBlockSize) |
The UEFI driver must call Query early in the Start() function before any time consuming operations are performed. If ChildHandle is NULL the driver is requesting information from the platform about the ControllerHandle that is being started. Information returned from Query may lead to the drivers Start() function failing. If the UEFI driver is a bus driver and producing a ChildHandle, the driver must call Query after the child handle has been created and an EFI_DEVICE_PATH_PROTOCOL has been placed on that handle, but before any time consuming operation is performed. If information return by Query may lead the driver to decide to not create the ChildHandle. The driver must then cleanup and remove the ChildHandle from the system. The UEFI driver repeatedly calls Query, processes the information returned by the platform, and calls Response passing in the arguments returned from Query. The Instance value passed into Response must be the same value passed into the corresponding call to Query. The UEFI driver must continuously call Query and Response until EFI_NOT_FOUND is returned by Query. If the UEFI driver does not recognize the ParameterTypeGuid, it calls Response with a ConfigurationAction of EfiPlatformConfigurationActionUnsupportedGuid. The UEFI driver must then continue calling Query and Response until EFI_NOT_FOUND is returned by Query. This gives the platform an opportunity to pass additional configuration settings using a different ParameterTypeGuid that may be supported by the driver. An Instance value of zero means return the first ParameterBlock in the set of unprocessed parameter blocks. The driver should increment the Instance value by one for each successive call to Query.
This | A pointer to the EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL instance. |
ControllerHandle | The handle the platform will return configuration information about. |
ChildHandle | The handle of the child controller to return information on. This is an optional parameter that may be NULL. It will be NULL for device drivers and for bus drivers that attempt to get options for the bus controller. It will not be NULL for a bus driver that attempts to get options for one of its child controllers. |
Instance | Pointer to the Instance value. Zero means return the first query data. The caller should increment this value by one each time to retrieve successive data. |
ParameterTypeGuid | An EFI_GUID that defines the contents of ParameterBlock. UEFI drivers must use the ParameterTypeGuid to determine how to parse the ParameterBlock. The caller should not attempt to free ParameterTypeGuid. |
ParameterBlock | The platform returns a pointer to the ParameterBlock structure which contains details about the configuration parameters specific to the ParameterTypeGuid. This structure is defined based on the protocol and may be different for different protocols. UEFI driver decodes this structure and its contents based on ParameterTypeGuid. ParameterBlock is allocated by the platform and the platform is responsible for freeing the ParameterBlock after Result is called. |
ParameterBlockSize | The platform returns the size of the ParameterBlock in bytes. |
EFI_SUCCESS | The platform return parameter information for ControllerHandle. |
EFI_NOT_FOUND | No more unread Instance exists. |
EFI_INVALID_PARAMETER | ControllerHandle is NULL. |
EFI_INVALID_PARAMETER | Instance is NULL. |
EFI_DEVICE_ERROR | A device error occurred while attempting to return parameter block information for the controller specified by ControllerHandle and ChildHandle. |
EFI_OUT_RESOURCES | There are not enough resources available to set the configuration options for the controller specified by ControllerHandle and ChildHandle. |
Definition at line 120 of file PlatformToDriverConfiguration.h.
typedef EFI_STATUS(EFIAPI * EFI_PLATFORM_TO_DRIVER_CONFIGURATION_RESPONSE) (IN CONST EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL *This, IN CONST EFI_HANDLE ControllerHandle, IN CONST EFI_HANDLE ChildHandle OPTIONAL, IN CONST UINTN *Instance, IN CONST EFI_GUID *ParameterTypeGuid, IN CONST VOID *ParameterBlock, IN CONST UINTN ParameterBlockSize, IN CONST EFI_PLATFORM_CONFIGURATION_ACTION ConfigurationAction) |
The UEFI driver repeatedly calls Query, processes the information returned by the platform, and calls Response passing in the arguments returned from Query. The UEFI driver must continuously call Query until EFI_NOT_FOUND is returned. For every call to Query that returns EFI_SUCCESS a corrisponding call to Response is required passing in the same ContollerHandle, ChildHandle, Instance, ParameterTypeGuid, ParameterBlock, and ParameterBlockSize. The UEFI driver may update values in ParameterBlock based on rules defined by ParameterTypeGuid. The platform is responsible for freeing ParameterBlock and the UEFI driver must not try to free it.
This | A pointer to the EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL instance. |
ControllerHandle | The handle the driver is returning configuration information about. |
ChildHandle | The handle of the child controller to return information on. This is an optional parameter that may be NULL. It will be NULL for device drivers, and for bus drivers that attempt to get options for the bus controller. It will not be NULL for a bus driver that attempts to get options for one of its child controllers. Instance Instance data returned from Query(). |
Instance | Instance data passed to Query(). |
ParameterTypeGuid | ParameterTypeGuid returned from Query. |
ParameterBlock | ParameterBlock returned from Query. |
ParameterBlockSize | The ParameterBlock size returned from Query. |
ConfigurationAction | The driver tells the platform what action is required for ParameterBlock to take effect. |
EFI_SUCCESS | The platform return parameter information for ControllerHandle. |
EFI_NOT_FOUND | Instance was not found. |
EFI_INVALID_PARAMETER | ControllerHandle is NULL. |
EFI_INVALID_PARAMETER | Instance is zero. |
Definition at line 256 of file PlatformToDriverConfiguration.h.
Enumerator | |
---|---|
EfiPlatformConfigurationActionNone | The controller specified by ControllerHandle is still in a usable state, and its configuration has been updated via parsing the ParameterBlock. If required by the parameter block, and the module supports an NVRAM store, the configuration information from PB was successfully saved to the NVRAM. No actions are required before this controller can be used again with the updated configuration settings. |
EfiPlatformConfigurationActionStopController | The driver has detected that the controller specified by ControllerHandle is not in a usable state and needs to be stopped. The calling agent can use the DisconnectControservice to perform this operation, and it should be performed as soon as possible. |
EfiPlatformConfigurationActionRestartController | This controller specified by ControllerHandle needs to be stopped and restarted before it can be used again. The calling agent can use the DisconnectController() and ConnectController() services to perform this operation. The restart operation can be delayed until all of the configuration options have been set. |
EfiPlatformConfigurationActionRestartPlatform | A configuration change has been made that requires the platform to be restarted before the controller specified by ControllerHandle can be used again. The calling agent can use the ResetSystem() services to perform this operation. The restart operation can be delayed until all of the configuration options have been set. |
EfiPlatformConfigurationActionNvramFailed | The controller specified by ControllerHandle is still in a usable state; its configuration has been updated via parsing the ParameterBlock. The driver tried to update the driver's private NVRAM store with information from ParameterBlock and failed. No actions are required before this controller can be used again with the updated configuration settings, but these configuration settings are not guaranteed to persist after ControllerHandle is stopped. |
EfiPlatformConfigurationActionUnsupportedGuid | The controller specified by ControllerHandle is still in a usable state; its configuration has not been updated via parsing the ParameterBlock. The driver did not support the ParameterBlock format identified by ParameterTypeGuid. No actions are required before this controller can be used again. On additional Query calls from this ControllerHandle, the platform should stop returning a ParameterBlock qualified by this same ParameterTypeGuid. If no other ParameterTypeGuid is supported by the platform, Query should return EFI_NOT_FOUND. |
Definition at line 131 of file PlatformToDriverConfiguration.h.