Add protocol several UEFI 2.1 protocol definitions so that some EDK 1.05 drivers can be built.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5439 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qhuang8 2008-07-09 10:24:16 +00:00
parent eb6d5108af
commit 216cadbbd8
9 changed files with 501 additions and 0 deletions

View File

@ -0,0 +1,30 @@
/*++
Copyright (c) 2008, Intel Corporation
All rights reserved. This program and the accompanying materials
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
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
AuthenticationInfo.c
Abstract:
UEFI Authentication Info Protocol.
Revision History:
--*/
#include "EfiSpec.h"
#include EFI_PROTOCOL_DEFINITION (AuthenticationInfo)
EFI_GUID gEfiAuthenticationInfoProtocolGuid = EFI_AUTHENTICATION_INFO_PROTOCOL_GUID;
EFI_GUID_STRING
(&gEfiAuthenticationInfoProtocolGuid, "Authentication Info Protocol", "UEFI 2.1 Authentication Info Protocol");

View File

@ -0,0 +1,106 @@
/*++
Copyright (c) 2008, Intel Corporation
All rights reserved. This program and the accompanying materials
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
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
PlatformToDriverConfiguration.h
Abstract:
UEFI Authentication Info Protocol.
Revision History:
--*/
#ifndef _EFI_AUTHENTICATION_INFO_H_
#define _EFI_AUTHENTICATION_INFO_H_
//
// Global ID for the Authentication Info Protocol
//
#define EFI_AUTHENTICATION_INFO_PROTOCOL_GUID \
{ \
0x7671d9d0, 0x53db, 0x4173, {0xaa, 0x69, 0x23, 0x27, 0xf2, 0x1f, 0x0b, 0xc7} \
}
EFI_FORWARD_DECLARATION (EFI_AUTHENTICATION_INFO_PROTOCOL);
typedef
EFI_STATUS
(EFIAPI *EFI_AUTHENTICATION_INFO_PROTOCOL_GET) (
IN EFI_AUTHENTICATION_INFO_PROTOCOL *This,
IN EFI_HANDLE *ControllerHandle,
OUT VOID *Buffer
);
/*++
Routine Description:
Retrieves the Authentication information associated with a particular
controller handle.
Arguments:
This - Pointer to the EFI_AUTHENTICATION_INFO_PROTOCOL instance.
ControllerHandle - Handle to the Controller.
Buffer - Pointer to the authentication information. This function
is responsible for allocating the buffer and it is the
caller's responsibility to free buffer when the caller
is finished with buffer.
Returns:
EFI_SUCCESS - Successfully retrieved Authentication information
for the given ControllerHandle.
EFI_NOT_FOUND - No matching Authentication information found for the
given ControllerHandle.
EFI_DEVICE_ERROR - The Authentication information could not be retrieved
due to a hardware error.
--*/
typedef
EFI_STATUS
(EFIAPI *EFI_AUTHENTICATION_INFO_PROTOCOL_SET) (
IN EFI_AUTHENTICATION_INFO_PROTOCOL *This,
IN EFI_HANDLE *ControllerHandle,
IN VOID *Buffer
);
/*++
Routine Description:
Set the Authentication information for a given controller handle.
Arguments:
This - Pointer to the EFI_AUTHENTICATION_INFO_PROTOCOL instance.
ControllerHandle - Handle to the Controller.
Buffer - Pointer to the authentication information.
Returns:
EFI_SUCCESS - Successfully set the Authentication node information
for the given ControllerHandle.
EFI_UNSUPPORTED - If the platform policies do not allow setting of the
Authentication information.
EFI_DEVICE_ERROR - The authentication node information could not be configured
due to a hardware error.
EFI_OUT_OF_RESOURCES - Not enough storage is available to hold the data.
--*/
//
// Interface structure for the Authentication Info Protocol
//
typedef struct _EFI_AUTHENTICATION_INFO_PROTOCOL {
EFI_AUTHENTICATION_INFO_PROTOCOL_GET Get;
EFI_AUTHENTICATION_INFO_PROTOCOL_SET Set;
} EFI_AUTHENTICATION_INFO_PROTOCOL;
extern EFI_GUID gEfiAuthenticationInfoProtocolGuid;
#endif

