aboutsummaryrefslogtreecommitdiffstats
path: root/MdePkg/Include/Protocol
diff options
context:
space:
mode:
authorMitchell Horne <mhorne@FreeBSD.org>2020-06-03 18:44:51 +0000
committerMitchell Horne <mhorne@FreeBSD.org>2020-06-03 18:44:51 +0000
commit4a14dfcc1110b35118d5be8054fecf59ffb83032 (patch)
tree8bf1574ccba91c926acbe0a05d32482ba8825e26 /MdePkg/Include/Protocol
parent0499b37cea9ca98acfe36368e521ad36b7783f2d (diff)
downloadsrc-4a14dfcc1110b35118d5be8054fecf59ffb83032.tar.gz
src-4a14dfcc1110b35118d5be8054fecf59ffb83032.zip
As with the previous import, only the MdePkg subdirectory has been brought in. The line-endings were also converted using: % find . -type f | xargs -n 1 sed -I.BAK -e `printf "s/\r//g"` % find . -name \*.BAK | xargs rm
Notes
Notes: svn path=/vendor/edk2/dist/; revision=361765 svn path=/vendor/edk2/ca407c7246bf405da6d9b1b9d93e5e7f17b4b1f9/; revision=361766; tag=vendor/edk2/ca407c7246bf405da6d9b1b9d93e5e7f17b4b1f9
Diffstat (limited to 'MdePkg/Include/Protocol')
-rw-r--r--MdePkg/Include/Protocol/AbsolutePointer.h63
-rw-r--r--MdePkg/Include/Protocol/AcpiSystemDescriptionTable.h77
-rw-r--r--MdePkg/Include/Protocol/AcpiTable.h51
-rw-r--r--MdePkg/Include/Protocol/AdapterInformation.h43
-rw-r--r--MdePkg/Include/Protocol/Arp.h114
-rw-r--r--MdePkg/Include/Protocol/AtaPassThru.h71
-rw-r--r--MdePkg/Include/Protocol/AuthenticationInfo.h34
-rw-r--r--MdePkg/Include/Protocol/Bds.h46
-rw-r--r--MdePkg/Include/Protocol/Bis.h328
-rw-r--r--MdePkg/Include/Protocol/BlockIo.h58
-rw-r--r--MdePkg/Include/Protocol/BlockIo2.h34
-rw-r--r--MdePkg/Include/Protocol/BlockIoCrypto.h13
-rw-r--r--MdePkg/Include/Protocol/BluetoothAttribute.h277
-rw-r--r--MdePkg/Include/Protocol/BluetoothConfig.h135
-rw-r--r--MdePkg/Include/Protocol/BluetoothHc.h512
-rw-r--r--MdePkg/Include/Protocol/BluetoothIo.h285
-rw-r--r--MdePkg/Include/Protocol/BluetoothLeConfig.h630
-rw-r--r--MdePkg/Include/Protocol/BootManagerPolicy.h20
-rw-r--r--MdePkg/Include/Protocol/BusSpecificDriverOverride.h20
-rw-r--r--MdePkg/Include/Protocol/Capsule.h24
-rw-r--r--MdePkg/Include/Protocol/ComponentName.h16
-rw-r--r--MdePkg/Include/Protocol/ComponentName2.h26
-rw-r--r--MdePkg/Include/Protocol/Cpu.h58
-rw-r--r--MdePkg/Include/Protocol/CpuIo2.h62
-rw-r--r--MdePkg/Include/Protocol/DebugPort.h46
-rw-r--r--MdePkg/Include/Protocol/DebugSupport.h151
-rw-r--r--MdePkg/Include/Protocol/Decompress.h38
-rw-r--r--MdePkg/Include/Protocol/DeferredImageLoad.h44
-rw-r--r--MdePkg/Include/Protocol/DeviceIo.h90
-rw-r--r--MdePkg/Include/Protocol/DevicePath.h90
-rw-r--r--MdePkg/Include/Protocol/DevicePathFromText.h18
-rw-r--r--MdePkg/Include/Protocol/DevicePathToText.h18
-rw-r--r--MdePkg/Include/Protocol/DevicePathUtilities.h44
-rw-r--r--MdePkg/Include/Protocol/Dhcp4.h70
-rw-r--r--MdePkg/Include/Protocol/Dhcp6.h290
-rw-r--r--MdePkg/Include/Protocol/DiskInfo.h53
-rw-r--r--MdePkg/Include/Protocol/DiskIo.h16
-rw-r--r--MdePkg/Include/Protocol/DiskIo2.h10
-rw-r--r--MdePkg/Include/Protocol/Dns4.h66
-rw-r--r--MdePkg/Include/Protocol/Dns6.h60
-rw-r--r--MdePkg/Include/Protocol/DriverBinding.h108
-rw-r--r--MdePkg/Include/Protocol/DriverConfiguration.h20
-rw-r--r--MdePkg/Include/Protocol/DriverConfiguration2.h16
-rw-r--r--MdePkg/Include/Protocol/DriverDiagnostics.h16
-rw-r--r--MdePkg/Include/Protocol/DriverDiagnostics2.h18
-rw-r--r--MdePkg/Include/Protocol/DriverFamilyOverride.h38
-rw-r--r--MdePkg/Include/Protocol/DriverHealth.h214
-rw-r--r--MdePkg/Include/Protocol/DriverSupportedEfiVersion.h20
-rw-r--r--MdePkg/Include/Protocol/DxeMmReadyToLock.h19
-rw-r--r--MdePkg/Include/Protocol/DxeSmmReadyToLock.h17
-rw-r--r--MdePkg/Include/Protocol/Eap.h70
-rw-r--r--MdePkg/Include/Protocol/EapConfiguration.h12
-rw-r--r--MdePkg/Include/Protocol/EapManagement.h166
-rw-r--r--MdePkg/Include/Protocol/EapManagement2.h8
-rw-r--r--MdePkg/Include/Protocol/Ebc.h20
-rw-r--r--MdePkg/Include/Protocol/EdidActive.h10
-rw-r--r--MdePkg/Include/Protocol/EdidDiscovered.h14
-rw-r--r--MdePkg/Include/Protocol/EdidOverride.h18
-rw-r--r--MdePkg/Include/Protocol/EraseBlock.h8
-rw-r--r--MdePkg/Include/Protocol/ExtendedSalBootService.h214
-rw-r--r--MdePkg/Include/Protocol/ExtendedSalServiceClasses.h275
-rw-r--r--MdePkg/Include/Protocol/FirmwareManagement.h64
-rw-r--r--MdePkg/Include/Protocol/FirmwareVolume2.h114
-rw-r--r--MdePkg/Include/Protocol/FirmwareVolumeBlock.h58
-rw-r--r--MdePkg/Include/Protocol/FormBrowser2.h44
-rw-r--r--MdePkg/Include/Protocol/Ftp4.h274
-rw-r--r--MdePkg/Include/Protocol/GraphicsOutput.h88
-rw-r--r--MdePkg/Include/Protocol/GuidedSectionExtraction.h30
-rw-r--r--MdePkg/Include/Protocol/Hash.h42
-rw-r--r--MdePkg/Include/Protocol/Hash2.h8
-rw-r--r--MdePkg/Include/Protocol/HiiConfigAccess.h55
-rw-r--r--MdePkg/Include/Protocol/HiiConfigKeyword.h104
-rw-r--r--MdePkg/Include/Protocol/HiiConfigRouting.h120
-rw-r--r--MdePkg/Include/Protocol/HiiDatabase.h131
-rw-r--r--MdePkg/Include/Protocol/HiiFont.h47
-rw-r--r--MdePkg/Include/Protocol/HiiImage.h85
-rw-r--r--MdePkg/Include/Protocol/HiiImageDecoder.h20
-rw-r--r--MdePkg/Include/Protocol/HiiImageEx.h91
-rw-r--r--MdePkg/Include/Protocol/HiiPackageList.h12
-rw-r--r--MdePkg/Include/Protocol/HiiPopup.h78
-rw-r--r--MdePkg/Include/Protocol/HiiString.h23
-rw-r--r--MdePkg/Include/Protocol/Http.h41
-rw-r--r--MdePkg/Include/Protocol/HttpBootCallback.h94
-rw-r--r--MdePkg/Include/Protocol/HttpUtilities.h8
-rw-r--r--MdePkg/Include/Protocol/I2cBusConfigurationManagement.h16
-rw-r--r--MdePkg/Include/Protocol/I2cEnumerate.h10
-rw-r--r--MdePkg/Include/Protocol/I2cHost.h14
-rw-r--r--MdePkg/Include/Protocol/I2cIo.h14
-rw-r--r--MdePkg/Include/Protocol/I2cMaster.h14
-rw-r--r--MdePkg/Include/Protocol/IScsiInitiatorName.h20
-rw-r--r--MdePkg/Include/Protocol/IdeControllerInit.h294
-rw-r--r--MdePkg/Include/Protocol/IncompatiblePciDeviceSupport.h140
-rw-r--r--MdePkg/Include/Protocol/Ip4.h92
-rw-r--r--MdePkg/Include/Protocol/Ip4Config.h104
-rw-r--r--MdePkg/Include/Protocol/Ip4Config2.h173
-rw-r--r--MdePkg/Include/Protocol/Ip6.h8
-rw-r--r--MdePkg/Include/Protocol/Ip6Config.h257
-rw-r--r--MdePkg/Include/Protocol/IpSec.h186
-rw-r--r--MdePkg/Include/Protocol/IpSecConfig.h534
-rw-r--r--MdePkg/Include/Protocol/IsaHc.h12
-rw-r--r--MdePkg/Include/Protocol/Kms.h119
-rw-r--r--MdePkg/Include/Protocol/LegacyRegion2.h28
-rw-r--r--MdePkg/Include/Protocol/LegacySpiController.h259
-rw-r--r--MdePkg/Include/Protocol/LegacySpiFlash.h195
-rw-r--r--MdePkg/Include/Protocol/LegacySpiSmmController.h30
-rw-r--r--MdePkg/Include/Protocol/LegacySpiSmmFlash.h30
-rw-r--r--MdePkg/Include/Protocol/LoadFile.h16
-rw-r--r--MdePkg/Include/Protocol/LoadFile2.h16
-rw-r--r--MdePkg/Include/Protocol/LoadedImage.h28
-rw-r--r--MdePkg/Include/Protocol/ManagedNetwork.h16
-rw-r--r--MdePkg/Include/Protocol/McaInitPmi.h207
-rw-r--r--MdePkg/Include/Protocol/Metronome.h50
-rw-r--r--MdePkg/Include/Protocol/MmAccess.h127
-rw-r--r--MdePkg/Include/Protocol/MmBase.h81
-rw-r--r--MdePkg/Include/Protocol/MmCommunication.h87
-rw-r--r--MdePkg/Include/Protocol/MmCommunication2.h69
-rw-r--r--MdePkg/Include/Protocol/MmConfiguration.h80
-rw-r--r--MdePkg/Include/Protocol/MmControl.h100
-rw-r--r--MdePkg/Include/Protocol/MmCpu.h241
-rw-r--r--MdePkg/Include/Protocol/MmCpuIo.h90
-rw-r--r--MdePkg/Include/Protocol/MmEndOfDxe.h24
-rw-r--r--MdePkg/Include/Protocol/MmGpiDispatch.h119
-rw-r--r--MdePkg/Include/Protocol/MmIoTrapDispatch.h130
-rw-r--r--MdePkg/Include/Protocol/MmMp.h333
-rw-r--r--MdePkg/Include/Protocol/MmPciRootBridgeIo.h31
-rw-r--r--MdePkg/Include/Protocol/MmPeriodicTimerDispatch.h164
-rw-r--r--MdePkg/Include/Protocol/MmPowerButtonDispatch.h111
-rw-r--r--MdePkg/Include/Protocol/MmReadyToLock.h26
-rw-r--r--MdePkg/Include/Protocol/MmReportStatusCodeHandler.h78
-rw-r--r--MdePkg/Include/Protocol/MmStandbyButtonDispatch.h113
-rw-r--r--MdePkg/Include/Protocol/MmStatusCode.h59
-rw-r--r--MdePkg/Include/Protocol/MmSwDispatch.h130
-rw-r--r--MdePkg/Include/Protocol/MmSxDispatch.h129
-rw-r--r--MdePkg/Include/Protocol/MmUsbDispatch.h124
-rw-r--r--MdePkg/Include/Protocol/MonotonicCounter.h12
-rw-r--r--MdePkg/Include/Protocol/MpService.h62
-rw-r--r--MdePkg/Include/Protocol/Mtftp4.h10
-rw-r--r--MdePkg/Include/Protocol/Mtftp6.h8
-rw-r--r--MdePkg/Include/Protocol/NetworkInterfaceIdentifier.h16
-rw-r--r--MdePkg/Include/Protocol/NvdimmLabel.h345
-rw-r--r--MdePkg/Include/Protocol/NvmExpressPassthru.h21
-rw-r--r--MdePkg/Include/Protocol/PartitionInfo.h68
-rw-r--r--MdePkg/Include/Protocol/Pcd.h371
-rw-r--r--MdePkg/Include/Protocol/PcdInfo.h13
-rw-r--r--MdePkg/Include/Protocol/PciEnumerationComplete.h8
-rw-r--r--MdePkg/Include/Protocol/PciHostBridgeResourceAllocation.h136
-rw-r--r--MdePkg/Include/Protocol/PciHotPlugInit.h142
-rw-r--r--MdePkg/Include/Protocol/PciHotPlugRequest.h120
-rw-r--r--MdePkg/Include/Protocol/PciIo.h261
-rw-r--r--MdePkg/Include/Protocol/PciOverride.h8
-rw-r--r--MdePkg/Include/Protocol/PciPlatform.h28
-rw-r--r--MdePkg/Include/Protocol/PciRootBridgeIo.h196
-rw-r--r--MdePkg/Include/Protocol/PiPcd.h8
-rw-r--r--MdePkg/Include/Protocol/PiPcdInfo.h8
-rw-r--r--MdePkg/Include/Protocol/Pkcs7Verify.h18
-rw-r--r--MdePkg/Include/Protocol/PlatformDriverOverride.h92
-rw-r--r--MdePkg/Include/Protocol/PlatformToDriverConfiguration.h70
-rw-r--r--MdePkg/Include/Protocol/PxeBaseCode.h268
-rw-r--r--MdePkg/Include/Protocol/PxeBaseCodeCallBack.h50
-rw-r--r--MdePkg/Include/Protocol/RamDisk.h8
-rw-r--r--MdePkg/Include/Protocol/RealTimeClock.h14
-rw-r--r--MdePkg/Include/Protocol/RegularExpressionProtocol.h13
-rw-r--r--MdePkg/Include/Protocol/ReportStatusCodeHandler.h33
-rw-r--r--MdePkg/Include/Protocol/Reset.h12
-rw-r--r--MdePkg/Include/Protocol/ResetNotification.h80
-rw-r--r--MdePkg/Include/Protocol/Rest.h8
-rw-r--r--MdePkg/Include/Protocol/Rng.h18
-rw-r--r--MdePkg/Include/Protocol/Runtime.h46
-rw-r--r--MdePkg/Include/Protocol/S3SaveState.h54
-rw-r--r--MdePkg/Include/Protocol/S3SmmSaveState.h18
-rw-r--r--MdePkg/Include/Protocol/ScsiIo.h22
-rw-r--r--MdePkg/Include/Protocol/ScsiPassThru.h32
-rw-r--r--MdePkg/Include/Protocol/ScsiPassThruExt.h52
-rw-r--r--MdePkg/Include/Protocol/SdMmcPassThru.h12
-rw-r--r--MdePkg/Include/Protocol/Security.h48
-rw-r--r--MdePkg/Include/Protocol/Security2.h26
-rw-r--r--MdePkg/Include/Protocol/SecurityPolicy.h10
-rw-r--r--MdePkg/Include/Protocol/SerialIo.h58
-rw-r--r--MdePkg/Include/Protocol/ServiceBinding.h42
-rw-r--r--MdePkg/Include/Protocol/Shell.h26
-rw-r--r--MdePkg/Include/Protocol/ShellDynamicCommand.h12
-rw-r--r--MdePkg/Include/Protocol/ShellParameters.h8
-rw-r--r--MdePkg/Include/Protocol/SimpleFileSystem.h42
-rw-r--r--MdePkg/Include/Protocol/SimpleNetwork.h46
-rw-r--r--MdePkg/Include/Protocol/SimplePointer.h48
-rw-r--r--MdePkg/Include/Protocol/SimpleTextIn.h8
-rw-r--r--MdePkg/Include/Protocol/SimpleTextInEx.h36
-rw-r--r--MdePkg/Include/Protocol/SimpleTextOut.h34
-rw-r--r--MdePkg/Include/Protocol/SmartCardEdge.h13
-rw-r--r--MdePkg/Include/Protocol/SmartCardReader.h8
-rw-r--r--MdePkg/Include/Protocol/Smbios.h42
-rw-r--r--MdePkg/Include/Protocol/SmbusHc.h64
-rw-r--r--MdePkg/Include/Protocol/SmmAccess2.h118
-rw-r--r--MdePkg/Include/Protocol/SmmBase2.h28
-rw-r--r--MdePkg/Include/Protocol/SmmCommunication.h54
-rw-r--r--MdePkg/Include/Protocol/SmmConfiguration.h30
-rw-r--r--MdePkg/Include/Protocol/SmmControl2.h95
-rw-r--r--MdePkg/Include/Protocol/SmmCpu.h325
-rw-r--r--MdePkg/Include/Protocol/SmmCpuIo2.h87
-rw-r--r--MdePkg/Include/Protocol/SmmEndOfDxe.h17
-rw-r--r--MdePkg/Include/Protocol/SmmGpiDispatch2.h112
-rw-r--r--MdePkg/Include/Protocol/SmmIoTrapDispatch2.h113
-rw-r--r--MdePkg/Include/Protocol/SmmPciRootBridgeIo.h23
-rw-r--r--MdePkg/Include/Protocol/SmmPeriodicTimerDispatch2.h48
-rw-r--r--MdePkg/Include/Protocol/SmmPowerButtonDispatch2.h97
-rw-r--r--MdePkg/Include/Protocol/SmmReadyToLock.h15
-rw-r--r--MdePkg/Include/Protocol/SmmReportStatusCodeHandler.h74
-rw-r--r--MdePkg/Include/Protocol/SmmStandbyButtonDispatch2.h97
-rw-r--r--MdePkg/Include/Protocol/SmmStatusCode.h54
-rw-r--r--MdePkg/Include/Protocol/SmmSwDispatch2.h38
-rw-r--r--MdePkg/Include/Protocol/SmmSxDispatch2.h119
-rw-r--r--MdePkg/Include/Protocol/SmmUsbDispatch2.h107
-rw-r--r--MdePkg/Include/Protocol/SpiConfiguration.h287
-rw-r--r--MdePkg/Include/Protocol/SpiHc.h188
-rw-r--r--MdePkg/Include/Protocol/SpiIo.h286
-rw-r--r--MdePkg/Include/Protocol/SpiNorFlash.h256
-rw-r--r--MdePkg/Include/Protocol/SpiSmmConfiguration.h30
-rw-r--r--MdePkg/Include/Protocol/SpiSmmHc.h30
-rw-r--r--MdePkg/Include/Protocol/SpiSmmNorFlash.h30
-rw-r--r--MdePkg/Include/Protocol/StatusCode.h10
-rw-r--r--MdePkg/Include/Protocol/StorageSecurityCommand.h12
-rw-r--r--MdePkg/Include/Protocol/SuperIo.h66
-rw-r--r--MdePkg/Include/Protocol/SuperIoControl.h14
-rw-r--r--MdePkg/Include/Protocol/Supplicant.h14
-rw-r--r--MdePkg/Include/Protocol/TapeIo.h42
-rw-r--r--MdePkg/Include/Protocol/Tcg2Protocol.h38
-rw-r--r--MdePkg/Include/Protocol/TcgService.h66
-rw-r--r--MdePkg/Include/Protocol/Tcp4.h10
-rw-r--r--MdePkg/Include/Protocol/Tcp6.h8
-rw-r--r--MdePkg/Include/Protocol/Timer.h90
-rw-r--r--MdePkg/Include/Protocol/Timestamp.h48
-rw-r--r--MdePkg/Include/Protocol/Tls.h87
-rw-r--r--MdePkg/Include/Protocol/TlsConfig.h13
-rw-r--r--MdePkg/Include/Protocol/TrEEProtocol.h46
-rw-r--r--MdePkg/Include/Protocol/Udp4.h68
-rw-r--r--MdePkg/Include/Protocol/Udp6.h60
-rw-r--r--MdePkg/Include/Protocol/UfsDeviceConfig.h137
-rw-r--r--MdePkg/Include/Protocol/UgaDraw.h22
-rw-r--r--MdePkg/Include/Protocol/UgaIo.h36
-rw-r--r--MdePkg/Include/Protocol/UnicodeCollation.h34
-rw-r--r--MdePkg/Include/Protocol/Usb2HostController.h74
-rw-r--r--MdePkg/Include/Protocol/UsbFunctionIo.h19
-rw-r--r--MdePkg/Include/Protocol/UsbHostController.h314
-rw-r--r--MdePkg/Include/Protocol/UsbIo.h128
-rw-r--r--MdePkg/Include/Protocol/UserCredential.h128
-rw-r--r--MdePkg/Include/Protocol/UserCredential2.h142
-rw-r--r--MdePkg/Include/Protocol/UserManager.h162
-rw-r--r--MdePkg/Include/Protocol/Variable.h42
-rw-r--r--MdePkg/Include/Protocol/VariableWrite.h40
-rw-r--r--MdePkg/Include/Protocol/VlanConfig.h42
-rw-r--r--MdePkg/Include/Protocol/WatchdogTimer.h60
-rw-r--r--MdePkg/Include/Protocol/WiFi.h8
-rw-r--r--MdePkg/Include/Protocol/WiFi2.h12
253 files changed, 11978 insertions, 8565 deletions
diff --git a/MdePkg/Include/Protocol/AbsolutePointer.h b/MdePkg/Include/Protocol/AbsolutePointer.h
index 42693ab20b65..ff8f37b27e80 100644
--- a/MdePkg/Include/Protocol/AbsolutePointer.h
+++ b/MdePkg/Include/Protocol/AbsolutePointer.h
@@ -1,15 +1,12 @@
/** @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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ This Protocol was introduced in UEFI Specification 2.3.
**/
@@ -38,25 +35,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 +77,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 +92,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 +105,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.
@@ -172,7 +169,7 @@ typedef
EFI_STATUS
(EFIAPI *EFI_ABSOLUTE_POINTER_GET_STATE)(
IN EFI_ABSOLUTE_POINTER_PROTOCOL *This,
- IN OUT EFI_ABSOLUTE_POINTER_STATE *State
+ OUT EFI_ABSOLUTE_POINTER_STATE *State
);
@@ -188,7 +185,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;
///
diff --git a/MdePkg/Include/Protocol/AcpiSystemDescriptionTable.h b/MdePkg/Include/Protocol/AcpiSystemDescriptionTable.h
index b98862f6d840..e837167605ff 100644
--- a/MdePkg/Include/Protocol/AcpiSystemDescriptionTable.h
+++ b/MdePkg/Include/Protocol/AcpiSystemDescriptionTable.h
@@ -1,14 +1,11 @@
/** @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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ This Protocol was introduced in PI Specification 1.2.
**/
@@ -17,7 +14,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 +24,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 +33,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 +45,7 @@ typedef struct {
UINT32 CreatorId;
UINT32 CreatorRevision;
} EFI_ACPI_SDT_HEADER;
-
+
typedef
EFI_STATUS
(EFIAPI *EFI_ACPI_NOTIFICATION_FN)(
@@ -56,10 +53,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 +66,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 +91,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 +112,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 +146,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 +160,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 +178,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 +186,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 +201,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 +225,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
diff --git a/MdePkg/Include/Protocol/AcpiTable.h b/MdePkg/Include/Protocol/AcpiTable.h
index c6081823268b..a428ea1b9db4 100644
--- a/MdePkg/Include/Protocol/AcpiTable.h
+++ b/MdePkg/Include/Protocol/AcpiTable.h
@@ -1,15 +1,12 @@
/** @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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ This Protocol was introduced in UEFI Specification 2.3.
**/
@@ -24,24 +21,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 +51,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 +79,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 +100,7 @@ EFI_STATUS
@retval EFI_OUT_OF_RESOURCES Insufficient resources exist to
complete the request.
-
+
**/
typedef
EFI_STATUS
diff --git a/MdePkg/Include/Protocol/AdapterInformation.h b/MdePkg/Include/Protocol/AdapterInformation.h
index 92fd11d7706c..c0cff5ae05b9 100644
--- a/MdePkg/Include/Protocol/AdapterInformation.h
+++ b/MdePkg/Include/Protocol/AdapterInformation.h
@@ -3,14 +3,8 @@
The EFI Adapter Information Protocol is used to dynamically and quickly discover
or set device information for an adapter.
- Copyright (c) 2014 - 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) 2014 - 2018, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
@par Revision Reference:
This Protocol is introduced in UEFI Specification 2.4
@@ -46,6 +40,12 @@
0x4bd56be3, 0x4975, 0x4d8a, {0xa0, 0xad, 0xc4, 0x91, 0x20, 0x4b, 0x5d, 0x4d} \
}
+#define EFI_ADAPTER_INFO_MEDIA_TYPE_GUID \
+ { \
+ 0x8484472f, 0x71ec, 0x411a, { 0xb3, 0x9c, 0x62, 0xcd, 0x94, 0xd9, 0x91, 0x6e } \
+ }
+
+
typedef struct _EFI_ADAPTER_INFORMATION_PROTOCOL EFI_ADAPTER_INFORMATION_PROTOCOL;
///
@@ -53,15 +53,28 @@ 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;
} EFI_ADAPTER_INFO_MEDIA_STATE;
///
+/// EFI_ADAPTER_INFO_MEDIA_TYPE
+///
+typedef struct {
+ ///
+ /// Indicates the current media type. MediaType can have any of the following values:
+ /// 1: Ethernet Network Adapter
+ /// 2: Ethernet Wireless Network Adapter
+ /// 3~255: Reserved
+ ///
+ UINT8 MediaType;
+} EFI_ADAPTER_INFO_MEDIA_TYPE;
+
+///
/// EFI_ADAPTER_INFO_NETWORK_BOOT
///
typedef struct {
@@ -121,7 +134,7 @@ typedef struct {
///
/// Returns capability of UNDI to support IPv6 traffic.
///
- BOOLEAN Ipv6Support;
+ BOOLEAN Ipv6Support;
} EFI_ADAPTER_INFO_UNDI_IPV6_SUPPORT;
/**
@@ -129,7 +142,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.
@@ -141,8 +154,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.
**/
diff --git a/MdePkg/Include/Protocol/Arp.h b/MdePkg/Include/Protocol/Arp.h
index 0295cc644ddc..d6b109e3ab33 100644
--- a/MdePkg/Include/Protocol/Arp.h
+++ b/MdePkg/Include/Protocol/Arp.h
@@ -1,22 +1,16 @@
-/** @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>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
This Protocol was introduced in UEFI Specification 2.0.
**/
@@ -119,13 +113,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 +128,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 +138,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 +178,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 +199,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 +235,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 +245,7 @@ EFI_STATUS
OUT UINT32 *EntryCount OPTIONAL,
OUT EFI_ARP_FIND_DATA **Entries OPTIONAL,
IN BOOLEAN Refresh
- );
+ );
/**
@@ -277,7 +271,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 +289,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 +316,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 +353,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 {
diff --git a/MdePkg/Include/Protocol/AtaPassThru.h b/MdePkg/Include/Protocol/AtaPassThru.h
index 1cc596f9e424..06b7c31d09ea 100644
--- a/MdePkg/Include/Protocol/AtaPassThru.h
+++ b/MdePkg/Include/Protocol/AtaPassThru.h
@@ -3,14 +3,11 @@
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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
- 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.3.
**/
@@ -56,7 +53,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 +70,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 +153,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 +174,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 +185,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 +227,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 +247,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.
@@ -318,7 +315,7 @@ EFI_STATUS
@param[in] PortMultiplierPort The port multiplier port number of the ATA device for which a
device path node is to be allocated and built. If there is no
port multiplier, then specify 0xFFFF.
- @param[in,out] DevicePath A pointer to a single device path node that describes the ATA
+ @param[out] DevicePath A pointer to a single device path node that describes the ATA
device specified by Port and PortMultiplierPort. This function
is responsible for allocating the buffer DevicePath with the
boot service AllocatePool(). It is the caller's responsibility
@@ -337,7 +334,7 @@ EFI_STATUS
IN EFI_ATA_PASS_THRU_PROTOCOL *This,
IN UINT16 Port,
IN UINT16 PortMultiplierPort,
- IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath
+ OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath
);
/**
@@ -345,7 +342,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 +350,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 +420,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
diff --git a/MdePkg/Include/Protocol/AuthenticationInfo.h b/MdePkg/Include/Protocol/AuthenticationInfo.h
index 99e20235913a..fe85c2a0a16d 100644
--- a/MdePkg/Include/Protocol/AuthenticationInfo.h
+++ b/MdePkg/Include/Protocol/AuthenticationInfo.h
@@ -1,16 +1,10 @@
/** @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.
-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>
+SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -21,7 +15,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 +69,7 @@ typedef struct {
///
UINT8 NasSecret[1];
- ///
+ ///
/// CHAP Initiator Secret Length in bytes on offset NasSecret + NasSecretLength.
///
/// UINT16 ChapSecretLength;
@@ -181,11 +175,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 +197,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 +213,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 {
diff --git a/MdePkg/Include/Protocol/Bds.h b/MdePkg/Include/Protocol/Bds.h
index 0ecc66c8cab3..7ca7777c9ea0 100644
--- a/MdePkg/Include/Protocol/Bds.h
+++ b/MdePkg/Include/Protocol/Bds.h
@@ -3,14 +3,8 @@
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
-
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -29,19 +23,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 +50,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 {
diff --git a/MdePkg/Include/Protocol/Bis.h b/MdePkg/Include/Protocol/Bis.h
index b3ac58ec0302..23dc6577fbf0 100644
--- a/MdePkg/Include/Protocol/Bis.h
+++ b/MdePkg/Include/Protocol/Bis.h
@@ -1,18 +1,12 @@
/** @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.
-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>
+SPDX-License-Identifier: BSD-2-Clause-Patent
- @par Revision Reference:
- This Protocol is introduced in EFI Specification 1.10.
+ @par Revision Reference:
+ This Protocol is introduced in EFI Specification 1.10.
**/
@@ -122,32 +116,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 +155,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 +207,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 +418,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
);
///
diff --git a/MdePkg/Include/Protocol/BlockIo.h b/MdePkg/Include/Protocol/BlockIo.h
index 4bc2109db122..460b616fdd8b 100644
--- a/MdePkg/Include/Protocol/BlockIo.h
+++ b/MdePkg/Include/Protocol/BlockIo.h
@@ -4,14 +4,8 @@
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
-
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -27,12 +21,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 +62,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 +92,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 +129,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 +148,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 +205,7 @@ typedef struct {
///
/// Revision defined in EFI1.1.
-///
+///
#define EFI_BLOCK_IO_INTERFACE_REVISION EFI_BLOCK_IO_PROTOCOL_REVISION
///
diff --git a/MdePkg/Include/Protocol/BlockIo2.h b/MdePkg/Include/Protocol/BlockIo2.h
index 0e4bb289cffd..75ea914ffcdf 100644
--- a/MdePkg/Include/Protocol/BlockIo2.h
+++ b/MdePkg/Include/Protocol/BlockIo2.h
@@ -5,14 +5,8 @@
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
-
- 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) 2011 - 2018, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -69,7 +63,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 +71,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 +89,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 +130,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 +149,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 +183,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;
diff --git a/MdePkg/Include/Protocol/BlockIoCrypto.h b/MdePkg/Include/Protocol/BlockIoCrypto.h
index ffac54b3b157..178d31830ff9 100644
--- a/MdePkg/Include/Protocol/BlockIoCrypto.h
+++ b/MdePkg/Include/Protocol/BlockIoCrypto.h
@@ -2,14 +2,11 @@
The UEFI Inline Cryptographic Interface protocol provides services to abstract
access to inline cryptographic capabilities.
- 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
-
- 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) 2015-2018, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ This Protocol was introduced in UEFI Specification 2.5.
**/
diff --git a/MdePkg/Include/Protocol/BluetoothAttribute.h b/MdePkg/Include/Protocol/BluetoothAttribute.h
new file mode 100644
index 000000000000..eb39ea27f096
--- /dev/null
+++ b/MdePkg/Include/Protocol/BluetoothAttribute.h
@@ -0,0 +1,277 @@
+/** @file
+ EFI Bluetooth Attribute Protocol as defined in UEFI 2.7.
+ This protocol provides service for Bluetooth ATT (Attribute Protocol) and GATT (Generic
+ Attribute Profile) based protocol interfaces.
+
+ Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ This Protocol is introduced in UEFI Specification 2.7
+
+**/
+
+#ifndef __EFI_BLUETOOTH_ATTRIBUTE_H__
+#define __EFI_BLUETOOTH_ATTRIBUTE_H__
+
+#define EFI_BLUETOOTH_ATTRIBUTE_SERVICE_BINDING_PROTOCOL_GUID \
+ { \
+ 0x5639867a, 0x8c8e, 0x408d, { 0xac, 0x2f, 0x4b, 0x61, 0xbd, 0xc0, 0xbb, 0xbb } \
+ }
+
+#define EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL_GUID \
+ { \
+ 0x898890e9, 0x84b2, 0x4f3a, { 0x8c, 0x58, 0xd8, 0x57, 0x78, 0x13, 0xe0, 0xac } \
+ }
+
+typedef struct _EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL;
+
+#pragma pack(1)
+
+//
+// Bluetooth UUID
+//
+typedef struct {
+ UINT8 Length;
+ union {
+ UINT16 Uuid16;
+ UINT32 Uuid32;
+ UINT8 Uuid128[16];
+ } Data;
+} EFI_BLUETOOTH_UUID;
+
+
+#define UUID_16BIT_TYPE_LEN 2
+#define UUID_32BIT_TYPE_LEN 4
+#define UUID_128BIT_TYPE_LEN 16
+
+#define BLUETOOTH_IS_ATTRIBUTE_OF_TYPE(a,t) ((a)->Type.Length == UUID_16BIT_TYPE_LEN && (a)->Type.Data.Uuid16 == (t))
+
+//
+// Bluetooth Attribute Permission
+//
+typedef union {
+ struct {
+ UINT16 Readable : 1;
+ UINT16 ReadEncryption : 1;
+ UINT16 ReadAuthentication : 1;
+ UINT16 ReadAuthorization : 1;
+ UINT16 ReadKeySize : 5;
+ UINT16 Reserved1 : 7;
+ UINT16 Writeable : 1;
+ UINT16 WriteEncryption : 1;
+ UINT16 WriteAuthentication : 1;
+ UINT16 WriteAuthorization : 1;
+ UINT16 WriteKeySize : 5;
+ UINT16 Reserved2 : 7;
+ } Permission;
+ UINT32 Data32;
+} EFI_BLUETOOTH_ATTRIBUTE_PERMISSION;
+
+typedef struct {
+ EFI_BLUETOOTH_UUID Type;
+ UINT16 Length;
+ UINT16 AttributeHandle;
+ EFI_BLUETOOTH_ATTRIBUTE_PERMISSION AttributePermission;
+} EFI_BLUETOOTH_ATTRIBUTE_HEADER;
+
+typedef struct {
+ EFI_BLUETOOTH_ATTRIBUTE_HEADER Header;
+ UINT16 EndGroupHandle;
+ EFI_BLUETOOTH_UUID ServiceUuid;
+} EFI_BLUETOOTH_GATT_PRIMARY_SERVICE_INFO;
+
+typedef struct {
+ EFI_BLUETOOTH_ATTRIBUTE_HEADER Header;
+ UINT16 StartGroupHandle;
+ UINT16 EndGroupHandle;
+ EFI_BLUETOOTH_UUID ServiceUuid;
+} EFI_BLUETOOTH_GATT_INCLUDE_SERVICE_INFO;
+
+typedef struct {
+ EFI_BLUETOOTH_ATTRIBUTE_HEADER Header;
+ UINT8 CharacteristicProperties;
+ UINT16 CharacteristicValueHandle;
+ EFI_BLUETOOTH_UUID CharacteristicUuid;
+} EFI_BLUETOOTH_GATT_CHARACTERISTIC_INFO;
+
+typedef struct {
+ EFI_BLUETOOTH_ATTRIBUTE_HEADER Header;
+ EFI_BLUETOOTH_UUID CharacteristicDescriptorUuid;
+} EFI_BLUETOOTH_GATT_CHARACTERISTIC_DESCRIPTOR_INFO;
+
+#pragma pack()
+
+typedef struct {
+ UINT16 AttributeHandle;
+} EFI_BLUETOOTH_ATTRIBUTE_CALLBACK_PARAMETER_NOTIFICATION;
+
+typedef struct {
+ UINT16 AttributeHandle;
+} EFI_BLUETOOTH_ATTRIBUTE_CALLBACK_PARAMETER_INDICATION;
+
+typedef struct {
+ UINT32 Version;
+ UINT8 AttributeOpCode;
+ union {
+ EFI_BLUETOOTH_ATTRIBUTE_CALLBACK_PARAMETER_NOTIFICATION Notification;
+ EFI_BLUETOOTH_ATTRIBUTE_CALLBACK_PARAMETER_INDICATION Indication;
+ } Parameter;
+} EFI_BLUETOOTH_ATTRIBUTE_CALLBACK_PARAMETER;
+
+typedef struct {
+ UINT32 Version;
+ BLUETOOTH_LE_ADDRESS BD_ADDR;
+ BLUETOOTH_LE_ADDRESS DirectAddress;
+ UINT8 RSSI;
+ UINTN AdvertisementDataSize;
+ VOID *AdvertisementData;
+} EFI_BLUETOOTH_LE_DEVICE_INFO;
+
+/**
+ The callback function to send request.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL instance.
+ @param[in] Data Data received. The first byte is the attribute opcode, followed by opcode specific
+ fields. See Bluetooth specification, Vol 3, Part F, Attribute Protocol. It might be a
+ normal RESPONSE message, or ERROR RESPONSE messag
+ @param[in] DataLength The length of Data in bytes.
+ @param[in] Context The context passed from the callback registration request.
+
+ @retval EFI_SUCCESS The callback function complete successfully.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_BLUETOOTH_ATTRIBUTE_CALLBACK_FUNCTION) (
+ IN EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL *This,
+ IN VOID *Data,
+ IN UINTN DataLength,
+ IN VOID *Context
+ );
+
+/**
+ Send a "REQUEST" or "COMMAND" message to remote server and receive a "RESPONSE" message
+ for "REQUEST" from remote server according to Bluetooth attribute protocol data unit(PDU).
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL instance.
+ @param[in] Data Data of a REQUEST or COMMAND message. The first byte is the attribute PDU
+ related opcode, followed by opcode specific fields. See Bluetooth specification,
+ Vol 3, Part F, Attribute Protocol.
+ @param[in] DataLength The length of Data in bytes.
+ @param[in] Callback Callback function to notify the RESPONSE is received to the caller, with the
+ response buffer. Caller must check the response buffer content to know if the
+ request action is success or fail. It may be NULL if the data is a COMMAND.
+ @param[in] Context Data passed into Callback function. It is optional parameter and may be NULL.
+
+ @retval EFI_SUCCESS The request is sent successfully.
+ @retval EFI_INVALID_PARAMETER One or more parameters are invalid due to following conditions:
+ - The Buffer is NULL.
+ - The BufferLength is 0.
+ - The opcode in Buffer is not a valid OPCODE according to Bluetooth specification.
+ - The Callback is NULL.
+ @retval EFI_DEVICE_ERROR Sending the request failed due to the host controller or the device error.
+ @retval EFI_NOT_READY A GATT operation is already underway for this device.
+ @retval EFI_UNSUPPORTED The attribute does not support the corresponding operation.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_BLUETOOTH_ATTRIBUTE_SEND_REQUEST) (
+ IN EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL *This,
+ IN VOID *Data,
+ IN UINTN DataLength,
+ IN EFI_BLUETOOTH_ATTRIBUTE_CALLBACK_FUNCTION Callback,
+ IN VOID *Context
+ );
+
+/**
+ Register or unregister a server initiated message, such as NOTIFICATION or INDICATION, on a
+ characteristic value on remote server.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL instance.
+ @param[in] CallbackParameter The parameter of the callback.
+ @param[in] Callback Callback function for server initiated attribute protocol. NULL callback
+ function means unregister the server initiated callback.
+ @param[in] Context Data passed into Callback function. It is optional parameter and may be NULL.
+
+ @retval EFI_SUCCESS The callback function is registered or unregistered successfully
+ @retval EFI_INVALID_PARAMETER The attribute opcode is not server initiated message opcode. See
+ Bluetooth specification, Vol 3, Part F, Attribute Protocol.
+ @retval EFI_ALREADY_STARTED A callback function is already registered on the same attribute
+ opcode and attribute handle, when the Callback is not NULL.
+ @retval EFI_NOT_STARTED A callback function is not registered on the same attribute opcode
+ and attribute handle, when the Callback is NULL.
+ @retval EFI_NOT_READY A GATT operation is already underway for this device.
+ @retval EFI_UNSUPPORTED The attribute does not support notification.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_BLUETOOTH_ATTRIBUTE_REGISTER_FOR_SERVER_NOTIFICATION)(
+ IN EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL *This,
+ IN EFI_BLUETOOTH_ATTRIBUTE_CALLBACK_PARAMETER *CallbackParameter,
+ IN EFI_BLUETOOTH_ATTRIBUTE_CALLBACK_FUNCTION Callback,
+ IN VOID *Context
+ );
+
+/**
+ Get Bluetooth discovered service information.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL instance.
+ @param[out] ServiceInfoSize A pointer to the size, in bytes, of the ServiceInfo buffer.
+ @param[out] ServiceInfo A pointer to a callee allocated buffer that returns Bluetooth
+ discovered service information. Callee allocates this buffer by
+ using EFI Boot Service AllocatePool().
+
+ @retval EFI_SUCCESS The Bluetooth discovered service information is returned successfully.
+ @retval EFI_DEVICE_ERROR A hardware error occurred trying to retrieve the Bluetooth discovered
+ service information.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_BLUETOOTH_ATTRIBUTE_GET_SERVICE_INFO)(
+ IN EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL *This,
+ OUT UINTN *ServiceInfoSize,
+ OUT VOID **ServiceInfo
+ );
+
+/**
+ Get Bluetooth device information.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL instance.
+ @param[out] DeviceInfoSize A pointer to the size, in bytes, of the DeviceInfo buffer.
+ @param[out] DeviceInfo A pointer to a callee allocated buffer that returns Bluetooth
+ device information. Callee allocates this buffer by using EFI Boot
+ Service AllocatePool(). If this device is Bluetooth classic
+ device, EFI_BLUETOOTH_DEVICE_INFO should be used. If
+ this device is Bluetooth LE device, EFI_BLUETOOTH_LE_DEVICE_INFO
+ should be used.
+
+ @retval EFI_SUCCESS The Bluetooth device information is returned successfully.
+ @retval EFI_DEVICE_ERROR A hardware error occurred trying to retrieve the Bluetooth device
+ information
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_BLUETOOTH_ATTRIBUTE_GET_DEVICE_INFO)(
+ IN EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL *This,
+ OUT UINTN *DeviceInfoSize,
+ OUT VOID **DeviceInfo
+ );
+
+struct _EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL {
+ EFI_BLUETOOTH_ATTRIBUTE_SEND_REQUEST SendRequest;
+ EFI_BLUETOOTH_ATTRIBUTE_REGISTER_FOR_SERVER_NOTIFICATION RegisterForServerNotification;
+ EFI_BLUETOOTH_ATTRIBUTE_GET_SERVICE_INFO GetServiceInfo;
+ EFI_BLUETOOTH_ATTRIBUTE_GET_DEVICE_INFO GetDeviceInfo;
+};
+
+
+extern EFI_GUID gEfiBluetoothAttributeProtocolGuid;
+extern EFI_GUID gEfiBluetoothAttributeServiceBindingProtocolGuid;
+
+#endif
+
diff --git a/MdePkg/Include/Protocol/BluetoothConfig.h b/MdePkg/Include/Protocol/BluetoothConfig.h
index cc72b1e21a6a..8a6013173448 100644
--- a/MdePkg/Include/Protocol/BluetoothConfig.h
+++ b/MdePkg/Include/Protocol/BluetoothConfig.h
@@ -1,18 +1,12 @@
/** @file
- EFI Bluetooth Configuration Protocol as defined in UEFI 2.5.
+ EFI Bluetooth Configuration Protocol as defined in UEFI 2.7.
This protocol abstracts user interface configuration for Bluetooth device.
- 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 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.
+ Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
- @par Revision Reference:
- This Protocol is introduced in UEFI Specification 2.5
+ @par Revision Reference:
+ This Protocol is introduced in UEFI Specification 2.7
**/
@@ -25,7 +19,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 +35,7 @@ typedef struct {
///
BLUETOOTH_ADDRESS BDAddr;
///
- /// State of the remote deive
+ /// State of the remote deive
///
UINT8 RemoteDeviceState;
///
@@ -69,7 +63,7 @@ typedef enum {
///
/// Remote Bluetooth device state. Data structure is EFI_BLUETOOTH_CONFIG_REMOTE_DEVICE_STATE_TYPE.
///
- EfiBluetoothConfigDataTypeRemoteDeviceState,
+ EfiBluetoothConfigDataTypeRemoteDeviceState, /* Relevant for LE*/
///
/// Local/Remote Bluetooth device SDP information. Data structure is UINT8[].
///
@@ -77,11 +71,11 @@ typedef enum {
///
/// Local Bluetooth device address. Data structure is BLUETOOTH_ADDRESS.
///
- EfiBluetoothConfigDataTypeBDADDR,
+ EfiBluetoothConfigDataTypeBDADDR, /* Relevant for LE*/
///
/// Local Bluetooth discoverable state. Data structure is UINT8. (Page scan and/or Inquiry scan)
///
- EfiBluetoothConfigDataTypeDiscoverable,
+ EfiBluetoothConfigDataTypeDiscoverable, /* Relevant for LE*/
///
/// Local Bluetooth controller stored paired device list. Data structure is BLUETOOTH_ADDRESS[].
///
@@ -90,6 +84,21 @@ typedef enum {
/// Local available device list. Data structure is BLUETOOTH_ADDRESS[].
///
EfiBluetoothConfigDataTypeAvailableDeviceList,
+ EfiBluetoothConfigDataTypeRandomAddress, /* Relevant for LE*/
+ EfiBluetoothConfigDataTypeRSSI, /* Relevant for LE*/
+ ///
+ /// Advertisement report. Data structure is UNIT8[].
+ ///
+ EfiBluetoothConfigDataTypeAdvertisementData, /* Relevant for LE*/
+ EfiBluetoothConfigDataTypeIoCapability, /* Relevant for LE*/
+ EfiBluetoothConfigDataTypeOOBDataFlag, /* Relevant for LE*/
+ ///
+ /// KeyType of Authentication Requirements flag of local
+ /// device as UINT8, indicating requested security properties.
+ /// See Bluetooth specification 3.H.3.5.1. BIT0: MITM, BIT1:SC.
+ ///
+ EfiBluetoothConfigDataTypeKeyType, /* Relevant for LE*/
+ EfiBluetoothConfigDataTypeEncKeySize, /* Relevant for LE*/
EfiBluetoothConfigDataTypeMax,
} EFI_BLUETOOTH_CONFIG_DATA_TYPE;
@@ -98,12 +107,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,
@@ -112,7 +121,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,
@@ -124,44 +133,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.
@@ -179,16 +188,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.
@@ -196,7 +205,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,
@@ -205,7 +214,7 @@ EFI_STATUS
IN EFI_BLUETOOTH_CONFIG_SCAN_CALLBACK_FUNCTION Callback,
IN VOID *Context
);
-
+
/**
Connect a Bluetooth device.
@@ -218,7 +227,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,
@@ -238,14 +247,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.
@@ -258,14 +267,14 @@ EFI_STATUS
@retval EFI_SUCCESS The Bluetooth configuration data is returned successfully.
@retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
- DataSize is NULL.
- - *DataSize is 0.
- - Data is NULL.
+ - *DataSize is not 0 and Data is NULL.
@retval EFI_UNSUPPORTED The DataType is unsupported.
@retval EFI_NOT_FOUND The DataType is not found.
@retval EFI_BUFFER_TOO_SMALL The buffer is too small to hold the buffer.
+ *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,
@@ -273,7 +282,7 @@ EFI_STATUS
IN OUT UINTN *DataSize,
IN OUT VOID *Data
);
-
+
/**
Set Bluetooth configuration data.
@@ -290,7 +299,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,
@@ -298,7 +307,7 @@ EFI_STATUS
IN UINTN DataSize,
IN VOID *Data
);
-
+
/**
Get remove Bluetooth device configuration data.
@@ -312,23 +321,23 @@ EFI_STATUS
@retval EFI_SUCCESS The remote Bluetooth device configuration data is returned successfully.
@retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
- DataSize is NULL.
- - *DataSize is 0.
- - Data is NULL.
+ - *DataSize is not 0 and Data is NULL.
@retval EFI_UNSUPPORTED The DataType is unsupported.
@retval EFI_NOT_FOUND The DataType is not found.
@retval EFI_BUFFER_TOO_SMALL The buffer is too small to hold the buffer.
+ *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,
IN EFI_BLUETOOTH_CONFIG_DATA_TYPE DataType,
- IN BLUETOOTH_ADDRESS BDAddr,
+ IN BLUETOOTH_ADDRESS *BDAddr,
IN OUT UINTN *DataSize,
IN OUT VOID *Data
);
-
+
/**
The callback function for PIN code.
@@ -337,14 +346,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,
@@ -355,7 +364,7 @@ EFI_STATUS
OUT VOID **OutputBuffer,
OUT UINTN *OutputBufferSize
);
-
+
/**
Register PIN callback function.
@@ -366,7 +375,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,
@@ -385,7 +394,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,
@@ -393,7 +402,7 @@ EFI_STATUS
IN BLUETOOTH_ADDRESS *BDAddr,
OUT UINT8 LinkKey[BLUETOOTH_HCI_LINK_KEY_SIZE]
);
-
+
/**
Register get link key callback function.
@@ -404,14 +413,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.
@@ -423,7 +432,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,
@@ -431,7 +440,7 @@ EFI_STATUS
IN BLUETOOTH_ADDRESS *BDAddr,
IN UINT8 LinkKey[BLUETOOTH_HCI_LINK_KEY_SIZE]
);
-
+
/**
Register set link key callback function.
@@ -442,14 +451,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.
@@ -463,7 +472,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,
@@ -473,7 +482,7 @@ EFI_STATUS
IN VOID *InputBuffer,
IN UINTN InputBufferSize
);
-
+
/**
Register link connect complete callback function.
@@ -484,14 +493,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.
///
diff --git a/MdePkg/Include/Protocol/BluetoothHc.h b/MdePkg/Include/Protocol/BluetoothHc.h
index eb55079bb81c..9bcb777e7822 100644
--- a/MdePkg/Include/Protocol/BluetoothHc.h
+++ b/MdePkg/Include/Protocol/BluetoothHc.h
@@ -2,16 +2,10 @@
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, 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) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
This Protocol is introduced in UEFI Specification 2.5
**/
@@ -23,306 +17,402 @@
{ \
0xb3930571, 0xbeba, 0x4fc5, { 0x92, 0x3, 0x94, 0x27, 0x24, 0x2e, 0x6a, 0x43 } \
}
-
+
typedef struct _EFI_BLUETOOTH_HC_PROTOCOL EFI_BLUETOOTH_HC_PROTOCOL;
/**
Send HCI command packet.
- @param This Pointer to the EFI_BLUETOOTH_HC_PROTOCOL instance.
- @param BufferSize On input, indicates the size, in bytes, of the data buffer specified by Buffer.
- On output, indicates the amount of data actually transferred.
- @param Buffer A pointer to the buffer of data that will be transmitted to Bluetooth host
- controller.
- @param Timeout Indicating the transfer should be completed within this time frame. The units are
- in milliseconds. If Timeout is 0, then the caller must wait for the function to
- be completed until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
-
- @retval EFI_SUCCESS The HCI command packet is sent successfully.
- @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
- - BufferSize is NULL.
- - *BufferSize is 0.
- - Buffer is NULL.
- @retval EFI_TIMEOUT Sending HCI command packet fail due to timeout.
- @retval EFI_DEVICE_ERROR Sending HCI command packet fail due to host controller or device error.
+ The SendCommand() function sends HCI command packet. Buffer holds the whole HCI
+ command packet, including OpCode, OCF, OGF, parameter length, and parameters. When
+ this function is returned, it just means the HCI command packet is sent, it does not mean
+ the command is success or complete. Caller might need to wait a command status event
+ to know the command status, or wait a command complete event to know if the
+ command is completed.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_HC_PROTOCOL instance.
+ @param[in,out] BufferSize On input, indicates the size, in bytes, of the data buffer
+ specified by Buffer. On output, indicates the amount of
+ data actually transferred.
+ @param[in] Buffer A pointer to the buffer of data that will be transmitted to
+ Bluetooth host controller.
+ @param[in] Timeout Indicating the transfer should be completed within this
+ time frame. The units are in milliseconds. If Timeout is 0,
+ then the caller must wait for the function to be completed
+ until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
+
+ @retval EFI_SUCCESS The HCI command packet is sent successfully.
+ @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
+ BufferSize is NULL.
+ *BufferSize is 0.
+ Buffer is NULL.
+ @retval EFI_TIMEOUT Sending HCI command packet fail due to timeout.
+ @retval EFI_DEVICE_ERROR Sending HCI command packet fail due to host controller or device
+ error.
**/
-typedef
+typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_HC_SEND_COMMAND)(
- IN EFI_BLUETOOTH_HC_PROTOCOL *This,
- IN OUT UINTN *BufferSize,
- IN VOID *Buffer,
- IN UINTN Timeout
+ IN EFI_BLUETOOTH_HC_PROTOCOL *This,
+ IN OUT UINTN *BufferSize,
+ IN VOID *Buffer,
+ IN UINTN Timeout
);
-
/**
Receive HCI event packet.
- @param This Pointer to the EFI_BLUETOOTH_HC_PROTOCOL instance.
- @param BufferSize On input, indicates the size, in bytes, of the data buffer specified by Buffer.
- On output, indicates the amount of data actually transferred.
- @param Buffer A pointer to the buffer of data that will be received from Bluetooth host controller.
- @param Timeout Indicating the transfer should be completed within this time frame. The units are
- in milliseconds. If Timeout is 0, then the caller must wait for the function to
- be completed until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
-
- @retval EFI_SUCCESS The HCI event packet is received successfully.
- @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
- - BufferSize is NULL.
- - *BufferSize is 0.
- - Buffer is NULL.
- @retval EFI_TIMEOUT Receiving HCI event packet fail due to timeout.
- @retval EFI_DEVICE_ERROR Receiving HCI event packet fail due to host controller or device error.
+ The ReceiveEvent() function receives HCI event packet. Buffer holds the whole HCI event
+ packet, including EventCode, parameter length, and parameters.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_HC_PROTOCOL instance.
+ @param[in,out] BufferSize On input, indicates the size, in bytes, of the data buffer
+ specified by Buffer. On output, indicates the amount of
+ data actually transferred.
+ @param[out] Buffer A pointer to the buffer of data that will be received from
+ Bluetooth host controller.
+ @param[in] Timeout Indicating the transfer should be completed within this
+ time frame. The units are in milliseconds. If Timeout is 0,
+ then the caller must wait for the function to be completed
+ until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
+
+ @retval EFI_SUCCESS The HCI event packet is received successfully.
+ @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
+ BufferSize is NULL.
+ *BufferSize is 0.
+ Buffer is NULL.
+ @retval EFI_TIMEOUT Receiving HCI event packet fail due to timeout.
+ @retval EFI_DEVICE_ERROR Receiving HCI event packet fail due to host controller or device
+ error.
**/
typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_HC_RECEIVE_EVENT)(
- IN EFI_BLUETOOTH_HC_PROTOCOL *This,
- IN OUT UINTN *BufferSize,
- OUT VOID *Buffer,
- IN UINTN Timeout
+ IN EFI_BLUETOOTH_HC_PROTOCOL *This,
+ IN OUT UINTN *BufferSize,
+ OUT VOID *Buffer,
+ IN UINTN Timeout
);
-
+
/**
- Callback function, it is called when asynchronous transfer is completed.
+ The async callback of AsyncReceiveEvent().
- @param Data Pointer to the EFI_BLUETOOTH_HC_PROTOCOL instance.
- @param DataLength Specifies the length, in bytes, of the data to be received.
- @param Context Data passed into Callback function. This is optional parameter and may be NULL.
+ @param[in] Data Data received via asynchronous transfer.
+ @param[in] DataLength The length of Data in bytes, received via asynchronous
+ transfer.
+ @param[in] Context Context passed from asynchronous transfer request.
- @retval EFI_SUCCESS The callback function complete successfully.
+ @retval EFI_SUCCESS The callback does execute successfully.
+ @retval Others The callback doesn't execute successfully.
**/
typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_HC_ASYNC_FUNC_CALLBACK) (
- IN VOID *Data,
- IN UINTN DataLength,
- IN VOID *Context
+ IN VOID *Data,
+ IN UINTN DataLength,
+ IN VOID *Context
);
-
+
/**
Receive HCI event packet in non-blocking way.
- @param This Pointer to the EFI_BLUETOOTH_HC_PROTOCOL instance.
- @param IsNewTransfer If TRUE, a new transfer will be submitted. If FALSE, the request is deleted.
- @param PollingInterval Indicates the periodic rate, in milliseconds, that the transfer is to be executed.
- @param DataLength Specifies the length, in bytes, of the data to be received.
- @param Callback The callback function. This function is called if the asynchronous transfer is
- completed.
- @param Context Data passed into Callback function. This is optional parameter and may be NULL.
-
- @retval EFI_SUCCESS The HCI asynchronous receive request is submitted successfully.
- @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
- - DataLength is 0.
- - If IsNewTransfer is TRUE, and an asynchronous receive request already exists.
-
+ The AsyncReceiveEvent() function receives HCI event packet in non-blocking way. Data
+ in Callback function holds the whole HCI event packet, including EventCode, parameter
+ length, and parameters.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_HC_PROTOCOL instance.
+ @param[in] IsNewTransfer If TRUE, a new transfer will be submitted. If FALSE, the
+ request is deleted.
+ @param[in] PollingInterval Indicates the periodic rate, in milliseconds, that the
+ transfer is to be executed.
+ @param[in] DataLength Specifies the length, in bytes, of the data to be received.
+ @param[in] Callback The callback function. This function is called if the
+ asynchronous transfer is completed.
+ @param[in] Context Data passed into Callback function. This is optional
+ parameter and may be NULL.
+
+ @retval EFI_SUCCESS The HCI asynchronous receive request is submitted successfully.
+ @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
+ DataLength is 0.
+ If IsNewTransfer is TRUE, and an asynchronous receive
+ request already exists.
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_BLUETOOTH_HC_ASYNC_RECEIVE_EVENT)(
- IN EFI_BLUETOOTH_HC_PROTOCOL *This,
- IN BOOLEAN IsNewTransfer,
- IN UINTN PollingInterval,
- IN UINTN DataLength,
- IN EFI_BLUETOOTH_HC_ASYNC_FUNC_CALLBACK Callback,
- IN VOID *Context
+(EFIAPI *EFI_BLUETOOTH_HC_ASYNC_RECEIVE_EVENT) (
+ IN EFI_BLUETOOTH_HC_PROTOCOL *This,
+ IN BOOLEAN IsNewTransfer,
+ IN UINTN PollingInterval,
+ IN UINTN DataLength,
+ IN EFI_BLUETOOTH_HC_ASYNC_FUNC_CALLBACK Callback,
+ IN VOID *Context
);
-
+
/**
Send HCI ACL data packet.
- @param This Pointer to the EFI_BLUETOOTH_HC_PROTOCOL instance.
- @param BufferSize On input, indicates the size, in bytes, of the data buffer specified by Buffer.
- On output, indicates the amount of data actually transferred.
- @param Buffer A pointer to the buffer of data that will be transmitted to Bluetooth host
- controller.
- @param Timeout Indicating the transfer should be completed within this time frame. The units are
- in milliseconds. If Timeout is 0, then the caller must wait for the function to
- be completed until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
-
- @retval EFI_SUCCESS The HCI ACL data packet is sent successfully.
- @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
- - BufferSize is NULL.
- - *BufferSize is 0.
- - Buffer is NULL.
- @retval EFI_TIMEOUT Sending HCI ACL data packet fail due to timeout.
- @retval EFI_DEVICE_ERROR Sending HCI ACL data packet fail due to host controller or device error.
+ The SendACLData() function sends HCI ACL data packet. Buffer holds the whole HCI ACL
+ data packet, including Handle, PB flag, BC flag, data length, and data.
+
+ The SendACLData() function and ReceiveACLData() function just send and receive data
+ payload from application layer. In order to protect the payload data, the Bluetooth bus is
+ required to call HCI_Set_Connection_Encryption command to enable hardware based
+ encryption after authentication completed, according to pairing mode and host
+ capability.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_HC_PROTOCOL instance.
+ @param[in, out] BufferSize On input, indicates the size, in bytes, of the data buffer
+ specified by Buffer. On output, indicates the amount of
+ data actually transferred.
+ @param[in] Buffer A pointer to the buffer of data that will be transmitted to
+ Bluetooth host controller.
+ @param[in] Timeout Indicating the transfer should be completed within this
+ time frame. The units are in milliseconds. If Timeout is 0,
+ then the caller must wait for the function to be completed
+ until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
+
+ @retval EFI_SUCCESS The HCI ACL data packet is sent successfully.
+ @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
+ BufferSize is NULL.
+ *BufferSize is 0.
+ Buffer is NULL.
+ @retval EFI_TIMEOUT Sending HCI ACL data packet fail due to timeout.
+ @retval EFI_DEVICE_ERROR Sending HCI ACL data packet fail due to host controller or device
+ error.
**/
typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_HC_SEND_ACL_DATA)(
- IN EFI_BLUETOOTH_HC_PROTOCOL *This,
- IN OUT UINTN *BufferSize,
- IN VOID *Buffer,
- IN UINTN Timeout
+ IN EFI_BLUETOOTH_HC_PROTOCOL *This,
+ IN OUT UINTN *BufferSize,
+ IN VOID *Buffer,
+ IN UINTN Timeout
);
-
+
/**
Receive HCI ACL data packet.
- @param This Pointer to the EFI_BLUETOOTH_HC_PROTOCOL instance.
- @param BufferSize On input, indicates the size, in bytes, of the data buffer specified by Buffer.
- On output, indicates the amount of data actually transferred.
- @param Buffer A pointer to the buffer of data that will be received from Bluetooth host controller.
- @param Timeout Indicating the transfer should be completed within this time frame. The units are
- in milliseconds. If Timeout is 0, then the caller must wait for the function to
- be completed until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
-
- @retval EFI_SUCCESS The HCI ACL data packet is received successfully.
- @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
- - BufferSize is NULL.
- - *BufferSize is 0.
- - Buffer is NULL.
- @retval EFI_TIMEOUT Receiving HCI ACL data packet fail due to timeout.
- @retval EFI_DEVICE_ERROR Receiving HCI ACL data packet fail due to host controller or device error.
+ The ReceiveACLData() function receives HCI ACL data packet. Buffer holds the whole HCI
+ ACL data packet, including Handle, PB flag, BC flag, data length, and data.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_HC_PROTOCOL instance.
+ @param[in, out] BufferSize On input, indicates the size, in bytes, of the data buffer
+ specified by Buffer. On output, indicates the amount of
+ data actually transferred.
+ @param[out] Buffer A pointer to the buffer of data that will be received from
+ Bluetooth host controller.
+ @param[in] Timeout Indicating the transfer should be completed within this
+ time frame. The units are in milliseconds. If Timeout is 0,
+ then the caller must wait for the function to be completed
+ until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
+
+ @retval EFI_SUCCESS The HCI ACL data packet is received successfully.
+ @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
+ BufferSize is NULL.
+ *BufferSize is 0.
+ Buffer is NULL.
+ @retval EFI_TIMEOUT Receiving HCI ACL data packet fail due to timeout.
+ @retval EFI_DEVICE_ERROR Receiving HCI ACL data packet fail due to host controller or device
+ error.
**/
typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_HC_RECEIVE_ACL_DATA)(
- IN EFI_BLUETOOTH_HC_PROTOCOL *This,
- IN OUT UINTN *BufferSize,
- OUT VOID *Buffer,
- IN UINTN Timeout
+ IN EFI_BLUETOOTH_HC_PROTOCOL *This,
+ IN OUT UINTN *BufferSize,
+ OUT VOID *Buffer,
+ IN UINTN Timeout
);
-
/**
Receive HCI ACL data packet in non-blocking way.
- @param This Pointer to the EFI_BLUETOOTH_HC_PROTOCOL instance.
- @param IsNewTransfer If TRUE, a new transfer will be submitted. If FALSE, the request is deleted.
- @param PollingInterval Indicates the periodic rate, in milliseconds, that the transfer is to be executed.
- @param DataLength Specifies the length, in bytes, of the data to be received.
- @param Callback The callback function. This function is called if the asynchronous transfer is
- completed.
- @param Context Data passed into Callback function. This is optional parameter and may be NULL.
-
- @retval EFI_SUCCESS The HCI asynchronous receive request is submitted successfully.
- @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
- - DataLength is 0.
- - If IsNewTransfer is TRUE, and an asynchronous receive request already exists.
-
+ The AsyncReceiveACLData() function receives HCI ACL data packet in non-blocking way.
+ Data in Callback holds the whole HCI ACL data packet, including Handle, PB flag, BC flag,
+ data length, and data.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_HC_PROTOCOL instance.
+ @param[in] IsNewTransfer If TRUE, a new transfer will be submitted. If FALSE, the
+ request is deleted.
+ @param[in] PollingInterval Indicates the periodic rate, in milliseconds, that the
+ transfer is to be executed.
+ @param[in] DataLength Specifies the length, in bytes, of the data to be received.
+ @param[in] Callback The callback function. This function is called if the
+ asynchronous transfer is completed.
+ @param[in] Context Data passed into Callback function. This is optional
+ parameter and may be NULL.
+
+ @retval EFI_SUCCESS The HCI asynchronous receive request is submitted successfully.
+ @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
+ DataLength is 0.
+ If IsNewTransfer is TRUE, and an asynchronous receive
+ request already exists.
**/
typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_HC_ASYNC_RECEIVE_ACL_DATA) (
- IN EFI_BLUETOOTH_HC_PROTOCOL *This,
- IN BOOLEAN IsNewTransfer,
- IN UINTN PollingInterval,
- IN UINTN DataLength,
- IN EFI_BLUETOOTH_HC_ASYNC_FUNC_CALLBACK Callback,
- IN VOID *Context
+ IN EFI_BLUETOOTH_HC_PROTOCOL *This,
+ IN BOOLEAN IsNewTransfer,
+ IN UINTN PollingInterval,
+ IN UINTN DataLength,
+ IN EFI_BLUETOOTH_HC_ASYNC_FUNC_CALLBACK Callback,
+ IN VOID *Context
);
-
+
/**
Send HCI SCO data packet.
- @param This Pointer to the EFI_BLUETOOTH_HC_PROTOCOL instance.
- @param BufferSize On input, indicates the size, in bytes, of the data buffer specified by Buffer.
- On output, indicates the amount of data actually transferred.
- @param Buffer A pointer to the buffer of data that will be transmitted to Bluetooth host
- controller.
- @param Timeout Indicating the transfer should be completed within this time frame. The units are
- in milliseconds. If Timeout is 0, then the caller must wait for the function to
- be completed until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
-
- @retval EFI_SUCCESS The HCI SCO data packet is sent successfully.
- @retval EFI_UNSUPPORTED The implementation does not support HCI SCO transfer.
- @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
- - BufferSize is NULL.
- - *BufferSize is 0.
- - Buffer is NULL.
- @retval EFI_TIMEOUT Sending HCI SCO data packet fail due to timeout.
- @retval EFI_DEVICE_ERROR Sending HCI SCO data packet fail due to host controller or device error.
-
+ The SendSCOData() function sends HCI SCO data packet. Buffer holds the whole HCI SCO
+ data packet, including ConnectionHandle, PacketStatus flag, data length, and data.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_HC_PROTOCOL instance.
+ @param[in,out] BufferSize On input, indicates the size, in bytes, of the data buffer
+ specified by Buffer. On output, indicates the amount of
+ data actually transferred.
+ @param[in] Buffer A pointer to the buffer of data that will be transmitted to
+ Bluetooth host controller.
+ @param[in] Timeout Indicating the transfer should be completed within this
+ time frame. The units are in milliseconds. If Timeout is 0,
+ then the caller must wait for the function to be completed
+ until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
+
+ @retval EFI_SUCCESS The HCI SCO data packet is sent successfully.
+ @retval EFI_UNSUPPORTED The implementation does not support HCI SCO transfer.
+ @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
+ BufferSize is NULL.
+ *BufferSize is 0.
+ Buffer is NULL.
+ @retval EFI_TIMEOUT Sending HCI SCO data packet fail due to timeout.
+ @retval EFI_DEVICE_ERROR Sending HCI SCO data packet fail due to host controller or device
+ error.
**/
typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_HC_SEND_SCO_DATA)(
- IN EFI_BLUETOOTH_HC_PROTOCOL *This,
- IN OUT UINTN *BufferSize,
- IN VOID *Buffer,
- IN UINTN Timeout
+ IN EFI_BLUETOOTH_HC_PROTOCOL *This,
+ IN OUT UINTN *BufferSize,
+ IN VOID *Buffer,
+ IN UINTN Timeout
);
-
+
/**
Receive HCI SCO data packet.
- @param This Pointer to the EFI_BLUETOOTH_HC_PROTOCOL instance.
- @param BufferSize On input, indicates the size, in bytes, of the data buffer specified by Buffer.
- On output, indicates the amount of data actually transferred.
- @param Buffer A pointer to the buffer of data that will be received from Bluetooth host controller.
- @param Timeout Indicating the transfer should be completed within this time frame. The units are
- in milliseconds. If Timeout is 0, then the caller must wait for the function to
- be completed until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
-
- @retval EFI_SUCCESS The HCI SCO data packet is received successfully.
- @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
- - BufferSize is NULL.
- - *BufferSize is 0.
- - Buffer is NULL.
- @retval EFI_TIMEOUT Receiving HCI SCO data packet fail due to timeout
- @retval EFI_DEVICE_ERROR Receiving HCI SCO data packet fail due to host controller or device error.
-
+ The ReceiveSCOData() function receives HCI SCO data packet. Buffer holds the whole HCI
+ SCO data packet, including ConnectionHandle, PacketStatus flag, data length, and data.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_HC_PROTOCOL instance.
+ @param[in,out] BufferSize On input, indicates the size, in bytes, of the data buffer
+ specified by Buffer. On output, indicates the amount of
+ data actually transferred.
+ @param[out] Buffer A pointer to the buffer of data that will be received from
+ Bluetooth host controller.
+ @param[in] Timeout Indicating the transfer should be completed within this
+ time frame. The units are in milliseconds. If Timeout is 0,
+ then the caller must wait for the function to be completed
+ until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
+
+ @retval EFI_SUCCESS The HCI SCO data packet is received successfully.
+ @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
+ BufferSize is NULL.
+ *BufferSize is 0.
+ Buffer is NULL.
+ @retval EFI_TIMEOUT Receiving HCI SCO data packet fail due to timeout.
+ @retval EFI_DEVICE_ERROR Receiving HCI SCO data packet fail due to host controller or device
+ error.
**/
typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_HC_RECEIVE_SCO_DATA)(
- IN EFI_BLUETOOTH_HC_PROTOCOL *This,
- IN OUT UINTN *BufferSize,
- OUT VOID *Buffer,
- IN UINTN Timeout
+ IN EFI_BLUETOOTH_HC_PROTOCOL *This,
+ IN OUT UINTN *BufferSize,
+ OUT VOID *Buffer,
+ IN UINTN Timeout
);
/**
Receive HCI SCO data packet in non-blocking way.
- @param This Pointer to the EFI_BLUETOOTH_HC_PROTOCOL instance.
- @param IsNewTransfer If TRUE, a new transfer will be submitted. If FALSE, the request is deleted.
- @param PollingInterval Indicates the periodic rate, in milliseconds, that the transfer is to be executed.
- @param DataLength Specifies the length, in bytes, of the data to be received.
- @param Callback The callback function. This function is called if the asynchronous transfer is
- completed.
- @param Context Data passed into Callback function. This is optional parameter and may be NULL.
-
- @retval EFI_SUCCESS The HCI asynchronous receive request is submitted successfully.
- @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
- - DataLength is 0.
- - If IsNewTransfer is TRUE, and an asynchronous receive request already exists.
-
+ The AsyncReceiveSCOData() function receives HCI SCO data packet in non-blocking way.
+ Data in Callback holds the whole HCI SCO data packet, including ConnectionHandle,
+ PacketStatus flag, data length, and data.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_HC_PROTOCOL instance.
+ @param[in] IsNewTransfer If TRUE, a new transfer will be submitted. If FALSE, the
+ request is deleted.
+ @param[in] PollingInterval Indicates the periodic rate, in milliseconds, that the
+ transfer is to be executed.
+ @param[in] DataLength Specifies the length, in bytes, of the data to be received.
+ @param[in] Callback The callback function. This function is called if the
+ asynchronous transfer is completed.
+ @param[in] Context Data passed into Callback function. This is optional
+ parameter and may be NULL.
+
+ @retval EFI_SUCCESS The HCI asynchronous receive request is submitted successfully.
+ @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
+ DataLength is 0.
+ If IsNewTransfer is TRUE, and an asynchronous receive
+ request already exists.
**/
typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_HC_ASYNC_RECEIVE_SCO_DATA) (
- IN EFI_BLUETOOTH_HC_PROTOCOL *This,
- IN BOOLEAN IsNewTransfer,
- IN UINTN PollingInterval,
- IN UINTN DataLength,
- IN EFI_BLUETOOTH_HC_ASYNC_FUNC_CALLBACK Callback,
- IN VOID *Context
+ IN EFI_BLUETOOTH_HC_PROTOCOL *This,
+ IN BOOLEAN IsNewTransfer,
+ IN UINTN PollingInterval,
+ IN UINTN DataLength,
+ IN EFI_BLUETOOTH_HC_ASYNC_FUNC_CALLBACK Callback,
+ IN VOID *Context
);
-
-///
-/// This protocol abstracts the Bluetooth host controller layer message transmit and receive.
-///
+
+//
+// The EFI_BLUETOOTH_HC_PROTOCOL is used to transmit or receive HCI layer data packets.
+//
struct _EFI_BLUETOOTH_HC_PROTOCOL {
+ //
+ // Send HCI command packet.
+ //
EFI_BLUETOOTH_HC_SEND_COMMAND SendCommand;
+ //
+ // Receive HCI event packets.
+ //
EFI_BLUETOOTH_HC_RECEIVE_EVENT ReceiveEvent;
+ //
+ // Non-blocking receive HCI event packets.
+ //
EFI_BLUETOOTH_HC_ASYNC_RECEIVE_EVENT AsyncReceiveEvent;
+ //
+ // Send HCI ACL (asynchronous connection-oriented) data packets.
+ //
EFI_BLUETOOTH_HC_SEND_ACL_DATA SendACLData;
+ //
+ // Receive HCI ACL data packets.
+ //
EFI_BLUETOOTH_HC_RECEIVE_ACL_DATA ReceiveACLData;
+ //
+ // Non-blocking receive HCI ACL data packets.
+ //
EFI_BLUETOOTH_HC_ASYNC_RECEIVE_ACL_DATA AsyncReceiveACLData;
+ //
+ // Send HCI synchronous (SCO and eSCO) data packets.
+ //
EFI_BLUETOOTH_HC_SEND_SCO_DATA SendSCOData;
+ //
+ // Receive HCI synchronous data packets.
+ //
EFI_BLUETOOTH_HC_RECEIVE_SCO_DATA ReceiveSCOData;
+ //
+ // Non-blocking receive HCI synchronous data packets.
+ //
EFI_BLUETOOTH_HC_ASYNC_RECEIVE_SCO_DATA AsyncReceiveSCOData;
};
-
+
extern EFI_GUID gEfiBluetoothHcProtocolGuid;
#endif
+
diff --git a/MdePkg/Include/Protocol/BluetoothIo.h b/MdePkg/Include/Protocol/BluetoothIo.h
index 652de57a95d6..6530d8e10421 100644
--- a/MdePkg/Include/Protocol/BluetoothIo.h
+++ b/MdePkg/Include/Protocol/BluetoothIo.h
@@ -1,19 +1,13 @@
/** @file
EFI Bluetooth IO Service Binding Protocol as defined in UEFI 2.5.
EFI Bluetooth IO Protocol as defined in UEFI 2.5.
- The EFI Bluetooth IO Service Binding Protocol is used to locate EFI Bluetooth IO Protocol drivers to
+ The EFI Bluetooth IO Service Binding Protocol is used to locate EFI Bluetooth IO Protocol drivers to
create and destroy child of the driver to communicate with other Bluetooth device by using Bluetooth IO protocol.
- 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 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.
+ Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
- @par Revision Reference:
+ @par Revision Reference:
This Protocol is introduced in UEFI Specification 2.5
**/
@@ -25,14 +19,14 @@
#define EFI_BLUETOOTH_IO_SERVICE_BINDING_PROTOCOL_GUID \
{ \
- 0x388278d3, 0x7b85, 0x42f0, { 0xab, 0xa9, 0xfb, 0x4b, 0xfd, 0x69, 0xf5, 0xab } \
+ 0x388278d3, 0x7b85, 0x42f0, { 0xab, 0xa9, 0xfb, 0x4b, 0xfd, 0x69, 0xf5, 0xab } \
}
-
+
#define EFI_BLUETOOTH_IO_PROTOCOL_GUID \
{ \
- 0x467313de, 0x4e30, 0x43f1, { 0x94, 0x3e, 0x32, 0x3f, 0x89, 0x84, 0x5d, 0xb5 } \
+ 0x467313de, 0x4e30, 0x43f1, { 0x94, 0x3e, 0x32, 0x3f, 0x89, 0x84, 0x5d, 0xb5 } \
}
-
+
typedef struct _EFI_BLUETOOTH_IO_PROTOCOL EFI_BLUETOOTH_IO_PROTOCOL;
///
@@ -72,51 +66,51 @@ typedef struct {
/**
Get Bluetooth device information.
- @param This Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
- @param DeviceInfoSize A pointer to the size, in bytes, of the DeviceInfo buffer.
- @param DeviceInfo A pointer to a callee allocated buffer that returns Bluetooth device information.
+ @param[in] This Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
+ @param[out] DeviceInfoSize A pointer to the size, in bytes, of the DeviceInfo buffer.
+ @param[out] DeviceInfo A pointer to a callee allocated buffer that returns Bluetooth device information.
- @retval EFI_SUCCESS The Bluetooth device information is returned successfully.
- @retval EFI_DEVICE_ERROR A hardware error occurred trying to retrieve the Bluetooth device information.
+ @retval EFI_SUCCESS The Bluetooth device information is returned successfully.
+ @retval EFI_DEVICE_ERROR A hardware error occurred trying to retrieve the Bluetooth device information.
**/
-typedef
+typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_IO_GET_DEVICE_INFO)(
- IN EFI_BLUETOOTH_IO_PROTOCOL *This,
- OUT UINTN *DeviceInfoSize,
- OUT VOID **DeviceInfo
+ IN EFI_BLUETOOTH_IO_PROTOCOL *This,
+ OUT UINTN *DeviceInfoSize,
+ OUT VOID **DeviceInfo
);
-
+
/**
Get Bluetooth SDP information.
- @param This Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
- @param SdpInfoSize A pointer to the size, in bytes, of the SdpInfo buffer.
- @param SdpInfo A pointer to a callee allocated buffer that returns Bluetooth SDP information.
+ @param[in] This Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
+ @param[out] SdpInfoSize A pointer to the size, in bytes, of the SdpInfo buffer.
+ @param[out] SdpInfo A pointer to a callee allocated buffer that returns Bluetooth SDP information.
- @retval EFI_SUCCESS The Bluetooth device information is returned successfully.
- @retval EFI_DEVICE_ERROR A hardware error occurred trying to retrieve the Bluetooth SDP information.
+ @retval EFI_SUCCESS The Bluetooth device information is returned successfully.
+ @retval EFI_DEVICE_ERROR A hardware error occurred trying to retrieve the Bluetooth SDP information.
**/
-typedef
+typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_IO_GET_SDP_INFO)(
- IN EFI_BLUETOOTH_IO_PROTOCOL *This,
- OUT UINTN *SdpInfoSize,
- OUT VOID **SdpInfo
+ IN EFI_BLUETOOTH_IO_PROTOCOL *This,
+ OUT UINTN *SdpInfoSize,
+ OUT VOID **SdpInfo
);
-
+
/**
Send L2CAP message (including L2CAP header).
- @param This Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
- @param BufferSize On input, indicates the size, in bytes, of the data buffer specified by Buffer.
- On output, indicates the amount of data actually transferred.
- @param Buffer A pointer to the buffer of data that will be transmitted to Bluetooth L2CAP layer.
- @param Timeout Indicating the transfer should be completed within this time frame. The units are in
- milliseconds. If Timeout is 0, then the caller must wait for the function to be completed
- until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
+ @param[in] This Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
+ @param[in, out] BufferSize On input, indicates the size, in bytes, of the data buffer specified by Buffer.
+ On output, indicates the amount of data actually transferred.
+ @param[in] Buffer A pointer to the buffer of data that will be transmitted to Bluetooth L2CAP layer.
+ @param[in] Timeout Indicating the transfer should be completed within this time frame. The units are in
+ milliseconds. If Timeout is 0, then the caller must wait for the function to be completed
+ until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
@retval EFI_SUCCESS The L2CAP message is sent successfully.
@retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
@@ -127,25 +121,25 @@ EFI_STATUS
@retval EFI_DEVICE_ERROR Sending L2CAP message fail due to host controller or device error.
**/
-typedef
+typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_IO_L2CAP_RAW_SEND)(
- IN EFI_BLUETOOTH_IO_PROTOCOL *This,
- IN OUT UINTN *BufferSize,
- IN VOID *Buffer,
- IN UINTN Timeout
+ IN EFI_BLUETOOTH_IO_PROTOCOL *This,
+ IN OUT UINTN *BufferSize,
+ IN VOID *Buffer,
+ IN UINTN Timeout
);
-
+
/**
Receive L2CAP message (including L2CAP header).
- @param This Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
- @param BufferSize On input, indicates the size, in bytes, of the data buffer specified by Buffer.
- On output, indicates the amount of data actually transferred.
- @param Buffer A pointer to the buffer of data that will be received from Bluetooth L2CAP layer.
- @param Timeout Indicating the transfer should be completed within this time frame. The units are in
- milliseconds. If Timeout is 0, then the caller must wait for the function to be completed
- until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
+ @param[in] This Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
+ @param[in] BufferSize On input, indicates the size, in bytes, of the data buffer specified by Buffer.
+ On output, indicates the amount of data actually transferred.
+ @param[out] Buffer A pointer to the buffer of data that will be received from Bluetooth L2CAP layer.
+ @param[in] Timeout Indicating the transfer should be completed within this time frame. The units are in
+ milliseconds. If Timeout is 0, then the caller must wait for the function to be completed
+ until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
@retval EFI_SUCCESS The L2CAP message is received successfully.
@retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
@@ -156,7 +150,7 @@ EFI_STATUS
@retval EFI_DEVICE_ERROR Receiving L2CAP message fail due to host controller or device error.
**/
-typedef
+typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_IO_L2CAP_RAW_RECEIVE)(
IN EFI_BLUETOOTH_IO_PROTOCOL *This,
@@ -164,16 +158,16 @@ EFI_STATUS
OUT VOID *Buffer,
IN UINTN Timeout
);
-
+
/**
Callback function, it is called when asynchronous transfer is completed.
- @param ChannelID Bluetooth L2CAP message channel ID.
- @param Data Data received via asynchronous transfer.
- @param DataLength The length of Data in bytes, received via asynchronous transfer.
- @param Context Context passed from asynchronous transfer request.
+ @param[in] ChannelID Bluetooth L2CAP message channel ID.
+ @param[in] Data Data received via asynchronous transfer.
+ @param[in] DataLength The length of Data in bytes, received via asynchronous transfer.
+ @param[in] Context Context passed from asynchronous transfer request.
- @retval EFI_SUCCESS The callback function complete successfully.
+ @retval EFI_SUCCESS The callback function complete successfully.
**/
typedef
@@ -184,25 +178,25 @@ EFI_STATUS
IN UINTN DataLength,
IN VOID *Context
);
-
+
/**
Receive L2CAP message (including L2CAP header) in non-blocking way.
- @param This Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
- @param IsNewTransfer If TRUE, a new transfer will be submitted. If FALSE, the request is deleted.
- @param PollingInterval Indicates the periodic rate, in milliseconds, that the transfer is to be executed.
- @param DataLength Specifies the length, in bytes, of the data to be received.
- @param Callback The callback function. This function is called if the asynchronous transfer is
- completed.
- @param Context Data passed into Callback function. This is optional parameter and may be NULL.
-
+ @param[in] This Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
+ @param[in] IsNewTransfer If TRUE, a new transfer will be submitted. If FALSE, the request is deleted.
+ @param[in] PollingInterval Indicates the periodic rate, in milliseconds, that the transfer is to be executed.
+ @param[in] DataLength Specifies the length, in bytes, of the data to be received.
+ @param[in] Callback The callback function. This function is called if the asynchronous transfer is
+ completed.
+ @param[in] Context Data passed into Callback function. This is optional parameter and may be NULL.
+
@retval EFI_SUCCESS The L2CAP asynchronous receive request is submitted successfully.
@retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
- DataLength is 0.
- If IsNewTransfer is TRUE, and an asynchronous receive request already exists.
**/
-typedef
+typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_IO_L2CAP_RAW_ASYNC_RECEIVE)(
IN EFI_BLUETOOTH_IO_PROTOCOL *This,
@@ -216,14 +210,14 @@ EFI_STATUS
/**
Send L2CAP message (excluding L2CAP header) to a specific channel.
- @param This Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
- @param Handle A handle created by EFI_BLUETOOTH_IO_PROTOCOL.L2CapConnect indicates which channel to send.
- @param BufferSize On input, indicates the size, in bytes, of the data buffer specified by Buffer.
- On output, indicates the amount of data actually transferred.
- @param Buffer A pointer to the buffer of data that will be transmitted to Bluetooth L2CAP layer.
- @param Timeout Indicating the transfer should be completed within this time frame. The units are in
- milliseconds. If Timeout is 0, then the caller must wait for the function to be completed
- until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
+ @param[in] This Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
+ @param[in] Handle A handle created by EFI_BLUETOOTH_IO_PROTOCOL.L2CapConnect indicates which channel to send.
+ @param[in, out] BufferSize On input, indicates the size, in bytes, of the data buffer specified by Buffer.
+ On output, indicates the amount of data actually transferred.
+ @param[in] Buffer A pointer to the buffer of data that will be transmitted to Bluetooth L2CAP layer.
+ @param[in] Timeout Indicating the transfer should be completed within this time frame. The units are in
+ milliseconds. If Timeout is 0, then the caller must wait for the function to be completed
+ until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
@retval EFI_SUCCESS The L2CAP message is sent successfully.
@retval EFI_NOT_FOUND Handle is invalid or not found.
@@ -235,26 +229,26 @@ EFI_STATUS
@retval EFI_DEVICE_ERROR Sending L2CAP message fail due to host controller or device error.
**/
-typedef
+typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_IO_L2CAP_SEND)(
- IN EFI_BLUETOOTH_IO_PROTOCOL *This,
- IN EFI_HANDLE Handle,
- IN OUT UINTN *BufferSize,
- IN VOID *Buffer,
- IN UINTN Timeout
+ IN EFI_BLUETOOTH_IO_PROTOCOL *This,
+ IN EFI_HANDLE Handle,
+ IN OUT UINTN *BufferSize,
+ IN VOID *Buffer,
+ IN UINTN Timeout
);
-
+
/**
Receive L2CAP message (excluding L2CAP header) from a specific channel.
- @param This Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
- @param Handle A handle created by EFI_BLUETOOTH_IO_PROTOCOL.L2CapConnect indicates which channel to receive.
- @param BufferSize Indicates the size, in bytes, of the data buffer specified by Buffer.
- @param Buffer A pointer to the buffer of data that will be received from Bluetooth L2CAP layer.
- @param Timeout Indicating the transfer should be completed within this time frame. The units are in
- milliseconds. If Timeout is 0, then the caller must wait for the function to be completed
- until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
+ @param[in] This Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
+ @param[in] Handle A handle created by EFI_BLUETOOTH_IO_PROTOCOL.L2CapConnect indicates which channel to receive.
+ @param[out] BufferSize Indicates the size, in bytes, of the data buffer specified by Buffer.
+ @param[out] Buffer A pointer to the buffer of data that will be received from Bluetooth L2CAP layer.
+ @param[in] Timeout Indicating the transfer should be completed within this time frame. The units are in
+ milliseconds. If Timeout is 0, then the caller must wait for the function to be completed
+ until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
@retval EFI_SUCCESS The L2CAP message is received successfully.
@retval EFI_NOT_FOUND Handle is invalid or not found.
@@ -266,22 +260,22 @@ EFI_STATUS
@retval EFI_DEVICE_ERROR Receiving L2CAP message fail due to host controller or device error.
**/
-typedef
+typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_IO_L2CAP_RECEIVE)(
- IN EFI_BLUETOOTH_IO_PROTOCOL *This,
- IN EFI_HANDLE Handle,
- OUT UINTN *BufferSize,
- OUT VOID **Buffer,
- IN UINTN Timeout
+ IN EFI_BLUETOOTH_IO_PROTOCOL *This,
+ IN EFI_HANDLE Handle,
+ OUT UINTN *BufferSize,
+ OUT VOID **Buffer,
+ IN UINTN Timeout
);
-
+
/**
Callback function, it is called when asynchronous transfer is completed.
- @param Data Data received via asynchronous transfer.
- @param DataLength The length of Data in bytes, received via asynchronous transfer.
- @param Context Context passed from asynchronous transfer request.
+ @param[in] Data Data received via asynchronous transfer.
+ @param[in] DataLength The length of Data in bytes, received via asynchronous transfer.
+ @param[in] Context Context passed from asynchronous transfer request.
@retval EFI_SUCCESS The callback function complete successfully.
@@ -289,20 +283,21 @@ EFI_STATUS
typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_IO_CHANNEL_SERVICE_CALLBACK) (
- IN VOID *Data,
- IN UINTN DataLength,
- IN VOID *Context
+ IN VOID *Data,
+ IN UINTN DataLength,
+ IN VOID *Context
);
-
+
/**
Receive L2CAP message (excluding L2CAP header) in non-blocking way from a specific channel.
- @param This Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
- @param Handel A handle created by EFI_BLUETOOTH_IO_PROTOCOL.L2CapConnect indicates which channel to receive.
- @param Callback The callback function. This function is called if the asynchronous transfer is
- completed.
- @param Context Data passed into Callback function. This is optional parameter and may be NULL.
-
+ @param[in] This Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
+ @param[in] Handel A handle created by EFI_BLUETOOTH_IO_PROTOCOL.L2CapConnect indicates which channel
+ to receive.
+ @param[in] Callback The callback function. This function is called if the asynchronous transfer is
+ completed.
+ @param[in] Context Data passed into Callback function. This is optional parameter and may be NULL.
+
@retval EFI_SUCCESS The L2CAP asynchronous receive request is submitted successfully.
@retval EFI_NOT_FOUND Handle is invalid or not found.
@retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
@@ -310,33 +305,33 @@ EFI_STATUS
- If an asynchronous receive request already exists on same Handle.
**/
-typedef
+typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_IO_L2CAP_ASYNC_RECEIVE)(
- IN EFI_BLUETOOTH_IO_PROTOCOL *This,
- IN EFI_HANDLE Handle,
- IN EFI_BLUETOOTH_IO_CHANNEL_SERVICE_CALLBACK Callback,
- IN VOID *Context
+ IN EFI_BLUETOOTH_IO_PROTOCOL *This,
+ IN EFI_HANDLE Handle,
+ IN EFI_BLUETOOTH_IO_CHANNEL_SERVICE_CALLBACK Callback,
+ IN VOID* Context
);
-
+
/**
Do L2CAP connection.
- @param This Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
- @param Handel A handle to indicate this L2CAP connection.
- @param Psm Bluetooth PSM. See Bluetooth specification for detail.
- @param Mtu Bluetooth MTU. See Bluetooth specification for detail.
- @param Callback The callback function. This function is called whenever there is message received
- in this channel.
- @param Context Data passed into Callback function. This is optional parameter and may be NULL.
-
+ @param[in] This Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
+ @param[out] Handel A handle to indicate this L2CAP connection.
+ @param[in] Psm Bluetooth PSM. See Bluetooth specification for detail.
+ @param[in] Mtu Bluetooth MTU. See Bluetooth specification for detail.
+ @param[in] Callback The callback function. This function is called whenever there is message received
+ in this channel.
+ @param[in] Context Data passed into Callback function. This is optional parameter and may be NULL.
+
@retval EFI_SUCCESS The Bluetooth L2CAP layer connection is created successfully.
@retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
- Handle is NULL.
@retval EFI_DEVICE_ERROR A hardware error occurred trying to do Bluetooth L2CAP connection.
**/
-typedef
+typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_IO_L2CAP_CONNECT)(
IN EFI_BLUETOOTH_IO_PROTOCOL *This,
@@ -346,42 +341,42 @@ EFI_STATUS
IN EFI_BLUETOOTH_IO_CHANNEL_SERVICE_CALLBACK Callback,
IN VOID *Context
);
-
+
/**
Do L2CAP disconnection.
- @param This Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
- @param Handel A handle to indicate this L2CAP connection.
-
+ @param[in] This Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
+ @param[in] Handel A handle to indicate this L2CAP connection.
+
@retval EFI_SUCCESS The Bluetooth L2CAP layer is disconnected successfully.
@retval EFI_NOT_FOUND Handle is invalid or not found.
@retval EFI_DEVICE_ERROR A hardware error occurred trying to do Bluetooth L2CAP disconnection.
**/
-typedef
+typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_IO_L2CAP_DISCONNECT)(
IN EFI_BLUETOOTH_IO_PROTOCOL *This,
IN EFI_HANDLE Handle
);
-
+
/**
Register L2CAP callback function for special channel.
- @param This Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
- @param Handel A handle to indicate this L2CAP connection.
- @param Psm Bluetooth PSM. See Bluetooth specification for detail.
- @param Mtu Bluetooth MTU. See Bluetooth specification for detail.
- @param Callback The callback function. This function is called whenever there is message received
- in this channel. NULL means unregister.
- @param Context Data passed into Callback function. This is optional parameter and may be NULL.
-
+ @param[in] This Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
+ @param[out] Handel A handle to indicate this L2CAP connection.
+ @param[in] Psm Bluetooth PSM. See Bluetooth specification for detail.
+ @param[in] Mtu Bluetooth MTU. See Bluetooth specification for detail.
+ @param[in] Callback The callback function. This function is called whenever there is message received
+ in this channel. NULL means unregister.
+ @param[in] Context Data passed into Callback function. This is optional parameter and may be NULL.
+
@retval EFI_SUCCESS The Bluetooth L2CAP callback function is registered successfully.
@retval EFI_ALREADY_STARTED The callback function already exists when register.
@retval EFI_NOT_FOUND The callback function does not exist when unregister.
**/
-typedef
+typedef
EFI_STATUS
(EFIAPI *EFI_BLUETOOTH_IO_L2CAP_REGISTER_SERVICE)(
IN EFI_BLUETOOTH_IO_PROTOCOL *This,
@@ -391,9 +386,9 @@ EFI_STATUS
IN EFI_BLUETOOTH_IO_CHANNEL_SERVICE_CALLBACK Callback,
IN VOID *Context
);
-
+
///
-/// This protocol provides service for Bluetooth L2CAP (Logical Link Control and Adaptation Protocol)
+/// This protocol provides service for Bluetooth L2CAP (Logical Link Control and Adaptation Protocol)
/// and SDP (Service Discovery Protocol).
///
struct _EFI_BLUETOOTH_IO_PROTOCOL {
diff --git a/MdePkg/Include/Protocol/BluetoothLeConfig.h b/MdePkg/Include/Protocol/BluetoothLeConfig.h
new file mode 100644
index 000000000000..eb92015d9ca0
--- /dev/null
+++ b/MdePkg/Include/Protocol/BluetoothLeConfig.h
@@ -0,0 +1,630 @@
+/** @file
+ EFI Bluetooth LE Config Protocol as defined in UEFI 2.7.
+ This protocol abstracts user interface configuration for BluetoothLe device.
+
+ Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ This Protocol is introduced in UEFI Specification 2.7
+
+**/
+
+#ifndef __EFI_BLUETOOTH_LE_CONFIG_H__
+#define __EFI_BLUETOOTH_LE_CONFIG_H__
+
+#include <Protocol/BluetoothConfig.h>
+#include <Protocol/BluetoothAttribute.h>
+
+#define EFI_BLUETOOTH_LE_CONFIG_PROTOCOL_GUID \
+ { \
+ 0x8f76da58, 0x1f99, 0x4275, { 0xa4, 0xec, 0x47, 0x56, 0x51, 0x5b, 0x1c, 0xe8 } \
+ }
+
+typedef struct _EFI_BLUETOOTH_LE_CONFIG_PROTOCOL EFI_BLUETOOTH_LE_CONFIG_PROTOCOL;
+
+/**
+ Initialize BluetoothLE host controller and local device.
+
+ The Init() function initializes BluetoothLE host controller and local device.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
+
+ @retval EFI_SUCCESS The BluetoothLE host controller and local device is initialized successfully.
+ @retval EFI_DEVICE_ERROR A hardware error occurred trying to initialize the BluetoothLE host controller
+ and local device.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_BLUETOOTH_LE_CONFIG_INIT)(
+ IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This
+ );
+
+typedef struct {
+ ///
+ /// The version of the structure. A value of zero represents the EFI_BLUETOOTH_LE_CONFIG_SCAN_PARAMETER
+ /// structure as defined here. Future version of this specification may extend this data structure in a
+ /// backward compatible way and increase the value of Version.
+ ///
+ UINT32 Version;
+ ///
+ /// Passive scanning or active scanning. See Bluetooth specification.
+ ///
+ UINT8 ScanType;
+ ///
+ /// Recommended scan interval to be used while performing scan.
+ ///
+ UINT16 ScanInterval;
+ ///
+ /// Recommended scan window to be used while performing a scan.
+ ///
+ UINT16 ScanWindow;
+ ///
+ /// Recommended scanning filter policy to be used while performing a scan.
+ ///
+ UINT8 ScanningFilterPolicy;
+ ///
+ /// This is one byte flag to serve as a filter to remove unneeded scan
+ /// result. For example, set BIT0 means scan in LE Limited Discoverable
+ /// Mode. Set BIT1 means scan in LE General Discoverable Mode.
+ ///
+ UINT8 AdvertisementFlagFilter;
+} EFI_BLUETOOTH_LE_CONFIG_SCAN_PARAMETER;
+
+typedef struct{
+ BLUETOOTH_LE_ADDRESS BDAddr;
+ BLUETOOTH_LE_ADDRESS DirectAddress;
+ UINT8 RemoteDeviceState;
+ INT8 RSSI;
+ UINTN AdvertisementDataSize;
+ VOID *AdvertisementData;
+} EFI_BLUETOOTH_LE_SCAN_CALLBACK_INFORMATION;
+
+/**
+ Callback function, it is called if a BluetoothLE device is found during scan process.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
+ @param[in] Context Context passed from scan request.
+ @param[in] CallbackInfo Data related to scan result. NULL CallbackInfo means scan complete.
+
+ @retval EFI_SUCCESS The callback function complete successfully.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_BLUETOOTH_LE_CONFIG_SCAN_CALLBACK_FUNCTION) (
+ IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
+ IN VOID *Context,
+ IN EFI_BLUETOOTH_LE_SCAN_CALLBACK_INFORMATION *CallbackInfo
+ );
+
+/**
+ Scan BluetoothLE device.
+
+ The Scan() function scans BluetoothLE device. When this function is returned, it just means scan
+ request is submitted. It does not mean scan process is started or finished. Whenever there is a
+ BluetoothLE device is found, the Callback function will be called. Callback function might be
+ called before this function returns or after this function returns
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
+ @param[in] 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[in] Timeout Duration in milliseconds for which to scan.
+ @param[in] ScanParameter If it is not NULL, the ScanParameter is used to perform a scan by the BluetoothLE bus driver.
+ If it is NULL, the default parameter is used.
+ @param[in] Callback The callback function. This function is called if a BluetoothLE device is found during
+ scan process.
+ @param[in] Context Data passed into Callback function. This is optional parameter and may be NULL.
+
+ @retval EFI_SUCCESS The Bluetooth scan request is submitted.
+ @retval EFI_DEVICE_ERROR A hardware error occurred trying to scan the BluetoothLE device.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_BLUETOOTH_LE_CONFIG_SCAN)(
+ IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
+ IN BOOLEAN ReScan,
+ IN UINT32 Timeout,
+ IN EFI_BLUETOOTH_LE_CONFIG_SCAN_PARAMETER *ScanParameter, OPTIONAL
+ IN EFI_BLUETOOTH_LE_CONFIG_SCAN_CALLBACK_FUNCTION Callback,
+ IN VOID *Context
+ );
+
+typedef struct {
+ ///
+ /// The version of the structure. A value of zero represents the
+ /// EFI_BLUETOOTH_LE_CONFIG_CONNECT_PARAMETER
+ /// structure as defined here. Future version of this specification may
+ /// extend this data structure in a backward compatible way and
+ /// increase the value of Version.
+ ///
+ UINT32 Version;
+ ///
+ /// Recommended scan interval to be used while performing scan before connect.
+ ///
+ UINT16 ScanInterval;
+ ///
+ /// Recommended scan window to be used while performing a connection
+ ///
+ UINT16 ScanWindow;
+ ///
+ /// Minimum allowed connection interval. Shall be less than or equal to ConnIntervalMax.
+ ///
+ UINT16 ConnIntervalMin;
+ ///
+ /// Maximum allowed connection interval. Shall be greater than or equal to ConnIntervalMin.
+ ///
+ UINT16 ConnIntervalMax;
+ ///
+ /// Slave latency for the connection in number of connection events.
+ ///
+ UINT16 ConnLatency;
+ ///
+ /// Link supervision timeout for the connection.
+ ///
+ UINT16 SupervisionTimeout;
+} EFI_BLUETOOTH_LE_CONFIG_CONNECT_PARAMETER;
+
+/**
+ Connect a BluetoothLE device.
+
+ The Connect() function connects a Bluetooth device. When this function is returned successfully,
+ a new EFI_BLUETOOTH_IO_PROTOCOL is created.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
+ @param[in] AutoReconnect If TRUE, the BluetoothLE host controller needs to do an auto
+ reconnect. If FALSE, the BluetoothLE host controller does not do
+ an auto reconnect.
+ @param[in] DoBonding If TRUE, the BluetoothLE host controller needs to do a bonding.
+ If FALSE, the BluetoothLE host controller does not do a bonding.
+ @param[in] ConnectParameter If it is not NULL, the ConnectParameter is used to perform a
+ scan by the BluetoothLE bus driver. If it is NULL, the default
+ parameter is used.
+ @param[in] BD_ADDR The address of the BluetoothLE device to be connected.
+
+ @retval EFI_SUCCESS The BluetoothLE device is connected successfully.
+ @retval EFI_ALREADY_STARTED The BluetoothLE device is already connected.
+ @retval EFI_NOT_FOUND The BluetoothLE device is not found.
+ @retval EFI_DEVICE_ERROR A hardware error occurred trying to connect the BluetoothLE device.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_BLUETOOTH_LE_CONFIG_CONNECT)(
+ IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
+ IN BOOLEAN AutoReconnect,
+ IN BOOLEAN DoBonding,
+ IN EFI_BLUETOOTH_LE_CONFIG_CONNECT_PARAMETER *ConnectParameter, OPTIONAL
+ IN BLUETOOTH_LE_ADDRESS *BD_ADDR
+ );
+
+/**
+ Disconnect a BluetoothLE device.
+
+ The Disconnect() function disconnects a BluetoothLE device. When this function is returned
+ successfully, the EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL associated with this device is
+ destroyed and all services associated are stopped.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
+ @param[in] BD_ADDR The address of BluetoothLE device to be connected.
+ @param[in] Reason Bluetooth disconnect reason. See Bluetooth specification for detail.
+
+ @retval EFI_SUCCESS The BluetoothLE device is disconnected successfully.
+ @retval EFI_NOT_STARTED The BluetoothLE device is not connected.
+ @retval EFI_NOT_FOUND The BluetoothLE device is not found.
+ @retval EFI_DEVICE_ERROR A hardware error occurred trying to disconnect the BluetoothLE device.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_BLUETOOTH_LE_CONFIG_DISCONNECT)(
+ IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
+ IN BLUETOOTH_LE_ADDRESS *BD_ADDR,
+ IN UINT8 Reason
+ );
+
+/**
+ Get BluetoothLE configuration data.
+
+ The GetData() function returns BluetoothLE configuration data. For remote BluetoothLE device
+ configuration data, please use GetRemoteData() function with valid BD_ADDR.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
+ @param[in] DataType Configuration data type.
+ @param[in, out] DataSize On input, indicates the size, in bytes, of the data buffer specified by Data.
+ On output, indicates the amount of data actually returned.
+ @param[in, out] Data A pointer to the buffer of data that will be returned.
+
+ @retval EFI_SUCCESS The BluetoothLE configuration data is returned successfully.
+ @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
+ - DataSize is NULL.
+ - *DataSize is 0.
+ - Data is NULL.
+ @retval EFI_UNSUPPORTED The DataType is unsupported.
+ @retval EFI_NOT_FOUND The DataType is not found.
+ @retval EFI_BUFFER_TOO_SMALL The buffer is too small to hold the buffer.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_BLUETOOTH_LE_CONFIG_GET_DATA) (
+ IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
+ IN EFI_BLUETOOTH_CONFIG_DATA_TYPE DataType,
+ IN OUT UINTN *DataSize,
+ IN OUT VOID *Data OPTIONAL
+ );
+
+/**
+ Set BluetoothLE configuration data.
+
+ The SetData() function sets local BluetoothLE device configuration data. Not all DataType can be
+ set.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
+ @param[in] DataType Configuration data type.
+ @param[in] DataSize Indicates the size, in bytes, of the data buffer specified by Data.
+ @param[in] Data A pointer to the buffer of data that will be set.
+
+ @retval EFI_SUCCESS The BluetoothLE configuration data is set successfully.
+ @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
+ - DataSize is 0.
+ - Data is NULL.
+ @retval EFI_UNSUPPORTED The DataType is unsupported.
+ @retval EFI_WRITE_PROTECTED Cannot set configuration data.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_BLUETOOTH_LE_CONFIG_SET_DATA) (
+ IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
+ IN EFI_BLUETOOTH_CONFIG_DATA_TYPE DataType,
+ IN UINTN DataSize,
+ IN VOID *Data
+ );
+
+/**
+ Get remove BluetoothLE device configuration data.
+
+ The GetRemoteData() function returns remote BluetoothLE device configuration data.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
+ @param[in] DataType Configuration data type.
+ @param[in] BDAddr Remote BluetoothLE device address.
+ @param[in, out] DataSize On input, indicates the size, in bytes, of the data buffer specified by Data.
+ On output, indicates the amount of data actually returned.
+ @param[in, out] Data A pointer to the buffer of data that will be returned.
+
+ @retval EFI_SUCCESS The remote BluetoothLE device configuration data is returned successfully.
+ @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
+ - DataSize is NULL.
+ - *DataSize is 0.
+ - Data is NULL.
+ @retval EFI_UNSUPPORTED The DataType is unsupported.
+ @retval EFI_NOT_FOUND The DataType is not found.
+ @retval EFI_BUFFER_TOO_SMALL The buffer is too small to hold the buffer.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_BLUETOOTH_LE_CONFIG_GET_REMOTE_DATA) (
+ IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
+ IN EFI_BLUETOOTH_CONFIG_DATA_TYPE DataType,
+ IN BLUETOOTH_LE_ADDRESS *BDAddr,
+ IN OUT UINTN *DataSize,
+ IN OUT VOID *Data
+ );
+
+typedef enum {
+ ///
+ /// It indicates an authorization request. No data is associated with the callback
+ /// input. In the output data, the application should return the authorization value.
+ /// The data structure is BOOLEAN. TRUE means YES. FALSE means NO.
+ ///
+ EfiBluetoothSmpAuthorizationRequestEvent,
+ ///
+ /// It indicates that a passkey has been generated locally by the driver, and the same
+ /// passkey should be entered at the remote device. The callback input data is the
+ /// passkey of type UINT32, to be displayed by the application. No output data
+ /// should be returned.
+ ///
+ EfiBluetoothSmpPasskeyReadyEvent,
+ ///
+ /// It indicates that the driver is requesting for the passkey has been generated at
+ /// the remote device. No data is associated with the callback input. The output data
+ /// is the passkey of type UINT32, to be entered by the user.
+ ///
+ EfiBluetoothSmpPasskeyRequestEvent,
+ ///
+ /// It indicates that the driver is requesting for the passkey that has been pre-shared
+ /// out-of-band with the remote device. No data is associated with the callback
+ /// input. The output data is the stored OOB data of type UINT8[16].
+ ///
+ EfiBluetoothSmpOOBDataRequestEvent,
+ ///
+ /// In indicates that a number have been generated locally by the bus driver, and
+ /// also at the remote device, and the bus driver wants to know if the two numbers
+ /// match. The callback input data is the number of type UINT32. The output data
+ /// is confirmation value of type BOOLEAN. TRUE means comparison pass. FALSE
+ /// means comparison fail.
+ ///
+ EfiBluetoothSmpNumericComparisonEvent,
+} EFI_BLUETOOTH_LE_SMP_EVENT_DATA_TYPE;
+
+/**
+ The callback function for SMP.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
+ @param[in] Context Data passed into callback function. This is optional parameter
+ and may be NULL.
+ @param[in] BDAddr Remote BluetoothLE device address.
+ @param[in] EventDataType Event data type in EFI_BLUETOOTH_LE_SMP_EVENT_DATA_TYPE.
+ @param[in] DataSize Indicates the size, in bytes, of the data buffer specified by Data.
+ @param[in] Data A pointer to the buffer of data.
+
+ @retval EFI_SUCCESS The callback function complete successfully.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_BLUETOOTH_LE_SMP_CALLBACK) (
+ IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
+ IN VOID *Context,
+ IN BLUETOOTH_LE_ADDRESS *BDAddr,
+ IN EFI_BLUETOOTH_LE_SMP_EVENT_DATA_TYPE EventDataType,
+ IN UINTN DataSize,
+ IN VOID *Data
+ );
+
+/**
+ Register Security Manager Protocol callback function for user authentication/authorization.
+
+ The RegisterSmpAuthCallback() function register Security Manager Protocol callback
+ function for user authentication/authorization.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
+ @param[in] Callback Callback function for user authentication/authorization.
+ @param[in] Context Data passed into Callback function. This is optional parameter and may be NULL.
+
+ @retval EFI_SUCCESS The SMP callback function is registered successfully.
+ @retval EFI_ALREADY_STARTED A callback function is already registered on the same attribute
+ opcode and attribute handle, when the Callback is not NULL.
+ @retval EFI_NOT_STARTED A callback function is not registered on the same attribute opcode
+ and attribute handle, when the Callback is NULL.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_BLUETOOTH_LE_REGISTER_SMP_AUTH_CALLBACK) (
+ IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
+ IN EFI_BLUETOOTH_LE_SMP_CALLBACK Callback,
+ IN VOID *Context
+ );
+
+/**
+ Send user authentication/authorization to remote device.
+
+ The SendSmpAuthData() function sends user authentication/authorization to remote device. It
+ should be used to send these information after the caller gets the request data from the callback
+ function by RegisterSmpAuthCallback().
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
+ @param[in] BDAddr Remote BluetoothLE device address.
+ @param[in] EventDataType Event data type in EFI_BLUETOOTH_LE_SMP_EVENT_DATA_TYPE.
+ @param[in] DataSize The size of Data in bytes, of the data buffer specified by Data.
+ @param[in] Data A pointer to the buffer of data that will be sent. The data format
+ depends on the type of SMP event data being responded to.
+
+ @retval EFI_SUCCESS The SMP authorization data is sent successfully.
+ @retval EFI_NOT_READY SMP is not in the correct state to receive the auth data.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_BLUETOOTH_LE_SEND_SMP_AUTH_DATA) (
+ IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
+ IN BLUETOOTH_LE_ADDRESS *BDAddr,
+ IN EFI_BLUETOOTH_LE_SMP_EVENT_DATA_TYPE EventDataType,
+ IN UINTN DataSize,
+ IN VOID *Data
+ );
+
+typedef enum {
+ // For local device only
+ EfiBluetoothSmpLocalIR, /* If Key hierarchy is supported */
+ EfiBluetoothSmpLocalER, /* If Key hierarchy is supported */
+ EfiBluetoothSmpLocalDHK, /* If Key hierarchy is supported. OPTIONAL */
+ // For peer specific
+ EfiBluetoothSmpKeysDistributed = 0x1000,
+ EfiBluetoothSmpKeySize,
+ EfiBluetoothSmpKeyType,
+ EfiBluetoothSmpPeerLTK,
+ EfiBluetoothSmpPeerIRK,
+ EfiBluetoothSmpPeerCSRK,
+ EfiBluetoothSmpPeerRand,
+ EfiBluetoothSmpPeerEDIV,
+ EfiBluetoothSmpPeerSignCounter,
+ EfiBluetoothSmpLocalLTK, /* If Key hierarchy not supported */
+ EfiBluetoothSmpLocalIRK, /* If Key hierarchy not supported */
+ EfiBluetoothSmpLocalCSRK, /* If Key hierarchy not supported */
+ EfiBluetoothSmpLocalSignCounter,
+ EfiBluetoothSmpLocalDIV,
+ EfiBluetoothSmpPeerAddressList,
+ EfiBluetoothSmpMax,
+} EFI_BLUETOOTH_LE_SMP_DATA_TYPE;
+
+/**
+ The callback function to get SMP data.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
+ @param[in] Context Data passed into callback function. This is optional parameter
+ and may be NULL.
+ @param[in] BDAddr Remote BluetoothLE device address. For Local device setting, it
+ should be NULL.
+ @param[in] DataType Data type in EFI_BLUETOOTH_LE_SMP_DATA_TYPE.
+ @param[in, out] DataSize On input, indicates the size, in bytes, of the data buffer specified
+ by Data. On output, indicates the amount of data actually returned.
+ @param[out] Data A pointer to the buffer of data that will be returned.
+
+ @retval EFI_SUCCESS The callback function complete successfully.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI * EFI_BLUETOOTH_LE_CONFIG_SMP_GET_DATA_CALLBACK) (
+ IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
+ IN VOID *Context,
+ IN BLUETOOTH_LE_ADDRESS *BDAddr,
+ IN EFI_BLUETOOTH_LE_SMP_DATA_TYPE DataType,
+ IN OUT UINTN *DataSize,
+ OUT VOID *Data
+ );
+
+/**
+ Register a callback function to get SMP related data.
+
+ The RegisterSmpGetDataCallback() function registers a callback function to get SMP related data.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
+ @param[in] Callback Callback function for SMP get data.
+ @param[in] Context Data passed into Callback function. This is optional parameter and may be NULL.
+
+ @retval EFI_SUCCESS The SMP get data callback function is registered successfully.
+ @retval EFI_ALREADY_STARTED A callback function is already registered on the same attribute
+ opcode and attribute handle, when the Callback is not NULL.
+ @retval EFI_NOT_STARTED A callback function is not registered on the same attribute opcode
+ and attribute handle, when the Callback is NULL
+**/
+typedef
+EFI_STATUS
+(EFIAPI * EFI_BLUETOOTH_LE_CONFIG_REGISTER_SMP_GET_DATA_CALLBACK) (
+ IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
+ IN EFI_BLUETOOTH_LE_CONFIG_SMP_GET_DATA_CALLBACK Callback,
+ IN VOID *Context
+ );
+
+/**
+ The callback function to set SMP data.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
+ @param[in] Context Data passed into callback function. This is optional parameter
+ and may be NULL.
+ @param[in] BDAddr Remote BluetoothLE device address.
+ @param[in] DataType Data type in EFI_BLUETOOTH_LE_SMP_DATA_TYPE.
+ @param[in] DataSize Indicates the size, in bytes, of the data buffer specified by Data.
+ @param[in] Data A pointer to the buffer of data.
+
+ @retval EFI_SUCCESS The callback function complete successfully.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI * EFI_BLUETOOTH_LE_CONFIG_SMP_SET_DATA_CALLBACK) (
+ IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
+ IN VOID *Context,
+ IN BLUETOOTH_LE_ADDRESS *BDAddr,
+ IN EFI_BLUETOOTH_LE_SMP_DATA_TYPE Type,
+ IN UINTN DataSize,
+ IN VOID *Data
+ );
+
+/**
+ Register a callback function to set SMP related data.
+
+ The RegisterSmpSetDataCallback() function registers a callback function to set SMP related data.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
+ @param[in] Callback Callback function for SMP set data.
+ @param[in] Context Data passed into Callback function. This is optional parameter and may be NULL.
+
+ @retval EFI_SUCCESS The SMP set data callback function is registered successfully.
+ @retval EFI_ALREADY_STARTED A callback function is already registered on the same attribute
+ opcode and attribute handle, when the Callback is not NULL.
+ @retval EFI_NOT_STARTED A callback function is not registered on the same attribute opcode
+ and attribute handle, when the Callback is NULL
+**/
+typedef
+EFI_STATUS
+(EFIAPI * EFI_BLUETOOTH_LE_CONFIG_REGISTER_SMP_SET_DATA_CALLBACK) (
+ IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
+ IN EFI_BLUETOOTH_LE_CONFIG_SMP_SET_DATA_CALLBACK Callback,
+ IN VOID *Context
+ );
+
+/**
+ The callback function to hook connect complete event.
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
+ @param[in] Context Data passed into callback function. This is optional parameter
+ and may be NULL.
+ @param[in] CallbackType The value defined in EFI_BLUETOOTH_CONNECT_COMPLETE_CALLBACK_TYPE.
+ @param[in] BDAddr Remote BluetoothLE device address.
+ @param[in] InputBuffer A pointer to the buffer of data that is input from callback caller.
+ @param[in] InputBufferSize Indicates the size, in bytes, of the data buffer specified by InputBuffer.
+
+ @retval EFI_SUCCESS The callback function complete successfully.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_BLUETOOTH_LE_CONFIG_CONNECT_COMPLETE_CALLBACK) (
+ IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
+ IN VOID *Context,
+ IN EFI_BLUETOOTH_CONNECT_COMPLETE_CALLBACK_TYPE CallbackType,
+ IN BLUETOOTH_LE_ADDRESS *BDAddr,
+ IN VOID *InputBuffer,
+ IN UINTN InputBufferSize
+ );
+
+/**
+ Register link connect complete callback function.
+
+ The RegisterLinkConnectCompleteCallback() function registers Bluetooth link connect
+ complete callback function. The Bluetooth Configuration driver may call
+ RegisterLinkConnectCompleteCallback() to register a callback function. During pairing,
+ Bluetooth bus driver must trigger this callback function to report device state, if it is registered.
+ Then Bluetooth Configuration driver will get information on device connection, according to
+ CallbackType defined by EFI_BLUETOOTH_CONNECT_COMPLETE_CALLBACK_TYPE
+
+ @param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
+ @param[in] Callback The callback function. NULL means unregister.
+ @param[in] Context Data passed into Callback function. This is optional parameter and may be NULL.
+
+ @retval EFI_SUCCESS The link connect complete callback function is registered successfully.
+ @retval EFI_ALREADY_STARTED A callback function is already registered on the same attribute
+ opcode and attribute handle, when the Callback is not NULL.
+ @retval EFI_NOT_STARTED A callback function is not registered on the same attribute opcode
+ and attribute handle, when the Callback is NULL
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_BLUETOOTH_LE_CONFIG_REGISTER_CONNECT_COMPLETE_CALLBACK) (
+ IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
+ IN EFI_BLUETOOTH_LE_CONFIG_CONNECT_COMPLETE_CALLBACK Callback,
+ IN VOID *Context
+ );
+
+///
+/// This protocol abstracts user interface configuration for BluetoothLe device.
+///
+struct _EFI_BLUETOOTH_LE_CONFIG_PROTOCOL {
+ EFI_BLUETOOTH_LE_CONFIG_INIT Init;
+ EFI_BLUETOOTH_LE_CONFIG_SCAN Scan;
+ EFI_BLUETOOTH_LE_CONFIG_CONNECT Connect;
+ EFI_BLUETOOTH_LE_CONFIG_DISCONNECT Disconnect;
+ EFI_BLUETOOTH_LE_CONFIG_GET_DATA GetData;
+ EFI_BLUETOOTH_LE_CONFIG_SET_DATA SetData;
+ EFI_BLUETOOTH_LE_CONFIG_GET_REMOTE_DATA GetRemoteData;
+ EFI_BLUETOOTH_LE_REGISTER_SMP_AUTH_CALLBACK RegisterSmpAuthCallback;
+ EFI_BLUETOOTH_LE_SEND_SMP_AUTH_DATA SendSmpAuthData;
+ EFI_BLUETOOTH_LE_CONFIG_REGISTER_SMP_GET_DATA_CALLBACK RegisterSmpGetDataCallback;
+ EFI_BLUETOOTH_LE_CONFIG_REGISTER_SMP_SET_DATA_CALLBACK RegisterSmpSetDataCallback;
+ EFI_BLUETOOTH_LE_CONFIG_REGISTER_CONNECT_COMPLETE_CALLBACK RegisterLinkConnectCompleteCallback;
+};
+
+extern EFI_GUID gEfiBluetoothLeConfigProtocolGuid;
+
+#endif
+
diff --git a/MdePkg/Include/Protocol/BootManagerPolicy.h b/MdePkg/Include/Protocol/BootManagerPolicy.h
index f348e3f101da..42e90fdedeeb 100644
--- a/MdePkg/Include/Protocol/BootManagerPolicy.h
+++ b/MdePkg/Include/Protocol/BootManagerPolicy.h
@@ -4,14 +4,8 @@
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
-
- 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) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef __BOOT_MANAGER_POLICY_H__
@@ -53,7 +47,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 +55,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 +74,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 +92,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 +109,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)(
diff --git a/MdePkg/Include/Protocol/BusSpecificDriverOverride.h b/MdePkg/Include/Protocol/BusSpecificDriverOverride.h
index dcaeb9c53574..878458e9c8ea 100644
--- a/MdePkg/Include/Protocol/BusSpecificDriverOverride.h
+++ b/MdePkg/Include/Protocol/BusSpecificDriverOverride.h
@@ -6,14 +6,8 @@
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
-
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -34,14 +28,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.
diff --git a/MdePkg/Include/Protocol/Capsule.h b/MdePkg/Include/Protocol/Capsule.h
index e35035da6a29..0122b6ebcdf4 100644
--- a/MdePkg/Include/Protocol/Capsule.h
+++ b/MdePkg/Include/Protocol/Capsule.h
@@ -1,23 +1,17 @@
/** @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>
-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>
+SPDX-License-Identifier: BSD-2-Clause-Patent
**/
diff --git a/MdePkg/Include/Protocol/ComponentName.h b/MdePkg/Include/Protocol/ComponentName.h
index cdd87fce3157..91344fc576c6 100644
--- a/MdePkg/Include/Protocol/ComponentName.h
+++ b/MdePkg/Include/Protocol/ComponentName.h
@@ -1,16 +1,10 @@
/** @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.
-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>
+SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -110,7 +104,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 +113,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;
};
diff --git a/MdePkg/Include/Protocol/ComponentName2.h b/MdePkg/Include/Protocol/ComponentName2.h
index d005b02b873f..3d201501708a 100644
--- a/MdePkg/Include/Protocol/ComponentName2.h
+++ b/MdePkg/Include/Protocol/ComponentName2.h
@@ -1,16 +1,10 @@
/** @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
-
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -32,7 +26,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 +36,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 +46,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 +144,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 +156,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;
};
diff --git a/MdePkg/Include/Protocol/Cpu.h b/MdePkg/Include/Protocol/Cpu.h
index cfb2e7570155..72e061252326 100644
--- a/MdePkg/Include/Protocol/Cpu.h
+++ b/MdePkg/Include/Protocol/Cpu.h
@@ -3,14 +3,8 @@
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
-
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -61,14 +55,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 +92,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 +124,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 +146,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 +169,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 +274,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;
};
diff --git a/MdePkg/Include/Protocol/CpuIo2.h b/MdePkg/Include/Protocol/CpuIo2.h
index 49fb470713e7..173b00d5c3a4 100644
--- a/MdePkg/Include/Protocol/CpuIo2.h
+++ b/MdePkg/Include/Protocol/CpuIo2.h
@@ -1,28 +1,22 @@
/** @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>
- 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) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
@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 +51,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 +88,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.
**/
diff --git a/MdePkg/Include/Protocol/DebugPort.h b/MdePkg/Include/Protocol/DebugPort.h
index ba14591107e7..d3aa3bbf2a4f 100644
--- a/MdePkg/Include/Protocol/DebugPort.h
+++ b/MdePkg/Include/Protocol/DebugPort.h
@@ -1,17 +1,11 @@
/** @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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -35,14 +29,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 +44,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 +67,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 +91,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
diff --git a/MdePkg/Include/Protocol/DebugSupport.h b/MdePkg/Include/Protocol/DebugSupport.h
index 80f87061bd0e..3ab78ee1baf3 100644
--- a/MdePkg/Include/Protocol/DebugSupport.h
+++ b/MdePkg/Include/Protocol/DebugSupport.h
@@ -5,16 +5,11 @@
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>
+Copyright (c) 2020, Hewlett Packard Enterprise Development LP. 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.
+SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -183,7 +178,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;
@@ -609,6 +604,59 @@ typedef struct {
UINT64 FAR; // Fault Address Register
} EFI_SYSTEM_CONTEXT_AARCH64;
+///
+/// RISC-V processor exception types.
+///
+#define EXCEPT_RISCV_INST_MISALIGNED 0
+#define EXCEPT_RISCV_INST_ACCESS_FAULT 1
+#define EXCEPT_RISCV_ILLEGAL_INST 2
+#define EXCEPT_RISCV_BREAKPOINT 3
+#define EXCEPT_RISCV_LOAD_ADDRESS_MISALIGNED 4
+#define EXCEPT_RISCV_LOAD_ACCESS_FAULT 5
+#define EXCEPT_RISCV_STORE_AMO_ADDRESS_MISALIGNED 6
+#define EXCEPT_RISCV_STORE_AMO_ACCESS_FAULT 7
+#define EXCEPT_RISCV_ENV_CALL_FROM_UMODE 8
+#define EXCEPT_RISCV_ENV_CALL_FROM_SMODE 9
+#define EXCEPT_RISCV_ENV_CALL_FROM_HMODE 10
+#define EXCEPT_RISCV_ENV_CALL_FROM_MMODE 11
+
+#define EXCEPT_RISCV_SOFTWARE_INT 0x0
+#define EXCEPT_RISCV_TIMER_INT 0x1
+
+typedef struct {
+ UINT64 X0;
+ UINT64 X1;
+ UINT64 X2;
+ UINT64 X3;
+ UINT64 X4;
+ UINT64 X5;
+ UINT64 X6;
+ UINT64 X7;
+ UINT64 X8;
+ UINT64 X9;
+ UINT64 X10;
+ UINT64 X11;
+ UINT64 X12;
+ UINT64 X13;
+ UINT64 X14;
+ UINT64 X15;
+ UINT64 X16;
+ UINT64 X17;
+ UINT64 X18;
+ UINT64 X19;
+ UINT64 X20;
+ UINT64 X21;
+ UINT64 X22;
+ UINT64 X23;
+ UINT64 X24;
+ UINT64 X25;
+ UINT64 X26;
+ UINT64 X27;
+ UINT64 X28;
+ UINT64 X29;
+ UINT64 X30;
+ UINT64 X31;
+} EFI_SYSTEM_CONTEXT_RISCV64;
///
/// Universal EFI_SYSTEM_CONTEXT definition.
@@ -620,18 +668,19 @@ typedef union {
EFI_SYSTEM_CONTEXT_IPF *SystemContextIpf;
EFI_SYSTEM_CONTEXT_ARM *SystemContextArm;
EFI_SYSTEM_CONTEXT_AARCH64 *SystemContextAArch64;
+ EFI_SYSTEM_CONTEXT_RISCV64 *SystemContextRiscV64;
} EFI_SYSTEM_CONTEXT;
//
// 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 +689,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 +718,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 +736,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 +759,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 +784,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 +807,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 +824,4 @@ struct _EFI_DEBUG_SUPPORT_PROTOCOL {
extern EFI_GUID gEfiDebugSupportProtocolGuid;
-#endif
+#endif
diff --git a/MdePkg/Include/Protocol/Decompress.h b/MdePkg/Include/Protocol/Decompress.h
index 965b7d2f45ae..9ca3e14b5ab0 100644
--- a/MdePkg/Include/Protocol/Decompress.h
+++ b/MdePkg/Include/Protocol/Decompress.h
@@ -1,14 +1,8 @@
/** @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
-
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -23,16 +17,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 +62,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 +81,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().
diff --git a/MdePkg/Include/Protocol/DeferredImageLoad.h b/MdePkg/Include/Protocol/DeferredImageLoad.h
index 4d1bbf0ed402..7161ce02fe3c 100644
--- a/MdePkg/Include/Protocol/DeferredImageLoad.h
+++ b/MdePkg/Include/Protocol/DeferredImageLoad.h
@@ -1,19 +1,13 @@
/** @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
-
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -33,28 +27,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
diff --git a/MdePkg/Include/Protocol/DeviceIo.h b/MdePkg/Include/Protocol/DeviceIo.h
index d84a6202effd..7d52f1238bea 100644
--- a/MdePkg/Include/Protocol/DeviceIo.h
+++ b/MdePkg/Include/Protocol/DeviceIo.h
@@ -4,14 +4,8 @@
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
-
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -27,16 +21,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 +38,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 +47,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 +80,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 +112,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 +122,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 +135,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 +152,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 +169,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 +196,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 +211,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 +233,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 {
diff --git a/MdePkg/Include/Protocol/DevicePath.h b/MdePkg/Include/Protocol/DevicePath.h
index 1958a3dd180f..5eeca70c8bce 100644
--- a/MdePkg/Include/Protocol/DevicePath.h
+++ b/MdePkg/Include/Protocol/DevicePath.h
@@ -2,17 +2,11 @@
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 - 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.
-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>
+SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -39,11 +33,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 +47,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;
///
@@ -288,6 +282,21 @@ typedef struct {
//
} ACPI_ADR_DEVICE_PATH;
+///
+/// ACPI NVDIMM Device Path SubType.
+///
+#define ACPI_NVDIMM_DP 0x04
+///
+///
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// NFIT Device Handle, the _ADR of the NVDIMM device.
+ /// The value of this field comes from Section 9.20.3 of the ACPI 6.2A specification.
+ ///
+ UINT32 NFITDeviceHandle;
+} ACPI_NVDIMM_DEVICE_PATH;
+
#define ACPI_ADR_DISPLAY_TYPE_OTHER 0
#define ACPI_ADR_DISPLAY_TYPE_VGA 1
#define ACPI_ADR_DISPLAY_TYPE_TV 2
@@ -718,6 +727,18 @@ typedef struct {
UINT8 StopBits;
} UART_DEVICE_PATH;
+///
+/// NVDIMM Namespace Device Path SubType.
+///
+#define NVDIMM_NAMESPACE_DP 0x20
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Namespace unique label identifier UUID.
+ ///
+ EFI_GUID Uuid;
+} NVDIMM_NAMESPACE_DEVICE_PATH;
+
//
// Use VENDOR_DEVICE_PATH struct
//
@@ -818,6 +839,22 @@ typedef struct {
} NVME_NAMESPACE_DEVICE_PATH;
///
+/// DNS Device Path SubType
+///
+#define MSG_DNS_DP 0x1F
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Indicates the DNS server address is IPv4 or IPv6 address.
+ ///
+ UINT8 IsIPv6;
+ ///
+ /// Instance of the DNS server address.
+ ///
+ EFI_IP_ADDRESS DnsServerIp[];
+} DNS_DEVICE_PATH;
+
+///
/// Uniform Resource Identifiers (URI) Device Path SubType
///
#define MSG_URI_DP 0x18
@@ -938,6 +975,15 @@ typedef struct {
UINT8 SSId[32];
} WIFI_DEVICE_PATH;
+///
+/// Bluetooth LE Device Path SubType.
+///
+#define MSG_BLUETOOTH_LE_DP 0x1E
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ BLUETOOTH_LE_ADDRESS Address;
+} BLUETOOTH_LE_DEVICE_PATH;
+
//
// Media Device Path
//
@@ -1047,8 +1093,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 {
@@ -1243,6 +1289,7 @@ typedef union {
SAS_DEVICE_PATH Sas;
SASEX_DEVICE_PATH SasEx;
NVME_NAMESPACE_DEVICE_PATH NvmeNamespace;
+ DNS_DEVICE_PATH Dns;
URI_DEVICE_PATH Uri;
BLUETOOTH_DEVICE_PATH Bluetooth;
WIFI_DEVICE_PATH WiFi;
@@ -1300,6 +1347,7 @@ typedef union {
SAS_DEVICE_PATH *Sas;
SASEX_DEVICE_PATH *SasEx;
NVME_NAMESPACE_DEVICE_PATH *NvmeNamespace;
+ DNS_DEVICE_PATH *Dns;
URI_DEVICE_PATH *Uri;
BLUETOOTH_DEVICE_PATH *Bluetooth;
WIFI_DEVICE_PATH *WiFi;
@@ -1321,7 +1369,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
diff --git a/MdePkg/Include/Protocol/DevicePathFromText.h b/MdePkg/Include/Protocol/DevicePathFromText.h
index cbdbc466dcad..998fa5cd6562 100644
--- a/MdePkg/Include/Protocol/DevicePathFromText.h
+++ b/MdePkg/Include/Protocol/DevicePathFromText.h
@@ -1,15 +1,9 @@
/** @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
-
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -39,8 +33,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 +51,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.
diff --git a/MdePkg/Include/Protocol/DevicePathToText.h b/MdePkg/Include/Protocol/DevicePathToText.h
index 923ee648404f..4a8cdaffb330 100644
--- a/MdePkg/Include/Protocol/DevicePathToText.h
+++ b/MdePkg/Include/Protocol/DevicePathToText.h
@@ -1,15 +1,9 @@
/** @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
-
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -45,7 +39,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 +48,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 +62,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.
diff --git a/MdePkg/Include/Protocol/DevicePathUtilities.h b/MdePkg/Include/Protocol/DevicePathUtilities.h
index 35fd624f2c39..68c91f05f1a0 100644
--- a/MdePkg/Include/Protocol/DevicePathUtilities.h
+++ b/MdePkg/Include/Protocol/DevicePathUtilities.h
@@ -1,15 +1,9 @@
/** @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
-
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -30,15 +24,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 +47,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 +67,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 +104,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 +113,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 +127,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 +150,7 @@ EFI_DEVICE_PATH_PROTOCOL*
IN UINT8 NodeType,
IN UINT8 NodeSubType,
IN UINT16 NodeLength
-);
+);
/**
Returns whether a device path is multi-instance.
@@ -171,11 +165,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 +181,6 @@ typedef struct {
EFI_DEVICE_PATH_UTILS_CREATE_NODE CreateDeviceNode;
} EFI_DEVICE_PATH_UTILITIES_PROTOCOL;
-extern EFI_GUID gEfiDevicePathUtilitiesProtocolGuid;
+extern EFI_GUID gEfiDevicePathUtilitiesProtocolGuid;
#endif
diff --git a/MdePkg/Include/Protocol/Dhcp4.h b/MdePkg/Include/Protocol/Dhcp4.h
index 5dcd47c76b85..05a0a6e20403 100644
--- a/MdePkg/Include/Protocol/Dhcp4.h
+++ b/MdePkg/Include/Protocol/Dhcp4.h
@@ -4,16 +4,10 @@
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.
-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>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
This Protocol was introduced in UEFI Specification 2.0.
**/
@@ -82,7 +76,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 +177,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 +202,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 +251,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 +263,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 +302,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 +323,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 +332,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 +350,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 +368,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 +389,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 +414,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 +504,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 +538,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 +611,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 +680,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 +713,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
diff --git a/MdePkg/Include/Protocol/Dhcp6.h b/MdePkg/Include/Protocol/Dhcp6.h
index 8e0ae27eb934..ca79afa2d546 100644
--- a/MdePkg/Include/Protocol/Dhcp6.h
+++ b/MdePkg/Include/Protocol/Dhcp6.h
@@ -2,16 +2,10 @@
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.
-
- @par Revision Reference:
+ Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
This Protocol is introduced in UEFI Specification 2.2
**/
@@ -31,9 +25,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 +37,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 +48,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 +74,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 +141,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 +161,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 +175,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 +219,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 +275,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 +294,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 +339,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 +351,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 +404,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 +427,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 +443,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 +470,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 +484,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 +495,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 +511,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 +537,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 +572,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 +582,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 +629,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 +669,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 +707,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 +719,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 +728,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 +745,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.
**/
diff --git a/MdePkg/Include/Protocol/DiskInfo.h b/MdePkg/Include/Protocol/DiskInfo.h
index e60ae0e98921..e0215d61df00 100644
--- a/MdePkg/Include/Protocol/DiskInfo.h
+++ b/MdePkg/Include/Protocol/DiskInfo.h
@@ -1,20 +1,14 @@
/** @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 - 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
-
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
@par Revision Reference:
- This Protocol is defined in UEFI Platform Initialization Specification 1.2
+ This Protocol is defined in UEFI Platform Initialization Specification 1.6
Volume 5: Standards
-
+
**/
#ifndef __DISK_INFO_H__
@@ -81,9 +75,17 @@ typedef struct _EFI_DISK_INFO_PROTOCOL EFI_DISK_INFO_PROTOCOL;
0x4b3029cc, 0x6b98, 0x47fb, { 0xbc, 0x96, 0x76, 0xdc, 0xb8, 0x4, 0x41, 0xf0 } \
}
+///
+/// Global ID for an SD/MMC interface. Used to fill in EFI_DISK_INFO_PROTOCOL.Interface
+///
+#define EFI_DISK_INFO_SD_MMC_INTERFACE_GUID \
+ { \
+ 0x8deec992, 0xd39c, 0x4a5c, { 0xab, 0x6b, 0x98, 0x6e, 0x14, 0x24, 0x2b, 0x9d } \
+ }
+
/**
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.
@@ -92,9 +94,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
@@ -111,16 +113,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
@@ -133,8 +135,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.
@@ -160,7 +162,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.
@@ -181,7 +183,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;
@@ -201,7 +203,7 @@ struct _EFI_DISK_INFO_PROTOCOL {
///
EFI_DISK_INFO_SENSE_DATA SenseData;
///
- /// Specific controller.
+ /// Specific controller.
///
EFI_DISK_INFO_WHICH_IDE WhichIde;
};
@@ -214,5 +216,6 @@ extern EFI_GUID gEfiDiskInfoUsbInterfaceGuid;
extern EFI_GUID gEfiDiskInfoAhciInterfaceGuid;
extern EFI_GUID gEfiDiskInfoNvmeInterfaceGuid;
extern EFI_GUID gEfiDiskInfoUfsInterfaceGuid;
+extern EFI_GUID gEfiDiskInfoSdMmcInterfaceGuid;
#endif
diff --git a/MdePkg/Include/Protocol/DiskIo.h b/MdePkg/Include/Protocol/DiskIo.h
index 9f2526161c7c..d6e6a47b31dd 100644
--- a/MdePkg/Include/Protocol/DiskIo.h
+++ b/MdePkg/Include/Protocol/DiskIo.h
@@ -5,14 +5,8 @@
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
-
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -26,14 +20,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 +89,7 @@ EFI_STATUS
///
/// Revision defined in EFI1.1
-///
+///
#define EFI_DISK_IO_INTERFACE_REVISION EFI_DISK_IO_PROTOCOL_REVISION
///
diff --git a/MdePkg/Include/Protocol/DiskIo2.h b/MdePkg/Include/Protocol/DiskIo2.h
index c2994c2facd5..b3dfb24be344 100644
--- a/MdePkg/Include/Protocol/DiskIo2.h
+++ b/MdePkg/Include/Protocol/DiskIo2.h
@@ -4,14 +4,8 @@
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
-
- 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) 2013 - 2018, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
diff --git a/MdePkg/Include/Protocol/Dns4.h b/MdePkg/Include/Protocol/Dns4.h
index 61c8e5c38ad5..d02713f706fd 100644
--- a/MdePkg/Include/Protocol/Dns4.h
+++ b/MdePkg/Include/Protocol/Dns4.h
@@ -4,14 +4,8 @@
DNSv4 Service Binding Protocol (DNSv4SB)
DNSv4 Protocol (DNSv4)
- 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
- 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) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
@par Revision Reference:
This Protocol is introduced in UEFI Specification 2.5
@@ -38,23 +32,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 +62,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 +129,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 +141,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 +305,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 +315,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 +357,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 +385,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
diff --git a/MdePkg/Include/Protocol/Dns6.h b/MdePkg/Include/Protocol/Dns6.h
index bf8814606e4d..9839b822c146 100644
--- a/MdePkg/Include/Protocol/Dns6.h
+++ b/MdePkg/Include/Protocol/Dns6.h
@@ -4,14 +4,8 @@
DNSv6 Service Binding Protocol (DNSv6SB)
DNSv6 Protocol (DNSv6)
- 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
- 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) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
@par Revision Reference:
This Protocol is introduced in UEFI Specification 2.5
@@ -49,8 +43,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 +53,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 +115,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 +266,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 +290,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 +302,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
diff --git a/MdePkg/Include/Protocol/DriverBinding.h b/MdePkg/Include/Protocol/DriverBinding.h
index b325c0ccf7a3..fca636f22dae 100644
--- a/MdePkg/Include/Protocol/DriverBinding.h
+++ b/MdePkg/Include/Protocol/DriverBinding.h
@@ -1,17 +1,11 @@
/** @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.
-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>
+SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -29,33 +23,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 +76,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 +117,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 +128,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 +151,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 +172,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;
};
diff --git a/MdePkg/Include/Protocol/DriverConfiguration.h b/MdePkg/Include/Protocol/DriverConfiguration.h
index 53c5296720b1..2a0018fabd30 100644
--- a/MdePkg/Include/Protocol/DriverConfiguration.h
+++ b/MdePkg/Include/Protocol/DriverConfiguration.h
@@ -1,14 +1,8 @@
/** @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
-
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -24,11 +18,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 +148,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;
};
diff --git a/MdePkg/Include/Protocol/DriverConfiguration2.h b/MdePkg/Include/Protocol/DriverConfiguration2.h
index 1610eb4741af..066968670b16 100644
--- a/MdePkg/Include/Protocol/DriverConfiguration2.h
+++ b/MdePkg/Include/Protocol/DriverConfiguration2.h
@@ -1,14 +1,8 @@
/** @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
-
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -22,7 +16,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 +49,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 +174,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;
};
diff --git a/MdePkg/Include/Protocol/DriverDiagnostics.h b/MdePkg/Include/Protocol/DriverDiagnostics.h
index 431b649223e5..53ebe0852901 100644
--- a/MdePkg/Include/Protocol/DriverDiagnostics.h
+++ b/MdePkg/Include/Protocol/DriverDiagnostics.h
@@ -1,14 +1,8 @@
/** @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.
-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>
+SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -41,7 +35,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 +115,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;
};
diff --git a/MdePkg/Include/Protocol/DriverDiagnostics2.h b/MdePkg/Include/Protocol/DriverDiagnostics2.h
index 78d5ec6fe93e..b0b4c8cd6789 100644
--- a/MdePkg/Include/Protocol/DriverDiagnostics2.h
+++ b/MdePkg/Include/Protocol/DriverDiagnostics2.h
@@ -1,14 +1,8 @@
/** @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
-
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -21,7 +15,7 @@
{ \
0x4d330321, 0x025f, 0x4aac, {0x90, 0xd8, 0x5e, 0xd9, 0x00, 0x17, 0x3b, 0x63 } \
}
-
+
typedef struct _EFI_DRIVER_DIAGNOSTICS2_PROTOCOL EFI_DRIVER_DIAGNOSTICS2_PROTOCOL;
/**
@@ -31,7 +25,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 +95,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;
};
diff --git a/MdePkg/Include/Protocol/DriverFamilyOverride.h b/MdePkg/Include/Protocol/DriverFamilyOverride.h
index 868c7734117a..5b06f0b0e025 100644
--- a/MdePkg/Include/Protocol/DriverFamilyOverride.h
+++ b/MdePkg/Include/Protocol/DriverFamilyOverride.h
@@ -1,14 +1,8 @@
/** @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.
-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) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -19,14 +13,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 +29,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 +41,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;
diff --git a/MdePkg/Include/Protocol/DriverHealth.h b/MdePkg/Include/Protocol/DriverHealth.h
index d23140d20bd1..691d205ec065 100644
--- a/MdePkg/Include/Protocol/DriverHealth.h
+++ b/MdePkg/Include/Protocol/DriverHealth.h
@@ -5,33 +5,27 @@
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
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+ 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 - 2018, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2014, Hewlett-Packard Development Company, L.P.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
@par Revision Reference:
- This Protocol is defined in UEFI Specification 2.3d
+ This Protocol is defined in UEFI Specification 2.3d
**/
@@ -42,7 +36,7 @@
{ \
0x2a534210, 0x9280, 0x41d8, { 0xae, 0x79, 0xca, 0xda, 0x1, 0xa2, 0xb1, 0x27 } \
}
-
+
typedef struct _EFI_DRIVER_HEALTH_PROTOCOL EFI_DRIVER_HEALTH_PROTOCOL;
///
@@ -63,12 +57,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 +72,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 +87,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] 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] 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
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 +184,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 +222,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;
diff --git a/MdePkg/Include/Protocol/DriverSupportedEfiVersion.h b/MdePkg/Include/Protocol/DriverSupportedEfiVersion.h
index 2689ddd7f957..056ac3addfa4 100644
--- a/MdePkg/Include/Protocol/DriverSupportedEfiVersion.h
+++ b/MdePkg/Include/Protocol/DriverSupportedEfiVersion.h
@@ -4,14 +4,8 @@
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
-
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -24,16 +18,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.
diff --git a/MdePkg/Include/Protocol/DxeMmReadyToLock.h b/MdePkg/Include/Protocol/DxeMmReadyToLock.h
new file mode 100644
index 000000000000..d406aeefc38f
--- /dev/null
+++ b/MdePkg/Include/Protocol/DxeMmReadyToLock.h
@@ -0,0 +1,19 @@
+/** @file
+ DXE MM Ready To Lock protocol introduced in the PI 1.5 specification.
+
+ Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#ifndef _DXE_MM_READY_TO_LOCK_H_
+#define _DXE_MM_READY_TO_LOCK_H_
+
+#define EFI_DXE_MM_READY_TO_LOCK_PROTOCOL_GUID \
+ { \
+ 0x60ff8964, 0xe906, 0x41d0, { 0xaf, 0xed, 0xf2, 0x41, 0xe9, 0x74, 0xe0, 0x8e } \
+ }
+
+extern EFI_GUID gEfiDxeMmReadyToLockProtocolGuid;
+
+#endif
diff --git a/MdePkg/Include/Protocol/DxeSmmReadyToLock.h b/MdePkg/Include/Protocol/DxeSmmReadyToLock.h
index 540f4cf5e204..e4756dfc3055 100644
--- a/MdePkg/Include/Protocol/DxeSmmReadyToLock.h
+++ b/MdePkg/Include/Protocol/DxeSmmReadyToLock.h
@@ -17,24 +17,17 @@
platform code may choose to use notification handler to lock SMM by invoking
EFI_SMM_ACCESS2_PROTOCOL.Lock() function.
- 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
-
- 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 - 2017, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _DXE_SMM_READY_TO_LOCK_H_
#define _DXE_SMM_READY_TO_LOCK_H_
-#define EFI_DXE_SMM_READY_TO_LOCK_PROTOCOL_GUID \
- { \
- 0x60ff8964, 0xe906, 0x41d0, { 0xaf, 0xed, 0xf2, 0x41, 0xe9, 0x74, 0xe0, 0x8e } \
- }
+#include <Protocol/DxeMmReadyToLock.h>
+
+#define EFI_DXE_SMM_READY_TO_LOCK_PROTOCOL_GUID EFI_DXE_MM_READY_TO_LOCK_PROTOCOL_GUID
extern EFI_GUID gEfiDxeSmmReadyToLockProtocolGuid;
diff --git a/MdePkg/Include/Protocol/Eap.h b/MdePkg/Include/Protocol/Eap.h
index e91deb867006..3c2afa4cd4af 100644
--- a/MdePkg/Include/Protocol/Eap.h
+++ b/MdePkg/Include/Protocol/Eap.h
@@ -1,20 +1,14 @@
/** @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>
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
- 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 +25,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 +55,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 +68,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 +103,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.
- 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
+ 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 +133,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;
diff --git a/MdePkg/Include/Protocol/EapConfiguration.h b/MdePkg/Include/Protocol/EapConfiguration.h
index dc30e62ad033..698d835410a2 100644
--- a/MdePkg/Include/Protocol/EapConfiguration.h
+++ b/MdePkg/Include/Protocol/EapConfiguration.h
@@ -1,14 +1,8 @@
/** @file
This file defines the EFI EAP Configuration protocol.
- 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
-
- 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) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
@par Revision Reference:
This Protocol is introduced in UEFI Specification 2.5
@@ -156,4 +150,4 @@ struct _EFI_EAP_CONFIGURATION_PROTOCOL {
extern EFI_GUID gEfiEapConfigurationProtocolGuid;
-#endif \ No newline at end of file
+#endif
diff --git a/MdePkg/Include/Protocol/EapManagement.h b/MdePkg/Include/Protocol/EapManagement.h
index 8fe4afb2a17d..c65bc1bdf032 100644
--- a/MdePkg/Include/Protocol/EapManagement.h
+++ b/MdePkg/Include/Protocol/EapManagement.h
@@ -1,21 +1,15 @@
/** @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>
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
- 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 +37,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 +71,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 +84,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;
///
- UINTN StartPeriod;
- ///
- /// The maximum number of successive EAPOL-Start messages will
- /// be sent before the Supplicant assumes that there is no
+ /// 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 +114,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 +132,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 +181,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 +196,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 +220,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 +260,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 +284,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 +297,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 +312,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 +330,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 +343,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 +369,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 {
diff --git a/MdePkg/Include/Protocol/EapManagement2.h b/MdePkg/Include/Protocol/EapManagement2.h
index d1e5981d0374..faae59116f5b 100644
--- a/MdePkg/Include/Protocol/EapManagement2.h
+++ b/MdePkg/Include/Protocol/EapManagement2.h
@@ -2,13 +2,7 @@
This file defines the EFI EAP Management2 protocol.
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
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
@par Revision Reference:
This Protocol is introduced in UEFI Specification 2.5
diff --git a/MdePkg/Include/Protocol/Ebc.h b/MdePkg/Include/Protocol/Ebc.h
index dd6320d61cf4..ff28fcacb29c 100644
--- a/MdePkg/Include/Protocol/Ebc.h
+++ b/MdePkg/Include/Protocol/Ebc.h
@@ -1,14 +1,8 @@
/** @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
-
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -193,7 +187,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 +223,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 +234,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 +251,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 +273,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.
diff --git a/MdePkg/Include/Protocol/EdidActive.h b/MdePkg/Include/Protocol/EdidActive.h
index 8e1ec8426288..531d077334ad 100644
--- a/MdePkg/Include/Protocol/EdidActive.h
+++ b/MdePkg/Include/Protocol/EdidActive.h
@@ -3,14 +3,8 @@
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
-
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
diff --git a/MdePkg/Include/Protocol/EdidDiscovered.h b/MdePkg/Include/Protocol/EdidDiscovered.h
index ccaae1bbb353..4975564adc57 100644
--- a/MdePkg/Include/Protocol/EdidDiscovered.h
+++ b/MdePkg/Include/Protocol/EdidDiscovered.h
@@ -4,14 +4,8 @@
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
-
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -33,7 +27,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 +35,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;
diff --git a/MdePkg/Include/Protocol/EdidOverride.h b/MdePkg/Include/Protocol/EdidOverride.h
index cd847b666d75..6c7c082eab54 100644
--- a/MdePkg/Include/Protocol/EdidOverride.h
+++ b/MdePkg/Include/Protocol/EdidOverride.h
@@ -4,14 +4,8 @@
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
-
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -50,18 +44,18 @@ EFI_STATUS
IN EFI_EDID_OVERRIDE_PROTOCOL *This,
IN EFI_HANDLE *ChildHandle,
OUT UINT32 *Attributes,
- IN OUT UINTN *EdidSize,
- IN OUT UINT8 **Edid
+ OUT UINTN *EdidSize,
+ OUT UINT8 **Edid
);
///
-/// 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
diff --git a/MdePkg/Include/Protocol/EraseBlock.h b/MdePkg/Include/Protocol/EraseBlock.h
index d136ccee24a8..bfedcf32c249 100644
--- a/MdePkg/Include/Protocol/EraseBlock.h
+++ b/MdePkg/Include/Protocol/EraseBlock.h
@@ -2,13 +2,7 @@
This file defines the EFI Erase Block Protocol.
Copyright (c) 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.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
@par Revision Reference:
This Protocol is introduced in UEFI Specification 2.6
diff --git a/MdePkg/Include/Protocol/ExtendedSalBootService.h b/MdePkg/Include/Protocol/ExtendedSalBootService.h
deleted file mode 100644
index 167201d85a95..000000000000
--- a/MdePkg/Include/Protocol/ExtendedSalBootService.h
+++ /dev/null
@@ -1,214 +0,0 @@
-/** @file
- Definition of Extended SAL Boot Service Protocol
-
- 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
-
- 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 _EXTENDED_SAL_BOOT_SERVICE_PROTOCOL_H_
-#define _EXTENDED_SAL_BOOT_SERVICE_PROTOCOL_H_
-
-#include <IndustryStandard/Sal.h>
-
-#define EXTENDED_SAL_BOOT_SERVICE_PROTOCOL_GUID \
- { 0xde0ee9a4, 0x3c7a, 0x44f2, {0xb7, 0x8b, 0xe3, 0xcc, 0xd6, 0x9c, 0x3a, 0xf7 } }
-
-typedef struct _EXTENDED_SAL_BOOT_SERVICE_PROTOCOL EXTENDED_SAL_BOOT_SERVICE_PROTOCOL;
-
-/**
- Adds platform specific information to the to the header of the SAL System Table.
-
- @param This A pointer to the EXTENDED_SAL_BOOT_SERVICE_PROTOCOL instance.
- @param SalAVersion Version of recovery SAL PEIM(s) in BCD format. Higher byte contains
- the major revision and the lower byte contains the minor revision.
- @param SalBVersion Version of DXE SAL Driver in BCD format. Higher byte contains
- 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
- compatible products. The string cannot be longer than 32 bytes in total length.
-
- @retval EFI_SUCCESS The SAL System Table header was updated successfully.
- @retval EFI_INVALID_PARAMETER OemId is NULL.
- @retval EFI_INVALID_PARAMETER ProductId is NULL.
- @retval EFI_INVALID_PARAMETER The length of OemId is greater than 32 characters.
- @retval EFI_INVALID_PARAMETER The length of ProductId is greater than 32 characters.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EXTENDED_SAL_ADD_SST_INFO)(
- IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL *This,
- IN UINT16 SalAVersion,
- IN UINT16 SalBVersion,
- IN CHAR8 *OemId,
- IN CHAR8 *ProductId
- );
-
-/**
- Adds an entry to the SAL System Table.
-
- This function adds the SAL System Table Entry specified by TableEntry and EntrySize
- 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
- in length. The first byte of the TableEntry describes the type of entry.
- @param EntrySize The size, in bytes, of TableEntry.
-
- @retval EFI_SUCCESSThe SAL System Table was updated successfully.
- @retval EFI_INVALID_PARAMETER TableEntry is NULL.
- @retval EFI_INVALID_PARAMETER TableEntry specifies an invalid entry type.
- @retval EFI_INVALID_PARAMETER EntrySize is not valid for this type of entry.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EXTENDED_SAL_ADD_SST_ENTRY)(
- IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL *This,
- IN UINT8 *TableEntry,
- IN UINTN EntrySize
- );
-
-/**
- Internal ESAL procedures.
-
- This is prototype of internal Extended SAL procedures, which is registerd by
- EXTENDED_SAL_REGISTER_INTERNAL_PROC service.
-
- @param FunctionId The Function ID associated with this Extended SAL Procedure.
- @param Arg2 Second argument to the Extended SAL procedure.
- @param Arg3 Third argument to the Extended SAL procedure.
- @param Arg4 Fourth argument to the Extended SAL procedure.
- @param Arg5 Fifth argument to the Extended SAL procedure.
- @param Arg6 Sixth argument to the Extended SAL procedure.
- @param Arg7 Seventh argument to the Extended SAL procedure.
- @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.
-
- @return The result returned from the specified Extended SAL Procedure
-
-**/
-typedef
-SAL_RETURN_REGS
-(EFIAPI *SAL_INTERNAL_EXTENDED_SAL_PROC)(
- IN UINT64 FunctionId,
- IN UINT64 Arg2,
- IN UINT64 Arg3,
- IN UINT64 Arg4,
- IN UINT64 Arg5,
- IN UINT64 Arg6,
- IN UINT64 Arg7,
- IN UINT64 Arg8,
- IN BOOLEAN VirtualMode,
- IN VOID *ModuleGlobal OPTIONAL
- );
-
-/**
- Registers an Extended SAL Procedure.
-
- The Extended SAL Procedure specified by InternalSalProc and named by ClassGuidLo,
- 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.
- 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.
- 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
- 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,
- 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
- InternalSalProc.
-
- @retval EFI_SUCCESS The Extended SAL Procedure was added.
- @retval EFI_OUT_OF_RESOURCES There are not enough resources available to add the Extended SAL Procedure.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EXTENDED_SAL_REGISTER_INTERNAL_PROC)(
- IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL *This,
- IN UINT64 ClassGuidLo,
- IN UINT64 ClassGuidHi,
- IN UINT64 FunctionId,
- IN SAL_INTERNAL_EXTENDED_SAL_PROC InternalSalProc,
- IN VOID *PhysicalModuleGlobal OPTIONAL
- );
-
-/**
- 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
- EFI_SAL_NOT_IMPLEMENTED is returned.
-
- @param ClassGuidLo The lower 64-bits of the class GUID for the Extended SAL Procedure
- that is being called.
- @param ClassGuidHi The upper 64-bits of the class GUID for the Extended SAL Procedure
- that is being called.
- @param FunctionId Function ID for the Extended SAL Procedure being called.
- @param Arg2 Second argument to the Extended SAL procedure.
- @param Arg3 Third argument to the Extended SAL procedure.
- @param Arg4 Fourth argument to the Extended SAL procedure.
- @param Arg5 Fifth argument to the Extended SAL procedure.
- @param Arg6 Sixth argument to the Extended SAL procedure.
- @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,
- ClassGuidHi, and FunctionId has not been registered.
- @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
-
-**/
-typedef
-SAL_RETURN_REGS
-(EFIAPI *EXTENDED_SAL_PROC)(
- IN UINT64 ClassGuidLo,
- IN UINT64 ClassGuidHi,
- IN UINT64 FunctionId,
- IN UINT64 Arg2,
- IN UINT64 Arg3,
- IN UINT64 Arg4,
- IN UINT64 Arg5,
- IN UINT64 Arg6,
- IN UINT64 Arg7,
- IN UINT64 Arg8
- );
-
-///
-/// 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_PROC ExtendedSalProc;
-};
-
-extern EFI_GUID gEfiExtendedSalBootServiceProtocolGuid;
-
-#endif
diff --git a/MdePkg/Include/Protocol/ExtendedSalServiceClasses.h b/MdePkg/Include/Protocol/ExtendedSalServiceClasses.h
deleted file mode 100644
index 126beedacf2e..000000000000
--- a/MdePkg/Include/Protocol/ExtendedSalServiceClasses.h
+++ /dev/null
@@ -1,275 +0,0 @@
-/** @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
-
- 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 _EXTENDED_SAL_SERVICE_CLASSES_H_
-#define _EXTENDED_SAL_SERVICE_CLASSES_H_
-
-///
-/// Extended SAL Base I/O Services Class
-///
-///@{
-#define EFI_EXTENDED_SAL_BASE_IO_SERVICES_PROTOCOL_GUID_LO 0x451531e15aea42b5
-#define EFI_EXTENDED_SAL_BASE_IO_SERVICES_PROTOCOL_GUID_HI 0xa6657525d5b831bc
-#define EFI_EXTENDED_SAL_BASE_IO_SERVICES_PROTOCOL_GUID \
- { 0x5aea42b5, 0x31e1, 0x4515, {0xbc, 0x31, 0xb8, 0xd5, 0x25, 0x75, 0x65, 0xa6 } }
-
-typedef enum {
- IoReadFunctionId,
- IoWriteFunctionId,
- MemReadFunctionId,
- MemWriteFunctionId
-} EFI_EXTENDED_SAL_BASE_IO_SERVICES_FUNC_ID;
-///@}
-
-///
-/// Extended SAL Stall Services Class
-///
-///@{
-#define EFI_EXTENDED_SAL_STALL_SERVICES_PROTOCOL_GUID_LO 0x4d8cac2753a58d06
-#define EFI_EXTENDED_SAL_STALL_SERVICES_PROTOCOL_GUID_HI 0x704165808af0e9b5
-#define EFI_EXTENDED_SAL_STALL_SERVICES_PROTOCOL_GUID \
- { 0x53a58d06, 0xac27, 0x4d8c, {0xb5, 0xe9, 0xf0, 0x8a, 0x80, 0x65, 0x41, 0x70 } }
-
-typedef enum {
- StallFunctionId
-} EFI_EXTENDED_SAL_STALL_FUNC_ID;
-///@}
-
-///
-/// Extended SAL Real Time Clock Services Class
-///
-///@{
-#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 \
- { 0x7e97a470, 0xefdb, 0x4d02, {0x8f, 0xce, 0x61, 0x90, 0xd2, 0x7b, 0xa2, 0x96 } }
-
-typedef enum {
- GetTimeFunctionId,
- SetTimeFunctionId,
- GetWakeupTimeFunctionId,
- SetWakeupTimeFunctionId,
- GetRtcFreqFunctionId,
- InitializeThresholdFunctionId,
- BumpThresholdCountFunctionId,
- GetThresholdCountFunctionId
-} EFI_EXTENDED_SAL_RTC_SERVICES_FUNC_ID;
-///@}
-
-///
-/// Extended SAL Variable Services Class
-///
-///@{
-#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 } }
-
-typedef enum {
- EsalGetVariableFunctionId,
- EsalGetNextVariableNameFunctionId,
- EsalSetVariableFunctionId,
- EsalQueryVariableInfoFunctionId
-} EFI_EXTENDED_SAL_VARIABLE_SERVICES_FUNC_ID;
-///@}
-
-///
-/// Extended SAL Monotonic Counter Services Class
-///
-///@{
-#define EFI_EXTENDED_SAL_MTC_SERVICES_PROTOCOL_GUID_LO 0x408b75e8899afd18
-#define EFI_EXTENDED_SAL_MTC_SERVICES_PROTOCOL_GUID_HI 0x54f4cd7e2e6e1aa4
-#define EFI_EXTENDED_SAL_MTC_SERVICES_PROTOCOL_GUID \
- { 0x899afd18, 0x75e8, 0x408b, {0xa4, 0x1a, 0x6e, 0x2e, 0x7e, 0xcd, 0xf4, 0x54 } }
-
-typedef enum {
- GetNextHighMonotonicCountFunctionId
-} EFI_EXTENDED_SAL_MTC_SERVICES_FUNC_ID;
-///@}
-
-///
-/// Extended SAL Reset Services Class
-///
-///@{
-#define EFI_EXTENDED_SAL_RESET_SERVICES_PROTOCOL_GUID_LO 0x46f58ce17d019990
-#define EFI_EXTENDED_SAL_RESET_SERVICES_PROTOCOL_GUID_HI 0xa06a6798513c76a7
-#define EFI_EXTENDED_SAL_RESET_SERVICES_PROTOCOL_GUID \
- { 0x7d019990, 0x8ce1, 0x46f5, {0xa7, 0x76, 0x3c, 0x51, 0x98, 0x67, 0x6a, 0xa0 } }
-
-typedef enum {
- ResetSystemFunctionId
-} EFI_EXTENDED_SAL_RESET_SERVICES_FUNC_ID;
-///@}
-
-///
-/// Extended SAL Status Code Services Class
-///
-///@{
-#define EFI_EXTENDED_SAL_STATUS_CODE_SERVICES_PROTOCOL_GUID_LO 0x420f55e9dbd91d
-#define EFI_EXTENDED_SAL_STATUS_CODE_SERVICES_PROTOCOL_GUID_HI 0x4fb437849f5e3996
-#define EFI_EXTENDED_SAL_STATUS_CODE_SERVICES_PROTOCOL_GUID \
- { 0xdbd91d, 0x55e9, 0x420f, {0x96, 0x39, 0x5e, 0x9f, 0x84, 0x37, 0xb4, 0x4f } }
-
-typedef enum {
- ReportStatusCodeServiceFunctionId
-} EFI_EXTENDED_SAL_STATUS_CODE_SERVICES_FUNC_ID;
-///@}
-
-///
-/// Extended SAL Firmware Volume Block Services Class
-///
-///@{
-#define EFI_EXTENDED_SAL_FV_BLOCK_SERVICES_PROTOCOL_GUID_LO 0x4f1dbcbba2271df1
-#define EFI_EXTENDED_SAL_FV_BLOCK_SERVICES_PROTOCOL_GUID_HI 0x1a072f17bc06a998
-#define EFI_EXTENDED_SAL_FV_BLOCK_SERVICES_PROTOCOL_GUID \
- { 0xa2271df1, 0xbcbb, 0x4f1d, {0x98, 0xa9, 0x06, 0xbc, 0x17, 0x2f, 0x07, 0x1a } }
-
-typedef enum {
- ReadFunctionId,
- WriteFunctionId,
- EraseBlockFunctionId,
- GetVolumeAttributesFunctionId,
- SetVolumeAttributesFunctionId,
- GetPhysicalAddressFunctionId,
- GetBlockSizeFunctionId,
-} EFI_EXTENDED_SAL_FV_BLOCK_SERVICES_FUNC_ID;
-///@}
-
-///
-/// Extended SAL MP Services Class
-///
-///@{
-#define EFI_EXTENDED_SAL_MP_SERVICES_PROTOCOL_GUID_LO 0x4dc0cf18697d81a2
-#define EFI_EXTENDED_SAL_MP_SERVICES_PROTOCOL_GUID_HI 0x3f8a613b11060d9e
-#define EFI_EXTENDED_SAL_MP_SERVICES_PROTOCOL_GUID \
- { 0x697d81a2, 0xcf18, 0x4dc0, {0x9e, 0x0d, 0x06, 0x11, 0x3b, 0x61, 0x8a, 0x3f } }
-
-typedef enum {
- AddCpuDataFunctionId,
- RemoveCpuDataFunctionId,
- ModifyCpuDataFunctionId,
- GetCpuDataByIDFunctionId,
- GetCpuDataByIndexFunctionId,
- SendIpiFunctionId,
- CurrentProcInfoFunctionId,
- NumProcessorsFunctionId,
- SetMinStateFunctionId,
- GetMinStateFunctionId
-} EFI_EXTENDED_SAL_MP_SERVICES_FUNC_ID;
-///@}
-
-///
-/// Extended SAL PAL Services Class
-///
-///@{
-#define EFI_EXTENDED_SAL_PAL_SERVICES_PROTOCOL_GUID_LO 0x438d0fc2e1cd9d21
-#define EFI_EXTENDED_SAL_PAL_SERVICES_PROTOCOL_GUID_HI 0x571e966de6040397
-#define EFI_EXTENDED_SAL_PAL_SERVICES_PROTOCOL_GUID \
- { 0xe1cd9d21, 0x0fc2, 0x438d, {0x97, 0x03, 0x04, 0xe6, 0x6d, 0x96, 0x1e, 0x57 } }
-
-typedef enum {
- PalProcFunctionId,
- SetNewPalEntryFunctionId,
- GetNewPalEntryFunctionId,
- EsalUpdatePalFunctionId
-} EFI_EXTENDED_SAL_PAL_SERVICES_FUNC_ID;
-///@}
-
-///
-/// Extended SAL Base Services Class
-///
-///@{
-#define EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID_LO 0x41c30fe0d9e9fa06
-#define EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID_HI 0xf894335a4283fb96
-#define EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID \
- { 0xd9e9fa06, 0x0fe0, 0x41c3, {0x96, 0xfb, 0x83, 0x42, 0x5a, 0x33, 0x94, 0xf8 } }
-
-typedef enum {
- SalSetVectorsFunctionId,
- SalMcRendezFunctionId,
- SalMcSetParamsFunctionId,
- EsalGetVectorsFunctionId,
- EsalMcGetParamsFunctionId,
- EsalMcGetMcParamsFunctionId,
- EsalGetMcCheckinFlagsFunctionId,
- EsalGetPlatformBaseFreqFunctionId,
- EsalPhysicalIdInfoFunctionId,
- EsalRegisterPhysicalAddrFunctionId
-} EFI_EXTENDED_SAL_BASE_SERVICES_FUNC_ID;
-///@}
-
-///
-/// Extended SAL MCA Services Class
-///
-///@{
-#define EFI_EXTENDED_SAL_MCA_SERVICES_PROTOCOL_GUID_LO 0x42b16cc72a591128
-#define EFI_EXTENDED_SAL_MCA_SERVICES_PROTOCOL_GUID_HI 0xbb2d683b9358f08a
-#define EFI_EXTENDED_SAL_MCA_SERVICES_PROTOCOL_GUID \
- { 0x2a591128, 0x6cc7, 0x42b1, {0x8a, 0xf0, 0x58, 0x93, 0x3b, 0x68, 0x2d, 0xbb } }
-
-typedef enum {
- McaGetStateInfoFunctionId,
- McaRegisterCpuFunctionId
-} EFI_EXTENDED_SAL_MCA_SERVICES_FUNC_ID;
-///@}
-
-///
-/// Extended SAL PCI Services Class
-///
-///@{
-#define EFI_EXTENDED_SAL_PCI_SERVICES_PROTOCOL_GUID_LO 0x4905ad66a46b1a31
-#define EFI_EXTENDED_SAL_PCI_SERVICES_PROTOCOL_GUID_HI 0x6330dc59462bf692
-#define EFI_EXTENDED_SAL_PCI_SERVICES_PROTOCOL_GUID \
- { 0xa46b1a31, 0xad66, 0x4905, {0x92, 0xf6, 0x2b, 0x46, 0x59, 0xdc, 0x30, 0x63 } }
-
-typedef enum {
- SalPciConfigReadFunctionId,
- SalPciConfigWriteFunctionId
-} EFI_EXTENDED_SAL_PCI_SERVICES_FUNC_ID;
-///@}
-
-///
-/// Extended SAL Cache Services Class
-///
-///@{
-#define EFI_EXTENDED_SAL_CACHE_SERVICES_PROTOCOL_GUID_LO 0x4ba52743edc9494
-#define EFI_EXTENDED_SAL_CACHE_SERVICES_PROTOCOL_GUID_HI 0x88f11352ef0a1888
-#define EFI_EXTENDED_SAL_CACHE_SERVICES_PROTOCOL_GUID \
- { 0xedc9494, 0x2743, 0x4ba5, { 0x88, 0x18, 0x0a, 0xef, 0x52, 0x13, 0xf1, 0x88 } }
-
-typedef enum {
- SalCacheInitFunctionId,
- SalCacheFlushFunctionId
-} EFI_EXTENDED_SAL_CACHE_SERVICES_FUNC_ID;
-///@}
-
-///
-/// Extended SAL MCA Log Services Class
-///
-///@{
-#define EFI_EXTENDED_SAL_MCA_LOG_SERVICES_PROTOCOL_GUID_LO 0x4c0338a3cb3fd86e
-#define EFI_EXTENDED_SAL_MCA_LOG_SERVICES_PROTOCOL_GUID_HI 0x7aaba2a3cf905c9a
-#define EFI_EXTENDED_SAL_MCA_LOG_SERVICES_PROTOCOL_GUID \
- { 0xcb3fd86e, 0x38a3, 0x4c03, {0x9a, 0x5c, 0x90, 0xcf, 0xa3, 0xa2, 0xab, 0x7a } }
-
-typedef enum {
- SalGetStateInfoFunctionId,
- SalGetStateInfoSizeFunctionId,
- SalClearStateInfoFunctionId,
- EsalGetStateBufferFunctionId,
- EsalSaveStateBufferFunctionId
-} EFI_EXTENDED_SAL_MCA_LOG_SERVICES_FUNC_ID;
-///@}
-
-#endif
diff --git a/MdePkg/Include/Protocol/FirmwareManagement.h b/MdePkg/Include/Protocol/FirmwareManagement.h
index e9a9e04ea0c3..d998b5738e4a 100644
--- a/MdePkg/Include/Protocol/FirmwareManagement.h
+++ b/MdePkg/Include/Protocol/FirmwareManagement.h
@@ -8,15 +8,9 @@
CheckImage(), GetPackageInfo(), and SetPackageInfo() shall return
EFI_UNSUPPORTED if not supported by the driver.
- Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2009 - 2020, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2013 - 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.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
@par Revision Reference:
This Protocol is introduced in UEFI Specification 2.3
@@ -35,6 +29,31 @@
typedef struct _EFI_FIRMWARE_MANAGEMENT_PROTOCOL EFI_FIRMWARE_MANAGEMENT_PROTOCOL;
///
+/// Dependency Expression Opcode
+///
+#define EFI_FMP_DEP_PUSH_GUID 0x00
+#define EFI_FMP_DEP_PUSH_VERSION 0x01
+#define EFI_FMP_DEP_VERSION_STR 0x02
+#define EFI_FMP_DEP_AND 0x03
+#define EFI_FMP_DEP_OR 0x04
+#define EFI_FMP_DEP_NOT 0x05
+#define EFI_FMP_DEP_TRUE 0x06
+#define EFI_FMP_DEP_FALSE 0x07
+#define EFI_FMP_DEP_EQ 0x08
+#define EFI_FMP_DEP_GT 0x09
+#define EFI_FMP_DEP_GTE 0x0A
+#define EFI_FMP_DEP_LT 0x0B
+#define EFI_FMP_DEP_LTE 0x0C
+#define EFI_FMP_DEP_END 0x0D
+
+///
+/// Image Attribute - Dependency
+///
+typedef struct {
+ UINT8 Dependencies[1];
+} EFI_FIRMWARE_IMAGE_DEP;
+
+///
/// EFI_FIRMWARE_IMAGE_DESCRIPTOR
///
typedef struct {
@@ -117,6 +136,7 @@ typedef struct {
/// present in version 3 or higher.
///
UINT64 HardwareInstance;
+ EFI_FIRMWARE_IMAGE_DEP *Dependencies;
} EFI_FIRMWARE_IMAGE_DESCRIPTOR;
@@ -149,11 +169,17 @@ typedef struct {
/// The attribute IMAGE_ATTRIBUTE_UEFI_IMAGE indicates that this image is an EFI compatible image.
///
#define IMAGE_ATTRIBUTE_UEFI_IMAGE 0x0000000000000010
+///
+/// The attribute IMAGE_ATTRIBUTE_DEPENDENCY indicates that there is an EFI_FIRMWARE_IMAGE_DEP
+/// section associated with the image.
+///
+#define IMAGE_ATTRIBUTE_DEPENDENCY 0x0000000000000020
//
// Image Compatibility Definitions
//
+///
/// Values from 0x0000000000000002 thru 0x000000000000FFFF are reserved for future assignments.
/// Values from 0x0000000000010000 thru 0xFFFFFFFFFFFFFFFF are used by firmware vendor for
/// compatibility check.
@@ -163,11 +189,11 @@ typedef struct {
///
/// Descriptor Version exposed by GetImageInfo() function
///
-#define EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION 3
+#define EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION 4
///
-/// Image Attribute -Authentication Required
+/// Image Attribute - Authentication Required
///
typedef struct {
///
@@ -316,11 +342,11 @@ EFI_STATUS
This function allows a copy of the current firmware image to be created and saved.
The saved copy could later been used, for example, in firmware image recovery or rollback.
- @param[in] This A pointer to the EFI_FIRMWARE_MANAGEMENT_PROTOCOL instance.
- @param[in] ImageIndex A unique number identifying the firmware image(s) within the device.
+ @param[in] This A pointer to the EFI_FIRMWARE_MANAGEMENT_PROTOCOL instance.
+ @param[in] ImageIndex A unique number identifying the firmware image(s) within the device.
The number is between 1 and DescriptorCount.
- @param[out] Image Points to the buffer where the current image is copied to.
- @param[out] ImageSize On entry, points to the size of the buffer pointed to by Image, in bytes.
+ @param[out] Image Points to the buffer where the current image is copied to.
+ @param[in, out] ImageSize On entry, points to the size of the buffer pointed to by Image, in bytes.
On return, points to the length of the image, in bytes.
@retval EFI_SUCCESS The device was successfully updated with the new image.
@@ -330,7 +356,7 @@ EFI_STATUS
@retval EFI_INVALID_PARAMETER The Image was NULL.
@retval EFI_NOT_FOUND The current image is not copied to the buffer.
@retval EFI_UNSUPPORTED The operation is not supported.
- @retval EFI_SECURITY_VIOLATIO The operation could not be performed due to an authentication failure.
+ @retval EFI_SECURITY_VIOLATION The operation could not be performed due to an authentication failure.
**/
typedef
@@ -338,7 +364,7 @@ EFI_STATUS
(EFIAPI *EFI_FIRMWARE_MANAGEMENT_PROTOCOL_GET_IMAGE)(
IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This,
IN UINT8 ImageIndex,
- IN OUT VOID *Image,
+ OUT VOID *Image,
IN OUT UINTN *ImageSize
);
@@ -385,7 +411,7 @@ EFI_STATUS
@retval EFI_ABORTED The operation is aborted.
@retval EFI_INVALID_PARAMETER The Image was NULL.
@retval EFI_UNSUPPORTED The operation is not supported.
- @retval EFI_SECURITY_VIOLATIO The operation could not be performed due to an authentication failure.
+ @retval EFI_SECURITY_VIOLATION The operation could not be performed due to an authentication failure.
**/
typedef
@@ -417,7 +443,7 @@ EFI_STATUS
@retval EFI_SUCCESS The image was successfully checked.
@retval EFI_INVALID_PARAMETER The Image was NULL.
@retval EFI_UNSUPPORTED The operation is not supported.
- @retval EFI_SECURITY_VIOLATIO The operation could not be performed due to an authentication failure.
+ @retval EFI_SECURITY_VIOLATION The operation could not be performed due to an authentication failure.
**/
typedef
@@ -501,7 +527,7 @@ EFI_STATUS
@retval EFI_INVALID_PARAMETER The PackageVersionName length is longer than the value
returned in PackageVersionNameMaxLen.
@retval EFI_UNSUPPORTED The operation is not supported.
- @retval EFI_SECURITY_VIOLATIO The operation could not be performed due to an authentication failure.
+ @retval EFI_SECURITY_VIOLATION The operation could not be performed due to an authentication failure.
**/
typedef
diff --git a/MdePkg/Include/Protocol/FirmwareVolume2.h b/MdePkg/Include/Protocol/FirmwareVolume2.h
index 00523bf0837e..cc52ecc794e2 100644
--- a/MdePkg/Include/Protocol/FirmwareVolume2.h
+++ b/MdePkg/Include/Protocol/FirmwareVolume2.h
@@ -1,18 +1,12 @@
/** @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
-
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
@par Revision Reference: PI
Version 1.00.
@@ -98,7 +92,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 +112,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 +130,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 +139,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 +248,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 +262,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 +336,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 +466,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 +476,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 +509,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 +522,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 +541,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 +594,7 @@ EFI_STATUS
@retval EFI_ACCESS_DENIED The firmware volume is configured to
disallow reads.
-
+
**/
typedef
EFI_STATUS
@@ -629,29 +623,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 +734,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.
///
diff --git a/MdePkg/Include/Protocol/FirmwareVolumeBlock.h b/MdePkg/Include/Protocol/FirmwareVolumeBlock.h
index 48c06e143906..3be86b003956 100644
--- a/MdePkg/Include/Protocol/FirmwareVolumeBlock.h
+++ b/MdePkg/Include/Protocol/FirmwareVolumeBlock.h
@@ -1,14 +1,8 @@
/** @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.
-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>
+SPDX-License-Identifier: BSD-2-Clause-Patent
@par Revision Reference: PI
Version 1.0 and 1.2.
@@ -21,7 +15,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 +25,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 +63,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 +86,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 +124,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 +157,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 +173,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 +209,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 +228,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 +311,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 +320,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 +349,7 @@ struct _EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL{
EFI_FVB_ERASE_BLOCKS EraseBlocks;
///
/// The handle of the parent firmware volume.
- ///
+ ///
EFI_HANDLE ParentHandle;
};
diff --git a/MdePkg/Include/Protocol/FormBrowser2.h b/MdePkg/Include/Protocol/FormBrowser2.h
index de132f88c062..8bc26d6fda6d 100644
--- a/MdePkg/Include/Protocol/FormBrowser2.h
+++ b/MdePkg/Include/Protocol/FormBrowser2.h
@@ -1,17 +1,11 @@
/** @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.
-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>
+SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -29,11 +23,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 +38,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 +63,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 +84,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 +120,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 +142,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 +160,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 {
diff --git a/MdePkg/Include/Protocol/Ftp4.h b/MdePkg/Include/Protocol/Ftp4.h
index 939ea9e9c7a3..22b97ebda677 100644
--- a/MdePkg/Include/Protocol/Ftp4.h
+++ b/MdePkg/Include/Protocol/Ftp4.h
@@ -1,22 +1,16 @@
/** @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>
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
- 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 +35,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_HOST_UNREACHABLE: The active open fails because an ICMP host unreachable error is
/// received.
- /// EFI_PORT_UNREACHABLE: The connection establishment timer times out and an ICMP port
+ /// 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 +143,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 +154,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 +164,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;
- ///
+ ///
+ 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 +230,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 +249,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 +260,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 +274,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 +291,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 +303,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 +319,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 +336,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 +355,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 +378,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 +418,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 +455,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 +469,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 +496,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 {
diff --git a/MdePkg/Include/Protocol/GraphicsOutput.h b/MdePkg/Include/Protocol/GraphicsOutput.h
index a3432ce1d6ef..9ba38c577a45 100644
--- a/MdePkg/Include/Protocol/GraphicsOutput.h
+++ b/MdePkg/Include/Protocol/GraphicsOutput.h
@@ -3,14 +3,8 @@
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
-
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -33,18 +27,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 +58,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 +71,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 +110,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 +145,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 +244,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 {
diff --git a/MdePkg/Include/Protocol/GuidedSectionExtraction.h b/MdePkg/Include/Protocol/GuidedSectionExtraction.h
index 8f35002cdd41..e44d639889ae 100644
--- a/MdePkg/Include/Protocol/GuidedSectionExtraction.h
+++ b/MdePkg/Include/Protocol/GuidedSectionExtraction.h
@@ -4,14 +4,8 @@
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
-
- 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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
@par Revision Reference: PI
Version 1.00.
@@ -22,14 +16,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 +55,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
diff --git a/MdePkg/Include/Protocol/Hash.h b/MdePkg/Include/Protocol/Hash.h
index 872dfb7abfd0..178926a1c42a 100644
--- a/MdePkg/Include/Protocol/Hash.h
+++ b/MdePkg/Include/Protocol/Hash.h
@@ -1,18 +1,12 @@
/** @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.
-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>
+SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -23,7 +17,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 +31,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 +100,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 +110,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 +121,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 +144,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 {
diff --git a/MdePkg/Include/Protocol/Hash2.h b/MdePkg/Include/Protocol/Hash2.h
index d049e8faffa2..9ad0e3023da3 100644
--- a/MdePkg/Include/Protocol/Hash2.h
+++ b/MdePkg/Include/Protocol/Hash2.h
@@ -8,13 +8,7 @@
message padding and finalization are performed by the supporting driver.
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 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.
+SPDX-License-Identifier: BSD-2-Clause-Patent
**/
diff --git a/MdePkg/Include/Protocol/HiiConfigAccess.h b/MdePkg/Include/Protocol/HiiConfigAccess.h
index 3b076511c6e2..21feba5fea56 100644
--- a/MdePkg/Include/Protocol/HiiConfigAccess.h
+++ b/MdePkg/Include/Protocol/HiiConfigAccess.h
@@ -1,18 +1,15 @@
/** @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.
-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>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ This Protocol was introduced in UEFI Specification 2.1.
**/
@@ -43,7 +40,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 +61,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 +92,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 +118,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 +131,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 +143,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 +166,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 +175,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 +201,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
diff --git a/MdePkg/Include/Protocol/HiiConfigKeyword.h b/MdePkg/Include/Protocol/HiiConfigKeyword.h
index 1c2d3c67dcac..5786fbc3693e 100644
--- a/MdePkg/Include/Protocol/HiiConfigKeyword.h
+++ b/MdePkg/Include/Protocol/HiiConfigKeyword.h
@@ -1,16 +1,14 @@
/** @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.
-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) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ This Protocol was introduced in UEFI Specification 2.5.
+
**/
@@ -40,18 +38,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 +57,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 +76,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 +104,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 +163,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 +171,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
///
diff --git a/MdePkg/Include/Protocol/HiiConfigRouting.h b/MdePkg/Include/Protocol/HiiConfigRouting.h
index 89f3f9b2dbfd..88f98d19fdfd 100644
--- a/MdePkg/Include/Protocol/HiiConfigRouting.h
+++ b/MdePkg/Include/Protocol/HiiConfigRouting.h
@@ -4,15 +4,13 @@
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.
-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>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ This Protocol was introduced in UEFI Specification 2.1.
+
**/
@@ -26,7 +24,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 +82,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 +98,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 +116,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 +156,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 +180,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 +204,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 +226,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 +254,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 +308,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 +337,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 +352,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 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 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
);
///
diff --git a/MdePkg/Include/Protocol/HiiDatabase.h b/MdePkg/Include/Protocol/HiiDatabase.h
index 435fe1be787a..8ea5b7d90996 100644
--- a/MdePkg/Include/Protocol/HiiDatabase.h
+++ b/MdePkg/Include/Protocol/HiiDatabase.h
@@ -1,15 +1,12 @@
/** @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.
-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>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ This Protocol was introduced in UEFI Specification 2.1.
**/
@@ -25,7 +22,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 +30,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 +45,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 +77,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 +85,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 +118,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 +136,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 +159,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 +185,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 +255,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 +264,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 +289,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 +299,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 +352,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 +375,7 @@ EFI_STATUS
/**
-
+
This routine retrieves an array of GUID values for each keyboard
layout that was previously registered in the system.
@@ -388,13 +385,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 +400,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 +416,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 +431,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 +451,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 +478,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.
**/
diff --git a/MdePkg/Include/Protocol/HiiFont.h b/MdePkg/Include/Protocol/HiiFont.h
index b94073449611..c229e394423d 100644
--- a/MdePkg/Include/Protocol/HiiFont.h
+++ b/MdePkg/Include/Protocol/HiiFont.h
@@ -1,14 +1,11 @@
/** @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.
-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>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ This Protocol was introduced in UEFI Specification 2.1.
**/
@@ -27,7 +24,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 +46,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 +77,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 +100,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 +152,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 +200,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 +273,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 +339,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 +421,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
diff --git a/MdePkg/Include/Protocol/HiiImage.h b/MdePkg/Include/Protocol/HiiImage.h
index 3407532ea2c1..ef4559988e4f 100644
--- a/MdePkg/Include/Protocol/HiiImage.h
+++ b/MdePkg/Include/Protocol/HiiImage.h
@@ -1,14 +1,11 @@
/** @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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ This Protocol was introduced in UEFI Specification 2.1.
**/
@@ -25,18 +22,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 +41,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 +57,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 +68,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 +97,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 +128,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 +142,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 +173,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 +198,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 +213,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 +256,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 +289,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 +312,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
diff --git a/MdePkg/Include/Protocol/HiiImageDecoder.h b/MdePkg/Include/Protocol/HiiImageDecoder.h
index 6ee16c922243..965c59a9e0e0 100644
--- a/MdePkg/Include/Protocol/HiiImageDecoder.h
+++ b/MdePkg/Include/Protocol/HiiImageDecoder.h
@@ -2,15 +2,12 @@
This protocol provides generic image decoder interfaces to various image formats.
(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
- Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2016-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.
+SPDX-License-Identifier: BSD-2-Clause-Patent
-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.6.
**/
#ifndef __HII_IMAGE_DECODER_H__
@@ -18,15 +15,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#include <Protocol/HiiImage.h>
-
-//
-// In UEFI 2.6 spec,this guid value is duplicate with
-// EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_GUID. Now update this guid value to
-// avoid the duplicate guid issue. So its value is not consistent with
-// UEFI spec definition now. We have proposed to update UEFI spec to
-// use this new guid. After new spec released, we will remove this
-// comments.
-//
#define EFI_HII_IMAGE_DECODER_PROTOCOL_GUID \
{0x9e66f251, 0x727c, 0x418c, { 0xbf, 0xd6, 0xc2, 0xb4, 0x25, 0x28, 0x18, 0xea }}
diff --git a/MdePkg/Include/Protocol/HiiImageEx.h b/MdePkg/Include/Protocol/HiiImageEx.h
index 5c4fd647e198..c0402b7bbb51 100644
--- a/MdePkg/Include/Protocol/HiiImageEx.h
+++ b/MdePkg/Include/Protocol/HiiImageEx.h
@@ -1,15 +1,12 @@
/** @file
Protocol which allows access to the images in the images database.
-(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
+(C) Copyright 2016-2018 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 that accompanies this distribution.
-The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php.
+SPDX-License-Identifier: BSD-2-Clause-Patent
-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.6.
**/
@@ -28,8 +25,7 @@ typedef struct _EFI_HII_IMAGE_EX_PROTOCOL EFI_HII_IMAGE_EX_PROTOCOL;
/**
The prototype of this extension function is the same with EFI_HII_IMAGE_PROTOCOL.NewImage().
- Same with EFI_HII_IMAGE_PROTOCOL.NewImage().This protocol invokes
-EFI_HII_IMAGE_PROTOCOL.NewImage() implicitly.
+ This protocol invokes EFI_HII_IMAGE_PROTOCOL.NewImage() implicitly.
@param This A pointer to the EFI_HII_IMAGE_EX_PROTOCOL instance.
@param PackageList Handle of the package list where this image will
@@ -57,22 +53,24 @@ EFI_STATUS
/**
Return the information about the image, associated with the package list.
The prototype of this extension function is the same with EFI_HII_IMAGE_PROTOCOL.GetImage().
- Same with EFI_HII_IMAGE_PROTOCOL.SetImage(),this protocol invokes EFI_HII_IMAGE_PROTOCOL.SetImage() implicitly.
+
+ This function is similar to EFI_HII_IMAGE_PROTOCOL.GetImage().The difference is that
+ this function will locate all EFI_HII_IMAGE_DECODER_PROTOCOL instances installed in the
+ system if the decoder of the certain image type is not supported by the
+ EFI_HII_IMAGE_EX_PROTOCOL. The function will attempt to decode the image to the
+ EFI_IMAGE_INPUT using the first EFI_HII_IMAGE_DECODER_PROTOCOL instance that
+ supports the requested image type.
@param This A pointer to the EFI_HII_IMAGE_EX_PROTOCOL instance.
- @param PackageList Handle of the package list where this image will
- be searched.
- @param ImageId The image's id,, which is unique within
- PackageList.
+ @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 image.
@retval EFI_SUCCESS The new image was returned successfully.
- @retval EFI_NOT_FOUND The image specified by ImageId is not in the
- database. The specified PackageList is not in
- the database.
- @retval EFI_BUFFER_TOO_SMALL The buffer specified by ImageSize is too small to
- hold the image.
- @retval EFI_INVALID_PARAMETER The Image or ImageSize was NULL.
+ @retval EFI_NOT_FOUND The image specified by ImageId is not available. The specified
+ PackageList is not in the Database.
+ @retval EFI_INVALID_PARAMETER Image was NULL or ImageId was 0.
@retval EFI_OUT_OF_RESOURCES The bitmap could not be retrieved because there
was not enough memory.
@@ -87,21 +85,22 @@ EFI_STATUS
);
/**
- Change the information about the image. The prototype of this extension
- function is the same with EFI_HII_IMAGE_PROTOCOL.SetImage(). Same with
- EFI_HII_IMAGE_PROTOCOL.DrawImageId(),this protocol invokes EFI_HII_IMAGE_PROTOCOL.DrawImageId() implicitly.
+ Change the information about the image.
+
+ Same with EFI_HII_IMAGE_PROTOCOL.SetImage(),this protocol invokes
+ EFI_HII_IMAGE_PROTOCOL.SetImage()implicitly.
@param This A pointer to the EFI_HII_IMAGE_EX_PROTOCOL instance.
@param PackageList The package list containing the images.
- @param ImageId The image's id,, which is unique within
- PackageList.
+ @param ImageId The image's id, which is unique within PackageList.
@param Image Points to the image.
- @retval EFI_SUCCESS The new image was updated successfully.
+ @retval EFI_SUCCESS The new 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.
- @retval EFI_INVALID_PARAMETER The Image was NULL.
+ @retval EFI_INVALID_PARAMETER The Image was NULL, the ImageId was 0 or
+ the Image->Bitmap was NULL.
**/
typedef
@@ -114,9 +113,11 @@ EFI_STATUS
);
/**
- Renders an image to a bitmap or to the display. The prototype of this extension
- function is the same with EFI_HII_IMAGE_PROTOCOL.DrawImage().
- Same with EFI_HII_IMAGE_PROTOCOL.SetImage(),this protocol invokes EFI_HII_IMAGE_PROTOCOL.SetImage() implicitly.
+ Renders an image to a bitmap or to the display.
+
+ The prototype of this extension function is the same with
+ EFI_HII_IMAGE_PROTOCOL.DrawImage(). This protocol invokes
+ EFI_HII_IMAGE_PROTOCOL.DrawImage() implicitly.
@param This A pointer to the EFI_HII_IMAGE_EX_PROTOCOL instance.
@param Flags Describes how the image is to be drawn.
@@ -125,19 +126,18 @@ EFI_STATUS
to the image, which is Width pixels wide and
Height pixels high. The image will be drawn onto
this image and EFI_HII_DRAW_FLAG_CLIP is implied.
- If this points to a NULL on entry, then a buffer
- will be allocated to hold the generated image and
+ If this points to a NULL on entry, then a buffer
+ will be allocated to hold the generated image and
the pointer updated on exit. It is the caller's
responsibility to free this buffer.
@param BltX Specifies the offset from the left and top edge of
- the output image of the first pixel in the image.
+ the output image of the first pixel in the image.
@param BltY Specifies the offset from the left and top edge of
- the output image of the first pixel in the image.
+ the output image of the first pixel in the image.
@retval EFI_SUCCESS The image was successfully drawn.
@retval EFI_OUT_OF_RESOURCES Unable to allocate an output buffer for Blt.
@retval EFI_INVALID_PARAMETER The Image or Blt was NULL.
- Any combination of Flags is invalid.
**/
typedef
@@ -153,17 +153,20 @@ EFI_STATUS
/**
Renders an image to a bitmap or the screen containing the contents of the specified
- image. The prototype of this extension function is the same with E
- FI_HII_IMAGE_PROTOCOL.DrawImageId().
- Same with EFI_HII_IMAGE_PROTOCOL.DrawImageId(),this protocol invokes
-EFI_HII_IMAGE_PROTOCOL.DrawImageId() implicitly.
+ image.
+
+ This function is similar to EFI_HII_IMAGE_PROTOCOL.DrawImageId(). The difference is that
+ this function will locate all EFI_HII_IMAGE_DECODER_PROTOCOL instances installed in the
+ system if the decoder of the certain image type is not supported by the
+ EFI_HII_IMAGE_EX_PROTOCOL. The function will attempt to decode the image to the
+ EFI_IMAGE_INPUT using the first EFI_HII_IMAGE_DECODER_PROTOCOL instance that
+ supports the requested image type.
@param This A pointer to the EFI_HII_IMAGE_EX_PROTOCOL instance.
@param Flags Describes how the image is to be drawn.
@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 ImageId The image's id, which is unique within PackageList.
@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
@@ -179,7 +182,7 @@ EFI_HII_IMAGE_PROTOCOL.DrawImageId() implicitly.
@retval EFI_SUCCESS The image was successfully drawn.
@retval EFI_OUT_OF_RESOURCES Unable to allocate an output buffer for Blt.
- @retval EFI_INVALID_PARAMETER The Blt was NULL.
+ @retval EFI_INVALID_PARAMETER The Blt was NULL or ImageId was 0.
@retval EFI_NOT_FOUND The image specified by ImageId is not in the database.
The specified PackageList is not in the database.
@@ -206,7 +209,7 @@ EFI_STATUS
@param This A pointer to the EFI_HII_IMAGE_EX_PROTOCOL instance.
@param PackageList Handle of the package list where this image will
be searched.
- @param ImageId The image's id,, which is unique within PackageList.
+ @param ImageId The image's id, which is unique within PackageList.
@param Image Points to the image.
@retval EFI_SUCCESS The new image was returned successfully.
@@ -214,7 +217,7 @@ EFI_STATUS
database. The specified PackageList is not in the database.
@retval EFI_BUFFER_TOO_SMALL The buffer specified by ImageSize is too small to
hold the image.
- @retval EFI_INVALID_PARAMETER The Image or ImageSize was NULL.
+ @retval EFI_INVALID_PARAMETER The Image was NULL or the ImageId was 0.
@retval EFI_OUT_OF_RESOURCES The bitmap could not be retrieved because there
was not enough memory.
diff --git a/MdePkg/Include/Protocol/HiiPackageList.h b/MdePkg/Include/Protocol/HiiPackageList.h
index 3842973281ec..a161edfa592a 100644
--- a/MdePkg/Include/Protocol/HiiPackageList.h
+++ b/MdePkg/Include/Protocol/HiiPackageList.h
@@ -4,15 +4,9 @@
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>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
diff --git a/MdePkg/Include/Protocol/HiiPopup.h b/MdePkg/Include/Protocol/HiiPopup.h
new file mode 100644
index 000000000000..8924a3a5704c
--- /dev/null
+++ b/MdePkg/Include/Protocol/HiiPopup.h
@@ -0,0 +1,78 @@
+/** @file
+ This protocol provides services to display a popup window.
+ The protocol is typically produced by the forms browser and consumed by a driver callback handler.
+
+ Copyright (c) 2017-2018, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ This Protocol was introduced in UEFI Specification 2.7.
+
+**/
+
+#ifndef __HII_POPUP_H__
+#define __HII_POPUP_H__
+
+#define EFI_HII_POPUP_PROTOCOL_GUID \
+ {0x4311edc0, 0x6054, 0x46d4, {0x9e, 0x40, 0x89, 0x3e, 0xa9, 0x52, 0xfc, 0xcc}}
+
+#define EFI_HII_POPUP_PROTOCOL_REVISION 1
+
+typedef struct _EFI_HII_POPUP_PROTOCOL EFI_HII_POPUP_PROTOCOL;
+
+typedef enum {
+ EfiHiiPopupStyleInfo,
+ EfiHiiPopupStyleWarning,
+ EfiHiiPopupStyleError
+} EFI_HII_POPUP_STYLE;
+
+typedef enum {
+ EfiHiiPopupTypeOk,
+ EfiHiiPopupTypeOkCancel,
+ EfiHiiPopupTypeYesNo,
+ EfiHiiPopupTypeYesNoCancel
+} EFI_HII_POPUP_TYPE;
+
+typedef enum {
+ EfiHiiPopupSelectionOk,
+ EfiHiiPopupSelectionCancel,
+ EfiHiiPopupSelectionYes,
+ EfiHiiPopupSelectionNo
+} EFI_HII_POPUP_SELECTION;
+
+/**
+ Displays a popup window.
+
+ @param This A pointer to the EFI_HII_POPUP_PROTOCOL instance.
+ @param PopupStyle Popup style to use.
+ @param PopupType Type of the popup to display.
+ @param HiiHandle HII handle of the string pack containing Message
+ @param Message A message to display in the popup box.
+ @param UserSelection User selection.
+
+ @retval EFI_SUCCESS The popup box was successfully displayed.
+ @retval EFI_INVALID_PARAMETER HiiHandle and Message do not define a valid HII string.
+ @retval EFI_INVALID_PARAMETER PopupType is not one of the values defined by this specification.
+ @retval EFI_OUT_OF_RESOURCES There are not enough resources available to display the popup box.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI * EFI_HII_CREATE_POPUP) (
+ IN EFI_HII_POPUP_PROTOCOL *This,
+ IN EFI_HII_POPUP_STYLE PopupStyle,
+ IN EFI_HII_POPUP_TYPE PopupType,
+ IN EFI_HII_HANDLE HiiHandle,
+ IN EFI_STRING_ID Message,
+ OUT EFI_HII_POPUP_SELECTION *UserSelection OPTIONAL
+);
+
+typedef struct _EFI_HII_POPUP_PROTOCOL {
+ UINT64 Revision;
+ EFI_HII_CREATE_POPUP CreatePopup;
+} EFI_HII_POPUP_PROTOCOL;
+
+extern EFI_GUID gEfiHiiPopupProtocolGuid;
+
+#endif
+
diff --git a/MdePkg/Include/Protocol/HiiString.h b/MdePkg/Include/Protocol/HiiString.h
index 9e9f7ff50753..989d181f5aa8 100644
--- a/MdePkg/Include/Protocol/HiiString.h
+++ b/MdePkg/Include/Protocol/HiiString.h
@@ -1,14 +1,11 @@
/** @file
The file prov