MdePkg: Clean up source files

1. Do not use tab characters
2. No trailing white space in one line
3. All files must end with CRLF

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
Liming Gao
2018-06-27 21:11:33 +08:00
parent d1102dba72
commit 9095d37b8f
729 changed files with 15683 additions and 15683 deletions

View File

@@ -1,15 +1,15 @@
/** @file
The file provides services that allow information about an
absolute pointer device to be retrieved.
Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
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.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
**/
@@ -38,25 +38,25 @@ typedef struct {
UINT64 AbsoluteMinX; ///< The Absolute Minimum of the device on the x-axis
UINT64 AbsoluteMinY; ///< The Absolute Minimum of the device on the y axis.
UINT64 AbsoluteMinZ; ///< The Absolute Minimum of the device on the z-axis
UINT64 AbsoluteMaxX; ///< The Absolute Maximum of the device on the x-axis. If 0, and the
UINT64 AbsoluteMaxX; ///< The Absolute Maximum of the device on the x-axis. If 0, and the
///< AbsoluteMinX is 0, then the pointer device does not support a xaxis
UINT64 AbsoluteMaxY; ///< The Absolute Maximum of the device on the y -axis. If 0, and the
UINT64 AbsoluteMaxY; ///< The Absolute Maximum of the device on the y -axis. If 0, and the
///< AbsoluteMinX is 0, then the pointer device does not support a yaxis.
UINT64 AbsoluteMaxZ; ///< The Absolute Maximum of the device on the z-axis. If 0 , and the
UINT64 AbsoluteMaxZ; ///< The Absolute Maximum of the device on the z-axis. If 0 , and the
///< AbsoluteMinX is 0, then the pointer device does not support a zaxis
UINT32 Attributes; ///< The following bits are set as needed (or'd together) to indicate the
///< capabilities of the device supported. The remaining bits are undefined
UINT32 Attributes; ///< The following bits are set as needed (or'd together) to indicate the
///< capabilities of the device supported. The remaining bits are undefined
///< and should be 0
} EFI_ABSOLUTE_POINTER_MODE;
///
/// If set, indicates this device supports an alternate button input.
///
/// If set, indicates this device supports an alternate button input.
///
#define EFI_ABSP_SupportsAltActive 0x00000001
///
/// If set, indicates this device returns pressure data in parameter CurrentZ.
///
///
#define EFI_ABSP_SupportsPressureAsZ 0x00000002
@@ -80,7 +80,7 @@ typedef struct {
device during reset.
@retval EFI_SUCCESS The device was reset.
@retval EFI_DEVICE_ERROR The device is not functioning
correctly and could not be reset.
@@ -95,11 +95,11 @@ EFI_STATUS
///
/// This bit is set if the touch sensor is active.
///
#define EFI_ABSP_TouchActive 0x00000001
#define EFI_ABSP_TouchActive 0x00000001
///
/// This bit is set if the alt sensor, such as pen-side button, is active
///
///
#define EFI_ABS_AltActive 0x00000002
@@ -108,29 +108,29 @@ EFI_STATUS
**/
typedef struct {
///
/// The unsigned position of the activation on the x axis. If the AboluteMinX
/// and the AboluteMaxX fields of the EFI_ABSOLUTE_POINTER_MODE structure are
/// The unsigned position of the activation on the x axis. If the AboluteMinX
/// and the AboluteMaxX fields of the EFI_ABSOLUTE_POINTER_MODE structure are
/// both 0, then this pointer device does not support an x-axis, and this field
/// must be ignored.
///
UINT64 CurrentX;
///
/// The unsigned position of the activation on the y axis. If the AboluteMinY
/// and the AboluteMaxY fields of the EFI_ABSOLUTE_POINTER_MODE structure are
/// The unsigned position of the activation on the y axis. If the AboluteMinY
/// and the AboluteMaxY fields of the EFI_ABSOLUTE_POINTER_MODE structure are
/// both 0, then this pointer device does not support an y-axis, and this field
/// must be ignored.
/// must be ignored.
///
UINT64 CurrentY;
///
/// The unsigned position of the activation on the z axis, or the pressure
/// measurement. If the AboluteMinZ and the AboluteMaxZ fields of the
/// EFI_ABSOLUTE_POINTER_MODE structure are both 0, then this pointer device
/// does not support an z-axis, and this field must be ignored.
/// The unsigned position of the activation on the z axis, or the pressure
/// measurement. If the AboluteMinZ and the AboluteMaxZ fields of the
/// EFI_ABSOLUTE_POINTER_MODE structure are both 0, then this pointer device
/// does not support an z-axis, and this field must be ignored.
///
UINT64 CurrentZ;
///
/// Bits are set to 1 in this structure item to indicate that device buttons are
/// active.
@@ -188,7 +188,7 @@ struct _EFI_ABSOLUTE_POINTER_PROTOCOL {
EFI_ABSOLUTE_POINTER_RESET Reset;
EFI_ABSOLUTE_POINTER_GET_STATE GetState;
///
/// Event to use with WaitForEvent() to wait for input from the pointer device.
/// Event to use with WaitForEvent() to wait for input from the pointer device.
///
EFI_EVENT WaitForInput;
///

View File

@@ -1,14 +1,14 @@
/** @file
This protocol provides services for creating ACPI system description tables.
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
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.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
**/
@@ -17,7 +17,7 @@
#define EFI_ACPI_SDT_PROTOCOL_GUID \
{ 0xeb97088e, 0xcfdf, 0x49c6, { 0xbe, 0x4b, 0xd9, 0x6, 0xa5, 0xb2, 0xe, 0x86 }}
typedef UINT32 EFI_ACPI_TABLE_VERSION;
typedef VOID *EFI_ACPI_HANDLE;
@@ -27,7 +27,7 @@ typedef VOID *EFI_ACPI_HANDLE;
#define EFI_ACPI_TABLE_VERSION_3_0 (1 << 3)
#define EFI_ACPI_TABLE_VERSION_4_0 (1 << 4)
#define EFI_ACPI_TABLE_VERSION_5_0 (1 << 5)
typedef UINT32 EFI_ACPI_DATA_TYPE;
#define EFI_ACPI_DATA_TYPE_NONE 0
#define EFI_ACPI_DATA_TYPE_OPCODE 1
@@ -36,7 +36,7 @@ typedef UINT32 EFI_ACPI_DATA_TYPE;
#define EFI_ACPI_DATA_TYPE_UINT 4
#define EFI_ACPI_DATA_TYPE_STRING 5
#define EFI_ACPI_DATA_TYPE_CHILD 6
typedef struct {
UINT32 Signature;
UINT32 Length;
@@ -48,7 +48,7 @@ typedef struct {
UINT32 CreatorId;
UINT32 CreatorRevision;
} EFI_ACPI_SDT_HEADER;
typedef
EFI_STATUS
(EFIAPI *EFI_ACPI_NOTIFICATION_FN)(
@@ -56,10 +56,10 @@ EFI_STATUS
IN EFI_ACPI_TABLE_VERSION Version, ///< The ACPI table's version.
IN UINTN TableKey ///< The table key for this ACPI table.
);
/**
Returns a requested ACPI table.
The GetAcpiTable() function returns a pointer to a buffer containing the ACPI table associated
with the Index that was input. The following structures are not considered elements in the list of
ACPI tables:
@@ -69,20 +69,20 @@ EFI_STATUS
Version is updated with a bit map containing all the versions of ACPI of which the table is a
member. For tables installed via the EFI_ACPI_TABLE_PROTOCOL.InstallAcpiTable() interface,
the function returns the value of EFI_ACPI_STD_PROTOCOL.AcpiVersion.
@param[in] Index The zero-based index of the table to retrieve.
@param[out] Table Pointer for returning the table buffer.
@param[out] Version On return, updated with the ACPI versions to which this table belongs. Type
EFI_ACPI_TABLE_VERSION is defined in "Related Definitions" in the
EFI_ACPI_SDT_PROTOCOL.
EFI_ACPI_SDT_PROTOCOL.
@param[out] TableKey On return, points to the table key for the specified ACPI system definition table.
This is identical to the table key used in the EFI_ACPI_TABLE_PROTOCOL.
The TableKey can be passed to EFI_ACPI_TABLE_PROTOCOL.UninstallAcpiTable()
to uninstall the table.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_NOT_FOUND The requested index is too large and a table was not found.
**/
@retval EFI_NOT_FOUND The requested index is too large and a table was not found.
**/
typedef
EFI_STATUS
(EFIAPI *EFI_ACPI_GET_ACPI_TABLE2)(
@@ -94,17 +94,17 @@ EFI_STATUS
/**
Register or unregister a callback when an ACPI table is installed.
This function registers or unregisters a function which will be called whenever a new ACPI table is
installed.
@param[in] Register If TRUE, then the specified function will be registered. If FALSE, then the specified
function will be unregistered.
@param[in] Notification Points to the callback function to be registered or unregistered.
@retval EFI_SUCCESS Callback successfully registered or unregistered.
@retval EFI_INVALID_PARAMETER Notification is NULL
@retval EFI_INVALID_PARAMETER Register is FALSE and Notification does not match a known registration function.
@retval EFI_INVALID_PARAMETER Register is FALSE and Notification does not match a known registration function.
**/
typedef
EFI_STATUS
@@ -115,30 +115,30 @@ EFI_STATUS
/**
Create a handle from an ACPI opcode
@param[in] Buffer Points to the ACPI opcode.
@param[out] Handle Upon return, holds the handle.
@retval EFI_SUCCESS Success
@retval EFI_INVALID_PARAMETER Buffer is NULL or Handle is NULL or Buffer points to an
invalid opcode.
**/
typedef
EFI_STATUS
(EFIAPI *EFI_ACPI_OPEN)(
IN VOID *Buffer,
OUT EFI_ACPI_HANDLE *Handle
OUT EFI_ACPI_HANDLE *Handle
);
/**
Create a handle for the first ACPI opcode in an ACPI system description table.
@param[in] TableKey The table key for the ACPI table, as returned by GetTable().
@param[out] Handle On return, points to the newly created ACPI handle.
@retval EFI_SUCCESS Handle created successfully.
@retval EFI_NOT_FOUND TableKey does not refer to a valid ACPI table.
@retval EFI_NOT_FOUND TableKey does not refer to a valid ACPI table.
**/
typedef
EFI_STATUS
@@ -149,11 +149,11 @@ EFI_STATUS
/**
Close an ACPI handle.
@param[in] Handle Returns the handle.
@retval EFI_SUCCESS Success
@retval EFI_INVALID_PARAMETER Handle is NULL or does not refer to a valid ACPI object.
@retval EFI_INVALID_PARAMETER Handle is NULL or does not refer to a valid ACPI object.
**/
typedef
EFI_STATUS
@@ -163,14 +163,14 @@ EFI_STATUS
/**
Return the child ACPI objects.
@param[in] ParentHandle Parent handle.
@param[in, out] Handle On entry, points to the previously returned handle or NULL to start with the first
handle. On return, points to the next returned ACPI handle or NULL if there are no
child objects.
@retval EFI_SUCCESS Success
@retval EFI_INVALID_PARAMETER ParentHandle is NULL or does not refer to a valid ACPI object.
@retval EFI_INVALID_PARAMETER ParentHandle is NULL or does not refer to a valid ACPI object.
**/
typedef
EFI_STATUS
@@ -181,7 +181,7 @@ EFI_STATUS
/**
Retrieve information about an ACPI object.
@param[in] Handle ACPI object handle.
@param[in] Index Index of the data to retrieve from the object. In general, indexes read from left-to-right
in the ACPI encoding, with index 0 always being the ACPI opcode.
@@ -189,8 +189,8 @@ EFI_STATUS
for the specified index.
@param[out] Data Upon return, points to the pointer to the data.
@param[out] DataSize Upon return, points to the size of Data.
@retval
@retval
**/
typedef
EFI_STATUS
@@ -204,7 +204,7 @@ EFI_STATUS
/**
Change information about an ACPI object.
@param[in] Handle ACPI object handle.
@param[in] Index Index of the data to retrieve from the object. In general, indexes read from left-to-right
in the ACPI encoding, with index 0 always being the ACPI opcode.
@@ -228,14 +228,14 @@ EFI_STATUS
/**
Returns the handle of the ACPI object representing the specified ACPI path
@param[in] HandleIn Points to the handle of the object representing the starting point for the path search.
@param[in] AcpiPath Points to the ACPI path, which conforms to the ACPI encoded path format.
@param[out] HandleOut On return, points to the ACPI object which represents AcpiPath, relative to
HandleIn.
@retval EFI_SUCCESS Success
@retval EFI_INVALID_PARAMETER HandleIn is NULL or does not refer to a valid ACPI object.
@retval EFI_INVALID_PARAMETER HandleIn is NULL or does not refer to a valid ACPI object.
**/
typedef
EFI_STATUS

View File

@@ -1,15 +1,15 @@
/** @file
The file provides the protocol to install or remove an ACPI
table from a platform.
Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
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
table from a platform.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
**/
@@ -24,24 +24,24 @@ typedef struct _EFI_ACPI_TABLE_PROTOCOL EFI_ACPI_TABLE_PROTOCOL;
/**
The InstallAcpiTable() function allows a caller to install an
ACPI table. When successful, the table will be linked by the
RSDT/XSDT. AcpiTableBuffer specifies the table to be installed.
InstallAcpiTable() will make a copy of the table and insert the
copy into the RSDT/XSDT. InstallAcpiTable() must insert the new
table at the end of the RSDT/XSDT. To prevent namespace
collision, ACPI tables may be created using UEFI ACPI table
The InstallAcpiTable() function allows a caller to install an
ACPI table. When successful, the table will be linked by the
RSDT/XSDT. AcpiTableBuffer specifies the table to be installed.
InstallAcpiTable() will make a copy of the table and insert the
copy into the RSDT/XSDT. InstallAcpiTable() must insert the new
table at the end of the RSDT/XSDT. To prevent namespace
collision, ACPI tables may be created using UEFI ACPI table
format. If this protocol is used to install a table with a
signature already present in the system, the new table will not
replace the existing table. It is a platform implementation
decision to add a new table with a signature matching an
existing table or disallow duplicate table signatures and
return EFI_ACCESS_DENIED. On successful output, TableKey is
initialized with a unique key. Its value may be used in a
subsequent call to UninstallAcpiTable to remove an ACPI table.
If an EFI application is running at the time of this call, the
relevant EFI_CONFIGURATION_TABLE pointer to the RSDT is no
longer considered valid.
return EFI_ACCESS_DENIED. On successful output, TableKey is
initialized with a unique key. Its value may be used in a
subsequent call to UninstallAcpiTable to remove an ACPI table.
If an EFI application is running at the time of this call, the
relevant EFI_CONFIGURATION_TABLE pointer to the RSDT is no
longer considered valid.
@param This A pointer to a EFI_ACPI_TABLE_PROTOCOL.
@@ -54,16 +54,16 @@ typedef struct _EFI_ACPI_TABLE_PROTOCOL EFI_ACPI_TABLE_PROTOCOL;
@param TableKey Returns a key to refer to the ACPI table.
@retval EFI_SUCCESS The table was successfully inserted
@retval EFI_INVALID_PARAMETER Either AcpiTableBuffer is NULL,
TableKey is NULL, or
AcpiTableBufferSize and the size
field embedded in the ACPI table
pointed to by AcpiTableBuffer
are not in sync.
@retval EFI_OUT_OF_RESOURCES Insufficient resources exist to
complete the request.
@retval EFI_ACCESS_DENIED The table signature matches a table already
@@ -82,7 +82,7 @@ EFI_STATUS
/**
The UninstallAcpiTable() function allows a caller to remove an
ACPI table. The routine will remove its reference from the
RSDT/XSDT. A table is referenced by the TableKey parameter
@@ -103,7 +103,7 @@ EFI_STATUS
@retval EFI_OUT_OF_RESOURCES Insufficient resources exist to
complete the request.
**/
typedef
EFI_STATUS

View File

@@ -3,7 +3,7 @@
The EFI Adapter Information Protocol is used to dynamically and quickly discover
or set device information for an adapter.
Copyright (c) 2014 - 2017, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2014 - 2018, Intel Corporation. All rights reserved.<BR>
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
@@ -59,9 +59,9 @@ typedef struct _EFI_ADAPTER_INFORMATION_PROTOCOL EFI_ADAPTER_INFORMATION_PROTOCO
///
typedef struct {
///
/// Returns the current media state status. MediaState can have any of the following values:
/// EFI_SUCCESS: There is media attached to the network adapter. EFI_NOT_READY: This detects a bounced state.
/// There was media attached to the network adapter, but it was removed and reattached. EFI_NO_MEDIA: There is
/// Returns the current media state status. MediaState can have any of the following values:
/// EFI_SUCCESS: There is media attached to the network adapter. EFI_NOT_READY: This detects a bounced state.
/// There was media attached to the network adapter, but it was removed and reattached. EFI_NO_MEDIA: There is
/// not any media attached to the network.
///
EFI_STATUS MediaState;
@@ -140,7 +140,7 @@ typedef struct {
///
/// Returns capability of UNDI to support IPv6 traffic.
///
BOOLEAN Ipv6Support;
BOOLEAN Ipv6Support;
} EFI_ADAPTER_INFO_UNDI_IPV6_SUPPORT;
/**
@@ -148,7 +148,7 @@ typedef struct {
This function returns information of type InformationType from the adapter.
If an adapter does not support the requested informational type, then
EFI_UNSUPPORTED is returned.
EFI_UNSUPPORTED is returned.
@param[in] This A pointer to the EFI_ADAPTER_INFORMATION_PROTOCOL instance.
@param[in] InformationType A pointer to an EFI_GUID that defines the contents of InformationBlock.
@@ -160,8 +160,8 @@ typedef struct {
@retval EFI_UNSUPPORTED The InformationType is not known.
@retval EFI_DEVICE_ERROR The device reported an error.
@retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.
@retval EFI_INVALID_PARAMETER This is NULL.
@retval EFI_INVALID_PARAMETER InformationBlock is NULL.
@retval EFI_INVALID_PARAMETER This is NULL.
@retval EFI_INVALID_PARAMETER InformationBlock is NULL.
@retval EFI_INVALID_PARAMETER InformationBlockSize is NULL.
**/

View File

@@ -1,22 +1,22 @@
/** @file
/** @file
EFI ARP Protocol Definition
The EFI ARP Service Binding Protocol is used to locate EFI
ARP Protocol drivers to create and destroy child of the
driver to communicate with other host using ARP protocol.
The EFI ARP Protocol provides services to map IP network
address to hardware address used by a data link protocol.
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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.
@par Revision Reference:
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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.
@par Revision Reference:
This Protocol was introduced in UEFI Specification 2.0.
**/
@@ -119,13 +119,13 @@ typedef struct {
/**
This function is used to assign a station address to the ARP cache for this instance
of the ARP driver.
Each ARP instance has one station address. The EFI_ARP_PROTOCOL driver will
respond to ARP requests that match this registered station address. A call to
Each ARP instance has one station address. The EFI_ARP_PROTOCOL driver will
respond to ARP requests that match this registered station address. A call to
this function with the ConfigData field set to NULL will reset this ARP instance.
Once a protocol type and station address have been assigned to this ARP instance,
all the following ARP functions will use this information. Attempting to change
Once a protocol type and station address have been assigned to this ARP instance,
all the following ARP functions will use this information. Attempting to change
the protocol type or station address to a configured ARP instance will result in errors.
@param This The pointer to the EFI_ARP_PROTOCOL instance.
@@ -134,8 +134,8 @@ typedef struct {
@retval EFI_SUCCESS The new station address was successfully
registered.
@retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
* This is NULL.
* SwAddressLength is zero when ConfigData is not NULL.
* This is NULL.
* SwAddressLength is zero when ConfigData is not NULL.
* StationAddress is NULL when ConfigData is not NULL.
@retval EFI_ACCESS_DENIED The SwAddressType, SwAddressLength, or
StationAddress is different from the one that is
@@ -144,27 +144,27 @@ typedef struct {
allocated.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_ARP_CONFIGURE)(
IN EFI_ARP_PROTOCOL *This,
IN EFI_ARP_CONFIG_DATA *ConfigData OPTIONAL
);
);
/**
This function is used to insert entries into the ARP cache.
ARP cache entries are typically inserted and updated by network protocol drivers
as network traffic is processed. Most ARP cache entries will time out and be
deleted if the network traffic stops. ARP cache entries that were inserted
ARP cache entries are typically inserted and updated by network protocol drivers
as network traffic is processed. Most ARP cache entries will time out and be
deleted if the network traffic stops. ARP cache entries that were inserted
by the Add() function may be static (will not time out) or dynamic (will time out).
Default ARP cache timeout values are not covered in most network protocol
specifications (although RFC 1122 comes pretty close) and will only be
discussed in general terms in this specification. The timeout values that are
used in the EFI Sample Implementation should be used only as a guideline.
Final product implementations of the EFI network stack should be tuned for
Default ARP cache timeout values are not covered in most network protocol
specifications (although RFC 1122 comes pretty close) and will only be
discussed in general terms in this specification. The timeout values that are
used in the EFI Sample Implementation should be used only as a guideline.
Final product implementations of the EFI network stack should be tuned for
their expected network environments.
@param This Pointer to the EFI_ARP_PROTOCOL instance.
@param DenyFlag Set to TRUE if this entry is a deny entry. Set to
FALSE if this entry is a normal entry.
@@ -184,10 +184,10 @@ EFI_STATUS
@retval EFI_SUCCESS The entry has been added or updated.
@retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
* This is NULL.
* DenyFlag is FALSE and TargetHwAddress is NULL.
* DenyFlag is FALSE and TargetSwAddress is NULL.
* TargetHwAddress is NULL and TargetSwAddress is NULL.
* This is NULL.
* DenyFlag is FALSE and TargetHwAddress is NULL.
* DenyFlag is FALSE and TargetSwAddress is NULL.
* TargetHwAddress is NULL and TargetSwAddress is NULL.
* Neither TargetSwAddress nor TargetHwAddress are NULL when DenyFlag is
TRUE.
@retval EFI_OUT_OF_RESOURCES The new ARP cache entry could not be allocated.
@@ -205,24 +205,24 @@ EFI_STATUS
IN VOID *TargetHwAddress OPTIONAL,
IN UINT32 TimeoutValue,
IN BOOLEAN Overwrite
);
);
/**
This function searches the ARP cache for matching entries and allocates a buffer into
which those entries are copied.
The first part of the allocated buffer is EFI_ARP_FIND_DATA, following which
The first part of the allocated buffer is EFI_ARP_FIND_DATA, following which
are protocol address pairs and hardware address pairs.
When finding a specific protocol address (BySwAddress is TRUE and AddressBuffer
is not NULL), the ARP cache timeout for the found entry is reset if Refresh is
set to TRUE. If the found ARP cache entry is a permanent entry, it is not
When finding a specific protocol address (BySwAddress is TRUE and AddressBuffer
is not NULL), the ARP cache timeout for the found entry is reset if Refresh is
set to TRUE. If the found ARP cache entry is a permanent entry, it is not
affected by Refresh.
@param This The pointer to the EFI_ARP_PROTOCOL instance.
@param BySwAddress Set to TRUE to look for matching software protocol
addresses. Set to FALSE to look for matching
hardware protocol addresses.
@param AddressBuffer The pointer to the address buffer. Set to NULL
@param AddressBuffer The pointer to the address buffer. Set to NULL
to match all addresses.
@param EntryLength The size of an entry in the entries buffer.
@param EntryCount The number of ARP cache entries that are found by
@@ -241,7 +241,7 @@ EFI_STATUS
@retval EFI_NOT_STARTED The ARP driver instance has not been configured.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_ARP_FIND)(
IN EFI_ARP_PROTOCOL *This,
@@ -251,7 +251,7 @@ EFI_STATUS
OUT UINT32 *EntryCount OPTIONAL,
OUT EFI_ARP_FIND_DATA **Entries OPTIONAL,
IN BOOLEAN Refresh
);
);
/**
@@ -277,7 +277,7 @@ EFI_STATUS
IN EFI_ARP_PROTOCOL *This,
IN BOOLEAN BySwAddress,
IN VOID *AddressBuffer OPTIONAL
);
);
/**
This function delete all dynamic entries from the ARP cache that match the specified
@@ -295,7 +295,7 @@ typedef
EFI_STATUS
(EFIAPI *EFI_ARP_FLUSH)(
IN EFI_ARP_PROTOCOL *This
);
);
/**
This function tries to resolve the TargetSwAddress and optionally returns a
@@ -322,22 +322,22 @@ EFI_STATUS
typedef
EFI_STATUS
(EFIAPI *EFI_ARP_REQUEST)(
IN EFI_ARP_PROTOCOL *This,
IN EFI_ARP_PROTOCOL *This,
IN VOID *TargetSwAddress OPTIONAL,
IN EFI_EVENT ResolvedEvent OPTIONAL,
OUT VOID *TargetHwAddress
);
OUT VOID *TargetHwAddress
);
/**
This function aborts the previous ARP request (identified by This, TargetSwAddress
and ResolvedEvent) that is issued by EFI_ARP_PROTOCOL.Request().
If the request is in the internal ARP request queue, the request is aborted
immediately and its ResolvedEvent is signaled. Only an asynchronous address
request needs to be canceled. If TargeSwAddress and ResolveEvent are both
NULL, all the pending asynchronous requests that have been issued by This
If the request is in the internal ARP request queue, the request is aborted
immediately and its ResolvedEvent is signaled. Only an asynchronous address
request needs to be canceled. If TargeSwAddress and ResolveEvent are both
NULL, all the pending asynchronous requests that have been issued by This
instance will be cancelled and their corresponding events will be signaled.
@param This The pointer to the EFI_ARP_PROTOCOL instance.
@param TargetSwAddress The pointer to the protocol address in previous
request session.
@@ -359,13 +359,13 @@ EFI_STATUS
typedef
EFI_STATUS
(EFIAPI *EFI_ARP_CANCEL)(
IN EFI_ARP_PROTOCOL *This,
IN EFI_ARP_PROTOCOL *This,
IN VOID *TargetSwAddress OPTIONAL,
IN EFI_EVENT ResolvedEvent OPTIONAL
);
);
///
/// ARP is used to resolve local network protocol addresses into
/// ARP is used to resolve local network protocol addresses into
/// network hardware addresses.
///
struct _EFI_ARP_PROTOCOL {

View File

@@ -3,14 +3,14 @@
to send ATA Command Blocks to any ATA device attached to that ATA controller. The information
includes the attributes of the ATA controller.
Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -56,7 +56,7 @@ typedef struct _EFI_ATA_COMMAND_BLOCK {
UINT8 AtaDeviceHead;
UINT8 AtaSectorNumberExp;
UINT8 AtaCylinderLowExp;
UINT8 AtaCylinderHighExp;
UINT8 AtaCylinderHighExp;
UINT8 AtaFeaturesExp;
UINT8 AtaSectorCount;
UINT8 AtaSectorCountExp;
@@ -73,7 +73,7 @@ typedef struct _EFI_ATA_STATUS_BLOCK {
UINT8 AtaDeviceHead;
UINT8 AtaSectorNumberExp;
UINT8 AtaCylinderLowExp;
UINT8 AtaCylinderHighExp;
UINT8 AtaCylinderHighExp;
UINT8 Reserved2;
UINT8 AtaSectorCount;
UINT8 AtaSectorCountExp;
@@ -156,7 +156,7 @@ typedef struct {
///
/// On Input, the size, in bytes of OutDataBuffer. On Output, the Number of bytes
/// transferred between ATA Controller and the ATA device. If OutTransferLength is
/// larger than the ATA controller can handle, no data will be transferred,
/// larger than the ATA controller can handle, no data will be transferred,
/// OutTransferLength will be updated to contain the number of bytes that the ATA
/// controller is able to transfer, and EFI_BAD_BUFFER_SIZE will be returned.
///
@@ -177,8 +177,8 @@ typedef struct {
supports both blocking I/O and non-blocking I/O. The blocking I/O functionality is required,
and the non-blocking I/O functionality is optional.
@param[in] This A pointer to the EFI_ATA_PASS_THRU_PROTOCOL instance.
@param[in] Port The port number of the ATA device to send the command.
@param[in] This A pointer to the EFI_ATA_PASS_THRU_PROTOCOL instance.
@param[in] Port The port number of the ATA device to send the command.
@param[in] PortMultiplierPort The port multiplier port number of the ATA device to send the command.
If there is no port multiplier, then specify 0xFFFF.
@param[in,out] Packet A pointer to the ATA command to send to the ATA device specified by Port
@@ -188,11 +188,11 @@ typedef struct {
Event is not NULL and non blocking I/O is supported, then non-blocking
I/O is performed, and Event will be signaled when the ATA command completes.
@retval EFI_SUCCESS The ATA command was sent by the host. For bi-directional commands,
@retval EFI_SUCCESS The ATA command was sent by the host. For bi-directional commands,
InTransferLength bytes were transferred from InDataBuffer. For write and
bi-directional commands, OutTransferLength bytes were transferred by OutDataBuffer.
@retval EFI_BAD_BUFFER_SIZE The ATA command was not executed. The number of bytes that could be transferred
is returned in InTransferLength. For write and bi-directional commands,
is returned in InTransferLength. For write and bi-directional commands,
OutTransferLength bytes were transferred by OutDataBuffer.
@retval EFI_NOT_READY The ATA command could not be sent because there are too many ATA commands
already queued. The caller may retry again later.
@@ -230,7 +230,7 @@ EFI_STATUS
If Port is the port number of the last port on the ATA controller, then EFI_NOT_FOUND is
returned.
@param[in] This A pointer to the EFI_ATA_PASS_THRU_PROTOCOL instance.
@param[in] This A pointer to the EFI_ATA_PASS_THRU_PROTOCOL instance.
@param[in,out] Port On input, a pointer to the port number on the ATA controller.
On output, a pointer to the next port number on the ATA
controller. An input value of 0xFFFF retrieves the first port
@@ -250,36 +250,36 @@ EFI_STATUS
);
/**
Used to retrieve the list of legal port multiplier port numbers for ATA devices on a port of an ATA
controller. These can either be the list of port multiplier ports where ATA devices are actually
present on port or the list of legal port multiplier ports on that port. Regardless, the caller of this
function must probe the port number and port multiplier port number returned to see if an ATA
Used to retrieve the list of legal port multiplier port numbers for ATA devices on a port of an ATA
controller. These can either be the list of port multiplier ports where ATA devices are actually
present on port or the list of legal port multiplier ports on that port. Regardless, the caller of this
function must probe the port number and port multiplier port number returned to see if an ATA
device is actually present.
The GetNextDevice() function retrieves the port multiplier port number of an ATA device
The GetNextDevice() function retrieves the port multiplier port number of an ATA device
present on a port of an ATA controller.
If PortMultiplierPort points to a port multiplier port number value that was returned on a
If PortMultiplierPort points to a port multiplier port number value that was returned on a
previous call to GetNextDevice(), then the port multiplier port number of the next ATA device
on the port of the ATA controller is returned in PortMultiplierPort, and EFI_SUCCESS is
returned.
If PortMultiplierPort points to 0xFFFF, then the port multiplier port number of the first
ATA device on port of the ATA controller is returned in PortMultiplierPort and
If PortMultiplierPort points to 0xFFFF, then the port multiplier port number of the first
ATA device on port of the ATA controller is returned in PortMultiplierPort and
EFI_SUCCESS is returned.
If PortMultiplierPort is not 0xFFFF and the value pointed to by PortMultiplierPort
was not returned on a previous call to GetNextDevice(), then EFI_INVALID_PARAMETER
is returned.
If PortMultiplierPort is the port multiplier port number of the last ATA device on the port of
If PortMultiplierPort is the port multiplier port number of the last ATA device on the port of
the ATA controller, then EFI_NOT_FOUND is returned.
@param[in] This A pointer to the EFI_ATA_PASS_THRU_PROTOCOL instance.
@param[in] Port The port number present on the ATA controller.
@param[in,out] PortMultiplierPort On input, a pointer to the port multiplier port number of an
ATA device present on the ATA controller.
If on input a PortMultiplierPort of 0xFFFF is specified,
ATA device present on the ATA controller.
If on input a PortMultiplierPort of 0xFFFF is specified,
then the port multiplier port number of the first ATA device
is returned. On output, a pointer to the port multiplier port
number of the next ATA device present on an ATA controller.
@@ -345,7 +345,7 @@ EFI_STATUS
The GetDevice() function determines the port and port multiplier port number associated with
the ATA device described by DevicePath. If DevicePath is a device path node type that the
ATA Pass Thru driver supports, then the ATA Pass Thru driver will attempt to translate the contents
ATA Pass Thru driver supports, then the ATA Pass Thru driver will attempt to translate the contents
DevicePath into a port number and port multiplier port number.
If this translation is successful, then that port number and port multiplier port number are returned
@@ -353,11 +353,11 @@ EFI_STATUS
If DevicePath, Port, or PortMultiplierPort are NULL, then EFI_INVALID_PARAMETER is returned.
If DevicePath is not a device path node type that the ATA Pass Thru driver supports, then
If DevicePath is not a device path node type that the ATA Pass Thru driver supports, then
EFI_UNSUPPORTED is returned.
If DevicePath is a device path node type that the ATA Pass Thru driver supports, but there is not
a valid translation from DevicePath to a port number and port multiplier port number, then
If DevicePath is a device path node type that the ATA Pass Thru driver supports, but there is not
a valid translation from DevicePath to a port number and port multiplier port number, then
EFI_NOT_FOUND is returned.
@param[in] This A pointer to the EFI_ATA_PASS_THRU_PROTOCOL instance.
@@ -423,7 +423,7 @@ EFI_STATUS
If this ATA controller does not support a device reset operation, then EFI_UNSUPPORTED is
returned.
If Port or PortMultiplierPort are not in a valid range for this ATA controller, then
If Port or PortMultiplierPort are not in a valid range for this ATA controller, then
EFI_INVALID_PARAMETER is returned.
If a device error occurs while executing that device reset operation, then EFI_DEVICE_ERROR

View File

@@ -1,16 +1,16 @@
/** @file
EFI_AUTHENTICATION_INFO_PROTOCOL as defined in UEFI 2.0.
This protocol is used on any device handle to obtain authentication information
This protocol is used on any device handle to obtain authentication information
associated with the physical or logical device.
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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.
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.
**/
@@ -21,7 +21,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
{ \
0x7671d9d0, 0x53db, 0x4173, {0xaa, 0x69, 0x23, 0x27, 0xf2, 0x1f, 0x0b, 0xc7 } \
}
#define EFI_AUTHENTICATION_CHAP_RADIUS_GUID \
{ \
0xd6062b50, 0x15ca, 0x11da, {0x92, 0x19, 0x00, 0x10, 0x83, 0xff, 0xca, 0x4d } \
@@ -75,7 +75,7 @@ typedef struct {
///
UINT8 NasSecret[1];
///
///
/// CHAP Initiator Secret Length in bytes on offset NasSecret + NasSecretLength.
///
/// UINT16 ChapSecretLength;
@@ -181,11 +181,11 @@ typedef struct {
responsible for allocating the buffer and it is the caller's
responsibility to free buffer when the caller is finished with buffer.
@retval EFI_SUCCESS Successfully retrieved authentication information
@retval EFI_SUCCESS Successfully retrieved authentication information
for the given ControllerHandle.
@retval EFI_INVALID_PARAMETER No matching authentication information found for
@retval EFI_INVALID_PARAMETER No matching authentication information found for
the given ControllerHandle.
@retval EFI_DEVICE_ERROR The authentication information could not be retrieved
@retval EFI_DEVICE_ERROR The authentication information could not be retrieved
due to a hardware error.
**/
@@ -203,12 +203,12 @@ EFI_STATUS
@param[in] This The pointer to the EFI_AUTHENTICATION_INFO_PROTOCOL.
@param[in] ControllerHandle The handle to the Controller.
@param[in] Buffer The pointer to the authentication information.
@retval EFI_SUCCESS Successfully set authentication information for the
@retval EFI_SUCCESS Successfully set authentication information for the
given ControllerHandle.
@retval EFI_UNSUPPORTED If the platform policies do not allow setting of
@retval EFI_UNSUPPORTED If the platform policies do not allow setting of
the authentication information.
@retval EFI_DEVICE_ERROR The authentication information could not be configured
@retval EFI_DEVICE_ERROR The authentication information could not be configured
due to a hardware error.
@retval EFI_OUT_OF_RESOURCES Not enough storage is available to hold the data.
@@ -219,10 +219,10 @@ EFI_STATUS
IN EFI_AUTHENTICATION_INFO_PROTOCOL *This,
IN EFI_HANDLE ControllerHandle,
IN VOID *Buffer
);
);
///
/// This protocol is used on any device handle to obtain authentication
/// This protocol is used on any device handle to obtain authentication
/// information associated with the physical or logical device.
///
struct _EFI_AUTHENTICATION_INFO_PROTOCOL {

View File

@@ -3,14 +3,14 @@
When the DXE core is done it calls the BDS via this protocol.
Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -29,19 +29,19 @@
typedef struct _EFI_BDS_ARCH_PROTOCOL EFI_BDS_ARCH_PROTOCOL;
/**
This function uses policy data from the platform to determine what operating
system or system utility should be loaded and invoked. This function call
also optionally make the use of user input to determine the operating system
or system utility to be loaded and invoked. When the DXE Core has dispatched
all the drivers on the dispatch queue, this function is called. This
function will attempt to connect the boot devices required to load and invoke
the selected operating system or system utility. During this process,
additional firmware volumes may be discovered that may contain addition DXE
drivers that can be dispatched by the DXE Core. If a boot device cannot be
fully connected, this function calls the DXE Service Dispatch() to allow the
DXE drivers from any newly discovered firmware volumes to be dispatched.
Then the boot device connection can be attempted again. If the same boot
device connection operation fails twice in a row, then that boot device has
This function uses policy data from the platform to determine what operating
system or system utility should be loaded and invoked. This function call
also optionally make the use of user input to determine the operating system
or system utility to be loaded and invoked. When the DXE Core has dispatched
all the drivers on the dispatch queue, this function is called. This
function will attempt to connect the boot devices required to load and invoke
the selected operating system or system utility. During this process,
additional firmware volumes may be discovered that may contain addition DXE
drivers that can be dispatched by the DXE Core. If a boot device cannot be
fully connected, this function calls the DXE Service Dispatch() to allow the
DXE drivers from any newly discovered firmware volumes to be dispatched.
Then the boot device connection can be attempted again. If the same boot
device connection operation fails twice in a row, then that boot device has
failed, and should be skipped. This function should never return.
@param This The EFI_BDS_ARCH_PROTOCOL instance.
@@ -56,11 +56,11 @@ VOID
);
///
/// The EFI_BDS_ARCH_PROTOCOL transfers control from DXE to an operating
/// system or a system utility. If there are not enough drivers initialized
/// when this protocol is used to access the required boot device(s), then
/// this protocol should add drivers to the dispatch queue and return control
/// back to the dispatcher. Once the required boot devices are available, then
/// The EFI_BDS_ARCH_PROTOCOL transfers control from DXE to an operating
/// system or a system utility. If there are not enough drivers initialized
/// when this protocol is used to access the required boot device(s), then
/// this protocol should add drivers to the dispatch queue and return control
/// back to the dispatcher. Once the required boot devices are available, then
/// the boot device can be used to load and invoke an OS or a system utility.
///
struct _EFI_BDS_ARCH_PROTOCOL {

View File

@@ -1,18 +1,18 @@
/** @file
The EFI_BIS_PROTOCOL is used to check a digital signature of a data block
The EFI_BIS_PROTOCOL is used to check a digital signature of a data block
against a digital certificate for the purpose of an integrity and authorization check.
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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.
http://opensource.org/licenses/bsd-license.php.
@par Revision Reference:
This Protocol is introduced in EFI Specification 1.10.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
@par Revision Reference:
This Protocol is introduced in EFI Specification 1.10.
**/
@@ -122,32 +122,32 @@ typedef struct {
#define BOOT_OBJECT_AUTHORIZATION_PARMSET_GUIDVALUE \
BOOT_OBJECT_AUTHORIZATION_PARMSET_GUID
/**
/**
Initializes the BIS service, checking that it is compatible with the version requested by the caller.
After this call, other BIS functions may be invoked.
After this call, other BIS functions may be invoked.
@param This A pointer to the EFI_BIS_PROTOCOL object.
@param AppHandle The function writes the new BIS_APPLICATION_HANDLE if
@param AppHandle The function writes the new BIS_APPLICATION_HANDLE if
successful, otherwise it writes NULL. The caller must eventually
destroy this handle by calling Shutdown().
destroy this handle by calling Shutdown().
@param InterfaceVersion On input, the caller supplies the major version number of the
interface version desired.
On output, both the major and minor
interface version desired.
On output, both the major and minor
version numbers are updated with the major and minor version
numbers of the interface. This update is done whether or not the
initialization was successful.
@param TargetAddress Indicates a network or device address of the BIS platform to connect to.
initialization was successful.
@param TargetAddress Indicates a network or device address of the BIS platform to connect to.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_INCOMPATIBLE_VERSION The InterfaceVersion.Major requested by the
@retval EFI_INCOMPATIBLE_VERSION The InterfaceVersion.Major requested by the
caller was not compatible with the interface version of the
implementation. The InterfaceVersion.Major has
been updated with the current interface version.
@retval EFI_UNSUPPORTED This is a local-platform implementation and
TargetAddress.Data was not NULL, or
@retval EFI_UNSUPPORTED This is a local-platform implementation and
TargetAddress.Data was not NULL, or
TargetAddress.Data was any other value that was not
supported by the implementation.
@retval EFI_OUT_OF_RESOURCES The function failed due to lack of memory or other resources.
supported by the implementation.
@retval EFI_OUT_OF_RESOURCES The function failed due to lack of memory or other resources.
@retval EFI_DEVICE_ERROR One of the following device errors:
* The function encountered an unexpected internal failure while initializing a cryptographic software module
* No cryptographic software module with compatible version was found
@@ -161,51 +161,51 @@ typedef struct {
is NULL or an invalid memory reference. Or,
the TargetAddress parameter supplied by the caller is
NULL or an invalid memory reference.
**/
**/
typedef
EFI_STATUS
(EFIAPI *EFI_BIS_INITIALIZE)(
IN EFI_BIS_PROTOCOL *This,
OUT BIS_APPLICATION_HANDLE *AppHandle,
IN OUT EFI_BIS_VERSION *InterfaceVersion,
IN EFI_BIS_DATA *TargetAddress
IN EFI_BIS_PROTOCOL *This,
OUT BIS_APPLICATION_HANDLE *AppHandle,
IN OUT EFI_BIS_VERSION *InterfaceVersion,
IN EFI_BIS_DATA *TargetAddress
);
/**
Frees memory structures allocated and returned by other functions in the EFI_BIS protocol.
/**
Frees memory structures allocated and returned by other functions in the EFI_BIS protocol.
@param AppHandle An opaque handle that identifies the caller's instance of initialization
of the BIS service.
@param ToFree An EFI_BIS_DATA* and associated memory block to be freed.
of the BIS service.
@param ToFree An EFI_BIS_DATA* and associated memory block to be freed.
This EFI_BIS_DATA* must have been allocated by one of the other BIS functions.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_NO_MAPPING The AppHandle parameter is not or is no longer a valid
application instance handle associated with the EFI_BIS protocol.
@retval EFI_OUT_OF_RESOURCES The function failed due to lack of memory or other resources.
application instance handle associated with the EFI_BIS protocol.
@retval EFI_OUT_OF_RESOURCES The function failed due to lack of memory or other resources.
@retval EFI_INVALID_PARAMETER The ToFree parameter is not or is no longer a memory resource
associated with this AppHandle.
**/
associated with this AppHandle.
**/
typedef
EFI_STATUS
(EFIAPI *EFI_BIS_FREE)(
IN BIS_APPLICATION_HANDLE AppHandle,
IN EFI_BIS_DATA *ToFree
IN BIS_APPLICATION_HANDLE AppHandle,
IN EFI_BIS_DATA *ToFree
);
/**
/**
Shuts down an application's instance of the BIS service, invalidating the application handle. After
this call, other BIS functions may no longer be invoked using the application handle value.
this call, other BIS functions may no longer be invoked using the application handle value.
@param AppHandle An opaque handle that identifies the caller's instance of initialization
of the BIS service.
of the BIS service.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_NO_MAPPING The AppHandle parameter is not, or is no longer, a valid
application instance handle associated with the EFI_BIS protocol.
@retval EFI_OUT_OF_RESOURCES The function failed due to lack of memory or other resources.
application instance handle associated with the EFI_BIS protocol.
@retval EFI_OUT_OF_RESOURCES The function failed due to lack of memory or other resources.
@retval EFI_DEVICE_ERROR The function encountered an unexpected internal failure while
returning resources associated with a cryptographic software module, or
while trying to shut down a cryptographic software module.
@@ -213,206 +213,206 @@ EFI_STATUS
typedef
EFI_STATUS
(EFIAPI *EFI_BIS_SHUTDOWN)(
IN BIS_APPLICATION_HANDLE AppHandle
IN BIS_APPLICATION_HANDLE AppHandle
);
/**
/**
Retrieves the certificate that has been configured as the identity of the organization designated as
the source of authorization for signatures of boot objects.
@param AppHandle An opaque handle that identifies the caller's instance of initialization
of the BIS service.
of the BIS service.
@param Certificate The function writes an allocated EFI_BIS_DATA* containing the Boot
Object Authorization Certificate object. The caller must
eventually free the memory allocated by this function using the function Free().
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_NO_MAPPING The AppHandle parameter is not or is no longer a valid
application instance handle associated with the EFI_BIS protocol.
@retval EFI_NOT_FOUND There is no Boot Object Authorization Certificate currently installed.
@retval EFI_OUT_OF_RESOURCES The function failed due to lack of memory or other resources.
application instance handle associated with the EFI_BIS protocol.
@retval EFI_NOT_FOUND There is no Boot Object Authorization Certificate currently installed.
@retval EFI_OUT_OF_RESOURCES The function failed due to lack of memory or other resources.
@retval EFI_INVALID_PARAMETER The Certificate parameter supplied by the caller is NULL or
an invalid memory reference.
**/
an invalid memory reference.
**/
typedef
EFI_STATUS
(EFIAPI *EFI_BIS_GET_BOOT_OBJECT_AUTHORIZATION_CERTIFICATE)(
IN BIS_APPLICATION_HANDLE AppHandle,
OUT EFI_BIS_DATA **Certificate
IN BIS_APPLICATION_HANDLE AppHandle,
OUT EFI_BIS_DATA **Certificate
);
/**
/**
Verifies the integrity and authorization of the indicated data object according to the
indicated credentials.
indicated credentials.
@param AppHandle An opaque handle that identifies the caller's instance of initialization
of the BIS service.
of the BIS service.
@param Credentials A Signed Manifest containing verification information for the indicated
data object.
data object.
@param DataObject An in-memory copy of the raw data object to be verified.
@param IsVerified The function writes TRUE if the verification succeeded, otherwise
FALSE.
FALSE.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_NO_MAPPING The AppHandle parameter is not or is no longer a valid
application instance handle associated with the EFI_BIS protocol.
@retval EFI_OUT_OF_RESOURCES The function failed due to lack of memory or other resources.
application instance handle associated with the EFI_BIS protocol.
@retval EFI_OUT_OF_RESOURCES The function failed due to lack of memory or other resources.
@retval EFI_INVALID_PARAMETER One or more parameters are invalid.
@retval EFI_SECURITY_VIOLATION The signed manifest supplied as the Credentials parameter
was invalid (could not be parsed) or Platform-specific authorization failed, etc.
@retval EFI_DEVICE_ERROR An unexpected internal error occurred.
**/
@retval EFI_DEVICE_ERROR An unexpected internal error occurred.
**/
typedef
EFI_STATUS
(EFIAPI *EFI_BIS_VERIFY_BOOT_OBJECT)(
IN BIS_APPLICATION_HANDLE AppHandle,
IN EFI_BIS_DATA *Credentials,
IN EFI_BIS_DATA *DataObject,
OUT BOOLEAN *IsVerified
IN BIS_APPLICATION_HANDLE AppHandle,
IN EFI_BIS_DATA *Credentials,
IN EFI_BIS_DATA *DataObject,
OUT BOOLEAN *IsVerified
);
/**
/**
Retrieves the current status of the Boot Authorization Check Flag.
@param AppHandle An opaque handle that identifies the caller's instance of initialization
of the BIS service.
of the BIS service.
@param CheckIsRequired The function writes the value TRUE if a Boot Authorization Check is
currently required on this platform, otherwise the function writes
FALSE.
currently required on this platform, otherwise the function writes
FALSE.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_NO_MAPPING The AppHandle parameter is not or is no longer a valid
application instance handle associated with the EFI_BIS protocol.
@retval EFI_OUT_OF_RESOURCES The function failed due to lack of memory or other resources.
application instance handle associated with the EFI_BIS protocol.
@retval EFI_OUT_OF_RESOURCES The function failed due to lack of memory or other resources.
@retval EFI_INVALID_PARAMETER The CheckIsRequired parameter supplied by the caller is
NULL or an invalid memory reference.
**/
NULL or an invalid memory reference.
**/
typedef
EFI_STATUS
(EFIAPI *EFI_BIS_GET_BOOT_OBJECT_AUTHORIZATION_CHECKFLAG)(
IN BIS_APPLICATION_HANDLE AppHandle,
OUT BOOLEAN *CheckIsRequired
IN BIS_APPLICATION_HANDLE AppHandle,
OUT BOOLEAN *CheckIsRequired
);
/**
/**
Retrieves a unique token value to be included in the request credential for the next update of any
parameter in the Boot Object Authorization set
@param AppHandle An opaque handle that identifies the caller's
instance of initialization of the BIS service.
@param UpdateToken The function writes an allocated EFI_BIS_DATA*
containing the newunique update token value.
The caller musteventually free the memory allocated
parameter in the Boot Object Authorization set
@param AppHandle An opaque handle that identifies the caller's
instance of initialization of the BIS service.
@param UpdateToken The function writes an allocated EFI_BIS_DATA*
containing the newunique update token value.
The caller musteventually free the memory allocated
by this function using the function Free().
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_NO_MAPPING The AppHandle parameter is not or is no longer a valid
application instance handle associated with the EFI_BIS protocol.
@retval EFI_OUT_OF_RESOURCES The function failed due to lack of memory or other resources.
application instance handle associated with the EFI_BIS protocol.
@retval EFI_OUT_OF_RESOURCES The function failed due to lack of memory or other resources.
@retval EFI_INVALID_PARAMETER The UpdateToken parameter supplied by the caller is NULL or
an invalid memory reference.
@retval EFI_DEVICE_ERROR An unexpected internal error occurred.
**/
an invalid memory reference.
@retval EFI_DEVICE_ERROR An unexpected internal error occurred.
**/
typedef
EFI_STATUS
(EFIAPI *EFI_BIS_GET_BOOT_OBJECT_AUTHORIZATION_UPDATE_TOKEN)(
IN BIS_APPLICATION_HANDLE AppHandle,
OUT EFI_BIS_DATA **UpdateToken
IN BIS_APPLICATION_HANDLE AppHandle,
OUT EFI_BIS_DATA **UpdateToken
);
/**
/**
Updates one of the configurable parameters of the Boot Object Authorization set.
@param AppHandle An opaque handle that identifies the caller's
instance of initialization of the BIS service.
@param RequestCredential This is a Signed Manifest with embedded attributes
that carry the details of the requested update.
@param NewUpdateToken The function writes an allocated EFI_BIS_DATA*
containing the new unique update token value.
The caller must eventually free the memory allocated
@param AppHandle An opaque handle that identifies the caller's
instance of initialization of the BIS service.
@param RequestCredential This is a Signed Manifest with embedded attributes
that carry the details of the requested update.
@param NewUpdateToken The function writes an allocated EFI_BIS_DATA*
containing the new unique update token value.
The caller must eventually free the memory allocated
by this function using the function Free().
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_NO_MAPPING The AppHandle parameter is not or is no longer a valid
application instance handle associated with the EFI_BIS protocol.
@retval EFI_OUT_OF_RESOURCES The function failed due to lack of memory or other resources.
@retval EFI_INVALID_PARAMETER One or more parameters are invalid.
@retval EFI_SECURITY_VIOLATION The signed manifest supplied as the RequestCredential parameter
was invalid (could not be parsed) or Platform-specific authorization failed, etc.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_NO_MAPPING The AppHandle parameter is not or is no longer a valid
application instance handle associated with the EFI_BIS protocol.
@retval EFI_OUT_OF_RESOURCES The function failed due to lack of memory or other resources.
@retval EFI_INVALID_PARAMETER One or more parameters are invalid.
@retval EFI_SECURITY_VIOLATION The signed manifest supplied as the RequestCredential parameter
was invalid (could not be parsed) or Platform-specific authorization failed, etc.
@retval EFI_DEVICE_ERROR An unexpected internal error occurred while analyzing the new
certificate's key algorithm, or while attempting to retrieve
the public key algorithm of the manifest's signer's certificate,
or An unexpected internal error occurred in a cryptographic software module.
**/
or An unexpected internal error occurred in a cryptographic software module.
**/
typedef
EFI_STATUS
(EFIAPI *EFI_BIS_UPDATE_BOOT_OBJECT_AUTHORIZATION)(
IN BIS_APPLICATION_HANDLE AppHandle,
IN EFI_BIS_DATA *RequestCredential,
OUT EFI_BIS_DATA **NewUpdateToken
IN BIS_APPLICATION_HANDLE AppHandle,
IN EFI_BIS_DATA *RequestCredential,
OUT EFI_BIS_DATA **NewUpdateToken
);
/**
/**
Verifies the integrity and authorization of the indicated data object according to the indicated
credentials and authority certificate.
credentials and authority certificate.
@param AppHandle An opaque handle that identifies the caller's instance of initialization
of the BIS service.
of the BIS service.
@param Credentials A Signed Manifest containing verification information for the
indicated data object.
indicated data object.
@param DataObject An in-memory copy of the raw data object to be verified.
@param SectionName An ASCII string giving the section name in the
@param SectionName An ASCII string giving the section name in the
manifest holding the verification information (in other words,
hash value) that corresponds to DataObject.
@param AuthorityCertificate A digital certificate whose public key must match the signer's
public key which is found in the credentials.
hash value) that corresponds to DataObject.
@param AuthorityCertificate A digital certificate whose public key must match the signer's
public key which is found in the credentials.
@param IsVerified The function writes TRUE if the verification was successful.
Otherwise, the function writes FALSE.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_NO_MAPPING The AppHandle parameter is not or is no longer a valid
application instance handle associated with the EFI_BIS protocol.
@retval EFI_OUT_OF_RESOURCES The function failed due to lack of memory or other resources.
@retval EFI_INVALID_PARAMETER One or more parameters are invalid.
Otherwise, the function writes FALSE.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_NO_MAPPING The AppHandle parameter is not or is no longer a valid
application instance handle associated with the EFI_BIS protocol.
@retval EFI_OUT_OF_RESOURCES The function failed due to lack of memory or other resources.
@retval EFI_INVALID_PARAMETER One or more parameters are invalid.
@retval EFI_SECURITY_VIOLATION The Credentials.Data supplied by the caller is NULL,
or the AuthorityCertificate supplied by the caller was
invalid (could not be parsed),
or Platform-specific authorization failed, etc.
or the AuthorityCertificate supplied by the caller was
invalid (could not be parsed),
or Platform-specific authorization failed, etc.
@retval EFI_DEVICE_ERROR An unexpected internal error occurred while attempting to retrieve
the public key algorithm of the manifest's signer's certificate,
or An unexpected internal error occurred in a cryptographic software module.
**/
or An unexpected internal error occurred in a cryptographic software module.
**/
typedef
EFI_STATUS
(EFIAPI *EFI_BIS_VERIFY_OBJECT_WITH_CREDENTIAL)(
IN BIS_APPLICATION_HANDLE AppHandle,
IN EFI_BIS_DATA *Credentials,
IN EFI_BIS_DATA *DataObject,
IN EFI_BIS_DATA *SectionName,
IN EFI_BIS_DATA *AuthorityCertificate,
OUT BOOLEAN *IsVerified
IN BIS_APPLICATION_HANDLE AppHandle,
IN EFI_BIS_DATA *Credentials,
IN EFI_BIS_DATA *DataObject,
IN EFI_BIS_DATA *SectionName,
IN EFI_BIS_DATA *AuthorityCertificate,
OUT BOOLEAN *IsVerified
);
/**
/**
Retrieves a list of digital certificate identifier, digital signature algorithm, hash algorithm, and keylength
combinations that the platform supports.
combinations that the platform supports.
@param AppHandle An opaque handle that identifies the caller's instance of initialization
of the BIS service.
of the BIS service.
@param SignatureInfo The function writes an allocated EFI_BIS_DATA* containing the array
of EFI_BIS_SIGNATURE_INFO structures representing the supported
of EFI_BIS_SIGNATURE_INFO structures representing the supported
digital certificate identifier, algorithm, and key length combinations.
The caller must eventually free the memory allocated by this function using the function Free().
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_NO_MAPPING The AppHandle parameter is not or is no longer a valid
application instance handle associated with the EFI_BIS protocol.
@retval EFI_OUT_OF_RESOURCES The function failed due to lack of memory or other resources.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_NO_MAPPING The AppHandle parameter is not or is no longer a valid
application instance handle associated with the EFI_BIS protocol.
@retval EFI_OUT_OF_RESOURCES The function failed due to lack of memory or other resources.
@retval EFI_INVALID_PARAMETER The SignatureInfo parameter supplied by the caller is NULL
or an invalid memory reference.
@retval EFI_DEVICE_ERROR An unexpected internal error occurred in a
@@ -424,8 +424,8 @@ EFI_STATUS
typedef
EFI_STATUS
(EFIAPI *EFI_BIS_GET_SIGNATURE_INFO)(
IN BIS_APPLICATION_HANDLE AppHandle,
OUT EFI_BIS_DATA **SignatureInfo
IN BIS_APPLICATION_HANDLE AppHandle,
OUT EFI_BIS_DATA **SignatureInfo
);
///

View File

@@ -4,14 +4,14 @@
The Block IO protocol is used to abstract block devices like hard drives,
DVD-ROMs and floppy drives.
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -27,12 +27,12 @@ typedef struct _EFI_BLOCK_IO_PROTOCOL EFI_BLOCK_IO_PROTOCOL;
///
/// Protocol GUID name defined in EFI1.1.
///
///
#define BLOCK_IO_PROTOCOL EFI_BLOCK_IO_PROTOCOL_GUID
///
/// Protocol defined in EFI1.1.
///
///
typedef EFI_BLOCK_IO_PROTOCOL EFI_BLOCK_IO;
/**
@@ -68,7 +68,7 @@ EFI_STATUS
@retval EFI_NO_MEDIA There is no media in the device.
@retval EFI_MEDIA_CHANGED The MediaId does not matched the current device.
@retval EFI_BAD_BUFFER_SIZE The Buffer was not a multiple of the block size of the device.
@retval EFI_INVALID_PARAMETER The read request contains LBAs that are not valid,
@retval EFI_INVALID_PARAMETER The read request contains LBAs that are not valid,
or the buffer is not on proper alignment.
**/
@@ -98,7 +98,7 @@ EFI_STATUS
@retval EFI_NO_MEDIA There is no media in the device.
@retval EFI_MEDIA_CHNAGED The MediaId does not matched the current device.
@retval EFI_BAD_BUFFER_SIZE The Buffer was not a multiple of the block size of the device.
@retval EFI_INVALID_PARAMETER The write request contains LBAs that are not valid,
@retval EFI_INVALID_PARAMETER The write request contains LBAs that are not valid,
or the buffer is not on proper alignment.
**/
@@ -135,17 +135,17 @@ typedef struct {
///
/// The curent media Id. If the media changes, this value is changed.
///
UINT32 MediaId;
UINT32 MediaId;
///
/// TRUE if the media is removable; otherwise, FALSE.
///
///
BOOLEAN RemovableMedia;
///
/// TRUE if there is a media currently present in the device;
/// othersise, FALSE. THis field shows the media present status
/// as of the most recent ReadBlocks() or WriteBlocks() call.
/// as of the most recent ReadBlocks() or WriteBlocks() call.
///
BOOLEAN MediaPresent;
@@ -154,45 +154,45 @@ typedef struct {
/// FALSE. For media with only one partition this would be TRUE.
///
BOOLEAN LogicalPartition;
///
/// TRUE if the media is marked read-only otherwise, FALSE.
/// This field shows the read-only status as of the most recent WriteBlocks () call.
///
BOOLEAN ReadOnly;
///
/// TRUE if the WriteBlock () function caches write data.
///
BOOLEAN WriteCaching;
BOOLEAN WriteCaching;
///
/// The intrinsic block size of the device. If the media changes, then
/// this field is updated.
/// this field is updated.
///
UINT32 BlockSize;
UINT32 BlockSize;
///
/// Supplies the alignment requirement for any buffer to read or write block(s).
///
UINT32 IoAlign;
UINT32 IoAlign;
///
/// The last logical block address on the device.
/// If the media changes, then this field is updated.
/// If the media changes, then this field is updated.
///
EFI_LBA LastBlock;
EFI_LBA LastBlock;
///
/// Only present if EFI_BLOCK_IO_PROTOCOL.Revision is greater than or equal to
/// EFI_BLOCK_IO_PROTOCOL_REVISION2. Returns the first LBA is aligned to
/// a physical block boundary.
/// EFI_BLOCK_IO_PROTOCOL_REVISION2. Returns the first LBA is aligned to
/// a physical block boundary.
///
EFI_LBA LowestAlignedLba;
///
/// Only present if EFI_BLOCK_IO_PROTOCOL.Revision is greater than or equal to
/// EFI_BLOCK_IO_PROTOCOL_REVISION2. Returns the number of logical blocks
/// EFI_BLOCK_IO_PROTOCOL_REVISION2. Returns the number of logical blocks
/// per physical block.
///
UINT32 LogicalBlocksPerPhysicalBlock;
@@ -211,7 +211,7 @@ typedef struct {
///
/// Revision defined in EFI1.1.
///
///
#define EFI_BLOCK_IO_INTERFACE_REVISION EFI_BLOCK_IO_PROTOCOL_REVISION
///

View File

@@ -5,14 +5,14 @@
enables the ability to read and write data at a block level in a non-blocking
manner.
Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -69,7 +69,7 @@ EFI_STATUS
/**
Read BufferSize bytes from Lba into Buffer.
This function reads the requested number of blocks from the device. All the
blocks are read, or an error is returned.
If EFI_DEVICE_ERROR, EFI_NO_MEDIA,_or EFI_MEDIA_CHANGED is returned and
@@ -77,13 +77,13 @@ EFI_STATUS
not be signaled.
@param[in] This Indicates a pointer to the calling context.
@param[in] MediaId Id of the media, changes every time the media is
@param[in] MediaId Id of the media, changes every time the media is
replaced.
@param[in] Lba The starting Logical Block Address to read from.
@param[in, out] Token A pointer to the token associated with the transaction.
@param[in] BufferSize Size of Buffer, must be a multiple of device block size.
@param[out] Buffer A pointer to the destination buffer for the data. The
caller is responsible for either having implicit or
@param[in, out] Token A pointer to the token associated with the transaction.
@param[in] BufferSize Size of Buffer, must be a multiple of device block size.
@param[out] Buffer A pointer to the destination buffer for the data. The
caller is responsible for either having implicit or
explicit ownership of the buffer.
@retval EFI_SUCCESS The read request was queued if Token->Event is
@@ -95,7 +95,7 @@ EFI_STATUS
@retval EFI_MEDIA_CHANGED The MediaId is not for the current media.
@retval EFI_BAD_BUFFER_SIZE The BufferSize parameter is not a multiple of the
intrinsic block size of the device.
@retval EFI_INVALID_PARAMETER The read request contains LBAs that are not valid,
@retval EFI_INVALID_PARAMETER The read request contains LBAs that are not valid,
or the buffer is not on proper alignment.
@retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack
of resources.
@@ -136,7 +136,7 @@ EFI_STATUS
@retval EFI_MEDIA_CHNAGED The MediaId does not matched the current device.
@retval EFI_DEVICE_ERROR The device reported an error while performing the write.
@retval EFI_BAD_BUFFER_SIZE The Buffer was not a multiple of the block size of the device.
@retval EFI_INVALID_PARAMETER The write request contains LBAs that are not valid,
@retval EFI_INVALID_PARAMETER The write request contains LBAs that are not valid,
or the buffer is not on proper alignment.
@retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack
of resources.
@@ -155,10 +155,10 @@ EFI_STATUS
/**
Flush the Block Device.
If EFI_DEVICE_ERROR, EFI_NO_MEDIA,_EFI_WRITE_PROTECTED or EFI_MEDIA_CHANGED
is returned and non-blocking I/O is being used, the Event associated with
this request will not be signaled.
this request will not be signaled.
@param[in] This Indicates a pointer to the calling context.
@param[in,out] Token A pointer to the token associated with the transaction
@@ -189,9 +189,9 @@ EFI_STATUS
///
struct _EFI_BLOCK_IO2_PROTOCOL {
///
/// A pointer to the EFI_BLOCK_IO_MEDIA data for this device.
/// A pointer to the EFI_BLOCK_IO_MEDIA data for this device.
/// Type EFI_BLOCK_IO_MEDIA is defined in BlockIo.h.
///
///
EFI_BLOCK_IO_MEDIA *Media;
EFI_BLOCK_RESET_EX Reset;

View File

@@ -2,16 +2,16 @@
EFI Bluetooth Configuration Protocol as defined in UEFI 2.7.
This protocol abstracts user interface configuration for Bluetooth device.
Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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,
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.
@par Revision Reference:
@par Revision Reference:
This Protocol is introduced in UEFI Specification 2.7
**/
@@ -25,7 +25,7 @@
{ \
0x62960cf3, 0x40ff, 0x4263, { 0xa7, 0x7c, 0xdf, 0xde, 0xbd, 0x19, 0x1b, 0x4b } \
}
typedef struct _EFI_BLUETOOTH_CONFIG_PROTOCOL EFI_BLUETOOTH_CONFIG_PROTOCOL;
typedef UINT32 EFI_BLUETOOTH_CONFIG_REMOTE_DEVICE_STATE_TYPE;
@@ -41,7 +41,7 @@ typedef struct {
///
BLUETOOTH_ADDRESS BDAddr;
///
/// State of the remote deive
/// State of the remote deive
///
UINT8 RemoteDeviceState;
///
@@ -113,12 +113,12 @@ typedef enum {
///
typedef enum {
///
/// For SSP - passkey entry. Input buffer is Passkey (4 bytes). No output buffer.
/// For SSP - passkey entry. Input buffer is Passkey (4 bytes). No output buffer.
/// See Bluetooth HCI command for detail.
///
EfiBluetoothCallbackTypeUserPasskeyNotification,
///
/// For SSP - just work and numeric comparison. Input buffer is numeric value (4 bytes).
/// For SSP - just work and numeric comparison. Input buffer is numeric value (4 bytes).
/// Output buffer is BOOLEAN (1 byte). See Bluetooth HCI command for detail.
///
EfiBluetoothCallbackTypeUserConfirmationRequest,
@@ -127,7 +127,7 @@ typedef enum {
///
EfiBluetoothCallbackTypeOOBDataRequest,
///
/// For legacy paring. No input buffer. Output buffer is PIN code( <= 16 bytes).
/// For legacy paring. No input buffer. Output buffer is PIN code( <= 16 bytes).
/// See Bluetooth HCI command for detail.
///
EfiBluetoothCallbackTypePinCodeRequest,
@@ -139,44 +139,44 @@ typedef enum {
///
typedef enum {
///
/// This callback is called when Bluetooth receive Disconnection_Complete event. Input buffer is Event
/// This callback is called when Bluetooth receive Disconnection_Complete event. Input buffer is Event
/// Parameters of Disconnection_Complete Event defined in Bluetooth specification.
///
EfiBluetoothConnCallbackTypeDisconnected,
///
/// This callback is called when Bluetooth receive Connection_Complete event. Input buffer is Event
/// This callback is called when Bluetooth receive Connection_Complete event. Input buffer is Event
/// Parameters of Connection_Complete Event defined in Bluetooth specification.
///
EfiBluetoothConnCallbackTypeConnected,
///
/// This callback is called when Bluetooth receive Authentication_Complete event. Input buffer is Event
/// This callback is called when Bluetooth receive Authentication_Complete event. Input buffer is Event
/// Parameters of Authentication_Complete Event defined in Bluetooth specification.
///
EfiBluetoothConnCallbackTypeAuthenticated,
///
/// This callback is called when Bluetooth receive Encryption_Change event. Input buffer is Event
/// This callback is called when Bluetooth receive Encryption_Change event. Input buffer is Event
/// Parameters of Encryption_Change Event defined in Bluetooth specification.
///
EfiBluetoothConnCallbackTypeEncrypted
} EFI_BLUETOOTH_CONNECT_COMPLETE_CALLBACK_TYPE;
/**
Initialize Bluetooth host controller and local device.
@param This Pointer to the EFI_BLUETOOTH_CONFIG_PROTOCOL instance.
@retval EFI_SUCCESS The Bluetooth host controller and local device is initialized successfully.
@retval EFI_DEVICE_ERROR A hardware error occurred trying to initialize the Bluetooth host controller
@retval EFI_DEVICE_ERROR A hardware error occurred trying to initialize the Bluetooth host controller
and local device.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_CONFIG_INIT)(
IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This
);
/**
Callback function, it is called if a Bluetooth device is found during scan process.
@@ -194,16 +194,16 @@ EFI_STATUS
IN VOID *Context,
IN EFI_BLUETOOTH_SCAN_CALLBACK_INFORMATION *CallbackInfo
);
/**
Scan Bluetooth device.
@param This Pointer to the EFI_BLUETOOTH_CONFIG_PROTOCOL instance.
@param ReScan If TRUE, a new scan request is submitted no matter there is scan result before.
If FALSE and there is scan result, the previous scan result is returned and no scan request
@param ReScan If TRUE, a new scan request is submitted no matter there is scan result before.
If FALSE and there is scan result, the previous scan result is returned and no scan request
is submitted.
@param ScanType Bluetooth scan type, Inquiry and/or Page. See Bluetooth specification for detail.
@param Callback The callback function. This function is called if a Bluetooth device is found during scan
@param Callback The callback function. This function is called if a Bluetooth device is found during scan
process.
@param Context Data passed into Callback function. This is optional parameter and may be NULL.
@@ -211,7 +211,7 @@ EFI_STATUS
@retval EFI_DEVICE_ERROR A hardware error occurred trying to scan the Bluetooth device.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_CONFIG_SCAN)(
IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This,
@@ -220,7 +220,7 @@ EFI_STATUS
IN EFI_BLUETOOTH_CONFIG_SCAN_CALLBACK_FUNCTION Callback,
IN VOID *Context
);
/**
Connect a Bluetooth device.
@@ -233,7 +233,7 @@ EFI_STATUS
@retval EFI_DEVICE_ERROR A hardware error occurred trying to connect the Bluetooth device.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_CONFIG_CONNECT)(
IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This,
@@ -253,14 +253,14 @@ EFI_STATUS
@retval EFI_DEVICE_ERROR A hardware error occurred trying to disconnect the Bluetooth device.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_CONFIG_DISCONNECT)(
IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This,
IN BLUETOOTH_ADDRESS *BD_ADDR,
IN UINT8 Reason
);
/**
Get Bluetooth configuration data.
@@ -280,7 +280,7 @@ EFI_STATUS
*DataSize has been updated with the size needed to complete the request.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_CONFIG_GET_DATA)(
IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This,
@@ -288,7 +288,7 @@ EFI_STATUS
IN OUT UINTN *DataSize,
IN OUT VOID *Data
);
/**
Set Bluetooth configuration data.
@@ -305,7 +305,7 @@ EFI_STATUS
@retval EFI_BUFFER_TOO_SMALL Cannot set configuration data.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_CONFIG_SET_DATA)(
IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This,
@@ -313,7 +313,7 @@ EFI_STATUS
IN UINTN DataSize,
IN VOID *Data
);
/**
Get remove Bluetooth device configuration data.
@@ -334,7 +334,7 @@ EFI_STATUS
*DataSize has been updated with the size needed to complete the request.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_CONFIG_GET_REMOTE_DATA)(
IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This,
@@ -343,7 +343,7 @@ EFI_STATUS
IN OUT UINTN *DataSize,
IN OUT VOID *Data
);
/**
The callback function for PIN code.
@@ -352,14 +352,14 @@ EFI_STATUS
@param CallbackType Callback type in EFI_BLUETOOTH_PIN_CALLBACK_TYPE.
@param InputBuffer A pointer to the buffer of data that is input from callback caller.
@param InputBufferSize Indicates the size, in bytes, of the data buffer specified by InputBuffer.
@param OutputBuffer A pointer to the buffer of data that will be output from callback callee.
@param OutputBuffer A pointer to the buffer of data that will be output from callback callee.
Callee allocates this buffer by using EFI Boot Service AllocatePool().
@param OutputBufferSize Indicates the size, in bytes, of the data buffer specified by OutputBuffer.
@retval EFI_SUCCESS The callback function complete successfully.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_CONFIG_REGISTER_PIN_CALLBACK_FUNCTION)(
IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This,
@@ -370,7 +370,7 @@ EFI_STATUS
OUT VOID **OutputBuffer,
OUT UINTN *OutputBufferSize
);
/**
Register PIN callback function.
@@ -381,7 +381,7 @@ EFI_STATUS
@retval EFI_SUCCESS The PIN callback function is registered successfully.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_CONFIG_REGISTER_PIN_CALLBACK)(
IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This,
@@ -400,7 +400,7 @@ EFI_STATUS
@retval EFI_SUCCESS The callback function complete successfully.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_CONFIG_REGISTER_GET_LINK_KEY_CALLBACK_FUNCTION)(
IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This,
@@ -408,7 +408,7 @@ EFI_STATUS
IN BLUETOOTH_ADDRESS *BDAddr,
OUT UINT8 LinkKey[BLUETOOTH_HCI_LINK_KEY_SIZE]
);
/**
Register get link key callback function.
@@ -419,14 +419,14 @@ EFI_STATUS
@retval EFI_SUCCESS The link key callback function is registered successfully.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_CONFIG_REGISTER_GET_LINK_KEY_CALLBACK)(
IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This,
IN EFI_BLUETOOTH_CONFIG_REGISTER_GET_LINK_KEY_CALLBACK_FUNCTION Callback,
IN VOID *Context
);
/**
The callback function to set link key.
@@ -438,7 +438,7 @@ EFI_STATUS
@retval EFI_SUCCESS The callback function complete successfully.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_CONFIG_REGISTER_SET_LINK_KEY_CALLBACK_FUNCTION)(
IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This,
@@ -446,7 +446,7 @@ EFI_STATUS
IN BLUETOOTH_ADDRESS *BDAddr,
IN UINT8 LinkKey[BLUETOOTH_HCI_LINK_KEY_SIZE]
);
/**
Register set link key callback function.
@@ -457,14 +457,14 @@ EFI_STATUS
@retval EFI_SUCCESS The link key callback function is registered successfully.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_CONFIG_REGISTER_SET_LINK_KEY_CALLBACK)(
IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This,
IN EFI_BLUETOOTH_CONFIG_REGISTER_SET_LINK_KEY_CALLBACK_FUNCTION Callback,
IN VOID *Context
);
/**
The callback function. It is called after connect completed.
@@ -478,7 +478,7 @@ EFI_STATUS
@retval EFI_SUCCESS The callback function complete successfully.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_CONFIG_REGISTER_CONNECT_COMPLETE_CALLBACK_FUNCTION)(
IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This,
@@ -488,7 +488,7 @@ EFI_STATUS
IN VOID *InputBuffer,
IN UINTN InputBufferSize
);
/**
Register link connect complete callback function.
@@ -499,14 +499,14 @@ EFI_STATUS
@retval EFI_SUCCESS The link connect complete callback function is registered successfully.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_CONFIG_REGISTER_CONNECT_COMPLETE_CALLBACK)(
IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This,
IN EFI_BLUETOOTH_CONFIG_REGISTER_CONNECT_COMPLETE_CALLBACK_FUNCTION Callback,
IN VOID *Context
);
///
/// This protocol abstracts user interface configuration for Bluetooth device.
///

View File

@@ -2,7 +2,7 @@
EFI Bluetooth Host Controller Protocol as defined in UEFI 2.5.
This protocol abstracts the Bluetooth host controller layer message transmit and receive.
Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
The full text of the license may be found at
@@ -23,7 +23,7 @@
{ \
0xb3930571, 0xbeba, 0x4fc5, { 0x92, 0x3, 0x94, 0x27, 0x24, 0x2e, 0x6a, 0x43 } \
}
typedef struct _EFI_BLUETOOTH_HC_PROTOCOL EFI_BLUETOOTH_HC_PROTOCOL;
/**

View File

@@ -4,14 +4,14 @@
This protocol is used by EFI Applications to request the UEFI Boot Manager
to connect devices using platform policy.
Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#ifndef __BOOT_MANAGER_POLICY_H__
@@ -53,7 +53,7 @@ typedef struct _EFI_BOOT_MANAGER_POLICY_PROTOCOL EFI_BOOT_MANAGER_POLICY_PROTOCO
system will be connected using the platforms EFI Boot
Manager policy.
@param[in] Recursive If TRUE, then ConnectController() is called recursively
until the entire tree of controllers below the
until the entire tree of controllers below the
controller specified by DevicePath have been created.
If FALSE, then the tree of controllers is only expanded
one level. If DevicePath is NULL then Recursive is ignored.
@@ -61,7 +61,7 @@ typedef struct _EFI_BOOT_MANAGER_POLICY_PROTOCOL EFI_BOOT_MANAGER_POLICY_PROTOCO
@retval EFI_SUCCESS The DevicePath was connected.
@retval EFI_NOT_FOUND The DevicePath was not found.
@retval EFI_NOT_FOUND No driver was connected to DevicePath.
@retval EFI_SECURITY_VIOLATION The user has no permission to start UEFI device
@retval EFI_SECURITY_VIOLATION The user has no permission to start UEFI device
drivers on the DevicePath.
@retval EFI_UNSUPPORTED The current TPL is not TPL_APPLICATION.
**/
@@ -80,7 +80,7 @@ EFI_STATUS
Manager connect a class of devices.
If Class is EFI_BOOT_MANAGER_POLICY_CONSOLE_GUID then the Boot Manager will
use platform policy to connect consoles. Some platforms may restrict the
use platform policy to connect consoles. Some platforms may restrict the
number of consoles connected as they attempt to fast boot, and calling
ConnectDeviceClass() with a Class value of EFI_BOOT_MANAGER_POLICY_CONSOLE_GUID
must connect the set of consoles that follow the Boot Manager platform policy,
@@ -98,7 +98,7 @@ EFI_STATUS
application that called ConnectDeviceClass() may need to use the published
protocols to establish the network connection. The Boot Manager can optionally
have a policy to establish a network connection.
If Class is EFI_BOOT_MANAGER_POLICY_CONNECT_ALL_GUID then the Boot Manager
will connect all UEFI drivers using the UEFI Boot Service
EFI_BOOT_SERVICES.ConnectController(). If the Boot Manager has policy
@@ -115,7 +115,7 @@ EFI_STATUS
@retval EFI_DEVICE_ERROR Devices were not connected due to an error.
@retval EFI_NOT_FOUND The Class is not supported by the platform.
@retval EFI_UNSUPPORTED The current TPL is not TPL_APPLICATION.
**/
**/
typedef
EFI_STATUS
(EFIAPI *EFI_BOOT_MANAGER_POLICY_CONNECT_DEVICE_CLASS)(

View File

@@ -6,14 +6,14 @@
instance of this protocol for every PCI controller that has a PCI option ROM that contains one or
more UEFI drivers. The protocol instance is attached to the handle of the PCI controller.
Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -34,14 +34,14 @@ typedef struct _EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL EFI_BUS_SPECIFIC_DRIV
// Prototypes for the Bus Specific Driver Override Protocol
//
/**
/**
Uses a bus specific algorithm to retrieve a driver image handle for a controller.
@param This A pointer to the EFI_BUS_SPECIFIC_DRIVER_
OVERRIDE_PROTOCOL instance.
OVERRIDE_PROTOCOL instance.
@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
by GetDriver(). On output, a pointer to the next driver
image handle. Passing in a NULL, will return the first driver
image handle.
@retval EFI_SUCCESS A bus specific override driver is returned in DriverImageHandle.

View File

@@ -1,16 +1,16 @@
/** @file
Capsule Architectural Protocol as defined in PI1.0a Specification VOLUME 2 DXE
The DXE Driver that produces this protocol must be a runtime driver.
The driver is responsible for initializing the CapsuleUpdate() and
QueryCapsuleCapabilities() fields of the UEFI Runtime Services Table.
After the two fields of the UEFI Runtime Services Table have been initialized,
the driver must install the EFI_CAPSULE_ARCH_PROTOCOL_GUID on a new handle
with a NULL interface pointer. The installation of this protocol informs
the DXE Foundation that the Capsule related services are now available and
The DXE Driver that produces this protocol must be a runtime driver.
The driver is responsible for initializing the CapsuleUpdate() and
QueryCapsuleCapabilities() fields of the UEFI Runtime Services Table.
After the two fields of the UEFI Runtime Services Table have been initialized,
the driver must install the EFI_CAPSULE_ARCH_PROTOCOL_GUID on a new handle
with a NULL interface pointer. The installation of this protocol informs
the DXE Foundation that the Capsule related services are now available and
that the DXE Foundation must update the 32-bit CRC of the UEFI Runtime Services Table.
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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

View File

@@ -1,15 +1,15 @@
/** @file
EFI Component Name Protocol as defined in the EFI 1.1 specification.
This protocol is used to retrieve user readable names of EFI Drivers
This protocol is used to retrieve user readable names of EFI Drivers
and controllers managed by EFI Drivers.
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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,
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.
**/
@@ -110,7 +110,7 @@ EFI_STATUS
);
///
/// This protocol is used to retrieve user readable names of drivers
/// This protocol is used to retrieve user readable names of drivers
/// and controllers managed by UEFI Drivers.
///
struct _EFI_COMPONENT_NAME_PROTOCOL {
@@ -119,7 +119,7 @@ struct _EFI_COMPONENT_NAME_PROTOCOL {
///
/// A Null-terminated ASCII string that contains one or more
/// ISO 639-2 language codes. This is the list of language codes
/// that this protocol supports.
/// that this protocol supports.
///
CHAR8 *SupportedLanguages;
};

View File

@@ -1,16 +1,16 @@
/** @file
UEFI Component Name 2 Protocol as defined in the UEFI 2.1 specification.
This protocol is used to retrieve user readable names of drivers
This protocol is used to retrieve user readable names of drivers
and controllers managed by UEFI Drivers.
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -32,7 +32,7 @@ typedef struct _EFI_COMPONENT_NAME2_PROTOCOL EFI_COMPONENT_NAME2_PROTOCOL;
@param This A pointer to the
EFI_COMPONENT_NAME2_PROTOCOL instance.
@param Language A pointer to a Null-terminated ASCII string
array indicating the language. This is the
language of the driver name that the caller
@@ -42,7 +42,7 @@ typedef struct _EFI_COMPONENT_NAME2_PROTOCOL EFI_COMPONENT_NAME2_PROTOCOL;
driver is up to the driver writer. Language
is specified in RFC 4646 language code
format.
@param DriverName A pointer to the string to return.
This string is the name of the
driver specified by This in the language
@@ -52,11 +52,11 @@ typedef struct _EFI_COMPONENT_NAME2_PROTOCOL EFI_COMPONENT_NAME2_PROTOCOL;
Driver specified by This and the
language specified by Language
was returned in DriverName.
@retval EFI_INVALID_PARAMETER Language is NULL.
@retval EFI_INVALID_PARAMETER DriverName is NULL.
@retval EFI_UNSUPPORTED The driver specified by This
does not support the language
specified by Language.
@@ -150,7 +150,7 @@ EFI_STATUS
);
///
/// This protocol is used to retrieve user readable names of drivers
/// This protocol is used to retrieve user readable names of drivers
/// and controllers managed by UEFI Drivers.
///
struct _EFI_COMPONENT_NAME2_PROTOCOL {
@@ -162,7 +162,7 @@ struct _EFI_COMPONENT_NAME2_PROTOCOL {
/// supported language codes. This is the list of language codes that
/// this protocol supports. The number of languages supported by a
/// driver is up to the driver writer. SupportedLanguages is
/// specified in RFC 4646 format.
/// specified in RFC 4646 format.
///
CHAR8 *SupportedLanguages;
};

View File

@@ -3,14 +3,14 @@
This code abstracts the DXE core from processor implementation details.
Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -61,14 +61,14 @@ VOID
);
/**
This function flushes the range of addresses from Start to Start+Length
from the processor's data cache. If Start is not aligned to a cache line
boundary, then the bytes before Start to the preceding cache line boundary
are also flushed. If Start+Length is not aligned to a cache line boundary,
then the bytes past Start+Length to the end of the next cache line boundary
are also flushed. The FlushType of EfiCpuFlushTypeWriteBackInvalidate must be
supported. If the data cache is fully coherent with all DMA operations, then
this function can just return EFI_SUCCESS. If the processor does not support
This function flushes the range of addresses from Start to Start+Length
from the processor's data cache. If Start is not aligned to a cache line
boundary, then the bytes before Start to the preceding cache line boundary
are also flushed. If Start+Length is not aligned to a cache line boundary,
then the bytes past Start+Length to the end of the next cache line boundary
are also flushed. The FlushType of EfiCpuFlushTypeWriteBackInvalidate must be
supported. If the data cache is fully coherent with all DMA operations, then
this function can just return EFI_SUCCESS. If the processor does not support
flushing a range of the data cache, then the entire data cache can be flushed.
@param This The EFI_CPU_ARCH_PROTOCOL instance.
@@ -98,7 +98,7 @@ EFI_STATUS
/**
This function enables interrupt processing by the processor.
This function enables interrupt processing by the processor.
@param This The EFI_CPU_ARCH_PROTOCOL instance.
@@ -130,8 +130,8 @@ EFI_STATUS
/**
This function retrieves the processor's current interrupt state a returns it in
State. If interrupts are currently enabled, then TRUE is returned. If interrupts
This function retrieves the processor's current interrupt state a returns it in
State. If interrupts are currently enabled, then TRUE is returned. If interrupts
are currently disabled, then FALSE is returned.
@param This The EFI_CPU_ARCH_PROTOCOL instance.
@@ -152,9 +152,9 @@ EFI_STATUS
/**
This function generates an INIT on the processor. If this function succeeds, then the
processor will be reset, and control will not be returned to the caller. If InitType is
not supported by this processor, or the processor cannot programmatically generate an
INIT without help from external hardware, then EFI_UNSUPPORTED is returned. If an error
processor will be reset, and control will not be returned to the caller. If InitType is
not supported by this processor, or the processor cannot programmatically generate an
INIT without help from external hardware, then EFI_UNSUPPORTED is returned. If an error
occurs attempting to generate an INIT, then EFI_DEVICE_ERROR is returned.
@param This The EFI_CPU_ARCH_PROTOCOL instance.
@@ -175,9 +175,9 @@ EFI_STATUS
/**
This function registers and enables the handler specified by InterruptHandler for a processor
interrupt or exception type specified by InterruptType. If InterruptHandler is NULL, then the
handler for the processor interrupt or exception type specified by InterruptType is uninstalled.
This function registers and enables the handler specified by InterruptHandler for a processor
interrupt or exception type specified by InterruptType. If InterruptHandler is NULL, then the
handler for the processor interrupt or exception type specified by InterruptType is uninstalled.
The installed handler is called once for each processor interrupt or exception.
@param This The EFI_CPU_ARCH_PROTOCOL instance.
@@ -280,17 +280,17 @@ struct _EFI_CPU_ARCH_PROTOCOL {
EFI_CPU_GET_TIMER_VALUE GetTimerValue;
EFI_CPU_SET_MEMORY_ATTRIBUTES SetMemoryAttributes;
///
/// The number of timers that are available in a processor. The value in this
/// field is a constant that must not be modified after the CPU Architectural
/// The number of timers that are available in a processor. The value in this
/// field is a constant that must not be modified after the CPU Architectural
/// Protocol is installed. All consumers must treat this as a read-only field.
///
UINT32 NumberOfTimers;
///
/// The size, in bytes, of the alignment required for DMA buffer allocations.
/// This is typically the size of the largest data cache line in the platform.
/// The value in this field is a constant that must not be modified after the
/// CPU Architectural Protocol is installed. All consumers must treat this as
/// a read-only field.
/// The size, in bytes, of the alignment required for DMA buffer allocations.
/// This is typically the size of the largest data cache line in the platform.
/// The value in this field is a constant that must not be modified after the
/// CPU Architectural Protocol is installed. All consumers must treat this as
/// a read-only field.
///
UINT32 DmaBufferAlignment;
};

View File

@@ -1,18 +1,18 @@
/** @file
This files describes the CPU I/O 2 Protocol.
This protocol provides an I/O abstraction for a system processor. This protocol
is used by a PCI root bridge I/O driver to perform memory-mapped I/O and I/O transactions.
The I/O or memory primitives can be used by the consumer of the protocol to materialize
bus-specific configuration cycles, such as the transitional configuration address and data
ports for PCI. Only drivers that require direct access to the entire system should use this
protocol.
ports for PCI. Only drivers that require direct access to the entire system should use this
protocol.
Note: This is a boot-services only protocol and it may not be used by runtime drivers after
ExitBootServices(). It is different from the Framework CPU I/O Protocol, which is a runtime
protocol and can be used by runtime drivers after ExitBootServices().
Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
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
@@ -22,7 +22,7 @@
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
@par Revision Reference:
This Protocol is defined in UEFI Platform Initialization Specification 1.2
This Protocol is defined in UEFI Platform Initialization Specification 1.2
Volume 5: Standards
**/
@@ -57,35 +57,35 @@ typedef enum {
} EFI_CPU_IO_PROTOCOL_WIDTH;
/**
Enables a driver to access registers in the PI CPU I/O space.
Enables a driver to access registers in the PI CPU I/O space.
The Io.Read() and Io.Write() functions enable a driver to access PCI controller
registers in the PI CPU I/O space.
The Io.Read() and Io.Write() functions enable a driver to access PCI controller
registers in the PI CPU I/O space.
The I/O operations are carried out exactly as requested. The caller is responsible
for satisfying any alignment and I/O width restrictions that a PI System on a
platform might require. For example on some platforms, width requests of
EfiCpuIoWidthUint64 do not work. Misaligned buffers, on the other hand, will
The I/O operations are carried out exactly as requested. The caller is responsible
for satisfying any alignment and I/O width restrictions that a PI System on a
platform might require. For example on some platforms, width requests of
EfiCpuIoWidthUint64 do not work. Misaligned buffers, on the other hand, will
be handled by the driver.
If Width is EfiCpuIoWidthUint8, EfiCpuIoWidthUint16, EfiCpuIoWidthUint32,
or EfiCpuIoWidthUint64, then both Address and Buffer are incremented for
If Width is EfiCpuIoWidthUint8, EfiCpuIoWidthUint16, EfiCpuIoWidthUint32,
or EfiCpuIoWidthUint64, then both Address and Buffer are incremented for
each of the Count operations that is performed.
If Width is EfiCpuIoWidthFifoUint8, EfiCpuIoWidthFifoUint16,
EfiCpuIoWidthFifoUint32, or EfiCpuIoWidthFifoUint64, then only Buffer is
incremented for each of the Count operations that is performed. The read or
If Width is EfiCpuIoWidthFifoUint8, EfiCpuIoWidthFifoUint16,
EfiCpuIoWidthFifoUint32, or EfiCpuIoWidthFifoUint64, then only Buffer is
incremented for each of the Count operations that is performed. The read or
write operation is performed Count times on the same Address.
If Width is EfiCpuIoWidthFillUint8, EfiCpuIoWidthFillUint16,
EfiCpuIoWidthFillUint32, or EfiCpuIoWidthFillUint64, then only Address is
incremented for each of the Count operations that is performed. The read or
If Width is EfiCpuIoWidthFillUint8, EfiCpuIoWidthFillUint16,
EfiCpuIoWidthFillUint32, or EfiCpuIoWidthFillUint64, then only Address is
incremented for each of the Count operations that is performed. The read or
write operation is performed Count times from the first element of Buffer.
@param[in] This A pointer to the EFI_CPU_IO2_PROTOCOL instance.
@param[in] Width Signifies the width of the I/O or Memory operation.
@param[in] Address The base address of the I/O operation.
@param[in] Count The number of I/O operations to perform. The number
@param[in] Address The base address of the I/O operation.
@param[in] Count The number of I/O operations to perform. The number
of bytes moved is Width size * Count, starting at Address.
@param[in, out] Buffer For read operations, the destination buffer to store the results.
For write operations, the source buffer from which to write data.
@@ -94,7 +94,7 @@ typedef enum {
@retval EFI_INVALID_PARAMETER Width is invalid for this PI system.
@retval EFI_INVALID_PARAMETER Buffer is NULL.
@retval EFI_UNSUPPORTED The Buffer is not aligned for the given Width.
@retval EFI_UNSUPPORTED The address range specified by Address, Width,
@retval EFI_UNSUPPORTED The address range specified by Address, Width,
and Count is not valid for this PI system.
**/

View File

@@ -1,17 +1,17 @@
/** @file
The file defines the EFI Debugport protocol.
This protocol is used by debug agent to communicate with the
remote debug host.
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
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.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
**/
@@ -35,14 +35,14 @@ typedef struct _EFI_DEBUGPORT_PROTOCOL EFI_DEBUGPORT_PROTOCOL;
// DebugPort member functions
//
/**
/**
Resets the debugport.
@param This A pointer to the EFI_DEBUGPORT_PROTOCOL instance.
@retval EFI_SUCCESS The debugport device was reset and is in usable state.
@retval EFI_DEVICE_ERROR The debugport device could not be reset and is unusable.
**/
typedef
EFI_STATUS
@@ -50,19 +50,19 @@ EFI_STATUS
IN EFI_DEBUGPORT_PROTOCOL *This
);
/**
/**
Writes data to the debugport.
@param This A pointer to the EFI_DEBUGPORT_PROTOCOL instance.
@param Timeout The number of microseconds to wait before timing out a write operation.
@param BufferSize On input, the requested number of bytes of data to write. On output, the
number of bytes of data actually written.
@param Buffer A pointer to a buffer containing the data to write.
@param Buffer A pointer to a buffer containing the data to write.
@retval EFI_SUCCESS The data was written.
@retval EFI_DEVICE_ERROR The device reported an error.
@retval EFI_TIMEOUT The data write was stopped due to a timeout.
**/
typedef
EFI_STATUS
@@ -73,20 +73,20 @@ EFI_STATUS
IN VOID *Buffer
);
/**
/**
Reads data from the debugport.
@param This A pointer to the EFI_DEBUGPORT_PROTOCOL instance.
@param Timeout The number of microseconds to wait before timing out a read operation.
@param BufferSize On input, the requested number of bytes of data to read. On output, the
number of bytes of data actually number of bytes
of data read and returned in Buffer.
@param Buffer A pointer to a buffer into which the data read will be saved.
@retval EFI_SUCCESS The data was read.
@retval EFI_DEVICE_ERROR The device reported an error.
@retval EFI_TIMEOUT The operation was stopped due to a timeout or overrun.
**/
typedef
EFI_STATUS
@@ -97,15 +97,15 @@ EFI_STATUS
OUT VOID *Buffer
);
/**
/**
Checks to see if any data is available to be read from the debugport device.
@param This A pointer to the EFI_DEBUGPORT_PROTOCOL instance.
@retval EFI_SUCCESS At least one byte of data is available to be read.
@retval EFI_DEVICE_ERROR The debugport device is not functioning correctly.
@retval EFI_NOT_READY No data is available to be read.
**/
typedef
EFI_STATUS

View File

@@ -5,16 +5,16 @@
The DebugSupport protocol is used by source level debuggers to abstract the
processor and handle context save and restore operations.
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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.
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.
**/
@@ -183,7 +183,7 @@ typedef struct {
UINT8 Xmm6[16];
UINT8 Xmm7[16];
//
// NOTE: UEFI 2.0 spec definition as follows.
// NOTE: UEFI 2.0 spec definition as follows.
//
UINT8 Reserved11[14 * 16];
} EFI_FX_SAVE_STATE_X64;
@@ -626,12 +626,12 @@ typedef union {
// DebugSupport callback function prototypes
//
/**
/**
Registers and enables an exception callback function for the specified exception.
@param ExceptionType Exception types in EBC, IA-32, x64, or IPF.
@param SystemContext Exception content.
**/
typedef
VOID
@@ -640,11 +640,11 @@ VOID
IN OUT EFI_SYSTEM_CONTEXT SystemContext
);
/**
/**
Registers and enables the on-target debug agent's periodic entry point.
@param SystemContext Exception content.
**/
typedef
VOID
@@ -669,16 +669,16 @@ typedef enum {
// DebugSupport member function definitions
//
/**
/**
Returns the maximum value that may be used for the ProcessorIndex parameter in
RegisterPeriodicCallback() and RegisterExceptionCallback().
RegisterPeriodicCallback() and RegisterExceptionCallback().
@param This A pointer to the EFI_DEBUG_SUPPORT_PROTOCOL instance.
@param MaxProcessorIndex Pointer to a caller-allocated UINTN in which the maximum supported
processor index is returned.
@retval EFI_SUCCESS The function completed successfully.
processor index is returned.
@retval EFI_SUCCESS The function completed successfully.
**/
typedef
EFI_STATUS
@@ -687,20 +687,20 @@ EFI_STATUS
OUT UINTN *MaxProcessorIndex
);
/**
/**
Registers a function to be called back periodically in interrupt context.
@param This A pointer to the EFI_DEBUG_SUPPORT_PROTOCOL instance.
@param ProcessorIndex Specifies which processor the callback function applies to.
@param PeriodicCallback A pointer to a function of type PERIODIC_CALLBACK that is the main
periodic entry point of the debug agent.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_ALREADY_STARTED Non-NULL PeriodicCallback parameter when a callback
function was previously registered.
@retval EFI_OUT_OF_RESOURCES System has insufficient memory resources to register new callback
function.
function was previously registered.
@retval EFI_OUT_OF_RESOURCES System has insufficient memory resources to register new callback
function.
**/
typedef
EFI_STATUS
@@ -710,21 +710,21 @@ EFI_STATUS
IN EFI_PERIODIC_CALLBACK PeriodicCallback
);
/**
/**
Registers a function to be called when a given processor exception occurs.
@param This A pointer to the EFI_DEBUG_SUPPORT_PROTOCOL instance.
@param ProcessorIndex Specifies which processor the callback function applies to.
@param ExceptionCallback A pointer to a function of type EXCEPTION_CALLBACK that is called
when the processor exception specified by ExceptionType occurs.
@param ExceptionType Specifies which processor exception to hook.
@retval EFI_SUCCESS The function completed successfully.
when the processor exception specified by ExceptionType occurs.
@param ExceptionType Specifies which processor exception to hook.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_ALREADY_STARTED Non-NULL PeriodicCallback parameter when a callback
function was previously registered.
@retval EFI_OUT_OF_RESOURCES System has insufficient memory resources to register new callback
function.
function was previously registered.
@retval EFI_OUT_OF_RESOURCES System has insufficient memory resources to register new callback
function.
**/
typedef
EFI_STATUS
@@ -735,18 +735,18 @@ EFI_STATUS
IN EFI_EXCEPTION_TYPE ExceptionType
);
/**
/**
Invalidates processor instruction cache for a memory range. Subsequent execution in this range
causes a fresh memory fetch to retrieve code to be executed.
causes a fresh memory fetch to retrieve code to be executed.
@param This A pointer to the EFI_DEBUG_SUPPORT_PROTOCOL instance.
@param ProcessorIndex Specifies which processor's instruction cache is to be invalidated.
@param Start Specifies the physical base of the memory range to be invalidated.
@param Start Specifies the physical base of the memory range to be invalidated.
@param Length Specifies the minimum number of bytes in the processor's instruction
cache to invalidate.
@retval EFI_SUCCESS The function completed successfully.
cache to invalidate.
@retval EFI_SUCCESS The function completed successfully.
**/
typedef
EFI_STATUS
@@ -758,8 +758,8 @@ EFI_STATUS
);
///
/// This protocol provides the services to allow the debug agent to register
/// callback functions that are called either periodically or when specific
/// This protocol provides the services to allow the debug agent to register
/// callback functions that are called either periodically or when specific
/// processor exceptions occur.
///
struct _EFI_DEBUG_SUPPORT_PROTOCOL {
@@ -775,4 +775,4 @@ struct _EFI_DEBUG_SUPPORT_PROTOCOL {
extern EFI_GUID gEfiDebugSupportProtocolGuid;
#endif
#endif

View File

@@ -1,14 +1,14 @@
/** @file
The Decompress Protocol Interface as defined in UEFI spec
Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -23,16 +23,16 @@
typedef struct _EFI_DECOMPRESS_PROTOCOL EFI_DECOMPRESS_PROTOCOL;
/**
The GetInfo() function retrieves the size of the uncompressed buffer
and the temporary scratch buffer required to decompress the buffer
The GetInfo() function retrieves the size of the uncompressed buffer
and the temporary scratch buffer required to decompress the buffer
specified by Source and SourceSize. If the size of the uncompressed
buffer or the size of the scratch buffer cannot be determined from
the compressed data specified by Source and SourceData, then
buffer or the size of the scratch buffer cannot be determined from
the compressed data specified by Source and SourceData, then
EFI_INVALID_PARAMETER is returned. Otherwise, the size of the uncompressed
buffer is returned in DestinationSize, the size of the scratch buffer is
buffer is returned in DestinationSize, the size of the scratch buffer is
returned in ScratchSize, and EFI_SUCCESS is returned.
The GetInfo() function does not have a scratch buffer available to perform
The GetInfo() function does not have a scratch buffer available to perform
a thorough checking of the validity of the source data. It just retrieves
the 'Original Size' field from the beginning bytes of the source data and
output it as DestinationSize. And ScratchSize is specific to the decompression
@@ -68,15 +68,15 @@ EFI_STATUS
/**
The Decompress() function extracts decompressed data to its original form.
This protocol is designed so that the decompression algorithm can be
implemented without using any memory services. As a result, the
Decompress() function is not allowed to call AllocatePool() or
AllocatePages() in its implementation. It is the caller's responsibility
This protocol is designed so that the decompression algorithm can be
implemented without using any memory services. As a result, the
Decompress() function is not allowed to call AllocatePool() or
AllocatePages() in its implementation. It is the caller's responsibility
to allocate and free the Destination and Scratch buffers.
If the compressed source data specified by Source and SourceSize is
successfully decompressed into Destination, then EFI_SUCCESS is returned.
If the compressed source data specified by Source and SourceSize is not in
If the compressed source data specified by Source and SourceSize is
successfully decompressed into Destination, then EFI_SUCCESS is returned.
If the compressed source data specified by Source and SourceSize is not in
a valid compressed data format, then EFI_INVALID_PARAMETER is returned.
@param This A pointer to the EFI_DECOMPRESS_PROTOCOL instance.
@@ -87,7 +87,7 @@ EFI_STATUS
@param DestinationSize The size of destination buffer. The size of destination
buffer needed is obtained from GetInfo().
@param Scratch A temporary scratch buffer that is used to perform the
decompression.
decompression.
@param ScratchSize The size of scratch buffer. The size of scratch buffer needed
is obtained from GetInfo().

View File

@@ -1,19 +1,19 @@
/** @file
UEFI 2.2 Deferred Image Load Protocol definition.
This protocol returns information about images whose load was denied because of security
considerations. This information can be used by the Boot Manager or another agent to reevaluate the
images when the current security profile has been changed, such as when the current user profile
This protocol returns information about images whose load was denied because of security
considerations. This information can be used by the Boot Manager or another agent to reevaluate the
images when the current security profile has been changed, such as when the current user profile
changes. There can be more than one instance of this protocol installed.
Copyright (c) 2009, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -33,28 +33,28 @@ typedef struct _EFI_DEFERRED_IMAGE_LOAD_PROTOCOL EFI_DEFERRED_IMAGE_LOAD_PROTOC
/**
Returns information about a deferred image.
This function returns information about a single deferred image. The deferred images are numbered
consecutively, starting with 0. If there is no image which corresponds to ImageIndex, then
EFI_NOT_FOUND is returned. All deferred images may be returned by iteratively calling this
This function returns information about a single deferred image. The deferred images are numbered
consecutively, starting with 0. If there is no image which corresponds to ImageIndex, then
EFI_NOT_FOUND is returned. All deferred images may be returned by iteratively calling this
function until EFI_NOT_FOUND is returned.
Image may be NULL and ImageSize set to 0 if the decision to defer execution was made because
Image may be NULL and ImageSize set to 0 if the decision to defer execution was made because
of the location of the executable image rather than its actual contents. record handle until
there are no more, at which point UserInfo will point to NULL.
there are no more, at which point UserInfo will point to NULL.
@param[in] This Points to this instance of the EFI_DEFERRED_IMAGE_LOAD_PROTOCOL.
@param[in] ImageIndex Zero-based index of the deferred index.
@param[out] ImageDevicePath On return, points to a pointer to the device path of the image.
The device path should not be freed by the caller.
@param[out] Image On return, points to the first byte of the image or NULL if the
image is not available. The image should not be freed by the caller
unless LoadImage() has been called successfully.
@param[out] ImageDevicePath On return, points to a pointer to the device path of the image.
The device path should not be freed by the caller.
@param[out] Image On return, points to the first byte of the image or NULL if the
image is not available. The image should not be freed by the caller
unless LoadImage() has been called successfully.
@param[out] ImageSize On return, the size of the image, or 0 if the image is not available.
@param[out] BootOption On return, points to TRUE if the image was intended as a boot option
or FALSE if it was not intended as a boot option.
@param[out] BootOption On return, points to TRUE if the image was intended as a boot option
or FALSE if it was not intended as a boot option.
@retval EFI_SUCCESS Image information returned successfully.
@retval EFI_NOT_FOUND ImageIndex does not refer to a valid image.
@retval EFI_INVALID_PARAMETER ImageDevicePath is NULL or Image is NULL or ImageSize is NULL or
@retval EFI_INVALID_PARAMETER ImageDevicePath is NULL or Image is NULL or ImageSize is NULL or
BootOption is NULL.
**/
typedef

View File

@@ -4,14 +4,14 @@
Device IO is used to abstract hardware access to devices. It includes
memory mapped IO, IO, PCI Config space, and DMA.
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -27,16 +27,16 @@ typedef struct _EFI_DEVICE_IO_PROTOCOL EFI_DEVICE_IO_PROTOCOL;
///
/// Protocol GUID name defined in EFI1.1.
///
///
#define DEVICE_IO_PROTOCOL EFI_DEVICE_IO_PROTOCOL_GUID
///
/// Protocol defined in EFI1.1.
///
///
typedef EFI_DEVICE_IO_PROTOCOL EFI_DEVICE_IO_INTERFACE;
///
/// Device IO Access Width
/// Device IO Access Width
///
typedef enum {
IO_UINT8 = 0,
@@ -44,7 +44,7 @@ typedef enum {
IO_UINT32 = 2,
IO_UINT64 = 3,
//
// Below enumerations are added in "Extensible Firmware Interface Specification,
// Below enumerations are added in "Extensible Firmware Interface Specification,
// Version 1.10, Specification Update, Version 001".
//
MMIO_COPY_UINT8 = 4,
@@ -53,23 +53,23 @@ typedef enum {
MMIO_COPY_UINT64 = 7
} EFI_IO_WIDTH;
/**
/**
Enables a driver to access device registers in the appropriate memory or I/O space.
@param This A pointer to the EFI_DEVICE_IO_INTERFACE instance.
@param Width Signifies the width of the I/O operations.
@param Address The base address of the I/O operations.
@param Width Signifies the width of the I/O operations.
@param Address The base address of the I/O operations.
@param Count The number of I/O operations to perform.
@param Buffer For read operations, the destination buffer to store the results. For write
operations, the source buffer to write data from. If
Width is MMIO_COPY_UINT8, MMIO_COPY_UINT16,
MMIO_COPY_UINT32, or MMIO_COPY_UINT64, then
Buffer is interpreted as a base address of an I/O operation such as Address.
Buffer is interpreted as a base address of an I/O operation such as Address.
@retval EFI_SUCCESS The data was read from or written to the device.
@retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.
@retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.
@retval EFI_INVALID_PARAMETER Width is invalid.
**/
typedef
EFI_STATUS
@@ -86,19 +86,19 @@ typedef struct {
EFI_DEVICE_IO Write;
} EFI_IO_ACCESS;
/**
/**
Provides an EFI Device Path for a PCI device with the given PCI configuration space address.
@param This A pointer to the EFI_DEVICE_IO_INTERFACE instance.
@param PciAddress The PCI configuration space address of the device whose Device Path
is going to be returned.
is going to be returned.
@param PciDevicePath A pointer to the pointer for the EFI Device Path for PciAddress.
Memory for the Device Path is allocated from the pool.
Memory for the Device Path is allocated from the pool.
@retval EFI_SUCCESS The PciDevicePath returns a pointer to a valid EFI Device Path.
@retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.
@retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.
@retval EFI_UNSUPPORTED The PciAddress does not map to a valid EFI Device Path.
**/
typedef
EFI_STATUS
@@ -118,7 +118,7 @@ typedef enum {
/// A write operation to system memory by a bus master.
///
EfiBusMasterWrite,
///
/// Provides both read and write access to system memory
/// by both the processor and a bus master. The buffer is
@@ -128,9 +128,9 @@ typedef enum {
EfiBusMasterCommonBuffer
} EFI_IO_OPERATION_TYPE;
/**
/**
Provides the device-specific addresses needed to access system memory.
@param This A pointer to the EFI_DEVICE_IO_INTERFACE instance.
@param Operation Indicates if the bus master is going to read or write to system memory.
@param HostAddress The system memory address to map to the device.
@@ -141,11 +141,11 @@ typedef enum {
@param Mapping A resulting value to pass to Unmap().
@retval EFI_SUCCESS The range was mapped for the returned NumberOfBytes.
@retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.
@retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.
@retval EFI_UNSUPPORTED The HostAddress cannot be mapped as a common buffer.
@retval EFI_INVALID_PARAMETER The Operation or HostAddress is undefined.
@retval EFI_DEVICE_ERROR The system hardware could not map the requested address.
**/
typedef
EFI_STATUS
@@ -158,15 +158,15 @@ EFI_STATUS
OUT VOID **Mapping
);
/**
/**
Completes the Map() operation and releases any corresponding resources.
@param This A pointer to the EFI_DEVICE_IO_INTERFACE instance.
@param Mapping A resulting value to pass to Unmap().
@retval EFI_SUCCESS The range was mapped for the returned NumberOfBytes.
@retval EFI_DEVICE_ERROR The system hardware could not map the requested address.
**/
typedef
EFI_STATUS
@@ -175,22 +175,22 @@ EFI_STATUS
IN VOID *Mapping
);
/**
/**
Allocates pages that are suitable for an EFIBusMasterCommonBuffer mapping.
@param This A pointer to the EFI_DEVICE_IO_INTERFACE instance.
@param Type The type allocation to perform.
@param MemoryType The type of memory to allocate, EfiBootServicesData or
EfiRuntimeServicesData.
@param Pages The number of pages to allocate.
@param HostAddress A pointer to store the base address of the allocated range.
@param HostAddress A pointer to store the base address of the allocated range.
@retval EFI_SUCCESS The requested memory pages were allocated.
@retval EFI_OUT_OF_RESOURCES The memory pages could not be allocated.
@retval EFI_INVALID_PARAMETER The requested memory type is invalid.
@retval EFI_UNSUPPORTED The requested HostAddress is not supported on
this platform.
this platform.
**/
typedef
EFI_STATUS
@@ -202,14 +202,14 @@ EFI_STATUS
IN OUT EFI_PHYSICAL_ADDRESS *HostAddress
);
/**
/**
Flushes any posted write data to the device.
@param This A pointer to the EFI_DEVICE_IO_INTERFACE instance.
@retval EFI_SUCCESS The buffers were flushed.
@retval EFI_DEVICE_ERROR The buffers were not flushed due to a hardware error.
@retval EFI_DEVICE_ERROR The buffers were not flushed due to a hardware error.
**/
typedef
EFI_STATUS
@@ -217,18 +217,18 @@ EFI_STATUS
IN EFI_DEVICE_IO_PROTOCOL *This
);
/**
/**
Frees pages that were allocated with AllocateBuffer().
@param This A pointer to the EFI_DEVICE_IO_INTERFACE instance.
@param This A pointer to the EFI_DEVICE_IO_INTERFACE instance.
@param Pages The number of pages to free.
@param HostAddress The base address of the range to free.
@retval EFI_SUCCESS The requested memory pages were allocated.
@retval EFI_NOT_FOUND The requested memory pages were not allocated with
AllocateBuffer().
AllocateBuffer().
@retval EFI_INVALID_PARAMETER HostAddress is not page aligned or Pages is invalid.
**/
typedef
EFI_STATUS
@@ -239,7 +239,7 @@ EFI_STATUS
);
///
/// This protocol provides the basic Memory, I/O, and PCI interfaces that
/// This protocol provides the basic Memory, I/O, and PCI interfaces that
/// are used to abstract accesses to devices.
///
struct _EFI_DEVICE_IO_PROTOCOL {

View File

@@ -2,17 +2,17 @@
The device path protocol as defined in UEFI 2.0.
The device path represents a programmatic path to a device,
from a software point of view. The path must persist from boot to boot, so
from a software point of view. The path must persist from boot to boot, so
it can not contain things like PCI bus numbers that change from boot to boot.
Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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.
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.
**/
@@ -39,11 +39,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#pragma pack(1)
/**
This protocol can be used on any device handle to obtain generic path/location
information concerning the physical device or logical device. If the handle does
not logically map to a physical device, the handle may not necessarily support
the device path protocol. The device path describes the location of the device
the handle is for. The size of the Device Path can be determined from the structures
This protocol can be used on any device handle to obtain generic path/location
information concerning the physical device or logical device. If the handle does
not logically map to a physical device, the handle may not necessarily support
the device path protocol. The device path describes the location of the device
the handle is for. The size of the Device Path can be determined from the structures
that make up the Device Path.
**/
typedef struct {
@@ -53,20 +53,20 @@ typedef struct {
///< 0x04 Media Device Path.
///< 0x05 BIOS Boot Specification Device Path.
///< 0x7F End of Hardware Device Path.
UINT8 SubType; ///< Varies by Type
///< 0xFF End Entire Device Path, or
///< 0x01 End This Instance of a Device Path and start a new
///< Device Path.
UINT8 Length[2]; ///< Specific Device Path data. Type and Sub-Type define
///< type of data. Size of data is included in Length.
} EFI_DEVICE_PATH_PROTOCOL;
///
/// Device Path protocol definition for backward-compatible with EFI1.1.
///
///
typedef EFI_DEVICE_PATH_PROTOCOL EFI_DEVICE_PATH;
///
@@ -1072,8 +1072,8 @@ typedef struct {
#define MEDIA_PROTOCOL_DP 0x05
///
/// The Media Protocol Device Path is used to denote the protocol that is being
/// used in a device path at the location of the path specified.
/// The Media Protocol Device Path is used to denote the protocol that is being
/// used in a device path at the location of the path specified.
/// Many protocols are inherent to the style of device path.
///
typedef struct {
@@ -1268,7 +1268,7 @@ typedef union {
SAS_DEVICE_PATH Sas;
SASEX_DEVICE_PATH SasEx;
NVME_NAMESPACE_DEVICE_PATH NvmeNamespace;
DNS_DEVICE_PATH Dns;
DNS_DEVICE_PATH Dns;
URI_DEVICE_PATH Uri;
BLUETOOTH_DEVICE_PATH Bluetooth;
WIFI_DEVICE_PATH WiFi;
@@ -1348,7 +1348,7 @@ typedef union {
} EFI_DEV_PATH_PTR;
#pragma pack()
#define END_DEVICE_PATH_TYPE 0x7f
#define END_ENTIRE_DEVICE_PATH_SUBTYPE 0xFF
#define END_INSTANCE_DEVICE_PATH_SUBTYPE 0x01

View File

@@ -1,15 +1,15 @@
/** @file
EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL as defined in UEFI 2.0.
EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL as defined in UEFI 2.0.
This protocol provides service to convert text to device paths and device nodes.
Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -39,8 +39,8 @@ typedef
EFI_DEVICE_PATH_PROTOCOL*
(EFIAPI *EFI_DEVICE_PATH_FROM_TEXT_NODE)(
IN CONST CHAR16 *TextDeviceNode
);
);
/**
Convert text to the binary representation of a device node.
@@ -57,7 +57,7 @@ typedef
EFI_DEVICE_PATH_PROTOCOL*
(EFIAPI *EFI_DEVICE_PATH_FROM_TEXT_PATH)(
IN CONST CHAR16 *TextDevicePath
);
);
///
/// This protocol converts text to device paths and device nodes.

View File

@@ -1,15 +1,15 @@
/** @file
EFI_DEVICE_PATH_TO_TEXT_PROTOCOL as defined in UEFI 2.0.
EFI_DEVICE_PATH_TO_TEXT_PROTOCOL as defined in UEFI 2.0.
This protocol provides service to convert device nodes and paths to text.
Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -45,7 +45,7 @@ CHAR16*
IN CONST EFI_DEVICE_PATH_PROTOCOL *DeviceNode,
IN BOOLEAN DisplayOnly,
IN BOOLEAN AllowShortcuts
);
);
/**
Convert a device path to its text representation.
@@ -54,7 +54,7 @@ CHAR16*
@param DisplayOnly If DisplayOnly is TRUE, then the shorter text representation
of the display node is used, where applicable. If DisplayOnly
is FALSE, then the longer text representation of the display node
is used.
is used.
@param AllowShortcuts The AllowShortcuts is FALSE, then the shortcut forms of
text representation for a device node cannot be used.
@@ -68,7 +68,7 @@ CHAR16*
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,
IN BOOLEAN DisplayOnly,
IN BOOLEAN AllowShortcuts
);
);
///
/// This protocol converts device paths and device nodes to text.

View File

@@ -1,15 +1,15 @@
/** @file
EFI_DEVICE_PATH_UTILITIES_PROTOCOL as defined in UEFI 2.0.
EFI_DEVICE_PATH_UTILITIES_PROTOCOL as defined in UEFI 2.0.
Use to create and manipulate device paths and device nodes.
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -30,15 +30,15 @@
@param DevicePath Points to the start of the EFI device path.
@return Size Size of the specified device path, in bytes, including the end-of-path tag.
@retval 0 DevicePath is NULL
@retval 0 DevicePath is NULL
**/
typedef
UINTN
(EFIAPI *EFI_DEVICE_PATH_UTILS_GET_DEVICE_PATH_SIZE)(
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
);
);
/**
Create a duplicate of the specified path.
@@ -53,11 +53,11 @@ typedef
EFI_DEVICE_PATH_PROTOCOL*
(EFIAPI *EFI_DEVICE_PATH_UTILS_DUP_DEVICE_PATH)(
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
);
);
/**
Create a new path by appending the second device path to the first.
If Src1 is NULL and Src2 is non-NULL, then a duplicate of Src2 is returned.
If Src1 is NULL and Src2 is non-NULL, then a duplicate of Src2 is returned.
If Src1 is non-NULL and Src2 is NULL, then a duplicate of Src1 is returned.
If Src1 and Src2 are both NULL, then a copy of an end-of-device-path is returned.
@@ -73,11 +73,11 @@ EFI_DEVICE_PATH_PROTOCOL*
(EFIAPI *EFI_DEVICE_PATH_UTILS_APPEND_PATH)(
IN CONST EFI_DEVICE_PATH_PROTOCOL *Src1,
IN CONST EFI_DEVICE_PATH_PROTOCOL *Src2
);
);
/**
Creates a new path by appending the device node to the device path.
If DeviceNode is NULL then a copy of DevicePath is returned.
If DeviceNode is NULL then a copy of DevicePath is returned.
If DevicePath is NULL then a copy of DeviceNode, followed by an end-of-device path device node is returned.
If both DeviceNode and DevicePath are NULL then a copy of an end-of-device-path device node is returned.
@@ -110,7 +110,7 @@ EFI_DEVICE_PATH_PROTOCOL*
(EFIAPI *EFI_DEVICE_PATH_UTILS_APPEND_INSTANCE)(
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePathInstance
);
);
/**
Creates a copy of the current device path instance and returns a pointer to the next device path
@@ -119,7 +119,7 @@ EFI_DEVICE_PATH_PROTOCOL*
@param DevicePathInstance On input, this holds the pointer to the current device path
instance. On output, this holds the pointer to the next
device path instance or NULL if there are no more device
path instances in the device path.
path instances in the device path.
@param DevicePathInstanceSize On output, this holds the size of the device path instance,
in bytes or zero, if DevicePathInstance is NULL.
If NULL, then the instance size is not output.
@@ -133,7 +133,7 @@ EFI_DEVICE_PATH_PROTOCOL*
(EFIAPI *EFI_DEVICE_PATH_UTILS_GET_NEXT_INSTANCE)(
IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePathInstance,
OUT UINTN *DevicePathInstanceSize
);
);
/**
Creates a device node
@@ -156,7 +156,7 @@ EFI_DEVICE_PATH_PROTOCOL*
IN UINT8 NodeType,
IN UINT8 NodeSubType,
IN UINT16 NodeLength
);
);
/**
Returns whether a device path is multi-instance.
@@ -171,11 +171,11 @@ typedef
BOOLEAN
(EFIAPI *EFI_DEVICE_PATH_UTILS_IS_MULTI_INSTANCE)(
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
);
);
///
/// This protocol is used to creates and manipulates device paths and device nodes.
///
///
typedef struct {
EFI_DEVICE_PATH_UTILS_GET_DEVICE_PATH_SIZE GetDevicePathSize;
EFI_DEVICE_PATH_UTILS_DUP_DEVICE_PATH DuplicateDevicePath;
@@ -187,6 +187,6 @@ typedef struct {
EFI_DEVICE_PATH_UTILS_CREATE_NODE CreateDeviceNode;
} EFI_DEVICE_PATH_UTILITIES_PROTOCOL;
extern EFI_GUID gEfiDevicePathUtilitiesProtocolGuid;
extern EFI_GUID gEfiDevicePathUtilitiesProtocolGuid;
#endif

View File

@@ -4,16 +4,16 @@
These protocols are used to collect configuration information for the EFI IPv4 Protocol
drivers and to provide DHCPv4 server and PXE boot server discovery services.
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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,
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.
@par Revision Reference:
@par Revision Reference:
This Protocol was introduced in UEFI Specification 2.0.
**/
@@ -82,7 +82,7 @@ typedef struct {
///
UINT32 Size;
///
/// Length of the EFI_DHCP4_PACKET from the first byte of the Header field
/// Length of the EFI_DHCP4_PACKET from the first byte of the Header field
/// to the last byte of the Option[] field.
///
UINT32 Length;
@@ -183,24 +183,24 @@ typedef enum{
///
Dhcp4BoundCompleted = 0x08,
///
/// It is time to enter the Dhcp4Renewing state and to contact the server
/// It is time to enter the Dhcp4Renewing state and to contact the server
/// that originally issued the network address. No packet is associated with this event.
///
Dhcp4EnterRenewing = 0x09,
///
/// It is time to enter the Dhcp4Rebinding state and to contact any server.
/// It is time to enter the Dhcp4Rebinding state and to contact any server.
/// No packet is associated with this event.
///
Dhcp4EnterRebinding = 0x0a,
///
/// The configured IP address was lost either because the lease has expired,
/// the user released the configuration, or a DHCPNAK packet was received in
/// The configured IP address was lost either because the lease has expired,
/// the user released the configuration, or a DHCPNAK packet was received in
/// the Dhcp4Renewing or Dhcp4Rebinding state. No packet is associated with this event.
///
Dhcp4AddressLost = 0x0b,
///
/// The DHCP process failed because a DHCPNAK packet was received or the user
/// aborted the DHCP process at a time when the configuration was not available yet.
/// The DHCP process failed because a DHCPNAK packet was received or the user
/// aborted the DHCP process at a time when the configuration was not available yet.
/// No packet is associated with this event.
///
Dhcp4Fail = 0x0c
@@ -208,7 +208,7 @@ typedef enum{
/**
Callback routine.
EFI_DHCP4_CALLBACK is provided by the consumer of the EFI DHCPv4 Protocol driver
to intercept events that occurred in the configuration process. This structure
provides advanced control of each state transition of the DHCP process. The
@@ -257,8 +257,8 @@ typedef struct {
///
UINT32 DiscoverTryCount;
///
/// The maximum amount of time (in seconds) to wait for returned packets in each
/// of the retries. Timeout values of zero will default to a timeout value
/// The maximum amount of time (in seconds) to wait for returned packets in each
/// of the retries. Timeout values of zero will default to a timeout value
/// of one second. Set to NULL to use default timeout values.
///
UINT32 *DiscoverTimeout;
@@ -269,21 +269,21 @@ typedef struct {
///
UINT32 RequestTryCount;
///
/// The maximum amount of time (in seconds) to wait for return packets in each of the retries.
/// Timeout values of zero will default to a timeout value of one second.
/// The maximum amount of time (in seconds) to wait for return packets in each of the retries.
/// Timeout values of zero will default to a timeout value of one second.
/// Set to NULL to use default timeout values.
///
UINT32 *RequestTimeout;
///
/// For a DHCPDISCOVER, setting this parameter to the previously allocated IP
/// address will cause the EFI DHCPv4 Protocol driver to enter the Dhcp4InitReboot state.
/// address will cause the EFI DHCPv4 Protocol driver to enter the Dhcp4InitReboot state.
/// And set this field to 0.0.0.0 to enter the Dhcp4Init state.
/// For a DHCPINFORM this parameter should be set to the client network address
/// which was assigned to the client during a DHCPDISCOVER.
///
EFI_IPv4_ADDRESS ClientAddress;
///
/// The callback function to intercept various events that occurred in
/// The callback function to intercept various events that occurred in
/// the DHCP configuration process. Set to NULL to ignore all those events.
///
EFI_DHCP4_CALLBACK Dhcp4Callback;
@@ -308,7 +308,7 @@ typedef struct {
typedef struct {
///
/// The EFI DHCPv4 Protocol driver operating state.
/// The EFI DHCPv4 Protocol driver operating state.
///
EFI_DHCP4_STATE State;
///
@@ -329,7 +329,7 @@ typedef struct {
///
EFI_IPv4_ADDRESS ServerAddress;
///
/// The router IP address that was acquired from the DHCP server.
/// The router IP address that was acquired from the DHCP server.
/// May be zero if the server does not offer this address.
///
EFI_IPv4_ADDRESS RouterAddress;
@@ -338,8 +338,8 @@ typedef struct {
///
EFI_IPv4_ADDRESS SubnetMask;
///
/// The lease time (in 1-second units) of the configured IP address.
/// The value 0xFFFFFFFF means that the lease time is infinite.
/// The lease time (in 1-second units) of the configured IP address.
/// The value 0xFFFFFFFF means that the lease time is infinite.
/// A default lease of 7 days is used if the DHCP server does not provide a value.
///
UINT32 LeaseTime;
@@ -356,12 +356,12 @@ typedef struct {
///
EFI_IPv4_ADDRESS ListenAddress;
///
/// The subnet mask of above listening unicast/broadcast IP address.
/// The subnet mask of above listening unicast/broadcast IP address.
/// Ignored if ListenAddress is a multicast address.
///
EFI_IPv4_ADDRESS SubnetMask;
///
/// Alternate station source (or listening) port number.
/// Alternate station source (or listening) port number.
/// If zero, then the default station port number (68) will be used.
///
UINT16 ListenPort;
@@ -374,7 +374,7 @@ typedef struct {
///
EFI_STATUS Status;
///
/// If not NULL, the event that will be signaled when the collection process
/// If not NULL, the event that will be signaled when the collection process
/// completes. If NULL, this function will busy-wait until the collection process competes.
///
EFI_EVENT CompletionEvent;
@@ -395,7 +395,7 @@ typedef struct {
///
UINT32 ListenPointCount;
///
/// An array of station address and port number pairs that are used as receiving filters.
/// An array of station address and port number pairs that are used as receiving filters.
/// The first entry is also used as the source address and source port of the outgoing packet.
///
EFI_DHCP4_LISTEN_POINT *ListenPoints;
@@ -420,7 +420,7 @@ typedef struct {
/**
Returns the current operating mode and cached data packet for the EFI DHCPv4 Protocol driver.
The GetModeData() function returns the current operating mode and cached data
packet for the EFI DHCPv4 Protocol driver.
@@ -510,7 +510,7 @@ EFI_STATUS
time when each event occurs in this process, the callback function that was set
by EFI_DHCP4_PROTOCOL.Configure() will be called and the user can take this
opportunity to control the process.
@param This The pointer to the EFI_DHCP4_PROTOCOL instance.
@param CompletionEvent If not NULL, it indicates the event that will be signaled when the
EFI DHCPv4 Protocol driver is transferred into the
@@ -544,7 +544,7 @@ EFI_STATUS
/**
Extends the lease time by sending a request packet.
The RenewRebind() function is used to manually extend the lease time when the
EFI DHCPv4 Protocol driver is in the Dhcp4Bound state, and the lease time has
not expired yet. This function will send a request packet to the previously
@@ -617,7 +617,7 @@ EFI_STATUS
/**
Stops the current address configuration.
The Stop() function is used to stop the DHCP configuration process. After this
function is called successfully, the EFI DHCPv4 Protocol driver is transferred
into the Dhcp4Stopped state. EFI_DHCP4_PROTOCOL.Configure() needs to be called
@@ -686,7 +686,7 @@ EFI_STATUS
/**
Transmits a DHCP formatted packet and optionally waits for responses.
The TransmitReceive() function is used to transmit a DHCP packet and optionally
wait for the response from servers. This function does not change the state of
the EFI DHCPv4 Protocol driver. It can be used at any time because of this.
@@ -719,7 +719,7 @@ EFI_STATUS
/**
Parses the packed DHCP option data.
The Parse() function is used to retrieve the option list from a DHCP packet.
If *OptionCount isn't zero, and there is enough space for all the DHCP options
in the Packet, each element of PacketOptionList is set to point to somewhere in

View File

@@ -2,16 +2,16 @@
UEFI Dynamic Host Configuration Protocol 6 Definition, which is used to get IPv6
addresses and other configuration parameters from DHCPv6 servers.
Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>
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.
Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.<BR>
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
@par Revision Reference:
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
@par Revision Reference:
This Protocol is introduced in UEFI Specification 2.2
**/
@@ -31,9 +31,9 @@
typedef struct _EFI_DHCP6_PROTOCOL EFI_DHCP6_PROTOCOL;
typedef enum {
typedef enum {
///
/// The EFI DHCPv6 Protocol instance is configured, and start() needs
/// The EFI DHCPv6 Protocol instance is configured, and start() needs
/// to be called
///
Dhcp6Init = 0x0,
@@ -43,7 +43,7 @@ typedef enum {
///
Dhcp6Selecting = 0x1,
///
/// A Request is sent out to the DHCPv6 server, and the EFI DHCPv6
/// A Request is sent out to the DHCPv6 server, and the EFI DHCPv6
/// Protocol instance is waiting for Reply packet.
///
Dhcp6Requesting = 0x2,
@@ -54,7 +54,7 @@ typedef enum {
///
Dhcp6Declining = 0x3,
///
/// A Confirm packet is sent out to confirm the IPv6 addresses of the
/// A Confirm packet is sent out to confirm the IPv6 addresses of the
/// configured IA, and the EFI DHCPv6 Protocol instance is waiting for Reply packet.
///
Dhcp6Confirming = 0x4,
@@ -80,55 +80,55 @@ typedef enum {
} EFI_DHCP6_STATE;
typedef enum {
///
///
/// A Solicit packet is about to be sent. The packet is passed to Dhcp6Callback and
/// can be modified or replaced in Dhcp6Callback.
///
Dhcp6SendSolicit = 0x0,
///
///
/// An Advertise packet is received and will be passed to Dhcp6Callback.
///
Dhcp6RcvdAdvertise = 0x1,
///
///
/// It is time for Dhcp6Callback to determine whether select the default Advertise
/// packet by RFC 3315 policy, or overwrite it by specific user policy.
///
Dhcp6SelectAdvertise = 0x2,
///
///
/// A Request packet is about to be sent. The packet is passed to Dhcp6Callback and
/// can be modified or replaced in Dhcp6Callback.
///
Dhcp6SendRequest = 0x3,
///
///
/// A Reply packet is received and will be passed to Dhcp6Callback.
///
Dhcp6RcvdReply = 0x4,
///
///
/// A Reconfigure packet is received and will be passed to Dhcp6Callback.
///
Dhcp6RcvdReconfigure = 0x5,
///
///
/// A Decline packet is about to be sent. The packet is passed to Dhcp6Callback and
/// can be modified or replaced in Dhcp6Callback.
///
Dhcp6SendDecline = 0x6,
///
///
/// A Confirm packet is about to be sent. The packet is passed to Dhcp6Callback and
/// can be modified or replaced in Dhcp6Callback.
///
Dhcp6SendConfirm = 0x7,
///
///
/// A Release packet is about to be sent. The packet is passed to Dhcp6Callback and
/// can be modified or replaced in Dhcp6Callback.
///
Dhcp6SendRelease = 0x8,
///
///
/// A Renew packet is about to be sent. The packet is passed to Dhcp6Callback and
/// can be modified or replaced in Dhcp6Callback.
/// can be modified or replaced in Dhcp6Callback.
///
Dhcp6EnterRenewing = 0x9,
///
/// A Rebind packet is about to be sent. The packet is passed to Dhcp6Callback and
///
/// A Rebind packet is about to be sent. The packet is passed to Dhcp6Callback and
/// can be modified or replaced in Dhcp6Callback.
///
Dhcp6EnterRebinding = 0xa
@@ -147,7 +147,7 @@ typedef enum {
///
/// EFI_DHCP6_PACKET_OPTION
/// defines the format of the DHCPv6 option, See RFC 3315 for more information.
/// This data structure is used to reference option data that is packed in the DHCPv6 packet.
/// This data structure is used to reference option data that is packed in the DHCPv6 packet.
///
typedef struct {
///
@@ -167,7 +167,7 @@ typedef struct {
///
/// EFI_DHCP6_HEADER
/// defines the format of the DHCPv6 header. See RFC 3315 for more information.
/// defines the format of the DHCPv6 header. See RFC 3315 for more information.
///
typedef struct{
///
@@ -181,7 +181,7 @@ typedef struct{
} EFI_DHCP6_HEADER;
///
/// EFI_DHCP6_PACKET
/// EFI_DHCP6_PACKET
/// defines the format of the DHCPv6 packet. See RFC 3315 for more information.
///
typedef struct {
@@ -225,19 +225,19 @@ typedef struct {
///
UINT32 Irt;
///
/// Maximum retransmission count for one packet. If Mrc is zero, there's no upper limit
/// Maximum retransmission count for one packet. If Mrc is zero, there's no upper limit
/// for retransmission count.
///
UINT32 Mrc;
///
/// Maximum retransmission timeout for each retry. It's the upper bound of the number of
/// retransmission timeout. If Mrt is zero, there is no upper limit for retransmission
/// Maximum retransmission timeout for each retry. It's the upper bound of the number of
/// retransmission timeout. If Mrt is zero, there is no upper limit for retransmission
/// timeout.
///
UINT32 Mrt;
///
/// Maximum retransmission duration for one packet. It's the upper bound of the numbers
/// the client may retransmit a message. If Mrd is zero, there's no upper limit for
/// Maximum retransmission duration for one packet. It's the upper bound of the numbers
/// the client may retransmit a message. If Mrd is zero, there's no upper limit for
/// retransmission duration.
///
UINT32 Mrd;
@@ -281,7 +281,7 @@ typedef struct {
///
UINT32 IaAddressCount;
///
/// List of the IPv6 addresses of the configured IA. When the state of the configured IA is
/// List of the IPv6 addresses of the configured IA. When the state of the configured IA is
/// in Dhcp6Bound, Dhcp6Renewing and Dhcp6Rebinding, the IPv6 addresses are usable.
///
EFI_DHCP6_IA_ADDRESS IaAddress[1];
@@ -300,39 +300,39 @@ typedef struct {
} EFI_DHCP6_MODE_DATA;
/**
EFI_DHCP6_CALLBACK is provided by the consumer of the EFI DHCPv6 Protocol instance to
EFI_DHCP6_CALLBACK is provided by the consumer of the EFI DHCPv6 Protocol instance to
intercept events that occurs in the DHCPv6 S.A.R.R process.
@param[in] This Pointer to the EFI_DHCP6_PROTOCOL instance that is used to configure this
@param[in] This Pointer to the EFI_DHCP6_PROTOCOL instance that is used to configure this
callback function.
@param[in] Context Pointer to the context that is initialized by EFI_DHCP6_PROTOCOL.Configure().
@param[in] CurrentState The current state of the configured IA.
@param[in] Dhcp6Event The event that occurs in the current state, which usually means a state transition.
@param[in] Packet Pointer to the DHCPv6 packet that is about to be sent or has been received.
The EFI DHCPv6 Protocol instance is responsible for freeing the buffer.
@param[out] NewPacket Pointer to the new DHCPv6 packet to overwrite the Packet. NewPacket can not
share the buffer with Packet. If *NewPacket is not NULL, the EFI DHCPv6
The EFI DHCPv6 Protocol instance is responsible for freeing the buffer.
@param[out] NewPacket Pointer to the new DHCPv6 packet to overwrite the Packet. NewPacket can not
share the buffer with Packet. If *NewPacket is not NULL, the EFI DHCPv6
Protocol instance is responsible for freeing the buffer.
@retval EFI_SUCCESS Tell the EFI DHCPv6 Protocol instance to continue the DHCPv6 S.A.R.R process.
@retval EFI_ABORTED Tell the EFI DHCPv6 Protocol instance to abort the DHCPv6 S.A.R.R process,
@retval EFI_ABORTED Tell the EFI DHCPv6 Protocol instance to abort the DHCPv6 S.A.R.R process,
and the state of the configured IA will be transferred to Dhcp6Init.
**/
typedef
EFI_STATUS
typedef
EFI_STATUS
(EFIAPI *EFI_DHCP6_CALLBACK)(
IN EFI_DHCP6_PROTOCOL *This,
IN VOID *Context,
IN EFI_DHCP6_STATE CurrentState,
IN EFI_DHCP6_EVENT Dhcp6Event,
IN EFI_DHCP6_PACKET *Packet,
IN EFI_DHCP6_PACKET *Packet,
OUT EFI_DHCP6_PACKET **NewPacket OPTIONAL
);
typedef struct {
///
/// The callback function is to intercept various events that occur in the DHCPv6 S.A.R.R
/// The callback function is to intercept various events that occur in the DHCPv6 S.A.R.R
/// process. Set to NULL to ignore all those events.
///
EFI_DHCP6_CALLBACK Dhcp6Callback;
@@ -345,11 +345,11 @@ typedef struct {
///
UINT32 OptionCount;
///
/// List of the DHCPv6 options to be included in Solicit and Request packet. The buffer
/// can be freed after EFI_DHCP6_PROTOCOL.Configure() returns. Ignored if
/// OptionCount is zero. OptionList should not contain Client Identifier option
/// and any IA option, which will be appended by EFI DHCPv6 Protocol instance
/// automatically.
/// List of the DHCPv6 options to be included in Solicit and Request packet. The buffer
/// can be freed after EFI_DHCP6_PROTOCOL.Configure() returns. Ignored if
/// OptionCount is zero. OptionList should not contain Client Identifier option
/// and any IA option, which will be appended by EFI DHCPv6 Protocol instance
/// automatically.
///
EFI_DHCP6_PACKET_OPTION **OptionList;
///
@@ -357,40 +357,40 @@ typedef struct {
///
EFI_DHCP6_IA_DESCRIPTOR IaDescriptor;
///
/// If not NULL, the event will be signaled when any IPv6 address information of the
/// configured IA is updated, including IPv6 address, preferred lifetime and valid
/// lifetime, or the DHCPv6 S.A.R.R process fails. Otherwise, Start(),
/// renewrebind(), decline(), release() and stop() will be blocking
/// If not NULL, the event will be signaled when any IPv6 address information of the
/// configured IA is updated, including IPv6 address, preferred lifetime and valid
/// lifetime, or the DHCPv6 S.A.R.R process fails. Otherwise, Start(),
/// renewrebind(), decline(), release() and stop() will be blocking
/// operations, and they will wait for the exchange process completion or failure.
///
EFI_EVENT IaInfoEvent;
///
/// If TRUE, the EFI DHCPv6 Protocol instance is willing to accept Reconfigure packet.
/// Otherwise, it will ignore it. Reconfigure Accept option can not be specified through
/// If TRUE, the EFI DHCPv6 Protocol instance is willing to accept Reconfigure packet.
/// Otherwise, it will ignore it. Reconfigure Accept option can not be specified through
/// OptionList parameter.
///
BOOLEAN ReconfigureAccept;
///
/// If TRUE, the EFI DHCPv6 Protocol instance will send Solicit packet with Rapid
/// Commit option. Otherwise, Rapid Commit option will not be included in Solicit
/// If TRUE, the EFI DHCPv6 Protocol instance will send Solicit packet with Rapid
/// Commit option. Otherwise, Rapid Commit option will not be included in Solicit
/// packet. Rapid Commit option can not be specified through OptionList parameter.
///
BOOLEAN RapidCommit;
///
/// Parameter to control Solicit packet retransmission behavior. The
/// Parameter to control Solicit packet retransmission behavior. The
/// buffer can be freed after EFI_DHCP6_PROTOCOL.Configure() returns.
///
EFI_DHCP6_RETRANSMISSION *SolicitRetransmission;
} EFI_DHCP6_CONFIG_DATA;
/**
EFI_DHCP6_INFO_CALLBACK is provided by the consumer of the EFI DHCPv6 Protocol
EFI_DHCP6_INFO_CALLBACK is provided by the consumer of the EFI DHCPv6 Protocol
instance to intercept events that occurs in the DHCPv6 Information Request exchange process.
@param[in] This Pointer to the EFI_DHCP6_PROTOCOL instance that is used to configure this
@param[in] This Pointer to the EFI_DHCP6_PROTOCOL instance that is used to configure this
callback function.
@param[in] Context Pointer to the context that is initialized in the EFI_DHCP6_PROTOCOL.InfoRequest().
@param[in] Packet Pointer to Reply packet that has been received. The EFI DHCPv6 Protocol instance is
@param[in] Packet Pointer to Reply packet that has been received. The EFI DHCPv6 Protocol instance is
responsible for freeing the buffer.
@retval EFI_SUCCESS Tell the EFI DHCPv6 Protocol instance to finish Information Request exchange process.
@@ -410,20 +410,20 @@ EFI_STATUS
Retrieve the current operating mode data and configuration data for the EFI DHCPv6 Protocol instance.
@param[in] This Pointer to the EFI_DHCP6_PROTOCOL instance.
@param[out] Dhcp6ModeData Pointer to the DHCPv6 mode data structure. The caller is responsible for freeing this
@param[out] Dhcp6ModeData Pointer to the DHCPv6 mode data structure. The caller is responsible for freeing this
structure and each reference buffer.
@param[out] Dhcp6ConfigData Pointer to the DHCPv6 configuration data structure. The caller is responsible for
@param[out] Dhcp6ConfigData Pointer to the DHCPv6 configuration data structure. The caller is responsible for
freeing this structure and each reference buffer.
@retval EFI_SUCCESS The mode data was returned.
@retval EFI_ACCESS_DENIED The EFI DHCPv6 Protocol instance has not been configured when Dhcp6ConfigData is not NULL.
@retval EFI_INVALID_PARAMETER One or more following conditions are TRUE:
- This is NULL.
- This is NULL.
- Both Dhcp6ConfigData and Dhcp6ModeData are NULL.
**/
typedef
EFI_STATUS
typedef
EFI_STATUS
(EFIAPI *EFI_DHCP6_GET_MODE_DATA)(
IN EFI_DHCP6_PROTOCOL *This,
OUT EFI_DHCP6_MODE_DATA *Dhcp6ModeData OPTIONAL,
@@ -433,15 +433,15 @@ EFI_STATUS
/**
Initialize or clean up the configuration data for the EFI DHCPv6 Protocol instance.
The Configure() function is used to initialize or clean up the configuration data of the EFI
The Configure() function is used to initialize or clean up the configuration data of the EFI
DHCPv6 Protocol instance.
- When Dhcp6CfgData is not NULL and Configure() is called successfully, the
configuration data will be initialized in the EFI DHCPv6 Protocol instance and the state of the
- When Dhcp6CfgData is not NULL and Configure() is called successfully, the
configuration data will be initialized in the EFI DHCPv6 Protocol instance and the state of the
configured IA will be transferred into Dhcp6Init.
- When Dhcp6CfgData is NULL and Configure() is called successfully, the configuration
- When Dhcp6CfgData is NULL and Configure() is called successfully, the configuration
data will be cleaned up and no IA will be associated with the EFI DHCPv6 Protocol instance.
To update the configuration data for an EFI DCHPv6 Protocol instance, the original data must be
To update the configuration data for an EFI DCHPv6 Protocol instance, the original data must be
cleaned up before setting the new configuration data.
@param[in] This Pointer to the EFI_DHCP6_PROTOCOL instance.
@@ -449,24 +449,24 @@ EFI_STATUS
@retval EFI_SUCCESS The mode data was returned.
@retval EFI_INVALID_PARAMETER One or more following conditions are TRUE
- This is NULL.
- This is NULL.
- OptionCount > 0 and OptionList is NULL.
- OptionList is not NULL, and Client Id option, Reconfigure Accept option,
Rapid Commit option or any IA option is specified in the OptionList.
- IaDescriptor.Type is neither EFI_DHCP6_IA_TYPE_NA nor EFI_DHCP6_IA_TYPE_NA.
- IaDescriptor is not unique.
- Both IaInfoEvent and SolicitRetransimssion are NULL.
- SolicitRetransmission is not NULL, and both SolicitRetransimssion->Mrc and
- SolicitRetransmission is not NULL, and both SolicitRetransimssion->Mrc and
SolicitRetransmission->Mrd are zero.
@retval EFI_ACCESS_DENIED The EFI DHCPv6 Protocol instance has been already configured
@retval EFI_ACCESS_DENIED The EFI DHCPv6 Protocol instance has been already configured
when Dhcp6CfgData is not NULL.
The EFI DHCPv6 Protocol instance has already started the
The EFI DHCPv6 Protocol instance has already started the
DHCPv6 S.A.R.R when Dhcp6CfgData is NULL.
@retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated.
@retval EFI_DEVICE_ERROR An unexpected system or network error occurred.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_DHCP6_CONFIGURE)(
IN EFI_DHCP6_PROTOCOL *This,
@@ -476,13 +476,13 @@ EFI_STATUS
/**
Start the DHCPv6 S.A.R.R process.
The Start() function starts the DHCPv6 S.A.R.R process. This function can be called only when
The Start() function starts the DHCPv6 S.A.R.R process. This function can be called only when
the state of the configured IA is in the Dhcp6Init state. If the DHCPv6 S.A.R.R process completes
successfully, the state of the configured IA will be transferred through Dhcp6Selecting and
Dhcp6Requesting to Dhcp6Bound state. The update of the IPv6 addresses will be notified through
EFI_DHCP6_CONFIG_DATA.IaInfoEvent. At the time when each event occurs in this process, the
callback function set by EFI_DHCP6_PROTOCOL.Configure() will be called and the user can take
this opportunity to control the process. If EFI_DHCP6_CONFIG_DATA.IaInfoEvent is NULL, the
successfully, the state of the configured IA will be transferred through Dhcp6Selecting and
Dhcp6Requesting to Dhcp6Bound state. The update of the IPv6 addresses will be notified through
EFI_DHCP6_CONFIG_DATA.IaInfoEvent. At the time when each event occurs in this process, the
callback function set by EFI_DHCP6_PROTOCOL.Configure() will be called and the user can take
this opportunity to control the process. If EFI_DHCP6_CONFIG_DATA.IaInfoEvent is NULL, the
Start() function call is a blocking operation. It will return after the DHCPv6 S.A.R.R process
completes or aborted by users. If the process is aborted by system or network error, the state of
the configured IA will be transferred to Dhcp6Init. The Start() function can be called again to
@@ -490,10 +490,10 @@ EFI_STATUS
@param[in] This Pointer to the EFI_DHCP6_PROTOCOL instance.
@retval EFI_SUCCESS The DHCPv6 S.A.R.R process is completed and at least one IPv6
address has been bound to the configured IA when
EFI_DHCP6_CONFIG_DATA.IaInfoEvent is NULL.
The DHCPv6 S.A.R.R process is started when
@retval EFI_SUCCESS The DHCPv6 S.A.R.R process is completed and at least one IPv6
address has been bound to the configured IA when
EFI_DHCP6_CONFIG_DATA.IaInfoEvent is NULL.
The DHCPv6 S.A.R.R process is started when
EFI_DHCP6_CONFIG_DATA.IaInfoEvent is not NULL.
@retval EFI_ACCESS_DENIED The EFI DHCPv6 Child instance hasn't been configured.
@retval EFI_INVALID_PARAMETER This is NULL.
@@ -501,13 +501,13 @@ EFI_STATUS
@retval EFI_ALREADY_STARTED The DHCPv6 S.A.R.R process has already started.
@retval EFI_DEVICE_ERROR An unexpected network or system error occurred.
@retval EFI_NO_RESPONSE The DHCPv6 S.A.R.R process failed because of no response.
@retval EFI_NO_MAPPING No IPv6 address has been bound to the configured IA after the
@retval EFI_NO_MAPPING No IPv6 address has been bound to the configured IA after the
DHCPv6 S.A.R.R process.
@retval EFI_ABORTED The DHCPv6 S.A.R.R process aborted by user.
@retval EFI_NO_MEDIA There was a media error.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_DHCP6_START)(
IN EFI_DHCP6_PROTOCOL *This
@@ -517,19 +517,19 @@ EFI_STATUS
Request configuration information without the assignment of any IA addresses of the client.
The InfoRequest() function is used to request configuration information without the assignment
of any IPv6 address of the client. Client sends out Information Request packet to obtain
the required configuration information, and DHCPv6 server responds with Reply packet containing
the information for the client. The received Reply packet will be passed to the user by
of any IPv6 address of the client. Client sends out Information Request packet to obtain
the required configuration information, and DHCPv6 server responds with Reply packet containing
the information for the client. The received Reply packet will be passed to the user by
ReplyCallback function. If user returns EFI_NOT_READY from ReplyCallback, the EFI DHCPv6
Protocol instance will continue to receive other Reply packets unless timeout according to
the Retransmission parameter. Otherwise, the Information Request exchange process will be
Protocol instance will continue to receive other Reply packets unless timeout according to
the Retransmission parameter. Otherwise, the Information Request exchange process will be
finished successfully if user returns EFI_SUCCESS from ReplyCallback.
@param[in] This Pointer to the EFI_DHCP6_PROTOCOL instance.
@param[in] SendClientId If TRUE, the EFI DHCPv6 Protocol instance will build Client
Identifier option and include it into Information Request
packet. If FALSE, Client Identifier option will not be included.
Client Identifier option can not be specified through OptionList
Client Identifier option can not be specified through OptionList
parameter.
@param[in] OptionRequest Pointer to the Option Request option in the Information Request
packet. Option Request option can not be specified through
@@ -543,29 +543,29 @@ EFI_STATUS
returns.
@param[in] TimeoutEvent If not NULL, this event is signaled when the information request
exchange aborted because of no response. If NULL, the function
call is a blocking operation; and it will return after the
call is a blocking operation; and it will return after the
information-request exchange process finish or aborted by users.
@param[in] ReplyCallback The callback function is to intercept various events that occur
in the Information Request exchange process. It should not be
set to NULL.
@param[in] CallbackContext Pointer to the context that will be passed to ReplyCallback.
@retval EFI_SUCCESS The DHCPv6 S.A.R.R process is completed and at least one IPv6
@retval EFI_SUCCESS The DHCPv6 information request exchange process completed
@retval EFI_SUCCESS The DHCPv6 S.A.R.R process is completed and at least one IPv6
@retval EFI_SUCCESS The DHCPv6 information request exchange process completed
when TimeoutEvent is NULL. Information Request packet has been
sent to DHCPv6 server when TimeoutEvent is not NULL.
@retval EFI_INVALID_PARAMETER One or more following conditions are TRUE:
- This is NULL.
- This is NULL.
- OptionRequest is NULL or OptionRequest->OpCode is invalid.
- OptionCount > 0 and OptionList is NULL.
- OptionList is not NULL, and Client Identify option or
- OptionList is not NULL, and Client Identify option or
Option Request option is specified in the OptionList.
- Retransimssion is NULL.
- Both Retransimssion->Mrc and Retransmission->Mrd are zero.
- ReplyCallback is NULL.
@retval EFI_DEVICE_ERROR An unexpected network or system error occurred.
@retval EFI_NO_RESPONSE The DHCPv6 information request exchange process failed
because of no response, or not all requested-options are
@retval EFI_NO_RESPONSE The DHCPv6 information request exchange process failed
because of no response, or not all requested-options are
responded by DHCPv6 servers when Timeout happened.
@retval EFI_ABORTED The DHCPv6 information request exchange process aborted by user.
@@ -578,7 +578,7 @@ EFI_STATUS
IN EFI_DHCP6_PACKET_OPTION *OptionRequest,
IN UINT32 OptionCount,
IN EFI_DHCP6_PACKET_OPTION *OptionList[] OPTIONAL,
IN EFI_DHCP6_RETRANSMISSION *Retransmission,
IN EFI_DHCP6_RETRANSMISSION *Retransmission,
IN EFI_EVENT TimeoutEvent OPTIONAL,
IN EFI_DHCP6_INFO_CALLBACK ReplyCallback,
IN VOID *CallbackContext OPTIONAL
@@ -588,38 +588,38 @@ EFI_STATUS
Manually extend the valid and preferred lifetimes for the IPv6 addresses of the configured
IA and update other configuration parameters by sending Renew or Rebind packet.
The RenewRebind() function is used to manually extend the valid and preferred lifetimes for the
IPv6 addresses of the configured IA and update other configuration parameters by sending Renew or
Rebind packet.
- When RebindRequest is FALSE and the state of the configured IA is Dhcp6Bound, it
will send Renew packet to the previously DHCPv6 server and transfer the state of the configured
IA to Dhcp6Renewing. If valid Reply packet received, the state transfers to Dhcp6Bound
and the valid and preferred timer restarts. If fails, the state transfers to Dhcp6Bound but the
timer continues.
- When RebindRequest is TRUE and the state of the configured IA is Dhcp6Bound, it will
send Rebind packet. If valid Reply packet received, the state transfers to Dhcp6Bound and the
The RenewRebind() function is used to manually extend the valid and preferred lifetimes for the
IPv6 addresses of the configured IA and update other configuration parameters by sending Renew or
Rebind packet.
- When RebindRequest is FALSE and the state of the configured IA is Dhcp6Bound, it
will send Renew packet to the previously DHCPv6 server and transfer the state of the configured
IA to Dhcp6Renewing. If valid Reply packet received, the state transfers to Dhcp6Bound
and the valid and preferred timer restarts. If fails, the state transfers to Dhcp6Bound but the
timer continues.
- When RebindRequest is TRUE and the state of the configured IA is Dhcp6Bound, it will
send Rebind packet. If valid Reply packet received, the state transfers to Dhcp6Bound and the
valid and preferred timer restarts. If fails, the state transfers to Dhcp6Init and the IA can't
be used.
@param[in] This Pointer to the EFI_DHCP4_PROTOCOL instance.
@param[in] RebindRequest If TRUE, it will send Rebind packet and enter the Dhcp6Rebinding state.
@param[in] RebindRequest If TRUE, it will send Rebind packet and enter the Dhcp6Rebinding state.
Otherwise, it will send Renew packet and enter the Dhcp6Renewing state.
@retval EFI_SUCCESS The DHCPv6 renew/rebind exchange process has completed and at
@retval EFI_SUCCESS The DHCPv6 renew/rebind exchange process has completed and at
least one IPv6 address of the configured IA has been bound again
when EFI_DHCP6_CONFIG_DATA.IaInfoEvent is NULL.
The EFI DHCPv6 Protocol instance has sent Renew or Rebind packet
when EFI_DHCP6_CONFIG_DATA.IaInfoEvent is NULL.
The EFI DHCPv6 Protocol instance has sent Renew or Rebind packet
when EFI_DHCP6_CONFIG_DATA.IaInfoEvent is not NULL.
@retval EFI_ACCESS_DENIED The EFI DHCPv6 Child instance hasn't been configured, or the state
of the configured IA is not in Dhcp6Bound.
@retval EFI_ALREADY_STARTED The state of the configured IA has already entered Dhcp6Renewing
when RebindRequest is FALSE.
The state of the configured IA has already entered Dhcp6Rebinding
@retval EFI_ALREADY_STARTED The state of the configured IA has already entered Dhcp6Renewing
when RebindRequest is FALSE.
The state of the configured IA has already entered Dhcp6Rebinding
when RebindRequest is TRUE.
@retval EFI_INVALID_PARAMETER This is NULL.
@retval EFI_DEVICE_ERROR An unexpected system or system error occurred.
@retval EFI_NO_RESPONSE The DHCPv6 renew/rebind exchange process failed because of no response.
@retval EFI_NO_MAPPING No IPv6 address has been bound to the configured IA after the DHCPv6
@retval EFI_NO_MAPPING No IPv6 address has been bound to the configured IA after the DHCPv6
renew/rebind exchange process.
@retval EFI_ABORTED The DHCPv6 renew/rebind exchange process aborted by user.
@@ -635,34 +635,34 @@ EFI_STATUS
Inform that one or more IPv6 addresses assigned by a server are already in use by
another node.
The Decline() function is used to manually decline the assignment of IPv6 addresses, which
have been already used by another node. If all IPv6 addresses of the configured IA are declined
through this function, the state of the IA will switch through Dhcp6Declining to Dhcp6Init,
otherwise, the state of the IA will restore to Dhcp6Bound after the declining process. The
Decline() can only be called when the IA is in Dhcp6Bound state. If the
EFI_DHCP6_CONFIG_DATA.IaInfoEvent is NULL, this function is a blocking operation. It
The Decline() function is used to manually decline the assignment of IPv6 addresses, which
have been already used by another node. If all IPv6 addresses of the configured IA are declined
through this function, the state of the IA will switch through Dhcp6Declining to Dhcp6Init,
otherwise, the state of the IA will restore to Dhcp6Bound after the declining process. The
Decline() can only be called when the IA is in Dhcp6Bound state. If the
EFI_DHCP6_CONFIG_DATA.IaInfoEvent is NULL, this function is a blocking operation. It
will return after the declining process finishes, or aborted by user.
@param[in] This Pointer to the EFI_DHCP4_PROTOCOL instance.
@param[in] AddressCount Number of declining IPv6 addresses.
@param[in] AddressCount Number of declining IPv6 addresses.
@param[in] Addresses Pointer to the buffer stored all the declining IPv6 addresses.
@retval EFI_SUCCESS The DHCPv6 decline exchange process has completed when
@retval EFI_SUCCESS The DHCPv6 decline exchange process has completed when
EFI_DHCP6_CONFIG_DATA.IaInfoEvent is NULL.
The EFI DHCPv6 Protocol instance has sent Decline packet when
The EFI DHCPv6 Protocol instance has sent Decline packet when
EFI_DHCP6_CONFIG_DATA.IaInfoEvent is not NULL.
@retval EFI_INVALID_PARAMETER One or more following conditions are TRUE
- This is NULL.
- This is NULL.
- AddressCount is zero or Addresses is NULL.
@retval EFI_NOT_FOUND Any specified IPv6 address is not correlated with the configured IA
@retval EFI_NOT_FOUND Any specified IPv6 address is not correlated with the configured IA
for this instance.
@retval EFI_ACCESS_DENIED The EFI DHCPv6 Child instance hasn't been configured, or the
@retval EFI_ACCESS_DENIED The EFI DHCPv6 Child instance hasn't been configured, or the
state of the configured IA is not in Dhcp6Bound.
@retval EFI_DEVICE_ERROR An unexpected network or system error occurred.
@retval EFI_ABORTED The DHCPv6 decline exchange process aborted by user.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_DHCP6_DECLINE)(
IN EFI_DHCP6_PROTOCOL *This,
@@ -675,32 +675,32 @@ EFI_STATUS
The Release() function is used to manually release the one or more IPv6 address. If AddressCount
is zero, it will release all IPv6 addresses of the configured IA. If all IPv6 addresses of the IA
are released through this function, the state of the IA will switch through Dhcp6Releasing to
are released through this function, the state of the IA will switch through Dhcp6Releasing to
Dhcp6Init, otherwise, the state of the IA will restore to Dhcp6Bound after the releasing process.
The Release() can only be called when the IA is in Dhcp6Bound state. If the
EFI_DHCP6_CONFIG_DATA.IaInfoEvent is NULL, the function is a blocking operation. It will return
after the releasing process finishes, or aborted by user.
after the releasing process finishes, or aborted by user.
@param[in] This Pointer to the EFI_DHCP6_PROTOCOL instance.
@param[in] AddressCount Number of releasing IPv6 addresses.
@param[in] AddressCount Number of releasing IPv6 addresses.
@param[in] Addresses Pointer to the buffer stored all the releasing IPv6 addresses.
Ignored if AddressCount is zero.
@retval EFI_SUCCESS The DHCPv6 release exchange process has completed when
@retval EFI_SUCCESS The DHCPv6 release exchange process has completed when
EFI_DHCP6_CONFIG_DATA.IaInfoEvent is NULL.
The EFI DHCPv6 Protocol instance has sent Release packet when
The EFI DHCPv6 Protocol instance has sent Release packet when
EFI_DHCP6_CONFIG_DATA.IaInfoEvent is not NULL.
@retval EFI_INVALID_PARAMETER One or more following conditions are TRUE
- This is NULL.
- This is NULL.
- AddressCount is not zero or Addresses is NULL.
@retval EFI_NOT_FOUND Any specified IPv6 address is not correlated with the configured
IA for this instance.
@retval EFI_ACCESS_DENIED The EFI DHCPv6 Child instance hasn't been configured, or the
@retval EFI_ACCESS_DENIED The EFI DHCPv6 Child instance hasn't been configured, or the
state of the configured IA is not in Dhcp6Bound.
@retval EFI_DEVICE_ERROR An unexpected network or system error occurred.
@retval EFI_ABORTED The DHCPv6 release exchange process aborted by user.
@retval EFI_ABORTED The DHCPv6 release exchange process aborted by user.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_DHCP6_RELEASE)(
IN EFI_DHCP6_PROTOCOL *This,
@@ -713,7 +713,7 @@ EFI_STATUS
The Stop() function is used to stop the DHCPv6 S.A.R.R process. If this function is called
successfully, all the IPv6 addresses of the configured IA will be released and the state of
the configured IA will be transferred to Dhcp6Init.
the configured IA will be transferred to Dhcp6Init.
@param[in] This Pointer to the EFI_DHCP6_PROTOCOL instance.
@@ -725,7 +725,7 @@ EFI_STATUS
@retval EFI_INVALID_PARAMETER This is NULL.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_DHCP6_STOP)(
IN EFI_DHCP6_PROTOCOL *This
@@ -734,7 +734,7 @@ EFI_STATUS
/**
Parse the option data in the DHCPv6 packet.
The Parse() function is used to retrieve the option list in the DHCPv6 packet.
The Parse() function is used to retrieve the option list in the DHCPv6 packet.
@param[in] This Pointer to the EFI_DHCP6_PROTOCOL instance.
@@ -751,7 +751,7 @@ EFI_STATUS
- Packet is not a well-formed DHCPv6 packet.
- OptionCount is NULL.
- *OptionCount is not zero and PacketOptionList is NULL.
@retval EFI_BUFFER_TOO_SMALL *OptionCount is smaller than the number of options that were
@retval EFI_BUFFER_TOO_SMALL *OptionCount is smaller than the number of options that were
found in the Packet.
**/

View File

@@ -1,8 +1,8 @@
/** @file
Provides the basic interfaces to abstract platform information regarding an
IDE controller.
Provides the basic interfaces to abstract platform information regarding an
IDE controller.
Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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
@@ -14,7 +14,7 @@
@par Revision Reference:
This Protocol is defined in UEFI Platform Initialization Specification 1.6
Volume 5: Standards
**/
#ifndef __DISK_INFO_H__
@@ -91,7 +91,7 @@ typedef struct _EFI_DISK_INFO_PROTOCOL EFI_DISK_INFO_PROTOCOL;
/**
Provides inquiry information for the controller type.
This function is used by the IDE bus driver to get inquiry data. Data format
of Identify data is defined by the Interface GUID.
@@ -100,9 +100,9 @@ typedef struct _EFI_DISK_INFO_PROTOCOL EFI_DISK_INFO_PROTOCOL;
@param[in,out] InquiryDataSize Pointer to the value for the inquiry data size.
@retval EFI_SUCCESS The command was accepted without any errors.
@retval EFI_NOT_FOUND Device does not support this data class
@retval EFI_DEVICE_ERROR Error reading InquiryData from device
@retval EFI_BUFFER_TOO_SMALL InquiryDataSize not big enough
@retval EFI_NOT_FOUND Device does not support this data class
@retval EFI_DEVICE_ERROR Error reading InquiryData from device
@retval EFI_BUFFER_TOO_SMALL InquiryDataSize not big enough
**/
typedef
@@ -119,16 +119,16 @@ EFI_STATUS
This function is used by the IDE bus driver to get identify data. Data format
of Identify data is defined by the Interface GUID.
@param[in] This Pointer to the EFI_DISK_INFO_PROTOCOL
@param[in] This Pointer to the EFI_DISK_INFO_PROTOCOL
instance.
@param[in,out] IdentifyData Pointer to a buffer for the identify data.
@param[in,out] IdentifyDataSize Pointer to the value for the identify data
size.
@retval EFI_SUCCESS The command was accepted without any errors.
@retval EFI_NOT_FOUND Device does not support this data class
@retval EFI_DEVICE_ERROR Error reading IdentifyData from device
@retval EFI_BUFFER_TOO_SMALL IdentifyDataSize not big enough
@retval EFI_NOT_FOUND Device does not support this data class
@retval EFI_DEVICE_ERROR Error reading IdentifyData from device
@retval EFI_BUFFER_TOO_SMALL IdentifyDataSize not big enough
**/
typedef
@@ -141,8 +141,8 @@ EFI_STATUS
/**
Provides sense data information for the controller type.
This function is used by the IDE bus driver to get sense data.
This function is used by the IDE bus driver to get sense data.
Data format of Sense data is defined by the Interface GUID.
@param[in] This Pointer to the EFI_DISK_INFO_PROTOCOL instance.
@@ -168,7 +168,7 @@ EFI_STATUS
/**
This function is used by the IDE bus driver to get controller information.
@param[in] This Pointer to the EFI_DISK_INFO_PROTOCOL instance.
@param[in] This Pointer to the EFI_DISK_INFO_PROTOCOL instance.
@param[out] IdeChannel Pointer to the Ide Channel number. Primary or secondary.
@param[out] IdeDevice Pointer to the Ide Device number. Master or slave.
@@ -189,7 +189,7 @@ EFI_STATUS
///
struct _EFI_DISK_INFO_PROTOCOL {
///
/// A GUID that defines the format of buffers for the other member functions
/// A GUID that defines the format of buffers for the other member functions
/// of this protocol.
///
EFI_GUID Interface;
@@ -209,7 +209,7 @@ struct _EFI_DISK_INFO_PROTOCOL {
///
EFI_DISK_INFO_SENSE_DATA SenseData;
///
/// Specific controller.
/// Specific controller.
///
EFI_DISK_INFO_WHICH_IDE WhichIde;
};

View File

@@ -5,14 +5,14 @@
oriented devices. The Disk IO protocol is intended to layer on top of the
Block IO protocol.
Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -26,14 +26,14 @@
///
/// Protocol GUID name defined in EFI1.1.
///
///
#define DISK_IO_PROTOCOL EFI_DISK_IO_PROTOCOL_GUID
typedef struct _EFI_DISK_IO_PROTOCOL EFI_DISK_IO_PROTOCOL;
///
/// Protocol defined in EFI1.1.
///
///
typedef EFI_DISK_IO_PROTOCOL EFI_DISK_IO;
/**
@@ -95,7 +95,7 @@ EFI_STATUS
///
/// Revision defined in EFI1.1
///
///
#define EFI_DISK_IO_INTERFACE_REVISION EFI_DISK_IO_PROTOCOL_REVISION
///

View File

@@ -4,14 +4,14 @@
The Disk I/O 2 protocol defines an extension to the Disk I/O protocol to enable
non-blocking / asynchronous byte-oriented disk operation.
Copyright (c) 2013, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/

View File

@@ -4,7 +4,7 @@
DNSv4 Service Binding Protocol (DNSv4SB)
DNSv4 Protocol (DNSv4)
Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
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
@@ -38,23 +38,23 @@ typedef struct _EFI_DNS4_PROTOCOL EFI_DNS4_PROTOCOL;
///
typedef struct {
///
/// Count of the DNS servers. When used with GetModeData(),
/// this field is the count of originally configured servers when
/// Configure() was called for this instance. When used with
/// Configure() this is the count of caller-supplied servers. If the
/// DnsServerListCount is zero, the DNS server configuration
/// Count of the DNS servers. When used with GetModeData(),
/// this field is the count of originally configured servers when
/// Configure() was called for this instance. When used with
/// Configure() this is the count of caller-supplied servers. If the
/// DnsServerListCount is zero, the DNS server configuration
/// will be retrieved from DHCP server automatically.
///
UINTN DnsServerListCount;
///
/// Pointer to DNS server list containing DnsServerListCount entries or NULL
/// if DnsServerListCountis 0. For Configure(), this will be NULL when there are
/// no caller supplied server addresses, and, the DNS instance will retrieve
/// DNS server from DHCP Server. The provided DNS server list is
/// recommended to be filled up in the sequence of preference. When
/// used with GetModeData(), the buffer containing the list will
/// be allocated by the driver implementing this protocol and must be
/// freed by the caller. When used with Configure(), the buffer
/// Pointer to DNS server list containing DnsServerListCount entries or NULL
/// if DnsServerListCountis 0. For Configure(), this will be NULL when there are
/// no caller supplied server addresses, and, the DNS instance will retrieve
/// DNS server from DHCP Server. The provided DNS server list is
/// recommended to be filled up in the sequence of preference. When
/// used with GetModeData(), the buffer containing the list will
/// be allocated by the driver implementing this protocol and must be
/// freed by the caller. When used with Configure(), the buffer
/// containing the list will be allocated and released by the caller.
///
EFI_IPv4_ADDRESS *DnsServerList;
@@ -68,10 +68,10 @@ typedef struct {
///
BOOLEAN EnableDnsCache;
///
/// Use the protocol number defined in "Links to UEFI-Related
/// Documents"(http://uefi.org/uefi) under the heading "IANA
/// Protocol Numbers". Only TCP or UDP are supported, and other
/// protocol values are invalid. An implementation can choose to
/// Use the protocol number defined in "Links to UEFI-Related
/// Documents"(http://uefi.org/uefi) under the heading "IANA
/// Protocol Numbers". Only TCP or UDP are supported, and other
/// protocol values are invalid. An implementation can choose to
/// support only UDP, or both TCP and UDP.
///
UINT8 Protocol;
@@ -135,10 +135,10 @@ typedef struct {
///
UINT32 DnsServerCount;
///
/// Pointer to common list of addresses of all configured DNS server
/// used by EFI_DNS4_PROTOCOL instances. List will include
/// DNS servers configured by this or any other EFI_DNS4_PROTOCOL instance.
/// The storage for this list is allocated by the driver publishing this
/// Pointer to common list of addresses of all configured DNS server
/// used by EFI_DNS4_PROTOCOL instances. List will include
/// DNS servers configured by this or any other EFI_DNS4_PROTOCOL instance.
/// The storage for this list is allocated by the driver publishing this
/// protocol, and must be freed by the caller.
///
EFI_IPv4_ADDRESS *DnsServerList;
@@ -147,8 +147,8 @@ typedef struct {
///
UINT32 DnsCacheCount;
///
/// Pointer to a buffer containing DnsCacheCount DNS Cache
/// entry structures. The storage for this list is allocated by the driver
/// Pointer to a buffer containing DnsCacheCount DNS Cache
/// entry structures. The storage for this list is allocated by the driver
/// publishing this protocol and must be freed by caller.
///
EFI_DNS4_CACHE_ENTRY *DnsCacheList;
@@ -311,7 +311,7 @@ EFI_STATUS
@retval EFI_SUCCESS The operation completed successfully.
@retval EFI_UNSUPPORTED The designated protocol is not supported.
@retval EFI_INVALID_PARAMETER This is NULL.
The StationIp address provided in DnsConfigData is not a
The StationIp address provided in DnsConfigData is not a
valid unicast.
DnsServerList is NULL while DnsServerListCount
is not ZERO.
@@ -321,8 +321,8 @@ EFI_STATUS
allocated.
@retval EFI_DEVICE_ERROR An unexpected system or network error occurred. The
EFI DNSv4 Protocol instance is not configured.
@retval EFI_ALREADY_STARTED Second call to Configure() with DnsConfigData. To
reconfigure the instance the caller must call Configure()
@retval EFI_ALREADY_STARTED Second call to Configure() with DnsConfigData. To
reconfigure the instance the caller must call Configure()
with NULL first to return driver to unconfigured state.
**/
typedef
@@ -363,7 +363,7 @@ EFI_STATUS
/**
IPv4 address to host name translation also known as Reverse DNS lookup.
The IpToHostName() function is used to translate the host address to host name. A type PTR
The IpToHostName() function is used to translate the host address to host name. A type PTR
query is used to get the primary name of the host. Support of this function is optional.
@param[in] This Pointer to EFI_DNS4_PROTOCOL instance.
@@ -391,7 +391,7 @@ EFI_STATUS
);
/**
Retrieve arbitrary information from the DNS server.
Retrieve arbitrary information from the DNS server.
This GeneralLookup() function retrieves arbitrary information from the DNS. The caller
supplies a QNAME, QTYPE, and QCLASS, and all of the matching RRs are returned. All

View File

@@ -4,7 +4,7 @@
DNSv6 Service Binding Protocol (DNSv6SB)
DNSv6 Protocol (DNSv6)
Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
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
@@ -49,8 +49,8 @@ typedef struct {
///
UINT8 Protocol;
///
/// The local IP address to use. Set to zero to let the underlying IPv6
/// driver choose a source address. If not zero it must be one of the
/// The local IP address to use. Set to zero to let the underlying IPv6
/// driver choose a source address. If not zero it must be one of the
/// configured IP addresses in the underlying IPv6 driver.
///
EFI_IPv6_ADDRESS StationIp;
@@ -59,23 +59,23 @@ typedef struct {
///
UINT16 LocalPort;
///
/// Count of the DNS servers. When used with GetModeData(),
/// this field is the count of originally configured servers when
/// Configure() was called for this instance. When used with
/// Configure() this is the count of caller-supplied servers. If the
/// DnsServerListCount is zero, the DNS server configuration
/// Count of the DNS servers. When used with GetModeData(),
/// this field is the count of originally configured servers when
/// Configure() was called for this instance. When used with
/// Configure() this is the count of caller-supplied servers. If the
/// DnsServerListCount is zero, the DNS server configuration
/// will be retrieved from DHCP server automatically.
///
UINT32 DnsServerCount;
///
/// Pointer to DNS server list containing DnsServerListCount
/// entries or NULL if DnsServerListCount is 0. For Configure(),
/// this will be NULL when there are no caller supplied server addresses
/// and the DNS instance will retrieve DNS server from DHCP Server.
/// The provided DNS server list is recommended to be filled up in the sequence
/// of preference. When used with GetModeData(), the buffer containing the list
/// will be allocated by the driver implementing this protocol and must be
/// freed by the caller. When used with Configure(), the buffer
/// entries or NULL if DnsServerListCount is 0. For Configure(),
/// this will be NULL when there are no caller supplied server addresses
/// and the DNS instance will retrieve DNS server from DHCP Server.
/// The provided DNS server list is recommended to be filled up in the sequence
/// of preference. When used with GetModeData(), the buffer containing the list
/// will be allocated by the driver implementing this protocol and must be
/// freed by the caller. When used with Configure(), the buffer
/// containing the list will be allocated and released by the caller.
///
EFI_IPv6_ADDRESS *DnsServerList;
@@ -121,21 +121,21 @@ typedef struct {
///
/// Number of configured DNS6 servers.
///
UINT32 DnsServerCount;
UINT32 DnsServerCount;
///
/// Pointer to common list of addresses of all configured DNS server used by EFI_DNS6_PROTOCOL
/// instances. List will include DNS servers configured by this or any other EFI_DNS6_PROTOCOL
/// instance. The storage for this list is allocated by the driver publishing this protocol,
/// Pointer to common list of addresses of all configured DNS server used by EFI_DNS6_PROTOCOL
/// instances. List will include DNS servers configured by this or any other EFI_DNS6_PROTOCOL
/// instance. The storage for this list is allocated by the driver publishing this protocol,
/// and must be freed by the caller.
///
EFI_IPv6_ADDRESS *DnsServerList;
EFI_IPv6_ADDRESS *DnsServerList;
///
/// Number of DNS Cache entries. The DNS Cache is shared among all DNS instances.
///
UINT32 DnsCacheCount;
///
/// Pointer to a buffer containing DnsCacheCount DNS Cache
/// entry structures. The storage for thislist is allocated by the driver
/// Pointer to a buffer containing DnsCacheCount DNS Cache
/// entry structures. The storage for thislist is allocated by the driver
/// publishing this protocol and must be freed by caller.
///
EFI_DNS6_CACHE_ENTRY *DnsCacheList;
@@ -272,7 +272,7 @@ typedef struct {
This function is used to retrieve DNS mode data for this DNS instance.
@param[in] This Pointer to EFI_DNS6_PROTOCOL instance.
@param[out] DnsModeData Pointer to the caller-allocated storage for the
@param[out] DnsModeData Pointer to the caller-allocated storage for the
EFI_DNS6_MODE_DATA data.
@retval EFI_SUCCESS The operation completed successfully.
@@ -296,7 +296,7 @@ EFI_STATUS
EFI DNSv6 Protocol driver instance. Reset the DNS instance if DnsConfigData is NULL.
@param[in] This Pointer to EFI_DNS6_PROTOCOL instance.
@param[in] DnsConfigData Pointer to the configuration data structure. All associated
@param[in] DnsConfigData Pointer to the configuration data structure. All associated
storage to be allocated and released by caller.
@retval EFI_SUCCESS The operation completed successfully.
@@ -308,8 +308,8 @@ EFI_STATUS
@retval EFI_DEVICE_ERROR An unexpected system or network error occurred. The
EFI DNSv6 Protocol instance is not configured.
@retval EFI_UNSUPPORTED The designated protocol is not supported.
@retval EFI_ALREADY_STARTED Second call to Configure() with DnsConfigData. To
reconfigure the instance the caller must call Configure() with
@retval EFI_ALREADY_STARTED Second call to Configure() with DnsConfigData. To
reconfigure the instance the caller must call Configure() with
NULL first to return driver to unconfigured state.
**/
typedef

View File

@@ -1,17 +1,17 @@
/** @file
UEFI DriverBinding Protocol is defined in UEFI specification.
This protocol is produced by every driver that follows the UEFI Driver Model,
This protocol is produced by every driver that follows the UEFI Driver Model,
and it is the central component that allows drivers and controllers to be managed.
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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.
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.
**/
@@ -29,33 +29,33 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
typedef struct _EFI_DRIVER_BINDING_PROTOCOL EFI_DRIVER_BINDING_PROTOCOL;
/**
Tests to see if this driver supports a given controller. If a child device is provided,
Tests to see if this driver supports a given controller. If a child device is provided,
it further tests to see if this driver supports creating a handle for the specified child device.
This function checks to see if the driver specified by This supports the device specified by
ControllerHandle. Drivers will typically use the device path attached to
ControllerHandle and/or the services from the bus I/O abstraction attached to
ControllerHandle to determine if the driver supports ControllerHandle. This function
may be called many times during platform initialization. In order to reduce boot times, the tests
performed by this function must be very small, and take as little time as possible to execute. This
function must not change the state of any hardware devices, and this function must be aware that the
device specified by ControllerHandle may already be managed by the same driver or a
different driver. This function must match its calls to AllocatePages() with FreePages(),
AllocatePool() with FreePool(), and OpenProtocol() with CloseProtocol().
Because ControllerHandle may have been previously started by the same driver, if a protocol is
already in the opened state, then it must not be closed with CloseProtocol(). This is required
This function checks to see if the driver specified by This supports the device specified by
ControllerHandle. Drivers will typically use the device path attached to
ControllerHandle and/or the services from the bus I/O abstraction attached to
ControllerHandle to determine if the driver supports ControllerHandle. This function
may be called many times during platform initialization. In order to reduce boot times, the tests
performed by this function must be very small, and take as little time as possible to execute. This
function must not change the state of any hardware devices, and this function must be aware that the
device specified by ControllerHandle may already be managed by the same driver or a
different driver. This function must match its calls to AllocatePages() with FreePages(),
AllocatePool() with FreePool(), and OpenProtocol() with CloseProtocol().
Because ControllerHandle may have been previously started by the same driver, if a protocol is
already in the opened state, then it must not be closed with CloseProtocol(). This is required
to guarantee the state of ControllerHandle is not modified by this function.
@param[in] This A pointer to the EFI_DRIVER_BINDING_PROTOCOL instance.
@param[in] ControllerHandle The handle of the controller to test. This handle
must support a protocol interface that supplies
@param[in] ControllerHandle The handle of the controller to test. This handle
must support a protocol interface that supplies
an I/O abstraction to the driver.
@param[in] RemainingDevicePath A pointer to the remaining portion of a device path. This
parameter is ignored by device drivers, and is optional for bus
drivers. For bus drivers, if this parameter is not NULL, then
the bus driver must determine if the bus controller specified
by ControllerHandle and the child controller specified
by RemainingDevicePath are both supported by this
@param[in] RemainingDevicePath A pointer to the remaining portion of a device path. This
parameter is ignored by device drivers, and is optional for bus
drivers. For bus drivers, if this parameter is not NULL, then
the bus driver must determine if the bus controller specified
by ControllerHandle and the child controller specified
by RemainingDevicePath are both supported by this
bus driver.
@retval EFI_SUCCESS The device specified by ControllerHandle and
@@ -82,28 +82,28 @@ EFI_STATUS
Starts a device controller or a bus controller.
The Start() function is designed to be invoked from the EFI boot service ConnectController().
As a result, much of the error checking on the parameters to Start() has been moved into this
common boot service. It is legal to call Start() from other locations,
As a result, much of the error checking on the parameters to Start() has been moved into this
common boot service. It is legal to call Start() from other locations,
but the following calling restrictions must be followed, or the system behavior will not be deterministic.
1. ControllerHandle must be a valid EFI_HANDLE.
2. If RemainingDevicePath is not NULL, then it must be a pointer to a naturally aligned
EFI_DEVICE_PATH_PROTOCOL.
3. Prior to calling Start(), the Supported() function for the driver specified by This must
have been called with the same calling parameters, and Supported() must have returned EFI_SUCCESS.
have been called with the same calling parameters, and Supported() must have returned EFI_SUCCESS.
@param[in] This A pointer to the EFI_DRIVER_BINDING_PROTOCOL instance.
@param[in] ControllerHandle The handle of the controller to start. This handle
must support a protocol interface that supplies
@param[in] ControllerHandle The handle of the controller to start. This handle
must support a protocol interface that supplies
an I/O abstraction to the driver.
@param[in] RemainingDevicePath A pointer to the remaining portion of a device path. This
parameter is ignored by device drivers, and is optional for bus
drivers. For a bus driver, if this parameter is NULL, then handles
for all the children of Controller are created by this driver.
If this parameter is not NULL and the first Device Path Node is
not the End of Device Path Node, then only the handle for the
child device specified by the first Device Path Node of
@param[in] RemainingDevicePath A pointer to the remaining portion of a device path. This
parameter is ignored by device drivers, and is optional for bus
drivers. For a bus driver, if this parameter is NULL, then handles
for all the children of Controller are created by this driver.
If this parameter is not NULL and the first Device Path Node is
not the End of Device Path Node, then only the handle for the
child device specified by the first Device Path Node of
RemainingDevicePath is created by this driver.
If the first Device Path Node of RemainingDevicePath is
If the first Device Path Node of RemainingDevicePath is
the End of Device Path Node, no child handle is created by this
driver.
@@ -123,10 +123,10 @@ EFI_STATUS
/**
Stops a device controller or a bus controller.
The Stop() function is designed to be invoked from the EFI boot service DisconnectController().
As a result, much of the error checking on the parameters to Stop() has been moved
into this common boot service. It is legal to call Stop() from other locations,
The Stop() function is designed to be invoked from the EFI boot service DisconnectController().
As a result, much of the error checking on the parameters to Stop() has been moved
into this common boot service. It is legal to call Stop() from other locations,
but the following calling restrictions must be followed, or the system behavior will not be deterministic.
1. ControllerHandle must be a valid EFI_HANDLE that was used on a previous call to this
same driver's Start() function.
@@ -134,13 +134,13 @@ EFI_STATUS
EFI_HANDLE. In addition, all of these handles must have been created in this driver's
Start() function, and the Start() function must have called OpenProtocol() on
ControllerHandle with an Attribute of EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER.
@param[in] This A pointer to the EFI_DRIVER_BINDING_PROTOCOL instance.
@param[in] ControllerHandle A handle to the device being stopped. The handle must
support a bus specific I/O protocol for the driver
@param[in] ControllerHandle A handle to the device being stopped. The handle must
support a bus specific I/O protocol for the driver
to use to stop the device.
@param[in] NumberOfChildren The number of child device handles in ChildHandleBuffer.
@param[in] ChildHandleBuffer An array of child handles to be freed. May be NULL
@param[in] ChildHandleBuffer An array of child handles to be freed. May be NULL
if NumberOfChildren is 0.
@retval EFI_SUCCESS The device was stopped.
@@ -157,14 +157,14 @@ EFI_STATUS
);
///
/// This protocol provides the services required to determine if a driver supports a given controller.
/// This protocol provides the services required to determine if a driver supports a given controller.
/// If a controller is supported, then it also provides routines to start and stop the controller.
///
struct _EFI_DRIVER_BINDING_PROTOCOL {
EFI_DRIVER_BINDING_SUPPORTED Supported;
EFI_DRIVER_BINDING_START Start;
EFI_DRIVER_BINDING_STOP Stop;
///
/// The version number of the UEFI driver that produced the
/// EFI_DRIVER_BINDING_PROTOCOL. This field is used by
@@ -178,20 +178,20 @@ struct _EFI_DRIVER_BINDING_PROTOCOL {
/// 0xffffffef are reserved for IHV-developed drivers.
///
UINT32 Version;
///
/// The image handle of the UEFI driver that produced this instance
/// of the EFI_DRIVER_BINDING_PROTOCOL.
///
EFI_HANDLE ImageHandle;
///
/// The handle on which this instance of the
/// EFI_DRIVER_BINDING_PROTOCOL is installed. In most
/// cases, this is the same handle as ImageHandle. However, for
/// UEFI drivers that produce more than one instance of the
/// EFI_DRIVER_BINDING_PROTOCOL, this value may not be
/// the same as ImageHandle.
/// the same as ImageHandle.
///
EFI_HANDLE DriverBindingHandle;
};

View File

@@ -1,14 +1,14 @@
/** @file
EFI Driver Configuration Protocol
Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -24,11 +24,11 @@
{ \
0x107a772b, 0xd5e1, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \
}
typedef struct _EFI_DRIVER_CONFIGURATION_PROTOCOL EFI_DRIVER_CONFIGURATION_PROTOCOL;
/**
Allows the user to set controller specific options for a controller that a
Allows the user to set controller specific options for a controller that a
driver is currently managing.
@param This A pointer to the EFI_DRIVER_CONFIGURATION_PROTOCOL instance.
@@ -154,9 +154,9 @@ struct _EFI_DRIVER_CONFIGURATION_PROTOCOL {
EFI_DRIVER_CONFIGURATION_OPTIONS_VALID OptionsValid;
EFI_DRIVER_CONFIGURATION_FORCE_DEFAULTS ForceDefaults;
///
/// A Null-terminated ASCII string that contains one or more
/// ISO 639-2 language codes. This is the list of language
/// codes that this protocol supports.
/// A Null-terminated ASCII string that contains one or more
/// ISO 639-2 language codes. This is the list of language
/// codes that this protocol supports.
///
CHAR8 *SupportedLanguages;
};

View File

@@ -1,14 +1,14 @@
/** @file
UEFI Driver Configuration2 Protocol
Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -22,7 +22,7 @@
{ \
0xbfd7dc1d, 0x24f1, 0x40d9, {0x82, 0xe7, 0x2e, 0x09, 0xbb, 0x6b, 0x4e, 0xbe } \
}
typedef struct _EFI_DRIVER_CONFIGURATION2_PROTOCOL EFI_DRIVER_CONFIGURATION2_PROTOCOL;
typedef enum {
@@ -55,7 +55,7 @@ typedef enum {
#define EFI_DRIVER_CONFIGURATION_PERORMANCE_DEFAULTS 0x00000003
/**
Allows the user to set controller specific options for a controller that a
Allows the user to set controller specific options for a controller that a
driver is currently managing.
@param This A pointer to the EFI_DRIVER_CONFIGURATION2_PROTOCOL instance.
@@ -180,7 +180,7 @@ struct _EFI_DRIVER_CONFIGURATION2_PROTOCOL {
EFI_DRIVER_CONFIGURATION2_FORCE_DEFAULTS ForceDefaults;
///
/// A Null-terminated ASCII string that contains one or more RFC 4646
/// language codes. This is the list of language codes that this protocol supports.
/// language codes. This is the list of language codes that this protocol supports.
///
CHAR8 *SupportedLanguages;
};

View File

@@ -1,14 +1,14 @@
/** @file
EFI Driver Diagnostics Protocol
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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.
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.
**/
@@ -41,7 +41,7 @@ typedef enum {
///
EfiDriverDiagnosticTypeManufacturing= 2,
///
/// This is an optional diagnostic type that would only be used in the situation where an
/// This is an optional diagnostic type that would only be used in the situation where an
/// EFI_NOT_READY had been returned by a previous call to RunDiagnostics()
/// and there is a desire to cancel the current running diagnostics operation.
///
@@ -121,8 +121,8 @@ struct _EFI_DRIVER_DIAGNOSTICS_PROTOCOL {
EFI_DRIVER_DIAGNOSTICS_RUN_DIAGNOSTICS RunDiagnostics;
///
/// A Null-terminated ASCII string that contains one or more ISO 639-2
/// language codes. This is the list of language codes that this protocol supports.
///
/// language codes. This is the list of language codes that this protocol supports.
///
CHAR8 *SupportedLanguages;
};

View File

@@ -1,14 +1,14 @@
/** @file
UEFI Driver Diagnostics2 Protocol
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -21,7 +21,7 @@
{ \
0x4d330321, 0x025f, 0x4aac, {0x90, 0xd8, 0x5e, 0xd9, 0x00, 0x17, 0x3b, 0x63 } \
}
typedef struct _EFI_DRIVER_DIAGNOSTICS2_PROTOCOL EFI_DRIVER_DIAGNOSTICS2_PROTOCOL;
/**
@@ -31,7 +31,7 @@ typedef struct _EFI_DRIVER_DIAGNOSTICS2_PROTOCOL EFI_DRIVER_DIAGNOSTICS2_PROTOC
@param ControllerHandle The handle of the controller to run diagnostics on.
@param ChildHandle The handle of the child controller to run diagnostics on
This is an optional parameter that may be NULL. It will
be NULL for device drivers. It will also be NULL for
be NULL for device drivers. It will also be NULL for
bus drivers that wish to run diagnostics on the bus
controller. It will not be NULL for a bus driver that
wishes to run diagnostics on one of its child controllers.
@@ -101,8 +101,8 @@ struct _EFI_DRIVER_DIAGNOSTICS2_PROTOCOL {
EFI_DRIVER_DIAGNOSTICS2_RUN_DIAGNOSTICS RunDiagnostics;
///
/// A Null-terminated ASCII string that contains one or more RFC 4646
/// language codes. This is the list of language codes that this protocol supports.
///
/// language codes. This is the list of language codes that this protocol supports.
///
CHAR8 *SupportedLanguages;
};

View File

@@ -1,14 +1,14 @@
/** @file
UEFI Driver Family Protocol
Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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.
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.
**/
@@ -19,14 +19,14 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
{ \
0xb1ee129e, 0xda36, 0x4181, { 0x91, 0xf8, 0x4, 0xa4, 0x92, 0x37, 0x66, 0xa7 } \
}
typedef struct _EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL;
//
// Prototypes for the Driver Family Override Protocol
//
//
/**
//
/**
This function returns the version value associated with the driver specified by This.
Retrieves the version of the driver that is used by the EFI Boot Service ConnectController()
@@ -35,10 +35,10 @@ typedef struct _EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL EFI_DRIVER_FAMILY_OVERRIDE_
the drivers with higher values returned by GetVersion() are higher priority than drivers that
return lower values from GetVersion().
@param This A pointer to the EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL instance.
@return The version value associated with the driver specified by This.
@param This A pointer to the EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL instance.
@return The version value associated with the driver specified by This.
**/
typedef
UINT32
@@ -47,15 +47,15 @@ UINT32
);
///
/// When installed, the Driver Family Override Protocol produces a GUID that represents
/// a family of drivers. Drivers with the same GUID are members of the same family
/// When drivers are connected to controllers, drivers with a higher revision value
/// in the same driver family are connected with a higher priority than drivers
/// When installed, the Driver Family Override Protocol produces a GUID that represents
/// a family of drivers. Drivers with the same GUID are members of the same family
/// When drivers are connected to controllers, drivers with a higher revision value
/// in the same driver family are connected with a higher priority than drivers
/// with a lower revision value in the same driver family. The EFI Boot Service
/// Connect Controller uses five rules to build a prioritized list of drivers when
/// Connect Controller uses five rules to build a prioritized list of drivers when
/// a request is made to connect a driver to a controller. The Driver Family Protocol
/// rule is between the Platform Specific Driver Override Protocol and above the
/// Bus Specific Driver Override Protocol.
/// rule is between the Platform Specific Driver Override Protocol and above the
/// Bus Specific Driver Override Protocol.
///
struct _EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL {
EFI_DRIVER_FAMILY_OVERRIDE_GET_VERSION GetVersion;

View File

@@ -5,33 +5,33 @@
the health status for a controller to be retrieved. If a controller is not in a usable
state, status messages may be reported to the user, repair operations can be invoked,
and the user may be asked to make software and/or hardware configuration changes.
The Driver Health Protocol is optionally produced by a driver that follows the
EFI Driver Model. If an EFI Driver needs to report health status to the platform,
provide warning or error messages to the user, perform length repair operations,
or request the user to make hardware or software configuration changes, then the
The Driver Health Protocol is optionally produced by a driver that follows the
EFI Driver Model. If an EFI Driver needs to report health status to the platform,
provide warning or error messages to the user, perform length repair operations,
or request the user to make hardware or software configuration changes, then the
Driver Health Protocol must be produced.
A controller that is managed by driver that follows the EFI Driver Model and
produces the Driver Health Protocol must report the current health of the
controllers that the driver is currently managing. The controller can initially
be healthy, failed, require repair, or require configuration. If a controller
requires configuration, and the user make configuration changes, the controller
may then need to be reconnected or the system may need to be rebooted for the
configuration changes to take affect.
Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2014, Hewlett-Packard Development Company, L.P.<BR>
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
A controller that is managed by driver that follows the EFI Driver Model and
produces the Driver Health Protocol must report the current health of the
controllers that the driver is currently managing. The controller can initially
be healthy, failed, require repair, or require configuration. If a controller
requires configuration, and the user make configuration changes, the controller
may then need to be reconnected or the system may need to be rebooted for the
configuration changes to take affect.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2014, Hewlett-Packard Development Company, L.P.<BR>
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.
@par Revision Reference:
This Protocol is defined in UEFI Specification 2.3d
This Protocol is defined in UEFI Specification 2.3d
**/
@@ -42,7 +42,7 @@
{ \
0x2a534210, 0x9280, 0x41d8, { 0xae, 0x79, 0xca, 0xda, 0x1, 0xa2, 0xb1, 0x27 } \
}
typedef struct _EFI_DRIVER_HEALTH_PROTOCOL EFI_DRIVER_HEALTH_PROTOCOL;
///
@@ -63,12 +63,12 @@ typedef enum {
typedef struct {
EFI_HII_HANDLE HiiHandle;
EFI_STRING_ID StringId;
///
/// 64-bit numeric value of the warning/error specified by this message.
/// A value of 0x0000000000000000 is used to indicate that MessageCode is not specified.
/// 64-bit numeric value of the warning/error specified by this message.
/// A value of 0x0000000000000000 is used to indicate that MessageCode is not specified.
/// The values 0x0000000000000001 to 0x0fffffffffffffff are reserved for allocation by the UEFI Specification.
/// The values 0x1000000000000000 to 0x1fffffffffffffff are reserved for IHV-developed drivers.
/// The values 0x1000000000000000 to 0x1fffffffffffffff are reserved for IHV-developed drivers.
/// The values 0x8000000000000000 to 0x8fffffffffffffff is reserved for platform/OEM drivers.
/// All other values are reserved and should not be used.
///
@@ -78,11 +78,11 @@ typedef struct {
/**
Reports the progress of a repair operation
@param[in] Value A value between 0 and Limit that identifies the current
@param[in] Value A value between 0 and Limit that identifies the current
progress of the repair operation.
@param[in] Limit The maximum value of Value for the current repair operation.
For example, a driver that wants to specify progress in
For example, a driver that wants to specify progress in
percent would use a Limit value of 100.
**/
typedef
@@ -93,88 +93,88 @@ EFI_STATUS
);
/**
Retrieves the health status of a controller in the platform. This function can also
optionally return warning messages, error messages, and a set of HII Forms that may
be repair a controller that is not proper configured.
Retrieves the health status of a controller in the platform. This function can also
optionally return warning messages, error messages, and a set of HII Forms that may
be repair a controller that is not proper configured.
@param[in] This A pointer to the EFI_DRIVER_HEALTH_PROTOCOL instance.
@param[in] ControllerHandle The handle of the controller to retrieve the health status
on. This is an optional parameter that may be NULL. If
this parameter is NULL, then the value of ChildHandle is
ignored, and the combined health status of all the devices
@param[in] ControllerHandle The handle of the controller to retrieve the health status
on. This is an optional parameter that may be NULL. If
this parameter is NULL, then the value of ChildHandle is
ignored, and the combined health status of all the devices
that the driver is managing is returned.
@param[in] ChildHandle The handle of the child controller to retrieve the health
status on. This is an optional parameter that may be NULL.
This parameter is ignored of ControllerHandle is NULL. It
will be NULL for device drivers. It will also be NULL for
bus drivers when an attempt is made to collect the health
status of the bus controller. If will not be NULL when an
attempt is made to collect the health status for a child
@param[in] ChildHandle The handle of the child controller to retrieve the health
status on. This is an optional parameter that may be NULL.
This parameter is ignored of ControllerHandle is NULL. It
will be NULL for device drivers. It will also be NULL for
bus drivers when an attempt is made to collect the health
status of the bus controller. If will not be NULL when an
attempt is made to collect the health status for a child
controller produced by the driver.
@param[out] HealthStatus A pointer to the health status that is returned by this
function. This is an optional parameter that may be NULL.
This parameter is ignored of ControllerHandle is NULL.
The health status for the controller specified by
ControllerHandle and ChildHandle is returned.
@param[out] HealthStatus A pointer to the health status that is returned by this
function. This is an optional parameter that may be NULL.
This parameter is ignored of ControllerHandle is NULL.
The health status for the controller specified by
ControllerHandle and ChildHandle is returned.
@param[out] MessageList A pointer to an array of warning or error messages associated
with the controller specified by ControllerHandle and
ChildHandle. This is an optional parameter that may be NULL.
MessageList is allocated by this function with the EFI Boot
Service AllocatePool(), and it is the caller's responsibility
to free MessageList with the EFI Boot Service FreePool().
Each message is specified by tuple of an EFI_HII_HANDLE and
an EFI_STRING_ID. The array of messages is terminated by tuple
containing a EFI_HII_HANDLE with a value of NULL. The
EFI_HII_STRING_PROTOCOL.GetString() function can be used to
retrieve the warning or error message as a Null-terminated
string in a specific language. Messages may be
returned for any of the HealthStatus values except
EfiDriverHealthStatusReconnectRequired and
@param[out] MessageList A pointer to an array of warning or error messages associated
with the controller specified by ControllerHandle and
ChildHandle. This is an optional parameter that may be NULL.
MessageList is allocated by this function with the EFI Boot
Service AllocatePool(), and it is the caller's responsibility
to free MessageList with the EFI Boot Service FreePool().
Each message is specified by tuple of an EFI_HII_HANDLE and
an EFI_STRING_ID. The array of messages is terminated by tuple
containing a EFI_HII_HANDLE with a value of NULL. The
EFI_HII_STRING_PROTOCOL.GetString() function can be used to
retrieve the warning or error message as a Null-terminated
string in a specific language. Messages may be
returned for any of the HealthStatus values except
EfiDriverHealthStatusReconnectRequired and
EfiDriverHealthStatusRebootRequired.
@param[out] FormHiiHandle A pointer to the HII handle containing the HII form used when
configuration is required. The HII handle is associated with
@param[out] FormHiiHandle A pointer to the HII handle containing the HII form used when
configuration is required. The HII handle is associated with
the controller specified by ControllerHandle and ChildHandle.
If this is NULL, then no HII form is available. An HII handle
will only be returned with a HealthStatus value of
will only be returned with a HealthStatus value of
EfiDriverHealthStatusConfigurationRequired.
@retval EFI_SUCCESS ControllerHandle is NULL, and all the controllers
managed by this driver specified by This have a health
status of EfiDriverHealthStatusHealthy with no warning
messages to be returned. The ChildHandle, HealthStatus,
@retval EFI_SUCCESS ControllerHandle is NULL, and all the controllers
managed by this driver specified by This have a health
status of EfiDriverHealthStatusHealthy with no warning
messages to be returned. The ChildHandle, HealthStatus,
MessageList, and FormList parameters are ignored.
@retval EFI_DEVICE_ERROR ControllerHandle is NULL, and one or more of the
controllers managed by this driver specified by This
do not have a health status of EfiDriverHealthStatusHealthy.
The ChildHandle, HealthStatus, MessageList, and
@retval EFI_DEVICE_ERROR ControllerHandle is NULL, and one or more of the
controllers managed by this driver specified by This
do not have a health status of EfiDriverHealthStatusHealthy.
The ChildHandle, HealthStatus, MessageList, and
FormList parameters are ignored.
@retval EFI_DEVICE_ERROR ControllerHandle is NULL, and one or more of the
controllers managed by this driver specified by This
have one or more warning and/or error messages.
The ChildHandle, HealthStatus, MessageList, and
@retval EFI_DEVICE_ERROR ControllerHandle is NULL, and one or more of the
controllers managed by this driver specified by This
have one or more warning and/or error messages.
The ChildHandle, HealthStatus, MessageList, and
FormList parameters are ignored.
@retval EFI_SUCCESS ControllerHandle is not NULL and the health status
of the controller specified by ControllerHandle and
ChildHandle was returned in HealthStatus. A list
of warning and error messages may be optionally
returned in MessageList, and a list of HII Forms
@retval EFI_SUCCESS ControllerHandle is not NULL and the health status
of the controller specified by ControllerHandle and
ChildHandle was returned in HealthStatus. A list
of warning and error messages may be optionally
returned in MessageList, and a list of HII Forms
may be optionally returned in FormList.
@retval EFI_UNSUPPORTED ControllerHandle is not NULL, and the controller
specified by ControllerHandle and ChildHandle is not
@retval EFI_UNSUPPORTED ControllerHandle is not NULL, and the controller
specified by ControllerHandle and ChildHandle is not
currently being managed by the driver specified by This.
@retval EFI_INVALID_PARAMETER HealthStatus is NULL.
@retval EFI_OUT_OF_RESOURCES MessageList is not NULL, and there are not enough
@retval EFI_OUT_OF_RESOURCES MessageList is not NULL, and there are not enough
resource available to allocate memory for MessageList.
**/
@@ -190,30 +190,30 @@ EFI_STATUS
);
/**
Performs a repair operation on a controller in the platform. This function can
optionally report repair progress information back to the platform.
Performs a repair operation on a controller in the platform. This function can
optionally report repair progress information back to the platform.
@param[in] This A pointer to the EFI_DRIVER_HEALTH_PROTOCOL instance.
@param[in] ControllerHandle The handle of the controller to repair.
@param[in] ChildHandle The handle of the child controller to repair. This is
an optional parameter that may be NULL. It will be NULL
for device drivers. It will also be NULL for bus
@param[in] ChildHandle The handle of the child controller to repair. This is
an optional parameter that may be NULL. It will be NULL
for device drivers. It will also be NULL for bus
drivers when an attempt is made to repair a bus controller.
If will not be NULL when an attempt is made to repair a
If will not be NULL when an attempt is made to repair a
child controller produced by the driver.
@param[in] RepairNotify A notification function that may be used by a driver to
report the progress of the repair operation. This is
an optional parameter that may be NULL.
@param[in] RepairNotify A notification function that may be used by a driver to
report the progress of the repair operation. This is
an optional parameter that may be NULL.
@retval EFI_SUCCESS An attempt to repair the controller specified by
ControllerHandle and ChildHandle was performed.
The result of the repair operation can bet
@retval EFI_SUCCESS An attempt to repair the controller specified by
ControllerHandle and ChildHandle was performed.
The result of the repair operation can bet
determined by calling GetHealthStatus().
@retval EFI_UNSUPPORTED The driver specified by This is not currently
managing the controller specified by ControllerHandle
@retval EFI_UNSUPPORTED The driver specified by This is not currently
managing the controller specified by ControllerHandle
and ChildHandle.
@retval EFI_OUT_OF_RESOURCES There are not enough resources to perform the
@retval EFI_OUT_OF_RESOURCES There are not enough resources to perform the
repair operation.
*/
@@ -228,10 +228,10 @@ EFI_STATUS
///
/// When installed, the Driver Health Protocol produces a collection of services
/// that allow the health status for a controller to be retrieved. If a controller
/// is not in a usable state, status messages may be reported to the user, repair
/// operations can be invoked, and the user may be asked to make software and/or
/// hardware configuration changes.
/// that allow the health status for a controller to be retrieved. If a controller
/// is not in a usable state, status messages may be reported to the user, repair
/// operations can be invoked, and the user may be asked to make software and/or
/// hardware configuration changes.
///
struct _EFI_DRIVER_HEALTH_PROTOCOL {
EFI_DRIVER_HEALTH_GET_HEALTH_STATUS GetHealthStatus;

View File

@@ -4,14 +4,14 @@
required for EFI drivers that are on PCI and other plug-in
cards.
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -24,16 +24,16 @@
///
/// The EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL provides a
/// mechanism for an EFI driver to publish the version of the EFI
/// specification it conforms to. This protocol must be placed on
/// the driver's image handle when the driver's entry point is
/// mechanism for an EFI driver to publish the version of the EFI
/// specification it conforms to. This protocol must be placed on
/// the driver's image handle when the driver's entry point is
/// called.
///
typedef struct _EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL {
///
/// The size, in bytes, of the entire structure. Future versions of this
/// The size, in bytes, of the entire structure. Future versions of this
/// specification may grow the size of the structure.
///
///
UINT32 Length;
///
/// The latest version of the UEFI specification that this driver conforms to.

View File

@@ -1,11 +1,11 @@
/** @file
EFI EAP(Extended Authenticaton Protocol) Protocol Definition
The EFI EAP Protocol is used to abstract the ability to configure and extend the
EAP framework.
EAP framework.
The definitions in this file are defined in UEFI Specification 2.3.1B, which have
not been verified by one implementation yet.
Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
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
@@ -14,7 +14,7 @@
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
@par Revision Reference:
@par Revision Reference:
This Protocol is introduced in UEFI Specification 2.2
**/
@@ -31,7 +31,7 @@
typedef struct _EFI_EAP_PROTOCOL EFI_EAP_PROTOCOL;
///
/// Type for the identification number assigned to the Port by the
/// Type for the identification number assigned to the Port by the
/// System in which the Port resides.
///
typedef VOID * EFI_PORT_HANDLE;
@@ -61,7 +61,7 @@ typedef VOID * EFI_PORT_HANDLE;
@param[in] RequestSize Packet size in bytes for the most recently received
EAP-Request packet.
@param[in] Buffer Pointer to the buffer to hold the built packet.
@param[in, out] BufferSize Pointer to the buffer size in bytes.
@param[in, out] BufferSize Pointer to the buffer size in bytes.
On input, it is the buffer size provided by the caller.
On output, it is the buffer size in fact needed to contain
the packet.
@@ -74,32 +74,32 @@ typedef
EFI_STATUS
(EFIAPI *EFI_EAP_BUILD_RESPONSE_PACKET)(
IN EFI_PORT_HANDLE PortNumber,
IN UINT8 *RequestBuffer,
IN UINTN RequestSize,
IN UINT8 *Buffer,
IN UINT8 *RequestBuffer,
IN UINTN RequestSize,
IN UINT8 *Buffer,
IN OUT UINTN *BufferSize
);
/**
Set the desired EAP authentication method for the Port.
The SetDesiredAuthMethod() function sets the desired EAP authentication method indicated
The SetDesiredAuthMethod() function sets the desired EAP authentication method indicated
by EapAuthType for the Port.
If EapAuthType is an invalid EAP authentication type, then EFI_INVALID_PARAMETER is
If EapAuthType is an invalid EAP authentication type, then EFI_INVALID_PARAMETER is
returned.
If the EAP authentication method of EapAuthType is unsupported by the Ports, then it will
return EFI_UNSUPPORTED.
The cryptographic strength of EFI_EAP_TYPE_TLS shall be at least of hash strength
The cryptographic strength of EFI_EAP_TYPE_TLS shall be at least of hash strength
SHA-256 and RSA key length of at least 2048 bits.
@param[in] This A pointer to the EFI_EAP_PROTOCOL instance that indicates
@param[in] This A pointer to the EFI_EAP_PROTOCOL instance that indicates
the calling context.
@param[in] EapAuthType The type of the EAP authentication method to register. It should
@param[in] EapAuthType The type of the EAP authentication method to register. It should
be the type value defined by RFC. See RFC 2284 for details.
@param[in] Handler The handler of the EAP authentication method to register.
@retval EFI_SUCCESS The EAP authentication method of EapAuthType is
@retval EFI_SUCCESS The EAP authentication method of EapAuthType is
registered successfully.
@retval EFI_INVALID_PARAMETER EapAuthType is an invalid EAP authentication type.
@retval EFI_UNSUPPORTED The EAP authentication method of EapAuthType is
@@ -109,28 +109,28 @@ EFI_STATUS
typedef
EFI_STATUS
(EFIAPI *EFI_EAP_SET_DESIRED_AUTHENTICATION_METHOD)(
IN EFI_EAP_PROTOCOL *This,
IN EFI_EAP_PROTOCOL *This,
IN UINT8 EapAuthType
);
/**
Register an EAP authentication method.
Register an EAP authentication method.
The RegisterAuthMethod() function registers the user provided EAP authentication method,
the type of which is EapAuthType and the handler of which is Handler.
If EapAuthType is an invalid EAP authentication type, then EFI_INVALID_PARAMETER is
The RegisterAuthMethod() function registers the user provided EAP authentication method,
the type of which is EapAuthType and the handler of which is Handler.
If EapAuthType is an invalid EAP authentication type, then EFI_INVALID_PARAMETER is
returned.
If there is not enough system memory to perform the registration, then
If there is not enough system memory to perform the registration, then
EFI_OUT_OF_RESOURCES is returned.
@param[in] This A pointer to the EFI_EAP_PROTOCOL instance that indicates
@param[in] This A pointer to the EFI_EAP_PROTOCOL instance that indicates
the calling context.
@param[in] EapAuthType The type of the EAP authentication method to register. It should
@param[in] EapAuthType The type of the EAP authentication method to register. It should
be the type value defined by RFC. See RFC 2284 for details.
@param[in] Handler The handler of the EAP authentication method to register.
@retval EFI_SUCCESS The EAP authentication method of EapAuthType is
@retval EFI_SUCCESS The EAP authentication method of EapAuthType is
registered successfully.
@retval EFI_INVALID_PARAMETER EapAuthType is an invalid EAP authentication type.
@retval EFI_OUT_OF_RESOURCES There is not enough system memory to perform the registration.
@@ -139,17 +139,17 @@ EFI_STATUS
typedef
EFI_STATUS
(EFIAPI *EFI_EAP_REGISTER_AUTHENTICATION_METHOD)(
IN EFI_EAP_PROTOCOL *This,
IN UINT8 EapAuthType,
IN EFI_EAP_PROTOCOL *This,
IN UINT8 EapAuthType,
IN EFI_EAP_BUILD_RESPONSE_PACKET Handler
);
///
/// EFI_EAP_PROTOCOL
/// is used to configure the desired EAP authentication method for the EAP
/// EFI_EAP_PROTOCOL
/// is used to configure the desired EAP authentication method for the EAP
/// framework and extend the EAP framework by registering new EAP authentication
/// method on a Port. The EAP framework is built on a per-Port basis. Herein, a
/// Port means a NIC. For the details of EAP protocol, please refer to RFC 2284.
/// Port means a NIC. For the details of EAP protocol, please refer to RFC 2284.
///
struct _EFI_EAP_PROTOCOL {
EFI_EAP_SET_DESIRED_AUTHENTICATION_METHOD SetDesiredAuthMethod;

View File

@@ -1,7 +1,7 @@
/** @file
This file defines the EFI EAP Configuration protocol.
Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
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
@@ -156,4 +156,4 @@ struct _EFI_EAP_CONFIGURATION_PROTOCOL {
extern EFI_GUID gEfiEapConfigurationProtocolGuid;
#endif
#endif

View File

@@ -1,12 +1,12 @@
/** @file
EFI EAP Management Protocol Definition
The EFI EAP Management Protocol is designed to provide ease of management and
ease of test for EAPOL state machine. It is intended for the supplicant side.
It conforms to IEEE 802.1x specification.
ease of test for EAPOL state machine. It is intended for the supplicant side.
It conforms to IEEE 802.1x specification.
The definitions in this file are defined in UEFI Specification 2.2, which have
not been verified by one implementation yet.
Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
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
@@ -15,7 +15,7 @@
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
@par Revision Reference:
@par Revision Reference:
This Protocol is introduced in UEFI Specification 2.2
**/
@@ -43,22 +43,22 @@ typedef struct _EFI_EAP_MANAGEMENT_PROTOCOL EFI_EAP_MANAGEMENT_PROTOCOL;
///
/// EFI_EAPOL_PORT_INFO
///
typedef struct _EFI_EAPOL_PORT_INFO {
///
/// The identification number assigned to the Port by the System in
typedef struct _EFI_EAPOL_PORT_INFO {
///
/// The identification number assigned to the Port by the System in
/// which the Port resides.
///
///
EFI_PORT_HANDLE PortNumber;
///
/// The protocol version number of the EAPOL implementation
/// supported by the Port.
///
///
/// The protocol version number of the EAPOL implementation
/// supported by the Port.
///
UINT8 ProtocolVersion;
///
/// The capabilities of the PAE associated with the Port. This field
/// indicates whether Authenticator functionality, Supplicant
///
/// The capabilities of the PAE associated with the Port. This field
/// indicates whether Authenticator functionality, Supplicant
/// functionality, both, or neither, is supported by the Port's PAE.
///
///
UINT8 PaeCapabilities;
} EFI_EAPOL_PORT_INFO;
@@ -77,7 +77,7 @@ typedef enum _EFI_EAPOL_SUPPLICANT_PAE_STATE {
} EFI_EAPOL_SUPPLICANT_PAE_STATE;
///
/// Definitions for ValidFieldMask
/// Definitions for ValidFieldMask
///
///@{
#define AUTH_PERIOD_FIELD_VALID 0x01
@@ -90,27 +90,27 @@ typedef enum _EFI_EAPOL_SUPPLICANT_PAE_STATE {
/// EFI_EAPOL_SUPPLICANT_PAE_CONFIGURATION
///
typedef struct _EFI_EAPOL_SUPPLICANT_PAE_CONFIGURATION {
///
///
/// Indicates which of the following fields are valid.
///
UINT8 ValidFieldMask;
///
UINT8 ValidFieldMask;
///
/// The initial value for the authWhile timer. Its default value is 30s.
///
UINTN AuthPeriod;
UINTN AuthPeriod;
///
/// The initial value for the heldWhile timer. Its default value is 60s.
/// The initial value for the heldWhile timer. Its default value is 60s.
///
UINTN HeldPeriod;
UINTN HeldPeriod;
///
/// The initial value for the startWhen timer. Its default value is 30s.
/// The initial value for the startWhen timer. Its default value is 30s.
///
UINTN StartPeriod;
///
/// The maximum number of successive EAPOL-Start messages will
/// be sent before the Supplicant assumes that there is no
UINTN StartPeriod;
///
/// The maximum number of successive EAPOL-Start messages will
/// be sent before the Supplicant assumes that there is no
/// Authenticator present. Its default value is 3.
///
///
UINTN MaxStart;
} EFI_EAPOL_SUPPLICANT_PAE_CONFIGURATION;
@@ -120,17 +120,17 @@ typedef struct _EFI_EAPOL_SUPPLICANT_PAE_CONFIGURATION {
typedef struct _EFI_EAPOL_SUPPLICANT_PAE_STATISTICS {
///
/// The number of EAPOL frames of any type that have been received by this Supplican.
///
///
UINTN EapolFramesReceived;
///
/// The number of EAPOL frames of any type that have been transmitted by this Supplicant.
/// The number of EAPOL frames of any type that have been transmitted by this Supplicant.
///
UINTN EapolFramesTransmitted;
///
/// The number of EAPOL Start frames that have been transmitted by this Supplicant.
///
///
/// The number of EAPOL Start frames that have been transmitted by this Supplicant.
///
UINTN EapolStartFramesTransmitted;
///
///
/// The number of EAPOL Logoff frames that have been transmitted by this Supplicant.
///
UINTN EapolLogoffFramesTransmitted;
@@ -138,48 +138,48 @@ typedef struct _EFI_EAPOL_SUPPLICANT_PAE_STATISTICS {
/// The number of EAP Resp/Id frames that have been transmitted by this Supplicant.
///
UINTN EapRespIdFramesTransmitted;
///
/// The number of valid EAP Response frames (other than Resp/Id frames) that have been
///
/// The number of valid EAP Response frames (other than Resp/Id frames) that have been
/// transmitted by this Supplicant.
///
UINTN EapResponseFramesTransmitted;
///
///
/// The number of EAP Req/Id frames that have been received by this Supplicant.
///
///
UINTN EapReqIdFramesReceived;
///
/// The number of EAP Request frames (other than Rq/Id frames) that have been received
/// The number of EAP Request frames (other than Rq/Id frames) that have been received
/// by this Supplicant.
///
UINTN EapRequestFramesReceived;
///
/// The number of EAPOL frames that have been received by this Supplicant in which the
/// The number of EAPOL frames that have been received by this Supplicant in which the
/// frame type is not recognized.
///
UINTN InvalidEapolFramesReceived;
///
/// The number of EAPOL frames that have been received by this Supplicant in which the
///
/// The number of EAPOL frames that have been received by this Supplicant in which the
/// Packet Body Length field (7.5.5) is invalid.
///
///
UINTN EapLengthErrorFramesReceived;
///
///
/// The protocol version number carried in the most recently received EAPOL frame.
///
///
UINTN LastEapolFrameVersion;
///
///
/// The source MAC address carried in the most recently received EAPOL frame.
///
///
UINTN LastEapolFrameSource;
} EFI_EAPOL_SUPPLICANT_PAE_STATISTICS;
/**
Read the system configuration information associated with the Port.
Read the system configuration information associated with the Port.
The GetSystemConfiguration() function reads the system configuration
information associated with the Port, including the value of the
information associated with the Port, including the value of the
SystemAuthControl parameter of the System is returned in SystemAuthControl
and the Port's information is returned in the buffer pointed to by PortInfo.
The Port's information is optional.
The Port's information is optional.
If PortInfo is NULL, then reading the Port's information is ignored.
If SystemAuthControl is NULL, then EFI_INVALID_PARAMETER is returned.
@@ -187,7 +187,7 @@ typedef struct _EFI_EAPOL_SUPPLICANT_PAE_STATISTICS {
@param[in] This A pointer to the EFI_EAP_MANAGEMENT_PROTOCOL
instance that indicates the calling context.
@param[out] SystemAuthControl Returns the value of the SystemAuthControl
parameter of the System.
parameter of the System.
TRUE means Enabled. FALSE means Disabled.
@param[out] PortInfo Returns EFI_EAPOL_PORT_INFO structure to describe
the Port's information. This parameter can be NULL
@@ -202,21 +202,21 @@ typedef struct _EFI_EAPOL_SUPPLICANT_PAE_STATISTICS {
typedef
EFI_STATUS
(EFIAPI *EFI_EAP_GET_SYSTEM_CONFIGURATION)(
IN EFI_EAP_MANAGEMENT_PROTOCOL *This,
OUT BOOLEAN *SystemAuthControl,
IN EFI_EAP_MANAGEMENT_PROTOCOL *This,
OUT BOOLEAN *SystemAuthControl,
OUT EFI_EAPOL_PORT_INFO *PortInfo OPTIONAL
);
/**
Set the system configuration information associated with the Port.
Set the system configuration information associated with the Port.
The SetSystemConfiguration() function sets the value of the SystemAuthControl
The SetSystemConfiguration() function sets the value of the SystemAuthControl
parameter of the System to SystemAuthControl.
@param[in] This A pointer to the EFI_EAP_MANAGEMENT_PROTOCOL
instance that indicates the calling context.
@param[in] SystemAuthControl The desired value of the SystemAuthControl
parameter of the System.
@param[in] SystemAuthControl The desired value of the SystemAuthControl
parameter of the System.
TRUE means Enabled. FALSE means Disabled.
@retval EFI_SUCCESS The system configuration information of the
@@ -226,7 +226,7 @@ EFI_STATUS
typedef
EFI_STATUS
(EFIAPI *EFI_EAP_SET_SYSTEM_CONFIGURATION)(
IN EFI_EAP_MANAGEMENT_PROTOCOL *This,
IN EFI_EAP_MANAGEMENT_PROTOCOL *This,
IN BOOLEAN SystemAuthControl
);
@@ -266,7 +266,7 @@ EFI_STATUS
);
/**
Notify the EAPOL state machines for the Port that the user of the System has
Notify the EAPOL state machines for the Port that the user of the System has
logged off.
The UserLogoff() function notifies the EAPOL state machines for the Port.
@@ -290,8 +290,8 @@ EFI_STATUS
The GetSupplicantStatus() function reads the status of the Supplicant PAE state
machine for the Port, including the current state CurrentState and the configuration
of the operational parameters Configuration. The configuration of the operational
parameters is optional. If Configuration is NULL, then reading the configuration
is ignored. The operational parameters in Configuration to be read can also be
parameters is optional. If Configuration is NULL, then reading the configuration
is ignored. The operational parameters in Configuration to be read can also be
specified by Configuration.ValidFieldMask.
If CurrentState is NULL, then EFI_INVALID_PARAMETER is returned.
@@ -303,11 +303,11 @@ EFI_STATUS
@param[in, out] Configuration Returns the configuration of the operational
parameters of the Supplicant PAE state machine
for the Port as required. This parameter can be
NULL to ignore reading the configuration.
On input, Configuration.ValidFieldMask specifies the
NULL to ignore reading the configuration.
On input, Configuration.ValidFieldMask specifies the
operational parameters to be read.
On output, Configuration returns the configuration
of the required operational parameters.
of the required operational parameters.
@retval EFI_SUCCESS The configuration of the operational parameter
of the Supplicant PAE state machine for the Port
@@ -318,16 +318,16 @@ EFI_STATUS
typedef
EFI_STATUS
(EFIAPI *EFI_EAP_GET_SUPPLICANT_STATUS)(
IN EFI_EAP_MANAGEMENT_PROTOCOL *This,
OUT EFI_EAPOL_SUPPLICANT_PAE_STATE *CurrentState,
IN EFI_EAP_MANAGEMENT_PROTOCOL *This,
OUT EFI_EAPOL_SUPPLICANT_PAE_STATE *CurrentState,
IN OUT EFI_EAPOL_SUPPLICANT_PAE_CONFIGURATION *Configuration OPTIONAL
);
/**
Set the configuration of the operational parameter of the Supplicant PAE
Set the configuration of the operational parameter of the Supplicant PAE
state machine for the Port.
The SetSupplicantConfiguration() function sets the configuration of the
The SetSupplicantConfiguration() function sets the configuration of the
operational Parameter of the Supplicant PAE state machine for the Port to
Configuration. The operational parameters in Configuration to be set can be
specified by Configuration.ValidFieldMask.
@@ -336,7 +336,7 @@ EFI_STATUS
@param[in] This A pointer to the EFI_EAP_MANAGEMENT_PROTOCOL
instance that indicates the calling context.
@param[in] Configuration The desired configuration of the operational
@param[in] Configuration The desired configuration of the operational
parameters of the Supplicant PAE state machine
for the Port as required.
@@ -349,23 +349,23 @@ EFI_STATUS
typedef
EFI_STATUS
(EFIAPI *EFI_EAP_SET_SUPPLICANT_CONFIGURATION)(
IN EFI_EAP_MANAGEMENT_PROTOCOL *This,
IN EFI_EAP_MANAGEMENT_PROTOCOL *This,
IN EFI_EAPOL_SUPPLICANT_PAE_CONFIGURATION *Configuration
);
/**
Read the statistical information regarding the operation of the Supplicant
associated with the Port.
associated with the Port.
The GetSupplicantStatistics() function reads the statistical information
The GetSupplicantStatistics() function reads the statistical information
Statistics regarding the operation of the Supplicant associated with the Port.
If Statistics is NULL, then EFI_INVALID_PARAMETER is returned.
@param[in] This A pointer to the EFI_EAP_MANAGEMENT_PROTOCOL
instance that indicates the calling context.
@param[out] Statistics Returns the statistical information regarding the
operation of the Supplicant for the Port.
@param[out] Statistics Returns the statistical information regarding the
operation of the Supplicant for the Port.
@retval EFI_SUCCESS The statistical information regarding the operation
of the Supplicant for the Port is read successfully.
@@ -375,15 +375,15 @@ EFI_STATUS
typedef
EFI_STATUS
(EFIAPI *EFI_EAP_GET_SUPPLICANT_STATISTICS)(
IN EFI_EAP_MANAGEMENT_PROTOCOL *This,
IN EFI_EAP_MANAGEMENT_PROTOCOL *This,
OUT EFI_EAPOL_SUPPLICANT_PAE_STATISTICS *Statistics
);
///
/// EFI_EAP_MANAGEMENT_PROTOCOL
/// EFI_EAP_MANAGEMENT_PROTOCOL
/// is used to control, configure and monitor EAPOL state machine on
/// a Port. EAPOL state machine is built on a per-Port basis. Herein,
/// a Port means a NIC. For the details of EAPOL, please refer to
/// a Port means a NIC. For the details of EAPOL, please refer to
/// IEEE 802.1x specification.
///
struct _EFI_EAP_MANAGEMENT_PROTOCOL {

View File

@@ -1,14 +1,14 @@
/** @file
Describes the protocol interface to the EBC interpreter.
Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -193,7 +193,7 @@ typedef struct _EFI_EBC_PROTOCOL EFI_EBC_PROTOCOL;
/**
Creates a thunk for an EBC entry point, returning the address of the thunk.
A PE32+ EBC image, like any other PE32+ image, contains an optional header that specifies the
entry point for image execution. However, for EBC images, this is the entry point of EBC
instructions, so is not directly executable by the native processor. Therefore, when an EBC image is
@@ -229,7 +229,7 @@ EFI_STATUS
@param ImageHandle Image handle of the EBC image that is being unloaded from memory.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_INVALID_PARAMETER Image handle is not recognized as belonging
@retval EFI_INVALID_PARAMETER Image handle is not recognized as belonging
to an EBC image that has been executed.
**/
typedef
@@ -240,7 +240,7 @@ EFI_STATUS
);
/**
This is the prototype for the Flush callback routine. A pointer to a routine
This is the prototype for the Flush callback routine. A pointer to a routine
of this type is passed to the EBC EFI_EBC_REGISTER_ICACHE_FLUSH protocol service.
@param Start The beginning physical address to flush from the processor's instruction cache.
@@ -257,7 +257,7 @@ EFI_STATUS
);
/**
Registers a callback function that the EBC interpreter calls to flush
Registers a callback function that the EBC interpreter calls to flush
the processor instruction cache following creation of thunks.
@param This A pointer to the EFI_EBC_PROTOCOL instance.
@@ -279,7 +279,7 @@ EFI_STATUS
This function is called to get the version of the loaded EBC interpreter. The value and format of the
returned version is identical to that returned by the EBC BREAK 1 instruction.
@param This A pointer to the EFI_EBC_PROTOCOL instance.
@param This A pointer to the EFI_EBC_PROTOCOL instance.
@param Version Pointer to where to store the returned version of the interpreter.
@retval EFI_SUCCESS The function completed successfully.

View File

@@ -3,14 +3,14 @@
Placed on the video output device child handle that is actively displaying output.
Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/

View File

@@ -4,14 +4,14 @@
This protocol is placed on the video output device child handle. It represents
the EDID information being used for the output device represented by the child handle.
Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -33,7 +33,7 @@ typedef struct {
/// minimum of 128 bytes.
///
UINT32 SizeOfEdid;
///
/// A pointer to a read-only array of bytes that contains the EDID
/// information for an active video output device. This pointer is
@@ -41,7 +41,7 @@ typedef struct {
/// device. The minimum size of a valid Edid buffer is 128 bytes.
/// EDID information is defined in the E-EDID EEPROM
/// specification published by VESA (www.vesa.org).
///
///
UINT8 *Edid;
} EFI_EDID_DISCOVERED_PROTOCOL;

View File

@@ -4,14 +4,14 @@
Allow platform to provide EDID information to the producer of the Graphics Output
protocol.
Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -55,13 +55,13 @@ EFI_STATUS
);
///
/// This protocol is produced by the platform to allow the platform to provide
/// This protocol is produced by the platform to allow the platform to provide
/// EDID information to the producer of the Graphics Output protocol.
///
struct _EFI_EDID_OVERRIDE_PROTOCOL {
EFI_EDID_OVERRIDE_PROTOCOL_GET_EDID GetEdid;
};
extern EFI_GUID gEfiEdidOverrideProtocolGuid;
#endif

View File

@@ -1,18 +1,18 @@
/** @file
Definition of Extended SAL Boot Service Protocol
The Extended SAL Boot Service Protocol provides a mechanisms for platform specific
The Extended SAL Boot Service Protocol provides a mechanisms for platform specific
drivers to update the SAL System Table and register Extended SAL Procedures that are
callable in physical or virtual mode using the SAL calling convention.
Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -36,7 +36,7 @@ typedef struct _EXTENDED_SAL_BOOT_SERVICE_PROTOCOL EXTENDED_SAL_BOOT_SERVICE_PRO
the major revision and the lower byte contains the minor revision.
@param OemId A pointer to a Null-terminated ASCII string that contains OEM unique string.
The string cannot be longer than 32 bytes in total length
@param ProductId A pointer to a Null-terminated ASCII string that uniquely identifies a family of
@param ProductId A pointer to a Null-terminated ASCII string that uniquely identifies a family of
compatible products. The string cannot be longer than 32 bytes in total length.
@retval EFI_SUCCESS The SAL System Table header was updated successfully.
@@ -63,7 +63,7 @@ EFI_STATUS
to the SAL System Table.
@param This A pointer to the EXTENDED_SAL_BOOT_SERVICE_PROTOCOL instance.
@param TableEntry Pointer to a buffer containing a SAL System Table entry that is EntrySize bytes
@param TableEntry Pointer to a buffer containing a SAL System Table entry that is EntrySize bytes
in length. The first byte of the TableEntry describes the type of entry.
@param EntrySize The size, in bytes, of TableEntry.
@@ -97,7 +97,7 @@ EFI_STATUS
@param Arg8 Eighth argument to the Extended SAL procedure.
@param VirtualMode TRUE if the Extended SAL Procedure is being invoked in virtual mode.
FALSE if the Extended SAL Procedure is being invoked in physical mode.
@param ModuleGlobal A pointer to the global context associated with this Extended SAL Procedure.
@param ModuleGlobal A pointer to the global context associated with this Extended SAL Procedure.
@return The result returned from the specified Extended SAL Procedure
@@ -115,7 +115,7 @@ SAL_RETURN_REGS
IN UINT64 Arg8,
IN BOOLEAN VirtualMode,
IN VOID *ModuleGlobal OPTIONAL
);
);
/**
Registers an Extended SAL Procedure.
@@ -124,16 +124,16 @@ SAL_RETURN_REGS
ClassGuidHi, and FunctionId is added to the set of available Extended SAL Procedures.
@param This A pointer to the EXTENDED_SAL_BOOT_SERVICE_PROTOCOL instance.
@param ClassGuidLo The lower 64-bits of the class GUID for the Extended SAL Procedure being added.
@param ClassGuidLo The lower 64-bits of the class GUID for the Extended SAL Procedure being added.
Each class GUID contains one or more functions specified by a Function ID.
@param ClassGuidHi The upper 64-bits of the class GUID for the Extended SAL Procedure being added.
@param ClassGuidHi The upper 64-bits of the class GUID for the Extended SAL Procedure being added.
Each class GUID contains one or more functions specified by a Function ID.
@param FunctionId The Function ID for the Extended SAL Procedure that is being added. This Function
ID is a member of the Extended SAL Procedure class specified by ClassGuidLo
@param FunctionId The Function ID for the Extended SAL Procedure that is being added. This Function
ID is a member of the Extended SAL Procedure class specified by ClassGuidLo
and ClassGuidHi.
@param InternalSalProc A pointer to the Extended SAL Procedure being added.
@param PhysicalModuleGlobal Pointer to a module global structure. This is a physical mode pointer.
This pointer is passed to the Extended SAL Procedure specified by ClassGuidLo,
This pointer is passed to the Extended SAL Procedure specified by ClassGuidLo,
ClassGuidHi, FunctionId, and InternalSalProc. If the system is in physical mode,
then this pointer is passed unmodified to InternalSalProc. If the system is in
virtual mode, then the virtual address associated with this pointer is passed to
@@ -157,9 +157,9 @@ EFI_STATUS
/**
Calls a previously registered Extended SAL Procedure.
This function calls the Extended SAL Procedure specified by ClassGuidLo, ClassGuidHi,
and FunctionId. The set of previously registered Extended SAL Procedures is searched for a
matching ClassGuidLo, ClassGuidHi, and FunctionId. If a match is not found, then
This function calls the Extended SAL Procedure specified by ClassGuidLo, ClassGuidHi,
and FunctionId. The set of previously registered Extended SAL Procedures is searched for a
matching ClassGuidLo, ClassGuidHi, and FunctionId. If a match is not found, then
EFI_SAL_NOT_IMPLEMENTED is returned.
@param ClassGuidLo The lower 64-bits of the class GUID for the Extended SAL Procedure
@@ -175,9 +175,9 @@ EFI_STATUS
@param Arg7 Seventh argument to the Extended SAL procedure.
@param Arg8 Eighth argument to the Extended SAL procedure.
@retval EFI_SAL_NOT_IMPLEMENTED The Extended SAL Procedure specified by ClassGuidLo,
@retval EFI_SAL_NOT_IMPLEMENTED The Extended SAL Procedure specified by ClassGuidLo,
ClassGuidHi, and FunctionId has not been registered.
@retval EFI_SAL_VIRTUAL_ADDRESS_ERROR This function was called in virtual mode before virtual mappings
@retval EFI_SAL_VIRTUAL_ADDRESS_ERROR This function was called in virtual mode before virtual mappings
for the specified Extended SAL Procedure are available.
@retval Other The result returned from the specified Extended SAL Procedure
@@ -198,14 +198,14 @@ SAL_RETURN_REGS
);
///
/// The EXTENDED_SAL_BOOT_SERVICE_PROTOCOL provides a mechanisms for platform specific
/// The EXTENDED_SAL_BOOT_SERVICE_PROTOCOL provides a mechanisms for platform specific
/// drivers to update the SAL System Table and register Extended SAL Procedures that are
/// callable in physical or virtual mode using the SAL calling convention.
///
struct _EXTENDED_SAL_BOOT_SERVICE_PROTOCOL {
EXTENDED_SAL_ADD_SST_INFO AddSalSystemTableInfo;
EXTENDED_SAL_ADD_SST_ENTRY AddSalSystemTableEntry;
EXTENDED_SAL_REGISTER_INTERNAL_PROC RegisterExtendedSalProc;
EXTENDED_SAL_REGISTER_INTERNAL_PROC RegisterExtendedSalProc;
EXTENDED_SAL_PROC ExtendedSalProc;
};

View File

@@ -1,14 +1,14 @@
/** @file
The standard set of Extended SAL service classes.
Copyright (c) 2009, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -51,7 +51,7 @@ typedef enum {
///
///@{
#define EFI_EXTENDED_SAL_RTC_SERVICES_PROTOCOL_GUID_LO 0x4d02efdb7e97a470
#define EFI_EXTENDED_SAL_RTC_SERVICES_PROTOCOL_GUID_HI 0x96a27bd29061ce8f
#define EFI_EXTENDED_SAL_RTC_SERVICES_PROTOCOL_GUID_HI 0x96a27bd29061ce8f
#define EFI_EXTENDED_SAL_RTC_SERVICES_PROTOCOL_GUID \
{ 0x7e97a470, 0xefdb, 0x4d02, {0x8f, 0xce, 0x61, 0x90, 0xd2, 0x7b, 0xa2, 0x96 } }
@@ -71,7 +71,7 @@ typedef enum {
/// Extended SAL Variable Services Class
///
///@{
#define EFI_EXTENDED_SAL_VARIABLE_SERVICES_PROTOCOL_GUID_LO 0x4370c6414ecb6c53
#define EFI_EXTENDED_SAL_VARIABLE_SERVICES_PROTOCOL_GUID_LO 0x4370c6414ecb6c53
#define EFI_EXTENDED_SAL_VARIABLE_SERVICES_PROTOCOL_GUID_HI 0x78836e490e3bb28c
#define EFI_EXTENDED_SAL_VARIABLE_SERVICES_PROTOCOL_GUID \
{ 0x4ecb6c53, 0xc641, 0x4370, {0x8c, 0xb2, 0x3b, 0x0e, 0x49, 0x6e, 0x83, 0x78 } }
@@ -165,7 +165,7 @@ typedef enum {
CurrentProcInfoFunctionId,
NumProcessorsFunctionId,
SetMinStateFunctionId,
GetMinStateFunctionId
GetMinStateFunctionId
} EFI_EXTENDED_SAL_MP_SERVICES_FUNC_ID;
///@}
@@ -204,7 +204,7 @@ typedef enum {
EsalMcGetMcParamsFunctionId,
EsalGetMcCheckinFlagsFunctionId,
EsalGetPlatformBaseFreqFunctionId,
EsalPhysicalIdInfoFunctionId,
EsalPhysicalIdInfoFunctionId,
EsalRegisterPhysicalAddrFunctionId
} EFI_EXTENDED_SAL_BASE_SERVICES_FUNC_ID;
///@}

View File

@@ -1,18 +1,18 @@
/** @file
The Firmware Volume Protocol provides file-level access to the firmware volume.
Each firmware volume driver must produce an instance of the
The Firmware Volume Protocol provides file-level access to the firmware volume.
Each firmware volume driver must produce an instance of the
Firmware Volume Protocol if the firmware volume is to be visible to
the system during the DXE phase. The Firmware Volume Protocol also provides
mechanisms for determining and modifying some attributes of the firmware volume.
Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
@par Revision Reference: PI
Version 1.00.
@@ -98,7 +98,7 @@ typedef UINT64 EFI_FV_ATTRIBUTES;
undefined.
@param This Indicates the EFI_FIRMWARE_VOLUME2_PROTOCOL instance.
@param FvAttributes Pointer to an EFI_FV_ATTRIBUTES in which
the attributes and current settings are
returned.
@@ -118,7 +118,7 @@ EFI_STATUS
/**
Modifies the current settings of the firmware volume according to the input parameter.
The SetVolumeAttributes() function is used to set configurable
firmware volume attributes. Only EFI_FV_READ_STATUS,
EFI_FV_WRITE_STATUS, and EFI_FV_LOCK_STATUS may be modified, and
@@ -136,7 +136,7 @@ EFI_STATUS
TPL_NOTIFY is undefined.
@param This Indicates the EFI_FIRMWARE_VOLUME2_PROTOCOL instance.
@param FvAttributes On input, FvAttributes is a pointer to
an EFI_FV_ATTRIBUTES containing the
desired firmware volume settings. On
@@ -145,7 +145,7 @@ EFI_STATUS
unsuccessful return, FvAttributes is not
modified and the firmware volume
settings are not changed.
@retval EFI_SUCCESS The requested firmware volume attributes
were set and the resulting
EFI_FV_ATTRIBUTES is returned in
@@ -254,13 +254,13 @@ EFI_STATUS
undefined.
@param This Indicates the EFI_FIRMWARE_VOLUME2_PROTOCOL instance.
@param NameGuid Pointer to an EFI_GUID, which is the file
name. All firmware file names are EFI_GUIDs.
A single firmware volume must not have two
valid files with the same file name
EFI_GUID.
@param Buffer Pointer to a pointer to a buffer in which the
file contents are returned, not including the
file header.
@@ -268,19 +268,19 @@ EFI_STATUS
@param BufferSize Pointer to a caller-allocated UINTN. It
indicates the size of the memory
represented by Buffer.
@param FoundType Pointer to a caller-allocated EFI_FV_FILETYPE.
@param FileAttributes Pointer to a caller-allocated
EFI_FV_FILE_ATTRIBUTES.
@param AuthenticationStatus Pointer to a caller-allocated
UINT32 in which the
authentication status is
returned.
@retval EFI_SUCCESS The call completed successfully.
@retval EFI_WARN_BUFFER_TOO_SMALL The buffer is too small to
contain the requested
output. The buffer is
@@ -342,56 +342,56 @@ EFI_STATUS
undefined.
@param This Indicates the EFI_FIRMWARE_VOLUME2_PROTOCOL instance.
@param NameGuid Pointer to an EFI_GUID, which indicates the
file name from which the requested section
will be read.
@param SectionType Indicates the section type to return.
SectionType in conjunction with
SectionInstance indicates which section to
return.
@param SectionInstance Indicates which instance of sections
with a type of SectionType to return.
SectionType in conjunction with
SectionInstance indicates which
section to return. SectionInstance is
zero based.
@param Buffer Pointer to a pointer to a buffer in which the
section contents are returned, not including
the section header.
@param BufferSize Pointer to a caller-allocated UINTN. It
indicates the size of the memory
represented by Buffer.
@param AuthenticationStatus Pointer to a caller-allocated
UINT32 in which the authentication
status is returned.
@retval EFI_SUCCESS The call completed successfully.
@retval EFI_WARN_BUFFER_TOO_SMALL The caller-allocated
buffer is too small to
contain the requested
output. The buffer is
filled and the output is
truncated.
@retval EFI_OUT_OF_RESOURCES An allocation failure occurred.
@retval EFI_NOT_FOUND The requested file was not found in
the firmware volume. EFI_NOT_FOUND The
requested section was not found in the
specified file.
@retval EFI_DEVICE_ERROR A hardware error occurred when
attempting to access the firmware
volume.
@retval EFI_ACCESS_DENIED The firmware volume is configured to
disallow reads. EFI_PROTOCOL_ERROR
The requested section was not found,
@@ -472,7 +472,7 @@ typedef struct {
Architectural Elements 84 August 21, 2006 Version 1.0
WriteFile() is callable only from TPL_NOTIFY and below.
Behavior of WriteFile() at any EFI_TPL above TPL_NOTIFY is
undefined.
undefined.
@param This Indicates the EFI_FIRMWARE_VOLUME2_PROTOCOL instance.
@@ -482,31 +482,31 @@ typedef struct {
write in the event of a power failure or
other system failure during the write
operation.
@param FileData Pointer to an array of
EFI_FV_WRITE_FILE_DATA. Each element of
FileData[] represents a file to be written.
@retval EFI_SUCCESS The write completed successfully.
@retval EFI_OUT_OF_RESOURCES The firmware volume does not
have enough free space to
storefile(s).
@retval EFI_DEVICE_ERROR A hardware error occurred when
attempting to access the firmware volume.
@retval EFI_WRITE_PROTECTED The firmware volume is
configured to disallow writes.
@retval EFI_NOT_FOUND A delete was requested, but the
requested file was not found in the
firmware volume.
@retval EFI_INVALID_PARAMETER A delete was requested with a
multiple file write.
@retval EFI_INVALID_PARAMETER An unsupported WritePolicy was
requested.
@@ -515,10 +515,10 @@ typedef struct {
@retval EFI_INVALID_PARAMETER A file system specific error
has occurred.
**/
typedef
EFI_STATUS
EFI_STATUS
(EFIAPI * EFI_FV_WRITE_FILE)(
IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,
IN UINT32 NumberOfFiles,
@@ -528,7 +528,7 @@ EFI_STATUS
/**
Retrieves information about the next file in the firmware volume store
Retrieves information about the next file in the firmware volume store
that matches the search criteria.
GetNextFile() is the interface that is used to search a firmware
@@ -547,7 +547,7 @@ EFI_STATUS
implementation specific and no semantic content is implied.
GetNextFile() is callable only from TPL_NOTIFY and below.
Behavior of GetNextFile() at any EFI_TPL above TPL_NOTIFY is
undefined.
undefined.
@param This Indicates the EFI_FIRMWARE_VOLUME2_PROTOCOL instance.
@@ -600,7 +600,7 @@ EFI_STATUS
@retval EFI_ACCESS_DENIED The firmware volume is configured to
disallow reads.
**/
typedef
EFI_STATUS
@@ -629,29 +629,29 @@ EFI_STATUS
@param This A pointer to the EFI_FIRMWARE_VOLUME2_PROTOCOL
instance that is the file handle the requested
information is for.
@param InformationType The type identifier for the
information being requested.
@param BufferSize On input, the size of Buffer. On output,
the amount of data returned in Buffer. In
both cases, the size is measured in bytes.
@param Buffer A pointer to the data buffer to return. The
buffer's type is indicated by InformationType.
@retval EFI_SUCCESS The information was retrieved.
@retval EFI_UNSUPPORTED The InformationType is not known.
@retval EFI_NO_MEDIA The device has no medium.
@retval EFI_DEVICE_ERROR The device reported an error.
@retval EFI_VOLUME_CORRUPTED The file system structures are
corrupted.
@retval EFI_BUFFER_TOO_SMALL The BufferSize is too small to
read the current directory
entry. BufferSize has been
@@ -740,14 +740,14 @@ struct _EFI_FIRMWARE_VOLUME2_PROTOCOL {
EFI_FV_READ_SECTION ReadSection;
EFI_FV_WRITE_FILE WriteFile;
EFI_FV_GET_NEXT_FILE GetNextFile;
///
/// Data field that indicates the size in bytes
/// of the Key input buffer for the
/// GetNextFile() API.
/// GetNextFile() API.
///
UINT32 KeySize;
///
/// Handle of the parent firmware volume.
///

View File

@@ -1,14 +1,14 @@
/** @file
This file provides control over block-oriented firmware devices.
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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.
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.
@par Revision Reference: PI
Version 1.0 and 1.2.
@@ -21,7 +21,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
//
// EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL is defined in PI 1.0 spec and its GUID value
// is later updated to be the same as that of EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL
// defined in PI 1.2 spec.
// defined in PI 1.2 spec.
//
#define EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL_GUID \
{ 0x8f644fa9, 0xe850, 0x4db1, {0x9c, 0xe2, 0xb, 0x44, 0x69, 0x8e, 0x8d, 0xa4 } }
@@ -31,7 +31,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
typedef struct _EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL;
typedef EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL;
typedef EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL;
/**
The GetAttributes() function retrieves the attributes and
@@ -69,7 +69,7 @@ EFI_STATUS
settings of the firmware volume. Type
EFI_FVB_ATTRIBUTES_2 is defined in
EFI_FIRMWARE_VOLUME_HEADER.
@retval EFI_SUCCESS The firmware volume attributes were returned.
@retval EFI_INVALID_PARAMETER The attributes requested are in
@@ -92,14 +92,14 @@ EFI_STATUS
only for memory-mapped firmware volumes.
@param This Indicates the EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance.
@param Address Pointer to a caller-allocated
EFI_PHYSICAL_ADDRESS that, on successful
return from GetPhysicalAddress(), contains the
base address of the firmware volume.
@retval EFI_SUCCESS The firmware volume base address was returned.
@retval EFI_UNSUPPORTED The firmware volume is not memory mapped.
**/
@@ -130,9 +130,9 @@ EFI_STATUS
blocks in this range have a size of
BlockSize.
@retval EFI_SUCCESS The firmware volume base address was returned.
@retval EFI_INVALID_PARAMETER The requested LBA is out of range.
**/
@@ -163,7 +163,7 @@ EFI_STATUS
aware that a read may be partially completed.
@param This Indicates the EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance.
@param Lba The starting logical block index
from which to read.
@@ -179,15 +179,15 @@ EFI_STATUS
@retval EFI_SUCCESS The firmware volume was read successfully,
and contents are in Buffer.
@retval EFI_BAD_BUFFER_SIZE Read attempted across an LBA
boundary. On output, NumBytes
contains the total number of bytes
returned in Buffer.
@retval EFI_ACCESS_DENIED The firmware volume is in the
ReadDisabled state.
@retval EFI_DEVICE_ERROR The block device is not
functioning correctly and could
not be read.
@@ -215,7 +215,7 @@ EFI_STATUS
unpredictability arises because, for a sticky-write firmware
volume, a write may negate a bit in the EFI_FVB_ERASE_POLARITY
state but cannot flip it back again. Before calling the
Write() function, it is recommended for the caller to first call
Write() function, it is recommended for the caller to first call
the EraseBlocks() function to erase the specified block to
write. A block erase cycle will transition bits from the
(NOT)EFI_FVB_ERASE_POLARITY state back to the
@@ -234,29 +234,29 @@ EFI_STATUS
returns.
@param This Indicates the EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance.
@param Lba The starting logical block index to write to.
@param Offset Offset into the block at which to begin writing.
@param NumBytes The pointer to a UINTN. At entry, *NumBytes
contains the total size of the buffer. At
exit, *NumBytes contains the total number of
bytes actually written.
@param Buffer The pointer to a caller-allocated buffer that
contains the source for the write.
@retval EFI_SUCCESS The firmware volume was written successfully.
@retval EFI_BAD_BUFFER_SIZE The write was attempted across an
LBA boundary. On output, NumBytes
contains the total number of bytes
actually written.
@retval EFI_ACCESS_DENIED The firmware volume is in the
WriteDisabled state.
@retval EFI_DEVICE_ERROR The block device is malfunctioning
and could not be written.
@@ -317,7 +317,7 @@ EFI_STATUS
@retval EFI_SUCCESS The erase request successfully
completed.
@retval EFI_ACCESS_DENIED The firmware volume is in the
WriteDisabled state.
@retval EFI_DEVICE_ERROR The block device is not functioning
@@ -326,7 +326,7 @@ EFI_STATUS
partially erased.
@retval EFI_INVALID_PARAMETER One or more of the LBAs listed
in the variable argument list do
not exist in the firmware volume.
not exist in the firmware volume.
**/
typedef
@@ -355,7 +355,7 @@ struct _EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL{
EFI_FVB_ERASE_BLOCKS EraseBlocks;
///
/// The handle of the parent firmware volume.
///
///
EFI_HANDLE ParentHandle;
};

View File

@@ -1,17 +1,17 @@
/** @file
This protocol is defined in UEFI spec.
The EFI_FORM_BROWSER2_PROTOCOL is the interface to call for drivers to
The EFI_FORM_BROWSER2_PROTOCOL is the interface to call for drivers to
leverage the EFI configuration driver interface.
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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.
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.
**/
@@ -29,11 +29,11 @@ typedef struct _EFI_FORM_BROWSER2_PROTOCOL EFI_FORM_BROWSER2_PROTOCOL;
/**
@param LeftColumn The value that designates the text column
where the browser window will begin from
the left-hand side of the screen
@param RightColumn The value that designates the text
column where the browser window will end
on the right-hand side of the screen.
@@ -44,7 +44,7 @@ typedef struct _EFI_FORM_BROWSER2_PROTOCOL EFI_FORM_BROWSER2_PROTOCOL;
@param BottomRow The value that designates the text row from the
bottom of the screen where the browser
window will end.
window will end.
**/
typedef struct {
UINTN LeftColumn;
@@ -69,14 +69,14 @@ typedef UINTN EFI_BROWSER_ACTION_REQUEST;
/**
Initialize the browser to display the specified configuration forms.
This function is the primary interface to the internal forms-based browser.
The forms browser will display forms associated with the specified Handles.
The browser will select all forms in packages which have the specified Type
This function is the primary interface to the internal forms-based browser.
The forms browser will display forms associated with the specified Handles.
The browser will select all forms in packages which have the specified Type
and (for EFI_HII_PACKAGE_TYPE_GUID) the specified PackageGuid.
@param This A pointer to the EFI_FORM_BROWSER2_PROTOCOL instance
@param Handles A pointer to an array of Handles. This value should correspond
@param Handles A pointer to an array of Handles. This value should correspond
to the value of the HII form package that is required to be displayed.
@param HandleCount The number of Handles specified in Handle.
@@ -90,17 +90,17 @@ typedef UINTN EFI_BROWSER_ACTION_REQUEST;
displayable page. If this field has a value of 0x0000, then the Forms Browser will
render the first enabled form in the form set.
@param ScreenDimensions Points to recommended form dimensions, including any non-content area, in
@param ScreenDimensions Points to recommended form dimensions, including any non-content area, in
characters.
@param ActionRequest Points to the action recommended by the form.
@retval EFI_SUCCESS The function completed successfully
@retval EFI_NOT_FOUND The variable was not found.
@retval EFI_INVALID_PARAMETER One of the parameters has an
invalid value.
invalid value.
**/
typedef
EFI_STATUS
@@ -126,7 +126,7 @@ EFI_STATUS
@param ResultsDataSize A pointer to the size of the buffer
associated with ResultsData. On input, the size in
bytes of ResultsData. On output, the size of data
bytes of ResultsData. On output, the size of data
returned in ResultsData.
@param ResultsData A string returned from an IFR browser or
@@ -148,7 +148,7 @@ EFI_STATUS
@retval EFI_SUCCESS The results have been distributed or are
awaiting distribution.
@retval EFI_OUT_OF_RESOURCES The ResultsDataSize specified
was too small to contain the
results data.
@@ -166,7 +166,7 @@ EFI_STATUS
);
///
/// This interface will allow the caller to direct the configuration
/// This interface will allow the caller to direct the configuration
/// driver to use either the HII database or use the passed-in packet of data.
///
struct _EFI_FORM_BROWSER2_PROTOCOL {

View File

@@ -1,13 +1,13 @@
/** @file
EFI FTPv4 (File Transfer Protocol version 4) Protocol Definition
The EFI FTPv4 Protocol is used to locate communication devices that are
The EFI FTPv4 Protocol is used to locate communication devices that are
supported by an EFI FTPv4 Protocol driver and to create and destroy instances
of the EFI FTPv4 Protocol child protocol driver that can use the underlying
communication device.
The definitions in this file are defined in UEFI Specification 2.3, which have
not been verified by one implementation yet.
Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
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
@@ -16,7 +16,7 @@
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
@par Revision Reference:
@par Revision Reference:
This Protocol is introduced in UEFI Specification 2.2
**/
@@ -41,103 +41,103 @@ typedef struct _EFI_FTP4_PROTOCOL EFI_FTP4_PROTOCOL;
/// EFI_FTP4_CONNECTION_TOKEN
///
typedef struct {
///
/// The Event to signal after the connection is established and Status field is updated
/// by the EFI FTP v4 Protocol driver. The type of Event must be
/// EVENT_NOTIFY_SIGNAL, and its Task Priority Level (TPL) must be lower than or
/// equal to TPL_CALLBACK. If it is set to NULL, this function will not return until the
///
/// The Event to signal after the connection is established and Status field is updated
/// by the EFI FTP v4 Protocol driver. The type of Event must be
/// EVENT_NOTIFY_SIGNAL, and its Task Priority Level (TPL) must be lower than or
/// equal to TPL_CALLBACK. If it is set to NULL, this function will not return until the
/// function completes.
///
EFI_EVENT Event;
///
EFI_EVENT Event;
///
/// The variable to receive the result of the completed operation.
/// EFI_SUCCESS: The FTP connection is established successfully
/// EFI_ACCESS_DENIED: The FTP server denied the access the user's request to access it.
/// EFI_CONNECTION_RESET: The connect fails because the connection is reset either by instance
/// EFI_ACCESS_DENIED: The FTP server denied the access the user's request to access it.
/// EFI_CONNECTION_RESET: The connect fails because the connection is reset either by instance
/// itself or communication peer.
/// EFI_TIMEOUT: The connection establishment timer expired and no more specific
/// EFI_TIMEOUT: The connection establishment timer expired and no more specific
/// information is available.
/// EFI_NETWORK_UNREACHABLE: The active open fails because an ICMP network unreachable error is
/// received.
/// EFI_HOST_UNREACHABLE: The active open fails because an ICMP host unreachable error is
/// received.
/// EFI_PROTOCOL_UNREACHABLE: The active open fails because an ICMP protocol unreachable error is
/// EFI_NETWORK_UNREACHABLE: The active open fails because an ICMP network unreachable error is
/// received.
/// EFI_PORT_UNREACHABLE: The connection establishment timer times out and an ICMP port
/// EFI_HOST_UNREACHABLE: The active open fails because an ICMP host unreachable error is
/// received.
/// EFI_PROTOCOL_UNREACHABLE: The active open fails because an ICMP protocol unreachable error is
/// received.
/// EFI_PORT_UNREACHABLE: The connection establishment timer times out and an ICMP port
/// unreachable error is received.
/// EFI_ICMP_ERROR: The connection establishment timer timeout and some other ICMP
/// EFI_ICMP_ERROR: The connection establishment timer timeout and some other ICMP
/// error is received.
/// EFI_DEVICE_ERROR: An unexpected system or network error occurred.
///
///
EFI_STATUS Status;
} EFI_FTP4_CONNECTION_TOKEN;
///
/// EFI_FTP4_CONFIG_DATA
/// EFI_FTP4_CONFIG_DATA
///
typedef struct {
///
/// Pointer to a ASCII string that contains user name. The caller is
///
/// Pointer to a ASCII string that contains user name. The caller is
/// responsible for freeing Username after GetModeData() is called.
///
///
UINT8 *Username;
///
/// Pointer to a ASCII string that contains password. The caller is
///
/// Pointer to a ASCII string that contains password. The caller is
/// responsible for freeing Password after GetModeData() is called.
///
///
UINT8 *Password;
///
/// Set it to TRUE to initiate an active data connection. Set it to
///
/// Set it to TRUE to initiate an active data connection. Set it to
/// FALSE to initiate a passive data connection.
///
///
BOOLEAN Active;
///
///
/// Boolean value indicating if default network settting used.
///
///
BOOLEAN UseDefaultSetting;
///
///
/// IP address of station if UseDefaultSetting is FALSE.
///
///
EFI_IPv4_ADDRESS StationIp;
///
///
/// Subnet mask of station if UseDefaultSetting is FALSE.
///
///
EFI_IPv4_ADDRESS SubnetMask;
///
///
/// IP address of gateway if UseDefaultSetting is FALSE.
///
///
EFI_IPv4_ADDRESS GatewayIp;
///
///
/// IP address of FTPv4 server.
///
///
EFI_IPv4_ADDRESS ServerIp;
///
/// FTPv4 server port number of control connection, and the default
///
/// FTPv4 server port number of control connection, and the default
/// value is 21 as convention.
///
///
UINT16 ServerPort;
///
/// FTPv4 server port number of data connection. If it is zero, use
/// (ServerPort - 1) by convention.
///
///
/// FTPv4 server port number of data connection. If it is zero, use
/// (ServerPort - 1) by convention.
///
UINT16 AltDataPort;
///
/// A byte indicate the representation type. The right 4 bit is used for
///
/// A byte indicate the representation type. The right 4 bit is used for
/// first parameter, the left 4 bit is use for second parameter
/// - For the first parameter, 0x0 = image, 0x1 = EBCDIC, 0x2 = ASCII, 0x3 = local
/// - For the second parameter, 0x0 = Non-print, 0x1 = Telnet format effectors, 0x2 =
/// - For the second parameter, 0x0 = Non-print, 0x1 = Telnet format effectors, 0x2 =
/// Carriage Control.
/// - If it is a local type, the second parameter is the local byte byte size.
/// - If it is a image type, the second parameter is undefined.
///
///
UINT8 RepType;
///
///
/// Defines the file structure in FTP used. 0x00 = file, 0x01 = record, 0x02 = page.
///
///
UINT8 FileStruct;
///
///
/// Defines the transifer mode used in FTP. 0x00 = stream, 0x01 = Block, 0x02 = Compressed.
///
///
UINT8 TransMode;
} EFI_FTP4_CONFIG_DATA;
@@ -149,9 +149,9 @@ typedef struct _EFI_FTP4_COMMAND_TOKEN EFI_FTP4_COMMAND_TOKEN;
If it is receiving function that leads to inbound data, the callback function
is called when data buffer is full. Then, old data in the data buffer should be
flushed and new data is stored from the beginning of data buffer.
If it is a transmit function that lead to outbound data and the size of
Data in daata buffer has been transmitted, this callback function is called to
supply additional data to be transmitted.
If it is a transmit function that lead to outbound data and the size of
Data in daata buffer has been transmitted, this callback function is called to
supply additional data to be transmitted.
@param[in] This Pointer to the EFI_FTP4_PROTOCOL instance.
@param[in] Token Pointer to the token structure to provide the parameters that
@@ -160,8 +160,8 @@ typedef struct _EFI_FTP4_COMMAND_TOKEN EFI_FTP4_COMMAND_TOKEN;
**/
typedef
EFI_STATUS
(EFIAPI *EFI_FTP4_DATA_CALLBACK)(
EFI_STATUS
(EFIAPI *EFI_FTP4_DATA_CALLBACK)(
IN EFI_FTP4_PROTOCOL *This,
IN EFI_FTP4_COMMAND_TOKEN *Token
);
@@ -170,57 +170,57 @@ EFI_STATUS
/// EFI_FTP4_COMMAND_TOKEN
///
struct _EFI_FTP4_COMMAND_TOKEN {
///
/// The Event to signal after request is finished and Status field
/// is updated by the EFI FTP v4 Protocol driver. The type of Event
/// must be EVT_NOTIFY_SIGNAL, and its Task Priority Level
/// (TPL) must be lower than or equal to TPL_CALLBACK. If it is
/// set to NULL, related function must wait until the function
///
/// The Event to signal after request is finished and Status field
/// is updated by the EFI FTP v4 Protocol driver. The type of Event
/// must be EVT_NOTIFY_SIGNAL, and its Task Priority Level
/// (TPL) must be lower than or equal to TPL_CALLBACK. If it is
/// set to NULL, related function must wait until the function
/// completes.
///
EFI_EVENT Event;
///
/// Pointer to a null-terminated ASCII name string.
///
///
EFI_EVENT Event;
///
/// Pointer to a null-terminated ASCII name string.
///
UINT8 *Pathname;
///
///
/// The size of data buffer in bytes.
///
UINT64 DataBufferSize;
///
/// Pointer to the data buffer. Data downloaded from FTP server
///
UINT64 DataBufferSize;
///
/// Pointer to the data buffer. Data downloaded from FTP server
/// through connection is downloaded here.
///
///
VOID *DataBuffer;
///
/// Pointer to a callback function. If it is receiving function that leads
/// to inbound data, the callback function is called when databuffer is
/// full. Then, old data in the data buffer should be flushed and new
/// data is stored from the beginning of data buffer. If it is a transmit
/// function that lead to outbound data and DataBufferSize of
/// Data in DataBuffer has been transmitted, this callback
/// function is called to supply additional data to be transmitted. The
/// size of additional data to be transmitted is indicated in
/// DataBufferSize, again. If there is no data remained,
///
/// Pointer to a callback function. If it is receiving function that leads
/// to inbound data, the callback function is called when databuffer is
/// full. Then, old data in the data buffer should be flushed and new
/// data is stored from the beginning of data buffer. If it is a transmit
/// function that lead to outbound data and DataBufferSize of
/// Data in DataBuffer has been transmitted, this callback
/// function is called to supply additional data to be transmitted. The
/// size of additional data to be transmitted is indicated in
/// DataBufferSize, again. If there is no data remained,
/// DataBufferSize should be set to 0.
///
///
EFI_FTP4_DATA_CALLBACK DataCallback;
///
///
/// Pointer to the parameter for DataCallback.
///
///
VOID *Context;
///
///
/// The variable to receive the result of the completed operation.
/// EFI_SUCCESS: The FTP command is completed successfully.
/// EFI_ACCESS_DENIED: The FTP server denied the access to the requested file.
/// EFI_CONNECTION_RESET: The connect fails because the connection is reset either
/// by instance itself or communication peer.
/// EFI_TIMEOUT: The connection establishment timer expired and no more
/// EFI_TIMEOUT: The connection establishment timer expired and no more
/// specific information is available.
/// EFI_NETWORK_UNREACHABLE: The active open fails because an ICMP network unreachable
/// error is received.
/// error is received.
/// EFI_HOST_UNREACHABLE: The active open fails because an ICMP host unreachable
/// error is received.
/// error is received.
/// EFI_PROTOCOL_UNREACHABLE: The active open fails because an ICMP protocol unreachable
/// error is received.
/// EFI_PORT_UNREACHABLE: The connection establishment timer times out and an ICMP port
@@ -236,14 +236,14 @@ struct _EFI_FTP4_COMMAND_TOKEN {
Gets the current operational settings.
The GetModeData() function reads the current operational settings of this
EFI FTPv4 Protocol driver instance. EFI_FTP4_CONFIG_DATA is defined in the
EFI FTPv4 Protocol driver instance. EFI_FTP4_CONFIG_DATA is defined in the
EFI_FTP4_PROTOCOL.Configure.
@param[in] This Pointer to the EFI_FTP4_PROTOCOL instance.
@param[out] ModeData Pointer to storage for the EFI FTPv4 Protocol driver
@param[out] ModeData Pointer to storage for the EFI FTPv4 Protocol driver
mode data. The string buffers for Username and Password
in EFI_FTP4_CONFIG_DATA are allocated by the function,
and the caller should take the responsibility to free the
and the caller should take the responsibility to free the
buffer later.
@retval EFI_SUCCESS This function is called successfully.
@@ -255,8 +255,8 @@ struct _EFI_FTP4_COMMAND_TOKEN {
@retval EFI_DEVICE_ERROR An unexpected system or network error occurred.
**/
typedef
EFI_STATUS
typedef
EFI_STATUS
(EFIAPI *EFI_FTP4_GET_MODE_DATA)(
IN EFI_FTP4_PROTOCOL *This,
OUT EFI_FTP4_CONFIG_DATA *ModeData
@@ -266,7 +266,7 @@ EFI_STATUS
Disconnecting a FTP connection gracefully.
The Connect() function will initiate a connection request to the remote FTP server
with the corresponding connection token. If this function returns EFI_SUCCESS, the
with the corresponding connection token. If this function returns EFI_SUCCESS, the
connection sequence is initiated successfully. If the connection succeeds or faild
due to any error, the Token->Event will be signaled and Token->Status will be updated
accordingly.
@@ -280,7 +280,7 @@ EFI_STATUS
- Token is NULL.
- Token->Event is NULL.
@retval EFI_NOT_STARTED The EFI FTPv4 Protocol driver has not been started.
@retval EFI_NO_MAPPING When using a default address, configuration (DHCP, BOOTP,
@retval EFI_NO_MAPPING When using a default address, configuration (DHCP, BOOTP,
RARP, etc.) is not finished yet.
@retval EFI_OUT_OF_RESOURCES Could not allocate enough resource to finish the operation.
@retval EFI_DEVICE_ERROR An unexpected system or network error occurred.
@@ -297,7 +297,7 @@ EFI_STATUS
Disconnecting a FTP connection gracefully.
The Close() function will initiate a close request to the remote FTP server with the
corresponding connection token. If this function returns EFI_SUCCESS, the control
corresponding connection token. If this function returns EFI_SUCCESS, the control
connection with the remote FTP server is closed.
@param[in] This Pointer to the EFI_FTP4_PROTOCOL instance.
@@ -309,7 +309,7 @@ EFI_STATUS
- Token is NULL.
- Token->Event is NULL.
@retval EFI_NOT_STARTED The EFI FTPv4 Protocol driver has not been started.
@retval EFI_NO_MAPPING When using a default address, configuration (DHCP, BOOTP,
@retval EFI_NO_MAPPING When using a default address, configuration (DHCP, BOOTP,
RARP, etc.) is not finished yet.
@retval EFI_OUT_OF_RESOURCES Could not allocate enough resource to finish the operation.
@retval EFI_DEVICE_ERROR An unexpected system or network error occurred.
@@ -325,14 +325,14 @@ EFI_STATUS
/**
Sets or clears the operational parameters for the FTP child driver.
The Configure() function will configure the connected FTP session with the
The Configure() function will configure the connected FTP session with the
configuration setting specified in FtpConfigData. The configuration data can
be reset by calling Configure() with FtpConfigData set to NULL.
@param[in] This Pointer to the EFI_FTP4_PROTOCOL instance.
@param[in] FtpConfigData Pointer to configuration data that will be assigned to
@param[in] FtpConfigData Pointer to configuration data that will be assigned to
the FTP child driver instance. If NULL, the FTP child
driver instance is reset to startup defaults and all
driver instance is reset to startup defaults and all
pending transmit and receive requests are flushed.
@retval EFI_SUCCESS The FTPv4 driver was configured successfully.
@@ -342,13 +342,13 @@ EFI_STATUS
- FtpConfigData.FileStruct is invalid.
- FtpConfigData.TransMode is invalid.
- IP address in FtpConfigData is invalid.
@retval EFI_NO_MAPPING When using a default address, configuration (DHCP, BOOTP,
@retval EFI_NO_MAPPING When using a default address, configuration (DHCP, BOOTP,
RARP, etc.) is not finished yet.
@retval EFI_UNSUPPORTED One or more of the configuration parameters are not supported
by this implementation.
@retval EFI_OUT_OF_RESOURCES The EFI FTPv4 Protocol driver instance data could not be
by this implementation.
@retval EFI_OUT_OF_RESOURCES The EFI FTPv4 Protocol driver instance data could not be
allocated.
@retval EFI_DEVICE_ERROR An unexpected system or network error occurred. The EFI FTPv4
@retval EFI_DEVICE_ERROR An unexpected system or network error occurred. The EFI FTPv4
Protocol driver instance is not configured.
**/
@@ -361,15 +361,15 @@ EFI_STATUS
/**
Downloads a file from an FTPv4 server.
Downloads a file from an FTPv4 server.
The ReadFile() function is used to initialize and start an FTPv4 download process
and optionally wait for completion. When the download operation completes, whether
successfully or not, the Token.Status field is updated by the EFI FTPv4 Protocol
successfully or not, the Token.Status field is updated by the EFI FTPv4 Protocol
driver and then Token.Event is signaled (if it is not NULL).
Data will be downloaded from the FTPv4 server into Token.DataBuffer. If the file size
is larger than Token.DataBufferSize, Token.DataCallback will be called to allow for
is larger than Token.DataBufferSize, Token.DataCallback will be called to allow for
processing data and then new data will be placed at the beginning of Token.DataBuffer.
@param[in] This Pointer to the EFI_FTP4_PROTOCOL instance.
@@ -384,29 +384,29 @@ EFI_STATUS
- Token. DataBuffer is NULL.
- Token. DataBufferSize is 0.
@retval EFI_NOT_STARTED The EFI FTPv4 Protocol driver has not been started.
@retval EFI_NO_MAPPING When using a default address, configuration (DHCP, BOOTP,
@retval EFI_NO_MAPPING When using a default address, configuration (DHCP, BOOTP,
RARP, etc.) is not finished yet.
@retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated.
@retval EFI_DEVICE_ERROR An unexpected network error or system error occurred.
**/
typedef
EFI_STATUS
typedef
EFI_STATUS
(EFIAPI *EFI_FTP4_READ_FILE)(
IN EFI_FTP4_PROTOCOL *This,
IN EFI_FTP4_COMMAND_TOKEN *Token
);
/**
Uploads a file from an FTPv4 server.
Uploads a file from an FTPv4 server.
The WriteFile() function is used to initialize and start an FTPv4 upload process and
optionally wait for completion. When the upload operation completes, whether successfully
or not, the Token.Status field is updated by the EFI FTPv4 Protocol driver and then
Token.Event is signaled (if it is not NULL). Data to be uploaded to server is stored
into Token.DataBuffer. Token.DataBufferSize is the number bytes to be transferred.
into Token.DataBuffer. Token.DataBufferSize is the number bytes to be transferred.
If the file size is larger than Token.DataBufferSize, Token.DataCallback will be called
to allow for processing data and then new data will be placed at the beginning of
to allow for processing data and then new data will be placed at the beginning of
Token.DataBuffer. Token.DataBufferSize is updated to reflect the actual number of bytes
to be transferred. Token.DataBufferSize is set to 0 by the call back to indicate the
completion of data transfer.
@@ -424,30 +424,30 @@ EFI_STATUS
- Token. DataBuffer is NULL.
- Token. DataBufferSize is 0.
@retval EFI_NOT_STARTED The EFI FTPv4 Protocol driver has not been started.
@retval EFI_NO_MAPPING When using a default address, configuration (DHCP, BOOTP,
@retval EFI_NO_MAPPING When using a default address, configuration (DHCP, BOOTP,
RARP, etc.) is not finished yet.
@retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated.
@retval EFI_DEVICE_ERROR An unexpected network error or system error occurred.
**/
typedef
EFI_STATUS
typedef
EFI_STATUS
(EFIAPI *EFI_FTP4_WRITE_FILE)(
IN EFI_FTP4_PROTOCOL *This,
IN EFI_FTP4_COMMAND_TOKEN *Token
);
/**
Download a data file "directory" from a FTPv4 server. May be unsupported in some EFI
Download a data file "directory" from a FTPv4 server. May be unsupported in some EFI
implementations.
The ReadDirectory() function is used to return a list of files on the FTPv4 server that
logically (or operationally) related to Token.Pathname, and optionally wait for completion.
When the download operation completes, whether successfully or not, the Token.Status field
When the download operation completes, whether successfully or not, the Token.Status field
is updated by the EFI FTPv4 Protocol driver and then Token.Event is signaled (if it is not
NULL). Data will be downloaded from the FTPv4 server into Token.DataBuffer. If the file size
is larger than Token.DataBufferSize, Token.DataCallback will be called to allow for processing
data and then new data will be placed at the beginning of Token.DataBuffer.
data and then new data will be placed at the beginning of Token.DataBuffer.
@param[in] This Pointer to the EFI_FTP4_PROTOCOL instance.
@param[in] Token Pointer to the token structure to provide the parameters that
@@ -461,7 +461,7 @@ EFI_STATUS
- Token. DataBuffer is NULL.
- Token. DataBufferSize is 0.
@retval EFI_NOT_STARTED The EFI FTPv4 Protocol driver has not been started.
@retval EFI_NO_MAPPING When using a default address, configuration (DHCP, BOOTP,
@retval EFI_NO_MAPPING When using a default address, configuration (DHCP, BOOTP,
RARP, etc.) is not finished yet.
@retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated.
@retval EFI_DEVICE_ERROR An unexpected network error or system error occurred.
@@ -475,15 +475,15 @@ EFI_STATUS
);
/**
Polls for incoming data packets and processes outgoing data packets.
Polls for incoming data packets and processes outgoing data packets.
The Poll() function can be used by network drivers and applications to increase the
rate that data packets are moved between the communications device and the transmit
and receive queues. In some systems, the periodic timer event in the managed network
driver may not poll the underlying communications device fast enough to transmit
driver may not poll the underlying communications device fast enough to transmit
and/or receive all data packets without missing incoming packets or dropping outgoing
packets. Drivers and applications that are experiencing packet loss should try calling
the Poll() function more often.
the Poll() function more often.
@param[in] This Pointer to the EFI_FTP4_PROTOCOL instance.
@@ -502,8 +502,8 @@ EFI_STATUS
);
///
/// EFI_FTP4_PROTOCOL
/// provides basic services for client-side FTP (File Transfer Protocol)
/// EFI_FTP4_PROTOCOL
/// provides basic services for client-side FTP (File Transfer Protocol)
/// operations.
///
struct _EFI_FTP4_PROTOCOL {

View File

@@ -3,14 +3,14 @@
Abstraction of a very simple graphics device.
Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -33,18 +33,18 @@ typedef struct {
typedef enum {
///
/// A pixel is 32-bits and byte zero represents red, byte one represents green,
/// byte two represents blue, and byte three is reserved. This is the definition
/// for the physical frame buffer. The byte values for the red, green, and blue
/// components represent the color intensity. This color intensity value range
/// A pixel is 32-bits and byte zero represents red, byte one represents green,
/// byte two represents blue, and byte three is reserved. This is the definition
/// for the physical frame buffer. The byte values for the red, green, and blue
/// components represent the color intensity. This color intensity value range
/// from a minimum intensity of 0 to maximum intensity of 255.
///
PixelRedGreenBlueReserved8BitPerColor,
///
/// A pixel is 32-bits and byte zero represents blue, byte one represents green,
/// byte two represents red, and byte three is reserved. This is the definition
/// for the physical frame buffer. The byte values for the red, green, and blue
/// components represent the color intensity. This color intensity value range
/// A pixel is 32-bits and byte zero represents blue, byte one represents green,
/// byte two represents red, and byte three is reserved. This is the definition
/// for the physical frame buffer. The byte values for the red, green, and blue
/// components represent the color intensity. This color intensity value range
/// from a minimum intensity of 0 to maximum intensity of 255.
///
PixelBlueGreenRedReserved8BitPerColor,
@@ -64,7 +64,7 @@ typedef enum {
typedef struct {
///
/// The version of this data structure. A value of zero represents the
/// The version of this data structure. A value of zero represents the
/// EFI_GRAPHICS_OUTPUT_MODE_INFORMATION structure as defined in this specification.
///
UINT32 Version;
@@ -77,18 +77,18 @@ typedef struct {
///
UINT32 VerticalResolution;
///
/// Enumeration that defines the physical format of the pixel. A value of PixelBltOnly
/// Enumeration that defines the physical format of the pixel. A value of PixelBltOnly
/// implies that a linear frame buffer is not available for this mode.
///
EFI_GRAPHICS_PIXEL_FORMAT PixelFormat;
///
/// This bit-mask is only valid if PixelFormat is set to PixelPixelBitMask.
/// This bit-mask is only valid if PixelFormat is set to PixelPixelBitMask.
/// A bit being set defines what bits are used for what purpose such as Red, Green, Blue, or Reserved.
///
EFI_PIXEL_BITMASK PixelInformation;
///
/// Defines the number of pixel elements per video memory line.
///
///
UINT32 PixelsPerScanLine;
} EFI_GRAPHICS_OUTPUT_MODE_INFORMATION;
@@ -116,7 +116,7 @@ EFI_STATUS
);
/**
Set the video device into the specified mode and clears the visible portions of
Set the video device into the specified mode and clears the visible portions of
the output display to black.
@param This The EFI_GRAPHICS_OUTPUT_PROTOCOL instance.
@@ -151,47 +151,47 @@ typedef union {
///
typedef enum {
///
/// Write data from the BltBuffer pixel (0, 0)
/// directly to every pixel of the video display rectangle
/// (DestinationX, DestinationY) (DestinationX + Width, DestinationY + Height).
/// Only one pixel will be used from the BltBuffer. Delta is NOT used.
/// Write data from the BltBuffer pixel (0, 0)
/// directly to every pixel of the video display rectangle
/// (DestinationX, DestinationY) (DestinationX + Width, DestinationY + Height).
/// Only one pixel will be used from the BltBuffer. Delta is NOT used.
///
EfiBltVideoFill,
///
/// Read data from the video display rectangle
/// (SourceX, SourceY) (SourceX + Width, SourceY + Height) and place it in
/// the BltBuffer rectangle (DestinationX, DestinationY )
/// (DestinationX + Width, DestinationY + Height). If DestinationX or
/// DestinationY is not zero then Delta must be set to the length in bytes
/// of a row in the BltBuffer.
/// Read data from the video display rectangle
/// (SourceX, SourceY) (SourceX + Width, SourceY + Height) and place it in
/// the BltBuffer rectangle (DestinationX, DestinationY )
/// (DestinationX + Width, DestinationY + Height). If DestinationX or
/// DestinationY is not zero then Delta must be set to the length in bytes
/// of a row in the BltBuffer.
///
EfiBltVideoToBltBuffer,
///
/// Write data from the BltBuffer rectangle
/// (SourceX, SourceY) (SourceX + Width, SourceY + Height) directly to the
/// video display rectangle (DestinationX, DestinationY)
/// (DestinationX + Width, DestinationY + Height). If SourceX or SourceY is
/// not zero then Delta must be set to the length in bytes of a row in the
/// Write data from the BltBuffer rectangle
/// (SourceX, SourceY) (SourceX + Width, SourceY + Height) directly to the
/// video display rectangle (DestinationX, DestinationY)
/// (DestinationX + Width, DestinationY + Height). If SourceX or SourceY is
/// not zero then Delta must be set to the length in bytes of a row in the
/// BltBuffer.
///
EfiBltBufferToVideo,
EfiBltBufferToVideo,
///
/// Copy from the video display rectangle (SourceX, SourceY)
/// (SourceX + Width, SourceY + Height) to the video display rectangle
/// (DestinationX, DestinationY) (DestinationX + Width, DestinationY + Height).
/// (SourceX + Width, SourceY + Height) to the video display rectangle
/// (DestinationX, DestinationY) (DestinationX + Width, DestinationY + Height).
/// The BltBuffer and Delta are not used in this mode.
///
EfiBltVideoToVideo,
EfiGraphicsOutputBltOperationMax
} EFI_GRAPHICS_OUTPUT_BLT_OPERATION;
/**
Blt a rectangle of pixels on the graphics screen. Blt stands for BLock Transfer.
@param This Protocol instance pointer.
@param BltBuffer The data to transfer to the graphics screen.
Size is at least Width*Height*sizeof(EFI_GRAPHICS_OUTPUT_BLT_PIXEL).
@@ -250,15 +250,15 @@ typedef struct {
///
EFI_PHYSICAL_ADDRESS FrameBufferBase;
///
/// Amount of frame buffer needed to support the active mode as defined by
/// Amount of frame buffer needed to support the active mode as defined by
/// PixelsPerScanLine xVerticalResolution x PixelElementSize.
///
UINTN FrameBufferSize;
} EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE;
///
/// Provides a basic abstraction to set video modes and copy pixels to and from
/// the graphics controller's frame buffer. The linear address of the hardware
/// Provides a basic abstraction to set video modes and copy pixels to and from
/// the graphics controller's frame buffer. The linear address of the hardware
/// frame buffer is also exposed so software can write directly to the video hardware.
///
struct _EFI_GRAPHICS_OUTPUT_PROTOCOL {

View File

@@ -4,14 +4,14 @@
instance of the GUIDed Section Extraction Protocol to extract
the section stream contained therein.
Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
@par Revision Reference: PI
Version 1.00.
@@ -22,14 +22,14 @@
#define __GUID_SECTION_EXTRACTION_PROTOCOL_H__
//
// The protocol interface structures are identified by associating
// them with a GUID. Each instance of a protocol with a given
// GUID must have the same interface structure. While all instances
// of the GUIDed Section Extraction Protocol must have the same
// interface structure, they do not all have the same GUID. The
// GUID that is associated with an instance of the GUIDed Section
// Extraction Protocol is used to correlate it with the GUIDed
// section type that it is intended to process.
// The protocol interface structures are identified by associating
// them with a GUID. Each instance of a protocol with a given
// GUID must have the same interface structure. While all instances
// of the GUIDed Section Extraction Protocol must have the same
// interface structure, they do not all have the same GUID. The
// GUID that is associated with an instance of the GUIDed Section
// Extraction Protocol is used to correlate it with the GUIDed
// section type that it is intended to process.
//
typedef struct _EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL;
@@ -61,9 +61,9 @@ typedef struct _EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL EFI_GUIDED_SECTION_EXTRAC
EFI_TPL above TPL_NOTIFY is undefined. Type EFI_TPL is
defined in RaiseTPL() in the UEFI 2.0 specification.
@param This Indicates the EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL instance.
@param InputSection Buffer containing the input GUIDed section
to be processed. OutputBuffer OutputBuffer
is allocated from boot services pool

View File

@@ -1,18 +1,18 @@
/** @file
EFI_HASH_SERVICE_BINDING_PROTOCOL as defined in UEFI 2.0.
EFI_HASH_PROTOCOL as defined in UEFI 2.0.
The EFI Hash Service Binding Protocol is used to locate hashing services support
provided by a driver and to create and destroy instances of the EFI Hash Protocol
The EFI Hash Service Binding Protocol is used to locate hashing services support
provided by a driver and to create and destroy instances of the EFI Hash Protocol
so that a multiple drivers can use the underlying hashing services.
Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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.
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.
**/
@@ -23,7 +23,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
{ \
0x42881c98, 0xa4f3, 0x44b0, {0xa3, 0x9d, 0xdf, 0xa1, 0x86, 0x67, 0xd8, 0xcd } \
}
#define EFI_HASH_PROTOCOL_GUID \
{ \
0xc5184932, 0xdba5, 0x46db, {0xa5, 0xba, 0xcc, 0x0b, 0xda, 0x9c, 0x14, 0x35 } \
@@ -37,17 +37,17 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#define EFI_HASH_ALGORITHM_SHA224_GUID \
{ \
0x8df01a06, 0x9bd5, 0x4bf7, {0xb0, 0x21, 0xdb, 0x4f, 0xd9, 0xcc, 0xf4, 0x5b } \
}
}
#define EFI_HASH_ALGORITHM_SHA256_GUID \
{ \
0x51aa59de, 0xfdf2, 0x4ea3, {0xbc, 0x63, 0x87, 0x5f, 0xb7, 0x84, 0x2e, 0xe9 } \
}
}
#define EFI_HASH_ALGORITHM_SHA384_GUID \
{ \
0xefa96432, 0xde33, 0x4dd2, {0xae, 0xe6, 0x32, 0x8c, 0x33, 0xdf, 0x77, 0x7a } \
}
}
#define EFI_HASH_ALGORITHM_SHA512_GUID \
{ \
@@ -106,7 +106,7 @@ typedef union {
@retval EFI_SUCCESS Hash size returned successfully.
@retval EFI_INVALID_PARAMETER HashSize is NULL or HashAlgorithm is NULL.
@retval EFI_UNSUPPORTED The algorithm specified by HashAlgorithm is not supported
@retval EFI_UNSUPPORTED The algorithm specified by HashAlgorithm is not supported
by this driver.
**/
@@ -116,7 +116,7 @@ EFI_STATUS
IN CONST EFI_HASH_PROTOCOL *This,
IN CONST EFI_GUID *HashAlgorithm,
OUT UINTN *HashSize
);
);
/**
Creates a hash for the specified message text.
@@ -127,13 +127,13 @@ EFI_STATUS
existing hash (TRUE).
@param[in] Message Points to the start of the message.
@param[in] MessageSize The size of Message, in bytes.
@param[in,out] Hash On input, if Extend is TRUE, then this parameter holds a pointer
to a pointer to an array containing the hash to extend. If Extend
is FALSE, then this parameter holds a pointer to a pointer to a
caller-allocated array that will receive the result of the hash
computation. On output (regardless of the value of Extend), the
@param[in,out] Hash On input, if Extend is TRUE, then this parameter holds a pointer
to a pointer to an array containing the hash to extend. If Extend
is FALSE, then this parameter holds a pointer to a pointer to a
caller-allocated array that will receive the result of the hash
computation. On output (regardless of the value of Extend), the
array will contain the result of the hash computation.
@retval EFI_SUCCESS Hash returned successfully.
@retval EFI_INVALID_PARAMETER Message or Hash, HashAlgorithm is NULL or MessageSize is 0.
MessageSize is not an integer multiple of block size.
@@ -150,10 +150,10 @@ EFI_STATUS
IN CONST UINT8 *Message,
IN UINT64 MessageSize,
IN OUT EFI_HASH_OUTPUT *Hash
);
);
///
/// This protocol allows creating a hash of an arbitrary message digest
/// This protocol allows creating a hash of an arbitrary message digest
/// using one or more hash algorithms.
///
struct _EFI_HASH_PROTOCOL {

View File

@@ -1,18 +1,18 @@
/** @file
The EFI HII results processing protocol invokes this type of protocol
when it needs to forward results to a driver's configuration handler.
This protocol is published by drivers providing and requesting
The EFI HII results processing protocol invokes this type of protocol
when it needs to forward results to a driver's configuration handler.
This protocol is published by drivers providing and requesting
configuration data from HII. It may only be invoked by HII.
Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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.
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.
**/
@@ -43,7 +43,7 @@ typedef UINTN EFI_BROWSER_ACTION;
#define EFI_BROWSER_ACTION_DEFAULT_FIRMWARE 0x4000
/**
This function allows the caller to request the current
configuration for one or more named elements. The resulting
string is in <ConfigAltResp> format. Any and all alternative
@@ -64,12 +64,12 @@ typedef UINTN EFI_BROWSER_ACTION;
includes the routing information as well as
the configurable name / value pairs. It is
invalid for this string to be in
<MultiConfigRequest> format.
If a NULL is passed in for the Request field,
all of the settings being abstracted by this function
will be returned in the Results field. In addition,
if a ConfigHdr is passed in with no request elements,
all of the settings being abstracted for that particular
<MultiConfigRequest> format.
If a NULL is passed in for the Request field,
all of the settings being abstracted by this function
will be returned in the Results field. In addition,
if a ConfigHdr is passed in with no request elements,
all of the settings being abstracted for that particular
ConfigHdr reference will be returned in the Results Field.
@param Progress On return, points to a character in the
@@ -95,7 +95,7 @@ typedef UINTN EFI_BROWSER_ACTION;
stored awaiting possible future
protocols.
@retval EFI_NOT_FOUND A configuration element matching
@retval EFI_NOT_FOUND A configuration element matching
the routing data is not found.
Progress set to the first character
in the routing header.
@@ -121,7 +121,7 @@ EFI_STATUS
/**
This function applies changes in a driver's configuration.
Input is a Configuration, which has the routing data for this
driver followed by name / value configuration pairs. The driver
@@ -134,8 +134,8 @@ EFI_STATUS
@param This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
@param Configuration A null-terminated Unicode string in
<ConfigString> format.
<ConfigString> 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
@@ -146,16 +146,16 @@ EFI_STATUS
@retval EFI_SUCCESS The results have been distributed or are
awaiting distribution.
@retval EFI_OUT_OF_RESOURCES Not enough memory to store the
parts of the results that must be
stored awaiting possible future
protocols.
@retval EFI_INVALID_PARAMETERS Passing in a NULL for the
Results parameter would result
in this type of error.
@retval EFI_NOT_FOUND Target for the specified routing data
was not found
@@ -169,7 +169,7 @@ EFI_STATUS
);
/**
This function is called to provide results data to the driver.
This data consists of a unique key that is used to identify
which data is either being passed back or being asked for.
@@ -178,7 +178,7 @@ EFI_STATUS
@param Action Specifies the type of action taken by the browser.
@param QuestionId A unique value which is sent to the original
exporting driver so that it can identify the type
of data to expect. The format of the data tends to
of data to expect. The format of the data tends to
vary based on the opcode that generated the callback.
@param Type The type of value for the question.
@param Value A pointer to the data being sent to the original
@@ -204,7 +204,7 @@ EFI_STATUS
OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
)
;
///
/// This protocol provides a callable interface between the HII and
/// drivers. Only drivers which provide IFR data to HII are required

View File

@@ -1,16 +1,16 @@
/** @file
The file provides the mechanism to set and get the values
associated with a keyword exposed through a x-UEFI- prefixed
The file provides the mechanism to set and get the values
associated with a keyword exposed through a x-UEFI- prefixed
configuration language namespace.
Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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.
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.
**/
@@ -40,18 +40,18 @@ typedef struct _EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL EFI_CONFIG_KEYWORD_HANDLER_P
This function accepts a <MultiKeywordResp> formatted string, finds the associated
keyword owners, creates a <MultiConfigResp> string from it and forwards it to the
EFI_HII_ROUTING_PROTOCOL.RouteConfig function.
If there is an issue in resolving the contents of the KeywordString, then the
function returns an error and also sets the Progress and ProgressErr with the
If there is an issue in resolving the contents of the KeywordString, then the
function returns an error and also sets the Progress and ProgressErr with the
appropriate information about where the issue occurred and additional data about
the nature of the issue.
the nature of the issue.
In the case when KeywordString containing multiple keywords, when an EFI_NOT_FOUND
error is generated during processing the second or later keyword element, the system
storage associated with earlier keywords is not modified. All elements of the
storage associated with earlier keywords is not modified. All elements of the
KeywordString must successfully pass all tests for format and access prior to making
any modifications to storage.
In the case when EFI_DEVICE_ERROR is returned from the processing of a KeywordString
containing multiple keywords, the state of storage associated with earlier keywords
is undefined.
@@ -59,18 +59,18 @@ typedef struct _EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL EFI_CONFIG_KEYWORD_HANDLER_P
@param This Pointer to the EFI_KEYWORD_HANDLER _PROTOCOL instance.
@param KeywordString A null-terminated string in <MultiKeywordResp> format.
@param KeywordString A null-terminated string in <MultiKeywordResp> format.
@param Progress On return, points to a character in the KeywordString.
Points to the string's NULL terminator if the request
was successful. Points to the most recent '&' before
@param Progress On return, points to a character in the KeywordString.
Points to the string's NULL terminator if the 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 ProgressErr If during the processing of the KeywordString there was
a failure, this parameter gives additional information
about the possible source of the problem. The various
a failure, this parameter gives additional information
about the possible source of the problem. The various
errors are defined in "Related Definitions" below.
@@ -78,23 +78,23 @@ typedef struct _EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL EFI_CONFIG_KEYWORD_HANDLER_P
@retval EFI_INVALID_PARAMETER One or more of the following are TRUE:
1. KeywordString is NULL.
2. Parsing of the KeywordString resulted in an
2. Parsing of the KeywordString resulted in an
error. See Progress and ProgressErr for more data.
@retval EFI_NOT_FOUND An element of the KeywordString was not found.
@retval EFI_NOT_FOUND An element of the KeywordString was not found.
See ProgressErr for more data.
@retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated.
@retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated.
See ProgressErr for more data.
@retval EFI_ACCESS_DENIED The action violated system policy. See ProgressErr
@retval EFI_ACCESS_DENIED The action violated system policy. See ProgressErr
for more data.
@retval EFI_DEVICE_ERROR An unexpected system error occurred. See ProgressErr
for more data.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_CONFIG_KEYWORD_HANDLER_SET_DATA) (
IN EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL *This,
@@ -106,56 +106,56 @@ EFI_STATUS
/**
This function accepts a <MultiKeywordRequest> formatted string, finds the underlying
This function accepts a <MultiKeywordRequest> formatted string, finds the underlying
keyword owners, creates a <MultiConfigRequest> string from it and forwards it to the
EFI_HII_ROUTING_PROTOCOL.ExtractConfig function.
If there is an issue in resolving the contents of the KeywordString, then the function
returns an EFI_INVALID_PARAMETER and also set the Progress and ProgressErr with the
appropriate information about where the issue occurred and additional data about the
nature of the issue.
In the case when KeywordString is NULL, or contains multiple keywords, or when
EFI_NOT_FOUND is generated while processing the keyword elements, the Results string
contains values returned for all keywords processed prior to the keyword generating the
contains values returned for all keywords processed prior to the keyword generating the
error but no values for the keyword with error or any following keywords.
@param This Pointer to the EFI_KEYWORD_HANDLER _PROTOCOL instance.
@param NameSpaceId A null-terminated string containing the platform configuration
language to search through in the system. If a NULL is passed
in, then it is assumed that any platform configuration language
with the prefix of "x-UEFI-" are searched.
@param KeywordString A null-terminated string in <MultiKeywordRequest> format. If a
NULL is passed in the KeywordString field, all of the known
keywords in the system for the NameSpaceId specified are
NULL is passed in the KeywordString field, all of the known
keywords in the system for the NameSpaceId specified are
returned in the Results field.
@param Progress On return, points to a character in the KeywordString. Points
to the string's NULL terminator if the request was successful.
to the string's NULL terminator if the 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 ProgressErr If during the processing of the KeywordString there was a
failure, this parameter gives additional information about the
failure, this parameter gives additional information about the
possible source of the problem. See the definitions in SetData()
for valid value definitions.
@param Results A null-terminated string in <MultiKeywordResp> format is returned
which has all the values filled in for the keywords in the
which has all the values filled in for the keywords in the
KeywordString. This is a callee-allocated field, and must be freed
by the caller after being used.
by the caller after being used.
@retval EFI_SUCCESS The specified action was completed successfully.
@retval EFI_INVALID_PARAMETER One or more of the following are TRUE:
1.Progress, ProgressErr, or Results is NULL.
2.Parsing of the KeywordString resulted in an error. See
Progress and ProgressErr for more data.
@retval EFI_NOT_FOUND An element of the KeywordString was not found. See
ProgressErr for more data.
@@ -165,7 +165,7 @@ EFI_STATUS
@retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated. See
ProgressErr for more data.
@retval EFI_ACCESS_DENIED The action violated system policy. See ProgressErr for
more data.
@@ -173,20 +173,20 @@ EFI_STATUS
for more data.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_CONFIG_KEYWORD_HANDLER_GET_DATA) (
IN EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL *This,
IN CONST EFI_STRING NameSpaceId, OPTIONAL
IN CONST EFI_STRING KeywordString, OPTIONAL
OUT EFI_STRING *Progress,
OUT EFI_STRING *Progress,
OUT UINT32 *ProgressErr,
OUT EFI_STRING *Results
);
///
/// The EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL provides the mechanism
/// to set and get the values associated with a keyword exposed
/// The EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL provides the mechanism
/// to set and get the values associated with a keyword exposed
/// through a x-UEFI- prefixed configuration language namespace
///

View File

@@ -4,15 +4,15 @@
It then serves as the single point to receive configuration
information from configuration applications, routing the
results to the appropriate drivers.
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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.
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.
**/
@@ -26,7 +26,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
typedef struct _EFI_HII_CONFIG_ROUTING_PROTOCOL EFI_HII_CONFIG_ROUTING_PROTOCOL;
/**
This function allows the caller to request the current
configuration for one or more named elements from one or more
drivers. The resulting string is in the standard HII
@@ -84,8 +84,8 @@ typedef struct _EFI_HII_CONFIG_ROUTING_PROTOCOL EFI_HII_CONFIG_ROUTING_PROTOCOL;
for the Request parameter
would result in this type of
error. The Progress parameter
is set to NULL.
is set to NULL.
@retval EFI_NOT_FOUND Routing data doesn't match any
known driver. Progress set to
the "G" in "GUID" of the
@@ -100,8 +100,8 @@ typedef struct _EFI_HII_CONFIG_ROUTING_PROTOCOL EFI_HII_CONFIG_ROUTING_PROTOCOL;
error, or the beginning of the
string.
@retval EFI_INVALID_PARAMETER The ExtractConfig function of the
underlying HII Configuration
Access Protocol returned
underlying HII Configuration
Access Protocol returned
EFI_INVALID_PARAMETER. Progress
set to most recent & before the
error or the beginning of the
@@ -118,32 +118,32 @@ EFI_STATUS
);
/**
This function allows the caller to request the current configuration
This function allows the caller to request the current configuration
for the entirety of the current HII database and returns the data in
a null-terminated string.
This function allows the caller to request the current
configuration for all of the current HII database. The results
include both the current and alternate configurations as
described in ExtractConfig() above.
described in ExtractConfig() above.
@param This Points to the EFI_HII_CONFIG_ROUTING_PROTOCOL instance.
@param Results Null-terminated Unicode string in
<MultiConfigAltResp> format which has all values
filled in for the entirety of the current HII
database. String to be allocated by the called
filled in for the entirety of the current HII
database. String to be allocated by the called
function. De-allocation is up to the caller.
@retval EFI_SUCCESS The Results string is filled with the
values corresponding to all requested
names.
@retval EFI_OUT_OF_RESOURCES Not enough memory to store the
parts of the results that must be
stored awaiting possible future
protocols.
@retval EFI_INVALID_PARAMETERS For example, passing in a NULL
for the Results parameter
would result in this type of
@@ -158,7 +158,7 @@ EFI_STATUS
);
/**
This function routes the results of processing forms to the
appropriate targets. It scans for <ConfigHdr> within the string
and passes the header and subsequent body to the driver whose
@@ -182,16 +182,16 @@ EFI_STATUS
@retval EFI_SUCCESS The results have been distributed or are
awaiting distribution.
@retval EFI_OUT_OF_RESOURCES Not enough memory to store the
parts of the results that must be
stored awaiting possible future
protocols.
@retval EFI_INVALID_PARAMETERS Passing in a NULL for the
Results parameter would result
in this type of error.
@retval EFI_NOT_FOUND The target for the specified routing data
was not found.
@@ -206,7 +206,7 @@ EFI_STATUS
/**
This function extracts the current configuration from a block of
bytes. To do so, it requires that the ConfigRequest string
consists of a list of <BlockName> formatted names. It uses the
@@ -228,7 +228,7 @@ EFI_STATUS
@param Config The filled-in configuration string. String
allocated by the function. Returned only if
call is successful. The null-terminated string
call is successful. The null-terminated string
will be <ConfigResp> format.
@param Progress A pointer to a string filled in with the
@@ -256,7 +256,7 @@ EFI_STATUS
@retval EFI_NOT_FOUND The target for the specified routing data
was not found. Progress points to the
'G' in "GUID" of the errant routing
data.
data.
@retval EFI_DEVICE_ERROR The block is not large enough. Progress undefined.
@retval EFI_INVALID_PARAMETER Encountered non <BlockName>
@@ -310,7 +310,7 @@ EFI_STATUS
@param BlockSize The length of the Block in units of UINT8.
On input, this is the size of the Block. On
output, if successful, contains the largest
output, if successful, contains the largest
index of the modified byte in the Block, or
the required buffer size if the Block is not
large enough.
@@ -339,7 +339,7 @@ EFI_STATUS
@retval EFI_NOT_FOUND Target for the specified routing data was not found.
Progress points to the "G" in "GUID" of the errant
routing data.
@retval EFI_BUFFER_TOO_SMALL Block not large enough. Progress undefined.
@retval EFI_BUFFER_TOO_SMALL Block not large enough. Progress undefined.
BlockSize is updated with the required buffer size.
**/
@@ -354,48 +354,48 @@ EFI_STATUS
);
/**
This helper function is to be called by drivers to extract portions of
This helper function is to be called by drivers to extract portions of
a larger configuration string.
@param This A pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL instance.
@param ConfigResp A null-terminated string in <ConfigAltResp> format.
@param Guid A pointer to the GUID value to search for in the
routing portion of the ConfigResp string when retrieving
the requested data. If Guid is NULL, then all GUID
@param Guid A pointer to the GUID value to search for in the
routing portion of the ConfigResp string when retrieving
the requested data. If Guid is NULL, then all GUID
values will be searched for.
@param Name A pointer to the NAME value to search for in the
routing portion of the ConfigResp string when retrieving
the requested data. If Name is NULL, then all Name
values will be searched for.
@param DevicePath A pointer to the PATH value to search for in the
routing portion of the ConfigResp string when retrieving
the requested data. If DevicePath is NULL, then all
DevicePath values will be searched for.
@param AltCfgId A pointer to the ALTCFG value to search for in the
routing portion of the ConfigResp string when retrieving
the requested data. If this parameter is NULL,
@param Name A pointer to the NAME value to search for in the
routing portion of the ConfigResp string when retrieving
the requested data. If Name is NULL, then all Name
values will be searched for.
@param DevicePath A pointer to the PATH value to search for in the
routing portion of the ConfigResp string when retrieving
the requested data. If DevicePath is NULL, then all
DevicePath values will be searched for.
@param AltCfgId A pointer to the ALTCFG value to search for in the
routing portion of the ConfigResp string when retrieving
the requested data. If this parameter is NULL,
then the current setting will be retrieved.
@param AltCfgResp A pointer to a buffer which will be allocated by the
function which contains the retrieved string as requested.
This buffer is only allocated if the call was successful.
@param AltCfgResp A pointer to a buffer which will be allocated by the
function which contains the retrieved string as requested.
This buffer is only allocated if the call was successful.
The null-terminated string will be <ConfigResp> format.
@retval EFI_SUCCESS The request succeeded. The requested data was extracted
@retval EFI_SUCCESS The request succeeded. The requested data was extracted
and placed in the newly allocated AltCfgResp buffer.
@retval EFI_OUT_OF_RESOURCES Not enough memory to allocate AltCfgResp.
@retval EFI_OUT_OF_RESOURCES Not enough memory to allocate AltCfgResp.
@retval EFI_INVALID_PARAMETER Any parameter is invalid.
@retval EFI_NOT_FOUND The target for the specified routing data was not found.
**/
typedef
EFI_STATUS
EFI_STATUS
(EFIAPI * EFI_HII_GET_ALT_CFG)(
IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This,
IN CONST EFI_STRING ConfigResp,
IN CONST EFI_GUID *Guid,
IN CONST EFI_STRING Name,
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,
IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This,
IN CONST EFI_STRING ConfigResp,
IN CONST EFI_GUID *Guid,
IN CONST EFI_STRING Name,
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,
IN CONST UINT16 *AltCfgId,
OUT EFI_STRING *AltCfgResp
OUT EFI_STRING *AltCfgResp
);
///

View File

@@ -1,15 +1,15 @@
/** @file
The file provides Database manager for HII-related data
structures.
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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.
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.
**/
@@ -25,7 +25,7 @@ typedef struct _EFI_HII_DATABASE_PROTOCOL EFI_HII_DATABASE_PROTOCOL;
///
/// EFI_HII_DATABASE_NOTIFY_TYPE.
///
///
typedef UINTN EFI_HII_DATABASE_NOTIFY_TYPE;
#define EFI_HII_DATABASE_NOTIFY_NEW_PACK 0x00000001
@@ -33,7 +33,7 @@ typedef UINTN EFI_HII_DATABASE_NOTIFY_TYPE;
#define EFI_HII_DATABASE_NOTIFY_EXPORT_PACK 0x00000004
#define EFI_HII_DATABASE_NOTIFY_ADD_PACK 0x00000008
/**
Functions which are registered to receive notification of
database events have this prototype. The actual event is encoded
in NotifyType. The following table describes how PackageType,
@@ -48,8 +48,8 @@ typedef UINTN EFI_HII_DATABASE_NOTIFY_TYPE;
field of EFI_HII_PACKAGE_GUID_HEADER.
Otherwise, it must be NULL.
@param Package Points to the package referred to by the notification.
@param Package Points to the package referred to by the notification.
@param Handle The handle of the package
list which contains the specified package.
@@ -80,7 +80,7 @@ EFI_STATUS
be called. For each call to NewPackageList(), there should be a
corresponding call to
EFI_HII_DATABASE_PROTOCOL.RemovePackageList().
@param This A pointer to the EFI_HII_DATABASE_PROTOCOL instance.
@param PackageList A pointer to an EFI_HII_PACKAGE_LIST_HEADER structure.
@@ -88,7 +88,7 @@ EFI_STATUS
@param DriverHandle Associate the package list with this EFI handle.
If a NULL is specified, this data will not be associate
with any drivers and cannot have a callback induced.
@param Handle A pointer to the EFI_HII_HANDLE instance.
@retval EFI_SUCCESS The package list associated with the
@@ -121,10 +121,10 @@ EFI_STATUS
be a corresponding call to RemovePackageList.
@param This A pointer to the EFI_HII_DATABASE_PROTOCOL instance.
@param Handle The handle that was registered to the data
that is requested for removal.
@retval EFI_SUCCESS The data associated with the Handle was
removed from the HII database.
@retval EFI_NOT_FOUND The specified Handle is not in database.
@@ -139,7 +139,7 @@ EFI_STATUS
/**
This function updates the existing package list (which has the
specified Handle) in the HII databases, using the new package
list specified by PackageList. The update process has the
@@ -162,18 +162,18 @@ EFI_STATUS
ADD_PACK.
@param This A pointer to the EFI_HII_DATABASE_PROTOCOL instance.
@param Handle The handle that was registered to the data
that is requested for removal.
@param PackageList A pointer to an EFI_HII_PACKAGE_LIST
package.
@retval EFI_SUCCESS The HII database was successfully updated.
@retval EFI_OUT_OF_RESOURCES Unable to allocate enough memory
for the updated database.
@retval EFI_INVALID_PARAMETER PackageList was NULL.
@retval EFI_NOT_FOUND The specified Handle is not in database.
@@ -188,25 +188,25 @@ EFI_STATUS
/**
This function returns a list of the package handles of the
specified type that are currently active in the database. The
pseudo-type EFI_HII_PACKAGE_TYPE_ALL will cause all package
This function returns a list of the package handles of the
specified type that are currently active in the database. The
pseudo-type EFI_HII_PACKAGE_TYPE_ALL will cause all package
handles to be listed.
@param This A pointer to the EFI_HII_DATABASE_PROTOCOL instance.
@param PackageType Specifies the package type of the packages
to list or EFI_HII_PACKAGE_TYPE_ALL for
all packages to be listed.
@param PackageGuid If PackageType is
EFI_HII_PACKAGE_TYPE_GUID, then this is
the pointer to the GUID which must match
the Guid field of
EFI_HII_PACKAGE_GUID_HEADER. Otherwise, it
must be NULL.
@param HandleBufferLength On input, a pointer to the length
of the handle buffer. On output,
the length of the handle buffer
@@ -258,7 +258,7 @@ EFI_STATUS
@param Handle An EFI_HII_HANDLE that corresponds to the
desired package list in the HII database to
export or NULL to indicate all package lists
should be exported.
should be exported.
@param BufferSize On input, a pointer to the length of the
buffer. On output, the length of the
@@ -267,18 +267,18 @@ EFI_STATUS
@param Buffer A pointer to a buffer that will contain the
results of the export function.
@retval EFI_SUCCESS Package exported.
@retval EFI_OUT_OF_RESOURCES BufferSize is too small to hold the package.
@retval EFI_NOT_FOUND The specified Handle could not be found in the
current database.
@retval EFI_INVALID_PARAMETER BufferSize was NULL.
@retval EFI_INVALID_PARAMETER The value referenced by BufferSize was not zero
@retval EFI_INVALID_PARAMETER The value referenced by BufferSize was not zero
and Buffer was NULL.
**/
typedef
@@ -292,8 +292,8 @@ EFI_STATUS
/**
This function registers a function which will be called when
specified actions related to packages of the specified type
occur in the HII database. By registering a function, other
@@ -302,12 +302,12 @@ EFI_STATUS
or application which registers a notification should use
EFI_HII_DATABASE_PROTOCOL.UnregisterPackageNotify() before
exiting.
@param This A pointer to the EFI_HII_DATABASE_PROTOCOL instance.
@param PackageType The package type. See
EFI_HII_PACKAGE_TYPE_x in EFI_HII_PACKAGE_HEADER.
EFI_HII_PACKAGE_TYPE_x in EFI_HII_PACKAGE_HEADER.
@param PackageGuid If PackageType is
EFI_HII_PACKAGE_TYPE_GUID, then this is
@@ -355,19 +355,19 @@ EFI_STATUS
/**
Removes the specified HII database package-related notification.
@param This A pointer to the EFI_HII_DATABASE_PROTOCOL instance.
@param NotificationHandle The handle of the notification
function being unregistered.
@retval EFI_SUCCESS Successsfully unregistered the notification.
@retval EFI_NOT_FOUND The incoming notification handle does not exist
@retval EFI_SUCCESS Successsfully unregistered the notification.
@retval EFI_NOT_FOUND The incoming notification handle does not exist
in the current hii database.
**/
typedef
EFI_STATUS
@@ -378,7 +378,7 @@ EFI_STATUS
/**
This routine retrieves an array of GUID values for each keyboard
layout that was previously registered in the system.
@@ -388,13 +388,13 @@ EFI_STATUS
of the keyboard GUID buffer. On
output, the length of the handle
buffer that is required for the
handles found.
handles found.
@param KeyGuidBuffer An array of keyboard layout GUID
instances returned.
@retval EFI_SUCCESS KeyGuidBuffer was updated successfully.
@retval EFI_BUFFER_TOO_SMALL The KeyGuidBufferLength
parameter indicates that
KeyGuidBuffer is too small to
@@ -403,7 +403,7 @@ EFI_STATUS
with a value that will enable
the data to fit.
@retval EFI_INVALID_PARAMETER The KeyGuidBufferLength is NULL.
@retval EFI_INVALID_PARAMETER The value referenced by
@retval EFI_INVALID_PARAMETER The value referenced by
KeyGuidBufferLength is not
zero and KeyGuidBuffer is NULL.
@retval EFI_NOT_FOUND There was no keyboard layout.
@@ -419,14 +419,14 @@ EFI_STATUS
/**
This routine retrieves the requested keyboard layout. The layout
is a physical description of the keys on a keyboard, and the
character(s) that are associated with a particular set of key
strokes.
@param This A pointer to the EFI_HII_PROTOCOL instance.
@param KeyGuid A pointer to the unique ID associated with a
given keyboard layout. If KeyGuid is NULL then
the current layout will be retrieved.
@@ -434,13 +434,13 @@ EFI_STATUS
@param KeyboardLayoutLength On input, a pointer to the length of the
KeyboardLayout buffer. On output, the length of
the data placed into KeyboardLayout.
@param KeyboardLayout A pointer to a buffer containing the
retrieved keyboard layout.
@retval EFI_SUCCESS The keyboard layout was retrieved
successfully.
@retval EFI_NOT_FOUND The requested keyboard layout was not found.
**/
@@ -454,7 +454,7 @@ EFI_STATUS
);
/**
This routine sets the default keyboard layout to the one
referenced by KeyGuid. When this routine is called, an event
will be signaled of the EFI_HII_SET_KEYBOARD_LAYOUT_EVENT_GUID
@@ -481,21 +481,21 @@ EFI_STATUS
);
/**
Return the EFI handle associated with a package list.
@param This A pointer to the EFI_HII_PROTOCOL instance.
@param PackageListHandle An EFI_HII_HANDLE that corresponds
to the desired package list in the
HIIdatabase.
@param DriverHandle On return, contains the EFI_HANDLE which
was registered with the package list in
NewPackageList().
@retval EFI_SUCCESS The DriverHandle was returned successfully.
@retval EFI_INVALID_PARAMETER The PackageListHandle was not valid.
**/

View File

@@ -1,14 +1,14 @@
/** @file
The file provides services to retrieve font information.
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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.
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.
**/
@@ -27,7 +27,7 @@ typedef VOID *EFI_FONT_HANDLE;
///
/// EFI_HII_OUT_FLAGS.
///
///
typedef UINT32 EFI_HII_OUT_FLAGS;
#define EFI_HII_OUT_FLAG_CLIP 0x00000001
@@ -49,12 +49,12 @@ typedef struct _EFI_HII_ROW_INFO {
UINTN StartIndex;
///
/// The index of the last character in the string which is displayed on the line.
/// If this is the same as StartIndex, then no characters are displayed.
/// If this is the same as StartIndex, then no characters are displayed.
///
UINTN EndIndex;
UINTN LineHeight; ///< The height of the line, in pixels.
UINTN LineWidth; ///< The width of the text on the line, in pixels.
///
/// The font baseline offset in pixels from the bottom of the row, or 0 if none.
///
@@ -80,7 +80,7 @@ typedef UINT32 EFI_FONT_INFO_MASK;
//
// EFI_FONT_INFO
//
//
typedef struct {
EFI_HII_FONT_STYLE FontStyle;
UINT16 FontSize; ///< character cell height in pixels
@@ -103,7 +103,7 @@ typedef struct _EFI_FONT_DISPLAY_INFO {
EFI_GRAPHICS_OUTPUT_BLT_PIXEL ForegroundColor;
EFI_GRAPHICS_OUTPUT_BLT_PIXEL BackgroundColor;
EFI_FONT_INFO_MASK FontInfoMask;
EFI_FONT_INFO FontInfo;
EFI_FONT_INFO FontInfo;
} EFI_FONT_DISPLAY_INFO;
/**
@@ -155,7 +155,7 @@ typedef struct _EFI_FONT_DISPLAY_INFO {
@param Flags Describes how the string is to be drawn.
@param String Points to the null-terminated string to be
@param String Points to the null-terminated string to be
@param StringInfo Points to the string output information,
including the color and font. If NULL, then
@@ -203,9 +203,9 @@ typedef struct _EFI_FONT_DISPLAY_INFO {
overlap.
@retval EFI_SUCCESS The string was successfully updated.
@retval EFI_OUT_OF_RESOURCES Unable to allocate an output buffer for RowInfoArray or Blt.
@retval EFI_INVALID_PARAMETER The String or Blt was NULL.
@retval EFI_INVALID_PARAMETER Flags were invalid combination.
@@ -276,7 +276,7 @@ EFI_STATUS
@param Flags Describes how the string is to be drawn.
@param PackageList
@param PackageList
The package list in the HII database to
search for the specified string.
@@ -342,8 +342,8 @@ EFI_STATUS
Width was NULL.
@retval EFI_INVALID_PARAMETER The Blt or PackageList was NULL.
@retval EFI_INVALID_PARAMETER Flags were invalid combination.
@retval EFI_NOT_FOUND The specified PackageList is not in the Database,
or the stringid is not in the specified PackageList.
@retval EFI_NOT_FOUND The specified PackageList is not in the Database,
or the stringid is not in the specified PackageList.
**/
typedef
@@ -424,26 +424,26 @@ EFI_STATUS
to NULL if there are no more matching fonts.
@param StringInfoIn Upon entry, points to the font to return
information about. If NULL, then the information
information about. If NULL, then the information
about the system default font will be returned.
@param StringInfoOut Upon return, contains the matching font's information.
If NULL, then no information is returned. This buffer
is allocated with a call to the Boot Service AllocatePool().
It is the caller's responsibility to call the Boot
It is the caller's responsibility to call the Boot
Service FreePool() when the caller no longer requires
the contents of StringInfoOut.
@param String Points to the string which will be tested to
determine if all characters are available. If
NULL, then any font is acceptable.
@retval EFI_SUCCESS Matching font returned successfully.
@retval EFI_NOT_FOUND No matching font was found.
@retval EFI_OUT_OF_RESOURCES There were insufficient resources to complete the request.
**/
typedef
EFI_STATUS

View File

@@ -1,14 +1,14 @@
/** @file
The file provides services to access to images in the images database.
Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
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.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
**/
@@ -25,18 +25,18 @@ typedef struct _EFI_HII_IMAGE_PROTOCOL EFI_HII_IMAGE_PROTOCOL;
///
/// Flags in EFI_IMAGE_INPUT
///
///
#define EFI_IMAGE_TRANSPARENT 0x00000001
/**
Definition of EFI_IMAGE_INPUT.
@param Flags Describe image characteristics. If
EFI_IMAGE_TRANSPARENT is set, then the image was
designed for transparent display.
@param Width Image width, in pixels.
@param Width Image width, in pixels.
@param Height Image height, in pixels.
@@ -44,7 +44,7 @@ typedef struct _EFI_HII_IMAGE_PROTOCOL EFI_HII_IMAGE_PROTOCOL;
top-to-bottom. The size of the bitmap is
Width*Height*sizeof(EFI_GRAPHICS_OUTPUT_BLT_PIXEL).
**/
typedef struct _EFI_IMAGE_INPUT {
UINT32 Flags;
@@ -60,8 +60,8 @@ typedef struct _EFI_IMAGE_INPUT {
owned by PackageList, and returns a new image identifier
(ImageId).
@param This A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
@param This A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
@param PackageList Handle of the package list where this image will be added.
@param ImageId On return, contains the new image id, which is
@@ -71,9 +71,9 @@ typedef struct _EFI_IMAGE_INPUT {
@retval EFI_SUCCESS The new image was added
successfully
@retval EFI_OUT_OF_RESOURCES Could not add the image.
@retval EFI_INVALID_PARAMETER Image is NULL or ImageId is
NULL.
@@ -100,21 +100,21 @@ EFI_STATUS
updated to the size of buffer actually required to hold the
image.
@param This A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
@param This A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
@param PackageList The package list in the HII database to
search for the specified image.
@param ImageId The image's id, which is unique within
PackageList.
@param Image Points to the new image.
@retval EFI_SUCCESS The image was returned successfully.
@retval EFI_NOT_FOUND The image specified by ImageId is not
available. Or The specified PackageList is not in the database.
@retval EFI_INVALID_PARAMETER The Image or Langugae was NULL.
@retval EFI_OUT_OF_RESOURCES The bitmap could not be retrieved because there was not
enough memory.
@@ -131,12 +131,12 @@ EFI_STATUS
);
/**
This function updates the image specified by ImageId in the
specified PackageListHandle to the image specified by Image.
@param This A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
@param This A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
@param PackageList The package list containing the images.
@@ -145,10 +145,10 @@ EFI_STATUS
@param Image Points to the image.
@retval EFI_SUCCESS The image was successfully updated.
@retval EFI_NOT_FOUND The image specified by ImageId is not in the database.
The specified PackageList is not in the database.
The specified PackageList is not in the database.
@retval EFI_INVALID_PARAMETER The Image or Language was NULL.
**/
@@ -176,9 +176,9 @@ typedef UINT32 EFI_HII_DRAW_FLAGS;
#define EFI_HII_DIRECT_TO_SCREEN 0x00000080
/**
Definition of EFI_IMAGE_OUTPUT.
@param Width Width of the output image.
@param Height Height of the output image.
@@ -201,7 +201,7 @@ typedef struct _EFI_IMAGE_OUTPUT {
/**
This function renders an image to a bitmap or the screen using
the specified color and options. It draws the image on an
existing bitmap, allocates a new bitmap or uses the screen. The
@@ -216,14 +216,14 @@ typedef struct _EFI_IMAGE_OUTPUT {
specified by Bitmap.
@param This A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
@param This A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
@param Flags Describes how the image is to be drawn.
EFI_HII_DRAW_FLAGS is defined in Related
Definitions, below.
@param Image Points to the image to be displayed.
@param Image Points to the image to be displayed.
@param Blt If this points to a non-NULL on entry, this points
to the image, which is Width pixels wide and
Height pixels high. The image will be drawn onto
@@ -259,7 +259,7 @@ EFI_STATUS
);
/**
This function renders an image as a bitmap or to the screen and
can clip the image. The bitmap is either supplied by the caller
or else is allocated by the function. The images can be drawn
@@ -292,7 +292,7 @@ EFI_STATUS
directly to the output device specified by Screen. Otherwise the
image will be rendered to the bitmap specified by Bitmap.
@param This A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
@param This A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
@param Flags Describes how the image is to be drawn.
@@ -315,14 +315,14 @@ EFI_STATUS
pixel in the image.
@retval EFI_SUCCESS The image was successfully updated.
@retval EFI_OUT_OF_RESOURCES Unable to allocate an output
buffer for RowInfoArray or Blt.
@retval EFI_NOT_FOUND The image specified by ImageId is not in the database.
Or The specified PackageList is not in the database.
@retval EFI_INVALID_PARAMETER The Blt was NULL.
@retval EFI_NOT_FOUND The image specified by ImageId is not in the database.
Or The specified PackageList is not in the database.
@retval EFI_INVALID_PARAMETER The Blt was NULL.
**/
typedef

View File

@@ -4,15 +4,15 @@
if the image contains a custom PE/COFF resource with the type 'HII'.
The protocol's interface pointer points to the HII package list, which is
contained in the resource's data.
Copyright (c) 2009, Intel Corporation. All rights reserved.<BR>
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.
Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
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.
**/

View File

@@ -1,14 +1,14 @@
/** @file
The file provides services to manipulate string data.
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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.
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.
**/
@@ -25,8 +25,8 @@ typedef struct _EFI_HII_STRING_PROTOCOL EFI_HII_STRING_PROTOCOL;
/**
This function adds the string String to the group of strings owned by PackageList, with the
specified font information StringFontInfo, and returns a new string id.
The new string identifier is guaranteed to be unique within the package list.
That new string identifier is reserved for all languages in the package list.
The new string identifier is guaranteed to be unique within the package list.
That new string identifier is reserved for all languages in the package list.
@param This A pointer to the EFI_HII_STRING_PROTOCOL instance.
@param PackageList The handle of the package list where this string will
@@ -61,7 +61,7 @@ EFI_STATUS
IN EFI_HII_HANDLE PackageList,
OUT EFI_STRING_ID *StringId,
IN CONST CHAR8 *Language,
IN CONST CHAR16 *LanguageName, OPTIONAL
IN CONST CHAR16 *LanguageName, OPTIONAL
IN CONST EFI_STRING String,
IN CONST EFI_FONT_INFO *StringFontInfo OPTIONAL
);
@@ -89,7 +89,7 @@ EFI_STATUS
@retval EFI_SUCCESS The string was returned successfully.
@retval EFI_NOT_FOUND The string specified by StringId is not available.
The specified PackageList is not in the database.
@retval EFI_INVALID_LANGUAGE The string specified by StringId is available but
@retval EFI_INVALID_LANGUAGE The string specified by StringId is available but
not in the specified language.
@retval EFI_BUFFER_TOO_SMALL The buffer specified by StringSize is too small to
hold the string.

View File

@@ -4,7 +4,7 @@
HTTP Service Binding Protocol (HTTPSB)
HTTP Protocol (HTTP)
Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>
(C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -305,16 +305,16 @@ typedef struct {
@param[in] This Pointer to EFI_HTTP_PROTOCOL instance.
@param[out] HttpConfigData Point to buffer for operational parameters of this
HTTP instance. It is the responsibility of the caller
to allocate the memory for HttpConfigData and
HttpConfigData->AccessPoint.IPv6Node/IPv4Node. In fact,
it is recommended to allocate sufficient memory to record
HTTP instance. It is the responsibility of the caller
to allocate the memory for HttpConfigData and
HttpConfigData->AccessPoint.IPv6Node/IPv4Node. In fact,
it is recommended to allocate sufficient memory to record
IPv6Node since it is big enough for all possibilities.
@retval EFI_SUCCESS Operation succeeded.
@retval EFI_INVALID_PARAMETER This is NULL.
HttpConfigData is NULL.
HttpConfigData->AccessPoint.IPv4Node or
HttpConfigData->AccessPoint.IPv4Node or
HttpConfigData->AccessPoint.IPv6Node is NULL.
@retval EFI_NOT_STARTED This EFI HTTP Protocol instance has not been started.
**/
@@ -364,7 +364,7 @@ EFI_STATUS
);
/**
The Request() function queues an HTTP request to this HTTP instance,
The Request() function queues an HTTP request to this HTTP instance,
similar to Transmit() function in the EFI TCP driver. When the HTTP request is sent
successfully, or if there is an error, Status in token will be updated and Event will
be signaled.

View File

@@ -1,7 +1,7 @@
/** @file
This file defines the EFI HTTP Boot Callback Protocol interface.
Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2017 - 2018, Intel Corporation. All rights reserved.<BR>
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
@@ -43,7 +43,7 @@ typedef enum {
///
HttpBootHttpRequest,
///
/// Data points to an EFI_HTTP_MESSAGE structure, which contians a received HTTP
/// Data points to an EFI_HTTP_MESSAGE structure, which contians a received HTTP
/// response message.
///
HttpBootHttpResponse,
@@ -72,7 +72,7 @@ typedef enum {
@param[in] DataLength The length in bytes of the buffer pointed to by Data.
@param[in] Data A pointer to the buffer of data, the data type is specified by
DataType.
@retval EFI_SUCCESS Tells the HTTP Boot driver to continue the HTTP Boot process.
@retval EFI_ABORTED Tells the HTTP Boot driver to abort the current HTTP Boot process.
**/
@@ -87,7 +87,7 @@ EFI_STATUS
);
///
/// EFI HTTP Boot Callback Protocol is invoked when the HTTP Boot driver is about to transmit or
/// EFI HTTP Boot Callback Protocol is invoked when the HTTP Boot driver is about to transmit or
/// has received a packet. The EFI HTTP Boot Callback Protocol must be installed on the same handle
/// as the Load File Protocol for the HTTP Boot.
///

View File

@@ -1,19 +1,19 @@
/** @file
I2C Bus Configuration Management Protocol as defined in the PI 1.3 specification.
The EFI I2C bus configuration management protocol provides platform specific
services that allow the I2C host protocol to reconfigure the switches and multiplexers
and set the clock frequency for the I2C bus. This protocol also enables the I2C host protocol
The EFI I2C bus configuration management protocol provides platform specific
services that allow the I2C host protocol to reconfigure the switches and multiplexers
and set the clock frequency for the I2C bus. This protocol also enables the I2C host protocol
to reset an I2C device which may be locking up the I2C bus by holding the clock or data line low.
Copyright (c) 2013, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
@par Revision Reference:
This protocol is from PI Version 1.3.

View File

@@ -3,14 +3,14 @@
This protocol supports the enumerations of device on the I2C bus.
Copyright (c) 2013, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
@par Revision Reference:
This protocol is from PI Version 1.3.

View File

@@ -1,17 +1,17 @@
/** @file
I2C Host Protocol as defined in the PI 1.3 specification.
This protocol provides callers with the ability to do I/O transactions
This protocol provides callers with the ability to do I/O transactions
to all of the devices on the I2C bus.
Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
@par Revision Reference:
This protocol is from PI Version 1.3.
@@ -50,7 +50,7 @@ typedef struct _EFI_I2C_HOST_PROTOCOL EFI_I2C_HOST_PROTOCOL;
This routine must be called at or below TPL_NOTIFY. For
synchronous requests this routine must be called at or below
TPL_CALLBACK.
The I2C host protocol uses the concept of I2C bus configurations
to describe the I2C bus. An I2C bus configuration is defined as
a unique setting of the multiplexers and switches in the I2C bus

View File

@@ -1,17 +1,17 @@
/** @file
I2C I/O Protocol as defined in the PI 1.3 specification.
The EFI I2C I/O protocol enables the user to manipulate a single
The EFI I2C I/O protocol enables the user to manipulate a single
I2C device independent of the host controller and I2C design.
Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
@par Revision Reference:
This protocol is from PI Version 1.3.
@@ -66,7 +66,7 @@ typedef struct _EFI_I2C_IO_PROTOCOL EFI_I2C_IO_PROTOCOL;
The upper layer driver writer provides the following to the platform
vendor:
1. Vendor specific GUID for the I2C part
2. Guidance on proper construction of the slave address array when the
I2C device uses more than one slave address. The I2C bus protocol

View File

@@ -1,17 +1,17 @@
/** @file
I2C Master Protocol as defined in the PI 1.3 specification.
This protocol manipulates the I2C host controller to perform transactions as a master
This protocol manipulates the I2C host controller to perform transactions as a master
on the I2C bus using the current state of any switches or multiplexers in the I2C bus.
Copyright (c) 2013, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
@par Revision Reference:
This protocol is from PI Version 1.3.
@@ -72,7 +72,7 @@ EFI_STATUS
@retval EFI_SUCCESS The reset completed successfully.
@retval EFI_ALREADY_STARTED The controller is busy with another transaction.
@retval EFI_DEVICE_ERROR The reset operation failed.
**/
typedef
EFI_STATUS

View File

@@ -1,15 +1,15 @@
/** @file
EFI_ISCSI_INITIATOR_NAME_PROTOCOL as defined in UEFI 2.0.
It provides the ability to get and set the iSCSI Initiator Name.
It provides the ability to get and set the iSCSI Initiator Name.
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -39,7 +39,7 @@ typedef struct _EFI_ISCSI_INITIATOR_NAME_PROTOCOL EFI_ISCSI_INITIATOR_NAME_PROTO
@retval EFI_DEVICE_ERROR The iSCSI initiator name could not be retrieved due to a hardware error.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_ISCSI_INITIATOR_NAME_GET)(
IN EFI_ISCSI_INITIATOR_NAME_PROTOCOL *This,
@@ -47,7 +47,7 @@ EFI_STATUS
OUT VOID *Buffer
);
/**
Sets the iSCSI Initiator Name.
@@ -71,10 +71,10 @@ typedef EFI_STATUS
IN EFI_ISCSI_INITIATOR_NAME_PROTOCOL *This,
IN OUT UINTN *BufferSize,
IN VOID *Buffer
);
);
///
/// iSCSI Initiator Name Protocol for setting and obtaining the iSCSI Initiator Name.
/// iSCSI Initiator Name Protocol for setting and obtaining the iSCSI Initiator Name.
///
struct _EFI_ISCSI_INITIATOR_NAME_PROTOCOL {
EFI_ISCSI_INITIATOR_NAME_GET Get;

View File

@@ -1,31 +1,31 @@
/** @file
This file declares EFI IDE Controller Init Protocol
The EFI_IDE_CONTROLLER_INIT_PROTOCOL provides the chipset-specific information
to the driver entity. This protocol is mandatory for IDE controllers if the
IDE devices behind the controller are to be enumerated by a driver entity.
There can only be one instance of EFI_IDE_CONTROLLER_INIT_PROTOCOL for each IDE
controller in a system. It is installed on the handle that corresponds to the
IDE controller. A driver entity that wishes to manage an IDE bus and possibly
IDE devices in a system will have to retrieve the EFI_IDE_CONTROLLER_INIT_PROTOCOL
instance that is associated with the controller to be managed.
A device handle for an IDE controller must contain an EFI_DEVICE_PATH_PROTOCOL.
Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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,
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.
@par Revision Reference:
This Protocol is defined in UEFI Platform Initialization Specification 1.2
This Protocol is defined in UEFI Platform Initialization Specification 1.2
Volume 5: Standards.
**/
#ifndef _EFI_IDE_CONTROLLER_INIT_PROTOCOL_H_
@@ -71,7 +71,7 @@ typedef enum {
///
/// The driver entity has completed resetting the devices behind
/// the specified channel. This notification can be used to perform
/// any chipset-specific programming.
/// any chipset-specific programming.
///
EfiIdeAfterChannelReset,
///
@@ -84,13 +84,13 @@ typedef enum {
///
/// The driver entity is done with detecting the presence of
/// devices behind the specified channel. This notification can be
/// used to perform any chipset-specific programming.
/// used to perform any chipset-specific programming.
///
EfiIdeBusAfterDevicePresenceDetection,
///
/// The IDE bus is requesting the IDE controller driver to
/// reprogram the IDE controller hardware and thereby reset all
/// the mode and timing settings to default settings.
/// the mode and timing settings to default settings.
///
EfiIdeResetMode,
EfiIdeBusPhaseMaximum
@@ -135,11 +135,11 @@ typedef struct {
typedef struct {
///
/// An enumeration defining various transfer protocols other than the protocols
/// that exist at the time this specification was developed (i.e., PIO, single
/// word DMA, multiword DMA, and UDMA). Each transfer protocol is associated
/// with a mode. The various transfer protocols are defined by the ATA/ATAPI
/// specification. This enumeration makes the interface extensible because we
/// can support new transport protocols beyond UDMA. Type EFI_ATA_EXT_TRANSFER_PROTOCOL
/// that exist at the time this specification was developed (i.e., PIO, single
/// word DMA, multiword DMA, and UDMA). Each transfer protocol is associated
/// with a mode. The various transfer protocols are defined by the ATA/ATAPI
/// specification. This enumeration makes the interface extensible because we
/// can support new transport protocols beyond UDMA. Type EFI_ATA_EXT_TRANSFER_PROTOCOL
/// is defined below.
///
EFI_ATA_EXT_TRANSFER_PROTOCOL TransferProtocol;
@@ -155,7 +155,7 @@ typedef struct {
typedef struct {
///
/// This field specifies the PIO mode. PIO modes are defined in the ATA/ATAPI
/// specification. The ATA/ATAPI specification defines the enumeration. In
/// specification. The ATA/ATAPI specification defines the enumeration. In
/// other words, a value of 1 in this field means PIO mode 1. The actual meaning
/// of PIO mode 1 is governed by the ATA/ATAPI specification. Type EFI_ATA_MODE
/// is defined below.
@@ -168,26 +168,26 @@ typedef struct {
/// controllers will not support this transfer mode. The ATA/ATAPI specification defines
/// the enumeration. In other words, a value of 1 in this field means single word DMA
/// mode 1. The actual meaning of single word DMA mode 1 is governed by the ATA/
/// ATAPI specification.
/// ATAPI specification.
///
EFI_ATA_MODE SingleWordDmaMode;
///
/// This field specifies the multiword DMA mode. Various multiword DMA modes are
/// defined in the ATA/ATAPI specification. A value of 1 in this field means multiword
/// DMA mode 1. The actual meaning of multiword DMA mode 1 is governed by the
/// ATA/ATAPI specification.
/// ATA/ATAPI specification.
///
EFI_ATA_MODE MultiWordDmaMode;
///
/// This field specifies the ultra DMA (UDMA) mode. UDMA modes are defined in the
/// ATA/ATAPI specification. A value of 1 in this field means UDMA mode 1. The
/// actual meaning of UDMA mode 1 is governed by the ATA/ATAPI specification.
/// actual meaning of UDMA mode 1 is governed by the ATA/ATAPI specification.
///
EFI_ATA_MODE UdmaMode;
///
/// The number of extended-mode bitmap entries. Extended modes describe transfer
/// protocols beyond PIO, single word DMA, multiword DMA, and UDMA. This field
/// can be zero and provides extensibility.
/// can be zero and provides extensibility.
///
UINT32 ExtModeCount;
///
@@ -195,7 +195,7 @@ typedef struct {
/// than the ones defined above (i.e., PIO, single word DMA, multiword DMA, and
/// UDMA). This field is defined for extensibility. At this time, only one extended
/// transfer protocol is defined to cover SATA transfers. Type
/// EFI_ATA_EXTENDED_MODE is defined below.
/// EFI_ATA_EXTENDED_MODE is defined below.
///
EFI_ATA_EXTENDED_MODE ExtMode[1];
} EFI_ATA_COLLECTIVE_MODE;
@@ -206,16 +206,16 @@ typedef struct {
/// The definition of these two structures is not part of the protocol
/// definition because the ATA/ATAPI Specification controls the definition
/// of all the fields. The ATA/ATAPI Specification can obsolete old fields
/// or redefine existing fields.
/// or redefine existing fields.
typedef ATA_IDENTIFY_DATA EFI_ATA_IDENTIFY_DATA;
typedef ATAPI_IDENTIFY_DATA EFI_ATAPI_IDENTIFY_DATA;
///
/// This flag indicates whether the IDENTIFY data is a response from an ATA device
/// (EFI_ATA_IDENTIFY_DATA) or response from an ATAPI device
/// (EFI_ATA_IDENTIFY_DATA) or response from an ATAPI device
/// (EFI_ATAPI_IDENTIFY_DATA). According to the ATA/ATAPI specification,
/// EFI_IDENTIFY_DATA is for an ATA device if bit 15 of the Config field is zero.
/// The Config field is common to both EFI_ATA_IDENTIFY_DATA and
/// EFI_IDENTIFY_DATA is for an ATA device if bit 15 of the Config field is zero.
/// The Config field is common to both EFI_ATA_IDENTIFY_DATA and
/// EFI_ATAPI_IDENTIFY_DATA.
///
#define EFI_ATAPI_DEVICE_IDENTIFY_DATA 0x8000
@@ -225,8 +225,8 @@ typedef ATAPI_IDENTIFY_DATA EFI_ATAPI_IDENTIFY_DATA;
///
typedef union {
///
/// The data that is returned by an ATA device upon successful completion
/// of the ATA IDENTIFY_DEVICE command.
/// The data that is returned by an ATA device upon successful completion
/// of the ATA IDENTIFY_DEVICE command.
///
EFI_ATA_IDENTIFY_DATA AtaData;
///
@@ -238,34 +238,34 @@ typedef union {
/**
Returns the information about the specified IDE channel.
This function can be used to obtain information about a particular IDE channel.
The driver entity uses this information during the enumeration process.
If Enabled is set to FALSE, the driver entity will not scan the channel. Note
The driver entity uses this information during the enumeration process.
If Enabled is set to FALSE, the driver entity will not scan the channel. Note
that it will not prevent an operating system driver from scanning the channel.
For most of today's controllers, MaxDevices will either be 1 or 2. For SATA
controllers, this value will always be 1. SATA configurations can contain SATA
For most of today's controllers, MaxDevices will either be 1 or 2. For SATA
controllers, this value will always be 1. SATA configurations can contain SATA
port multipliers. SATA port multipliers behave like SATA bridges and can support
up to 16 devices on the other side. If a SATA port out of the IDE controller
is connected to a port multiplier, MaxDevices will be set to the number of SATA
devices that the port multiplier supports. Because today's port multipliers
support up to fifteen SATA devices, this number can be as large as fifteen. The IDE
bus driver is required to scan for the presence of port multipliers behind an SATA
controller and enumerate up to MaxDevices number of devices behind the port
multiplier.
In this context, the devices behind a port multiplier constitute a channel.
up to 16 devices on the other side. If a SATA port out of the IDE controller
is connected to a port multiplier, MaxDevices will be set to the number of SATA
devices that the port multiplier supports. Because today's port multipliers
support up to fifteen SATA devices, this number can be as large as fifteen. The IDE
bus driver is required to scan for the presence of port multipliers behind an SATA
controller and enumerate up to MaxDevices number of devices behind the port
multiplier.
In this context, the devices behind a port multiplier constitute a channel.
@param[in] This The pointer to the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance.
@param[in] Channel Zero-based channel number.
@param[out] Enabled TRUE if this channel is enabled. Disabled channels
@param[out] Enabled TRUE if this channel is enabled. Disabled channels
are not scanned to see if any devices are present.
@param[out] MaxDevices The maximum number of IDE devices that the bus driver
can expect on this channel. For the ATA/ATAPI
specification, version 6, this number will either be
one or two. For Serial ATA (SATA) configurations with a
can expect on this channel. For the ATA/ATAPI
specification, version 6, this number will either be
one or two. For Serial ATA (SATA) configurations with a
port multiplier, this number can be as large as fifteen.
@retval EFI_SUCCESS Information was returned without any errors.
@@ -284,13 +284,13 @@ EFI_STATUS
/**
The notifications from the driver entity that it is about to enter a certain
phase of the IDE channel enumeration process.
This function can be used to notify the IDE controller driver to perform
specific actions, including any chipset-specific initialization, so that the
chipset is ready to enter the next phase. Seven notification points are defined
at this time.
More synchronization points may be added as required in the future.
This function can be used to notify the IDE controller driver to perform
specific actions, including any chipset-specific initialization, so that the
chipset is ready to enter the next phase. Seven notification points are defined
at this time.
More synchronization points may be added as required in the future.
@param[in] This The pointer to the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance.
@param[in] Phase The phase during enumeration.
@@ -299,9 +299,9 @@ EFI_STATUS
@retval EFI_SUCCESS The notification was accepted without any errors.
@retval EFI_UNSUPPORTED Phase is not supported.
@retval EFI_INVALID_PARAMETER Channel is invalid (Channel >= ChannelCount).
@retval EFI_NOT_READY This phase cannot be entered at this time; for
example, an attempt was made to enter a Phase
without having entered one or more previous
@retval EFI_NOT_READY This phase cannot be entered at this time; for
example, an attempt was made to enter a Phase
without having entered one or more previous
Phase.
**/
@@ -316,32 +316,32 @@ EFI_STATUS
/**
Submits the device information to the IDE controller driver.
This function is used by the driver entity to pass detailed information about
a particular device to the IDE controller driver. The driver entity obtains
This function is used by the driver entity to pass detailed information about
a particular device to the IDE controller driver. The driver entity obtains
this information by issuing an ATA or ATAPI IDENTIFY_DEVICE command. IdentifyData
is the pointer to the response data buffer. The IdentifyData buffer is owned
by the driver entity, and the IDE controller driver must make a local copy
of the entire buffer or parts of the buffer as needed. The original IdentifyData
is the pointer to the response data buffer. The IdentifyData buffer is owned
by the driver entity, and the IDE controller driver must make a local copy
of the entire buffer or parts of the buffer as needed. The original IdentifyData
buffer pointer may not be valid when
- EFI_IDE_CONTROLLER_INIT_PROTOCOL.CalculateMode() or
- EFI_IDE_CONTROLLER_INIT_PROTOCOL.DisqualifyMode() is called at a later point.
The IDE controller driver may consult various fields of EFI_IDENTIFY_DATA to
compute the optimum mode for the device. These fields are not limited to the
timing information. For example, an implementation of the IDE controller driver
may examine the vendor and type/mode field to match known bad drives.
The driver entity may submit drive information in any order, as long as it
submits information for all the devices belonging to the enumeration group
The IDE controller driver may consult various fields of EFI_IDENTIFY_DATA to
compute the optimum mode for the device. These fields are not limited to the
timing information. For example, an implementation of the IDE controller driver
may examine the vendor and type/mode field to match known bad drives.
The driver entity may submit drive information in any order, as long as it
submits information for all the devices belonging to the enumeration group
before EFI_IDE_CONTROLLER_INIT_PROTOCOL.CalculateMode() is called for any device
in that enumeration group. If a device is absent, EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData()
should be called with IdentifyData set to NULL. The IDE controller driver may
not have any other mechanism to know whether a device is present or not. Therefore,
setting IdentifyData to NULL does not constitute an error condition.
EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData() can be called only once for a
given (Channel, Device) pair.
should be called with IdentifyData set to NULL. The IDE controller driver may
not have any other mechanism to know whether a device is present or not. Therefore,
setting IdentifyData to NULL does not constitute an error condition.
EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData() can be called only once for a
given (Channel, Device) pair.
@param[in] This A pointer to the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance.
@param[in] Channel Zero-based channel number.
@param[in] Device Zero-based device number on the Channel.
@@ -364,31 +364,31 @@ EFI_STATUS
/**
Disqualifies specific modes for an IDE device.
This function allows the driver entity or other drivers (such as platform
This function allows the driver entity or other drivers (such as platform
drivers) to reject certain timing modes and request the IDE controller driver
to recalculate modes. This function allows the driver entity and the IDE
controller driver to negotiate the timings on a per-device basis. This function
is useful in the case of drives that lie about their capabilities. An example
is when the IDE device fails to accept the timing modes that are calculated
to recalculate modes. This function allows the driver entity and the IDE
controller driver to negotiate the timings on a per-device basis. This function
is useful in the case of drives that lie about their capabilities. An example
is when the IDE device fails to accept the timing modes that are calculated
by the IDE controller driver based on the response to the Identify Drive command.
If the driver entity does not want to limit the ATA timing modes and leave that
decision to the IDE controller driver, it can either not call this function for
the given device or call this function and set the Valid flag to FALSE for all
If the driver entity does not want to limit the ATA timing modes and leave that
decision to the IDE controller driver, it can either not call this function for
the given device or call this function and set the Valid flag to FALSE for all
modes that are listed in EFI_ATA_COLLECTIVE_MODE.
The driver entity may disqualify modes for a device in any order and any number
The driver entity may disqualify modes for a device in any order and any number
of times.
This function can be called multiple times to invalidate multiple modes of the
same type (e.g., Programmed Input/Output [PIO] modes 3 and 4). See the ATA/ATAPI
specification for more information on PIO modes.
This function can be called multiple times to invalidate multiple modes of the
same type (e.g., Programmed Input/Output [PIO] modes 3 and 4). See the ATA/ATAPI
specification for more information on PIO modes.
For Serial ATA (SATA) controllers, this member function can be used to disqualify
a higher transfer rate mode on a given channel. For example, a platform driver
may inform the IDE controller driver to not use second-generation (Gen2) speeds
may inform the IDE controller driver to not use second-generation (Gen2) speeds
for a certain SATA drive.
@param[in] This The pointer to the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance.
@param[in] Channel The zero-based channel number.
@param[in] Device The zero-based device number on the Channel.
@@ -399,7 +399,7 @@ EFI_STATUS
@retval EFI_INVALID_PARAMETER Channel is invalid (Channel >= ChannelCount).
@retval EFI_INVALID_PARAMETER Device is invalid.
@retval EFI_INVALID_PARAMETER IdentifyData is NULL.
**/
typedef
EFI_STATUS
@@ -414,39 +414,39 @@ EFI_STATUS
Returns the information about the optimum modes for the specified IDE device.
This function is used by the driver entity to obtain the optimum ATA modes for
a specific device. The IDE controller driver takes into account the following
a specific device. The IDE controller driver takes into account the following
while calculating the mode:
- The IdentifyData inputs to EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData()
- The BadModes inputs to EFI_IDE_CONTROLLER_INIT_PROTOCOL.DisqualifyMode()
The driver entity is required to call EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData()
for all the devices that belong to an enumeration group before calling
EFI_IDE_CONTROLLER_INIT_PROTOCOL.CalculateMode() for any device in the same group.
The IDE controller driver will use controller- and possibly platform-specific
algorithms to arrive at SupportedModes. The IDE controller may base its
decision on user preferences and other considerations as well. This function
may be called multiple times because the driver entity may renegotiate the mode
The driver entity is required to call EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData()
for all the devices that belong to an enumeration group before calling
EFI_IDE_CONTROLLER_INIT_PROTOCOL.CalculateMode() for any device in the same group.
The IDE controller driver will use controller- and possibly platform-specific
algorithms to arrive at SupportedModes. The IDE controller may base its
decision on user preferences and other considerations as well. This function
may be called multiple times because the driver entity may renegotiate the mode
with the IDE controller driver using EFI_IDE_CONTROLLER_INIT_PROTOCOL.DisqualifyMode().
The driver entity may collect timing information for various devices in any
The driver entity may collect timing information for various devices in any
order. The driver entity is responsible for making sure that all the dependencies
are satisfied. For example, the SupportedModes information for device A that
was previously returned may become stale after a call to
are satisfied. For example, the SupportedModes information for device A that
was previously returned may become stale after a call to
EFI_IDE_CONTROLLER_INIT_PROTOCOL.DisqualifyMode() for device B.
The buffer SupportedModes is allocated by the callee because the caller does
not necessarily know the size of the buffer. The type EFI_ATA_COLLECTIVE_MODE
is defined in a way that allows for future extensibility and can be of variable
length. This memory pool should be deallocated by the caller when it is no
longer necessary.
The IDE controller driver for a Serial ATA (SATA) controller can use this
member function to force a lower speed (first-generation [Gen1] speeds on a
second-generation [Gen2]-capable hardware). The IDE controller driver can
also allow the driver entity to stay with the speed that has been negotiated
The buffer SupportedModes is allocated by the callee because the caller does
not necessarily know the size of the buffer. The type EFI_ATA_COLLECTIVE_MODE
is defined in a way that allows for future extensibility and can be of variable
length. This memory pool should be deallocated by the caller when it is no
longer necessary.
The IDE controller driver for a Serial ATA (SATA) controller can use this
member function to force a lower speed (first-generation [Gen1] speeds on a
second-generation [Gen2]-capable hardware). The IDE controller driver can
also allow the driver entity to stay with the speed that has been negotiated
by the physical layer.
@param[in] This The pointer to the EFI_IDE_CONTROLLER_INIT_PROTOCOL instance.
@param[in] Channel A zero-based channel number.
@param[in] Device A zero-based device number on the Channel.
@@ -454,13 +454,13 @@ EFI_STATUS
@retval EFI_SUCCESS SupportedModes was returned.
@retval EFI_INVALID_PARAMETER Channel is invalid (Channel >= ChannelCount).
@retval EFI_INVALID_PARAMETER Device is invalid.
@retval EFI_INVALID_PARAMETER Device is invalid.
@retval EFI_INVALID_PARAMETER SupportedModes is NULL.
@retval EFI_NOT_READY Modes cannot be calculated due to a lack of
data. This error may happen if
EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData()
and EFI_IDE_CONTROLLER_INIT_PROTOCOL.DisqualifyData()
were not called for at least one drive in the
@retval EFI_NOT_READY Modes cannot be calculated due to a lack of
data. This error may happen if
EFI_IDE_CONTROLLER_INIT_PROTOCOL.SubmitData()
and EFI_IDE_CONTROLLER_INIT_PROTOCOL.DisqualifyData()
were not called for at least one drive in the
same enumeration group.
**/
@@ -477,9 +477,9 @@ EFI_STATUS
Commands the IDE controller driver to program the IDE controller hardware
so that the specified device can operate at the specified mode.
This function is used by the driver entity to instruct the IDE controller
driver to program the IDE controller hardware to the specified modes. This
function can be called only once for a particular device. For a Serial ATA
This function is used by the driver entity to instruct the IDE controller
driver to program the IDE controller hardware to the specified modes. This
function can be called only once for a particular device. For a Serial ATA
(SATA) Advanced Host Controller Interface (AHCI) controller, no controller-
specific programming may be required.
@@ -513,48 +513,48 @@ struct _EFI_IDE_CONTROLLER_INIT_PROTOCOL {
/// Returns the information about a specific channel.
///
EFI_IDE_CONTROLLER_GET_CHANNEL_INFO GetChannelInfo;
///
/// The notification that the driver entity is about to enter the
/// specified phase during the enumeration process.
/// specified phase during the enumeration process.
///
EFI_IDE_CONTROLLER_NOTIFY_PHASE NotifyPhase;
///
/// Submits the Drive Identify data that was returned by the device.
///
EFI_IDE_CONTROLLER_SUBMIT_DATA SubmitData;
///
/// Submits information about modes that should be disqualified. The specified
/// IDE device does not support these modes and these modes should not be
/// Submits information about modes that should be disqualified. The specified
/// IDE device does not support these modes and these modes should not be
/// returned by EFI_IDE_CONTROLLER_INIT_PROTOCOL.CalculateMode()
///
EFI_IDE_CONTROLLER_DISQUALIFY_MODE DisqualifyMode;
///
/// Calculates and returns the optimum mode for a particular IDE device.
///
EFI_IDE_CONTROLLER_CALCULATE_MODE CalculateMode;
///
/// Programs the IDE controller hardware to the default timing or per the modes
/// that were returned by the last call to EFI_IDE_CONTROLLER_INIT_PROTOCOL.CalculateMode().
/// that were returned by the last call to EFI_IDE_CONTROLLER_INIT_PROTOCOL.CalculateMode().
///
EFI_IDE_CONTROLLER_SET_TIMING SetTiming;
///
/// Set to TRUE if the enumeration group includes all the channels that are
/// produced by this controller. Set to FALSE if an enumeration group consists of
/// only one channel.
/// only one channel.
///
BOOLEAN EnumAll;
///
/// The number of channels that are produced by this controller. Parallel ATA
/// (PATA) controllers can support up to two channels. Advanced Host Controller
/// (PATA) controllers can support up to two channels. Advanced Host Controller
/// Interface (AHCI) Serial ATA (SATA) controllers can support up to 32 channels,
/// each of which can have up to one device. In the presence of a multiplier,
/// each of which can have up to one device. In the presence of a multiplier,
/// each channel can have fifteen devices.
///
UINT8 ChannelCount;

View File

@@ -1,64 +1,64 @@
/** @file
This file declares Incompatible PCI Device Support Protocol
Allows the PCI bus driver to support resource allocation for some PCI devices
Allows the PCI bus driver to support resource allocation for some PCI devices
that do not comply with the PCI Specification.
@par Note:
This protocol is optional. Only those platforms that implement this protocol
will have the capability to support incompatible PCI devices. The absence of
this protocol can cause the PCI bus driver to configure these incompatible
PCI devices incorrectly. As a result, these devices may not work properly.
@par Note:
This protocol is optional. Only those platforms that implement this protocol
will have the capability to support incompatible PCI devices. The absence of
this protocol can cause the PCI bus driver to configure these incompatible
PCI devices incorrectly. As a result, these devices may not work properly.
The EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL is used by the PCI bus driver
to support resource allocation for some PCI devices that do not comply with the
PCI Specification. This protocol can find some incompatible PCI devices and
report their special resource requirements to the PCI bus driver. The generic
PCI bus driver does not have prior knowledge of any incompatible PCI devices.
It interfaces with the EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL to find out
if a device is incompatible and to obtain the special configuration requirements
to support resource allocation for some PCI devices that do not comply with the
PCI Specification. This protocol can find some incompatible PCI devices and
report their special resource requirements to the PCI bus driver. The generic
PCI bus driver does not have prior knowledge of any incompatible PCI devices.
It interfaces with the EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL to find out
if a device is incompatible and to obtain the special configuration requirements
for a specific incompatible PCI device.
This protocol is optional, and only one instance of this protocol can be present
in the system. If a platform supports this protocol, this protocol is produced
by a Driver Execution Environment (DXE) driver and must be made available before
the Boot Device Selection (BDS) phase. The PCI bus driver will look for the
presence of this protocol before it begins PCI enumeration. If this protocol
in the system. If a platform supports this protocol, this protocol is produced
by a Driver Execution Environment (DXE) driver and must be made available before
the Boot Device Selection (BDS) phase. The PCI bus driver will look for the
presence of this protocol before it begins PCI enumeration. If this protocol
exists in a platform, it indicates that the platform has the capability to support
those incompatible PCI devices. However, final support for incompatible PCI
devices still depends on the implementation of the PCI bus driver. The PCI bus
driver may fully, partially, or not even support these incompatible devices.
those incompatible PCI devices. However, final support for incompatible PCI
devices still depends on the implementation of the PCI bus driver. The PCI bus
driver may fully, partially, or not even support these incompatible devices.
During PCI bus enumeration, the PCI bus driver will probe the PCI Base Address
Registers (BARs) for each PCI device regardless of whether the PCI device is
incompatible or not to determine the resource requirements so that the PCI bus
driver can invoke the proper PCI resources for them. Generally, this resource
During PCI bus enumeration, the PCI bus driver will probe the PCI Base Address
Registers (BARs) for each PCI device regardless of whether the PCI device is
incompatible or not to determine the resource requirements so that the PCI bus
driver can invoke the proper PCI resources for them. Generally, this resource
information includes the following:
- Resource type
- Resource length
- Alignment
However, some incompatible PCI devices may have special requirements. As a result,
the length or the alignment that is derived through BAR probing may not be exactly
the same as the actual resource requirement of the device. For example, there
the length or the alignment that is derived through BAR probing may not be exactly
the same as the actual resource requirement of the device. For example, there
are some devices that request I/O resources at a length of 0x100 from their I/O
BAR, but these incompatible devices will never work correctly if an odd I/O base
address, such as 0x100, 0x300, or 0x500, is assigned to the BAR. Instead, these
devices request an even base address, such as 0x200 or 0x400. The Incompatible
PCI Device Support Protocol can then be used to obtain these special resource
requirements for these incompatible PCI devices. In this way, the PCI bus driver
will take special consideration for these devices during PCI resource allocation
BAR, but these incompatible devices will never work correctly if an odd I/O base
address, such as 0x100, 0x300, or 0x500, is assigned to the BAR. Instead, these
devices request an even base address, such as 0x200 or 0x400. The Incompatible
PCI Device Support Protocol can then be used to obtain these special resource
requirements for these incompatible PCI devices. In this way, the PCI bus driver
will take special consideration for these devices during PCI resource allocation
to ensure that they can work correctly.
This protocol may support the following incompatible PCI BAR types:
- I/O or memory length that is different from what the BAR reports
- I/O or memory alignment that is different from what the BAR reports
- Fixed I/O or memory base address
See the Conventional PCI Specification 3.0 for the details of how a PCI BAR
See the Conventional PCI Specification 3.0 for the details of how a PCI BAR
reports the resource length and the alignment that it requires.
Copyright (c) 2007 - 2009, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
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
@@ -68,7 +68,7 @@
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
@par Revision Reference:
This Protocol is defined in UEFI Platform Initialization Specification 1.2
This Protocol is defined in UEFI Platform Initialization Specification 1.2
Volume 5: Standards
**/
@@ -92,51 +92,51 @@ typedef struct _EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL EFI_INCOMPATIBLE_PC
/**
Returns a list of ACPI resource descriptors that detail the special resource
configuration requirements for an incompatible PCI device.
This function returns a list of ACPI resource descriptors that detail the
special resource configuration requirements for an incompatible PCI device.
This function returns a list of ACPI resource descriptors that detail the
special resource configuration requirements for an incompatible PCI device.
Prior to bus enumeration, the PCI bus driver will look for the presence
of the EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL. Only one instance of this
protocol can be present in the system. For each PCI device that the PCI bus
protocol can be present in the system. For each PCI device that the PCI bus
driver discovers, the PCI bus driver calls this function with the device's vendor
ID, device ID, revision ID, subsystem vendor ID, and subsystem device ID. If the
VendorId, DeviceId, RevisionId, SubsystemVendorId, or SubsystemDeviceId value is
set to (UINTN)-1, that field will be ignored. The ID values that are not (UINTN)-1
will be used to identify the current device.
This function will only return EFI_SUCCESS. However, if the device is an
incompatible PCI device, a list of ACPI resource descriptors will be returned
in Configuration. Otherwise, NULL will be returned in Configuration instead.
The PCI bus driver does not need to allocate memory for Configuration. However,
it is the PCI bus driver's responsibility to free it. The PCI bus driver then
can configure this device with the information that is derived from this list
will be used to identify the current device.
This function will only return EFI_SUCCESS. However, if the device is an
incompatible PCI device, a list of ACPI resource descriptors will be returned
in Configuration. Otherwise, NULL will be returned in Configuration instead.
The PCI bus driver does not need to allocate memory for Configuration. However,
it is the PCI bus driver's responsibility to free it. The PCI bus driver then
can configure this device with the information that is derived from this list
of resource nodes, rather than the result of BAR probing.
Only the following two resource descriptor types from the ACPI Specification
Only the following two resource descriptor types from the ACPI Specification
may be used to describe the incompatible PCI device resource requirements:
- QWORD Address Space Descriptor (ACPI 2.0, section 6.4.3.5.1; also ACPI 3.0)
- End Tag (ACPI 2.0, section 6.4.2.8; also ACPI 3.0)
The QWORD Address Space Descriptor can describe memory, I/O, and bus number
ranges for dynamic or fixed resources. The configuration of a PCI root bridge
is described with one or more QWORD Address Space Descriptors, followed by an
The QWORD Address Space Descriptor can describe memory, I/O, and bus number
ranges for dynamic or fixed resources. The configuration of a PCI root bridge
is described with one or more QWORD Address Space Descriptors, followed by an
End Tag. See the ACPI Specification for details on the field values.
@param[in] This Pointer to the EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL
@param[in] This Pointer to the EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL
instance.
@param[in] VendorId A unique ID to identify the manufacturer of
@param[in] VendorId A unique ID to identify the manufacturer of
the PCI device. See the Conventional PCI
Specification 3.0 for details.
@param[in] DeviceId A unique ID to identify the particular PCI
device. See the Conventional PCI Specification
@param[in] DeviceId A unique ID to identify the particular PCI
device. See the Conventional PCI Specification
3.0 for details.
@param[in] RevisionId A PCI device-specific revision identifier.
@param[in] RevisionId A PCI device-specific revision identifier.
See the Conventional PCI Specification 3.0
for details.
@param[in] SubsystemVendorId Specifies the subsystem vendor ID. See the
@param[in] SubsystemVendorId Specifies the subsystem vendor ID. See the
Conventional PCI Specification 3.0 for details.
@param[in] SubsystemDeviceId Specifies the subsystem device ID. See the
@param[in] SubsystemDeviceId Specifies the subsystem device ID. See the
Conventional PCI Specification 3.0 for details.
@param[out] Configuration A list of ACPI resource descriptors that detail
the configuration requirement.

View File

@@ -6,21 +6,21 @@
- EFI IPv4 Variable (deprecated in UEFI 2.4B)
- EFI IPv4 Protocol.
The EFI IPv4 Protocol provides basic network IPv4 packet I/O services,
which includes support foR a subset of the Internet Control Message
which includes support foR a subset of the Internet Control Message
Protocol (ICMP) and may include support for the Internet Group Management
Protocol (IGMP).
Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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.
@par Revision Reference:
This Protocol is introduced in UEFI Specification 2.0.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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.
@par Revision Reference:
This Protocol is introduced in UEFI Specification 2.0.
**/
@@ -49,7 +49,7 @@ typedef struct {
EFI_HANDLE InstanceHandle;
EFI_IPv4_ADDRESS Ip4Address;
EFI_IPv4_ADDRESS SubnetMask;
} EFI_IP4_ADDRESS_PAIR;
} EFI_IP4_ADDRESS_PAIR;
///
/// EFI_IP4_VARIABLE_DATA is deprecated in the UEFI 2.4B and should not be used any more.
@@ -271,7 +271,7 @@ typedef struct {
/**
Gets the current operational settings for this instance of the EFI IPv4 Protocol driver.
The GetModeData() function returns the current operational mode data for this
driver instance. The data fields in EFI_IP4_MODE_DATA are read only. This
function is used optionally to retrieve the operational mode data of underlying
@@ -294,11 +294,11 @@ EFI_STATUS
OUT EFI_IP4_MODE_DATA *Ip4ModeData OPTIONAL,
OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL,
OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL
);
);
/**
Assigns an IPv4 address and subnet mask to this EFI IPv4 Protocol driver instance.
The Configure() function is used to set, change, or reset the operational
parameters and filter settings for this EFI IPv4 Protocol instance. Until these
parameters have been set, no network traffic can be sent or received by this
@@ -307,14 +307,14 @@ EFI_STATUS
parameters have been set again. Each EFI IPv4 Protocol instance can be started
and stopped independently of each other by enabling or disabling their receive
filter settings with the Configure() function.
When IpConfigData.UseDefaultAddress is set to FALSE, the new station address will
be appended as an alias address into the addresses list in the EFI IPv4 Protocol
driver. While set to TRUE, Configure() will trigger the EFI_IP4_CONFIG_PROTOCOL
to retrieve the default IPv4 address if it is not available yet. Clients could
frequently call GetModeData() to check the status to ensure that the default IPv4
address is ready.
If operational parameters are reset or changed, any pending transmit and receive
requests will be cancelled. Their completion token status will be set to EFI_ABORTED
and their events will be signaled.
@@ -328,7 +328,7 @@ EFI_STATUS
@retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
This is NULL.
IpConfigData.StationAddress is not a unicast IPv4 address.
IpConfigData.SubnetMask is not a valid IPv4 subnet
IpConfigData.SubnetMask is not a valid IPv4 subnet
@retval EFI_UNSUPPORTED One or more of the following conditions is TRUE:
A configuration protocol (DHCP, BOOTP, RARP, etc.) could
not be located when clients choose to use the default IPv4
@@ -342,20 +342,20 @@ EFI_STATUS
Protocol driver instance is not opened.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_IP4_CONFIGURE)(
IN EFI_IP4_PROTOCOL *This,
IN EFI_IP4_CONFIG_DATA *IpConfigData OPTIONAL
);
);
/**
Joins and leaves multicast groups.
The Groups() function is used to join and leave multicast group sessions. Joining
a group will enable reception of matching multicast packets. Leaving a group will
disable the multicast packet reception.
If JoinFlag is FALSE and GroupAddress is NULL, all joined groups will be left.
@param This The pointer to the EFI_IP4_PROTOCOL instance.
@@ -379,32 +379,32 @@ EFI_STATUS
@retval EFI_DEVICE_ERROR An unexpected system or network error occurred.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_IP4_GROUPS)(
IN EFI_IP4_PROTOCOL *This,
IN BOOLEAN JoinFlag,
IN EFI_IPv4_ADDRESS *GroupAddress OPTIONAL
);
);
/**
Adds and deletes routing table entries.
The Routes() function adds a route to or deletes a route from the routing table.
Routes are determined by comparing the SubnetAddress with the destination IPv4
address arithmetically AND-ed with the SubnetMask. The gateway address must be
on the same subnet as the configured station address.
The default route is added with SubnetAddress and SubnetMask both set to 0.0.0.0.
The default route matches all destination IPv4 addresses that do not match any
other routes.
A GatewayAddress that is zero is a nonroute. Packets are sent to the destination
IP address if it can be found in the ARP cache or on the local subnet. One automatic
nonroute entry will be inserted into the routing table for outgoing packets that
are addressed to a local subnet (gateway address of 0.0.0.0).
Each EFI IPv4 Protocol instance has its own independent routing table. Those EFI
IPv4 Protocol instances that use the default IPv4 address will also have copies
of the routing table that was provided by the EFI_IP4_CONFIG_PROTOCOL, and these
@@ -435,17 +435,17 @@ EFI_STATUS
@retval EFI_NOT_FOUND This route is not in the routing table (when DeleteRoute is TRUE).
@retval EFI_ACCESS_DENIED The route is already defined in the routing table (when
DeleteRoute is FALSE).
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_IP4_ROUTES)(
IN EFI_IP4_PROTOCOL *This,
IN BOOLEAN DeleteRoute,
IN EFI_IPv4_ADDRESS *SubnetAddress,
IN EFI_IPv4_ADDRESS *SubnetMask,
IN EFI_IPv4_ADDRESS *GatewayAddress
);
IN EFI_IPv4_ADDRESS *GatewayAddress
);
/**
Places outgoing data packets into the transmit queue.
@@ -465,7 +465,7 @@ EFI_STATUS
@retval EFI_ACCESS_DENIED The transmit completion token with the same Token.Event
was already in the transmit queue.
@retval EFI_NOT_READY The completion token could not be queued because the transmit
queue is full.
queue is full.
@retval EFI_NOT_FOUND Not route is found to destination address.
@retval EFI_OUT_OF_RESOURCES Could not queue the transmit data.
@retval EFI_BUFFER_TOO_SMALL Token.Packet.TxData.TotalDataLength is too
@@ -476,19 +476,19 @@ EFI_STATUS
DoNotFragment is TRUE.)
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_IP4_TRANSMIT)(
IN EFI_IP4_PROTOCOL *This,
IN EFI_IP4_COMPLETION_TOKEN *Token
);
);
/**
Places a receiving request into the receiving queue.
The Receive() function places a completion token into the receive packet queue.
This function is always asynchronous.
The Token.Event field in the completion token must be filled in by the caller
and cannot be NULL. When the receive operation completes, the EFI IPv4 Protocol
driver updates the Token.Status and Token.Packet.RxData fields and the Token.Event
@@ -515,16 +515,16 @@ EFI_STATUS
@retval EFI_ICMP_ERROR An ICMP error packet was received.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_IP4_RECEIVE)(
IN EFI_IP4_PROTOCOL *This,
IN EFI_IP4_COMPLETION_TOKEN *Token
);
);
/**
Abort an asynchronous transmit or receive request.
The Cancel() function is used to abort a pending transmit or receive request.
If the token is in the transmit or receive request queues, after calling this
function, Token->Status will be set to EFI_ABORTED and then Token->Event will
@@ -556,16 +556,16 @@ EFI_STATUS
(EFIAPI *EFI_IP4_CANCEL)(
IN EFI_IP4_PROTOCOL *This,
IN EFI_IP4_COMPLETION_TOKEN *Token OPTIONAL
);
);
/**
Polls for incoming data packets and processes outgoing data packets.
The Poll() function polls for incoming data packets and processes outgoing data
packets. Network drivers and applications can call the EFI_IP4_PROTOCOL.Poll()
function to increase the rate that data packets are moved between the communications
device and the transmit and receive queues.
In some systems the periodic timer event may not poll the underlying communications
device fast enough to transmit and/or receive all data packets without missing
incoming packets or dropping outgoing packets. Drivers and applications that are
@@ -585,14 +585,14 @@ EFI_STATUS
Consider increasing the polling rate.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_IP4_POLL)(
IN EFI_IP4_PROTOCOL *This
);
);
///
/// The EFI IPv4 Protocol implements a simple packet-oriented interface that can be
/// The EFI IPv4 Protocol implements a simple packet-oriented interface that can be
/// used by drivers, daemons, and applications to transmit and receive network packets.
///
struct _EFI_IP4_PROTOCOL {

View File

@@ -2,16 +2,16 @@
This file provides a definition of the EFI IPv4 Configuration
Protocol.
Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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,
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.
@par Revision Reference:
@par Revision Reference:
This Protocol is introduced in UEFI Specification 2.0.
**/
@@ -31,11 +31,11 @@ typedef struct _EFI_IP4_CONFIG_PROTOCOL EFI_IP4_CONFIG_PROTOCOL;
(EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS)
///
/// EFI_IP4_IPCONFIG_DATA contains the minimum IPv4 configuration data
/// that is needed to start basic network communication. The StationAddress
/// EFI_IP4_IPCONFIG_DATA contains the minimum IPv4 configuration data
/// that is needed to start basic network communication. The StationAddress
/// and SubnetMask must be a valid unicast IP address and subnet mask.
/// If RouteTableSize is not zero, then RouteTable contains a properly
/// formatted routing table for the StationAddress/SubnetMask, with the
/// If RouteTableSize is not zero, then RouteTable contains a properly
/// formatted routing table for the StationAddress/SubnetMask, with the
/// last entry in the table being the default route.
///
typedef struct {
@@ -61,47 +61,47 @@ typedef struct {
/**
Starts running the configuration policy for the EFI IPv4 Protocol driver.
The Start() function is called to determine and to begin the platform
configuration policy by the EFI IPv4 Protocol driver. This determination may
be as simple as returning EFI_UNSUPPORTED if there is no EFI IPv4 Protocol
driver configuration policy. It may be as involved as loading some defaults
from nonvolatile storage, downloading dynamic data from a DHCP server, and
The Start() function is called to determine and to begin the platform
configuration policy by the EFI IPv4 Protocol driver. This determination may
be as simple as returning EFI_UNSUPPORTED if there is no EFI IPv4 Protocol
driver configuration policy. It may be as involved as loading some defaults
from nonvolatile storage, downloading dynamic data from a DHCP server, and
checking permissions with a site policy server.
Starting the configuration policy is just the beginning. It may finish almost
instantly or it may take several minutes before it fails to retrieve configuration
information from one or more servers. Once the policy is started, drivers
should use the DoneEvent parameter to determine when the configuration policy
has completed. EFI_IP4_CONFIG_PROTOCOL.GetData() must then be called to
Starting the configuration policy is just the beginning. It may finish almost
instantly or it may take several minutes before it fails to retrieve configuration
information from one or more servers. Once the policy is started, drivers
should use the DoneEvent parameter to determine when the configuration policy
has completed. EFI_IP4_CONFIG_PROTOCOL.GetData() must then be called to
determine if the configuration succeeded or failed.
Until the configuration completes successfully, EFI IPv4 Protocol driver instances
Until the configuration completes successfully, EFI IPv4 Protocol driver instances
that are attempting to use default configurations must return EFI_NO_MAPPING.
Once the configuration is complete, the EFI IPv4 Configuration Protocol driver
signals DoneEvent. The configuration may need to be updated in the future.
Note that in this case the EFI IPv4 Configuration Protocol driver must signal
ReconfigEvent, and all EFI IPv4 Protocol driver instances that are using default
configurations must return EFI_NO_MAPPING until the configuration policy has
Once the configuration is complete, the EFI IPv4 Configuration Protocol driver
signals DoneEvent. The configuration may need to be updated in the future.
Note that in this case the EFI IPv4 Configuration Protocol driver must signal
ReconfigEvent, and all EFI IPv4 Protocol driver instances that are using default
configurations must return EFI_NO_MAPPING until the configuration policy has
been rerun.
@param This The pointer to the EFI_IP4_CONFIG_PROTOCOL instance.
@param DoneEvent Event that will be signaled when the EFI IPv4
Protocol driver configuration policy completes
@param DoneEvent Event that will be signaled when the EFI IPv4
Protocol driver configuration policy completes
execution. This event must be of type EVT_NOTIFY_SIGNAL.
@param ReconfigEvent Event that will be signaled when the EFI IPv4
Protocol driver configuration needs to be updated.
@param ReconfigEvent Event that will be signaled when the EFI IPv4
Protocol driver configuration needs to be updated.
This event must be of type EVT_NOTIFY_SIGNAL.
@retval EFI_SUCCESS The configuration policy for the EFI IPv4 Protocol
@retval EFI_SUCCESS The configuration policy for the EFI IPv4 Protocol
driver is now running.
@retval EFI_INVALID_PARAMETER One or more of the following parameters is NULL:
This
DoneEvent
ReconfigEvent
@retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated.
@retval EFI_ALREADY_STARTED The configuration policy for the EFI IPv4 Protocol
@retval EFI_ALREADY_STARTED The configuration policy for the EFI IPv4 Protocol
driver was already started.
@retval EFI_DEVICE_ERROR An unexpected system error or network error occurred.
@retval EFI_UNSUPPORTED This interface does not support the EFI IPv4 Protocol
@retval EFI_UNSUPPORTED This interface does not support the EFI IPv4 Protocol
driver configuration.
**/
@@ -115,18 +115,18 @@ EFI_STATUS
/**
Stops running the configuration policy for the EFI IPv4 Protocol driver.
The Stop() function stops the configuration policy for the EFI IPv4 Protocol driver.
The Stop() function stops the configuration policy for the EFI IPv4 Protocol driver.
All configuration data will be lost after calling Stop().
@param This The pointer to the EFI_IP4_CONFIG_PROTOCOL instance.
@retval EFI_SUCCESS The configuration policy for the EFI IPv4 Protocol
@retval EFI_SUCCESS The configuration policy for the EFI IPv4 Protocol
driver has been stopped.
@retval EFI_INVALID_PARAMETER This is NULL.
@retval EFI_NOT_STARTED The configuration policy for the EFI IPv4 Protocol
@retval EFI_NOT_STARTED The configuration policy for the EFI IPv4 Protocol
driver was not started.
**/
typedef
EFI_STATUS
@@ -137,25 +137,25 @@ EFI_STATUS
/**
Returns the default configuration data (if any) for the EFI IPv4 Protocol driver.
The GetData() function returns the current configuration data for the EFI IPv4
The GetData() function returns the current configuration data for the EFI IPv4
Protocol driver after the configuration policy has completed.
@param This The pointer to the EFI_IP4_CONFIG_PROTOCOL instance.
@param IpConfigDataSize On input, the size of the IpConfigData buffer.
On output, the count of bytes that were written
@param IpConfigDataSize On input, the size of the IpConfigData buffer.
On output, the count of bytes that were written
into the IpConfigData buffer.
@param IpConfigData The pointer to the EFI IPv4 Configuration Protocol
driver configuration data structure.
Type EFI_IP4_IPCONFIG_DATA is defined in
@param IpConfigData The pointer to the EFI IPv4 Configuration Protocol
driver configuration data structure.
Type EFI_IP4_IPCONFIG_DATA is defined in
"Related Definitions" below.
@retval EFI_SUCCESS The EFI IPv4 Protocol driver configuration has been returned.
@retval EFI_INVALID_PARAMETER This is NULL.
@retval EFI_NOT_STARTED The configuration policy for the EFI IPv4 Protocol
@retval EFI_NOT_STARTED The configuration policy for the EFI IPv4 Protocol
driver is not running.
@retval EFI_NOT_READY EFI IPv4 Protocol driver configuration is still running.
@retval EFI_ABORTED EFI IPv4 Protocol driver configuration could not complete.
@retval EFI_BUFFER_TOO_SMALL *IpConfigDataSize is smaller than the configuration
@retval EFI_BUFFER_TOO_SMALL *IpConfigDataSize is smaller than the configuration
data buffer or IpConfigData is NULL.
**/
@@ -168,8 +168,8 @@ EFI_STATUS
);
///
/// The EFI_IP4_CONFIG_PROTOCOL driver performs platform-dependent and policy-dependent
/// configurations for the EFI IPv4 Protocol driver.
/// The EFI_IP4_CONFIG_PROTOCOL driver performs platform-dependent and policy-dependent
/// configurations for the EFI IPv4 Protocol driver.
///
struct _EFI_IP4_CONFIG_PROTOCOL {
EFI_IP4_CONFIG_START Start;

View File

@@ -2,7 +2,7 @@
This file provides a definition of the EFI IPv4 Configuration II
Protocol.
Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
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<BR>
@@ -33,48 +33,48 @@ typedef struct _EFI_IP4_CONFIG2_PROTOCOL EFI_IP4_CONFIG2_PROTOCOL;
///
typedef enum {
///
/// The interface information of the communication device this EFI
/// IPv4 Configuration II Protocol instance manages. This type of
/// data is read only. The corresponding Data is of type
/// The interface information of the communication device this EFI
/// IPv4 Configuration II Protocol instance manages. This type of
/// data is read only. The corresponding Data is of type
/// EFI_IP4_CONFIG2_INTERFACE_INFO.
///
Ip4Config2DataTypeInterfaceInfo,
///
/// The general configuration policy for the EFI IPv4 network stack
/// running on the communication device this EFI IPv4
/// Configuration II Protocol instance manages. The policy will
/// affect other configuration settings. The corresponding Data is of
/// The general configuration policy for the EFI IPv4 network stack
/// running on the communication device this EFI IPv4
/// Configuration II Protocol instance manages. The policy will
/// affect other configuration settings. The corresponding Data is of
/// type EFI_IP4_CONFIG2_POLICY.
///
Ip4Config2DataTypePolicy,
///
/// The station addresses set manually for the EFI IPv4 network
/// stack. It is only configurable when the policy is
/// Ip4Config2PolicyStatic. The corresponding Data is of
/// type EFI_IP4_CONFIG2_MANUAL_ADDRESS. When DataSize
/// is 0 and Data is NULL, the existing configuration is cleared
/// The station addresses set manually for the EFI IPv4 network
/// stack. It is only configurable when the policy is
/// Ip4Config2PolicyStatic. The corresponding Data is of
/// type EFI_IP4_CONFIG2_MANUAL_ADDRESS. When DataSize
/// is 0 and Data is NULL, the existing configuration is cleared
/// from the EFI IPv4 Configuration II Protocol instance.
///
Ip4Config2DataTypeManualAddress,
///
/// The gateway addresses set manually for the EFI IPv4 network
/// stack running on the communication device this EFI IPv4
/// Configuration II Protocol manages. It is not configurable when
/// the policy is Ip4Config2PolicyDhcp. The gateway
/// addresses must be unicast IPv4 addresses. The corresponding
/// The gateway addresses set manually for the EFI IPv4 network
/// stack running on the communication device this EFI IPv4
/// Configuration II Protocol manages. It is not configurable when
/// the policy is Ip4Config2PolicyDhcp. The gateway
/// addresses must be unicast IPv4 addresses. The corresponding
/// Data is a pointer to an array of EFI_IPv4_ADDRESS instances.
/// When DataSize is 0 and Data is NULL, the existing configuration
/// When DataSize is 0 and Data is NULL, the existing configuration
/// is cleared from the EFI IPv4 Configuration II Protocol instance.
///
Ip4Config2DataTypeGateway,
///
/// The DNS server list for the EFI IPv4 network stack running on
/// the communication device this EFI IPv4 Configuration II
/// Protocol manages. It is not configurable when the policy is
/// Ip4Config2PolicyDhcp. The DNS server addresses must be
/// unicast IPv4 addresses. The corresponding Data is a pointer to
/// an array of EFI_IPv4_ADDRESS instances. When DataSize
/// is 0 and Data is NULL, the existing configuration is cleared
/// The DNS server list for the EFI IPv4 network stack running on
/// the communication device this EFI IPv4 Configuration II
/// Protocol manages. It is not configurable when the policy is
/// Ip4Config2PolicyDhcp. The DNS server addresses must be
/// unicast IPv4 addresses. The corresponding Data is a pointer to
/// an array of EFI_IPv4_ADDRESS instances. When DataSize
/// is 0 and Data is NULL, the existing configuration is cleared
/// from the EFI IPv4 Configuration II Protocol instance.
///
Ip4Config2DataTypeDnsServer,
@@ -95,7 +95,7 @@ typedef struct {
///
CHAR16 Name[EFI_IP4_CONFIG2_INTERFACE_INFO_NAME_SIZE];
///
/// The interface type of the network interface. See RFC 1700,
/// The interface type of the network interface. See RFC 1700,
/// section "Number Hardware Type".
///
UINT8 IfType;
@@ -120,8 +120,8 @@ typedef struct {
///
UINT32 RouteTableSize;
///
/// The route table of the IPv4 network stack runs on this interface.
/// Set to NULL if RouteTableSize is zero. Type EFI_IP4_ROUTE_TABLE is defined in
/// The route table of the IPv4 network stack runs on this interface.
/// Set to NULL if RouteTableSize is zero. Type EFI_IP4_ROUTE_TABLE is defined in
/// EFI_IP4_PROTOCOL.GetModeData().
///
EFI_IP4_ROUTE_TABLE *RouteTable OPTIONAL;
@@ -132,17 +132,17 @@ typedef struct {
///
typedef enum {
///
/// Under this policy, the Ip4Config2DataTypeManualAddress,
/// Ip4Config2DataTypeGateway and Ip4Config2DataTypeDnsServer configuration
/// data are required to be set manually. The EFI IPv4 Protocol will get all
/// required configuration such as IPv4 address, subnet mask and
/// Under this policy, the Ip4Config2DataTypeManualAddress,
/// Ip4Config2DataTypeGateway and Ip4Config2DataTypeDnsServer configuration
/// data are required to be set manually. The EFI IPv4 Protocol will get all
/// required configuration such as IPv4 address, subnet mask and
/// gateway settings from the EFI IPv4 Configuration II protocol.
///
Ip4Config2PolicyStatic,
///
/// Under this policy, the Ip4Config2DataTypeManualAddress,
/// Ip4Config2DataTypeGateway and Ip4Config2DataTypeDnsServer configuration data are
/// not allowed to set via SetData(). All of these configurations are retrieved from DHCP
/// Under this policy, the Ip4Config2DataTypeManualAddress,
/// Ip4Config2DataTypeGateway and Ip4Config2DataTypeDnsServer configuration data are
/// not allowed to set via SetData(). All of these configurations are retrieved from DHCP
/// server or other auto-configuration mechanism.
///
Ip4Config2PolicyDhcp,
@@ -153,58 +153,58 @@ typedef enum {
/// EFI_IP4_CONFIG2_MANUAL_ADDRESS
///
typedef struct {
///
///
/// The IPv4 unicast address.
///
EFI_IPv4_ADDRESS Address;
///
/// The subnet mask.
/// The subnet mask.
///
EFI_IPv4_ADDRESS SubnetMask;
} EFI_IP4_CONFIG2_MANUAL_ADDRESS;
/**
Set the configuration for the EFI IPv4 network stack running on the communication device this EFI
Set the configuration for the EFI IPv4 network stack running on the communication device this EFI
IPv4 Configuration II Protocol instance manages.
This function is used to set the configuration data of type DataType for the EFI IPv4 network stack
This function is used to set the configuration data of type DataType for the EFI IPv4 network stack
running on the communication device this EFI IPv4 Configuration II Protocol instance manages.
The successfully configured data is valid after system reset or power-off.
The DataSize is used to calculate the count of structure instances in the Data for some
The DataSize is used to calculate the count of structure instances in the Data for some
DataType that multiple structure instances are allowed.
This function is always non-blocking. When setting some typeof configuration data, an
asynchronous process is invoked to check the correctness of the data, such as doing address conflict
detection on the manually set local IPv4 address. EFI_NOT_READY is returned immediately to
indicate that such an asynchronous process is invoked and the process is not finished yet. The caller
This function is always non-blocking. When setting some typeof configuration data, an
asynchronous process is invoked to check the correctness of the data, such as doing address conflict
detection on the manually set local IPv4 address. EFI_NOT_READY is returned immediately to
indicate that such an asynchronous process is invoked and the process is not finished yet. The caller
willing to get the result of the asynchronous process is required to call RegisterDataNotify()
to register an event on the specified configuration data. Once the event is signaled, the caller can call
GetData()to get back the configuration data in order to know the result. For other types of
configuration data that do not require an asynchronous configuration process, the result of the
operation is immediately returned.
to register an event on the specified configuration data. Once the event is signaled, the caller can call
GetData()to get back the configuration data in order to know the result. For other types of
configuration data that do not require an asynchronous configuration process, the result of the
operation is immediately returned.
@param[in] This Pointer to the EFI_IP4_CONFIG2_PROTOCOL instance.
@param[in] This Pointer to the EFI_IP4_CONFIG2_PROTOCOL instance.
@param[in] DataType The type of data to set.
@param[in] DataSize Size of the buffer pointed to by Data in bytes.
@param[in] Data The data buffer to set. The type ofthe data buffer is associated
with the DataType.
@param[in] Data The data buffer to set. The type ofthe data buffer is associated
with the DataType.
@retval EFI_SUCCESS The specified configuration data for the EFI IPv4 network stack is set
@retval EFI_SUCCESS The specified configuration data for the EFI IPv4 network stack is set
successfully.
@retval EFI_INVALID_PARAMETER One or more of the following are TRUE:
This is NULL.
One or more fields in Data and DataSize do not match the
One or more fields in Data and DataSize do not match the
requirement of the data type indicated by DataType.
@retval EFI_WRITE_PROTECTED The specified configuration data is read-only or the specified configuration
@retval EFI_WRITE_PROTECTED The specified configuration data is read-only or the specified configuration
data can not be set under the current policy.
@retval EFI_ACCESS_DENIED Another set operation on the specified configuration data is already in process.
@retval EFI_NOT_READY An asynchronous process is invoked to set the specified configuration data and
@retval EFI_NOT_READY An asynchronous process is invoked to set the specified configuration data and
the process is not finished yet.
@retval EFI_BAD_BUFFER_SIZE The DataSize does not match the size of the type indicated by DataType.
@retval EFI_BAD_BUFFER_SIZE The DataSize does not match the size of the type indicated by DataType.
@retval EFI_UNSUPPORTED This DataType is not supported.
@retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated.
@retval EFI_DEVICE_ERROR An unexpected system error or network error occurred.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_IP4_CONFIG2_SET_DATA) (
IN EFI_IP4_CONFIG2_PROTOCOL *This,
@@ -214,35 +214,35 @@ EFI_STATUS
);
/**
Get the configuration data for the EFI IPv4 network stack running on the communication device this
Get the configuration data for the EFI IPv4 network stack running on the communication device this
EFI IPv4 Configuration II Protocol instance manages.
This function returns the configuration data of type DataType for the EFI IPv4 network stack
This function returns the configuration data of type DataType for the EFI IPv4 network stack
running on the communication device this EFI IPv4 Configuration II Protocol instance manages.
The caller is responsible for allocating the buffer usedto return the specified configuration data and
The caller is responsible for allocating the buffer usedto return the specified configuration data and
the required size will be returned to the caller if the size of the buffer is too small.
EFI_NOT_READY is returned if the specified configuration data is not ready due to an already in
progress asynchronous configuration process. The caller can call RegisterDataNotify() to
register an event on the specified configuration data. Once the asynchronous configuration process is
finished, the event will be signaled and a subsequent GetData() call will return the specified
EFI_NOT_READY is returned if the specified configuration data is not ready due to an already in
progress asynchronous configuration process. The caller can call RegisterDataNotify() to
register an event on the specified configuration data. Once the asynchronous configuration process is
finished, the event will be signaled and a subsequent GetData() call will return the specified
configuration data.
@param[in] This Pointer to the EFI_IP4_CONFIG2_PROTOCOL instance.
@param[in] This Pointer to the EFI_IP4_CONFIG2_PROTOCOL instance.
@param[in] DataType The type of data to get.
@param[out] DataSize On input, in bytes, the size of Data. On output, in bytes, the size
of buffer required to store the specified configuration data.
@param[in] Data The data buffer in which the configuration data is returned. The
type of the data buffer is associated with the DataType. Ignored
if DataSize is 0.
@param[out] DataSize On input, in bytes, the size of Data. On output, in bytes, the size
of buffer required to store the specified configuration data.
@param[in] Data The data buffer in which the configuration data is returned. The
type of the data buffer is associated with the DataType. Ignored
if DataSize is 0.
@retval EFI_SUCCESS The specified configuration data is got successfully.
@retval EFI_INVALID_PARAMETER One or more of the followings are TRUE:
This is NULL.
DataSize is NULL.
Data is NULL if *DataSizeis not zero.
@retval EFI_BUFFER_TOO_SMALL The size of Data is too small for the specified configuration data
@retval EFI_BUFFER_TOO_SMALL The size of Data is too small for the specified configuration data
and the required size is returned in DataSize.
@retval EFI_NOT_READY The specified configuration data is not ready due to an already in
@retval EFI_NOT_READY The specified configuration data is not ready due to an already in
progress asynchronous configuration process.
@retval EFI_NOT_FOUND The specified configuration data is not found.
**/
@@ -256,19 +256,19 @@ EFI_STATUS
);
/**
Register an event that is to be signaled whenever a configuration process on the specified
Register an event that is to be signaled whenever a configuration process on the specified
configuration data is done.
This function registers an event that is to be signaled whenever a configuration process on the
This function registers an event that is to be signaled whenever a configuration process on the
specified configuration data is done. An event can be registered for different DataType
simultaneously and the caller is responsible for determining which type of configuration data causes
simultaneously and the caller is responsible for determining which type of configuration data causes
the signaling of the event in such case.
@param[in] This Pointer to the EFI_IP4_CONFIG2_PROTOCOL instance.
@param[in] This Pointer to the EFI_IP4_CONFIG2_PROTOCOL instance.
@param[in] DataType The type of data to unregister the event for.
@param[in] Event The event to register.
@retval EFI_SUCCESS The notification event for the specified configuration data is
@retval EFI_SUCCESS The notification event for the specified configuration data is
registered.
@retval EFI_INVALID_PARAMETER This is NULL or Event is NULL.
@retval EFI_UNSUPPORTED The configuration data type specified by DataType is not supported.
@@ -288,7 +288,7 @@ EFI_STATUS
This function removes a previously registeredevent for the specified configuration data.
@param[in] This Pointer to the EFI_IP4_CONFIG2_PROTOCOL instance.
@param[in] This Pointer to the EFI_IP4_CONFIG2_PROTOCOL instance.
@param[in] DataType The type of data to remove the previously registered event for.
@param[in] Event The event to unregister.
@@ -305,9 +305,9 @@ EFI_STATUS
);
///
/// The EFI_IP4_CONFIG2_PROTOCOL is designed to be the central repository for the common
/// The EFI_IP4_CONFIG2_PROTOCOL is designed to be the central repository for the common
/// configurations and the administrator configurable settings for the EFI IPv4 network stack.
/// An EFI IPv4 Configuration II Protocol instance will be installed on each communication device that
/// An EFI IPv4 Configuration II Protocol instance will be installed on each communication device that
/// the EFI IPv4 network stack runs on.
///
struct _EFI_IP4_CONFIG2_PROTOCOL {

View File

@@ -2,7 +2,7 @@
This file provides a definition of the EFI IPv6 Configuration
Protocol.
Copyright (c) 2008 - 2017, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.<BR>
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<BR>
@@ -27,71 +27,71 @@ typedef struct _EFI_IP6_CONFIG_PROTOCOL EFI_IP6_CONFIG_PROTOCOL;
///
/// EFI_IP6_CONFIG_DATA_TYPE
///
typedef enum {
///
/// The interface information of the communication
/// device this EFI IPv6 Configuration Protocol instance manages.
/// This type of data is read only.The corresponding Data is of type
typedef enum {
///
/// The interface information of the communication
/// device this EFI IPv6 Configuration Protocol instance manages.
/// This type of data is read only.The corresponding Data is of type
/// EFI_IP6_CONFIG_INTERFACE_INFO.
///
///
Ip6ConfigDataTypeInterfaceInfo,
///
/// The alternative interface ID for the
/// communication device this EFI IPv6 Configuration Protocol
/// instance manages if the link local IPv6 address generated from
/// the interfaced ID based on the default source the EFI IPv6
/// Protocol uses is a duplicate address. The length of the interface
/// ID is 64 bit. The corresponding Data is of type
///
/// The alternative interface ID for the
/// communication device this EFI IPv6 Configuration Protocol
/// instance manages if the link local IPv6 address generated from
/// the interfaced ID based on the default source the EFI IPv6
/// Protocol uses is a duplicate address. The length of the interface
/// ID is 64 bit. The corresponding Data is of type
/// EFI_IP6_CONFIG_INTERFACE_ID.
///
///
Ip6ConfigDataTypeAltInterfaceId,
///
/// The general configuration policy for the EFI IPv6 network
/// stack running on the communication device this EFI IPv6
/// Configuration Protocol instance manages. The policy will affect
/// other configuration settings. The corresponding Data is of type
///
/// The general configuration policy for the EFI IPv6 network
/// stack running on the communication device this EFI IPv6
/// Configuration Protocol instance manages. The policy will affect
/// other configuration settings. The corresponding Data is of type
/// EFI_IP6_CONFIG_POLICY.
///
Ip6ConfigDataTypePolicy,
///
/// The number of consecutive
/// Neighbor Solicitation messages sent while performing Duplicate
/// Address Detection on a tentative address. A value of zero
/// indicates that Duplicate Address Detection will not be performed
/// on tentative addresses. The corresponding Data is of type
///
/// The number of consecutive
/// Neighbor Solicitation messages sent while performing Duplicate
/// Address Detection on a tentative address. A value of zero
/// indicates that Duplicate Address Detection will not be performed
/// on tentative addresses. The corresponding Data is of type
/// EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS.
///
///
Ip6ConfigDataTypeDupAddrDetectTransmits,
///
/// The station addresses set manually for the EFI
/// IPv6 network stack. It is only configurable when the policy is
/// Ip6ConfigPolicyManual. The corresponding Data is a
/// pointer to an array of EFI_IPv6_ADDRESS instances. When
/// DataSize is 0 and Data is NULL, the existing configuration
///
/// The station addresses set manually for the EFI
/// IPv6 network stack. It is only configurable when the policy is
/// Ip6ConfigPolicyManual. The corresponding Data is a
/// pointer to an array of EFI_IPv6_ADDRESS instances. When
/// DataSize is 0 and Data is NULL, the existing configuration
/// is cleared from the EFI IPv6 Configuration Protocol instance.
///
///
Ip6ConfigDataTypeManualAddress,
///
/// The gateway addresses set manually for the EFI IPv6
/// network stack running on the communication device this EFI
/// IPv6 Configuration Protocol manages. It is not configurable when
/// the policy is Ip6ConfigPolicyAutomatic. The gateway
/// addresses must be unicast IPv6 addresses. The corresponding
///
/// The gateway addresses set manually for the EFI IPv6
/// network stack running on the communication device this EFI
/// IPv6 Configuration Protocol manages. It is not configurable when
/// the policy is Ip6ConfigPolicyAutomatic. The gateway
/// addresses must be unicast IPv6 addresses. The corresponding
/// Data is a pointer to an array of EFI_IPv6_ADDRESS instances.
/// When DataSize is 0 and Data is NULL, the existing configuration
/// When DataSize is 0 and Data is NULL, the existing configuration
/// is cleared from the EFI IPv6 Configuration Protocol instance.
///
///
Ip6ConfigDataTypeGateway,
///
/// The DNS server list for the EFI IPv6 network stack
/// running on the communication device this EFI IPv6
/// Configuration Protocol manages. It is not configurable when the
/// policy is Ip6ConfigPolicyAutomatic.The DNS server
/// addresses must be unicast IPv6 addresses. The corresponding
///
/// The DNS server list for the EFI IPv6 network stack
/// running on the communication device this EFI IPv6
/// Configuration Protocol manages. It is not configurable when the
/// policy is Ip6ConfigPolicyAutomatic.The DNS server
/// addresses must be unicast IPv6 addresses. The corresponding
/// Data is a pointer to an array of EFI_IPv6_ADDRESS instances.
/// When DataSize is 0 and Data is NULL, the existing configuration
/// When DataSize is 0 and Data is NULL, the existing configuration
/// is cleared from the EFI IPv6 Configuration Protocol instance.
///
///
Ip6ConfigDataTypeDnsServer,
///
/// The number of this enumeration memebers.
@@ -101,7 +101,7 @@ typedef enum {
///
/// EFI_IP6_CONFIG_INTERFACE_INFO
/// describes the operational state of the interface this
/// describes the operational state of the interface this
/// EFI IPv6 Configuration Protocol instance manages.
///
typedef struct {
@@ -109,37 +109,37 @@ typedef struct {
/// The name of the interface. It is a NULL-terminated string.
///
CHAR16 Name[32];
///
///
/// The interface type of the network interface.
///
///
UINT8 IfType;
///
///
/// The size, in bytes, of the network interface's hardware address.
///
///
UINT32 HwAddressSize;
///
///
/// The hardware address for the network interface.
///
///
EFI_MAC_ADDRESS HwAddress;
///
///
/// Number of EFI_IP6_ADDRESS_INFO structures pointed to by AddressInfo.
///
///
UINT32 AddressInfoCount;
///
/// Pointer to an array of EFI_IP6_ADDRESS_INFO instances
/// which contain the local IPv6 addresses and the corresponding
/// prefix length information. Set to NULL if AddressInfoCount
///
/// Pointer to an array of EFI_IP6_ADDRESS_INFO instances
/// which contain the local IPv6 addresses and the corresponding
/// prefix length information. Set to NULL if AddressInfoCount
/// is zero.
///
///
EFI_IP6_ADDRESS_INFO *AddressInfo;
///
///
/// Number of route table entries in the following RouteTable.
///
///
UINT32 RouteCount;
///
/// The route table of the IPv6 network stack runs on this interface.
/// Set to NULL if RouteCount is zero.
///
///
/// The route table of the IPv6 network stack runs on this interface.
/// Set to NULL if RouteCount is zero.
///
EFI_IP6_ROUTE_TABLE *RouteTable;
} EFI_IP6_CONFIG_INTERFACE_INFO;
@@ -153,42 +153,42 @@ typedef struct {
///
/// EFI_IP6_CONFIG_POLICY
/// defines the general configuration policy the EFI IPv6
/// defines the general configuration policy the EFI IPv6
/// Configuration Protocol supports.
///
typedef enum {
///
/// Under this policy, the IpI6ConfigDataTypeManualAddress,
/// Under this policy, the IpI6ConfigDataTypeManualAddress,
/// Ip6ConfigDataTypeGateway and Ip6ConfigDataTypeDnsServer
/// configuration data are required to be set manually.
/// configuration data are required to be set manually.
/// The EFI IPv6 Protocol will get all required configuration
/// such as address, prefix and gateway settings from the EFI
/// IPv6 Configuration protocol.
///
Ip6ConfigPolicyManual,
///
/// Under this policy, the IpI6ConfigDataTypeManualAddress,
Ip6ConfigPolicyManual,
///
/// Under this policy, the IpI6ConfigDataTypeManualAddress,
/// Ip6ConfigDataTypeGateway and Ip6ConfigDataTypeDnsServer
/// configuration data are not allowed to set via SetData().
/// All of these configurations are retrieved from some auto
/// configuration mechanism.
/// The EFI IPv6 Protocol will use the IPv6 stateless address
/// autoconfiguration mechanism and/or the IPv6 stateful address
/// autoconfiguration mechanism described in the related RFCs to
/// configuration mechanism.
/// The EFI IPv6 Protocol will use the IPv6 stateless address
/// autoconfiguration mechanism and/or the IPv6 stateful address
/// autoconfiguration mechanism described in the related RFCs to
/// get address and other configuration information
///
///
Ip6ConfigPolicyAutomatic
} EFI_IP6_CONFIG_POLICY;
///
/// EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
/// describes the number of consecutive Neighbor Solicitation messages sent
/// while performing Duplicate Address Detection on a tentative address.
/// while performing Duplicate Address Detection on a tentative address.
/// The default value for a newly detected communication device is 1.
///
typedef struct {
UINT32 DupAddrDetectTransmits; ///< The number of consecutive Neighbor Solicitation messages sent.
} EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS;
} EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS;
///
/// EFI_IP6_CONFIG_MANUAL_ADDRESS
@@ -205,49 +205,49 @@ typedef struct {
/**
Set the configuration for the EFI IPv6 network stack running on the communication
device this EFI IPv6 Configuration Protocol instance manages.
This function is used to set the configuration data of type DataType for the EFI
This function is used to set the configuration data of type DataType for the EFI
IPv6 network stack running on the communication device this EFI IPv6 Configuration
Protocol instance manages.
The DataSize is used to calculate the count of structure instances in the Data for
The DataSize is used to calculate the count of structure instances in the Data for
some DataType that multiple structure instances are allowed.
This function is always non-blocking. When setting some type of configuration data,
an asynchronous process is invoked to check the correctness of the data, such as
doing Duplicate Address Detection on the manually set local IPv6 addresses.
an asynchronous process is invoked to check the correctness of the data, such as
doing Duplicate Address Detection on the manually set local IPv6 addresses.
EFI_NOT_READY is returned immediately to indicate that such an asynchronous process
is invoked and the process is not finished yet. The caller willing to get the result
of the asynchronous process is required to call RegisterDataNotify() to register an
event on the specified configuration data. Once the event is signaled, the caller
event on the specified configuration data. Once the event is signaled, the caller
can call GetData() to get back the configuration data in order to know the result.
For other types of configuration data that do not require an asynchronous configuration
For other types of configuration data that do not require an asynchronous configuration
process, the result of the operation is immediately returned.
@param[in] This Pointer to the EFI_IP6_CONFIG_PROTOCOL instance.
@param[in] DataType The type of data to set.
@param[in] DataType The type of data to set.
@param[in] DataSize Size of the buffer pointed to by Data in bytes.
@param[in] Data The data buffer to set. The type of the data buffer is
associated with the DataType.
@retval EFI_SUCCESS The specified configuration data for the EFI IPv6
@retval EFI_SUCCESS The specified configuration data for the EFI IPv6
network stack is set successfully.
@retval EFI_INVALID_PARAMETER One or more of the following are TRUE:
- This is NULL.
- One or more fields in Data and DataSize do not match the
requirement of the data type indicated by DataType.
@retval EFI_WRITE_PROTECTED The specified configuration data is read-only or the specified
- One or more fields in Data and DataSize do not match the
requirement of the data type indicated by DataType.
@retval EFI_WRITE_PROTECTED The specified configuration data is read-only or the specified
configuration data can not be set under the current policy
@retval EFI_ACCESS_DENIED Another set operation on the specified configuration
@retval EFI_ACCESS_DENIED Another set operation on the specified configuration
data is already in process.
@retval EFI_NOT_READY An asynchronous process is invoked to set the specified
configuration data and the process is not finished yet.
@retval EFI_BAD_BUFFER_SIZE The DataSize does not match the size of the type
@retval EFI_BAD_BUFFER_SIZE The DataSize does not match the size of the type
indicated by DataType.
@retval EFI_UNSUPPORTED This DataType is not supported.
@retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated.
@retval EFI_DEVICE_ERROR An unexpected system error or network error occurred.
**/
typedef
EFI_STATUS
@@ -261,39 +261,39 @@ EFI_STATUS
/**
Get the configuration data for the EFI IPv6 network stack running on the communication
device this EFI IPv6 Configuration Protocol instance manages.
This function returns the configuration data of type DataType for the EFI IPv6 network
stack running on the communication device this EFI IPv6 Configuration Protocol instance
manages.
The caller is responsible for allocating the buffer used to return the specified
configuration data and the required size will be returned to the caller if the size of
the buffer is too small.
EFI_NOT_READY is returned if the specified configuration data is not ready due to an
the buffer is too small.
EFI_NOT_READY is returned if the specified configuration data is not ready due to an
already in progress asynchronous configuration process. The caller can call RegisterDataNotify()
to register an event on the specified configuration data. Once the asynchronous configuration
process is finished, the event will be signaled and a subsequent GetData() call will return
process is finished, the event will be signaled and a subsequent GetData() call will return
the specified configuration data.
@param[in] This Pointer to the EFI_IP6_CONFIG_PROTOCOL instance.
@param[in] DataType The type of data to get.
@param[in,out] DataSize On input, in bytes, the size of Data. On output, in bytes, the
@param[in] DataType The type of data to get.
@param[in,out] DataSize On input, in bytes, the size of Data. On output, in bytes, the
size of buffer required to store the specified configuration data.
@param[in] Data The data buffer in which the configuration data is returned. The
@param[in] Data The data buffer in which the configuration data is returned. The
type of the data buffer is associated with the DataType.
@retval EFI_SUCCESS The specified configuration data is got successfully.
@retval EFI_INVALID_PARAMETER One or more of the followings are TRUE:
- This is NULL.
- DataSize is NULL.
- Data is NULL if *DataSize is not zero.
@retval EFI_BUFFER_TOO_SMALL The size of Data is too small for the specified configuration data
@retval EFI_BUFFER_TOO_SMALL The size of Data is too small for the specified configuration data
and the required size is returned in DataSize.
@retval EFI_NOT_READY The specified configuration data is not ready due to an already in
@retval EFI_NOT_READY The specified configuration data is not ready due to an already in
progress asynchronous configuration process.
@retval EFI_NOT_FOUND The specified configuration data is not found.
**/
typedef
EFI_STATUS
@@ -307,24 +307,24 @@ EFI_STATUS
/**
Register an event that is to be signaled whenever a configuration process on the specified
configuration data is done.
This function registers an event that is to be signaled whenever a configuration process
on the specified configuration data is done. An event can be registered for different DataType
simultaneously and the caller is responsible for determining which type of configuration data
causes the signaling of the event in such case.
@param[in] This Pointer to the EFI_IP6_CONFIG_PROTOCOL instance.
@param[in] DataType The type of data to unregister the event for.
@param[in] Event The event to register.
@retval EFI_SUCCESS The notification event for the specified configuration data is
@param[in] DataType The type of data to unregister the event for.
@param[in] Event The event to register.
@retval EFI_SUCCESS The notification event for the specified configuration data is
registered.
@retval EFI_INVALID_PARAMETER This is NULL or Event is NULL.
@retval EFI_UNSUPPORTED The configuration data type specified by DataType is not
@retval EFI_UNSUPPORTED The configuration data type specified by DataType is not
supported.
@retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated.
@retval EFI_ACCESS_DENIED The Event is already registered for the DataType.
**/
typedef
EFI_STATUS
@@ -336,18 +336,18 @@ EFI_STATUS
/**
Remove a previously registered event for the specified configuration data.
This function removes a previously registered event for the specified configuration data.
@param[in] This Pointer to the EFI_IP6_CONFIG_PROTOCOL instance.
@param[in] DataType The type of data to remove the previously registered event for.
@param[in] DataType The type of data to remove the previously registered event for.
@param[in] Event The event to unregister.
@retval EFI_SUCCESS The event registered for the specified configuration data is removed.
@retval EFI_INVALID_PARAMETER This is NULL or Event is NULL.
@retval EFI_NOT_FOUND The Event has not been registered for the specified
@retval EFI_NOT_FOUND The Event has not been registered for the specified
DataType.
**/
typedef
EFI_STATUS

View File

@@ -1,16 +1,16 @@
/** @file
EFI IPSEC Protocol Definition
The EFI_IPSEC_PROTOCOL is used to abstract the ability to deal with the individual
packets sent and received by the host and provide packet-level security for IP
packets sent and received by the host and provide packet-level security for IP
datagram.
The EFI_IPSEC2_PROTOCOL is used to abstract the ability to deal with the individual
packets sent and received by the host and provide packet-level security for IP
datagram. In addition, it supports the Option (extension header) processing in
IPsec which doesn't support in EFI_IPSEC_PROTOCOL. It is also recommended to
use EFI_IPSEC2_PROTOCOL instead of EFI_IPSEC_PROTOCOL especially for IPsec Tunnel
packets sent and received by the host and provide packet-level security for IP
datagram. In addition, it supports the Option (extension header) processing in
IPsec which doesn't support in EFI_IPSEC_PROTOCOL. It is also recommended to
use EFI_IPSEC2_PROTOCOL instead of EFI_IPSEC_PROTOCOL especially for IPsec Tunnel
Mode.
Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
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
@@ -19,7 +19,7 @@
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
@par Revision Reference:
@par Revision Reference:
The EFI_IPSEC2_PROTOCOL is introduced in UEFI Specification 2.3D.
**/
@@ -43,34 +43,34 @@ typedef struct _EFI_IPSEC_PROTOCOL EFI_IPSEC_PROTOCOL;
typedef struct _EFI_IPSEC2_PROTOCOL EFI_IPSEC2_PROTOCOL;
///
/// EFI_IPSEC_FRAGMENT_DATA
/// EFI_IPSEC_FRAGMENT_DATA
/// defines the instances of packet fragments.
///
typedef struct _EFI_IPSEC_FRAGMENT_DATA {
typedef struct _EFI_IPSEC_FRAGMENT_DATA {
UINT32 FragmentLength;
VOID *FragmentBuffer;
} EFI_IPSEC_FRAGMENT_DATA;
} EFI_IPSEC_FRAGMENT_DATA;
/**
Handles IPsec packet processing for inbound and outbound IP packets.
Handles IPsec packet processing for inbound and outbound IP packets.
The EFI_IPSEC_PROCESS process routine handles each inbound or outbound packet.
The behavior is that it can perform one of the following actions:
bypass the packet, discard the packet, or protect the packet.
The behavior is that it can perform one of the following actions:
bypass the packet, discard the packet, or protect the packet.
@param[in] This Pointer to the EFI_IPSEC_PROTOCOL instance.
@param[in] NicHandle Instance of the network interface.
@param[in] IpVer IPV4 or IPV6.
@param[in, out] IpHead Pointer to the IP Header.
@param[in] LastHead The protocol of the next layer to be processed by IPsec.
@param[in] OptionsBuffer Pointer to the options buffer.
@param[in] OptionsBuffer Pointer to the options buffer.
@param[in] OptionsLength Length of the options buffer.
@param[in, out] FragmentTable Pointer to a list of fragments.
@param[in, out] FragmentTable Pointer to a list of fragments.
@param[in] FragmentCount Number of fragments.
@param[in] TrafficDirection Traffic direction.
@param[out] RecycleSignal Event for recycling of resources.
@retval EFI_SUCCESS The packet was bypassed and all buffers remain the same.
@retval EFI_SUCCESS The packet was protected.
@retval EFI_ACCESS_DENIED The packet was discarded.
@@ -93,9 +93,9 @@ EFI_STATUS
);
///
/// EFI_IPSEC_PROTOCOL
/// EFI_IPSEC_PROTOCOL
/// provides the ability for securing IP communications by authenticating
/// and/or encrypting each IP packet in a data stream.
/// and/or encrypting each IP packet in a data stream.
// EFI_IPSEC_PROTOCOL can be consumed by both the IPv4 and IPv6 stack.
// A user can employ this protocol for IPsec package handling in both IPv4
// and IPv6 environment.
@@ -107,72 +107,72 @@ struct _EFI_IPSEC_PROTOCOL {
};
/**
Handles IPsec processing for both inbound and outbound IP packets. Compare with
Process() in EFI_IPSEC_PROTOCOL, this interface has the capability to process
Option(Extension Header).
Handles IPsec processing for both inbound and outbound IP packets. Compare with
Process() in EFI_IPSEC_PROTOCOL, this interface has the capability to process
Option(Extension Header).
The EFI_IPSEC2_PROCESS process routine handles each inbound or outbound packet.
The behavior is that it can perform one of the following actions:
bypass the packet, discard the packet, or protect the packet.
The behavior is that it can perform one of the following actions:
bypass the packet, discard the packet, or protect the packet.
@param[in] This Pointer to the EFI_IPSEC2_PROTOCOL instance.
@param[in] NicHandle Instance of the network interface.
@param[in] NicHandle Instance of the network interface.
@param[in] IpVer IP version.IPv4 or IPv6.
@param[in, out] IpHead Pointer to the IP Header it is either
@param[in, out] IpHead Pointer to the IP Header it is either
the EFI_IP4_HEADER or EFI_IP6_HEADER.
On input, it contains the IP header.
On output, 1) in tunnel mode and the
traffic direction is inbound, the buffer
will be reset to zero by IPsec; 2) in
tunnel mode and the traffic direction
is outbound, the buffer will reset to
be the tunnel IP header.3) in transport
mode, the related fielders (like payload
length, Next header) in IP header will
On input, it contains the IP header.
On output, 1) in tunnel mode and the
traffic direction is inbound, the buffer
will be reset to zero by IPsec; 2) in
tunnel mode and the traffic direction
is outbound, the buffer will reset to
be the tunnel IP header.3) in transport
mode, the related fielders (like payload
length, Next header) in IP header will
be modified according to the condition.
@param[in, out] LastHead For IP4, it is the next protocol in IP
header. For IP6 it is the Next Header
header. For IP6 it is the Next Header
of the last extension header.
@param[in, out] OptionsBuffer On input, it contains the options
(extensions header) to be processed by
@param[in, out] OptionsBuffer On input, it contains the options
(extensions header) to be processed by
IPsec. On output, 1) in tunnel mode and
the traffic direction is outbound, it
will be set to NULL, and that means this
contents was wrapped after inner header
and should not be concatenated after
tunnel header again; 2) in transport
mode and the traffic direction is inbound,
if there are IP options (extension headers)
protected by IPsec, IPsec will concatenate
the those options after the input options
(extension headers); 3) on other situations,
the output of contents of OptionsBuffer
might be same with input's. The caller
should take the responsibility to free
the traffic direction is outbound, it
will be set to NULL, and that means this
contents was wrapped after inner header
and should not be concatenated after
tunnel header again; 2) in transport
mode and the traffic direction is inbound,
if there are IP options (extension headers)
protected by IPsec, IPsec will concatenate
the those options after the input options
(extension headers); 3) on other situations,
the output of contents of OptionsBuffer
might be same with input's. The caller
should take the responsibility to free
the buffer both on input and on output.
@param[in, out] OptionsLength On input, the input length of the options
buffer. On output, the output length of
@param[in, out] OptionsLength On input, the input length of the options
buffer. On output, the output length of
the options buffer.
@param[in, out] FragmentTable Pointer to a list of fragments. On input,
these fragments contain the IP payload.
On output, 1) in tunnel mode and the traffic
direction is inbound, the fragments contain
the whole IP payload which is from the
IP inner header to the last byte of the
packet; 2) in tunnel mode and the traffic
direction is the outbound, the fragments
contains the whole encapsulated payload
which encapsulates the whole IP payload
between the encapsulated header and
encapsulated trailer fields. 3) in transport
mode and the traffic direction is inbound,
the fragments contains the IP payload
which is from the next layer protocol to
the last byte of the packet; 4) in transport
mode and the traffic direction is outbound,
the fragments contains the whole encapsulated
payload which encapsulates the next layer
protocol information between the encapsulated
@param[in, out] FragmentTable Pointer to a list of fragments. On input,
these fragments contain the IP payload.
On output, 1) in tunnel mode and the traffic
direction is inbound, the fragments contain
the whole IP payload which is from the
IP inner header to the last byte of the
packet; 2) in tunnel mode and the traffic
direction is the outbound, the fragments
contains the whole encapsulated payload
which encapsulates the whole IP payload
between the encapsulated header and
encapsulated trailer fields. 3) in transport
mode and the traffic direction is inbound,
the fragments contains the IP payload
which is from the next layer protocol to
the last byte of the packet; 4) in transport
mode and the traffic direction is outbound,
the fragments contains the whole encapsulated
payload which encapsulates the next layer
protocol information between the encapsulated
header and encapsulated trailer fields.
@param[in, out] FragmentCount Number of fragments.
@param[in] TrafficDirection Traffic direction.
@@ -180,7 +180,7 @@ struct _EFI_IPSEC_PROTOCOL {
@retval EFI_SUCCESS The packet was processed by IPsec successfully.
@retval EFI_ACCESS_DENIED The packet was discarded.
@retval EFI_NOT_READY The IKE negotiation is invoked and the packet
@retval EFI_NOT_READY The IKE negotiation is invoked and the packet
was discarded.
@retval EFI_INVALID_PARAMETER One or more of following are TRUE:
If OptionsBuffer is NULL;
@@ -189,23 +189,23 @@ struct _EFI_IPSEC_PROTOCOL {
If FragmentCount is NULL.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_IPSEC_PROCESSEXT) (
IN EFI_IPSEC2_PROTOCOL *This,
IN EFI_HANDLE NicHandle,
IN UINT8 IpVer,
IN OUT VOID *IpHead,
IN OUT UINT8 *LastHead,
IN OUT VOID **OptionsBuffer,
IN OUT UINT32 *OptionsLength,
IN OUT EFI_IPSEC_FRAGMENT_DATA **FragmentTable,
IN OUT UINT32 *FragmentCount,
IN EFI_IPSEC_TRAFFIC_DIR TrafficDirection,
(EFIAPI *EFI_IPSEC_PROCESSEXT) (
IN EFI_IPSEC2_PROTOCOL *This,
IN EFI_HANDLE NicHandle,
IN UINT8 IpVer,
IN OUT VOID *IpHead,
IN OUT UINT8 *LastHead,
IN OUT VOID **OptionsBuffer,
IN OUT UINT32 *OptionsLength,
IN OUT EFI_IPSEC_FRAGMENT_DATA **FragmentTable,
IN OUT UINT32 *FragmentCount,
IN EFI_IPSEC_TRAFFIC_DIR TrafficDirection,
OUT EFI_EVENT *RecycleSignal
);
///
///
/// EFI_IPSEC2_PROTOCOL
/// supports the Option (extension header) processing in IPsec which doesn't support
/// in EFI_IPSEC_PROTOCOL. It is also recommended to use EFI_IPSEC2_PROTOCOL instead
@@ -213,10 +213,10 @@ EFI_STATUS
/// provides the ability for securing IP communications by authenticating and/or
/// encrypting each IP packet in a data stream.
///
struct _EFI_IPSEC2_PROTOCOL {
struct _EFI_IPSEC2_PROTOCOL {
EFI_IPSEC_PROCESSEXT ProcessExt;
EFI_EVENT DisabledEvent;
BOOLEAN DisabledFlag;
EFI_EVENT DisabledEvent;
BOOLEAN DisabledFlag;
};
extern EFI_GUID gEfiIpSecProtocolGuid;

View File

@@ -1,9 +1,9 @@
/** @file
EFI IPsec Configuration Protocol Definition
The EFI_IPSEC_CONFIG_PROTOCOL provides the mechanism to set and retrieve security and
The EFI_IPSEC_CONFIG_PROTOCOL provides the mechanism to set and retrieve security and
policy related information for the EFI IPsec protocol driver.
Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
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
@@ -12,7 +12,7 @@
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
@par Revision Reference:
@par Revision Reference:
This Protocol is introduced in UEFI Specification 2.2
**/
@@ -32,34 +32,34 @@ typedef struct _EFI_IPSEC_CONFIG_PROTOCOL EFI_IPSEC_CONFIG_PROTOCOL;
/// EFI_IPSEC_CONFIG_DATA_TYPE
///
typedef enum {
///
/// The IPsec Security Policy Database (aka SPD) setting. In IPsec,
/// an essential element of Security Association (SA) processing is
/// underlying SPD that specifies what services are to be offered to
/// IP datagram and in what fashion. The SPD must be consulted
/// during the processing of all traffic (inbound and outbound),
/// including traffic not protected by IPsec, that traverses the IPsec
/// boundary. With this DataType, SetData() function is to set
/// the SPD entry information, which may add one new entry, delete
/// one existed entry or flush the whole database according to the
/// parameter values. The corresponding Data is of type
///
/// The IPsec Security Policy Database (aka SPD) setting. In IPsec,
/// an essential element of Security Association (SA) processing is
/// underlying SPD that specifies what services are to be offered to
/// IP datagram and in what fashion. The SPD must be consulted
/// during the processing of all traffic (inbound and outbound),
/// including traffic not protected by IPsec, that traverses the IPsec
/// boundary. With this DataType, SetData() function is to set
/// the SPD entry information, which may add one new entry, delete
/// one existed entry or flush the whole database according to the
/// parameter values. The corresponding Data is of type
/// EFI_IPSEC_SPD_DATA
///
///
IPsecConfigDataTypeSpd,
///
/// The IPsec Security Association Database (aka SAD) setting. A
/// SA is a simplex connection that affords security services to the
/// traffic carried by it. Security services are afforded to an SA by the
/// use of AH, or ESP, but not both. The corresponding Data is of
///
/// The IPsec Security Association Database (aka SAD) setting. A
/// SA is a simplex connection that affords security services to the
/// traffic carried by it. Security services are afforded to an SA by the
/// use of AH, or ESP, but not both. The corresponding Data is of
/// type EFI_IPSEC_SAD_DATA.
///
///
IPsecConfigDataTypeSad,
///
/// The IPsec Peer Authorization Database (aka PAD) setting, which
/// provides the link between the SPD and a security association
/// management protocol. The PAD entry specifies the
/// authentication protocol (e.g. IKEv1, IKEv2) method used and the
/// authentication data. The corresponding Data is of type
///
/// The IPsec Peer Authorization Database (aka PAD) setting, which
/// provides the link between the SPD and a security association
/// management protocol. The PAD entry specifies the
/// authentication protocol (e.g. IKEv1, IKEv2) method used and the
/// authentication data. The corresponding Data is of type
/// EFI_IPSEC_PAD_DATA.
///
IPsecConfigDataTypePad,
@@ -79,70 +79,70 @@ typedef struct _EFI_IP_ADDRESS_INFO {
/// EFI_IPSEC_SPD_SELECTOR
///
typedef struct _EFI_IPSEC_SPD_SELECTOR {
///
///
/// Specifies the actual number of entries in LocalAddress.
///
///
UINT32 LocalAddressCount;
///
/// A list of ranges of IPv4 or IPv6 addresses, which refers to the
///
/// A list of ranges of IPv4 or IPv6 addresses, which refers to the
/// addresses being protected by IPsec policy.
///
///
EFI_IP_ADDRESS_INFO *LocalAddress;
///
///
/// Specifies the actual number of entries in RemoteAddress.
///
///
UINT32 RemoteAddressCount;
///
/// A list of ranges of IPv4 or IPv6 addresses, which are peer entities
/// to LocalAddress.
///
///
/// A list of ranges of IPv4 or IPv6 addresses, which are peer entities
/// to LocalAddress.
///
EFI_IP_ADDRESS_INFO *RemoteAddress;
///
/// Next layer protocol. Obtained from the IPv4 Protocol or the IPv6
/// Next Header fields. The next layer protocol is whatever comes
/// after any IP extension headers that are present. A zero value is a
///
/// Next layer protocol. Obtained from the IPv4 Protocol or the IPv6
/// Next Header fields. The next layer protocol is whatever comes
/// after any IP extension headers that are present. A zero value is a
/// wildcard that matches any value in NextLayerProtocol field.
///
UINT16 NextLayerProtocol;
///
/// Local Port if the Next Layer Protocol uses two ports (as do TCP,
/// UDP, and others). A zero value is a wildcard that matches any
///
UINT16 NextLayerProtocol;
///
/// Local Port if the Next Layer Protocol uses two ports (as do TCP,
/// UDP, and others). A zero value is a wildcard that matches any
/// value in LocalPort field.
///
///
UINT16 LocalPort;
///
/// A designed port range size. The start port is LocalPort, and
/// the total number of ports is described by LocalPortRange.
/// This field is ignored if NextLayerProtocol does not use
/// ports.
///
///
/// A designed port range size. The start port is LocalPort, and
/// the total number of ports is described by LocalPortRange.
/// This field is ignored if NextLayerProtocol does not use
/// ports.
///
UINT16 LocalPortRange;
///
/// Remote Port if the Next Layer Protocol uses two ports. A zero
///
/// Remote Port if the Next Layer Protocol uses two ports. A zero
/// value is a wildcard that matches any value in RemotePort field.
///
///
UINT16 RemotePort;
///
/// A designed port range size. The start port is RemotePort, and
/// the total number of ports is described by RemotePortRange.
///
/// A designed port range size. The start port is RemotePort, and
/// the total number of ports is described by RemotePortRange.
/// This field is ignored if NextLayerProtocol does not use ports.
///
///
UINT16 RemotePortRange;
} EFI_IPSEC_SPD_SELECTOR;
///
/// EFI_IPSEC_TRAFFIC_DIR
/// represents the directionality in an SPD entry.
///
typedef enum {
///
/// The EfiIPsecInBound refers to traffic entering an IPsec implementation via
/// The EfiIPsecInBound refers to traffic entering an IPsec implementation via
/// the unprotected interface or emitted by the implementation on the unprotected
/// side of the boundary and directed towards the protected interface.
/// side of the boundary and directed towards the protected interface.
///
EfiIPsecInBound,
///
/// The EfiIPsecOutBound refers to traffic entering the implementation via
/// The EfiIPsecOutBound refers to traffic entering the implementation via
/// the protected interface, or emitted by the implementation on the protected side
/// of the boundary and directed toward the unprotected interface.
///
@@ -154,54 +154,54 @@ typedef enum {
/// represents three possible processing choices.
///
typedef enum {
///
///
/// Refers to traffic that is not allowed to traverse the IPsec boundary.
///
///
EfiIPsecActionDiscard,
///
/// Refers to traffic that is allowed to cross the IPsec boundary
///
/// Refers to traffic that is allowed to cross the IPsec boundary
/// without protection.
///
///
EfiIPsecActionBypass,
///
/// Refers to traffic that is afforded IPsec protection, and for such
/// traffic the SPD must specify the security protocols to be
/// employed, their mode, security service options, and the
/// cryptographic algorithms to be used.
///
/// Refers to traffic that is afforded IPsec protection, and for such
/// traffic the SPD must specify the security protocols to be
/// employed, their mode, security service options, and the
/// cryptographic algorithms to be used.
///
EfiIPsecActionProtect
} EFI_IPSEC_ACTION;
///
/// EFI_IPSEC_SA_LIFETIME
/// defines the lifetime of an SA, which represents when a SA must be
/// replaced or terminated. A value of all 0 for each field removes
/// defines the lifetime of an SA, which represents when a SA must be
/// replaced or terminated. A value of all 0 for each field removes
/// the limitation of a SA lifetime.
///
typedef struct _EFI_IPSEC_SA_LIFETIME {
///
///
/// The number of bytes to which the IPsec cryptographic algorithm
/// can be applied. For ESP, this is the encryption algorithm and for
/// AH, this is the authentication algorithm. The ByteCount
/// AH, this is the authentication algorithm. The ByteCount
/// includes pad bytes for cryptographic operations.
///
///
UINT64 ByteCount;
///
/// A time interval in second that warns the implementation to
///
/// A time interval in second that warns the implementation to
/// initiate action such as setting up a replacement SA.
///
///
UINT64 SoftLifetime;
///
/// A time interval in second when the current SA ends and is
///
/// A time interval in second when the current SA ends and is
/// destroyed.
///
///
UINT64 HardLifetime;
} EFI_IPSEC_SA_LIFETIME;
///
/// EFI_IPSEC_MODE
/// There are two modes of IPsec operation: transport mode and tunnel mode. In
/// EfiIPsecTransport mode, AH and ESP provide protection primarily for next layer protocols;
/// There are two modes of IPsec operation: transport mode and tunnel mode. In
/// EfiIPsecTransport mode, AH and ESP provide protection primarily for next layer protocols;
/// In EfiIPsecTunnel mode, AH and ESP are applied to tunneled IP packets.
///
typedef enum {
@@ -226,19 +226,19 @@ typedef enum {
/// EFI_IPSEC_TUNNEL_OPTION
///
typedef struct _EFI_IPSEC_TUNNEL_OPTION {
///
///
/// Local tunnel address when IPsec mode is EfiIPsecTunnel.
///
///
EFI_IP_ADDRESS LocalTunnelAddress;
///
///
/// Remote tunnel address when IPsec mode is EfiIPsecTunnel.
///
///
EFI_IP_ADDRESS RemoteTunnelAddress;
///
///
/// The option of copying the DF bit from an outbound package
/// to the tunnel mode header that it emits, when traffic is
/// carried via a tunnel mode SA.
///
/// to the tunnel mode header that it emits, when traffic is
/// carried via a tunnel mode SA.
///
EFI_IPSEC_TUNNEL_DF_OPTION DF;
} EFI_IPSEC_TUNNEL_OPTION;
@@ -247,7 +247,7 @@ typedef struct _EFI_IPSEC_TUNNEL_OPTION {
///
typedef enum {
EfiIPsecAH, ///< IP Authentication Header protocol which is specified in RFC 4302.
EfiIPsecESP ///< IP Encapsulating Security Payload which is specified in RFC 4303.
EfiIPsecESP ///< IP Encapsulating Security Payload which is specified in RFC 4303.
} EFI_IPSEC_PROTOCOL_TYPE;
///
@@ -255,48 +255,48 @@ typedef enum {
/// describes a policy list for traffic processing.
///
typedef struct _EFI_IPSEC_PROCESS_POLICY {
///
/// Extended Sequence Number. Is this SA using extended sequence
///
/// Extended Sequence Number. Is this SA using extended sequence
/// numbers. 64 bit counter is used if TRUE.
///
///
BOOLEAN ExtSeqNum;
///
/// A flag indicating whether overflow of the sequence number
/// counter should generate an auditable event and prevent
/// transmission of additional packets on the SA, or whether rollover
///
/// A flag indicating whether overflow of the sequence number
/// counter should generate an auditable event and prevent
/// transmission of additional packets on the SA, or whether rollover
/// is permitted.
///
///
BOOLEAN SeqOverflow;
///
/// Is this SA using stateful fragment checking. TRUE represents
///
/// Is this SA using stateful fragment checking. TRUE represents
/// stateful fragment checking.
///
///
BOOLEAN FragCheck;
///
/// A time interval after which a SA must be replaced with a new SA
/// (and new SPI) or terminated.
///
///
/// A time interval after which a SA must be replaced with a new SA
/// (and new SPI) or terminated.
///
EFI_IPSEC_SA_LIFETIME SaLifetime;
///
///
/// IPsec mode: tunnel or transport.
///
///
EFI_IPSEC_MODE Mode;
///
///
/// Tunnel Option. TunnelOption is ignored if Mode is EfiIPsecTransport.
///
///
EFI_IPSEC_TUNNEL_OPTION *TunnelOption;
///
///
/// IPsec protocol: AH or ESP
///
///
EFI_IPSEC_PROTOCOL_TYPE Proto;
///
///
/// Cryptographic algorithm type used for authentication.
///
///
UINT8 AuthAlgoId;
///
/// Cryptographic algorithm type used for encryption. EncAlgo is
/// NULL when IPsec protocol is AH. For ESP protocol, EncAlgo
/// can also be used to describe the algorithm if a combined mode
///
/// Cryptographic algorithm type used for encryption. EncAlgo is
/// NULL when IPsec protocol is AH. For ESP protocol, EncAlgo
/// can also be used to describe the algorithm if a combined mode
/// algorithm is used.
///
UINT8 EncAlgoId;
@@ -307,19 +307,19 @@ typedef struct _EFI_IPSEC_PROCESS_POLICY {
/// A triplet to identify an SA, consisting of the following members.
///
typedef struct _EFI_IPSEC_SA_ID {
///
/// Security Parameter Index (aka SPI). An arbitrary 32-bit value
/// that is used by a receiver to identity the SA to which an incoming
///
/// Security Parameter Index (aka SPI). An arbitrary 32-bit value
/// that is used by a receiver to identity the SA to which an incoming
/// package should be bound.
///
///
UINT32 Spi;
///
///
/// IPsec protocol: AH or ESP
///
///
EFI_IPSEC_PROTOCOL_TYPE Proto;
///
/// Destination IP address.
///
///
/// Destination IP address.
///
EFI_IP_ADDRESS DestAddress;
} EFI_IPSEC_SA_ID;
@@ -330,48 +330,48 @@ typedef struct _EFI_IPSEC_SA_ID {
/// EFI_IPSEC_SPD_DATA
///
typedef struct _EFI_IPSEC_SPD_DATA {
///
/// A null-terminated ASCII name string which is used as a symbolic
///
/// A null-terminated ASCII name string which is used as a symbolic
/// identifier for an IPsec Local or Remote address.
///
///
UINT8 Name[MAX_PEERID_LEN];
///
/// Bit-mapped list describing Populate from Packet flags. When
/// creating a SA, if PackageFlag bit is set to TRUE, instantiate
/// the selector from the corresponding field in the package that
/// triggered the creation of the SA, else from the value(s) in the
/// corresponding SPD entry. The PackageFlag bit setting for
///
/// Bit-mapped list describing Populate from Packet flags. When
/// creating a SA, if PackageFlag bit is set to TRUE, instantiate
/// the selector from the corresponding field in the package that
/// triggered the creation of the SA, else from the value(s) in the
/// corresponding SPD entry. The PackageFlag bit setting for
/// corresponding selector field of EFI_IPSEC_SPD_SELECTOR:
/// Bit 0: EFI_IPSEC_SPD_SELECTOR.LocalAddress
/// Bit 1: EFI_IPSEC_SPD_SELECTOR.RemoteAddress
/// Bit 2:
/// EFI_IPSEC_SPD_SELECTOR.NextLayerProtocol
/// Bit 3: EFI_IPSEC_SPD_SELECTOR.LocalPort
/// Bit 4: EFI_IPSEC_SPD_SELECTOR.RemotePort
/// Bit 0: EFI_IPSEC_SPD_SELECTOR.LocalAddress
/// Bit 1: EFI_IPSEC_SPD_SELECTOR.RemoteAddress
/// Bit 2:
/// EFI_IPSEC_SPD_SELECTOR.NextLayerProtocol
/// Bit 3: EFI_IPSEC_SPD_SELECTOR.LocalPort
/// Bit 4: EFI_IPSEC_SPD_SELECTOR.RemotePort
/// Others: Reserved.
///
UINT32 PackageFlag;
///
///
/// The traffic direction of data gram.
///
///
EFI_IPSEC_TRAFFIC_DIR TrafficDirection;
///
/// Processing choices to indicate which action is required by this
/// policy.
///
///
/// Processing choices to indicate which action is required by this
/// policy.
///
EFI_IPSEC_ACTION Action;
///
///
/// The policy and rule information for a SPD entry.
///
///
EFI_IPSEC_PROCESS_POLICY *ProcessingPolicy;
///
///
/// Specifies the actual number of entries in SaId list.
///
///
UINTN SaIdCount;
///
/// The SAD entry used for the traffic processing. The
///
/// The SAD entry used for the traffic processing. The
/// existed SAD entry links indicate this is the manual key case.
///
///
EFI_IPSEC_SA_ID SaId[1];
} EFI_IPSEC_SPD_DATA;
@@ -389,9 +389,9 @@ typedef struct _EFI_IPSEC_AH_ALGO_INFO {
///
/// EFI_IPSEC_ESP_ALGO_INFO
/// The security algorithm selection for IPsec ESP encryption and authentication.
/// The required authentication algorithm is specified in RFC 4305.
/// EncAlgoId fields can also specify an ESP combined mode algorithm
/// (e.g. AES with CCM mode, specified in RFC 4309), which provides both
/// The required authentication algorithm is specified in RFC 4305.
/// EncAlgoId fields can also specify an ESP combined mode algorithm
/// (e.g. AES with CCM mode, specified in RFC 4309), which provides both
/// confidentiality and authentication services.
///
typedef struct _EFI_IPSEC_ESP_ALGO_INFO {
@@ -415,40 +415,40 @@ typedef union {
/// EFI_IPSEC_SA_DATA
///
typedef struct _EFI_IPSEC_SA_DATA {
///
///
/// IPsec mode: tunnel or transport.
///
///
EFI_IPSEC_MODE Mode;
///
/// Sequence Number Counter. A 64-bit counter used to generate the
///
/// Sequence Number Counter. A 64-bit counter used to generate the
/// sequence number field in AH or ESP headers.
///
///
UINT64 SNCount;
///
/// Anti-Replay Window. A 64-bit counter and a bit-map used to
///
/// Anti-Replay Window. A 64-bit counter and a bit-map used to
/// determine whether an inbound AH or ESP packet is a replay.
///
///
UINT8 AntiReplayWindows;
///
/// AH/ESP cryptographic algorithm, key and parameters.
///
///
/// AH/ESP cryptographic algorithm, key and parameters.
///
EFI_IPSEC_ALGO_INFO AlgoInfo;
///
/// Lifetime of this SA.
///
///
/// Lifetime of this SA.
///
EFI_IPSEC_SA_LIFETIME SaLifetime;
///
/// Any observed path MTU and aging variables. The Path MTU
///
/// Any observed path MTU and aging variables. The Path MTU
/// processing is defined in section 8 of RFC 4301.
///
///
UINT32 PathMTU;
///
///
/// Link to one SPD entry.
///
///
EFI_IPSEC_SPD_SELECTOR *SpdSelector;
///
/// Indication of whether it's manually set or negotiated automatically.
/// If ManualSet is FALSE, the corresponding SA entry is inserted through
///
/// Indication of whether it's manually set or negotiated automatically.
/// If ManualSet is FALSE, the corresponding SA entry is inserted through
/// IKE protocol negotiation.
///
BOOLEAN ManualSet;
@@ -457,41 +457,41 @@ typedef struct _EFI_IPSEC_SA_DATA {
///
/// EFI_IPSEC_SA_DATA2
///
typedef struct _EFI_IPSEC_SA_DATA2 {
typedef struct _EFI_IPSEC_SA_DATA2 {
///
/// IPsec mode: tunnel or transport
///
EFI_IPSEC_MODE Mode;
EFI_IPSEC_MODE Mode;
///
/// Sequence Number Counter. A 64-bit counter used to generate the sequence
/// number field in AH or ESP headers.
/// Sequence Number Counter. A 64-bit counter used to generate the sequence
/// number field in AH or ESP headers.
///
UINT64 SNCount;
UINT64 SNCount;
///
/// Anti-Replay Window. A 64-bit counter and a bit-map used to determine
/// Anti-Replay Window. A 64-bit counter and a bit-map used to determine
/// whether an inbound AH or ESP packet is a replay.
///
UINT8 AntiReplayWindows;
UINT8 AntiReplayWindows;
///
/// AH/ESP cryptographic algorithm, key and parameters.
///
EFI_IPSEC_ALGO_INFO AlgoInfo;
EFI_IPSEC_ALGO_INFO AlgoInfo;
///
/// Lifetime of this SA.
///
EFI_IPSEC_SA_LIFETIME SaLifetime;
EFI_IPSEC_SA_LIFETIME SaLifetime;
///
/// Any observed path MTU and aging variables. The Path MTU processing is
/// Any observed path MTU and aging variables. The Path MTU processing is
/// defined in section 8 of RFC 4301.
///
UINT32 PathMTU;
UINT32 PathMTU;
///
/// Link to one SPD entry
///
EFI_IPSEC_SPD_SELECTOR *SpdSelector;
EFI_IPSEC_SPD_SELECTOR *SpdSelector;
///
/// Indication of whether it's manually set or negotiated automatically.
/// If ManualSet is FALSE, the corresponding SA entry is inserted through IKE
/// Indication of whether it's manually set or negotiated automatically.
/// If ManualSet is FALSE, the corresponding SA entry is inserted through IKE
/// protocol negotiation
///
BOOLEAN ManualSet;
@@ -503,7 +503,7 @@ typedef struct _EFI_IPSEC_SA_DATA2 {
/// The tunnel header IP destination address.
///
EFI_IP_ADDRESS TunnelDestinationAddress;
} EFI_IPSEC_SA_DATA2;
} EFI_IPSEC_SA_DATA2;
///
@@ -514,8 +514,8 @@ typedef struct _EFI_IPSEC_SA_DATA2 {
typedef struct _EFI_IPSEC_PAD_ID {
///
/// Flag to identify which type of PAD Id is used.
///
BOOLEAN PeerIdValid;
///
BOOLEAN PeerIdValid;
union {
///
/// Pointer to the IPv4 or IPv6 address range.
@@ -523,8 +523,8 @@ typedef struct _EFI_IPSEC_PAD_ID {
EFI_IP_ADDRESS_INFO IpAddress;
///
/// Pointer to a null terminated ASCII string
/// representing the symbolic names. A PeerId can be a DNS
/// name, Distinguished Name, RFC 822 email address or Key ID
/// representing the symbolic names. A PeerId can be a DNS
/// name, Distinguished Name, RFC 822 email address or Key ID
/// (specified in section 4.4.3.1 of RFC 4301)
///
UINT8 PeerId[MAX_PEERID_LEN];
@@ -533,7 +533,7 @@ typedef struct _EFI_IPSEC_PAD_ID {
///
/// EFI_IPSEC_CONFIG_SELECTOR
/// describes the expected IPsec configuration data selector
/// describes the expected IPsec configuration data selector
/// of type EFI_IPSEC_CONFIG_DATA_TYPE.
///
typedef union {
@@ -544,7 +544,7 @@ typedef union {
///
/// EFI_IPSEC_AUTH_PROTOCOL_TYPE
/// defines the possible authentication protocol for IPsec
/// defines the possible authentication protocol for IPsec
/// security association management.
///
typedef enum {
@@ -572,64 +572,64 @@ typedef enum {
/// EFI_IPSEC_PAD_DATA
///
typedef struct _EFI_IPSEC_PAD_DATA {
///
///
/// Authentication Protocol for IPsec security association management.
///
///
EFI_IPSEC_AUTH_PROTOCOL_TYPE AuthProtocol;
///
///
/// Authentication method used.
///
///
EFI_IPSEC_AUTH_METHOD AuthMethod;
///
/// The IKE ID payload will be used as a symbolic name for SPD
/// lookup if IkeIdFlag is TRUE. Otherwise, the remote IP
///
/// The IKE ID payload will be used as a symbolic name for SPD
/// lookup if IkeIdFlag is TRUE. Otherwise, the remote IP
/// address provided in traffic selector playloads will be used.
///
///
BOOLEAN IkeIdFlag;
///
///
/// The size of Authentication data buffer, in bytes.
///
///
UINTN AuthDataSize;
///
/// Buffer for Authentication data, (e.g., the pre-shared secret or the
/// trust anchor relative to which the peer's certificate will be
///
/// Buffer for Authentication data, (e.g., the pre-shared secret or the
/// trust anchor relative to which the peer's certificate will be
/// validated).
///
///
VOID *AuthData;
///
///
/// The size of RevocationData, in bytes
///
///
UINTN RevocationDataSize;
///
/// Pointer to CRL or OCSP data, if certificates are used for
///
/// Pointer to CRL or OCSP data, if certificates are used for
/// authentication method.
///
///
VOID *RevocationData;
} EFI_IPSEC_PAD_DATA;
/**
Set the security association, security policy and peer authorization configuration
information for the EFI IPsec driver.
information for the EFI IPsec driver.
This function is used to set the IPsec configuration information of type DataType for
the EFI IPsec driver.
The IPsec configuration data has a unique selector/identifier separately to identify
a data entry. The selector structure depends on DataType's definition.
Using SetData() with a Data of NULL causes the IPsec configuration data entry identified
by DataType and Selector to be deleted.
by DataType and Selector to be deleted.
@param[in] This Pointer to the EFI_IPSEC_CONFIG_PROTOCOL instance.
@param[in] DataType The type of data to be set.
@param[in] Selector Pointer to an entry selector on operated configuration data
specified by DataType. A NULL Selector causes the entire
@param[in] Selector Pointer to an entry selector on operated configuration data
specified by DataType. A NULL Selector causes the entire
specified-type configuration information to be flushed.
@param[in] Data The data buffer to be set. The structure of the data buffer is
@param[in] Data The data buffer to be set. The structure of the data buffer is
associated with the DataType.
@param[in] InsertBefore Pointer to one entry selector which describes the expected
position the new data entry will be added. If InsertBefore is NULL,
the new entry will be appended the end of database.
@retval EFI_SUCCESS The specified configuration entry data is set successfully.
@retval EFI_INVALID_PARAMETER One or more of the following are TRUE:
- This is NULL.
@@ -648,20 +648,20 @@ EFI_STATUS
);
/**
Return the configuration value for the EFI IPsec driver.
Return the configuration value for the EFI IPsec driver.
This function lookup the data entry from IPsec database or IKEv2 configuration
information. The expected data type and unique identification are described in
DataType and Selector parameters.
DataType and Selector parameters.
@param[in] This Pointer to the EFI_IPSEC_CONFIG_PROTOCOL instance.
@param[in] DataType The type of data to retrieve.
@param[in] Selector Pointer to an entry selector which is an identifier of the IPsec
@param[in] Selector Pointer to an entry selector which is an identifier of the IPsec
configuration data entry.
@param[in, out] DataSize On output the size of data returned in Data.
@param[out] Data The buffer to return the contents of the IPsec configuration data.
The type of the data buffer is associated with the DataType.
@param[out] Data The buffer to return the contents of the IPsec configuration data.
The type of the data buffer is associated with the DataType.
@retval EFI_SUCCESS The specified configuration data is got successfully.
@retval EFI_INVALID_PARAMETER One or more of the followings are TRUE:
- This is NULL.
@@ -685,30 +685,30 @@ EFI_STATUS
);
/**
Enumerates the current selector for IPsec configuration data entry.
Enumerates the current selector for IPsec configuration data entry.
This function is called multiple times to retrieve the entry Selector in IPsec
configuration database. On each call to GetNextSelector(), the next entry
configuration database. On each call to GetNextSelector(), the next entry
Selector are retrieved into the output interface.
If the entire IPsec configuration database has been iterated, the error
If the entire IPsec configuration database has been iterated, the error
EFI_NOT_FOUND is returned.
If the Selector buffer is too small for the next Selector copy, an
EFI_BUFFER_TOO_SMALL error is returned, and SelectorSize is updated to reflect
If the Selector buffer is too small for the next Selector copy, an
EFI_BUFFER_TOO_SMALL error is returned, and SelectorSize is updated to reflect
the size of buffer needed.
On the initial call to GetNextSelector() to start the IPsec configuration database
search, a pointer to the buffer with all zero value is passed in Selector. Calls
to SetData() between calls to GetNextSelector may produce unpredictable results.
search, a pointer to the buffer with all zero value is passed in Selector. Calls
to SetData() between calls to GetNextSelector may produce unpredictable results.
@param[in] This Pointer to the EFI_IPSEC_CONFIG_PROTOCOL instance.
@param[in] DataType The type of IPsec configuration data to retrieve.
@param[in, out] SelectorSize The size of the Selector buffer.
@param[in, out] Selector On input, supplies the pointer to last Selector that was
@param[in, out] Selector On input, supplies the pointer to last Selector that was
returned by GetNextSelector().
On output, returns one copy of the current entry Selector
of a given DataType.
of a given DataType.
@retval EFI_SUCCESS The specified configuration data is got successfully.
@retval EFI_INVALID_PARAMETER One or more of the followings are TRUE:
- This is NULL.
@@ -717,7 +717,7 @@ EFI_STATUS
@retval EFI_NOT_FOUND The next configuration data entry was not found.
@retval EFI_UNSUPPORTED The specified DataType is not supported.
@retval EFI_BUFFER_TOO_SMALL The SelectorSize is too small for the result. This parameter
has been updated with the size needed to complete the search
has been updated with the size needed to complete the search
request.
**/
@@ -732,18 +732,18 @@ EFI_STATUS
/**
Register an event that is to be signaled whenever a configuration process on the
specified IPsec configuration information is done.
specified IPsec configuration information is done.
This function registers an event that is to be signaled whenever a configuration
process on the specified IPsec configuration data is done (e.g. IPsec security
process on the specified IPsec configuration data is done (e.g. IPsec security
policy database configuration is ready). An event can be registered for different
DataType simultaneously and the caller is responsible for determining which type
of configuration data causes the signaling of the event in such case.
DataType simultaneously and the caller is responsible for determining which type
of configuration data causes the signaling of the event in such case.
@param[in] This Pointer to the EFI_IPSEC_CONFIG_PROTOCOL instance.
@param[in] DataType The type of data to be registered the event for.
@param[in] Event The event to be registered.
@retval EFI_SUCCESS The event is registered successfully.
@retval EFI_INVALID_PARAMETER This is NULL or Event is NULL.
@retval EFI_ACCESS_DENIED The Event is already registered for the DataType.
@@ -761,16 +761,16 @@ EFI_STATUS
/**
Remove the specified event that is previously registered on the specified IPsec
configuration data.
configuration data.
This function removes a previously registered event for the specified configuration data.
This function removes a previously registered event for the specified configuration data.
@param[in] This Pointer to the EFI_IPSEC_CONFIG_PROTOCOL instance.
@param[in] DataType The configuration data type to remove the registered event for.
@param[in] Event The event to be unregistered.
@retval EFI_SUCCESS The event is removed successfully.
@retval EFI_NOT_FOUND The Event specified by DataType could not be found in the
@retval EFI_NOT_FOUND The Event specified by DataType could not be found in the
database.
@retval EFI_INVALID_PARAMETER This is NULL or Event is NULL.
@retval EFI_UNSUPPORTED The notify registration unsupported or the specified
@@ -788,12 +788,12 @@ EFI_STATUS
///
/// EFI_IPSEC_CONFIG_PROTOCOL
/// provides the ability to set and lookup the IPsec SAD (Security Association Database),
/// SPD (Security Policy Database) data entry and configure the security association
/// management protocol such as IKEv2. This protocol is used as the central
/// SPD (Security Policy Database) data entry and configure the security association
/// management protocol such as IKEv2. This protocol is used as the central
/// repository of any policy-specific configuration for EFI IPsec driver.
/// EFI_IPSEC_CONFIG_PROTOCOL can be bound to both IPv4 and IPv6 stack. User can use this
/// EFI_IPSEC_CONFIG_PROTOCOL can be bound to both IPv4 and IPv6 stack. User can use this
/// protocol for IPsec configuration in both IPv4 and IPv6 environment.
///
///
struct _EFI_IPSEC_CONFIG_PROTOCOL {
EFI_IPSEC_CONFIG_SET_DATA SetData;
EFI_IPSEC_CONFIG_GET_DATA GetData;

View File

@@ -5,14 +5,14 @@
subtractive-decode ISA bus. It allows devices to be registered and also
handles opening and closing the apertures which are positively-decoded.
Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
@par Revision Reference:
This protocol is from PI Version 1.2.1.
@@ -76,7 +76,7 @@ EFI_STATUS
hardware aperture (via CloseIoAperture()) until there are no more references to it.
@param This A pointer to this instance of the EFI_ISA_HC_PROTOCOL.
@param IoApertureHandle The I/O aperture handle previously returned from a
@param IoApertureHandle The I/O aperture handle previously returned from a
call to OpenIoAperture().
@retval EFI_SUCCESS The IO aperture was closed successfully.

View File

@@ -8,7 +8,7 @@
server over the network, or to a Hardware Security Module (HSM) attached to the system it
runs on, or anything else that is capable of providing the key management service.
Copyright (c) 2011 - 2017, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
The full text of the license may be found at
@@ -373,7 +373,7 @@ EFI_STATUS
@param[in] This Pointer to the EFI_KMS_PROTOCOL instance.
@param[in] Client Pointer to a valid EFI_KMS_CLIENT_INFO structure.
@param[in, out] ClientDataSize Pointer to the size, in bytes, of an arbitrary block of
@param[in, out] ClientDataSize Pointer to the size, in bytes, of an arbitrary block of
data specified by the ClientData parameter. This
parameter may be NULL, in which case the ClientData
parameter will be ignored and no data will be
@@ -388,11 +388,11 @@ EFI_STATUS
which will be zero if no data is returned from the KMS.
@param[in, out] ClientData Pointer to a pointer to an arbitrary block of data of
*ClientDataSize that is to be passed directly to the
KMS if it supports the use of client data. This
parameter may be NULL if and only if the
KMS if it supports the use of client data. This
parameter may be NULL if and only if the
ClientDataSize parameter is also NULL. Upon return to
the caller, *ClientData points to a block of data of
*ClientDataSize that was returned from the KMS.
the caller, *ClientData points to a block of data of
*ClientDataSize that was returned from the KMS.
If the returned value for *ClientDataSize is zero,
then the returned value for *ClientData must be NULL
and should be ignored by the caller. The KMS protocol
@@ -418,7 +418,7 @@ EFI_STATUS
IN EFI_KMS_CLIENT_INFO *Client,
IN OUT UINTN *ClientDataSize OPTIONAL,
IN OUT VOID **ClientData OPTIONAL
);
);
/**
Request that the KMS generate one or more new keys and associate them with key identifiers.
@@ -454,7 +454,7 @@ EFI_STATUS
type and must be freed by the caller when it is no longer
needed. Also, the KeyStatus field must reflect the result
of the request relative to that key.
@param[in, out] ClientDataSize Pointer to the size, in bytes, of an arbitrary block of
@param[in, out] ClientDataSize Pointer to the size, in bytes, of an arbitrary block of
data specified by the ClientData parameter. This
parameter may be NULL, in which case the ClientData
parameter will be ignored and no data will be
@@ -469,11 +469,11 @@ EFI_STATUS
which will be zero if no data is returned from the KMS.
@param[in, out] ClientData Pointer to a pointer to an arbitrary block of data of
*ClientDataSize that is to be passed directly to the
KMS if it supports the use of client data. This
parameter may be NULL if and only if the
KMS if it supports the use of client data. This
parameter may be NULL if and only if the
ClientDataSize parameter is also NULL. Upon return to
the caller, *ClientData points to a block of data of
*ClientDataSize that was returned from the KMS.
the caller, *ClientData points to a block of data of
*ClientDataSize that was returned from the KMS.
If the returned value for *ClientDataSize is zero,
then the returned value for *ClientData must be NULL
and should be ignored by the caller. The KMS protocol
@@ -535,12 +535,12 @@ EFI_STATUS
On output, the KeyIdentifierSize and KeyIdentifier fields
will be unchanged, while the KeyFormat and KeyValue
fields will be updated values associated with this key
identifier. Memory for the KeyValue field will be
identifier. Memory for the KeyValue field will be
allocated with the BOOT_SERVICES_DATA type and
must be freed by the caller when it is no longer needed.
Also, the KeyStatus field will reflect the result of the
request relative to the individual key descriptor.
@param[in, out] ClientDataSize Pointer to the size, in bytes, of an arbitrary block of
@param[in, out] ClientDataSize Pointer to the size, in bytes, of an arbitrary block of
data specified by the ClientData parameter. This
parameter may be NULL, in which case the ClientData
parameter will be ignored and no data will be
@@ -555,11 +555,11 @@ EFI_STATUS
which will be zero if no data is returned from the KMS.
@param[in, out] ClientData Pointer to a pointer to an arbitrary block of data of
*ClientDataSize that is to be passed directly to the
KMS if it supports the use of client data. This
parameter may be NULL if and only if the
KMS if it supports the use of client data. This
parameter may be NULL if and only if the
ClientDataSize parameter is also NULL. Upon return to
the caller, *ClientData points to a block of data of
*ClientDataSize that was returned from the KMS.
the caller, *ClientData points to a block of data of
*ClientDataSize that was returned from the KMS.
If the returned value for *ClientDataSize is zero,
then the returned value for *ClientData must be NULL
and should be ignored by the caller. The KMS protocol
@@ -626,7 +626,7 @@ EFI_STATUS
consistent values to be associated with the given KeyId.
On return, the KeyStatus field will reflect the result
of the operation for each key request.
@param[in, out] ClientDataSize Pointer to the size, in bytes, of an arbitrary block of
@param[in, out] ClientDataSize Pointer to the size, in bytes, of an arbitrary block of
data specified by the ClientData parameter. This
parameter may be NULL, in which case the ClientData
parameter will be ignored and no data will be
@@ -641,11 +641,11 @@ EFI_STATUS
which will be zero if no data is returned from the KMS.
@param[in, out] ClientData Pointer to a pointer to an arbitrary block of data of
*ClientDataSize that is to be passed directly to the
KMS if it supports the use of client data. This
parameter may be NULL if and only if the
KMS if it supports the use of client data. This
parameter may be NULL if and only if the
ClientDataSize parameter is also NULL. Upon return to
the caller, *ClientData points to a block of data of
*ClientDataSize that was returned from the KMS.
the caller, *ClientData points to a block of data of
*ClientDataSize that was returned from the KMS.
If the returned value for *ClientDataSize is zero,
then the returned value for *ClientData must be NULL
and should be ignored by the caller. The KMS protocol
@@ -711,7 +711,7 @@ EFI_STATUS
KeyValue fields are ignored, but should be 0.
On return, the KeyStatus field will reflect the result
of the operation for each key request.
@param[in, out] ClientDataSize Pointer to the size, in bytes, of an arbitrary block of
@param[in, out] ClientDataSize Pointer to the size, in bytes, of an arbitrary block of
data specified by the ClientData parameter. This
parameter may be NULL, in which case the ClientData
parameter will be ignored and no data will be
@@ -726,11 +726,11 @@ EFI_STATUS
which will be zero if no data is returned from the KMS.
@param[in, out] ClientData Pointer to a pointer to an arbitrary block of data of
*ClientDataSize that is to be passed directly to the
KMS if it supports the use of client data. This
parameter may be NULL if and only if the
KMS if it supports the use of client data. This
parameter may be NULL if and only if the
ClientDataSize parameter is also NULL. Upon return to
the caller, *ClientData points to a block of data of
*ClientDataSize that was returned from the KMS.
the caller, *ClientData points to a block of data of
*ClientDataSize that was returned from the KMS.
If the returned value for *ClientDataSize is zero,
then the returned value for *ClientData must be NULL
and should be ignored by the caller. The KMS protocol
@@ -789,7 +789,7 @@ EFI_STATUS
On input, the fields in the structure should be NULL.
On output, the attribute fields will have updated values
for attributes associated with this key identifier.
@param[in, out] ClientDataSize Pointer to the size, in bytes, of an arbitrary block of
@param[in, out] ClientDataSize Pointer to the size, in bytes, of an arbitrary block of
data specified by the ClientData parameter. This
parameter may be NULL, in which case the ClientData
parameter will be ignored and no data will be
@@ -804,11 +804,11 @@ EFI_STATUS
which will be zero if no data is returned from the KMS.
@param[in, out] ClientData Pointer to a pointer to an arbitrary block of data of
*ClientDataSize that is to be passed directly to the
KMS if it supports the use of client data. This
parameter may be NULL if and only if the
KMS if it supports the use of client data. This
parameter may be NULL if and only if the
ClientDataSize parameter is also NULL. Upon return to
the caller, *ClientData points to a block of data of
*ClientDataSize that was returned from the KMS.
the caller, *ClientData points to a block of data of
*ClientDataSize that was returned from the KMS.
If the returned value for *ClientDataSize is zero,
then the returned value for *ClientData must be NULL
and should be ignored by the caller. The KMS protocol
@@ -876,7 +876,7 @@ EFI_STATUS
are completely filled in.
On return the KeyAttributeStatus field will reflect the
result of the operation for each key attribute request.
@param[in, out] ClientDataSize Pointer to the size, in bytes, of an arbitrary block of
@param[in, out] ClientDataSize Pointer to the size, in bytes, of an arbitrary block of
data specified by the ClientData parameter. This
parameter may be NULL, in which case the ClientData
parameter will be ignored and no data will be
@@ -891,11 +891,11 @@ EFI_STATUS
which will be zero if no data is returned from the KMS.
@param[in, out] ClientData Pointer to a pointer to an arbitrary block of data of
*ClientDataSize that is to be passed directly to the
KMS if it supports the use of client data. This
parameter may be NULL if and only if the
KMS if it supports the use of client data. This
parameter may be NULL if and only if the
ClientDataSize parameter is also NULL. Upon return to
the caller, *ClientData points to a block of data of
*ClientDataSize that was returned from the KMS.
the caller, *ClientData points to a block of data of
*ClientDataSize that was returned from the KMS.
If the returned value for *ClientDataSize is zero,
then the returned value for *ClientData must be NULL
and should be ignored by the caller. The KMS protocol
@@ -967,7 +967,7 @@ EFI_STATUS
are completely filled in.
On return the KeyAttributeStatus field will reflect the
result of the operation for each key attribute request.
@param[in, out] ClientDataSize Pointer to the size, in bytes, of an arbitrary block of
@param[in, out] ClientDataSize Pointer to the size, in bytes, of an arbitrary block of
data specified by the ClientData parameter. This
parameter may be NULL, in which case the ClientData
parameter will be ignored and no data will be
@@ -982,11 +982,11 @@ EFI_STATUS
which will be zero if no data is returned from the KMS.
@param[in, out] ClientData Pointer to a pointer to an arbitrary block of data of
*ClientDataSize that is to be passed directly to the
KMS if it supports the use of client data. This
parameter may be NULL if and only if the
KMS if it supports the use of client data. This
parameter may be NULL if and only if the
ClientDataSize parameter is also NULL. Upon return to
the caller, *ClientData points to a block of data of
*ClientDataSize that was returned from the KMS.
the caller, *ClientData points to a block of data of
*ClientDataSize that was returned from the KMS.
If the returned value for *ClientDataSize is zero,
then the returned value for *ClientData must be NULL
and should be ignored by the caller. The KMS protocol
@@ -1064,7 +1064,7 @@ EFI_STATUS
caller when it is no longer needed. Also, the KeyStatus
field of each descriptor will reflect the result of the
request relative to that key descriptor.
@param[in, out] ClientDataSize Pointer to the size, in bytes, of an arbitrary block of
@param[in, out] ClientDataSize Pointer to the size, in bytes, of an arbitrary block of
data specified by the ClientData parameter. This
parameter may be NULL, in which case the ClientData
parameter will be ignored and no data will be
@@ -1079,11 +1079,11 @@ EFI_STATUS
which will be zero if no data is returned from the KMS.
@param[in, out] ClientData Pointer to a pointer to an arbitrary block of data of
*ClientDataSize that is to be passed directly to the
KMS if it supports the use of client data. This
parameter may be NULL if and only if the
KMS if it supports the use of client data. This
parameter may be NULL if and only if the
ClientDataSize parameter is also NULL. Upon return to
the caller, *ClientData points to a block of data of
*ClientDataSize that was returned from the KMS.
the caller, *ClientData points to a block of data of
*ClientDataSize that was returned from the KMS.
If the returned value for *ClientDataSize is zero,
then the returned value for *ClientData must be NULL
and should be ignored by the caller. The KMS protocol

View File

@@ -2,7 +2,7 @@
The Legacy Region Protocol controls the read, write and boot-lock attributes for
the region 0xC0000 to 0xFFFFF.
Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
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
@@ -12,7 +12,7 @@
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
@par Revision Reference:
This Protocol is defined in UEFI Platform Initialization Specification 1.2
This Protocol is defined in UEFI Platform Initialization Specification 1.2
Volume 5: Standards
**/
@@ -31,9 +31,9 @@ typedef struct _EFI_LEGACY_REGION2_PROTOCOL EFI_LEGACY_REGION2_PROTOCOL;
/**
Modify the hardware to allow (decode) or disallow (not decode) memory reads in a region.
If the On parameter evaluates to TRUE, this function enables memory reads in the address range
If the On parameter evaluates to TRUE, this function enables memory reads in the address range
Start to (Start + Length - 1).
If the On parameter evaluates to FALSE, this function disables memory reads in the address range
If the On parameter evaluates to FALSE, this function disables memory reads in the address range
Start to (Start + Length - 1).
@param This[in] Indicates the EFI_LEGACY_REGION2_PROTOCOL instance.
@@ -96,7 +96,7 @@ EFI_STATUS
/**
Modify the hardware to disallow memory attribute changes in a region.
This function makes the attributes of a region read only. Once a region is boot-locked with this
This function makes the attributes of a region read only. Once a region is boot-locked with this
function, the read and write attributes of that region cannot be changed until a power cycle has
reset the boot-lock attribute. Calls to Decode(), Lock() and Unlock() will have no effect.
@@ -131,7 +131,7 @@ EFI_STATUS
/**
Modify the hardware to allow memory writes in a region.
This function changes the attributes of a memory range to allow writes.
This function changes the attributes of a memory range to allow writes.
@param This[in] Indicates the EFI_LEGACY_REGION2_PROTOCOL instance.
@param Start[in] The beginning of the physical address of the region whose
@@ -195,9 +195,9 @@ typedef struct {
/**
Get region information for the attributes of the Legacy Region.
This function is used to discover the granularity of the attributes for the memory in the legacy
This function is used to discover the granularity of the attributes for the memory in the legacy
region. Each attribute may have a different granularity and the granularity may not be the same
for all memory ranges in the legacy region.
for all memory ranges in the legacy region.
@param This[in] Indicates the EFI_LEGACY_REGION2_PROTOCOL instance.
@param DescriptorCount[out] The number of region descriptor entries returned in the Descriptor
@@ -220,8 +220,8 @@ EFI_STATUS
);
///
/// The EFI_LEGACY_REGION2_PROTOCOL is used to abstract the hardware control of the memory
///
/// The EFI_LEGACY_REGION2_PROTOCOL is used to abstract the hardware control of the memory
/// attributes of the Option ROM shadowing region, 0xC0000 to 0xFFFFF.
/// There are three memory attributes that can be modified through this protocol: read, write and
/// boot-lock. These protocols may be set in any combination.

View File

@@ -1,20 +1,20 @@
/** @file
Load File protocol as defined in the UEFI 2.0 specification.
The load file protocol exists to supports the addition of new boot devices,
and to support booting from devices that do not map well to file system.
The load file protocol exists to supports the addition of new boot devices,
and to support booting from devices that do not map well to file system.
Network boot is done via a LoadFile protocol.
UEFI 2.0 can boot from any device that produces a LoadFile protocol.
Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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.
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.
**/
@@ -35,7 +35,7 @@ typedef struct _EFI_LOAD_FILE_PROTOCOL EFI_LOAD_FILE_PROTOCOL;
///
/// Backward-compatible with EFI1.1
///
///
typedef EFI_LOAD_FILE_PROTOCOL EFI_LOAD_FILE_INTERFACE;
/**

View File

@@ -1,20 +1,20 @@
/** @file
Load File protocol as defined in the UEFI 2.0 specification.
Load file protocol exists to supports the addition of new boot devices,
and to support booting from devices that do not map well to file system.
Load file protocol exists to supports the addition of new boot devices,
and to support booting from devices that do not map well to file system.
Network boot is done via a LoadFile protocol.
UEFI 2.0 can boot from any device that produces a LoadFile protocol.
Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -57,7 +57,7 @@ typedef struct _EFI_LOAD_FILE2_PROTOCOL EFI_LOAD_FILE2_PROTOCOL;
@retval EFI_NO_RESPONSE The remote system did not respond.
@retval EFI_NOT_FOUND The file was not found
@retval EFI_ABORTED The file load process was manually canceled.
@retval EFI_BUFFER_TOO_SMALL The BufferSize is too small to read the current
@retval EFI_BUFFER_TOO_SMALL The BufferSize is too small to read the current
directory entry. BufferSize has been updated with
the size needed to complete the request.

View File

@@ -4,14 +4,14 @@
Every EFI driver and application is passed an image handle when it is loaded.
This image handle will contain a Loaded Image Protocol.
Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -30,7 +30,7 @@
///
/// Protocol GUID defined in EFI1.1.
///
///
#define LOADED_IMAGE_PROTOCOL EFI_LOADED_IMAGE_PROTOCOL_GUID
///
@@ -40,25 +40,25 @@
///
/// Revision defined in EFI1.1.
///
///
#define EFI_LOADED_IMAGE_INFORMATION_REVISION EFI_LOADED_IMAGE_PROTOCOL_REVISION
///
/// Can be used on any image handle to obtain information about the loaded image.
///
typedef struct {
UINT32 Revision; ///< Defines the revision of the EFI_LOADED_IMAGE_PROTOCOL structure.
UINT32 Revision; ///< Defines the revision of the EFI_LOADED_IMAGE_PROTOCOL structure.
///< All future revisions will be backward compatible to the current revision.
EFI_HANDLE ParentHandle; ///< Parent image's image handle. NULL if the image is loaded directly from
///< the firmware's boot manager.
EFI_HANDLE ParentHandle; ///< Parent image's image handle. NULL if the image is loaded directly from
///< the firmware's boot manager.
EFI_SYSTEM_TABLE *SystemTable; ///< the image's EFI system table pointer.
//
// Source location of image
//
EFI_HANDLE DeviceHandle; ///< The device handle that the EFI Image was loaded from.
EFI_DEVICE_PATH_PROTOCOL *FilePath; ///< A pointer to the file path portion specific to DeviceHandle
///< that the EFI Image was loaded from.
EFI_HANDLE DeviceHandle; ///< The device handle that the EFI Image was loaded from.
EFI_DEVICE_PATH_PROTOCOL *FilePath; ///< A pointer to the file path portion specific to DeviceHandle
///< that the EFI Image was loaded from.
VOID *Reserved; ///< Reserved. DO NOT USE.
//
@@ -79,7 +79,7 @@ typedef struct {
//
// For backward-compatible with EFI1.1.
//
//
typedef EFI_LOADED_IMAGE_PROTOCOL EFI_LOADED_IMAGE;
extern EFI_GUID gEfiLoadedImageProtocolGuid;

View File

@@ -2,16 +2,16 @@
EFI_MANAGED_NETWORK_SERVICE_BINDING_PROTOCOL as defined in UEFI 2.0.
EFI_MANAGED_NETWORK_PROTOCOL as defined in UEFI 2.0.
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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,
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.
@par Revision Reference:
@par Revision Reference:
This Protocol is introduced in UEFI Specification 2.0
**/
@@ -352,7 +352,7 @@ EFI_STATUS
);
///
/// The MNP is used by network applications (and drivers) to
/// The MNP is used by network applications (and drivers) to
/// perform raw (unformatted) asynchronous network packet I/O.
///
struct _EFI_MANAGED_NETWORK_PROTOCOL {

View File

@@ -5,13 +5,13 @@
Initialization (INIT) events, and Platform Management Interrupt (PMI) events
on an Intel Itanium Processor Family based system.
Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
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,
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/

View File

@@ -3,14 +3,14 @@
This code abstracts the DXE core to provide delay services.
Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
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
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
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.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
@@ -29,17 +29,17 @@
typedef struct _EFI_METRONOME_ARCH_PROTOCOL EFI_METRONOME_ARCH_PROTOCOL;
/**
The WaitForTick() function waits for the number of ticks specified by
TickNumber from a known time source in the platform. If TickNumber of
ticks are detected, then EFI_SUCCESS is returned. The actual time passed
between entry of this function and the first tick is between 0 and
TickPeriod 100 nS units. If you want to guarantee that at least TickPeriod
time has elapsed, wait for two ticks. This function waits for a hardware
event to determine when a tick occurs. It is possible for interrupt
processing, or exception processing to interrupt the execution of the
WaitForTick() function. Depending on the hardware source for the ticks, it
is possible for a tick to be missed. This function cannot guarantee that
ticks will not be missed. If a timeout occurs waiting for the specified
The WaitForTick() function waits for the number of ticks specified by
TickNumber from a known time source in the platform. If TickNumber of
ticks are detected, then EFI_SUCCESS is returned. The actual time passed
between entry of this function and the first tick is between 0 and
TickPeriod 100 nS units. If you want to guarantee that at least TickPeriod
time has elapsed, wait for two ticks. This function waits for a hardware
event to determine when a tick occurs. It is possible for interrupt
processing, or exception processing to interrupt the execution of the
WaitForTick() function. Depending on the hardware source for the ticks, it
is possible for a tick to be missed. This function cannot guarantee that
ticks will not be missed. If a timeout occurs waiting for the specified
number of ticks, then EFI_TIMEOUT is returned.
@param This The EFI_METRONOME_ARCH_PROTOCOL instance.
@@ -50,7 +50,7 @@ typedef struct _EFI_METRONOME_ARCH_PROTOCOL EFI_METRONOME_ARCH_PROTOCOL;
@retval EFI_TIMEOUT A timeout occurred waiting for the specified number of ticks.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *EFI_METRONOME_WAIT_FOR_TICK)(
IN EFI_METRONOME_ARCH_PROTOCOL *This,
@@ -59,18 +59,18 @@ EFI_STATUS
///
/// This protocol provides access to a known time source in the platform to the
/// core. The core uses this known time source to produce core services that
/// require calibrated delays.
/// core. The core uses this known time source to produce core services that
/// require calibrated delays.
///
struct _EFI_METRONOME_ARCH_PROTOCOL {
EFI_METRONOME_WAIT_FOR_TICK WaitForTick;
///
/// The period of platform's known time source in 100 nS units.
/// This value on any platform must be at least 10 uS, and must not
/// exceed 200 uS. The value in this field is a constant that must
/// not be modified after the Metronome architectural protocol is
/// installed. All consumers must treat this as a read-only field.
/// The period of platform's known time source in 100 nS units.
/// This value on any platform must be at least 10 uS, and must not
/// exceed 200 uS. The value in this field is a constant that must
/// not be modified after the Metronome architectural protocol is
/// installed. All consumers must treat this as a read-only field.
///
UINT32 TickPeriod;
};

View File

@@ -3,14 +3,14 @@
This code provides the services required to access the system's monotonic counter
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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.
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.
**/
@@ -22,7 +22,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
///
#define EFI_MONOTONIC_COUNTER_ARCH_PROTOCOL_GUID \
{0x1da97072, 0xbddc, 0x4b30, {0x99, 0xf1, 0x72, 0xa0, 0xb5, 0x6f, 0xff, 0x2a} }
extern EFI_GUID gEfiMonotonicCounterArchProtocolGuid;
#endif

View File

@@ -1,13 +1,13 @@
/** @file
EFI Multicast Trivial File Transfer Protocol Definition
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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,
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.
@par Revision Reference:

View File

@@ -1,7 +1,7 @@
/** @file
EFI Network Interface Identifier Protocol.
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
The full text of the license may be found at
@@ -74,8 +74,8 @@ struct _EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL {
UINT8 MajorVer; ///< Major version number.
UINT8 MinorVer; ///< Minor version number.
BOOLEAN Ipv6Supported; ///< TRUE if the network interface supports IPv6; otherwise FALSE.
UINT16 IfNum; ///< The network interface number that is being identified by this Network
///< Interface Identifier Protocol. This field must be less than or
UINT16 IfNum; ///< The network interface number that is being identified by this Network
///< Interface Identifier Protocol. This field must be less than or
///< equal to the (IFcnt | IFcntExt <<8 ) fields in the !PXE structure.
};
@@ -109,7 +109,7 @@ struct undiconfig_table {
struct {
VOID *NII_InterfacePointer; ///< Pointer to the NII interface structure.
VOID *DevicePathPointer; ///< Pointer to the device path for this NIC.
} NII_entry[1];
} NII_entry[1];
};
extern EFI_GUID gEfiNetworkInterfaceIdentifierProtocolGuid;

View File

@@ -3,7 +3,7 @@
NVM Express controller or to a specific namespace in a NVM Express controller.
This protocol interface is optimized for storage.
Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.<BR>
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
@@ -132,7 +132,7 @@ typedef struct {
@param[in] Event If non-blocking I/O is not supported then Event is ignored, and blocking I/O is performed.
If Event is NULL, then blocking I/O is performed. If Event is not NULL and non-blocking I/O
is supported, then non-blocking I/O is performed, and Event will be signaled when the NVM
Express Command Packet completes.
Express Command Packet completes.
@retval EFI_SUCCESS The NVM Express Command Packet was sent by the host. TransferLength bytes were transferred
to, or from DataBuffer.
@@ -162,7 +162,7 @@ EFI_STATUS
Used to retrieve the next namespace ID for this NVM Express controller.
The EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL.GetNextNamespace() function retrieves the next valid
namespace ID on this NVM Express controller.
namespace ID on this NVM Express controller.
If on input the value pointed to by NamespaceId is 0xFFFFFFFF, then the first valid namespace
ID defined on the NVM Express controller is returned in the location pointed to by NamespaceId
@@ -206,7 +206,7 @@ EFI_STATUS
If the NamespaceId is not valid, then EFI_NOT_FOUND is returned.
If DevicePath is NULL, then EFI_INVALID_PARAMETER is returned.
If DevicePath is NULL, then EFI_INVALID_PARAMETER is returned.
If there are not enough resources to allocate the device path node, then EFI_OUT_OF_RESOURCES is returned.

View File

@@ -2,18 +2,18 @@
Native Platform Configuration Database (PCD) Protocol
Different with the EFI_PCD_PROTOCOL defined in PI 1.2 specification, the native
PCD protocol provide interfaces for dynamic and dynamic-ex type PCD.
PCD protocol provide interfaces for dynamic and dynamic-ex type PCD.
The interfaces in dynamic type PCD do not require the token space guid as parameter,
but interfaces in dynamic-ex type PCD require token space guid as parameter.
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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.
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.
**/
@@ -31,26 +31,26 @@ extern EFI_GUID gPcdProtocolGuid;
/**
Sets the SKU value for subsequent calls to set or get PCD token values.
SetSku() sets the SKU Id to be used for subsequent calls to set or get PCD values.
SetSku() sets the SKU Id to be used for subsequent calls to set or get PCD values.
SetSku() is normally called only once by the system.
For each item (token), the database can hold a single value that applies to all SKUs,
or multiple values, where each value is associated with a specific SKU Id. Items with multiple,
SKU-specific values are called SKU enabled.
The SKU Id of zero is reserved as a default. The valid SkuId range is 1 to 255.
For tokens that are not SKU enabled, the system ignores any set SKU Id and works with the
single value for that token. For SKU-enabled tokens, the system will use the SKU Id set by the
last call to SetSku(). If no SKU Id is set or the currently set SKU Id isn't valid for the specified token,
the system uses the default SKU Id. If the system attempts to use the default SKU Id and no value has been
For each item (token), the database can hold a single value that applies to all SKUs,
or multiple values, where each value is associated with a specific SKU Id. Items with multiple,
SKU-specific values are called SKU enabled.
The SKU Id of zero is reserved as a default. The valid SkuId range is 1 to 255.
For tokens that are not SKU enabled, the system ignores any set SKU Id and works with the
single value for that token. For SKU-enabled tokens, the system will use the SKU Id set by the
last call to SetSku(). If no SKU Id is set or the currently set SKU Id isn't valid for the specified token,
the system uses the default SKU Id. If the system attempts to use the default SKU Id and no value has been
set for that Id, the results are unpredictable.
@param[in] SkuId The SKU value that will be used when the PCD service will retrieve and
@param[in] SkuId The SKU value that will be used when the PCD service will retrieve and
set values associated with a PCD token.
**/
typedef
typedef
VOID
(EFIAPI *PCD_PROTOCOL_SET_SKU)(
IN UINTN SkuId
@@ -61,13 +61,13 @@ VOID
/**
Retrieves an 8-bit value for a given PCD token.
Retrieves the current byte-sized value for a PCD token number.
Retrieves the current byte-sized value for a PCD token number.
If the TokenNumber is invalid, the results are unpredictable.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@return The UINT8 value.
**/
typedef
UINT8
@@ -80,13 +80,13 @@ UINT8
/**
Retrieves a 16-bit value for a given PCD token.
Retrieves the current 16-bit value for a PCD token number.
Retrieves the current 16-bit value for a PCD token number.
If the TokenNumber is invalid, the results are unpredictable.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@return The UINT16 value.
**/
typedef
UINT16
@@ -99,13 +99,13 @@ UINT16
/**
Retrieves a 32-bit value for a given PCD token.
Retrieves the current 32-bit value for a PCD token number.
Retrieves the current 32-bit value for a PCD token number.
If the TokenNumber is invalid, the results are unpredictable.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@return The UINT32 value.
**/
typedef
UINT32
@@ -118,13 +118,13 @@ UINT32
/**
Retrieves a 64-bit value for a given PCD token.
Retrieves the current 64-bit value for a PCD token number.
Retrieves the current 64-bit value for a PCD token number.
If the TokenNumber is invalid, the results are unpredictable.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@return The UINT64 value.
**/
typedef
UINT64
@@ -137,15 +137,15 @@ UINT64
/**
Retrieves a pointer to a value for a given PCD token.
Retrieves the current pointer to the buffer for a PCD token number.
Do not make any assumptions about the alignment of the pointer that
is returned by this function call. If the TokenNumber is invalid,
Retrieves the current pointer to the buffer for a PCD token number.
Do not make any assumptions about the alignment of the pointer that
is returned by this function call. If the TokenNumber is invalid,
the results are unpredictable.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@return The pointer to the buffer to be retrived.
**/
typedef
VOID *
@@ -158,15 +158,15 @@ VOID *
/**
Retrieves a Boolean value for a given PCD token.
Retrieves the current boolean value for a PCD token number.
Do not make any assumptions about the alignment of the pointer that
is returned by this function call. If the TokenNumber is invalid,
Retrieves the current boolean value for a PCD token number.
Do not make any assumptions about the alignment of the pointer that
is returned by this function call. If the TokenNumber is invalid,
the results are unpredictable.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@return The Boolean value.
**/
typedef
BOOLEAN
@@ -179,13 +179,13 @@ BOOLEAN
/**
Retrieves the size of the value for a given PCD token.
Retrieves the current size of a particular PCD token.
Retrieves the current size of a particular PCD token.
If the TokenNumber is invalid, the results are unpredictable.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@return The size of the value for the PCD token.
**/
typedef
UINTN
@@ -198,16 +198,16 @@ UINTN
/**
Retrieves an 8-bit value for a given PCD token.
Retrieves the 8-bit value of a particular PCD token.
Retrieves the 8-bit value of a particular PCD token.
If the TokenNumber is invalid or the token space
specified by Guid does not exist, the results are
specified by Guid does not exist, the results are
unpredictable.
@param[in] Guid The token space for the token number.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@return The size 8-bit value for the PCD token.
**/
typedef
UINT8
@@ -221,16 +221,16 @@ UINT8
/**
Retrieves a 16-bit value for a given PCD token.
Retrieves the 16-bit value of a particular PCD token.
Retrieves the 16-bit value of a particular PCD token.
If the TokenNumber is invalid or the token space
specified by Guid does not exist, the results are
specified by Guid does not exist, the results are
unpredictable.
@param[in] Guid The token space for the token number.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@return The size 16-bit value for the PCD token.
**/
typedef
UINT16
@@ -244,16 +244,16 @@ UINT16
/**
Retrieves a 32-bit value for a given PCD token.
Retrieves the 32-bit value of a particular PCD token.
Retrieves the 32-bit value of a particular PCD token.
If the TokenNumber is invalid or the token space
specified by Guid does not exist, the results are
specified by Guid does not exist, the results are
unpredictable.
@param[in] Guid The token space for the token number.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@return The size 32-bit value for the PCD token.
**/
typedef
UINT32
@@ -267,16 +267,16 @@ UINT32
/**
Retrieves an 64-bit value for a given PCD token.
Retrieves the 64-bit value of a particular PCD token.
Retrieves the 64-bit value of a particular PCD token.
If the TokenNumber is invalid or the token space
specified by Guid does not exist, the results are
specified by Guid does not exist, the results are
unpredictable.
@param[in] Guid The token space for the token number.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@return The size 64-bit value for the PCD token.
**/
typedef
UINT64
@@ -290,16 +290,16 @@ UINT64
/**
Retrieves a pointer to a value for a given PCD token.
Retrieves the current pointer to the buffer for a PCD token number.
Do not make any assumptions about the alignment of the pointer that
is returned by this function call. If the TokenNumber is invalid,
Retrieves the current pointer to the buffer for a PCD token number.
Do not make any assumptions about the alignment of the pointer that
is returned by this function call. If the TokenNumber is invalid,
the results are unpredictable.
@param[in] Guid The token space for the token number.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@return The pointer to the buffer to be retrieved.
**/
typedef
VOID *
@@ -313,16 +313,16 @@ VOID *
/**
Retrieves a Boolean value for a given PCD token.
Retrieves the Boolean value of a particular PCD token.
Retrieves the Boolean value of a particular PCD token.
If the TokenNumber is invalid or the token space
specified by Guid does not exist, the results are
specified by Guid does not exist, the results are
unpredictable.
@param[in] Guid The token space for the token number.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@return The size Boolean value for the PCD token.
**/
typedef
BOOLEAN
@@ -336,14 +336,14 @@ BOOLEAN
/**
Retrieves the size of the value for a given PCD token.
Retrieves the current size of a particular PCD token.
Retrieves the current size of a particular PCD token.
If the TokenNumber is invalid, the results are unpredictable.
@param[in] Guid The token space for the token number.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@return The size of the value for the PCD token.
**/
typedef
UINTN
@@ -357,19 +357,19 @@ UINTN
/**
Sets an 8-bit value for a given PCD token.
When the PCD service sets a value, it will check to ensure that the
size of the value being set is compatible with the Token's existing definition.
When the PCD service sets a value, it will check to ensure that the
size of the value being set is compatible with the Token's existing definition.
If it is not, an error will be returned.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@param[in] Value The value to set for the PCD token.
@retval EFI_SUCCESS The procedure returned successfully.
@retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data
being set was incompatible with a call to this function.
@retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data
being set was incompatible with a call to this function.
Use GetSize() to retrieve the size of the target data.
@retval EFI_NOT_FOUND The PCD service could not find the requested token number.
**/
typedef
EFI_STATUS
@@ -383,19 +383,19 @@ EFI_STATUS
/**
Sets a 16-bit value for a given PCD token.
When the PCD service sets a value, it will check to ensure that the
size of the value being set is compatible with the Token's existing definition.
When the PCD service sets a value, it will check to ensure that the
size of the value being set is compatible with the Token's existing definition.
If it is not, an error will be returned.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@param[in] Value The value to set for the PCD token.
@retval EFI_SUCCESS The procedure returned successfully.
@retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data
being set was incompatible with a call to this function.
@retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data
being set was incompatible with a call to this function.
Use GetSize() to retrieve the size of the target data.
@retval EFI_NOT_FOUND The PCD service could not find the requested token number.
**/
typedef
EFI_STATUS
@@ -409,19 +409,19 @@ EFI_STATUS
/**
Sets a 32-bit value for a given PCD token.
When the PCD service sets a value, it will check to ensure that the
size of the value being set is compatible with the Token's existing definition.
When the PCD service sets a value, it will check to ensure that the
size of the value being set is compatible with the Token's existing definition.
If it is not, an error will be returned.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@param[in] Value The value to set for the PCD token.
@retval EFI_SUCCESS The procedure returned successfully.
@retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data
being set was incompatible with a call to this function.
@retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data
being set was incompatible with a call to this function.
Use GetSize() to retrieve the size of the target data.
@retval EFI_NOT_FOUND The PCD service could not find the requested token number.
**/
typedef
EFI_STATUS
@@ -435,19 +435,19 @@ EFI_STATUS
/**
Sets a 64-bit value for a given PCD token.
When the PCD service sets a value, it will check to ensure that the
size of the value being set is compatible with the Token's existing definition.
When the PCD service sets a value, it will check to ensure that the
size of the value being set is compatible with the Token's existing definition.
If it is not, an error will be returned.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@param[in] Value The value to set for the PCD token.
@retval EFI_SUCCESS The procedure returned successfully.
@retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data
being set was incompatible with a call to this function.
@retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data
being set was incompatible with a call to this function.
Use GetSize() to retrieve the size of the target data.
@retval EFI_NOT_FOUND The PCD service could not find the requested token number.
**/
typedef
EFI_STATUS
@@ -461,23 +461,23 @@ EFI_STATUS
/**
Sets a value of a specified size for a given PCD token.
When the PCD service sets a value, it will check to ensure that the
size of the value being set is compatible with the Token's existing definition.
When the PCD service sets a value, it will check to ensure that the
size of the value being set is compatible with the Token's existing definition.
If it is not, an error will be returned.
@param[in] TokenNumber The PCD token number.
@param[in, out] SizeOfBuffer A pointer to the length of the value being set for the PCD token.
On input, if the SizeOfValue is greater than the maximum size supported
for this TokenNumber then the output value of SizeOfValue will reflect
@param[in] TokenNumber The PCD token number.
@param[in, out] SizeOfBuffer A pointer to the length of the value being set for the PCD token.
On input, if the SizeOfValue is greater than the maximum size supported
for this TokenNumber then the output value of SizeOfValue will reflect
the maximum size supported for this TokenNumber.
@param[in] Buffer The buffer to set for the PCD token.
@retval EFI_SUCCESS The procedure returned successfully.
@retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data
being set was incompatible with a call to this function.
@retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data
being set was incompatible with a call to this function.
Use GetSize() to retrieve the size of the target data.
@retval EFI_NOT_FOUND The PCD service could not find the requested token number.
**/
typedef
EFI_STATUS
@@ -492,19 +492,19 @@ EFI_STATUS
/**
Sets a Boolean value for a given PCD token.
When the PCD service sets a value, it will check to ensure that the
size of the value being set is compatible with the Token's existing definition.
When the PCD service sets a value, it will check to ensure that the
size of the value being set is compatible with the Token's existing definition.
If it is not, an error will be returned.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@param[in] Value The value to set for the PCD token.
@retval EFI_SUCCESS The procedure returned successfully.
@retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data
being set was incompatible with a call to this function.
@retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data
being set was incompatible with a call to this function.
Use GetSize() to retrieve the size of the target data.
@retval EFI_NOT_FOUND The PCD service could not find the requested token number.
**/
typedef
EFI_STATUS
@@ -518,20 +518,20 @@ EFI_STATUS
/**
Sets an 8-bit value for a given PCD token.
When the PCD service sets a value, it will check to ensure that the
size of the value being set is compatible with the Token's existing definition.
When the PCD service sets a value, it will check to ensure that the
size of the value being set is compatible with the Token's existing definition.
If it is not, an error will be returned.
@param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@param[in] Value The value to set for the PCD token.
@retval EFI_SUCCESS The procedure returned successfully.
@retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data
being set was incompatible with a call to this function.
@retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data
being set was incompatible with a call to this function.
Use GetSize() to retrieve the size of the target data.
@retval EFI_NOT_FOUND The PCD service could not find the requested token number.
**/
typedef
EFI_STATUS
@@ -546,20 +546,20 @@ EFI_STATUS
/**
Sets an 16-bit value for a given PCD token.
When the PCD service sets a value, it will check to ensure that the
size of the value being set is compatible with the Token's existing definition.
When the PCD service sets a value, it will check to ensure that the
size of the value being set is compatible with the Token's existing definition.
If it is not, an error will be returned.
@param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@param[in] Value The value to set for the PCD token.
@retval EFI_SUCCESS The procedure returned successfully.
@retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data
being set was incompatible with a call to this function.
@retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data
being set was incompatible with a call to this function.
Use GetSize() to retrieve the size of the target data.
@retval EFI_NOT_FOUND The PCD service could not find the requested token number.
**/
typedef
EFI_STATUS
@@ -574,20 +574,20 @@ EFI_STATUS
/**
Sets a 32-bit value for a given PCD token.
When the PCD service sets a value, it will check to ensure that the
size of the value being set is compatible with the Token's existing definition.
When the PCD service sets a value, it will check to ensure that the
size of the value being set is compatible with the Token's existing definition.
If it is not, an error will be returned.
@param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@param[in] Value The value to set for the PCD token.
@retval EFI_SUCCESS The procedure returned successfully.
@retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data
being set was incompatible with a call to this function.
@retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data
being set was incompatible with a call to this function.
Use GetSize() to retrieve the size of the target data.
@retval EFI_NOT_FOUND The PCD service could not find the requested token number.
**/
typedef
EFI_STATUS
@@ -602,20 +602,20 @@ EFI_STATUS
/**
Sets a 64-bit value for a given PCD token.
When the PCD service sets a value, it will check to ensure that the
size of the value being set is compatible with the Token's existing definition.
When the PCD service sets a value, it will check to ensure that the
size of the value being set is compatible with the Token's existing definition.
If it is not, an error will be returned.
@param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@param[in] Value The value to set for the PCD token.
@retval EFI_SUCCESS The procedure returned successfully.
@retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data
being set was incompatible with a call to this function.
@retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data
being set was incompatible with a call to this function.
Use GetSize() to retrieve the size of the target data.
@retval EFI_NOT_FOUND The PCD service could not find the requested token number.
**/
typedef
EFI_STATUS
@@ -630,24 +630,24 @@ EFI_STATUS
/**
Sets a value of a specified size for a given PCD token.
When the PCD service sets a value, it will check to ensure that the
size of the value being set is compatible with the Token's existing definition.
When the PCD service sets a value, it will check to ensure that the
size of the value being set is compatible with the Token's existing definition.
If it is not, an error will be returned.
@param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value.
@param[in] TokenNumber The PCD token number.
@param[in, out] SizeOfBuffer A pointer to the length of the value being set for the PCD token.
On input, if the SizeOfValue is greater than the maximum size supported
for this TokenNumber then the output value of SizeOfValue will reflect
@param[in] TokenNumber The PCD token number.
@param[in, out] SizeOfBuffer A pointer to the length of the value being set for the PCD token.
On input, if the SizeOfValue is greater than the maximum size supported
for this TokenNumber then the output value of SizeOfValue will reflect
the maximum size supported for this TokenNumber.
@param[in] Buffer The buffer to set for the PCD token.
@retval EFI_SUCCESS The procedure returned successfully.
@retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data
being set was incompatible with a call to this function.
@retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data
being set was incompatible with a call to this function.
Use GetSize() to retrieve the size of the target data.
@retval EFI_NOT_FOUND The PCD service could not find the requested token number.
**/
typedef
EFI_STATUS
@@ -663,20 +663,20 @@ EFI_STATUS
/**
Sets a Boolean value for a given PCD token.
When the PCD service sets a value, it will check to ensure that the
size of the value being set is compatible with the Token's existing definition.
When the PCD service sets a value, it will check to ensure that the
size of the value being set is compatible with the Token's existing definition.
If it is not, an error will be returned.
@param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@param[in] Value The value to set for the PCD token.
@retval EFI_SUCCESS The procedure returned successfully.
@retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data
being set was incompatible with a call to this function.
@retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data
being set was incompatible with a call to this function.
Use GetSize() to retrieve the size of the target data.
@retval EFI_NOT_FOUND The PCD service could not find the requested token number.
**/
typedef
EFI_STATUS
@@ -685,18 +685,18 @@ EFI_STATUS
IN UINTN TokenNumber,
IN BOOLEAN Value
);
/**
Callback on SET function prototype definition.
This notification function serves two purposes.
Firstly, it notifies the module which did the registration that the value
of this PCD token has been set. Secondly, it provides a mechanism for the
module that did the registration to intercept the set operation and override
the value that has been set, if necessary. After the invocation of the callback function,
TokenData will be used by PCD service DXE driver to modify the internal data in
This notification function serves two purposes.
Firstly, it notifies the module which did the registration that the value
of this PCD token has been set. Secondly, it provides a mechanism for the
module that did the registration to intercept the set operation and override
the value that has been set, if necessary. After the invocation of the callback function,
TokenData will be used by PCD service DXE driver to modify the internal data in
PCD database.
@param[in] CallBackGuid The PCD token GUID being set.
@@ -721,11 +721,11 @@ VOID
/**
Specifies a function to be called anytime the value of a designated token is changed.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value.
@param[in] CallBackFunction The function prototype called when the value associated with the CallBackToken is set.
@param[in] CallBackFunction The function prototype called when the value associated with the CallBackToken is set.
@retval EFI_SUCCESS The PCD service has successfully established a call event
@retval EFI_SUCCESS The PCD service has successfully established a call event
for the CallBackToken requested.
@retval EFI_NOT_FOUND The PCD service could not find the referenced token number.
@@ -743,11 +743,11 @@ EFI_STATUS
/**
Cancels a previously set callback function for a particular PCD token number.
@param[in] TokenNumber The PCD token number.
@param[in] TokenNumber The PCD token number.
@param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value.
@param[in] CallBackFunction The function prototype called when the value associated with the CallBackToken is set.
@param[in] CallBackFunction The function prototype called when the value associated with the CallBackToken is set.
@retval EFI_SUCCESS The PCD service has successfully established a call event
@retval EFI_SUCCESS The PCD service has successfully established a call event
for the CallBackToken requested.
@retval EFI_NOT_FOUND The PCD service could not find the referenced token number.
@@ -763,32 +763,32 @@ EFI_STATUS
/**
Retrieves the next valid token number in a given namespace.
This is useful since the PCD infrastructure contains a sparse list of token numbers,
Retrieves the next valid token number in a given namespace.
This is useful since the PCD infrastructure contains a sparse list of token numbers,
and one cannot a priori know what token numbers are valid in the database.
If TokenNumber is 0 and Guid is not NULL, then the first token from the token space specified by Guid is returned.
If TokenNumber is not 0 and Guid is not NULL, then the next token in the token space specified by Guid is returned.
If TokenNumber is 0 and Guid is NULL, then the first token in the default token space is returned.
If TokenNumber is not 0 and Guid is NULL, then the next token in the default token space is returned.
The token numbers in the default token space may not be related to token numbers in token spaces that are named by Guid.
If the next token number can be retrieved, then it is returned in TokenNumber, and EFI_SUCCESS is returned.
If TokenNumber represents the last token number in the token space specified by Guid, then EFI_NOT_FOUND is returned.
If TokenNumber is 0 and Guid is not NULL, then the first token from the token space specified by Guid is returned.
If TokenNumber is not 0 and Guid is not NULL, then the next token in the token space specified by Guid is returned.
If TokenNumber is 0 and Guid is NULL, then the first token in the default token space is returned.
If TokenNumber is not 0 and Guid is NULL, then the next token in the default token space is returned.
The token numbers in the default token space may not be related to token numbers in token spaces that are named by Guid.
If the next token number can be retrieved, then it is returned in TokenNumber, and EFI_SUCCESS is returned.
If TokenNumber represents the last token number in the token space specified by Guid, then EFI_NOT_FOUND is returned.
If TokenNumber is not present in the token space specified by Guid, then EFI_NOT_FOUND is returned.
@param[in] Guid The 128-bit unique value that designates the namespace from which to retrieve the next token.
This is an optional parameter that may be NULL. If this parameter is NULL, then a request is
@param[in] Guid The 128-bit unique value that designates the namespace from which to retrieve the next token.
This is an optional parameter that may be NULL. If this parameter is NULL, then a request is
being made to retrieve tokens from the default token space.
@param[in,out] TokenNumber
A pointer to the PCD token number to use to find the subsequent token number.
@param[in,out] TokenNumber
A pointer to the PCD token number to use to find the subsequent token number.
@retval EFI_SUCCESS The PCD service has retrieved the next valid token number.
@retval EFI_NOT_FOUND The PCD service could not find data from the requested token number.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *PCD_PROTOCOL_GET_NEXT_TOKEN)(
IN CONST EFI_GUID *Guid, OPTIONAL
@@ -813,7 +813,7 @@ EFI_STATUS
@retval EFI_NOT_FOUND The PCD service could not find the next valid token namespace.
**/
typedef
typedef
EFI_STATUS
(EFIAPI *PCD_PROTOCOL_GET_NEXT_TOKENSPACE)(
IN OUT CONST EFI_GUID **Guid

View File

@@ -4,11 +4,11 @@
The protocol that provides additional information about items that reside in the PCD database.
Different with the EFI_GET_PCD_INFO_PROTOCOL defined in PI 1.2.1 specification,
the native PCD INFO PROTOCOL provide interfaces for dynamic and dynamic-ex type PCD.
the native PCD INFO PROTOCOL provide interfaces for dynamic and dynamic-ex type PCD.
The interfaces for dynamic type PCD do not require the token space guid as parameter,
but interfaces for dynamic-ex type PCD require token space guid as parameter.
Copyright (c) 2013, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.<BR>
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

View File

@@ -1,21 +1,21 @@
/** @file
This file declares PCI Host Bridge Resource Allocation Protocol which
provides the basic interfaces to abstract a PCI host bridge resource allocation.
This file declares PCI Host Bridge Resource Allocation Protocol which
provides the basic interfaces to abstract a PCI host bridge resource allocation.
This protocol is mandatory if the system includes PCI devices.
Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that 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,
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.
@par Revision Reference:
This Protocol is defined in UEFI Platform Initialization Specification 1.2
This Protocol is defined in UEFI Platform Initialization Specification 1.2
Volume 5: Standards.
**/
#ifndef _PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_H_
@@ -56,14 +56,14 @@ typedef struct _EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL EFI_PCI_HOST_BR
#define EFI_PCI_HOST_BRIDGE_MEM64_DECODE 2
///
/// A UINT64 value that contains the status of a PCI resource requested
/// A UINT64 value that contains the status of a PCI resource requested
/// in the Configuration parameter returned by GetProposedResources()
/// The legal values are EFI_RESOURCE_SATISFIED and EFI_RESOURCE_NOT_SATISFIED
///
typedef UINT64 EFI_RESOURCE_ALLOCATION_STATUS;
///
/// The request of this resource type could be fulfilled. Used in the
/// The request of this resource type could be fulfilled. Used in the
/// Configuration parameter returned by GetProposedResources() to identify
/// a PCI resources request that can be satisfied.
///
@@ -71,7 +71,7 @@ typedef UINT64 EFI_RESOURCE_ALLOCATION_STATUS;
///
/// The request of this resource type could not be fulfilled for its
/// absence in the host bridge resource pool. Used in the Configuration parameter
/// absence in the host bridge resource pool. Used in the Configuration parameter
/// returned by GetProposedResources() to identify a PCI resources request that
/// can not be satisfied.
///
@@ -92,45 +92,45 @@ typedef enum {
///
/// The bus allocation phase is about to begin. No specific action
/// is required here. This notification can be used to perform any
/// chipset specific programming.
/// chipset specific programming.
///
EfiPciHostBridgeBeginBusAllocation,
///
/// The bus allocation and bus programming phase is complete. No specific
/// action is required here. This notification can be used to perform any
/// chipset specific programming.
/// chipset specific programming.
///
EfiPciHostBridgeEndBusAllocation,
///
/// The resource allocation phase is about to begin.No specific action is
/// required here. This notification can be used to perform any chipset specific programming.
/// required here. This notification can be used to perform any chipset specific programming.
///
EfiPciHostBridgeBeginResourceAllocation,
///
/// Allocate resources per previously submitted requests for all the PCI Root
/// Bridges. These resource settings are returned on the next call to
/// GetProposedResources().
/// GetProposedResources().
///
EfiPciHostBridgeAllocateResources,
///
/// Program the Host Bridge hardware to decode previously allocated resources
/// (proposed resources) for all the PCI Root Bridges.
///
EfiPciHostBridgeSetResources,
///
/// De-allocate previously allocated resources previously for all the PCI
/// Root Bridges and reset the I/O and memory apertures to initial state.
/// Root Bridges and reset the I/O and memory apertures to initial state.
///
EfiPciHostBridgeFreeResources,
///
/// The resource allocation phase is completed. No specific action is required
/// here. This notification can be used to perform any chipset specific programming.
/// here. This notification can be used to perform any chipset specific programming.
///
EfiPciHostBridgeEndResourceAllocation,
@@ -158,30 +158,30 @@ typedef enum {
///
/// This notification is sent before the PCI enumerator probes BAR registers
/// for every valid PCI function.
/// for every valid PCI function.
///
EfiPciBeforeResourceCollection
} EFI_PCI_CONTROLLER_RESOURCE_ALLOCATION_PHASE;
/**
These are the notifications from the PCI bus driver that it is about to enter a certain phase of the PCI
These are the notifications from the PCI bus driver that it is about to enter a certain phase of the PCI
enumeration process.
@param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL
@param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL
instance.
@param[in] Phase The phase during enumeration.
@retval EFI_SUCCESS The notification was accepted without any errors.
@retval EFI_INVALID_PARAMETER The Phase is invalid.
@retval EFI_NOT_READY This phase cannot be entered at this time. For example, this error
is valid for a Phase of EfiPciHostBridgeAllocateResources if
SubmitResources() has not been called for one or more
@retval EFI_NOT_READY This phase cannot be entered at this time. For example, this error
is valid for a Phase of EfiPciHostBridgeAllocateResources if
SubmitResources() has not been called for one or more
PCI root bridges before this call.
@retval EFI_DEVICE_ERROR Programming failed due to a hardware error. This error is valid for
@retval EFI_DEVICE_ERROR Programming failed due to a hardware error. This error is valid for
a Phase of EfiPciHostBridgeSetResources.
@retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.
@retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.
This error is valid for a Phase of EfiPciHostBridgeAllocateResources
if the previously submitted resource requests cannot be fulfilled or were only
if the previously submitted resource requests cannot be fulfilled or were only
partially fulfilled
**/
@@ -195,15 +195,15 @@ EFI_STATUS
/**
Returns the device handle of the next PCI root bridge that is associated with this host bridge.
@param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL
@param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL
instance.
@param[in,out] RootBridgeHandle Returns the device handle of the next PCI root bridge. On input, it holds the
RootBridgeHandle that was returned by the most recent call to
GetNextRootBridge(). If RootBridgeHandle is NULL on input, the handle
@param[in,out] RootBridgeHandle Returns the device handle of the next PCI root bridge. On input, it holds the
RootBridgeHandle that was returned by the most recent call to
GetNextRootBridge(). If RootBridgeHandle is NULL on input, the handle
for the first PCI root bridge is returned.
@retval EFI_SUCCESS The requested attribute information was returned.
@retval EFI_INVALID_PARAMETER RootBridgeHandle is not an EFI_HANDLE that was returned
@retval EFI_INVALID_PARAMETER RootBridgeHandle is not an EFI_HANDLE that was returned
on a previous call to GetNextRootBridge().
@retval EFI_NOT_FOUND There are no more PCI root bridge device handles.
@@ -218,7 +218,7 @@ EFI_STATUS
/**
Returns the allocation attributes of a PCI root bridge.
@param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL
@param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL
instance.
@param[in] RootBridgeHandle The device handle of the PCI root bridge in which the caller is interested.
@param[out] Attribute The pointer to attributes of the PCI root bridge.
@@ -239,12 +239,12 @@ EFI_STATUS
/**
Sets up the specified PCI root bridge for the bus enumeration process.
@param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL
@param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL
instance.
@param[in] RootBridgeHandle The PCI root bridge to be set up.
@param[out] Configuration The pointer to the pointer to the PCI bus resource descriptor.
@retval EFI_SUCCESS The PCI root bridge was set up and the bus range was returned in
@retval EFI_SUCCESS The PCI root bridge was set up and the bus range was returned in
Configuration.
@retval EFI_INVALID_PARAMETER RootBridgeHandle is not a valid root bridge handle.
@retval EFI_DEVICE_ERROR Programming failed due to a hardware error.
@@ -263,20 +263,20 @@ EFI_STATUS
Programs the PCI root bridge hardware so that it decodes the specified PCI bus range.
@param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL
instance.
instance.
@param[in] RootBridgeHandle The PCI root bridge whose bus range is to be programmed.
@param[in] Configuration The pointer to the PCI bus resource descriptor.
@retval EFI_SUCCESS The bus range for the PCI root bridge was programmed.
@retval EFI_INVALID_PARAMETER RootBridgeHandle is not a valid root bridge handle.
@retval EFI_INVALID_PARAMETER Configuration is NULL
@retval EFI_INVALID_PARAMETER Configuration does not point to a valid ACPI (2.0 & 3.0)
@retval EFI_INVALID_PARAMETER Configuration does not point to a valid ACPI (2.0 & 3.0)
resource descriptor.
@retval EFI_INVALID_PARAMETER Configuration does not include a valid ACPI 2.0 bus resource
descriptor.
@retval EFI_INVALID_PARAMETER Configuration includes valid ACPI (2.0 & 3.0) resource
@retval EFI_INVALID_PARAMETER Configuration includes valid ACPI (2.0 & 3.0) resource
descriptors other than bus descriptors.
@retval EFI_INVALID_PARAMETER Configuration contains one or more invalid ACPI resource
@retval EFI_INVALID_PARAMETER Configuration contains one or more invalid ACPI resource
descriptors.
@retval EFI_INVALID_PARAMETER "Address Range Minimum" is invalid for this root bridge.
@retval EFI_INVALID_PARAMETER "Address Range Length" is invalid for this root bridge.
@@ -294,26 +294,26 @@ EFI_STATUS
/**
Submits the I/O and memory resource requirements for the specified PCI root bridge.
@param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL
@param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL
instance.
@param[in] RootBridgeHandle The PCI root bridge whose I/O and memory resource requirements are being
@param[in] RootBridgeHandle The PCI root bridge whose I/O and memory resource requirements are being
submitted.
@param[in] Configuration The pointer to the PCI I/O and PCI memory resource descriptor.
@retval EFI_SUCCESS The I/O and memory resource requests for a PCI root bridge were
@retval EFI_SUCCESS The I/O and memory resource requests for a PCI root bridge were
accepted.
@retval EFI_INVALID_PARAMETER RootBridgeHandle is not a valid root bridge handle.
@retval EFI_INVALID_PARAMETER Configuration is NULL.
@retval EFI_INVALID_PARAMETER Configuration does not point to a valid ACPI (2.0 & 3.0)
@retval EFI_INVALID_PARAMETER Configuration does not point to a valid ACPI (2.0 & 3.0)
resource descriptor.
@retval EFI_INVALID_PARAMETER Configuration includes requests for one or more resource
types that are not supported by this PCI root bridge. This error will
happen if the caller did not combine resources according to
@retval EFI_INVALID_PARAMETER Configuration includes requests for one or more resource
types that are not supported by this PCI root bridge. This error will
happen if the caller did not combine resources according to
Attributes that were returned by GetAllocAttributes().
@retval EFI_INVALID_PARAMETER "Address Range Maximum" is invalid.
@retval EFI_INVALID_PARAMETER "Address Range Length" is invalid for this PCI root bridge.
@retval EFI_INVALID_PARAMETER "Address Space Granularity" is invalid for this PCI root bridge.
**/
typedef
EFI_STATUS
@@ -326,7 +326,7 @@ EFI_STATUS
/**
Returns the proposed resource settings for the specified PCI root bridge.
@param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL
@param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL
instance.
@param[in] RootBridgeHandle The PCI root bridge handle.
@param[out] Configuration The pointer to the pointer to the PCI I/O and memory resource descriptor.
@@ -346,8 +346,8 @@ EFI_STATUS
);
/**
Provides the hooks from the PCI bus driver to every PCI controller (device/function) at various
stages of the PCI enumeration process that allow the host bridge driver to preinitialize individual
Provides the hooks from the PCI bus driver to every PCI controller (device/function) at various
stages of the PCI enumeration process that allow the host bridge driver to preinitialize individual
PCI controllers before enumeration.
@param[in] This The pointer to the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL instance.
@@ -357,10 +357,10 @@ EFI_STATUS
@retval EFI_SUCCESS The requested parameters were returned.
@retval EFI_INVALID_PARAMETER RootBridgeHandle is not a valid root bridge handle.
@retval EFI_INVALID_PARAMETER Phase is not a valid phase that is defined in
@retval EFI_INVALID_PARAMETER Phase is not a valid phase that is defined in
EFI_PCI_CONTROLLER_RESOURCE_ALLOCATION_PHASE.
@retval EFI_DEVICE_ERROR Programming failed due to a hardware error. The PCI enumerator
should not enumerate this device, including its child devices if it is
@retval EFI_DEVICE_ERROR Programming failed due to a hardware error. The PCI enumerator
should not enumerate this device, including its child devices if it is
a PCI-to-PCI bridge.
**/
@@ -382,43 +382,43 @@ struct _EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL {
/// a certain phase during the enumeration process.
///
EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_NOTIFY_PHASE NotifyPhase;
///
/// Retrieves the device handle for the next PCI root bridge that is produced by the
/// host bridge to which this instance of the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL is attached.
/// host bridge to which this instance of the EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL is attached.
///
EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_GET_NEXT_ROOT_BRIDGE GetNextRootBridge;
///
/// Retrieves the allocation-related attributes of a PCI root bridge.
///
EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_GET_ATTRIBUTES GetAllocAttributes;
///
/// Sets up a PCI root bridge for bus enumeration.
///
EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_START_BUS_ENUMERATION StartBusEnumeration;
///
/// Sets up the PCI root bridge so that it decodes a specific range of bus numbers.
///
EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_SET_BUS_NUMBERS SetBusNumbers;
///
/// Submits the resource requirements for the specified PCI root bridge.
///
EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_SUBMIT_RESOURCES SubmitResources;
///
/// Returns the proposed resource assignment for the specified PCI root bridges.
///
EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_GET_PROPOSED_RESOURCES GetProposedResources;
///
/// Provides hooks from the PCI bus driver to every PCI controller
/// (device/function) at various stages of the PCI enumeration process that
/// allow the host bridge driver to preinitialize individual PCI controllers
/// before enumeration.
/// before enumeration.
///
EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL_PREPROCESS_CONTROLLER PreprocessController;
};

Some files were not shown because too many files have changed in this diff Show More