View File

@ -0,0 +1,30 @@
/*++
Copyright (c) 2008, Intel Corporation
All rights reserved. This program and the accompanying materials
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
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
DriverSupportedEfiVersion.c
Abstract:
Driver Supported EFI Version Protocol
Revision History:
--*/
#include "EfiSpec.h"
#include EFI_PROTOCOL_DEFINITION (DriverSupportedEfiVersion)
EFI_GUID gEfiDriverSupportedEfiVersionProtocolGuid = EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL_GUID;
EFI_GUID_STRING
(&gEfiDriverSupportedEfiVersionProtocolGuid, "Driver Supported EFI Version Protocol", "UEFI 2.1 Driver Supported EFI Version Protocol");

View File

@ -0,0 +1,47 @@
/*++
Copyright (c) 2008, Intel Corporation
All rights reserved. This program and the accompanying materials
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
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
DriverSupportedEfiVersion.h
Abstract:
Driver Supported EFI Version Protocol
Revision History:
--*/
#ifndef _EFI_DRIVER_SUPPORTED_EFI_VERSION_H_
#define _EFI_DRIVER_SUPPORTED_EFI_VERSION_H_
//
// Global ID for the Driver Supported EFI Version Protocol
//
#define EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL_GUID \
{ \
0x5c198761, 0x16a8, 0x4e69, {0x97, 0x2c, 0x89, 0xd6, 0x79, 0x54, 0xf8, 0x1d} \
}
EFI_FORWARD_DECLARATION (EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL);
//
// Interface structure for the Driver Supported EFI Version Protocol
//
typedef struct _EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL {
UINT32 Length;
UINT32 FirmwareVersion;
} EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL;
extern EFI_GUID gEfiDriverSupportedEfiVersionProtocolGuid;
#endif

View File

@ -43,6 +43,8 @@ COMPONENT_TYPE= LIBRARY
AcpiTable/AcpiTable.c AcpiTable/AcpiTable.c
Arp/Arp.h Arp/Arp.h
Arp/Arp.c Arp/Arp.c
AuthenticationInfo/AuthenticationInfo.h
AuthenticationInfo/AuthenticationInfo.c
Bis/Bis.h Bis/Bis.h
Bis/Bis.c Bis/Bis.c
BlockIo/BlockIo.h BlockIo/BlockIo.h
@ -83,6 +85,8 @@ COMPONENT_TYPE= LIBRARY
DriverDiagnostics/DriverDiagnostics.c DriverDiagnostics/DriverDiagnostics.c
DriverDiagnostics2/DriverDiagnostics2.h DriverDiagnostics2/DriverDiagnostics2.h
DriverDiagnostics2/DriverDiagnostics2.c DriverDiagnostics2/DriverDiagnostics2.c
DriverSupportedEfiVersion/DriverSupportedEfiVersion.h
DriverSupportedEfiVersion/DriverSupportedEfiVersion.c
Ebc/Ebc.h Ebc/Ebc.h
Ebc/Ebc.c Ebc/Ebc.c
EdidActive/EdidActive.h EdidActive/EdidActive.h
@ -121,6 +125,8 @@ COMPONENT_TYPE= LIBRARY
Ip4Config/Ip4Config.c Ip4Config/Ip4Config.c
LoadedImage/LoadedImage.h LoadedImage/LoadedImage.h
LoadedImage/LoadedImage.c LoadedImage/LoadedImage.c
LoadedImageDevicePath\LoadedImageDevicePath.h
LoadedImageDevicePath\LoadedImageDevicePath.c
LoadFile/LoadFile.h LoadFile/LoadFile.h
LoadFile/LoadFile.c LoadFile/LoadFile.c
ManagedNetwork/ManagedNetwork.h ManagedNetwork/ManagedNetwork.h
@ -133,6 +139,8 @@ COMPONENT_TYPE= LIBRARY
PciRootBridgeIo/PciRootBridgeIo.c PciRootBridgeIo/PciRootBridgeIo.c
PlatformDriverOverride/PlatformDriverOverride.h PlatformDriverOverride/PlatformDriverOverride.h
PlatformDriverOverride/PlatformDriverOverride.c PlatformDriverOverride/PlatformDriverOverride.c
PlatformToDriverConfiguration/PlatformToDriverConfiguration.h
PlatformToDriverConfiguration/PlatformToDriverConfiguration.c
PxeBaseCode/PxeBaseCode.h PxeBaseCode/PxeBaseCode.h
PxeBaseCode/PxeBaseCode.c PxeBaseCode/PxeBaseCode.c
PxeBaseCodeCallBack/PxeBaseCodeCallBack.h PxeBaseCodeCallBack/PxeBaseCodeCallBack.h

