Code Scrub for Pcd, PlatformDriOverride and PlatOverMngr driver.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6998 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
lgao4
2008-12-11 09:30:13 +00:00
parent c84507ab52
commit cebc8d486e
13 changed files with 214 additions and 63 deletions

View File

@@ -336,7 +336,7 @@ GetComponentName (
**/
CHAR16 *
GetImageName (
EFI_LOADED_IMAGE_PROTOCOL *Image
IN EFI_LOADED_IMAGE_PROTOCOL *Image
)
{
EFI_STATUS Status;
@@ -347,9 +347,9 @@ GetImageName (
UINTN BufferSize;
UINT32 AuthenticationStatus;
EFI_GUID *NameGuid;
EFI_FIRMWARE_VOLUME2_PROTOCOL *FV2;
EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv2;
FV2 = NULL;
Fv2 = NULL;
Buffer = NULL;
BufferSize = 0;
@@ -378,11 +378,11 @@ GetImageName (
Status = gBS->HandleProtocol (
Image->DeviceHandle,
&gEfiFirmwareVolume2ProtocolGuid,
(VOID **) &FV2
(VOID **) &Fv2
);
if (!EFI_ERROR (Status)) {
Status = FV2->ReadSection (
FV2,
Status = Fv2->ReadSection (
Fv2,
&FvFilePath->FvFileName,
EFI_SECTION_USER_INTERFACE,
0,
@@ -1158,12 +1158,12 @@ PlatOverMngrExtractConfig (
/**
This function processes the results of changes in configuration.
@param This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
@param Request A null-terminated Unicode string in <ConfigRequest> format.
@param Progress A pointer to a string filled in with the offset of the most
recent '&' before the first failing name/value pair (or the
beginning of the string if the failure is in the first
name/value pair) or the terminating NULL if all was successful.
@param This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
@param Configuration A null-terminated Unicode string in <ConfigRequest> format.
@param Progress A pointer to a string filled in with the offset of the most
recent '&' before the first failing name/value pair (or the
beginning of the string if the failure is in the first
name/value pair) or the terminating NULL if all was successful.
@retval EFI_SUCCESS The Results is processed successfully.
@retval EFI_INVALID_PARAMETER Configuration is NULL.

View File

@@ -134,15 +134,51 @@ typedef struct {
EFI_STRING_ID DescriptionToken;
} CFG_PROTOCOL_INVOKER_CHOICE;
/**
This function allows a caller to extract the current configuration for one
or more named elements from the target driver.
@param This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
@param Request A null-terminated Unicode string in <ConfigRequest> format.
@param Progress On return, points to a character in the Request string.
Points to the string's null terminator if request was successful.
Points to the most recent '&' before the first failing name/value
pair (or the beginning of the string if the failure is in the
first name/value pair) if the request was not successful.
@param Results A null-terminated Unicode string in <ConfigAltResp> format which
has all values filled in for the names in the Request string.
String to be allocated by the called function.
@retval EFI_SUCCESS The Results is filled with the requested values.
@retval EFI_OUT_OF_RESOURCES Not enough memory to store the results.
@retval EFI_INVALID_PARAMETER Request is NULL, illegal syntax, or unknown name.
@retval EFI_NOT_FOUND Routing data doesn't match any storage in this driver.
**/
EFI_STATUS
EFIAPI
PlatOverMngrExtractConfig (
IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
IN CONST EFI_STRING Request,
OUT EFI_STRING *Progress,
OUT EFI_STRING *Results
);
/**
This function processes the results of changes in configuration.
@param This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
@param Configuration A null-terminated Unicode string in <ConfigRequest> format.
@param Progress A pointer to a string filled in with the offset of the most
recent '&' before the first failing name/value pair (or the
beginning of the string if the failure is in the first
name/value pair) or the terminating NULL if all was successful.
@retval EFI_SUCCESS The Results is processed successfully.
@retval EFI_INVALID_PARAMETER Configuration is NULL.
@retval EFI_NOT_FOUND Routing data doesn't match any storage in this driver.
**/
EFI_STATUS
EFIAPI
PlatOverMngrRouteConfig (
@@ -151,6 +187,27 @@ PlatOverMngrRouteConfig (
OUT EFI_STRING *Progress
);
/**
This is the function that is called to provide results data to the driver. This data
consists of a unique key which is used to identify what data is either being passed back
or being asked for.
@param This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
@param Action A null-terminated Unicode string in <ConfigRequest> format.
@param KeyValue A unique Goto OpCode callback value which record user's selection.
0x100 <= KeyValue <0x500 : user select a controller item in the first page;
KeyValue == 0x1234 : user select 'Refresh' in first page, or user select 'Go to Previous Menu' in second page
KeyValue == 0x1235 : user select 'Pci device filter' in first page
KeyValue == 0x1500 : user select 'order ... priority' item in second page
KeyValue == 0x1800 : user select 'commint changes' in third page
KeyValue == 0x2000 : user select 'Go to Previous Menu' in third page
@param Type The type of value for the question.
@param Value A pointer to the data being sent to the original exporting driver.
@param ActionRequest On return, points to the action requested by the callback function.
@retval EFI_SUCCESS Always returned.
**/
EFI_STATUS
EFIAPI
PlatOverMngrCallback (
@@ -162,14 +219,32 @@ PlatOverMngrCallback (
OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
);
/**
Get the image name
@param Image Image to search.
@retval !NULL Pointer into the image name if the image name is found,
@retval NULL Pointer to NULL if the image name is not found.
**/
CHAR16 *
GetImageName (
IN EFI_LOADED_IMAGE_PROTOCOL *Image
IN EFI_LOADED_IMAGE_PROTOCOL *Image
);
CHAR16 *
/**
Get the description string by device path.
@param DevPath The input device path.
@retval !NULL The description string retured.
@retval NULL The description string cannot be found.
**/
CHAR16 *
DevicePathToStr (
EFI_DEVICE_PATH_PROTOCOL *DevPath
IN EFI_DEVICE_PATH_PROTOCOL *DevPath
);
#endif

View File

@@ -31,25 +31,23 @@ LIST_ENTRY mMappingDataBase = INITIALIZE_LIST_HEAD_VARIABLE (mMappingDataBa
BOOLEAN mEnvironmentVariableRead = FALSE;
EFI_HANDLE mCallerImageHandle;
/**
Platform Driver Override driver entry point, install the Platform Driver Override Protocol
@param ImageHandle ImageHandle of the loaded driver.
@param SystemTable Pointer to the EFI System Table.
@retval EFI_SUCCESS The DXE Driver, DXE Runtime Driver, DXE SMM Driver,
or UEFI Driver exited normally.
@retval EFI_INCOMPATIBLE_VERSION _gUefiDriverRevision is greater than SystemTable->Hdr.Revision.
@retval Other Return value from ProcessModuleEntryPointList().
**/
EFI_STATUS
EFIAPI
PlatformDriverOverrideEntry (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
)
/*++
Routine Description:
Platform Driver Override driver entry point, install the Platform Driver Override Protocol
Arguments:
(Standard EFI Image entry - EFI_IMAGE_ENTRY_POINT)
Returns:
EFI_STATUS
--*/
{
mEnvironmentVariableRead = FALSE;
mCallerImageHandle = ImageHandle;
@@ -145,11 +143,16 @@ GetDriver (
/**
For the use of the ControllerHandle parameter in the GetDriverPath() and DriverLoaded() APIs
makes those APIs very difficult to use, so not support.
For the use of the ControllerHandle parameter in the GetDriverPath()
But this API is very difficult to use, so not support.
@param This A pointer to the
EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL instance.
@param ControllerHandle The device handle of the controller to check if a
driver override exists.
@param DriverImagePath The device path for this Image.
@retval EFI_UNSUPPORTED
**/
EFI_STATUS
EFIAPI
@@ -164,11 +167,21 @@ GetDriverPath (
/**
For the use of the ControllerHandle parameter in the GetDriverPath() and DriverLoaded() APIs
makes those APIs very difficult to use, so not support.
For the use of the ControllerHandle parameter in the DriverLoaded()
But this API is very difficult to use, so not support.
@param This A pointer to the
EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL instance.
@param ControllerHandle The device handle of the controller to check if a
driver override exists.
@param DriverImagePath The device path for this Image.
@param DriverImageHandle On input, a pointer to the previous driver image
handle returned by GetDriver(). On output, a
pointer to the next driver image handle. Passing
in a NULL, will return the first driver image
handle for ControllerHandle.
@retval EFI_UNSUPPORTED
**/
EFI_STATUS
EFIAPI

View File

@@ -18,8 +18,8 @@ Abstract:
**/
#ifndef PLATFORM_DRI_OVERRIDE_H_
#define PLATFORM_DRI_OVERRIDE_H_
#ifndef _PLATFORM_DRI_OVERRIDE_H_
#define _PLATFORM_DRI_OVERRIDE_H_
#include <Uefi.h>
@@ -28,6 +28,29 @@ Abstract:
#include <Library/BaseLib.h>
#include <Library/PlatDriOverLib.h>
/**
Retrieves the image handle of the platform override driver for a controller in the system.
@param This A pointer to the
EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL instance.
@param ControllerHandle The device handle of the controller to check if a
driver override exists.
@param DriverImageHandle On input, a pointer to the previous driver image
handle returned by GetDriver(). On output, a
pointer to the next driver image handle. Passing
in a NULL, will return the first driver image
handle for ControllerHandle.
@retval EFI_SUCCESS The driver override for ControllerHandle was
returned in DriverImageHandle.
@retval EFI_NOT_FOUND A driver override for ControllerHandle was not
found.
@retval EFI_INVALID_PARAMETER The handle specified by ControllerHandle is not a
valid handle. DriverImageHandle is not a handle
that was returned on a previous call to
GetDriver().
**/
EFI_STATUS
EFIAPI
GetDriver (
@@ -36,6 +59,18 @@ GetDriver (
IN OUT EFI_HANDLE * DriverImageHandle
);
/**
For the use of the ControllerHandle parameter in the GetDriverPath()
But this API is very difficult to use, so not support.
@param This A pointer to the
EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL instance.
@param ControllerHandle The device handle of the controller to check if a
driver override exists.
@param DriverImagePath The device path for this Image.
@retval EFI_UNSUPPORTED
**/
EFI_STATUS
EFIAPI
GetDriverPath (
@@ -44,6 +79,23 @@ GetDriverPath (
IN OUT EFI_DEVICE_PATH_PROTOCOL **DriverImagePath
);
/**
For the use of the ControllerHandle parameter in the DriverLoaded()
But this API is very difficult to use, so not support.
@param This A pointer to the
EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL instance.
@param ControllerHandle The device handle of the controller to check if a
driver override exists.
@param DriverImagePath The device path for this Image.
@param DriverImageHandle On input, a pointer to the previous driver image
handle returned by GetDriver(). On output, a
pointer to the next driver image handle. Passing
in a NULL, will return the first driver image
handle for ControllerHandle.
@retval EFI_UNSUPPORTED
**/
EFI_STATUS
EFIAPI
DriverLoaded (