View File

@ -0,0 +1,32 @@
/*++
Copyright (c) 2008, Intel Corporation
All rights reserved. This program and the accompanying materials
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
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
LoadedImageDevicePath.c
Abstract:
The Loaded Image Device Path Protocol as defined in UEFI 2.1.
When installed, the Loaded Image Device Path Protocol specifies the device
path that was used when a PE/COFF image was loaded through the EFI Boot
Service LoadImage().
--*/
#include "EfiSpec.h"
#include EFI_PROTOCOL_DEFINITION (LoadedImageDevicePath)
EFI_GUID gEfiLoadedImageDevicePathProtocolGuid = EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiLoadedImageDevicePathProtocolGuid, "Loaded Image Device Path Protocol", "UEFI 2.1 Loaded Image Device Path protocol");

View File

@ -0,0 +1,44 @@
/*++
Copyright (c) 2008, Intel Corporation
All rights reserved. This program and the accompanying materials
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
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
LoadedImageDevicePath.h
Abstract:
The Loaded Image Device Path Protocol as defined in UEFI 2.1.
When installed, the Loaded Image Device Path Protocol specifies the device
path that was used when a PE/COFF image was loaded through the EFI Boot
Service LoadImage().
--*/
#ifndef _LOADED_IMAGE_DEVICE_PATH_H_
#define _LOADED_IMAGE_DEVICE_PATH_H_
#include EFI_PROTOCOL_DEFINITION (DevicePath)
//
// Loaded Image Device Path protocol
//
#define EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL_GUID \
{ \
0xbc62157e, 0x3e33, 0x4fec, {0x99, 0x20, 0x2d, 0x3b, 0x36, 0xd7, 0x50, 0xdf} \
}
typedef EFI_DEVICE_PATH_PROTOCOL EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL;
extern EFI_GUID gEfiLoadedImageDevicePathProtocolGuid;
#endif

View File

@ -0,0 +1,31 @@
/*++
Copyright (c) 2008, Intel Corporation
All rights reserved. This program and the accompanying materials
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
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
PlatformToDriverConfiguration.c
Abstract:
UEFI Platform to Driver Configuration Protocol
Revision History:
--*/
#include "EfiSpec.h"
#include EFI_PROTOCOL_DEFINITION (PlatformToDriverConfiguration)
EFI_GUID gEfiPlatformToDriverConfigurationProtocolGuid = EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL_GUID;
EFI_GUID gEfiPlatformToDriverConfigurationClpGuid = EFI_PLATFORM_TO_DRIVER_CONFIGURATION_CLP_GUID;
EFI_GUID_STRING
(&gEfiPlatformToDriverConfigurationProtocolGuid, "Platform to Driver Configuration Protocol", "UEFI 2.1 Platform to Driver Configuration Protocol");

View File

@ -0,0 +1,173 @@
/*++
Copyright (c) 2008, Intel Corporation
All rights reserved. This program and the accompanying materials
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
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
PlatformToDriverConfiguration.h
Abstract:
UEFI Platform to Driver Configuration Protocol
Revision History:
--*/
#ifndef _EFI_PLATFORM_TO_DRIVER_CONFIGURATION_H_
#define _EFI_PLATFORM_TO_DRIVER_CONFIGURATION_H_
//
// Global ID for the Platform to Driver Configuration Protocol
//
#define EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL_GUID \
{ \
0x642cd590, 0x8059, 0x4c0a, {0xa9, 0x58, 0xc5, 0xec, 0x07, 0xd2, 0x3c, 0x4b} \
}
#define EFI_PLATFORM_TO_DRIVER_CONFIGURATION_CLP_GUID \
{ \
0x345ecc0e, 0x0cb6, 0x4b75, {0xbb, 0x57, 0x1b, 0x12, 0x9c, 0x47, 0x33, 0x3e} \
}
EFI_FORWARD_DECLARATION (EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL);
typedef enum {
EfiPlatformConfigurationActionNone = 0,
EfiPlatformConfigurationActionStopController = 1,
EfiPlatformConfigurationActionRestartController = 2,
EfiPlatformConfigurationActionRestartPlatform = 3,
EfiPlatformConfigurationActionNvramFailed = 4,
EfiPlatformConfigurationActionMaximum
} EFI_PLATFORM_CONFIGURATION_ACTION;
typedef struct {
CHAR8 *CLPCommand;
UINT32 CLPCommandLength;
CHAR8 *CLPReturnString;
UINT32 CLPReturnStringLength;
UINT8 CLPCmdStatus;
UINT8 CLPErrorValue;
UINT16 CLPMsgCode;
} EFI_CONFIGURE_CLP_PARAMETER_BLK;
typedef
EFI_STATUS
(EFIAPI *EFI_PLATFORM_TO_DRIVER_CONFIGURATION_QUERY) (
IN EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL *This,
IN EFI_HANDLE ControllerHandle,
IN EFI_HANDLE ChildHandle, OPTIONAL
IN UINTN *Instance,
OUT EFI_GUID **ParameterTypeGuid,
OUT VOID **ParameterBlock,
OUT UINTN *ParameterBlockSize
);
/*++
Routine Description:
Allows the UEFI driver to query the platform for configuration information
needed to complete the drivers Start() operation.
Arguments:
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 set options on.
This is an optional parameter that may be NULL. It will
be NULL for device drivers, and for a bus drivers that
wish to set options for the bus controller. It will not
be NULL for a bus driver that wishes to set 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 ProtocolGuid. ParameterBlock
is allocated by the platform and the platform is responsible
for freeing the ParameterBlock after Response is called.
ParameterBlockSize - The platform returns the size of the ParameterBlock in bytes.
Returns:
EFI_SUCCESS - The platform return parameter information for ControllerHandle.
EFI_NOT_FOUND - No more unread Instance exists.
EFI_INVALID_PARAMETER - ControllerHandle is not a valid EFI_HANDLE.
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.
--*/
typedef
EFI_STATUS
(EFIAPI *EFI_PLATFORM_TO_DRIVER_CONFIGURATION_RESPONSE) (
IN EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL *This,
IN EFI_HANDLE ControllerHandle,
IN EFI_HANDLE ChildHandle OPTIONAL,
IN UINTN *Instance,
IN EFI_GUID *ParameterTypeGuid,
IN VOID *ParameterBlock,
IN UINTN ParameterBlockSize ,
IN EFI_PLATFORM_CONFIGURATION_ACTION ConfigurationAction
);
/*++
Routine Description:
Tell the platform what actions where taken by the driver after processing
the data returned from Query.
Arguments:
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 set options on.
This is an optional parameter that may be NULL. It will
be NULL for device drivers, and for a bus drivers that
wish to set options for the bus controller. It will not
be NULL for a bus driver that wishes to set options for
one of its child controllers.
Instance - Instance data returned from 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.
Returns:
EFI_SUCCESS - The platform return parameter information for ControllerHandle.
EFI_NOT_FOUND - Instance was not found.
EFI_INVALID_PARAMETER - ControllerHandle is not a valid EFI_HANDLE.
EFI_INVALID_PARAMETER - Instance is zero.
--*/
//
// Interface structure for the Platform to Driver Configuration Protocol
//
typedef struct _EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL {
EFI_PLATFORM_TO_DRIVER_CONFIGURATION_QUERY Query;
EFI_PLATFORM_TO_DRIVER_CONFIGURATION_RESPONSE Response;
} EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL;
extern EFI_GUID gEfiPlatformToDriverConfigurationProtocolGuid;
extern EFI_GUID gEfiPlatformToDriverConfigurationClpGuid;
#endif