├── Include ├── AArch64 │ └── ProcessorBind.h ├── Arm │ └── ProcessorBind.h ├── Base.h ├── Ebc │ └── ProcessorBind.h ├── Guid │ ├── Acpi.h │ ├── Apriori.h │ ├── AprioriFileName.h │ ├── Btt.h │ ├── CapsuleReport.h │ ├── Cper.h │ ├── DebugImageInfoTable.h │ ├── DxeServices.h │ ├── EventGroup.h │ ├── EventLegacyBios.h │ ├── FileInfo.h │ ├── FileSystemInfo.h │ ├── FileSystemVolumeLabelInfo.h │ ├── FirmwareContentsSigned.h │ ├── FirmwareFileSystem2.h │ ├── FirmwareFileSystem3.h │ ├── FmpCapsule.h │ ├── GlobalVariable.h │ ├── Gpt.h │ ├── GraphicsInfoHob.h │ ├── HardwareErrorVariable.h │ ├── HiiFormMapMethodGuid.h │ ├── HiiKeyBoardLayout.h │ ├── HiiPlatformSetupFormset.h │ ├── HobList.h │ ├── ImageAuthentication.h │ ├── MdePkgTokenSpace.h │ ├── MemoryAllocationHob.h │ ├── MemoryAttributesTable.h │ ├── MemoryOverwriteControl.h │ ├── Mps.h │ ├── PcAnsi.h │ ├── PropertiesTable.h │ ├── SalSystemTable.h │ ├── SmBios.h │ ├── StatusCodeDataTypeId.h │ ├── SystemResourceTable.h │ ├── VectorHandoffTable.h │ └── WinCertificate.h ├── Ia32 │ └── ProcessorBind.h ├── IndustryStandard │ ├── Acpi.h │ ├── Acpi10.h │ ├── Acpi20.h │ ├── Acpi30.h │ ├── Acpi40.h │ ├── Acpi50.h │ ├── Acpi51.h │ ├── Acpi60.h │ ├── Acpi61.h │ ├── Acpi62.h │ ├── AcpiAml.h │ ├── AlertStandardFormatTable.h │ ├── Atapi.h │ ├── Bluetooth.h │ ├── Bmp.h │ ├── DebugPort2Table.h │ ├── DebugPortTable.h │ ├── Dhcp.h │ ├── DmaRemappingReportingTable.h │ ├── ElTorito.h │ ├── Emmc.h │ ├── HighPrecisionEventTimerTable.h │ ├── Hsti.h │ ├── Http11.h │ ├── IScsiBootFirmwareTable.h │ ├── IoRemappingTable.h │ ├── Ipmi.h │ ├── IpmiFruInformationStorage.h │ ├── IpmiNetFnApp.h │ ├── IpmiNetFnBridge.h │ ├── IpmiNetFnChassis.h │ ├── IpmiNetFnFirmware.h │ ├── IpmiNetFnGroupExtension.h │ ├── IpmiNetFnSensorEvent.h │ ├── IpmiNetFnStorage.h │ ├── IpmiNetFnTransport.h │ ├── LegacyBiosMpTable.h │ ├── LowPowerIdleTable.h │ ├── Mbr.h │ ├── MemoryMappedConfigurationSpaceAccessTable.h │ ├── MemoryOverwriteRequestControlLock.h │ ├── Nvme.h │ ├── Pal.h │ ├── Pci.h │ ├── Pci22.h │ ├── Pci23.h │ ├── Pci30.h │ ├── PciCodeId.h │ ├── PciExpress21.h │ ├── PciExpress30.h │ ├── PciExpress31.h │ ├── PciExpress40.h │ ├── PeImage.h │ ├── Sal.h │ ├── Scsi.h │ ├── Sd.h │ ├── SdramSpd.h │ ├── SdramSpdDdr3.h │ ├── SdramSpdDdr4.h │ ├── SdramSpdLpDdr.h │ ├── SerialPortConsoleRedirectionTable.h │ ├── ServiceProcessorManagementInterfaceTable.h │ ├── SmBios.h │ ├── SmBus.h │ ├── TcgPhysicalPresence.h │ ├── TcgStorageCore.h │ ├── TcgStorageOpal.h │ ├── TcpaAcpi.h │ ├── Tls1.h │ ├── Tpm12.h │ ├── Tpm20.h │ ├── Tpm2Acpi.h │ ├── TpmPtp.h │ ├── TpmTis.h │ ├── Udf.h │ ├── UefiTcgPlatform.h │ ├── Usb.h │ ├── WatchdogActionTable.h │ ├── WatchdogResourceTable.h │ ├── WindowsSmmSecurityMitigationTable.h │ └── WindowsUxCapsule.h ├── Library │ ├── BaseLib.h │ ├── BaseMemoryLib.h │ ├── CacheMaintenanceLib.h │ ├── CpuLib.h │ ├── DebugLib.h │ ├── DebugPrintErrorLevelLib.h │ ├── DevicePathLib.h │ ├── DxeCoreEntryPoint.h │ ├── DxeServicesLib.h │ ├── DxeServicesTableLib.h │ ├── ExtendedSalLib.h │ ├── ExtractGuidedSectionLib.h │ ├── FileHandleLib.h │ ├── HobLib.h │ ├── HstiLib.h │ ├── IoLib.h │ ├── MemoryAllocationLib.h │ ├── OrderedCollectionLib.h │ ├── PalLib.h │ ├── PcdLib.h │ ├── PciCf8Lib.h │ ├── PciExpressLib.h │ ├── PciLib.h │ ├── PciSegmentInfoLib.h │ ├── PciSegmentLib.h │ ├── PeCoffExtraActionLib.h │ ├── PeCoffGetEntryPointLib.h │ ├── PeCoffLib.h │ ├── PeiCoreEntryPoint.h │ ├── PeiServicesLib.h │ ├── PeiServicesTablePointerLib.h │ ├── PeimEntryPoint.h │ ├── PerformanceLib.h │ ├── PostCodeLib.h │ ├── PrintLib.h │ ├── ReportStatusCodeLib.h │ ├── ResourcePublicationLib.h │ ├── RngLib.h │ ├── S3BootScriptLib.h │ ├── S3IoLib.h │ ├── S3PciLib.h │ ├── S3PciSegmentLib.h │ ├── S3SmbusLib.h │ ├── S3StallLib.h │ ├── SafeIntLib.h │ ├── SalLib.h │ ├── SerialPortLib.h │ ├── SmbusLib.h │ ├── SmiHandlerProfileLib.h │ ├── SmmIoLib.h │ ├── SmmLib.h │ ├── SmmMemLib.h │ ├── SmmPeriodicSmiLib.h │ ├── SmmServicesTableLib.h │ ├── SynchronizationLib.h │ ├── TimerLib.h │ ├── UefiApplicationEntryPoint.h │ ├── UefiBootServicesTableLib.h │ ├── UefiDecompressLib.h │ ├── UefiDriverEntryPoint.h │ ├── UefiLib.h │ ├── UefiRuntimeLib.h │ ├── UefiRuntimeServicesTableLib.h │ ├── UefiScsiLib.h │ └── UefiUsbLib.h ├── Pi │ ├── PiBootMode.h │ ├── PiDependency.h │ ├── PiDxeCis.h │ ├── PiFirmwareFile.h │ ├── PiFirmwareVolume.h │ ├── PiHob.h │ ├── PiI2c.h │ ├── PiMmCis.h │ ├── PiMultiPhase.h │ ├── PiPeiCis.h │ ├── PiS3BootScript.h │ ├── PiSmmCis.h │ └── PiStatusCode.h ├── PiDxe.h ├── PiMm.h ├── PiPei.h ├── PiSmm.h ├── Ppi │ ├── BlockIo.h │ ├── BlockIo2.h │ ├── BootInRecoveryMode.h │ ├── Capsule.h │ ├── CpuIo.h │ ├── Decompress.h │ ├── DeviceRecoveryModule.h │ ├── DxeIpl.h │ ├── EndOfPeiPhase.h │ ├── FirmwareVolume.h │ ├── FirmwareVolumeInfo.h │ ├── FirmwareVolumeInfo2.h │ ├── Graphics.h │ ├── GuidedSectionExtraction.h │ ├── I2cMaster.h │ ├── IsaHc.h │ ├── LoadFile.h │ ├── LoadImage.h │ ├── MasterBootMode.h │ ├── MemoryDiscovered.h │ ├── MpServices.h │ ├── Pcd.h │ ├── PcdInfo.h │ ├── PciCfg2.h │ ├── PiPcd.h │ ├── PiPcdInfo.h │ ├── ReadOnlyVariable2.h │ ├── RecoveryModule.h │ ├── ReportStatusCodeHandler.h │ ├── Reset.h │ ├── Reset2.h │ ├── S3Resume2.h │ ├── SecHobData.h │ ├── SecPlatformInformation.h │ ├── SecPlatformInformation2.h │ ├── Security2.h │ ├── Smbus2.h │ ├── Stall.h │ ├── StatusCode.h │ ├── SuperIo.h │ ├── TemporaryRamDone.h │ ├── TemporaryRamSupport.h │ └── VectorHandoffInfo.h ├── Protocol │ ├── AbsolutePointer.h │ ├── AcpiSystemDescriptionTable.h │ ├── AcpiTable.h │ ├── AdapterInformation.h │ ├── Arp.h │ ├── AtaPassThru.h │ ├── AuthenticationInfo.h │ ├── Bds.h │ ├── Bis.h │ ├── BlockIo.h │ ├── BlockIo2.h │ ├── BlockIoCrypto.h │ ├── BluetoothAttribute.h │ ├── BluetoothConfig.h │ ├── BluetoothHc.h │ ├── BluetoothIo.h │ ├── BluetoothLeConfig.h │ ├── BootManagerPolicy.h │ ├── BusSpecificDriverOverride.h │ ├── Capsule.h │ ├── ComponentName.h │ ├── ComponentName2.h │ ├── Cpu.h │ ├── CpuIo2.h │ ├── DebugPort.h │ ├── DebugSupport.h │ ├── Decompress.h │ ├── DeferredImageLoad.h │ ├── DeviceIo.h │ ├── DevicePath.h │ ├── DevicePathFromText.h │ ├── DevicePathToText.h │ ├── DevicePathUtilities.h │ ├── Dhcp4.h │ ├── Dhcp6.h │ ├── DiskInfo.h │ ├── DiskIo.h │ ├── DiskIo2.h │ ├── Dns4.h │ ├── Dns6.h │ ├── DriverBinding.h │ ├── DriverConfiguration.h │ ├── DriverConfiguration2.h │ ├── DriverDiagnostics.h │ ├── DriverDiagnostics2.h │ ├── DriverFamilyOverride.h │ ├── DriverHealth.h │ ├── DriverSupportedEfiVersion.h │ ├── DxeMmReadyToLock.h │ ├── DxeSmmReadyToLock.h │ ├── Eap.h │ ├── EapConfiguration.h │ ├── EapManagement.h │ ├── EapManagement2.h │ ├── Ebc.h │ ├── EdidActive.h │ ├── EdidDiscovered.h │ ├── EdidOverride.h │ ├── EraseBlock.h │ ├── ExtendedSalBootService.h │ ├── ExtendedSalServiceClasses.h │ ├── FirmwareManagement.h │ ├── FirmwareVolume2.h │ ├── FirmwareVolumeBlock.h │ ├── FormBrowser2.h │ ├── Ftp4.h │ ├── GraphicsOutput.h │ ├── GuidedSectionExtraction.h │ ├── Hash.h │ ├── Hash2.h │ ├── HiiConfigAccess.h │ ├── HiiConfigKeyword.h │ ├── HiiConfigRouting.h │ ├── HiiDatabase.h │ ├── HiiFont.h │ ├── HiiImage.h │ ├── HiiImageDecoder.h │ ├── HiiImageEx.h │ ├── HiiPackageList.h │ ├── HiiPopup.h │ ├── HiiString.h │ ├── Http.h │ ├── HttpBootCallback.h │ ├── HttpUtilities.h │ ├── I2cBusConfigurationManagement.h │ ├── I2cEnumerate.h │ ├── I2cHost.h │ ├── I2cIo.h │ ├── I2cMaster.h │ ├── IScsiInitiatorName.h │ ├── IdeControllerInit.h │ ├── IncompatiblePciDeviceSupport.h │ ├── Ip4.h │ ├── Ip4Config.h │ ├── Ip4Config2.h │ ├── Ip6.h │ ├── Ip6Config.h │ ├── IpSec.h │ ├── IpSecConfig.h │ ├── IsaHc.h │ ├── Kms.h │ ├── LegacyRegion2.h │ ├── LegacySpiController.h │ ├── LegacySpiFlash.h │ ├── LegacySpiSmmController.h │ ├── LegacySpiSmmFlash.h │ ├── LoadFile.h │ ├── LoadFile2.h │ ├── LoadedImage.h │ ├── ManagedNetwork.h │ ├── McaInitPmi.h │ ├── Metronome.h │ ├── MmAccess.h │ ├── MmBase.h │ ├── MmCommunication.h │ ├── MmConfiguration.h │ ├── MmControl.h │ ├── MmCpu.h │ ├── MmCpuIo.h │ ├── MmEndOfDxe.h │ ├── MmGpiDispatch.h │ ├── MmIoTrapDispatch.h │ ├── MmPciRootBridgeIo.h │ ├── MmPeriodicTimerDispatch.h │ ├── MmPowerButtonDispatch.h │ ├── MmReadyToLock.h │ ├── MmReportStatusCodeHandler.h │ ├── MmStandbyButtonDispatch.h │ ├── MmStatusCode.h │ ├── MmSwDispatch.h │ ├── MmSxDispatch.h │ ├── MmUsbDispatch.h │ ├── MonotonicCounter.h │ ├── MpService.h │ ├── Mtftp4.h │ ├── Mtftp6.h │ ├── NetworkInterfaceIdentifier.h │ ├── NvdimmLabel.h │ ├── NvmExpressPassthru.h │ ├── PartitionInfo.h │ ├── Pcd.h │ ├── PcdInfo.h │ ├── PciEnumerationComplete.h │ ├── PciHostBridgeResourceAllocation.h │ ├── PciHotPlugInit.h │ ├── PciHotPlugRequest.h │ ├── PciIo.h │ ├── PciOverride.h │ ├── PciPlatform.h │ ├── PciRootBridgeIo.h │ ├── PiPcd.h │ ├── PiPcdInfo.h │ ├── Pkcs7Verify.h │ ├── PlatformDriverOverride.h │ ├── PlatformToDriverConfiguration.h │ ├── PxeBaseCode.h │ ├── PxeBaseCodeCallBack.h │ ├── RamDisk.h │ ├── RealTimeClock.h │ ├── RegularExpressionProtocol.h │ ├── ReportStatusCodeHandler.h │ ├── Reset.h │ ├── ResetNotification.h │ ├── Rest.h │ ├── Rng.h │ ├── Runtime.h │ ├── S3SaveState.h │ ├── S3SmmSaveState.h │ ├── ScsiIo.h │ ├── ScsiPassThru.h │ ├── ScsiPassThruExt.h │ ├── SdMmcPassThru.h │ ├── Security.h │ ├── Security2.h │ ├── SecurityPolicy.h │ ├── SerialIo.h │ ├── ServiceBinding.h │ ├── Shell.h │ ├── ShellDynamicCommand.h │ ├── ShellParameters.h │ ├── SimpleFileSystem.h │ ├── SimpleNetwork.h │ ├── SimplePointer.h │ ├── SimpleTextIn.h │ ├── SimpleTextInEx.h │ ├── SimpleTextOut.h │ ├── SmartCardEdge.h │ ├── SmartCardReader.h │ ├── Smbios.h │ ├── SmbusHc.h │ ├── SmmAccess2.h │ ├── SmmBase2.h │ ├── SmmCommunication.h │ ├── SmmConfiguration.h │ ├── SmmControl2.h │ ├── SmmCpu.h │ ├── SmmCpuIo2.h │ ├── SmmEndOfDxe.h │ ├── SmmGpiDispatch2.h │ ├── SmmIoTrapDispatch2.h │ ├── SmmPciRootBridgeIo.h │ ├── SmmPeriodicTimerDispatch2.h │ ├── SmmPowerButtonDispatch2.h │ ├── SmmReadyToLock.h │ ├── SmmReportStatusCodeHandler.h │ ├── SmmStandbyButtonDispatch2.h │ ├── SmmStatusCode.h │ ├── SmmSwDispatch2.h │ ├── SmmSxDispatch2.h │ ├── SmmUsbDispatch2.h │ ├── SpiConfiguration.h │ ├── SpiHc.h │ ├── SpiIo.h │ ├── SpiNorFlash.h │ ├── SpiSmmConfiguration.h │ ├── SpiSmmHc.h │ ├── SpiSmmNorFlash.h │ ├── StatusCode.h │ ├── StorageSecurityCommand.h │ ├── SuperIo.h │ ├── SuperIoControl.h │ ├── Supplicant.h │ ├── TapeIo.h │ ├── Tcg2Protocol.h │ ├── TcgService.h │ ├── Tcp4.h │ ├── Tcp6.h │ ├── Timer.h │ ├── Timestamp.h │ ├── Tls.h │ ├── TlsConfig.h │ ├── TrEEProtocol.h │ ├── Udp4.h │ ├── Udp6.h │ ├── UfsDeviceConfig.h │ ├── UgaDraw.h │ ├── UgaIo.h │ ├── UnicodeCollation.h │ ├── Usb2HostController.h │ ├── UsbFunctionIo.h │ ├── UsbHostController.h │ ├── UsbIo.h │ ├── UserCredential.h │ ├── UserCredential2.h │ ├── UserManager.h │ ├── Variable.h │ ├── VariableWrite.h │ ├── VlanConfig.h │ ├── WatchdogTimer.h │ ├── WiFi.h │ └── WiFi2.h ├── Uefi.h ├── Uefi │ ├── UefiAcpiDataTable.h │ ├── UefiBaseType.h │ ├── UefiGpt.h │ ├── UefiInternalFormRepresentation.h │ ├── UefiMultiPhase.h │ ├── UefiPxe.h │ └── UefiSpec.h └── X64 │ └── ProcessorBind.h ├── License.txt └── README.md /Include/Guid/Acpi.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | GUIDs used for ACPI entries in the EFI system table 3 | 4 | These GUIDs point the ACPI tables as defined in the ACPI specifications. 5 | ACPI 2.0 specification defines the ACPI 2.0 GUID. UEFI 2.0 defines the 6 | ACPI 2.0 Table GUID and ACPI Table GUID. 7 | 8 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
9 | This program and the accompanying materials 10 | are licensed and made available under the terms and conditions of the BSD License 11 | which accompanies this distribution. The full text of the license may be found at 12 | http://opensource.org/licenses/bsd-license.php 13 | 14 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 15 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 16 | 17 | @par Revision Reference: 18 | GUIDs defined in UEFI 2.0 spec. 19 | 20 | **/ 21 | 22 | #ifndef __ACPI_GUID_H__ 23 | #define __ACPI_GUID_H__ 24 | 25 | #define ACPI_TABLE_GUID \ 26 | { \ 27 | 0xeb9d2d30, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \ 28 | } 29 | 30 | #define EFI_ACPI_TABLE_GUID \ 31 | { \ 32 | 0x8868e871, 0xe4f1, 0x11d3, {0xbc, 0x22, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } \ 33 | } 34 | 35 | #define ACPI_10_TABLE_GUID ACPI_TABLE_GUID 36 | 37 | // 38 | // ACPI 2.0 or newer tables should use EFI_ACPI_TABLE_GUID. 39 | // 40 | #define EFI_ACPI_20_TABLE_GUID EFI_ACPI_TABLE_GUID 41 | 42 | extern EFI_GUID gEfiAcpiTableGuid; 43 | extern EFI_GUID gEfiAcpi10TableGuid; 44 | extern EFI_GUID gEfiAcpi20TableGuid; 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /Include/Guid/Apriori.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | GUID used as an FV filename for A Priori file. The A Priori file contains a 3 | list of FV filenames that the DXE dispatcher will schedule reguardless of 4 | the dependency grammar. 5 | 6 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
7 | This program and the accompanying materials 8 | are licensed and made available under the terms and conditions of the BSD License 9 | which accompanies this distribution. The full text of the license may be found at 10 | http://opensource.org/licenses/bsd-license.php 11 | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 | 15 | @par Revision Reference: 16 | GUID introduced in PI Version 1.0. 17 | 18 | **/ 19 | 20 | #ifndef __APRIORI_GUID_H__ 21 | #define __APRIORI_GUID_H__ 22 | 23 | #define EFI_APRIORI_GUID \ 24 | { \ 25 | 0xfc510ee7, 0xffdc, 0x11d4, {0xbd, 0x41, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } \ 26 | } 27 | 28 | extern EFI_GUID gAprioriGuid; 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /Include/Guid/AprioriFileName.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | The GUID PEI_APRIORI_FILE_NAME_GUID definition is the file 3 | name of the PEI a priori file that is stored in a firmware 4 | volume. 5 | 6 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
7 | This program and the accompanying materials 8 | are licensed and made available under the terms and conditions of the BSD License 9 | which accompanies this distribution. The full text of the license may be found at 10 | http://opensource.org/licenses/bsd-license.php 11 | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 | 15 | @par Revision Reference: 16 | GUID introduced in PI Version 1.0. 17 | 18 | **/ 19 | 20 | #ifndef __PEI_APRIORI_FILE_NAME_H__ 21 | #define __PEI_APRIORI_FILE_NAME_H__ 22 | 23 | #define PEI_APRIORI_FILE_NAME_GUID \ 24 | { 0x1b45cc0a, 0x156a, 0x428a, { 0x62, 0XAF, 0x49, 0x86, 0x4d, 0xa0, 0xe6, 0xe6 } } 25 | 26 | 27 | /// 28 | /// This file must be of type EFI_FV_FILETYPE_FREEFORM and must 29 | /// contain a single section of type EFI_SECTION_RAW. For details on 30 | /// firmware volumes, firmware file types, and firmware file section 31 | /// types. 32 | /// 33 | typedef struct { 34 | /// 35 | /// An array of zero or more EFI_GUID type entries that match the file names of PEIM 36 | /// modules in the same Firmware Volume. The maximum number of entries. 37 | /// 38 | EFI_GUID FileNamesWithinVolume[1]; 39 | } PEI_APRIORI_FILE_CONTENTS; 40 | 41 | extern EFI_GUID gPeiAprioriFileNameGuid; 42 | 43 | #endif 44 | 45 | -------------------------------------------------------------------------------- /Include/Guid/DxeServices.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | GUID used to identify the DXE Services Table 3 | 4 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | @par Revision Reference: 14 | GUID introduced in PI Version 1.0. 15 | 16 | **/ 17 | 18 | #ifndef __DXE_SERVICES_GUID_H__ 19 | #define __DXE_SERVICES_GUID_H__ 20 | 21 | #define DXE_SERVICES_TABLE_GUID \ 22 | { \ 23 | 0x5ad34ba, 0x6f02, 0x4214, {0x95, 0x2e, 0x4d, 0xa0, 0x39, 0x8e, 0x2b, 0xb9 } \ 24 | } 25 | 26 | extern EFI_GUID gEfiDxeServicesTableGuid; 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /Include/Guid/EventGroup.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | GUIDs for gBS->CreateEventEx Event Groups. Defined in UEFI spec 2.0 and PI 1.2.1. 3 | 4 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials are licensed and made available under 6 | the terms and conditions of the BSD License that accompanies this distribution. 7 | The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php. 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | **/ 14 | 15 | #ifndef __EVENT_GROUP_GUID__ 16 | #define __EVENT_GROUP_GUID__ 17 | 18 | 19 | #define EFI_EVENT_GROUP_EXIT_BOOT_SERVICES \ 20 | { 0x27abf055, 0xb1b8, 0x4c26, { 0x80, 0x48, 0x74, 0x8f, 0x37, 0xba, 0xa2, 0xdf } } 21 | 22 | extern EFI_GUID gEfiEventExitBootServicesGuid; 23 | 24 | 25 | #define EFI_EVENT_GROUP_VIRTUAL_ADDRESS_CHANGE \ 26 | { 0x13fa7698, 0xc831, 0x49c7, { 0x87, 0xea, 0x8f, 0x43, 0xfc, 0xc2, 0x51, 0x96 } } 27 | 28 | extern EFI_GUID gEfiEventVirtualAddressChangeGuid; 29 | 30 | 31 | #define EFI_EVENT_GROUP_MEMORY_MAP_CHANGE \ 32 | { 0x78bee926, 0x692f, 0x48fd, { 0x9e, 0xdb, 0x1, 0x42, 0x2e, 0xf0, 0xd7, 0xab } } 33 | 34 | extern EFI_GUID gEfiEventMemoryMapChangeGuid; 35 | 36 | 37 | #define EFI_EVENT_GROUP_READY_TO_BOOT \ 38 | { 0x7ce88fb3, 0x4bd7, 0x4679, { 0x87, 0xa8, 0xa8, 0xd8, 0xde, 0xe5, 0x0d, 0x2b } } 39 | 40 | extern EFI_GUID gEfiEventReadyToBootGuid; 41 | 42 | #define EFI_EVENT_GROUP_DXE_DISPATCH_GUID \ 43 | { 0x7081e22f, 0xcac6, 0x4053, { 0x94, 0x68, 0x67, 0x57, 0x82, 0xcf, 0x88, 0xe5 }} 44 | 45 | extern EFI_GUID gEfiEventDxeDispatchGuid; 46 | 47 | #define EFI_END_OF_DXE_EVENT_GROUP_GUID \ 48 | { 0x2ce967a, 0xdd7e, 0x4ffc, { 0x9e, 0xe7, 0x81, 0xc, 0xf0, 0x47, 0x8, 0x80 } } 49 | 50 | extern EFI_GUID gEfiEndOfDxeEventGroupGuid; 51 | 52 | #endif 53 | -------------------------------------------------------------------------------- /Include/Guid/EventLegacyBios.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | GUID is the name of events used with CreateEventEx in order to be notified 3 | when the EFI boot manager is about to boot a legacy boot option. 4 | Events of this type are notificated just before Int19h is invoked. 5 | 6 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
7 | This program and the accompanying materials 8 | are licensed and made available under the terms and conditions of the BSD License 9 | which accompanies this distribution. The full text of the license may be found at 10 | http://opensource.org/licenses/bsd-license.php 11 | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 | 15 | @par Revision Reference: 16 | GUID introduced in PI Version 1.0. 17 | 18 | **/ 19 | 20 | #ifndef __EVENT_LEGACY_BIOS_GUID_H__ 21 | #define __EVENT_LEGACY_BIOS_GUID_H__ 22 | 23 | #define EFI_EVENT_LEGACY_BOOT_GUID \ 24 | { 0x2a571201, 0x4966, 0x47f6, {0x8b, 0x86, 0xf3, 0x1e, 0x41, 0xf3, 0x2f, 0x10 } } 25 | 26 | extern EFI_GUID gEfiEventLegacyBootGuid; 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /Include/Guid/FileInfo.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Provides a GUID and a data structure that can be used with EFI_FILE_PROTOCOL.SetInfo() 3 | and EFI_FILE_PROTOCOL.GetInfo() to set or get generic file information. 4 | This GUID is defined in UEFI specification. 5 | 6 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
7 | This program and the accompanying materials are licensed and made available under 8 | the terms and conditions of the BSD License that accompanies this distribution. 9 | The full text of the license may be found at 10 | http://opensource.org/licenses/bsd-license.php. 11 | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 | 15 | **/ 16 | 17 | #ifndef __FILE_INFO_H__ 18 | #define __FILE_INFO_H__ 19 | 20 | #define EFI_FILE_INFO_ID \ 21 | { \ 22 | 0x9576e92, 0x6d3f, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \ 23 | } 24 | 25 | typedef struct { 26 | /// 27 | /// The size of the EFI_FILE_INFO structure, including the Null-terminated FileName string. 28 | /// 29 | UINT64 Size; 30 | /// 31 | /// The size of the file in bytes. 32 | /// 33 | UINT64 FileSize; 34 | /// 35 | /// PhysicalSize The amount of physical space the file consumes on the file system volume. 36 | /// 37 | UINT64 PhysicalSize; 38 | /// 39 | /// The time the file was created. 40 | /// 41 | EFI_TIME CreateTime; 42 | /// 43 | /// The time when the file was last accessed. 44 | /// 45 | EFI_TIME LastAccessTime; 46 | /// 47 | /// The time when the file's contents were last modified. 48 | /// 49 | EFI_TIME ModificationTime; 50 | /// 51 | /// The attribute bits for the file. 52 | /// 53 | UINT64 Attribute; 54 | /// 55 | /// The Null-terminated name of the file. 56 | /// 57 | CHAR16 FileName[1]; 58 | } EFI_FILE_INFO; 59 | 60 | /// 61 | /// The FileName field of the EFI_FILE_INFO data structure is variable length. 62 | /// Whenever code needs to know the size of the EFI_FILE_INFO data structure, it needs to 63 | /// be the size of the data structure without the FileName field. The following macro 64 | /// computes this size correctly no matter how big the FileName array is declared. 65 | /// This is required to make the EFI_FILE_INFO data structure ANSI compilant. 66 | /// 67 | #define SIZE_OF_EFI_FILE_INFO OFFSET_OF (EFI_FILE_INFO, FileName) 68 | 69 | extern EFI_GUID gEfiFileInfoGuid; 70 | 71 | #endif 72 | -------------------------------------------------------------------------------- /Include/Guid/FileSystemInfo.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Provides a GUID and a data structure that can be used with EFI_FILE_PROTOCOL.GetInfo() 3 | or EFI_FILE_PROTOCOL.SetInfo() to get or set information about the system's volume. 4 | This GUID is defined in UEFI specification. 5 | 6 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
7 | This program and the accompanying materials are licensed and made available under 8 | the terms and conditions of the BSD License that accompanies this distribution. 9 | The full text of the license may be found at 10 | http://opensource.org/licenses/bsd-license.php. 11 | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 | 15 | **/ 16 | 17 | #ifndef __FILE_SYSTEM_INFO_H__ 18 | #define __FILE_SYSTEM_INFO_H__ 19 | 20 | #define EFI_FILE_SYSTEM_INFO_ID \ 21 | { \ 22 | 0x9576e93, 0x6d3f, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \ 23 | } 24 | 25 | typedef struct { 26 | /// 27 | /// The size of the EFI_FILE_SYSTEM_INFO structure, including the Null-terminated VolumeLabel string. 28 | /// 29 | UINT64 Size; 30 | /// 31 | /// TRUE if the volume only supports read access. 32 | /// 33 | BOOLEAN ReadOnly; 34 | /// 35 | /// The number of bytes managed by the file system. 36 | /// 37 | UINT64 VolumeSize; 38 | /// 39 | /// The number of available bytes for use by the file system. 40 | /// 41 | UINT64 FreeSpace; 42 | /// 43 | /// The nominal block size by which files are typically grown. 44 | /// 45 | UINT32 BlockSize; 46 | /// 47 | /// The Null-terminated string that is the volume's label. 48 | /// 49 | CHAR16 VolumeLabel[1]; 50 | } EFI_FILE_SYSTEM_INFO; 51 | 52 | /// 53 | /// The VolumeLabel field of the EFI_FILE_SYSTEM_INFO data structure is variable length. 54 | /// Whenever code needs to know the size of the EFI_FILE_SYSTEM_INFO data structure, it needs 55 | /// to be the size of the data structure without the VolumeLable field. The following macro 56 | /// computes this size correctly no matter how big the VolumeLable array is declared. 57 | /// This is required to make the EFI_FILE_SYSTEM_INFO data structure ANSI compilant. 58 | /// 59 | #define SIZE_OF_EFI_FILE_SYSTEM_INFO OFFSET_OF (EFI_FILE_SYSTEM_INFO, VolumeLabel) 60 | 61 | extern EFI_GUID gEfiFileSystemInfoGuid; 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /Include/Guid/FileSystemVolumeLabelInfo.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Provides a GUID and a data structure that can be used with EFI_FILE_PROTOCOL.GetInfo() 3 | or EFI_FILE_PROTOCOL.SetInfo() to get or set the system's volume label. 4 | This GUID is defined in UEFI specification. 5 | 6 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
7 | This program and the accompanying materials 8 | are licensed and made available under the terms and conditions of the BSD License 9 | which accompanies this distribution. The full text of the license may be found at 10 | http://opensource.org/licenses/bsd-license.php 11 | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 | 15 | **/ 16 | 17 | #ifndef __FILE_SYSTEM_VOLUME_LABEL_INFO_H__ 18 | #define __FILE_SYSTEM_VOLUME_LABEL_INFO_H__ 19 | 20 | #define EFI_FILE_SYSTEM_VOLUME_LABEL_ID \ 21 | { \ 22 | 0xDB47D7D3, 0xFE81, 0x11d3, {0x9A, 0x35, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D } \ 23 | } 24 | 25 | typedef struct { 26 | /// 27 | /// The Null-terminated string that is the volume's label. 28 | /// 29 | CHAR16 VolumeLabel[1]; 30 | } EFI_FILE_SYSTEM_VOLUME_LABEL; 31 | 32 | #define SIZE_OF_EFI_FILE_SYSTEM_VOLUME_LABEL \ 33 | OFFSET_OF (EFI_FILE_SYSTEM_VOLUME_LABEL, VolumeLabel) 34 | 35 | extern EFI_GUID gEfiFileSystemVolumeLabelInfoIdGuid; 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /Include/Guid/FirmwareContentsSigned.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | GUID is used to define the signed section. 3 | 4 | Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | @par Revision Reference: 14 | GUID introduced in PI Version 1.2.1. 15 | 16 | **/ 17 | 18 | #ifndef __FIRMWARE_CONTENTS_SIGNED_GUID_H__ 19 | #define __FIRMWARE_CONTENTS_SIGNED_GUID_H__ 20 | 21 | #define EFI_FIRMWARE_CONTENTS_SIGNED_GUID \ 22 | { 0xf9d89e8, 0x9259, 0x4f76, {0xa5, 0xaf, 0xc, 0x89, 0xe3, 0x40, 0x23, 0xdf } } 23 | 24 | extern EFI_GUID gEfiFirmwareContentsSignedGuid; 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /Include/Guid/FirmwareFileSystem2.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Guid used to define the Firmware File System 2. 3 | 4 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | @par Revision Reference: 14 | GUIDs introduced in PI Version 1.0. 15 | 16 | **/ 17 | 18 | #ifndef __FIRMWARE_FILE_SYSTEM2_GUID_H__ 19 | #define __FIRMWARE_FILE_SYSTEM2_GUID_H__ 20 | 21 | /// 22 | /// The firmware volume header contains a data field for 23 | /// the file system GUID 24 | /// 25 | #define EFI_FIRMWARE_FILE_SYSTEM2_GUID \ 26 | { 0x8c8ce578, 0x8a3d, 0x4f1c, { 0x99, 0x35, 0x89, 0x61, 0x85, 0xc3, 0x2d, 0xd3 } } 27 | 28 | /// 29 | /// A Volume Top File (VTF) is a file that must be 30 | /// located such that the last byte of the file is 31 | /// also the last byte of the firmware volume 32 | /// 33 | #define EFI_FFS_VOLUME_TOP_FILE_GUID \ 34 | { 0x1BA0062E, 0xC779, 0x4582, { 0x85, 0x66, 0x33, 0x6A, 0xE8, 0xF7, 0x8F, 0x9 } } 35 | 36 | 37 | extern EFI_GUID gEfiFirmwareFileSystem2Guid; 38 | extern EFI_GUID gEfiFirmwareVolumeTopFileGuid; 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /Include/Guid/FirmwareFileSystem3.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Guid used to define the Firmware File System 3. 3 | 4 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | @par Revision Reference: 14 | GUIDs introduced in PI Version 1.0. 15 | 16 | **/ 17 | 18 | #ifndef __FIRMWARE_FILE_SYSTEM3_GUID_H__ 19 | #define __FIRMWARE_FILE_SYSTEM3_GUID_H__ 20 | 21 | /// 22 | /// The firmware volume header contains a data field for the file system GUID 23 | /// {5473C07A-3DCB-4dca-BD6F-1E9689E7349A} 24 | /// 25 | #define EFI_FIRMWARE_FILE_SYSTEM3_GUID \ 26 | { 0x5473c07a, 0x3dcb, 0x4dca, { 0xbd, 0x6f, 0x1e, 0x96, 0x89, 0xe7, 0x34, 0x9a }} 27 | 28 | extern EFI_GUID gEfiFirmwareFileSystem3Guid; 29 | 30 | #endif // __FIRMWARE_FILE_SYSTEM3_GUID_H__ 31 | -------------------------------------------------------------------------------- /Include/Guid/Gpt.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Guids used for the GPT (GUID Partition Table) 3 | 4 | GPT defines a new disk partitioning scheme and also describes 5 | usage of the legacy Master Boot Record (MBR) partitioning scheme. 6 | 7 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
8 | This program and the accompanying materials 9 | are licensed and made available under the terms and conditions of the BSD License 10 | which accompanies this distribution. The full text of the license may be found at 11 | http://opensource.org/licenses/bsd-license.php 12 | 13 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 14 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 15 | 16 | @par Revision Reference: 17 | GUIDs defined in UEFI 2.1 spec. 18 | 19 | **/ 20 | 21 | #ifndef __GPT_GUID_H__ 22 | #define __GPT_GUID_H__ 23 | 24 | #define EFI_PART_TYPE_UNUSED_GUID \ 25 | { \ 26 | 0x00000000, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } \ 27 | } 28 | 29 | #define EFI_PART_TYPE_EFI_SYSTEM_PART_GUID \ 30 | { \ 31 | 0xc12a7328, 0xf81f, 0x11d2, {0xba, 0x4b, 0x00, 0xa0, 0xc9, 0x3e, 0xc9, 0x3b } \ 32 | } 33 | 34 | #define EFI_PART_TYPE_LEGACY_MBR_GUID \ 35 | { \ 36 | 0x024dee41, 0x33e7, 0x11d3, {0x9d, 0x69, 0x00, 0x08, 0xc7, 0x81, 0xf3, 0x9f } \ 37 | } 38 | 39 | extern EFI_GUID gEfiPartTypeUnusedGuid; 40 | extern EFI_GUID gEfiPartTypeSystemPartGuid; 41 | extern EFI_GUID gEfiPartTypeLegacyMbrGuid; 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /Include/Guid/GraphicsInfoHob.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Hob guid for Information about the graphics mode. 3 | 4 | Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | @par Revision Reference: 14 | This HOB is introduced in in PI Version 1.4. 15 | 16 | **/ 17 | 18 | #ifndef _GRAPHICS_INFO_HOB_GUID_H_ 19 | #define _GRAPHICS_INFO_HOB_GUID_H_ 20 | 21 | #include 22 | 23 | #define EFI_PEI_GRAPHICS_INFO_HOB_GUID \ 24 | { \ 25 | 0x39f62cce, 0x6825, 0x4669, { 0xbb, 0x56, 0x54, 0x1a, 0xba, 0x75, 0x3a, 0x07 } \ 26 | } 27 | 28 | #define EFI_PEI_GRAPHICS_DEVICE_INFO_HOB_GUID \ 29 | { \ 30 | 0xe5cb2ac9, 0xd35d, 0x4430, { 0x93, 0x6e, 0x1d, 0xe3, 0x32, 0x47, 0x8d, 0xe7 } \ 31 | } 32 | 33 | typedef struct { 34 | EFI_PHYSICAL_ADDRESS FrameBufferBase; 35 | UINT32 FrameBufferSize; 36 | EFI_GRAPHICS_OUTPUT_MODE_INFORMATION GraphicsMode; 37 | } EFI_PEI_GRAPHICS_INFO_HOB; 38 | 39 | typedef struct { 40 | UINT16 VendorId; ///< Ignore if the value is 0xFFFF. 41 | UINT16 DeviceId; ///< Ignore if the value is 0xFFFF. 42 | UINT16 SubsystemVendorId; ///< Ignore if the value is 0xFFFF. 43 | UINT16 SubsystemId; ///< Ignore if the value is 0xFFFF. 44 | UINT8 RevisionId; ///< Ignore if the value is 0xFF. 45 | UINT8 BarIndex; ///< Ignore if the value is 0xFF. 46 | } EFI_PEI_GRAPHICS_DEVICE_INFO_HOB; 47 | 48 | extern EFI_GUID gEfiGraphicsInfoHobGuid; 49 | extern EFI_GUID gEfiGraphicsDeviceInfoHobGuid; 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /Include/Guid/HardwareErrorVariable.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | GUID for hardware error record variables. 3 | 4 | Copyright (c) 2007 - 2009, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | @par Revision Reference: 14 | GUID defined in UEFI 2.1. 15 | 16 | **/ 17 | 18 | #ifndef _HARDWARE_ERROR_VARIABLE_GUID_H_ 19 | #define _HARDWARE_ERROR_VARIABLE_GUID_H_ 20 | 21 | #define EFI_HARDWARE_ERROR_VARIABLE \ 22 | { \ 23 | 0x414E6BDD, 0xE47B, 0x47cc, {0xB2, 0x44, 0xBB, 0x61, 0x02, 0x0C, 0xF5, 0x16} \ 24 | } 25 | 26 | extern EFI_GUID gEfiHardwareErrorVariableGuid; 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /Include/Guid/HiiFormMapMethodGuid.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Guid used to identify HII FormMap configuration method. 3 | 4 | Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | @par Revision Reference: 14 | GUID defined in UEFI 2.2 spec. 15 | **/ 16 | 17 | #ifndef __EFI_HII_FORMMAP_GUID_H__ 18 | #define __EFI_HII_FORMMAP_GUID_H__ 19 | 20 | #define EFI_HII_STANDARD_FORM_GUID \ 21 | { 0x3bd2f4ec, 0xe524, 0x46e4, { 0xa9, 0xd8, 0x51, 0x1, 0x17, 0x42, 0x55, 0x62 } } 22 | 23 | extern EFI_GUID gEfiHiiStandardFormGuid; 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /Include/Guid/HiiKeyBoardLayout.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | 3 | HII keyboard layout GUID as defined in UEFI2.1 specification 4 | 5 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials 7 | are licensed and made available under the terms and conditions of the BSD License 8 | which accompanies this distribution. The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | 14 | @par Revision Reference: 15 | GUIDs defined in UEFI 2.1 spec. 16 | 17 | **/ 18 | 19 | #ifndef __HII_KEYBOARD_LAYOUT_GUID_H__ 20 | #define __HII_KEYBOARD_LAYOUT_GUID_H__ 21 | 22 | #define EFI_HII_SET_KEYBOARD_LAYOUT_EVENT_GUID \ 23 | { 0x14982a4f, 0xb0ed, 0x45b8, { 0xa8, 0x11, 0x5a, 0x7a, 0x9b, 0xc2, 0x32, 0xdf }} 24 | 25 | extern EFI_GUID gEfiHiiKeyBoardLayoutGuid; 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /Include/Guid/HiiPlatformSetupFormset.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | GUID indicates that the form set contains forms designed to be used 3 | for platform configuration and this form set will be displayed. 4 | 5 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials are licensed and made available under 7 | the terms and conditions of the BSD License that accompanies this distribution. 8 | The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php. 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | 14 | @par Revision Reference: 15 | GUID defined in UEFI 2.1. 16 | 17 | **/ 18 | 19 | #ifndef __HII_PLATFORM_SETUP_FORMSET_GUID_H__ 20 | #define __HII_PLATFORM_SETUP_FORMSET_GUID_H__ 21 | 22 | #define EFI_HII_PLATFORM_SETUP_FORMSET_GUID \ 23 | { 0x93039971, 0x8545, 0x4b04, { 0xb4, 0x5e, 0x32, 0xeb, 0x83, 0x26, 0x4, 0xe } } 24 | 25 | #define EFI_HII_DRIVER_HEALTH_FORMSET_GUID \ 26 | { 0xf22fc20c, 0x8cf4, 0x45eb, { 0x8e, 0x6, 0xad, 0x4e, 0x50, 0xb9, 0x5d, 0xd3 } } 27 | 28 | #define EFI_HII_USER_CREDENTIAL_FORMSET_GUID \ 29 | { 0x337f4407, 0x5aee, 0x4b83, { 0xb2, 0xa7, 0x4e, 0xad, 0xca, 0x30, 0x88, 0xcd } } 30 | 31 | extern EFI_GUID gEfiHiiPlatformSetupFormsetGuid; 32 | extern EFI_GUID gEfiHiiDriverHealthFormsetGuid; 33 | extern EFI_GUID gEfiHiiUserCredentialFormsetGuid; 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /Include/Guid/HobList.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | GUIDs used for HOB List entries 3 | 4 | These GUIDs point the HOB List passed from PEI to DXE. 5 | 6 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
7 | This program and the accompanying materials 8 | are licensed and made available under the terms and conditions of the BSD License 9 | which accompanies this distribution. The full text of the license may be found at 10 | http://opensource.org/licenses/bsd-license.php 11 | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 | 15 | @par Revision Reference: 16 | GUID introduced in PI Version 1.0. 17 | 18 | **/ 19 | 20 | #ifndef __HOB_LIST_GUID_H__ 21 | #define __HOB_LIST_GUID_H__ 22 | 23 | #define HOB_LIST_GUID \ 24 | { \ 25 | 0x7739f24c, 0x93d7, 0x11d4, {0x9a, 0x3a, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \ 26 | } 27 | 28 | extern EFI_GUID gEfiHobListGuid; 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /Include/Guid/MdePkgTokenSpace.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | GUID for MdePkg PCD Token Space 3 | 4 | Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | **/ 14 | 15 | #ifndef _MDEPKG_TOKEN_SPACE_GUID_H_ 16 | #define _MDEPKG_TOKEN_SPACE_GUID_H_ 17 | 18 | #define MDEPKG_TOKEN_SPACE_GUID \ 19 | { \ 20 | 0x914AEBE7, 0x4635, 0x459b, { 0xAA, 0x1C, 0x11, 0xE2, 0x19, 0xB0, 0x3A, 0x10 } \ 21 | } 22 | 23 | extern EFI_GUID gEfiMdePkgTokenSpaceGuid; 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /Include/Guid/MemoryAllocationHob.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | GUIDs for HOBs used in memory allcation 3 | 4 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | @par Revision Reference: 14 | GUIDs introduced in PI Version 1.0. 15 | 16 | **/ 17 | 18 | #ifndef __MEMORY_ALLOCATION_GUID_H__ 19 | #define __MEMORY_ALLOCATION_GUID_H__ 20 | 21 | #define EFI_HOB_MEMORY_ALLOC_BSP_STORE_GUID \ 22 | {0x564b33cd, 0xc92a, 0x4593, {0x90, 0xbf, 0x24, 0x73, 0xe4, 0x3c, 0x63, 0x22} }; 23 | 24 | #define EFI_HOB_MEMORY_ALLOC_STACK_GUID \ 25 | {0x4ed4bf27, 0x4092, 0x42e9, {0x80, 0x7d, 0x52, 0x7b, 0x1d, 0x0, 0xc9, 0xbd} } 26 | 27 | #define EFI_HOB_MEMORY_ALLOC_MODULE_GUID \ 28 | {0xf8e21975, 0x899, 0x4f58, {0xa4, 0xbe, 0x55, 0x25, 0xa9, 0xc6, 0xd7, 0x7a} } 29 | 30 | extern EFI_GUID gEfiHobMemoryAllocBspStoreGuid; 31 | extern EFI_GUID gEfiHobMemoryAllocStackGuid; 32 | extern EFI_GUID gEfiHobMemoryAllocModuleGuid; 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /Include/Guid/MemoryAttributesTable.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | GUIDs used for UEFI Memory Attributes Table in the UEFI 2.6 specification. 3 | 4 | Copyright (c) 2016, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | **/ 14 | 15 | #ifndef __UEFI_MEMORY_ATTRIBUTES_TABLE_H__ 16 | #define __UEFI_MEMORY_ATTRIBUTES_TABLE_H__ 17 | 18 | #define EFI_MEMORY_ATTRIBUTES_TABLE_GUID {\ 19 | 0xdcfa911d, 0x26eb, 0x469f, {0xa2, 0x20, 0x38, 0xb7, 0xdc, 0x46, 0x12, 0x20} \ 20 | } 21 | 22 | typedef struct { 23 | UINT32 Version; 24 | UINT32 NumberOfEntries; 25 | UINT32 DescriptorSize; 26 | UINT32 Reserved; 27 | //EFI_MEMORY_DESCRIPTOR Entry[1]; 28 | } EFI_MEMORY_ATTRIBUTES_TABLE; 29 | 30 | #define EFI_MEMORY_ATTRIBUTES_TABLE_VERSION 0x00000001 31 | 32 | extern EFI_GUID gEfiMemoryAttributesTableGuid; 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /Include/Guid/Mps.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | GUIDs used for MPS entries in the UEFI 2.0 system table 3 | ACPI is the primary means of exporting MPS information to the OS. MPS only was 4 | included to support Itanium-based platform power on. So don't use it if you don't have too. 5 | 6 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
7 | This program and the accompanying materials 8 | are licensed and made available under the terms and conditions of the BSD License 9 | which accompanies this distribution. The full text of the license may be found at 10 | http://opensource.org/licenses/bsd-license.php 11 | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 | 15 | @par Revision Reference: 16 | GUIDs defined in UEFI 2.0 spec. 17 | 18 | **/ 19 | 20 | #ifndef __MPS_GUID_H__ 21 | #define __MPS_GUID_H__ 22 | 23 | #define EFI_MPS_TABLE_GUID \ 24 | { \ 25 | 0xeb9d2d2f, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \ 26 | } 27 | 28 | // 29 | // GUID name defined in spec. 30 | // 31 | #define MPS_TABLE_GUID EFI_MPS_TABLE_GUID 32 | 33 | extern EFI_GUID gEfiMpsTableGuid; 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /Include/Guid/PcAnsi.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Terminal Device Path Vendor Guid. 3 | 4 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | @par Revision Reference: 14 | GUIDs defined in UEFI 2.0 spec. 15 | 16 | **/ 17 | 18 | #ifndef __PC_ANSI_H__ 19 | #define __PC_ANSI_H__ 20 | 21 | #define EFI_PC_ANSI_GUID \ 22 | { \ 23 | 0xe0c14753, 0xf9be, 0x11d2, {0x9a, 0x0c, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \ 24 | } 25 | 26 | #define EFI_VT_100_GUID \ 27 | { \ 28 | 0xdfa66065, 0xb419, 0x11d3, {0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \ 29 | } 30 | 31 | #define EFI_VT_100_PLUS_GUID \ 32 | { \ 33 | 0x7baec70b, 0x57e0, 0x4c76, {0x8e, 0x87, 0x2f, 0x9e, 0x28, 0x08, 0x83, 0x43 } \ 34 | } 35 | 36 | #define EFI_VT_UTF8_GUID \ 37 | { \ 38 | 0xad15a0d6, 0x8bec, 0x4acf, {0xa0, 0x73, 0xd0, 0x1d, 0xe7, 0x7e, 0x2d, 0x88 } \ 39 | } 40 | 41 | #define DEVICE_PATH_MESSAGING_UART_FLOW_CONTROL \ 42 | { \ 43 | 0x37499a9d, 0x542f, 0x4c89, {0xa0, 0x26, 0x35, 0xda, 0x14, 0x20, 0x94, 0xe4 } \ 44 | } 45 | 46 | #define EFI_SAS_DEVICE_PATH_GUID \ 47 | { \ 48 | 0xd487ddb4, 0x008b, 0x11d9, {0xaf, 0xdc, 0x00, 0x10, 0x83, 0xff, 0xca, 0x4d } \ 49 | } 50 | 51 | extern EFI_GUID gEfiPcAnsiGuid; 52 | extern EFI_GUID gEfiVT100Guid; 53 | extern EFI_GUID gEfiVT100PlusGuid; 54 | extern EFI_GUID gEfiVTUTF8Guid; 55 | extern EFI_GUID gEfiUartDevicePathGuid; 56 | extern EFI_GUID gEfiSasDevicePathGuid; 57 | 58 | #endif 59 | -------------------------------------------------------------------------------- /Include/Guid/PropertiesTable.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | GUIDs used for UEFI Properties Table in the UEFI 2.5 specification. 3 | 4 | Copyright (c) 2015, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | **/ 14 | 15 | #ifndef __EFI_PROPERTIES_TABLE_H__ 16 | #define __EFI_PROPERTIES_TABLE_H__ 17 | 18 | #define EFI_PROPERTIES_TABLE_GUID {\ 19 | 0x880aaca3, 0x4adc, 0x4a04, {0x90, 0x79, 0xb7, 0x47, 0x34, 0x8, 0x25, 0xe5} \ 20 | } 21 | 22 | typedef struct { 23 | UINT32 Version; 24 | UINT32 Length; 25 | UINT64 MemoryProtectionAttribute; 26 | } EFI_PROPERTIES_TABLE; 27 | 28 | #define EFI_PROPERTIES_TABLE_VERSION 0x00010000 29 | 30 | // 31 | // Memory attribute (Not defined bit is reserved) 32 | // 33 | #define EFI_PROPERTIES_RUNTIME_MEMORY_PROTECTION_NON_EXECUTABLE_PE_DATA 0x1 34 | 35 | extern EFI_GUID gEfiPropertiesTableGuid; 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /Include/Guid/SalSystemTable.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | GUIDs used for SAL system table entries in the EFI system table. 3 | 4 | SAL System Table contains Itanium-based processor centric information about 5 | the system. 6 | 7 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
8 | This program and the accompanying materials 9 | are licensed and made available under the terms and conditions of the BSD License 10 | which accompanies this distribution. The full text of the license may be found at 11 | http://opensource.org/licenses/bsd-license.php 12 | 13 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 14 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 15 | 16 | @par Revision Reference: 17 | GUIDs defined in UEFI 2.0 spec. 18 | 19 | **/ 20 | 21 | #ifndef __SAL_SYSTEM_TABLE_GUID_H__ 22 | #define __SAL_SYSTEM_TABLE_GUID_H__ 23 | 24 | #define SAL_SYSTEM_TABLE_GUID \ 25 | { \ 26 | 0xeb9d2d32, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \ 27 | } 28 | 29 | extern EFI_GUID gEfiSalSystemTableGuid; 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /Include/Guid/SmBios.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | GUIDs used to locate the SMBIOS tables in the UEFI 2.5 system table. 3 | 4 | These GUIDs in the system table are the only legal ways to search for and 5 | locate the SMBIOS tables. Do not search the 0xF0000 segment to find SMBIOS 6 | tables. 7 | 8 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
9 | This program and the accompanying materials 10 | are licensed and made available under the terms and conditions of the BSD License 11 | which accompanies this distribution. The full text of the license may be found at 12 | http://opensource.org/licenses/bsd-license.php 13 | 14 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 15 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 16 | 17 | @par Revision Reference: 18 | GUIDs defined in UEFI 2.5 spec. 19 | 20 | **/ 21 | 22 | #ifndef __SMBIOS_GUID_H__ 23 | #define __SMBIOS_GUID_H__ 24 | 25 | #define SMBIOS_TABLE_GUID \ 26 | { \ 27 | 0xeb9d2d31, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \ 28 | } 29 | 30 | #define SMBIOS3_TABLE_GUID \ 31 | { \ 32 | 0xf2fd1544, 0x9794, 0x4a2c, {0x99, 0x2e, 0xe5, 0xbb, 0xcf, 0x20, 0xe3, 0x94 } \ 33 | } 34 | 35 | extern EFI_GUID gEfiSmbiosTableGuid; 36 | extern EFI_GUID gEfiSmbios3TableGuid; 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /Include/Guid/VectorHandoffTable.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | GUID for system configuration table entry that points to the table 3 | in case an entity in DXE wishes to update/change the vector table contents. 4 | 5 | Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials 7 | are licensed and made available under the terms and conditions of the BSD License 8 | which accompanies this distribution. The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | 14 | @par Revision Reference: 15 | GUID defined in PI 1.2.1 spec. 16 | **/ 17 | 18 | #ifndef __EFI_VECTOR_HANDOFF_TABLE_H__ 19 | #define __EFI_VECTOR_HANDOFF_TABLE_H__ 20 | 21 | #include 22 | 23 | // 24 | // System configuration table entry that points to the table 25 | // in case an entity in DXE wishes to update/change the vector 26 | // table contents. 27 | // 28 | #define EFI_VECTOR_HANDOF_TABLE_GUID \ 29 | { 0x996ec11c, 0x5397, 0x4e73, { 0xb5, 0x8f, 0x82, 0x7e, 0x52, 0x90, 0x6d, 0xef }} 30 | 31 | extern EFI_GUID gEfiVectorHandoffTableGuid; 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /Include/IndustryStandard/Acpi.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This file contains the latest ACPI definitions that are 3 | consumed by drivers that do not care about ACPI versions. 4 | 5 | Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials 7 | are licensed and made available under the terms and conditions of the BSD License 8 | which accompanies this distribution. The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | 14 | **/ 15 | 16 | #ifndef _ACPI_H_ 17 | #define _ACPI_H_ 18 | 19 | #include 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /Include/IndustryStandard/Bluetooth.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This file contains the Bluetooth definitions that are consumed by drivers. 3 | These definitions are from Bluetooth Core Specification Version 4.0 June, 2010 4 | 5 | Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials 7 | are licensed and made available under the terms and conditions of the BSD License 8 | which accompanies this distribution. The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | 14 | **/ 15 | 16 | #ifndef _BLUETOOTH_H_ 17 | #define _BLUETOOTH_H_ 18 | 19 | #pragma pack(1) 20 | 21 | /// 22 | /// BLUETOOTH_ADDRESS 23 | /// 24 | typedef struct { 25 | /// 26 | /// 48bit Bluetooth device address. 27 | /// 28 | UINT8 Address[6]; 29 | } BLUETOOTH_ADDRESS; 30 | 31 | /// 32 | /// BLUETOOTH_CLASS_OF_DEVICE. See Bluetooth specification for detail. 33 | /// 34 | typedef struct { 35 | UINT8 FormatType:2; 36 | UINT8 MinorDeviceClass: 6; 37 | UINT16 MajorDeviceClass: 5; 38 | UINT16 MajorServiceClass:11; 39 | } BLUETOOTH_CLASS_OF_DEVICE; 40 | 41 | /// 42 | /// BLUETOOTH_LE_ADDRESS 43 | /// 44 | typedef struct { 45 | /// 46 | /// 48-bit Bluetooth device address 47 | /// 48 | UINT8 Address[6]; 49 | /// 50 | /// 0x00 - Public Device Address 51 | /// 0x01 - Random Device Address 52 | /// 53 | UINT8 Type; 54 | } BLUETOOTH_LE_ADDRESS; 55 | 56 | #pragma pack() 57 | 58 | #define BLUETOOTH_HCI_COMMAND_LOCAL_READABLE_NAME_MAX_SIZE 248 59 | 60 | #define BLUETOOTH_HCI_LINK_KEY_SIZE 16 61 | 62 | #endif 63 | -------------------------------------------------------------------------------- /Include/IndustryStandard/Bmp.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This file defines BMP file header data structures. 3 | 4 | Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | **/ 14 | 15 | #ifndef _BMP_H_ 16 | #define _BMP_H_ 17 | 18 | #pragma pack(1) 19 | 20 | typedef struct { 21 | UINT8 Blue; 22 | UINT8 Green; 23 | UINT8 Red; 24 | UINT8 Reserved; 25 | } BMP_COLOR_MAP; 26 | 27 | typedef struct { 28 | CHAR8 CharB; 29 | CHAR8 CharM; 30 | UINT32 Size; 31 | UINT16 Reserved[2]; 32 | UINT32 ImageOffset; 33 | UINT32 HeaderSize; 34 | UINT32 PixelWidth; 35 | UINT32 PixelHeight; 36 | UINT16 Planes; ///< Must be 1 37 | UINT16 BitPerPixel; ///< 1, 4, 8, or 24 38 | UINT32 CompressionType; 39 | UINT32 ImageSize; ///< Compressed image size in bytes 40 | UINT32 XPixelsPerMeter; 41 | UINT32 YPixelsPerMeter; 42 | UINT32 NumberOfColors; 43 | UINT32 ImportantColors; 44 | } BMP_IMAGE_HEADER; 45 | 46 | #pragma pack() 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /Include/IndustryStandard/DebugPortTable.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | ACPI debug port table definition, defined at 3 | Microsoft DebugPortSpecification. 4 | 5 | Copyright (c) 2012 - 2018, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials 7 | are licensed and made available under the terms and conditions of the BSD License 8 | which accompanies this distribution. The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | 14 | **/ 15 | 16 | 17 | #ifndef _DEBUG_PORT_TABLE_H_ 18 | #define _DEBUG_PORT_TABLE_H_ 19 | 20 | #include 21 | 22 | // 23 | // Ensure proper structure formats 24 | // 25 | #pragma pack(1) 26 | 27 | // 28 | // Debug Port Table definition. 29 | // 30 | typedef struct { 31 | EFI_ACPI_DESCRIPTION_HEADER Header; 32 | UINT8 InterfaceType; 33 | UINT8 Reserved_37[3]; 34 | EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE BaseAddress; 35 | } EFI_ACPI_DEBUG_PORT_DESCRIPTION_TABLE; 36 | 37 | #pragma pack() 38 | 39 | // 40 | // DBGP Revision (defined in spec) 41 | // 42 | #define EFI_ACPI_DEBUG_PORT_TABLE_REVISION 0x01 43 | 44 | // 45 | // Interface Type 46 | // 47 | #define EFI_ACPI_DBGP_INTERFACE_TYPE_FULL_16550 0 48 | #define EFI_ACPI_DBGP_INTERFACE_TYPE_16550_SUBSET_COMPATIBLE_WITH_MS_DBGP_SPEC 1 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /Include/IndustryStandard/HighPrecisionEventTimerTable.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | ACPI high precision event timer table definition, at www.intel.com 3 | Specification name is IA-PC HPET (High Precision Event Timers) Specification. 4 | 5 | Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials 7 | are licensed and made available under the terms and conditions of the BSD License 8 | which accompanies this distribution. The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | **/ 14 | 15 | #ifndef _HIGH_PRECISION_EVENT_TIMER_TABLE_H_ 16 | #define _HIGH_PRECISION_EVENT_TIMER_TABLE_H_ 17 | 18 | #include 19 | 20 | // 21 | // Ensure proper structure formats 22 | // 23 | #pragma pack(1) 24 | 25 | /// 26 | /// HPET Event Timer Block ID described in IA-PC HPET Specification, 3.2.4. 27 | /// 28 | typedef union { 29 | struct { 30 | UINT32 Revision : 8; 31 | UINT32 NumberOfTimers : 5; 32 | UINT32 CounterSize : 1; 33 | UINT32 Reserved : 1; 34 | UINT32 LegacyRoute : 1; 35 | UINT32 VendorId : 16; 36 | } Bits; 37 | UINT32 Uint32; 38 | } EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_BLOCK_ID; 39 | 40 | 41 | /// 42 | /// High Precision Event Timer Table header definition. 43 | /// 44 | typedef struct { 45 | EFI_ACPI_DESCRIPTION_HEADER Header; 46 | UINT32 EventTimerBlockId; 47 | EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE BaseAddressLower32Bit; 48 | UINT8 HpetNumber; 49 | UINT16 MainCounterMinimumClockTickInPeriodicMode; 50 | UINT8 PageProtectionAndOemAttribute; 51 | } EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_TABLE_HEADER; 52 | 53 | /// 54 | /// HPET Revision (defined in spec) 55 | /// 56 | #define EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_TABLE_REVISION 0x01 57 | 58 | // 59 | // Page protection setting 60 | // Values 3 through 15 are reserved for use by the specification 61 | // 62 | #define EFI_ACPI_NO_PAGE_PROTECTION 0 63 | #define EFI_ACPI_4KB_PAGE_PROTECTION 1 64 | #define EFI_ACPI_64KB_PAGE_PROTECTION 2 65 | 66 | #pragma pack() 67 | 68 | #endif 69 | -------------------------------------------------------------------------------- /Include/IndustryStandard/IpmiNetFnFirmware.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | IPMI 2.0 definitions from the IPMI Specification Version 2.0, Revision 1.1. 3 | 4 | Copyright (c) 1999 - 2015, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | **/ 13 | 14 | #ifndef _IPMI_NET_FN_FIRMWARE_H_ 15 | #define _IPMI_NET_FN_FIRMWARE_H_ 16 | 17 | // 18 | // Net function definition for Firmware command 19 | // 20 | #define IPMI_NETFN_FIRMWARE 0x08 21 | 22 | // 23 | // All Firmware commands and their structure definitions to follow here 24 | // 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /Include/IndustryStandard/IpmiNetFnGroupExtension.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | IPMI 2.0 definitions from the IPMI Specification Version 2.0, Revision 1.1. 3 | 4 | Copyright (c) 1999 - 2015, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | **/ 13 | 14 | #ifndef _IPMI_NET_FN_GROUP_EXTENSION_H_ 15 | #define _IPMI_NET_FN_GROUP_EXTENSION_H_ 16 | 17 | // 18 | // Net function definition for Group Extension command 19 | // 20 | #define IPMI_NETFN_GROUP_EXT 0x2C 21 | 22 | // 23 | // All Group Extension commands and their structure definitions to follow here 24 | // 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /Include/IndustryStandard/IpmiNetFnSensorEvent.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | IPMI 2.0 definitions from the IPMI Specification Version 2.0, Revision 1.1. 3 | 4 | This file contains all NetFn Sensor/Event commands, including: 5 | Event Commands (Chapter 29) 6 | PEF and Alerting Commands (Chapter 30) 7 | Sensor Device Commands (Chapter 35) 8 | 9 | See IPMI specification, Appendix G, Command Assignments 10 | and Appendix H, Sub-function Assignments. 11 | 12 | Copyright (c) 1999 - 2015, Intel Corporation. All rights reserved.
13 | This program and the accompanying materials 14 | are licensed and made available under the terms and conditions of the BSD License 15 | which accompanies this distribution. The full text of the license may be found at 16 | http://opensource.org/licenses/bsd-license.php 17 | 18 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 19 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 20 | **/ 21 | 22 | #ifndef _IPMI_NET_FN_SENSOR_EVENT_H_ 23 | #define _IPMI_NET_FN_SENSOR_EVENT_H_ 24 | 25 | #pragma pack(1) 26 | // 27 | // Net function definition for Sensor command 28 | // 29 | #define IPMI_NETFN_SENSOR_EVENT 0x04 30 | 31 | // 32 | // All Sensor commands and their structure definitions to follow here 33 | // 34 | 35 | // 36 | // Definitions for Send Platform Event Message command 37 | // 38 | #define IPMI_SENSOR_PLATFORM_EVENT_MESSAGE 0x02 39 | 40 | typedef struct { 41 | UINT8 GeneratorId; 42 | UINT8 EvMRevision; 43 | UINT8 SensorType; 44 | UINT8 SensorNumber; 45 | UINT8 EventDirType; 46 | UINT8 OEMEvData1; 47 | UINT8 OEMEvData2; 48 | UINT8 OEMEvData3; 49 | } IPMI_PLATFORM_EVENT_MESSAGE_DATA_REQUEST; 50 | 51 | #pragma pack() 52 | #endif 53 | -------------------------------------------------------------------------------- /Include/IndustryStandard/Mbr.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Legacy Master Boot Record Format Definition. 3 | 4 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | **/ 14 | 15 | #ifndef _MBR_H_ 16 | #define _MBR_H_ 17 | 18 | #define MBR_SIGNATURE 0xaa55 19 | 20 | #define EXTENDED_DOS_PARTITION 0x05 21 | #define EXTENDED_WINDOWS_PARTITION 0x0F 22 | 23 | #define MAX_MBR_PARTITIONS 4 24 | 25 | #define PMBR_GPT_PARTITION 0xEE 26 | #define EFI_PARTITION 0xEF 27 | 28 | #define MBR_SIZE 512 29 | 30 | #pragma pack(1) 31 | /// 32 | /// MBR Partition Entry 33 | /// 34 | typedef struct { 35 | UINT8 BootIndicator; 36 | UINT8 StartHead; 37 | UINT8 StartSector; 38 | UINT8 StartTrack; 39 | UINT8 OSIndicator; 40 | UINT8 EndHead; 41 | UINT8 EndSector; 42 | UINT8 EndTrack; 43 | UINT8 StartingLBA[4]; 44 | UINT8 SizeInLBA[4]; 45 | } MBR_PARTITION_RECORD; 46 | 47 | /// 48 | /// MBR Partition Table 49 | /// 50 | typedef struct { 51 | UINT8 BootStrapCode[440]; 52 | UINT8 UniqueMbrSignature[4]; 53 | UINT8 Unknown[2]; 54 | MBR_PARTITION_RECORD Partition[MAX_MBR_PARTITIONS]; 55 | UINT16 Signature; 56 | } MASTER_BOOT_RECORD; 57 | 58 | #pragma pack() 59 | 60 | #endif 61 | -------------------------------------------------------------------------------- /Include/IndustryStandard/MemoryMappedConfigurationSpaceAccessTable.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | ACPI memory mapped configuration space access table definition, defined at 3 | in the PCI Firmware Specification, version 3.0. 4 | Specification is available at http://www.pcisig.com. 5 | 6 | Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
7 | This program and the accompanying materials 8 | are licensed and made available under the terms and conditions of the BSD License 9 | which accompanies this distribution. The full text of the license may be found at 10 | http://opensource.org/licenses/bsd-license.php 11 | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 | **/ 15 | 16 | #ifndef _MEMORY_MAPPED_CONFIGURATION_SPACE_ACCESS_TABLE_H_ 17 | #define _MEMORY_MAPPED_CONFIGURATION_SPACE_ACCESS_TABLE_H_ 18 | 19 | // 20 | // Ensure proper structure formats 21 | // 22 | #pragma pack(1) 23 | 24 | /// 25 | /// Memory Mapped Configuration Space Access Table (MCFG) 26 | /// This table is a basic description table header followed by 27 | /// a number of base address allocation structures. 28 | /// 29 | typedef struct { 30 | UINT64 BaseAddress; 31 | UINT16 PciSegmentGroupNumber; 32 | UINT8 StartBusNumber; 33 | UINT8 EndBusNumber; 34 | UINT32 Reserved; 35 | } EFI_ACPI_MEMORY_MAPPED_ENHANCED_CONFIGURATION_SPACE_BASE_ADDRESS_ALLOCATION_STRUCTURE; 36 | 37 | /// 38 | /// MCFG Table header definition. The rest of the table 39 | /// must be defined in a platform specific manner. 40 | /// 41 | typedef struct { 42 | EFI_ACPI_DESCRIPTION_HEADER Header; 43 | UINT64 Reserved; 44 | } EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE_HEADER; 45 | 46 | /// 47 | /// MCFG Revision (defined in spec) 48 | /// 49 | #define EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_SPACE_ACCESS_TABLE_REVISION 0x01 50 | 51 | #pragma pack() 52 | 53 | #endif 54 | -------------------------------------------------------------------------------- /Include/IndustryStandard/MemoryOverwriteRequestControlLock.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Support for Microsoft Secure MOR implementation, defined at 3 | Microsoft Secure MOR implementation. 4 | https://msdn.microsoft.com/en-us/library/windows/hardware/mt270973(v=vs.85).aspx 5 | 6 | Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.
7 | This program and the accompanying materials 8 | are licensed and made available under the terms and conditions of the BSD License 9 | which accompanies this distribution. The full text of the license may be found at 10 | http://opensource.org/licenses/bsd-license.php 11 | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 | 15 | **/ 16 | 17 | #ifndef __MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_H__ 18 | #define __MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_H__ 19 | 20 | #define MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_GUID \ 21 | { \ 22 | 0xBB983CCF, 0x151D, 0x40E1, {0xA0, 0x7B, 0x4A, 0x17, 0xBE, 0x16, 0x82, 0x92} \ 23 | } 24 | 25 | #define MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME L"MemoryOverwriteRequestControlLock" 26 | 27 | // 28 | // VendorGuid: {BB983CCF-151D-40E1-A07B-4A17BE168292} 29 | // Name: MemoryOverwriteRequestControlLock 30 | // Attributes: NV+BS+RT 31 | // GetVariable value in Data parameter: 0x0 (unlocked); 0x1 (locked without key); 0x2 (locked with key) 32 | // SetVariable value in Data parameter: 0x0 (unlocked); 0x1 (locked); 33 | // Revision 2 additionally accepts an 8-byte value that represents a shared secret key. 34 | // 35 | 36 | // 37 | // Note: Setting MemoryOverwriteRequestControlLock does not commit to flash (just changes the internal lock state). 38 | // Getting the variable returns the internal state and never exposes the key. 39 | // 40 | 41 | extern EFI_GUID gEfiMemoryOverwriteRequestControlLockGuid; 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /Include/IndustryStandard/Pci.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Support for the latest PCI standard. 3 | 4 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials are licensed and made available under 6 | the terms and conditions of the BSD License that accompanies this distribution. 7 | The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php. 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | **/ 14 | 15 | #ifndef _PCI_H_ 16 | #define _PCI_H_ 17 | 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /Include/IndustryStandard/Pci30.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Support for PCI 3.0 standard. 3 | 4 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | **/ 14 | 15 | #ifndef __PCI30_H__ 16 | #define __PCI30_H__ 17 | 18 | 19 | #include 20 | 21 | /// 22 | /// PCI_CLASS_MASS_STORAGE, Base Class 01h. 23 | /// 24 | ///@{ 25 | #define PCI_CLASS_MASS_STORAGE_SATADPA 0x06 26 | #define PCI_IF_MASS_STORAGE_SATA 0x00 27 | #define PCI_IF_MASS_STORAGE_AHCI 0x01 28 | ///@} 29 | 30 | /// 31 | /// PCI_CLASS_WIRELESS, Base Class 0Dh. 32 | /// 33 | ///@{ 34 | #define PCI_SUBCLASS_ETHERNET_80211A 0x20 35 | #define PCI_SUBCLASS_ETHERNET_80211B 0x21 36 | ///@} 37 | 38 | /** 39 | Macro that checks whether device is a SATA controller. 40 | 41 | @param _p Specified device. 42 | 43 | @retval TRUE Device is a SATA controller. 44 | @retval FALSE Device is not a SATA controller. 45 | 46 | **/ 47 | #define IS_PCI_SATADPA(_p) IS_CLASS2 (_p, PCI_CLASS_MASS_STORAGE, PCI_CLASS_MASS_STORAGE_SATADPA) 48 | 49 | /// 50 | /// PCI Capability List IDs and records 51 | /// 52 | #define EFI_PCI_CAPABILITY_ID_PCIEXP 0x10 53 | 54 | #pragma pack(1) 55 | 56 | /// 57 | /// PCI Data Structure Format 58 | /// Section 5.1.2, PCI Firmware Specification, Revision 3.0 59 | /// 60 | typedef struct { 61 | UINT32 Signature; ///< "PCIR" 62 | UINT16 VendorId; 63 | UINT16 DeviceId; 64 | UINT16 DeviceListOffset; 65 | UINT16 Length; 66 | UINT8 Revision; 67 | UINT8 ClassCode[3]; 68 | UINT16 ImageLength; 69 | UINT16 CodeRevision; 70 | UINT8 CodeType; 71 | UINT8 Indicator; 72 | UINT16 MaxRuntimeImageLength; 73 | UINT16 ConfigUtilityCodeHeaderOffset; 74 | UINT16 DMTFCLPEntryPointOffset; 75 | } PCI_3_0_DATA_STRUCTURE; 76 | 77 | #pragma pack() 78 | 79 | #endif 80 | -------------------------------------------------------------------------------- /Include/IndustryStandard/PciExpress30.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Support for the PCI Express 3.0 standard. 3 | 4 | This header file may not define all structures. Please extend as required. 5 | 6 | Copyright (c) 2014 - 2018, Intel Corporation. All rights reserved.
7 | This program and the accompanying materials 8 | are licensed and made available under the terms and conditions of the BSD License 9 | which accompanies this distribution. The full text of the license may be found at 10 | http://opensource.org/licenses/bsd-license.php 11 | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 | 15 | **/ 16 | 17 | #ifndef _PCIEXPRESS30_H_ 18 | #define _PCIEXPRESS30_H_ 19 | 20 | #include 21 | 22 | #pragma pack(1) 23 | 24 | #define PCI_EXPRESS_EXTENDED_CAPABILITY_SECONDARY_PCIE_ID 0x0019 25 | #define PCI_EXPRESS_EXTENDED_CAPABILITY_SECONDARY_PCIE_VER1 0x1 26 | 27 | typedef union { 28 | struct { 29 | UINT32 PerformEqualization : 1; 30 | UINT32 LinkEqualizationRequestInterruptEnable : 1; 31 | UINT32 Reserved : 30; 32 | } Bits; 33 | UINT32 Uint32; 34 | } PCI_EXPRESS_REG_LINK_CONTROL3; 35 | 36 | typedef union { 37 | struct { 38 | UINT16 DownstreamPortTransmitterPreset : 4; 39 | UINT16 DownstreamPortReceiverPresetHint : 3; 40 | UINT16 Reserved : 1; 41 | UINT16 UpstreamPortTransmitterPreset : 4; 42 | UINT16 UpstreamPortReceiverPresetHint : 3; 43 | UINT16 Reserved2 : 1; 44 | } Bits; 45 | UINT16 Uint16; 46 | } PCI_EXPRESS_REG_LANE_EQUALIZATION_CONTROL; 47 | 48 | typedef struct { 49 | PCI_EXPRESS_EXTENDED_CAPABILITIES_HEADER Header; 50 | PCI_EXPRESS_REG_LINK_CONTROL3 LinkControl3; 51 | UINT32 LaneErrorStatus; 52 | PCI_EXPRESS_REG_LANE_EQUALIZATION_CONTROL EqualizationControl[2]; 53 | } PCI_EXPRESS_EXTENDED_CAPABILITIES_SECONDARY_PCIE; 54 | 55 | #pragma pack() 56 | 57 | #endif 58 | -------------------------------------------------------------------------------- /Include/IndustryStandard/PciExpress31.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Support for the PCI Express 3.1 standard. 3 | 4 | This header file may not define all structures. Please extend as required. 5 | 6 | Copyright (c) 2016, Intel Corporation. All rights reserved.
7 | This program and the accompanying materials 8 | are licensed and made available under the terms and conditions of the BSD License 9 | which accompanies this distribution. The full text of the license may be found at 10 | http://opensource.org/licenses/bsd-license.php 11 | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 | 15 | **/ 16 | 17 | #ifndef _PCIEXPRESS31_H_ 18 | #define _PCIEXPRESS31_H_ 19 | 20 | #include 21 | 22 | #pragma pack(1) 23 | 24 | #define PCI_EXPRESS_EXTENDED_CAPABILITY_L1_PM_SUBSTATES_ID 0x001E 25 | #define PCI_EXPRESS_EXTENDED_CAPABILITY_L1_PM_SUBSTATES_VER1 0x1 26 | 27 | typedef union { 28 | struct { 29 | UINT32 PciPmL12 : 1; 30 | UINT32 PciPmL11 : 1; 31 | UINT32 AspmL12 : 1; 32 | UINT32 AspmL11 : 1; 33 | UINT32 L1PmSubstates : 1; 34 | UINT32 Reserved : 3; 35 | UINT32 CommonModeRestoreTime : 8; 36 | UINT32 TPowerOnScale : 2; 37 | UINT32 Reserved2 : 1; 38 | UINT32 TPowerOnValue : 5; 39 | UINT32 Reserved3 : 8; 40 | } Bits; 41 | UINT32 Uint32; 42 | } PCI_EXPRESS_REG_L1_PM_SUBSTATES_CAPABILITY; 43 | 44 | typedef union { 45 | struct { 46 | UINT32 PciPmL12 : 1; 47 | UINT32 PciPmL11 : 1; 48 | UINT32 AspmL12 : 1; 49 | UINT32 AspmL11 : 1; 50 | UINT32 Reserved : 4; 51 | UINT32 CommonModeRestoreTime : 8; 52 | UINT32 LtrL12ThresholdValue : 10; 53 | UINT32 Reserved2 : 3; 54 | UINT32 LtrL12ThresholdScale : 3; 55 | } Bits; 56 | UINT32 Uint32; 57 | } PCI_EXPRESS_REG_L1_PM_SUBSTATES_CONTROL1; 58 | 59 | typedef union { 60 | struct { 61 | UINT32 TPowerOnScale : 2; 62 | UINT32 Reserved : 1; 63 | UINT32 TPowerOnValue : 5; 64 | UINT32 Reserved2 : 24; 65 | } Bits; 66 | UINT32 Uint32; 67 | } PCI_EXPRESS_REG_L1_PM_SUBSTATES_CONTROL2; 68 | 69 | typedef struct { 70 | PCI_EXPRESS_EXTENDED_CAPABILITIES_HEADER Header; 71 | PCI_EXPRESS_REG_L1_PM_SUBSTATES_CAPABILITY Capability; 72 | PCI_EXPRESS_REG_L1_PM_SUBSTATES_CONTROL1 Control1; 73 | PCI_EXPRESS_REG_L1_PM_SUBSTATES_CONTROL2 Control2; 74 | } PCI_EXPRESS_EXTENDED_CAPABILITIES_L1_PM_SUBSTATES; 75 | 76 | #pragma pack() 77 | 78 | #endif 79 | -------------------------------------------------------------------------------- /Include/IndustryStandard/SmBus.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This file declares the SMBus definitions defined in SmBus Specifciation V2.0 3 | and defined in PI1.0 specification volume 5. 4 | 5 | Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials 7 | are licensed and made available under the terms and conditions of the BSD License 8 | which accompanies this distribution. The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | 14 | **/ 15 | 16 | #ifndef _SMBUS_H_ 17 | #define _SMBUS_H_ 18 | 19 | 20 | /// 21 | /// UDID of SMBUS device. 22 | /// 23 | typedef struct { 24 | UINT32 VendorSpecificId; 25 | UINT16 SubsystemDeviceId; 26 | UINT16 SubsystemVendorId; 27 | UINT16 Interface; 28 | UINT16 DeviceId; 29 | UINT16 VendorId; 30 | UINT8 VendorRevision; 31 | UINT8 DeviceCapabilities; 32 | } EFI_SMBUS_UDID; 33 | 34 | /// 35 | /// Smbus Device Address 36 | /// 37 | typedef struct { 38 | /// 39 | /// The SMBUS hardware address to which the SMBUS device is preassigned or allocated. 40 | /// 41 | UINTN SmbusDeviceAddress : 7; 42 | } EFI_SMBUS_DEVICE_ADDRESS; 43 | 44 | typedef struct { 45 | /// 46 | /// The SMBUS hardware address to which the SMBUS device is preassigned or 47 | /// allocated. Type EFI_SMBUS_DEVICE_ADDRESS is defined in EFI_PEI_SMBUS2_PPI.Execute(). 48 | /// 49 | EFI_SMBUS_DEVICE_ADDRESS SmbusDeviceAddress; 50 | /// 51 | /// The SMBUS Unique Device Identifier (UDID) as defined in EFI_SMBUS_UDID. 52 | /// Type EFI_SMBUS_UDID is defined in EFI_PEI_SMBUS2_PPI.ArpDevice(). 53 | /// 54 | EFI_SMBUS_UDID SmbusDeviceUdid; 55 | } EFI_SMBUS_DEVICE_MAP; 56 | 57 | /// 58 | /// Smbus Operations 59 | /// 60 | typedef enum _EFI_SMBUS_OPERATION { 61 | EfiSmbusQuickRead, 62 | EfiSmbusQuickWrite, 63 | EfiSmbusReceiveByte, 64 | EfiSmbusSendByte, 65 | EfiSmbusReadByte, 66 | EfiSmbusWriteByte, 67 | EfiSmbusReadWord, 68 | EfiSmbusWriteWord, 69 | EfiSmbusReadBlock, 70 | EfiSmbusWriteBlock, 71 | EfiSmbusProcessCall, 72 | EfiSmbusBWBRProcessCall 73 | } EFI_SMBUS_OPERATION; 74 | 75 | /// 76 | /// EFI_SMBUS_DEVICE_COMMAND 77 | /// 78 | typedef UINTN EFI_SMBUS_DEVICE_COMMAND; 79 | 80 | #endif 81 | 82 | -------------------------------------------------------------------------------- /Include/IndustryStandard/TcpaAcpi.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | TCPA ACPI table definition. 3 | 4 | Copyright (c) 2013, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | **/ 14 | 15 | #ifndef _TCPA_ACPI_H_ 16 | #define _TCPA_ACPI_H_ 17 | 18 | #include 19 | 20 | #pragma pack (1) 21 | 22 | typedef struct _EFI_TCG_CLIENT_ACPI_TABLE { 23 | EFI_ACPI_DESCRIPTION_HEADER Header; 24 | UINT16 PlatformClass; 25 | UINT32 Laml; 26 | UINT64 Lasa; 27 | } EFI_TCG_CLIENT_ACPI_TABLE; 28 | 29 | typedef struct _EFI_TCG_SERVER_ACPI_TABLE { 30 | EFI_ACPI_DESCRIPTION_HEADER Header; 31 | UINT16 PlatformClass; 32 | UINT16 Reserved0; 33 | UINT64 Laml; 34 | UINT64 Lasa; 35 | UINT16 SpecRev; 36 | UINT8 DeviceFlags; 37 | UINT8 InterruptFlags; 38 | UINT8 Gpe; 39 | UINT8 Reserved1[3]; 40 | UINT32 GlobalSysInt; 41 | EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE BaseAddress; 42 | UINT32 Reserved2; 43 | EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE ConfigAddress; 44 | UINT8 PciSegNum; 45 | UINT8 PciBusNum; 46 | UINT8 PciDevNum; 47 | UINT8 PciFuncNum; 48 | } EFI_TCG_SERVER_ACPI_TABLE; 49 | 50 | // 51 | // TCG Platform Type based on TCG ACPI Specification Version 1.00 52 | // 53 | #define TCG_PLATFORM_TYPE_CLIENT 0 54 | #define TCG_PLATFORM_TYPE_SERVER 1 55 | 56 | #pragma pack () 57 | 58 | #endif 59 | -------------------------------------------------------------------------------- /Include/IndustryStandard/Tpm2Acpi.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | TPM2 ACPI table definition. 3 | 4 | Copyright (c) 2013 - 2017, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | **/ 14 | 15 | #ifndef _TPM2_ACPI_H_ 16 | #define _TPM2_ACPI_H_ 17 | 18 | #include 19 | 20 | #pragma pack (1) 21 | 22 | #define EFI_TPM2_ACPI_TABLE_REVISION_3 3 23 | #define EFI_TPM2_ACPI_TABLE_REVISION_4 4 24 | #define EFI_TPM2_ACPI_TABLE_REVISION EFI_TPM2_ACPI_TABLE_REVISION_4 25 | 26 | typedef struct { 27 | EFI_ACPI_DESCRIPTION_HEADER Header; 28 | // Flags field is replaced in version 4 and above 29 | // BIT0~15: PlatformClass This field is only valid for version 4 and above 30 | // BIT16~31: Reserved 31 | UINT32 Flags; 32 | UINT64 AddressOfControlArea; 33 | UINT32 StartMethod; 34 | //UINT8 PlatformSpecificParameters[]; 35 | } EFI_TPM2_ACPI_TABLE; 36 | 37 | #define EFI_TPM2_ACPI_TABLE_START_METHOD_ACPI 2 38 | #define EFI_TPM2_ACPI_TABLE_START_METHOD_TIS 6 39 | #define EFI_TPM2_ACPI_TABLE_START_METHOD_COMMAND_RESPONSE_BUFFER_INTERFACE 7 40 | #define EFI_TPM2_ACPI_TABLE_START_METHOD_COMMAND_RESPONSE_BUFFER_INTERFACE_WITH_ACPI 8 41 | 42 | typedef struct { 43 | UINT32 Reserved; 44 | UINT32 Error; 45 | UINT32 Cancel; 46 | UINT32 Start; 47 | UINT64 InterruptControl; 48 | UINT32 CommandSize; 49 | UINT64 Command; 50 | UINT32 ResponseSize; 51 | UINT64 Response; 52 | } EFI_TPM2_ACPI_CONTROL_AREA; 53 | 54 | #pragma pack () 55 | 56 | #endif 57 | -------------------------------------------------------------------------------- /Include/IndustryStandard/WatchdogResourceTable.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | ACPI Watchdog Resource Table (WDRT) as defined at 3 | Microsoft Windows Hardware Developer Central. 4 | 5 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials 7 | are licensed and made available under the terms and conditions of the BSD License 8 | which accompanies this distribution. The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | **/ 14 | 15 | #ifndef _WATCHDOG_RESOURCE_TABLE_H_ 16 | #define _WATCHDOG_RESOURCE_TABLE_H_ 17 | 18 | #include 19 | 20 | // 21 | // Ensure proper structure formats 22 | // 23 | #pragma pack(1) 24 | 25 | /// 26 | /// Watchdog Resource Table definition. 27 | /// 28 | typedef struct { 29 | EFI_ACPI_DESCRIPTION_HEADER Header; 30 | EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE ControlRegisterAddress; 31 | EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE CountRegisterAddress; 32 | UINT16 PCIDeviceID; 33 | UINT16 PCIVendorID; 34 | UINT8 PCIBusNumber; 35 | UINT8 PCIDeviceNumber; 36 | UINT8 PCIFunctionNumber; 37 | UINT8 PCISegment; 38 | UINT16 MaxCount; 39 | UINT8 Units; 40 | } EFI_ACPI_WATCHDOG_RESOURCE_1_0_TABLE; 41 | 42 | #pragma pack() 43 | 44 | // 45 | // WDRT Revision (defined in spec) 46 | // 47 | #define EFI_ACPI_WATCHDOG_RESOURCE_1_0_TABLE_REVISION 0x01 48 | 49 | // 50 | // WDRT 1.0 Count Unit 51 | // 52 | #define EFI_ACPI_WDRT_1_0_COUNT_UNIT_1_SEC_PER_COUNT 1 53 | #define EFI_ACPI_WDRT_1_0_COUNT_UNIT_100_MILLISEC_PER_COUNT 2 54 | #define EFI_ACPI_WDRT_1_0_COUNT_UNIT_10_MILLISEC_PER_COUNT 3 55 | 56 | #endif 57 | -------------------------------------------------------------------------------- /Include/IndustryStandard/WindowsSmmSecurityMitigationTable.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Defines Windows SMM Security Mitigation Table 3 | @ https://msdn.microsoft.com/windows/hardware/drivers/bringup/acpi-system-description-tables#wsmt 4 | 5 | Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials 7 | are licensed and made available under the terms and conditions of the BSD License 8 | which accompanies this distribution. The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | 14 | **/ 15 | 16 | 17 | #ifndef _WINDOWS_SMM_SECURITY_MITIGATION_TABLE_H_ 18 | #define _WINDOWS_SMM_SECURITY_MITIGATION_TABLE_H_ 19 | 20 | #include 21 | 22 | #define EFI_ACPI_WINDOWS_SMM_SECURITY_MITIGATION_TABLE_SIGNATURE SIGNATURE_32('W', 'S', 'M', 'T') 23 | 24 | #pragma pack(1) 25 | 26 | #define EFI_WSMT_TABLE_REVISION 1 27 | 28 | typedef struct { 29 | EFI_ACPI_DESCRIPTION_HEADER Header; 30 | UINT32 ProtectionFlags; 31 | } EFI_ACPI_WSMT_TABLE; 32 | 33 | #define EFI_WSMT_PROTECTION_FLAGS_FIXED_COMM_BUFFERS 0x1 34 | #define EFI_WSMT_PROTECTION_FLAGS_COMM_BUFFER_NESTED_PTR_PROTECTION 0x2 35 | #define EFI_WSMT_PROTECTION_FLAGS_SYSTEM_RESOURCE_PROTECTION 0x4 36 | 37 | #pragma pack() 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /Include/IndustryStandard/WindowsUxCapsule.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Defines Windows UX Capsule GUID and layout defined at Microsoft 3 | Windows UEFI Firmware Update Platform specification 4 | 5 | Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials 7 | are licensed and made available under the terms and conditions of the BSD License 8 | which accompanies this distribution. The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | 14 | **/ 15 | 16 | 17 | #ifndef _WINDOWS_UX_CAPSULE_GUID_H_ 18 | #define _WINDOWS_UX_CAPSULE_GUID_H_ 19 | 20 | #pragma pack(1) 21 | 22 | typedef struct { 23 | UINT8 Version; 24 | UINT8 Checksum; 25 | UINT8 ImageType; 26 | UINT8 Reserved; 27 | UINT32 Mode; 28 | UINT32 OffsetX; 29 | UINT32 OffsetY; 30 | //UINT8 Image[]; 31 | } DISPLAY_DISPLAY_PAYLOAD; 32 | 33 | typedef struct { 34 | EFI_CAPSULE_HEADER CapsuleHeader; 35 | DISPLAY_DISPLAY_PAYLOAD ImagePayload; 36 | } EFI_DISPLAY_CAPSULE; 37 | 38 | #pragma pack() 39 | 40 | #define WINDOWS_UX_CAPSULE_GUID \ 41 | { \ 42 | 0x3b8c8162, 0x188c, 0x46a4, { 0xae, 0xc9, 0xbe, 0x43, 0xf1, 0xd6, 0x56, 0x97} \ 43 | } 44 | 45 | extern EFI_GUID gWindowsUxCapsuleGuid; 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /Include/Library/CpuLib.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Provides CPU architecture specific functions that can not be defined 3 | in the Base Library due to dependencies on the PAL Library 4 | 5 | The CPU Library provides services to flush CPU TLBs and place the CPU in a sleep state. 6 | The implementation of these services on Itanium processors requires the use of PAL Calls. 7 | PAL Calls require PEI and DXE specific mechanisms to look up PAL Entry Point. 8 | As a result, these services could not be defined in the Base Library. 9 | 10 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
11 | This program and the accompanying materials 12 | are licensed and made available under the terms and conditions of the BSD License 13 | which accompanies this distribution. The full text of the license may be found at 14 | http://opensource.org/licenses/bsd-license.php 15 | 16 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 17 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 18 | 19 | **/ 20 | 21 | #ifndef __CPU_LIB_H__ 22 | #define __CPU_LIB_H__ 23 | 24 | /** 25 | Places the CPU in a sleep state until an interrupt is received. 26 | 27 | Places the CPU in a sleep state until an interrupt is received. If interrupts 28 | are disabled prior to calling this function, then the CPU will be placed in a 29 | sleep state indefinitely. 30 | 31 | **/ 32 | VOID 33 | EFIAPI 34 | CpuSleep ( 35 | VOID 36 | ); 37 | 38 | /** 39 | Flushes all the Translation Lookaside Buffers(TLB) entries in a CPU. 40 | 41 | Flushes all the Translation Lookaside Buffers(TLB) entries in a CPU. 42 | 43 | **/ 44 | VOID 45 | EFIAPI 46 | CpuFlushTlb ( 47 | VOID 48 | ); 49 | 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /Include/Library/DebugPrintErrorLevelLib.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Debug Print Error Level Library class 3 | 4 | Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php. 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | **/ 14 | #ifndef _DEBUG_PRINT_ERROR_LEVEL_LIB_H_ 15 | #define _DEBUG_PRINT_ERROR_LEVEL_LIB_H_ 16 | 17 | /** 18 | Returns the debug print error level mask for the current module. 19 | 20 | @return Debug print error level mask for the current module. 21 | 22 | **/ 23 | UINT32 24 | EFIAPI 25 | GetDebugPrintErrorLevel ( 26 | VOID 27 | ); 28 | 29 | /** 30 | Sets the global debug print error level mask fpr the entire platform. 31 | 32 | @param ErrorLevel Global debug print error level 33 | 34 | @retval TRUE The debug print error level mask was successfully set. 35 | @retval FALSE The debug print error level mask could not be set. 36 | 37 | **/ 38 | BOOLEAN 39 | EFIAPI 40 | SetDebugPrintErrorLevel ( 41 | UINT32 ErrorLevel 42 | ); 43 | #endif 44 | -------------------------------------------------------------------------------- /Include/Library/DxeServicesTableLib.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Provides a service to retrieve a pointer to the DXE Services Table. 3 | Only available to DXE module types. 4 | 5 | This library does not contain any functions or macros. It simply exports a global 6 | pointer to the DXE Services Table as defined in the Platform Initialization Driver 7 | Execution Environment Core Interface Specification. The library constructor must 8 | initialize this global pointer to the DX Services Table, so it is available at the 9 | module's entry point. Since there is overhead in looking up the pointer to the DXE 10 | Services Table, only those modules that actually require access to the DXE Services 11 | Table should use this library. This will typically be DXE Drivers that require GCD 12 | or Dispatcher services. 13 | 14 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
15 | This program and the accompanying materials 16 | are licensed and made available under the terms and conditions of the BSD License 17 | which accompanies this distribution. The full text of the license may be found at 18 | http://opensource.org/licenses/bsd-license.php 19 | 20 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 21 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 22 | 23 | **/ 24 | 25 | #ifndef __DXE_SERVICES_TABLE_LIB_H__ 26 | #define __DXE_SERVICES_TABLE_LIB_H__ 27 | 28 | /// 29 | /// Cache copy of the DXE Services Table 30 | /// 31 | extern EFI_DXE_SERVICES *gDS; 32 | 33 | #endif 34 | 35 | -------------------------------------------------------------------------------- /Include/Library/PciSegmentInfoLib.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Provides services to return segment information on a platform with multiple PCI segments. 3 | 4 | This library is consumed by PciSegmentLib to support multiple segment PCI configuration access. 5 | 6 | Copyright (c) 2017, Intel Corporation. All rights reserved.
7 | This program and the accompanying materials 8 | are licensed and made available under the terms and conditions of the BSD License 9 | which accompanies this distribution. The full text of the license may be found at 10 | http://opensource.org/licenses/bsd-license.php 11 | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 | 15 | **/ 16 | 17 | #ifndef __PCI_SEGMENT_INFO_LIB__ 18 | #define __PCI_SEGMENT_INFO_LIB__ 19 | 20 | typedef struct { 21 | UINT16 SegmentNumber; ///< Segment number. 22 | UINT64 BaseAddress; ///< ECAM Base address. 23 | UINT8 StartBusNumber; ///< Start BUS number, for verifying the PCI Segment address. 24 | UINT8 EndBusNumber; ///< End BUS number, for verifying the PCI Segment address. 25 | } PCI_SEGMENT_INFO; 26 | 27 | /** 28 | Return an array of PCI_SEGMENT_INFO holding the segment information. 29 | 30 | Note: The returned array/buffer is owned by callee. 31 | 32 | @param Count Return the count of segments. 33 | 34 | @retval A callee owned array holding the segment information. 35 | **/ 36 | PCI_SEGMENT_INFO * 37 | GetPciSegmentInfo ( 38 | UINTN *Count 39 | ); 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /Include/Library/PeCoffExtraActionLib.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Provides services to perform additional actions when a PE/COFF image is loaded 3 | or unloaded. This is useful for environment where symbols need to be loaded 4 | and unloaded to support source level debugging. 5 | 6 | Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
7 | This program and the accompanying materials 8 | are licensed and made available under the terms and conditions of the BSD License 9 | which accompanies this distribution. The full text of the license may be found at 10 | http://opensource.org/licenses/bsd-license.php 11 | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 | 15 | **/ 16 | 17 | #ifndef __PE_COFF_EXTRA_ACTION_LIB_H__ 18 | #define __PE_COFF_EXTRA_ACTION_LIB_H__ 19 | 20 | #include 21 | 22 | /** 23 | Performs additional actions after a PE/COFF image has been loaded and relocated. 24 | 25 | If ImageContext is NULL, then ASSERT(). 26 | 27 | @param ImageContext Pointer to the image context structure that describes the 28 | PE/COFF image that has already been loaded and relocated. 29 | 30 | **/ 31 | VOID 32 | EFIAPI 33 | PeCoffLoaderRelocateImageExtraAction ( 34 | IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext 35 | ); 36 | 37 | /** 38 | Performs additional actions just before a PE/COFF image is unloaded. Any resources 39 | that were allocated by PeCoffLoaderRelocateImageExtraAction() must be freed. 40 | 41 | If ImageContext is NULL, then ASSERT(). 42 | 43 | @param ImageContext Pointer to the image context structure that describes the 44 | PE/COFF image that is being unloaded. 45 | 46 | **/ 47 | VOID 48 | EFIAPI 49 | PeCoffLoaderUnloadImageExtraAction ( 50 | IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext 51 | ); 52 | 53 | #endif 54 | -------------------------------------------------------------------------------- /Include/Library/PeiServicesTablePointerLib.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Provides a service to retrieve a pointer to the PEI Services Table. 3 | 4 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | **/ 14 | 15 | #ifndef __PEI_SERVICES_TABLE_POINTER_LIB_H__ 16 | #define __PEI_SERVICES_TABLE_POINTER_LIB_H__ 17 | 18 | /** 19 | Retrieves the cached value of the PEI Services Table pointer. 20 | 21 | Returns the cached value of the PEI Services Table pointer in a CPU specific manner 22 | as specified in the CPU binding section of the Platform Initialization Pre-EFI 23 | Initialization Core Interface Specification. 24 | 25 | If the cached PEI Services Table pointer is NULL, then ASSERT(). 26 | 27 | @return The pointer to PeiServices. 28 | 29 | **/ 30 | CONST EFI_PEI_SERVICES ** 31 | EFIAPI 32 | GetPeiServicesTablePointer ( 33 | VOID 34 | ); 35 | 36 | /** 37 | Caches a pointer PEI Services Table. 38 | 39 | Caches the pointer to the PEI Services Table specified by PeiServicesTablePointer 40 | in a CPU specific manner as specified in the CPU binding section of the Platform Initialization 41 | Pre-EFI Initialization Core Interface Specification. 42 | 43 | If PeiServicesTablePointer is NULL, then ASSERT(). 44 | 45 | @param PeiServicesTablePointer The address of PeiServices pointer. 46 | **/ 47 | VOID 48 | EFIAPI 49 | SetPeiServicesTablePointer ( 50 | IN CONST EFI_PEI_SERVICES ** PeiServicesTablePointer 51 | ); 52 | 53 | /** 54 | Perform CPU specific actions required to migrate the PEI Services Table 55 | pointer from temporary RAM to permanent RAM. 56 | 57 | For IA32 CPUs, the PEI Services Table pointer is stored in the 4 bytes 58 | immediately preceding the Interrupt Descriptor Table (IDT) in memory. 59 | For X64 CPUs, the PEI Services Table pointer is stored in the 8 bytes 60 | immediately preceding the Interrupt Descriptor Table (IDT) in memory. 61 | For Itanium and ARM CPUs, a the PEI Services Table Pointer is stored in 62 | a dedicated CPU register. This means that there is no memory storage 63 | associated with storing the PEI Services Table pointer, so no additional 64 | migration actions are required for Itanium or ARM CPUs. 65 | 66 | **/ 67 | VOID 68 | EFIAPI 69 | MigratePeiServicesTablePointer ( 70 | VOID 71 | ); 72 | 73 | #endif 74 | 75 | -------------------------------------------------------------------------------- /Include/Library/ResourcePublicationLib.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Provides a service to publish discovered system resources. 3 | 4 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | **/ 14 | 15 | #ifndef __RESOURCE_PUBLICATION_LIB__ 16 | #define __RESOURCE_PUBLICATION_LIB__ 17 | 18 | /** 19 | Declares the presence of permanent system memory in the platform. 20 | 21 | Declares that the system memory buffer specified by MemoryBegin and MemoryLength 22 | as permanent memory that may be used for general purpose use by software. 23 | The amount of memory available to software may be less than MemoryLength 24 | if published memory has alignment restrictions. 25 | If MemoryLength is 0, then ASSERT(). 26 | If MemoryLength is greater than (MAX_ADDRESS - MemoryBegin + 1), then ASSERT(). 27 | 28 | @param MemoryBegin The start address of the memory being declared. 29 | @param MemoryLength The number of bytes of memory being declared. 30 | 31 | @retval RETURN_SUCCESS The memory buffer was published. 32 | @retval RETURN_OUT_OF_RESOURCES There are not enough resources to publish the memory buffer 33 | 34 | **/ 35 | RETURN_STATUS 36 | EFIAPI 37 | PublishSystemMemory ( 38 | IN PHYSICAL_ADDRESS MemoryBegin, 39 | IN UINT64 MemoryLength 40 | ); 41 | 42 | #endif 43 | -------------------------------------------------------------------------------- /Include/Library/RngLib.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Provides random number generator services. 3 | 4 | Copyright (c) 2015, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | **/ 14 | 15 | #ifndef __RNG_LIB_H__ 16 | #define __RNG_LIB_H__ 17 | 18 | /** 19 | Generates a 16-bit random number. 20 | 21 | if Rand is NULL, then ASSERT(). 22 | 23 | @param[out] Rand Buffer pointer to store the 16-bit random value. 24 | 25 | @retval TRUE Random number generated successfully. 26 | @retval FALSE Failed to generate the random number. 27 | 28 | **/ 29 | BOOLEAN 30 | EFIAPI 31 | GetRandomNumber16 ( 32 | OUT UINT16 *Rand 33 | ); 34 | 35 | /** 36 | Generates a 32-bit random number. 37 | 38 | if Rand is NULL, then ASSERT(). 39 | 40 | @param[out] Rand Buffer pointer to store the 32-bit random value. 41 | 42 | @retval TRUE Random number generated successfully. 43 | @retval FALSE Failed to generate the random number. 44 | 45 | **/ 46 | BOOLEAN 47 | EFIAPI 48 | GetRandomNumber32 ( 49 | OUT UINT32 *Rand 50 | ); 51 | 52 | /** 53 | Generates a 64-bit random number. 54 | 55 | if Rand is NULL, then ASSERT(). 56 | 57 | @param[out] Rand Buffer pointer to store the 64-bit random value. 58 | 59 | @retval TRUE Random number generated successfully. 60 | @retval FALSE Failed to generate the random number. 61 | 62 | **/ 63 | BOOLEAN 64 | EFIAPI 65 | GetRandomNumber64 ( 66 | OUT UINT64 *Rand 67 | ); 68 | 69 | /** 70 | Generates a 128-bit random number. 71 | 72 | if Rand is NULL, then ASSERT(). 73 | 74 | @param[out] Rand Buffer pointer to store the 128-bit random value. 75 | 76 | @retval TRUE Random number generated successfully. 77 | @retval FALSE Failed to generate the random number. 78 | 79 | **/ 80 | BOOLEAN 81 | EFIAPI 82 | GetRandomNumber128 ( 83 | OUT UINT64 *Rand 84 | ); 85 | 86 | #endif // __RNG_LIB_H__ 87 | -------------------------------------------------------------------------------- /Include/Library/S3StallLib.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Stall Services that perform stalls and also enable the Stall operatation 3 | to be replayed during an S3 resume. This library class maps directly on top 4 | of the Timer class. 5 | 6 | Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
7 | 8 | This program and the accompanying materials 9 | are licensed and made available under the terms and conditions 10 | of the BSD License which accompanies this distribution. The 11 | full text of the license may be found at 12 | http://opensource.org/licenses/bsd-license.php 13 | 14 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 15 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 16 | 17 | **/ 18 | 19 | #ifndef __S3_STALL_LIB_H__ 20 | #define __S3_STALL_LIB_H__ 21 | 22 | /** 23 | Stalls the CPU for at least the given number of microseconds and saves 24 | the value in the S3 script to be replayed on S3 resume. 25 | 26 | Stalls the CPU for the number of microseconds specified by MicroSeconds. 27 | 28 | @param[in] MicroSeconds The minimum number of microseconds to delay. 29 | 30 | @return MicroSeconds. 31 | 32 | **/ 33 | UINTN 34 | EFIAPI 35 | S3Stall ( 36 | IN UINTN MicroSeconds 37 | ); 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /Include/Library/SalLib.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Provides library services to make SAL Calls. 3 | 4 | Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | **/ 14 | 15 | #ifndef __SAL_LIB__ 16 | #define __SAL_LIB__ 17 | 18 | #include 19 | 20 | /** 21 | Makes a SAL procedure call. 22 | 23 | This is a wrapper function to make a SAL procedure call. 24 | No parameter checking is performed on the 8 input parameters, 25 | but there are some common rules that the caller should follow 26 | when making a SAL call. Any address passed to SAL as buffers 27 | for return parameters must be 8-byte aligned. Unaligned 28 | addresses may cause undefined results. For those parameters 29 | defined as reserved or some fields defined as reserved must be 30 | zero filled or the invalid argument return value may be returned 31 | or undefined result may occur during the execution of the procedure. 32 | This function is only available on Intel Itanium-based platforms. 33 | 34 | @param Index The SAL procedure Index number 35 | @param Arg2 The 2nd parameter for SAL procedure calls 36 | @param Arg3 The 3rd parameter for SAL procedure calls 37 | @param Arg4 The 4th parameter for SAL procedure calls 38 | @param Arg5 The 5th parameter for SAL procedure calls 39 | @param Arg6 The 6th parameter for SAL procedure calls 40 | @param Arg7 The 7th parameter for SAL procedure calls 41 | @param Arg8 The 8th parameter for SAL procedure calls 42 | 43 | @return SAL returned registers. 44 | 45 | **/ 46 | SAL_RETURN_REGS 47 | EFIAPI 48 | SalCall ( 49 | IN UINT64 Index, 50 | IN UINT64 Arg2, 51 | IN UINT64 Arg3, 52 | IN UINT64 Arg4, 53 | IN UINT64 Arg5, 54 | IN UINT64 Arg6, 55 | IN UINT64 Arg7, 56 | IN UINT64 Arg8 57 | ); 58 | 59 | #endif 60 | -------------------------------------------------------------------------------- /Include/Library/SmmIoLib.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Provides services for SMM IO Operation. 3 | 4 | The SMM IO Library provides function for checking if IO resource is accessible inside of SMM. 5 | 6 | Copyright (c) 2017, Intel Corporation. All rights reserved.
7 | This program and the accompanying materials 8 | are licensed and made available under the terms and conditions of the BSD License 9 | which accompanies this distribution. The full text of the license may be found at 10 | http://opensource.org/licenses/bsd-license.php 11 | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 | 15 | **/ 16 | 17 | #ifndef _SMM_IO_LIB_H_ 18 | #define _SMM_IO_LIB_H_ 19 | 20 | /** 21 | This function check if the MMIO resource is valid per processor architecture and 22 | valid per platform design. 23 | 24 | @param BaseAddress The MMIO start address to be checked. 25 | @param Length The MMIO length to be checked. 26 | @param Owner A GUID representing the owner of the resource. 27 | This GUID may be used by producer to correlate the device ownership of the resource. 28 | NULL means no specific owner. 29 | 30 | @retval TRUE This MMIO resource is valid per processor architecture and valid per platform design. 31 | @retval FALSE This MMIO resource is not valid per processor architecture or valid per platform design. 32 | **/ 33 | BOOLEAN 34 | EFIAPI 35 | SmmIsMmioValid ( 36 | IN EFI_PHYSICAL_ADDRESS BaseAddress, 37 | IN UINT64 Length, 38 | IN EFI_GUID *Owner OPTIONAL 39 | ); 40 | 41 | #endif 42 | 43 | -------------------------------------------------------------------------------- /Include/Library/SmmLib.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Library class name: SmmLib 3 | 4 | SMM Library Services that abstracts both S/W SMI generation and detection. 5 | 6 | Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
7 | This program and the accompanying materials 8 | are licensed and made available under the terms and conditions of the BSD License 9 | which accompanies this distribution. The full text of the license may be found at 10 | http://opensource.org/licenses/bsd-license.php 11 | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 | 15 | **/ 16 | 17 | #ifndef __SMM_LIB_H__ 18 | #define __SMM_LIB_H__ 19 | 20 | 21 | /** 22 | Triggers an SMI at boot time. 23 | 24 | This function triggers a software SMM interrupt at boot time. 25 | 26 | **/ 27 | VOID 28 | EFIAPI 29 | TriggerBootServiceSoftwareSmi ( 30 | VOID 31 | ); 32 | 33 | 34 | /** 35 | Triggers an SMI at run time. 36 | 37 | This function triggers a software SMM interrupt at run time. 38 | 39 | **/ 40 | VOID 41 | EFIAPI 42 | TriggerRuntimeSoftwareSmi ( 43 | VOID 44 | ); 45 | 46 | 47 | /** 48 | Test if a boot time software SMI happened. 49 | 50 | This function tests if a software SMM interrupt happened. If a software SMM interrupt happened and 51 | it was triggered at boot time, it returns TRUE. Otherwise, it returns FALSE. 52 | 53 | @retval TRUE A software SMI triggered at boot time happened. 54 | @retval FLASE No software SMI happened, or the software SMI was triggered at run time. 55 | 56 | **/ 57 | BOOLEAN 58 | EFIAPI 59 | IsBootServiceSoftwareSmi ( 60 | VOID 61 | ); 62 | 63 | 64 | /** 65 | Test if a run time software SMI happened. 66 | 67 | This function tests if a software SMM interrupt happened. If a software SMM interrupt happened and 68 | it was triggered at run time, it returns TRUE. Otherwise, it returns FALSE. 69 | 70 | @retval TRUE A software SMI triggered at run time happened. 71 | @retval FLASE No software SMI happened or the software SMI was triggered at boot time. 72 | 73 | **/ 74 | BOOLEAN 75 | EFIAPI 76 | IsRuntimeSoftwareSmi ( 77 | VOID 78 | ); 79 | 80 | /** 81 | Clear APM SMI Status Bit; Set the EOS bit. 82 | 83 | **/ 84 | VOID 85 | EFIAPI 86 | ClearSmi ( 87 | VOID 88 | ); 89 | #endif 90 | -------------------------------------------------------------------------------- /Include/Library/SmmServicesTableLib.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Provides a service to retrieve a pointer to the SMM Services Table. 3 | Only available to SMM module types. 4 | 5 | Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials 7 | are licensed and made available under the terms and conditions of the BSD License 8 | which accompanies this distribution. The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | 14 | **/ 15 | 16 | #ifndef __SMM_SERVICES_TABLE_LIB_H__ 17 | #define __SMM_SERVICES_TABLE_LIB_H__ 18 | 19 | #include 20 | 21 | /// 22 | /// Cache pointer to the SMM Services Table 23 | /// 24 | extern EFI_SMM_SYSTEM_TABLE2 *gSmst; 25 | 26 | /** 27 | This function allows the caller to determine if the driver is executing in 28 | System Management Mode(SMM). 29 | 30 | This function returns TRUE if the driver is executing in SMM and FALSE if the 31 | driver is not executing in SMM. 32 | 33 | @retval TRUE The driver is executing in System Management Mode (SMM). 34 | @retval FALSE The driver is not executing in System Management Mode (SMM). 35 | 36 | **/ 37 | BOOLEAN 38 | EFIAPI 39 | InSmm ( 40 | VOID 41 | ); 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /Include/Library/UefiBootServicesTableLib.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Provides a service to retrieve a pointer to the EFI Boot Services Table. 3 | Only available to DXE and UEFI module types. 4 | 5 | Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials 7 | are licensed and made available under the terms and conditions of the BSD License 8 | which accompanies this distribution. The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | 14 | **/ 15 | 16 | #ifndef __UEFI_BOOT_SERVICES_TABLE_LIB_H__ 17 | #define __UEFI_BOOT_SERVICES_TABLE_LIB_H__ 18 | 19 | /// 20 | /// Cache the Image Handle 21 | /// 22 | extern EFI_HANDLE gImageHandle; 23 | 24 | /// 25 | /// Cache pointer to the EFI System Table 26 | /// 27 | extern EFI_SYSTEM_TABLE *gST; 28 | 29 | /// 30 | /// Cache pointer to the EFI Boot Services Table 31 | /// 32 | extern EFI_BOOT_SERVICES *gBS; 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /Include/Library/UefiRuntimeServicesTableLib.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Provides a service to retrieve a pointer to the EFI Runtime Services Table. 3 | 4 | This library does not contain any functions or macros. It simply exports the 5 | global variable gRT that is a pointer to the EFI Runtime Services Table as defined 6 | in the UEFI Specification. The global variable gRT must be preinitialized to NULL. 7 | The library constructor must set gRT to point at the EFI Runtime Services Table so 8 | it is available at the module's entry point. Since there is overhead in initializing 9 | this global variable, only those modules that actually require access to the EFI 10 | Runtime Services Table should use this library. 11 | Only available to DXE and UEFI module types. 12 | 13 | Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
14 | This program and the accompanying materials 15 | are licensed and made available under the terms and conditions of the BSD License 16 | which accompanies this distribution. The full text of the license may be found at 17 | http://opensource.org/licenses/bsd-license.php 18 | 19 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 20 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 21 | 22 | **/ 23 | 24 | #ifndef __UEFI_RUNTIME_SERVICES_TABLE_LIB_H__ 25 | #define __UEFI_RUNTIME_SERVICES_TABLE_LIB_H__ 26 | 27 | /// 28 | /// Cached copy of the EFI Runtime Services Table 29 | /// 30 | extern EFI_RUNTIME_SERVICES *gRT; 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /Include/Pi/PiBootMode.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Present the boot mode values in PI. 3 | 4 | Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | @par Revision Reference: 14 | PI Version 1.2.1A 15 | 16 | **/ 17 | 18 | #ifndef __PI_BOOT_MODE_H__ 19 | #define __PI_BOOT_MODE_H__ 20 | 21 | /// 22 | /// EFI boot mode 23 | /// 24 | typedef UINT32 EFI_BOOT_MODE; 25 | 26 | // 27 | // 0x21 - 0xf..f are reserved. 28 | // 29 | #define BOOT_WITH_FULL_CONFIGURATION 0x00 30 | #define BOOT_WITH_MINIMAL_CONFIGURATION 0x01 31 | #define BOOT_ASSUMING_NO_CONFIGURATION_CHANGES 0x02 32 | #define BOOT_WITH_FULL_CONFIGURATION_PLUS_DIAGNOSTICS 0x03 33 | #define BOOT_WITH_DEFAULT_SETTINGS 0x04 34 | #define BOOT_ON_S4_RESUME 0x05 35 | #define BOOT_ON_S5_RESUME 0x06 36 | #define BOOT_WITH_MFG_MODE_SETTINGS 0x07 37 | #define BOOT_ON_S2_RESUME 0x10 38 | #define BOOT_ON_S3_RESUME 0x11 39 | #define BOOT_ON_FLASH_UPDATE 0x12 40 | #define BOOT_IN_RECOVERY_MODE 0x20 41 | 42 | #endif 43 | -------------------------------------------------------------------------------- /Include/Pi/PiDependency.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Present the dependency expression values in PI. 3 | 4 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | @par Revision Reference: 14 | PI Version 1.0 15 | 16 | **/ 17 | #ifndef __PI_DEPENDENCY_H__ 18 | #define __PI_DEPENDENCY_H__ 19 | 20 | /// 21 | /// If present, this must be the first and only opcode, 22 | /// EFI_DEP_BEFORE may be used by DXE and SMM drivers. 23 | /// 24 | #define EFI_DEP_BEFORE 0x00 25 | 26 | /// 27 | /// If present, this must be the first and only opcode, 28 | /// EFI_DEP_AFTER may be used by DXE and SMM drivers. 29 | /// 30 | #define EFI_DEP_AFTER 0x01 31 | 32 | #define EFI_DEP_PUSH 0x02 33 | #define EFI_DEP_AND 0x03 34 | #define EFI_DEP_OR 0x04 35 | #define EFI_DEP_NOT 0x05 36 | #define EFI_DEP_TRUE 0x06 37 | #define EFI_DEP_FALSE 0x07 38 | #define EFI_DEP_END 0x08 39 | 40 | 41 | /// 42 | /// If present, this must be the first opcode, 43 | /// EFI_DEP_SOR is only used by DXE driver. 44 | /// 45 | #define EFI_DEP_SOR 0x09 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /Include/Pi/PiS3BootScript.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This file contains the boot script defintions that are shared between the 3 | Boot Script Executor PPI and the Boot Script Save Protocol. 4 | 5 | Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials 7 | are licensed and made available under the terms and conditions of the BSD License 8 | which accompanies this distribution. The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | 14 | **/ 15 | 16 | #ifndef _PI_S3_BOOT_SCRIPT_H_ 17 | #define _PI_S3_BOOT_SCRIPT_H_ 18 | 19 | //******************************************* 20 | // EFI Boot Script Opcode definitions 21 | //******************************************* 22 | #define EFI_BOOT_SCRIPT_IO_WRITE_OPCODE 0x00 23 | #define EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE 0x01 24 | #define EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE 0x02 25 | #define EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE 0x03 26 | #define EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE 0x04 27 | #define EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE 0x05 28 | #define EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE 0x06 29 | #define EFI_BOOT_SCRIPT_STALL_OPCODE 0x07 30 | #define EFI_BOOT_SCRIPT_DISPATCH_OPCODE 0x08 31 | #define EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE 0x09 32 | #define EFI_BOOT_SCRIPT_INFORMATION_OPCODE 0x0A 33 | #define EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE 0x0B 34 | #define EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE 0x0C 35 | #define EFI_BOOT_SCRIPT_IO_POLL_OPCODE 0x0D 36 | #define EFI_BOOT_SCRIPT_MEM_POLL_OPCODE 0x0E 37 | #define EFI_BOOT_SCRIPT_PCI_CONFIG_POLL_OPCODE 0x0F 38 | #define EFI_BOOT_SCRIPT_PCI_CONFIG2_POLL_OPCODE 0x10 39 | 40 | //******************************************* 41 | // EFI_BOOT_SCRIPT_WIDTH 42 | //******************************************* 43 | typedef enum { 44 | EfiBootScriptWidthUint8, 45 | EfiBootScriptWidthUint16, 46 | EfiBootScriptWidthUint32, 47 | EfiBootScriptWidthUint64, 48 | EfiBootScriptWidthFifoUint8, 49 | EfiBootScriptWidthFifoUint16, 50 | EfiBootScriptWidthFifoUint32, 51 | EfiBootScriptWidthFifoUint64, 52 | EfiBootScriptWidthFillUint8, 53 | EfiBootScriptWidthFillUint16, 54 | EfiBootScriptWidthFillUint32, 55 | EfiBootScriptWidthFillUint64, 56 | EfiBootScriptWidthMaximum 57 | } EFI_BOOT_SCRIPT_WIDTH; 58 | 59 | #endif 60 | -------------------------------------------------------------------------------- /Include/PiDxe.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | 3 | Root include file for Mde Package DXE_CORE, DXE, RUNTIME, SMM, SAL type modules. 4 | 5 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials are licensed and made available under 7 | the terms and conditions of the BSD License that accompanies this distribution. 8 | The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php. 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | 14 | **/ 15 | 16 | #ifndef __PI_DXE_H__ 17 | #define __PI_DXE_H__ 18 | 19 | #include 20 | #include 21 | 22 | #include 23 | 24 | #endif 25 | 26 | -------------------------------------------------------------------------------- /Include/PiMm.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | 3 | Root include file for Mde Package MM modules. 4 | 5 | Copyright (c) 2017, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials are licensed and made available under 7 | the terms and conditions of the BSD License that accompanies this distribution. 8 | The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php. 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | 14 | **/ 15 | 16 | #ifndef __PI_MM_H__ 17 | #define __PI_MM_H__ 18 | 19 | #include 20 | #include 21 | 22 | #include 23 | 24 | #endif 25 | 26 | -------------------------------------------------------------------------------- /Include/PiPei.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | 3 | Root include file for Mde Package SEC, PEIM, PEI_CORE type modules. 4 | 5 | This is the include file for any module of type PEIM. PEIM 6 | modules only use types defined via this include file and can 7 | be ported easily to any environment. 8 | 9 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
10 | This program and the accompanying materials are licensed and made available under 11 | the terms and conditions of the BSD License that accompanies this distribution. 12 | The full text of the license may be found at 13 | http://opensource.org/licenses/bsd-license.php. 14 | 15 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 16 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 17 | 18 | **/ 19 | 20 | #ifndef __PI_PEI_H__ 21 | #define __PI_PEI_H__ 22 | 23 | #include 24 | #include 25 | 26 | #endif 27 | 28 | -------------------------------------------------------------------------------- /Include/PiSmm.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | 3 | Root include file for Mde Package SMM modules. 4 | 5 | Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials are licensed and made available under 7 | the terms and conditions of the BSD License that accompanies this distribution. 8 | The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php. 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | 14 | **/ 15 | 16 | #ifndef __PI_SMM_H__ 17 | #define __PI_SMM_H__ 18 | 19 | #include 20 | #include 21 | 22 | #include 23 | 24 | #endif 25 | 26 | -------------------------------------------------------------------------------- /Include/Ppi/BootInRecoveryMode.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This PPI is installed by the platform PEIM to designate that a recovery boot 3 | is in progress. 4 | 5 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials 7 | are licensed and made available under the terms and conditions of the BSD License 8 | which accompanies this distribution. The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | 14 | @par Revision Reference: 15 | This PPI is introduced in PI Version 1.0. 16 | 17 | **/ 18 | 19 | #ifndef __BOOT_IN_RECOVERY_MODE_PPI_H__ 20 | #define __BOOT_IN_RECOVERY_MODE_PPI_H__ 21 | 22 | #define EFI_PEI_BOOT_IN_RECOVERY_MODE_PPI \ 23 | { \ 24 | 0x17ee496a, 0xd8e4, 0x4b9a, {0x94, 0xd1, 0xce, 0x82, 0x72, 0x30, 0x8, 0x50 } \ 25 | } 26 | 27 | 28 | extern EFI_GUID gEfiPeiBootInRecoveryModePpiGuid; 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /Include/Ppi/DxeIpl.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This file declares DXE Initial Program Load PPI. 3 | When the PEI core is done it calls the DXE IPL PPI to load the DXE Foundation. 4 | 5 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials 7 | are licensed and made available under the terms and conditions of the BSD License 8 | which accompanies this distribution. The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | 14 | @par Revision Reference: 15 | This PPI is introduced in PI Version 1.0. 16 | 17 | **/ 18 | 19 | #ifndef __DXE_IPL_H__ 20 | #define __DXE_IPL_H__ 21 | 22 | #define EFI_DXE_IPL_PPI_GUID \ 23 | { \ 24 | 0xae8ce5d, 0xe448, 0x4437, {0xa8, 0xd7, 0xeb, 0xf5, 0xf1, 0x94, 0xf7, 0x31 } \ 25 | } 26 | 27 | typedef struct _EFI_DXE_IPL_PPI EFI_DXE_IPL_PPI; 28 | 29 | /** 30 | The architectural PPI that the PEI Foundation invokes when 31 | there are no additional PEIMs to invoke. 32 | 33 | This function is invoked by the PEI Foundation. 34 | The PEI Foundation will invoke this service when there are 35 | no additional PEIMs to invoke in the system. 36 | If this PPI does not exist, it is an error condition and 37 | an ill-formed firmware set. The DXE IPL PPI should never 38 | return after having been invoked by the PEI Foundation. 39 | The DXE IPL PPI can do many things internally, including the following: 40 | - Invoke the DXE entry point from a firmware volume 41 | - Invoke the recovery processing modules 42 | - Invoke the S3 resume modules 43 | 44 | @param This Pointer to the DXE IPL PPI instance 45 | @param PeiServices Pointer to the PEI Services Table. 46 | @param HobList Pointer to the list of Hand-Off Block (HOB) entries. 47 | 48 | @retval EFI_SUCCESS Upon this return code, the PEI Foundation should enter 49 | some exception handling.Under normal circumstances, 50 | the DXE IPL PPI should not return. 51 | 52 | **/ 53 | typedef 54 | EFI_STATUS 55 | (EFIAPI *EFI_DXE_IPL_ENTRY)( 56 | IN CONST EFI_DXE_IPL_PPI *This, 57 | IN EFI_PEI_SERVICES **PeiServices, 58 | IN EFI_PEI_HOB_POINTERS HobList 59 | ); 60 | 61 | /// 62 | /// Final service to be invoked by the PEI Foundation. 63 | /// The DXE IPL PPI is responsible for locating and loading the DXE Foundation. 64 | /// The DXE IPL PPI may use PEI services to locate and load the DXE Foundation. 65 | /// 66 | struct _EFI_DXE_IPL_PPI { 67 | EFI_DXE_IPL_ENTRY Entry; 68 | }; 69 | 70 | extern EFI_GUID gEfiDxeIplPpiGuid; 71 | 72 | #endif 73 | -------------------------------------------------------------------------------- /Include/Ppi/EndOfPeiPhase.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This PPI will be installed at the end of PEI for all boot paths, including 3 | normal, recovery, and S3. It allows for PEIMs to possibly quiesce hardware, 4 | build handoff information for the next phase of execution, 5 | or provide some terminal processing behavior. 6 | 7 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
8 | This program and the accompanying materials 9 | are licensed and made available under the terms and conditions of the BSD License 10 | which accompanies this distribution. The full text of the license may be found at 11 | http://opensource.org/licenses/bsd-license.php 12 | 13 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 14 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 15 | 16 | @par Revision Reference: 17 | This PPI is introduced in PI Version 1.0. 18 | 19 | **/ 20 | 21 | #ifndef __END_OF_PEI_PHASE_PPI_H__ 22 | #define __END_OF_PEI_PHASE_PPI_H__ 23 | 24 | #define EFI_PEI_END_OF_PEI_PHASE_PPI_GUID \ 25 | { \ 26 | 0x605EA650, 0xC65C, 0x42e1, {0xBA, 0x80, 0x91, 0xA5, 0x2A, 0xB6, 0x18, 0xC6 } \ 27 | } 28 | 29 | extern EFI_GUID gEfiEndOfPeiSignalPpiGuid; 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /Include/Ppi/FirmwareVolumeInfo.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This file provides location and format of a firmware volume. 3 | 4 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | @par Revision Reference: 14 | This PPI is introduced in PI Version 1.0. 15 | 16 | **/ 17 | 18 | #ifndef __EFI_PEI_FIRMWARE_VOLUME_INFO_H__ 19 | #define __EFI_PEI_FIRMWARE_VOLUME_INFO_H__ 20 | 21 | 22 | 23 | #define EFI_PEI_FIRMWARE_VOLUME_INFO_PPI_GUID \ 24 | { 0x49edb1c1, 0xbf21, 0x4761, { 0xbb, 0x12, 0xeb, 0x0, 0x31, 0xaa, 0xbb, 0x39 } } 25 | 26 | typedef struct _EFI_PEI_FIRMWARE_VOLUME_INFO_PPI EFI_PEI_FIRMWARE_VOLUME_INFO_PPI; 27 | 28 | /// 29 | /// This PPI describes the location and format of a firmware volume. 30 | /// The FvFormat can be EFI_FIRMWARE_FILE_SYSTEM2_GUID or the GUID for 31 | /// a user-defined format. The EFI_FIRMWARE_FILE_SYSTEM2_GUID is 32 | /// the PI Firmware Volume format. 33 | /// 34 | struct _EFI_PEI_FIRMWARE_VOLUME_INFO_PPI { 35 | /// 36 | /// Unique identifier of the format of the memory-mapped firmware volume. 37 | /// 38 | EFI_GUID FvFormat; 39 | /// 40 | /// Points to a buffer which allows the EFI_PEI_FIRMWARE_VOLUME_PPI to process 41 | /// the volume. The format of this buffer is specific to the FvFormat. 42 | /// For memory-mapped firmware volumes, this typically points to the first byte 43 | /// of the firmware volume. 44 | /// 45 | VOID *FvInfo; 46 | /// 47 | /// Size of the data provided by FvInfo. For memory-mapped firmware volumes, 48 | /// this is typically the size of the firmware volume. 49 | /// 50 | UINT32 FvInfoSize; 51 | /// 52 | /// If the firmware volume originally came from a firmware file, then these 53 | /// point to the parent firmware volume name and firmware volume file. 54 | /// If it did not originally come from a firmware file, these should be NULL. 55 | /// 56 | EFI_GUID *ParentFvName; 57 | /// 58 | /// If the firmware volume originally came from a firmware file, then these 59 | /// point to the parent firmware volume name and firmware volume file. 60 | /// If it did not originally come from a firmware file, these should be NULL. 61 | /// 62 | EFI_GUID *ParentFileName; 63 | }; 64 | 65 | extern EFI_GUID gEfiPeiFirmwareVolumeInfoPpiGuid; 66 | 67 | #endif 68 | 69 | -------------------------------------------------------------------------------- /Include/Ppi/LoadImage.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | The file describes the PPI which notifies other drivers 3 | of the PEIM being initialized by the PEI Dispatcher. 4 | 5 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials 7 | are licensed and made available under the terms and conditions of the BSD License 8 | which accompanies this distribution. The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | 14 | @par Revision Reference: 15 | This PPI is introduced in PI Version 1.0. 16 | 17 | **/ 18 | 19 | #ifndef __LOADED_IMAGE_PPI_H__ 20 | #define __LOADED_IMAGE_PPI_H__ 21 | 22 | #define EFI_PEI_LOADED_IMAGE_PPI_GUID \ 23 | { 0xc1fcd448, 0x6300, 0x4458, { 0xb8, 0x64, 0x28, 0xdf, 0x1, 0x53, 0x64, 0xbc } } 24 | 25 | 26 | typedef struct _EFI_PEI_LOADED_IMAGE_PPI EFI_PEI_LOADED_IMAGE_PPI; 27 | 28 | /// 29 | /// This interface is installed by the PEI Dispatcher after the image has been 30 | /// loaded and after all security checks have been performed, 31 | /// to notify other PEIMs of the files which are being loaded. 32 | /// 33 | struct _EFI_PEI_LOADED_IMAGE_PPI { 34 | /// 35 | /// Address of the image at the address where it will be executed. 36 | /// 37 | EFI_PHYSICAL_ADDRESS ImageAddress; 38 | /// 39 | /// Size of the image as it will be executed. 40 | /// 41 | UINT64 ImageSize; 42 | /// 43 | /// File handle from which the image was loaded. 44 | /// Can be NULL, indicating the image was not loaded from a handle. 45 | /// 46 | EFI_PEI_FILE_HANDLE FileHandle; 47 | }; 48 | 49 | 50 | extern EFI_GUID gEfiPeiLoadedImagePpiGuid; 51 | 52 | #endif 53 | -------------------------------------------------------------------------------- /Include/Ppi/MasterBootMode.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This file declares Boot Mode PPI. 3 | 4 | The Master Boot Mode PPI is installed by a PEIM to signal that a final 5 | boot has been determined and set. This signal is useful in that PEIMs 6 | with boot-mode-specific behavior can put this PPI in their dependency expression. 7 | 8 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
9 | This program and the accompanying materials 10 | are licensed and made available under the terms and conditions of the BSD License 11 | which accompanies this distribution. The full text of the license may be found at 12 | http://opensource.org/licenses/bsd-license.php 13 | 14 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 15 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 16 | 17 | @par Revision Reference: 18 | This PPI is introduced in PI Version 1.0. 19 | 20 | **/ 21 | 22 | #ifndef __MASTER_BOOT_MODE_PPI_H__ 23 | #define __MASTER_BOOT_MODE_PPI_H__ 24 | 25 | #define EFI_PEI_MASTER_BOOT_MODE_PEIM_PPI \ 26 | { \ 27 | 0x7408d748, 0xfc8c, 0x4ee6, {0x92, 0x88, 0xc4, 0xbe, 0xc0, 0x92, 0xa4, 0x10 } \ 28 | } 29 | 30 | extern EFI_GUID gEfiPeiMasterBootModePpiGuid; 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /Include/Ppi/MemoryDiscovered.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This file declares Memory Discovered PPI. 3 | 4 | This PPI is published by the PEI Foundation when the main memory is installed. 5 | It is essentially a PPI with no associated interface. Its purpose is to be used 6 | as a signal for other PEIMs who can register for a notification on its installation. 7 | 8 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
9 | This program and the accompanying materials 10 | are licensed and made available under the terms and conditions of the BSD License 11 | which accompanies this distribution. The full text of the license may be found at 12 | http://opensource.org/licenses/bsd-license.php 13 | 14 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 15 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 16 | 17 | @par Revision Reference: 18 | This PPI is introduced in PI Version 1.0. 19 | 20 | **/ 21 | 22 | #ifndef __PEI_MEMORY_DISCOVERED_PPI_H__ 23 | #define __PEI_MEMORY_DISCOVERED_PPI_H__ 24 | 25 | #define EFI_PEI_PERMANENT_MEMORY_INSTALLED_PPI_GUID \ 26 | { \ 27 | 0xf894643d, 0xc449, 0x42d1, {0x8e, 0xa8, 0x85, 0xbd, 0xd8, 0xc6, 0x5b, 0xde } \ 28 | } 29 | 30 | extern EFI_GUID gEfiPeiMemoryDiscoveredPpiGuid; 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /Include/Ppi/Reset.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This file declares Reset PPI used to reset the platform. 3 | 4 | This PPI is installed by some platform- or chipset-specific PEIM that 5 | abstracts the Reset Service to other agents. 6 | 7 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
8 | This program and the accompanying materials 9 | are licensed and made available under the terms and conditions of the BSD License 10 | which accompanies this distribution. The full text of the license may be found at 11 | http://opensource.org/licenses/bsd-license.php 12 | 13 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 14 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 15 | 16 | @par Revision Reference: 17 | This PPI is introduced in PI Version 1.0. 18 | 19 | **/ 20 | 21 | #ifndef __RESET_PPI_H__ 22 | #define __RESET_PPI_H__ 23 | 24 | #define EFI_PEI_RESET_PPI_GUID \ 25 | { \ 26 | 0xef398d58, 0x9dfd, 0x4103, {0xbf, 0x94, 0x78, 0xc6, 0xf4, 0xfe, 0x71, 0x2f } \ 27 | } 28 | 29 | // 30 | // EFI_PEI_RESET_PPI.ResetSystem() is equivalent to the 31 | // PEI Service ResetSystem(). 32 | // It is introduced in PIPeiCis.h. 33 | // 34 | 35 | /// 36 | /// This PPI provides provide a simple reset service. 37 | /// 38 | typedef struct { 39 | EFI_PEI_RESET_SYSTEM ResetSystem; 40 | } EFI_PEI_RESET_PPI; 41 | 42 | extern EFI_GUID gEfiPeiResetPpiGuid; 43 | 44 | #endif 45 | -------------------------------------------------------------------------------- /Include/Ppi/Reset2.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This file declares Reset2 PPI used to reset the platform. 3 | 4 | This PPI is installed by some platform- or chipset-specific PEIM that 5 | abstracts the Reset Service to other agents. 6 | 7 | Copyright (c) 2015, Intel Corporation. All rights reserved.
8 | This program and the accompanying materials 9 | are licensed and made available under the terms and conditions of the BSD License 10 | which accompanies this distribution. The full text of the license may be found at 11 | http://opensource.org/licenses/bsd-license.php 12 | 13 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 14 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 15 | 16 | @par Revision Reference: 17 | This PPI is introduced in PI Version 1.4. 18 | 19 | **/ 20 | 21 | #ifndef __RESET2_PPI_H__ 22 | #define __RESET2_PPI_H__ 23 | 24 | #define EFI_PEI_RESET2_PPI_GUID \ 25 | { \ 26 | 0x6cc45765, 0xcce4, 0x42fd, {0xbc, 0x56, 0x1, 0x1a, 0xaa, 0xc6, 0xc9, 0xa8 } \ 27 | } 28 | 29 | /// 30 | /// This PPI provides provide a simple reset service. 31 | /// 32 | typedef struct _EFI_PEI_RESET2_PPI { 33 | EFI_PEI_RESET2_SYSTEM ResetSystem; 34 | } EFI_PEI_RESET2_PPI; 35 | 36 | extern EFI_GUID gEfiPeiReset2PpiGuid; 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /Include/Ppi/SecHobData.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This file declares Sec Hob Data PPI. 3 | 4 | This PPI provides a way for the SEC code to pass zero or more HOBs in a HOB list. 5 | 6 | Copyright (c) 2017 - 2018, Intel Corporation. All rights reserved.
7 | This program and the accompanying materials are licensed and made available under 8 | the terms and conditions of the BSD License that accompanies this distribution. 9 | The full text of the license may be found at 10 | http://opensource.org/licenses/bsd-license.php. 11 | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 | 15 | @par Revision Reference: 16 | This PPI is introduced in PI Version 1.5. 17 | 18 | **/ 19 | 20 | #ifndef __SEC_HOB_DATA_PPI_H__ 21 | #define __SEC_HOB_DATA_PPI_H__ 22 | 23 | #include 24 | 25 | #define EFI_SEC_HOB_DATA_PPI_GUID \ 26 | { \ 27 | 0x3ebdaf20, 0x6667, 0x40d8, {0xb4, 0xee, 0xf5, 0x99, 0x9a, 0xc1, 0xb7, 0x1f } \ 28 | } 29 | 30 | typedef struct _EFI_SEC_HOB_DATA_PPI EFI_SEC_HOB_DATA_PPI; 31 | 32 | /** 33 | Return a pointer to a buffer containing zero or more HOBs that 34 | will be installed into the PEI HOB List. 35 | 36 | This function returns a pointer to a pointer to zero or more HOBs, 37 | terminated with a HOB of type EFI_HOB_TYPE_END_OF_HOB_LIST. 38 | Note: The HobList must not contain a EFI_HOB_HANDOFF_INFO_TABLE HOB (PHIT) HOB. 39 | 40 | @param[in] This Pointer to this PPI structure. 41 | @param[out] HobList A pointer to a returned pointer to zero or more HOBs. 42 | If no HOBs are to be returned, then the returned pointer 43 | is a pointer to a HOB of type EFI_HOB_TYPE_END_OF_HOB_LIST. 44 | 45 | @retval EFI_SUCCESS This function completed successfully. 46 | @retval EFI_NOT_FOUND No HOBS are available. 47 | 48 | **/ 49 | typedef 50 | EFI_STATUS 51 | (EFIAPI *EFI_SEC_HOB_DATA_GET) ( 52 | IN CONST EFI_SEC_HOB_DATA_PPI *This, 53 | OUT EFI_HOB_GENERIC_HEADER **HobList 54 | ); 55 | 56 | /// 57 | /// This PPI provides a way for the SEC code to pass zero or more HOBs in a HOB list. 58 | /// 59 | struct _EFI_SEC_HOB_DATA_PPI { 60 | EFI_SEC_HOB_DATA_GET GetHobs; 61 | }; 62 | 63 | extern EFI_GUID gEfiSecHobDataPpiGuid; 64 | 65 | #endif 66 | -------------------------------------------------------------------------------- /Include/Ppi/Stall.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This file declares Stall PPI. 3 | 4 | This ppi abstracts the blocking stall service to other agents. 5 | 6 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
7 | This program and the accompanying materials 8 | are licensed and made available under the terms and conditions of the BSD License 9 | which accompanies this distribution. The full text of the license may be found at 10 | http://opensource.org/licenses/bsd-license.php 11 | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 | 15 | @par Revision Reference: 16 | This PPI is introduced in PI Version 1.0. 17 | 18 | **/ 19 | 20 | #ifndef __STALL_PPI_H__ 21 | #define __STALL_PPI_H__ 22 | 23 | #define EFI_PEI_STALL_PPI_GUID \ 24 | { 0x1f4c6f90, 0xb06b, 0x48d8, {0xa2, 0x01, 0xba, 0xe5, 0xf1, 0xcd, 0x7d, 0x56 } } 25 | 26 | typedef struct _EFI_PEI_STALL_PPI EFI_PEI_STALL_PPI; 27 | 28 | /** 29 | The Stall() function provides a blocking stall for at least the number 30 | of microseconds stipulated in the final argument of the API. 31 | 32 | @param PeiServices An indirect pointer to the PEI Services Table 33 | published by the PEI Foundation. 34 | @param This Pointer to the local data for the interface. 35 | @param Microseconds Number of microseconds for which to stall. 36 | 37 | @retval EFI_SUCCESS The service provided at least the required delay. 38 | 39 | **/ 40 | typedef 41 | EFI_STATUS 42 | (EFIAPI *EFI_PEI_STALL)( 43 | IN CONST EFI_PEI_SERVICES **PeiServices, 44 | IN CONST EFI_PEI_STALL_PPI *This, 45 | IN UINTN Microseconds 46 | ); 47 | 48 | /// 49 | /// This service provides a simple, blocking stall with platform-specific resolution. 50 | /// 51 | struct _EFI_PEI_STALL_PPI { 52 | /// 53 | /// The resolution in microseconds of the stall services. 54 | /// 55 | UINTN Resolution; 56 | 57 | EFI_PEI_STALL Stall; 58 | }; 59 | 60 | extern EFI_GUID gEfiPeiStallPpiGuid; 61 | 62 | #endif 63 | -------------------------------------------------------------------------------- /Include/Ppi/StatusCode.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This file declares Status Code PPI. 3 | This ppi provides a service that allows PEIMs to report status codes. 4 | 5 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials 7 | are licensed and made available under the terms and conditions of the BSD License 8 | which accompanies this distribution. The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | 14 | @par Revision Reference: 15 | This PPI is introduced in PI Version 1.0. 16 | 17 | **/ 18 | 19 | #ifndef __STATUS_CODE_PPI_H__ 20 | #define __STATUS_CODE_PPI_H__ 21 | 22 | #define EFI_PEI_REPORT_PROGRESS_CODE_PPI_GUID \ 23 | { 0x229832d3, 0x7a30, 0x4b36, {0xb8, 0x27, 0xf4, 0xc, 0xb7, 0xd4, 0x54, 0x36 } } 24 | 25 | // 26 | // EFI_PEI_PROGRESS_CODE_PPI.ReportStatusCode() is equivalent to the 27 | // PEI Service ReportStatusCode(). 28 | // It is introduced in PIPeiCis.h. 29 | // 30 | 31 | /// 32 | /// This PPI provides the service to report status code. 33 | /// There can be only one instance of this service in the system. 34 | /// 35 | typedef struct { 36 | EFI_PEI_REPORT_STATUS_CODE ReportStatusCode; 37 | } EFI_PEI_PROGRESS_CODE_PPI; 38 | 39 | extern EFI_GUID gEfiPeiStatusCodePpiGuid; 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /Include/Ppi/TemporaryRamDone.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This file declares Temporary RAM Done PPI. 3 | The PPI that provides a service to disable the use of Temporary RAM. 4 | 5 | Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials 7 | are licensed and made available under the terms and conditions of the BSD License 8 | which accompanies this distribution. The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | 14 | @par Revision Reference: 15 | This PPI is introduced in PI Version 1.2.1. 16 | 17 | **/ 18 | 19 | #ifndef __TEMPORARY_RAM_DONE_H__ 20 | #define __TEMPORARY_RAM_DONE_H__ 21 | 22 | #define EFI_PEI_TEMPORARY_RAM_DONE_PPI_GUID \ 23 | { 0xceab683c, 0xec56, 0x4a2d, { 0xa9, 0x6, 0x40, 0x53, 0xfa, 0x4e, 0x9c, 0x16 } } 24 | 25 | /** 26 | TemporaryRamDone() disables the use of Temporary RAM. If present, this service is invoked 27 | by the PEI Foundation after the EFI_PEI_PERMANANT_MEMORY_INSTALLED_PPI is installed. 28 | 29 | @retval EFI_SUCCESS Use of Temporary RAM was disabled. 30 | @retval EFI_INVALID_PARAMETER Temporary RAM could not be disabled. 31 | 32 | **/ 33 | typedef 34 | EFI_STATUS 35 | (EFIAPI * EFI_PEI_TEMPORARY_RAM_DONE) ( 36 | VOID 37 | ); 38 | 39 | /// 40 | /// This is an optional PPI that may be produced by SEC or a PEIM. If present, it provide a service to 41 | /// disable the use of Temporary RAM. This service may only be called by the PEI Foundation after the 42 | /// transition from Temporary RAM to Permanent RAM is complete. This PPI provides an alternative 43 | /// to the Temporary RAM Migration PPI for system architectures that allow Temporary RAM and 44 | /// Permanent RAM to be enabled and accessed at the same time with no side effects. 45 | /// 46 | typedef struct _EFI_PEI_TEMPORARY_RAM_DONE_PPI { 47 | EFI_PEI_TEMPORARY_RAM_DONE TemporaryRamDone; 48 | } EFI_PEI_TEMPORARY_RAM_DONE_PPI; 49 | 50 | extern EFI_GUID gEfiTemporaryRamDonePpiGuid; 51 | 52 | #endif 53 | -------------------------------------------------------------------------------- /Include/Ppi/TemporaryRamSupport.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This file declares Temporary RAM Support PPI. 3 | This Ppi provides the service that migrates temporary RAM into permanent memory. 4 | 5 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials 7 | are licensed and made available under the terms and conditions of the BSD License 8 | which accompanies this distribution. The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | 14 | @par Revision Reference: 15 | This PPI is introduced in PI Version 1.0. 16 | 17 | **/ 18 | 19 | #ifndef __TEMPORARY_RAM_SUPPORT_H__ 20 | #define __TEMPORARY_RAM_SUPPORT_H__ 21 | 22 | /// 23 | /// Note: The GUID name EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI_GUID is different from the current 24 | /// PI 1.2 spec. 25 | /// 26 | #define EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI_GUID \ 27 | { 0xdbe23aa9, 0xa345, 0x4b97, {0x85, 0xb6, 0xb2, 0x26, 0xf1, 0x61, 0x73, 0x89} } 28 | 29 | 30 | /** 31 | This service of the EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI that migrates temporary RAM into 32 | permanent memory. 33 | 34 | @param PeiServices Pointer to the PEI Services Table. 35 | @param TemporaryMemoryBase Source Address in temporary memory from which the SEC or PEIM will copy the 36 | Temporary RAM contents. 37 | @param PermanentMemoryBase Destination Address in permanent memory into which the SEC or PEIM will copy the 38 | Temporary RAM contents. 39 | @param CopySize Amount of memory to migrate from temporary to permanent memory. 40 | 41 | @retval EFI_SUCCESS The data was successfully returned. 42 | @retval EFI_INVALID_PARAMETER PermanentMemoryBase + CopySize > TemporaryMemoryBase when 43 | TemporaryMemoryBase > PermanentMemoryBase. 44 | 45 | **/ 46 | typedef 47 | EFI_STATUS 48 | (EFIAPI * TEMPORARY_RAM_MIGRATION)( 49 | IN CONST EFI_PEI_SERVICES **PeiServices, 50 | IN EFI_PHYSICAL_ADDRESS TemporaryMemoryBase, 51 | IN EFI_PHYSICAL_ADDRESS PermanentMemoryBase, 52 | IN UINTN CopySize 53 | ); 54 | 55 | /// 56 | /// This service abstracts the ability to migrate contents of the platform early memory store. 57 | /// Note: The name EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI is different from the current PI 1.2 spec. 58 | /// This PPI was optional. 59 | /// 60 | typedef struct { 61 | TEMPORARY_RAM_MIGRATION TemporaryRamMigration; 62 | } EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI; 63 | 64 | extern EFI_GUID gEfiTemporaryRamSupportPpiGuid; 65 | 66 | #endif 67 | -------------------------------------------------------------------------------- /Include/Protocol/Capsule.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Capsule Architectural Protocol as defined in PI1.0a Specification VOLUME 2 DXE 3 | 4 | The DXE Driver that produces this protocol must be a runtime driver. 5 | The driver is responsible for initializing the CapsuleUpdate() and 6 | QueryCapsuleCapabilities() fields of the UEFI Runtime Services Table. 7 | After the two fields of the UEFI Runtime Services Table have been initialized, 8 | the driver must install the EFI_CAPSULE_ARCH_PROTOCOL_GUID on a new handle 9 | with a NULL interface pointer. The installation of this protocol informs 10 | the DXE Foundation that the Capsule related services are now available and 11 | that the DXE Foundation must update the 32-bit CRC of the UEFI Runtime Services Table. 12 | 13 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
14 | This program and the accompanying materials 15 | are licensed and made available under the terms and conditions of the BSD License 16 | which accompanies this distribution. The full text of the license may be found at 17 | http://opensource.org/licenses/bsd-license.php 18 | 19 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 20 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 21 | 22 | **/ 23 | 24 | #ifndef __ARCH_PROTOCOL_CAPSULE_ARCH_H__ 25 | #define __ARCH_PROTOCOL_CAPSULE_ARCH_H__ 26 | 27 | // 28 | // Global ID for the Capsule Architectural Protocol 29 | // 30 | #define EFI_CAPSULE_ARCH_PROTOCOL_GUID \ 31 | { 0x5053697e, 0x2cbc, 0x4819, {0x90, 0xd9, 0x05, 0x80, 0xde, 0xee, 0x57, 0x54 }} 32 | 33 | extern EFI_GUID gEfiCapsuleArchProtocolGuid; 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /Include/Protocol/DevicePathFromText.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL as defined in UEFI 2.0. 3 | This protocol provides service to convert text to device paths and device nodes. 4 | 5 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials 7 | are licensed and made available under the terms and conditions of the BSD License 8 | which accompanies this distribution. The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | 14 | **/ 15 | 16 | #ifndef __DEVICE_PATH_FROM_TEXT_PROTOCOL_H__ 17 | #define __DEVICE_PATH_FROM_TEXT_PROTOCOL_H__ 18 | 19 | /// 20 | /// Device Path From Text protocol 21 | /// 22 | #define EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL_GUID \ 23 | { \ 24 | 0x5c99a21, 0xc70f, 0x4ad2, {0x8a, 0x5f, 0x35, 0xdf, 0x33, 0x43, 0xf5, 0x1e } \ 25 | } 26 | 27 | /** 28 | Convert text to the binary representation of a device node. 29 | 30 | @param TextDeviceNode TextDeviceNode points to the text representation of a device 31 | node. Conversion starts with the first character and continues 32 | until the first non-device node character. 33 | 34 | @retval a_pointer Pointer to the EFI device node. 35 | @retval NULL if TextDeviceNode is NULL or there was insufficient memory. 36 | 37 | **/ 38 | typedef 39 | EFI_DEVICE_PATH_PROTOCOL* 40 | (EFIAPI *EFI_DEVICE_PATH_FROM_TEXT_NODE)( 41 | IN CONST CHAR16 *TextDeviceNode 42 | ); 43 | 44 | 45 | /** 46 | Convert text to the binary representation of a device node. 47 | 48 | @param TextDeviceNode TextDevicePath points to the text representation of a device 49 | path. Conversion starts with the first character and continues 50 | until the first non-device path character. 51 | 52 | @retval a_pointer Pointer to the allocated device path. 53 | @retval NULL if TextDeviceNode is NULL or there was insufficient memory. 54 | 55 | **/ 56 | typedef 57 | EFI_DEVICE_PATH_PROTOCOL* 58 | (EFIAPI *EFI_DEVICE_PATH_FROM_TEXT_PATH)( 59 | IN CONST CHAR16 *TextDevicePath 60 | ); 61 | 62 | /// 63 | /// This protocol converts text to device paths and device nodes. 64 | /// 65 | typedef struct { 66 | EFI_DEVICE_PATH_FROM_TEXT_NODE ConvertTextToDeviceNode; 67 | EFI_DEVICE_PATH_FROM_TEXT_PATH ConvertTextToDevicePath; 68 | } EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL; 69 | 70 | extern EFI_GUID gEfiDevicePathFromTextProtocolGuid; 71 | 72 | #endif 73 | -------------------------------------------------------------------------------- /Include/Protocol/DriverSupportedEfiVersion.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | The protocol provides information about the version of the EFI 3 | specification that a driver is following. This protocol is 4 | required for EFI drivers that are on PCI and other plug-in 5 | cards. 6 | 7 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
8 | This program and the accompanying materials 9 | are licensed and made available under the terms and conditions of the BSD License 10 | which accompanies this distribution. The full text of the license may be found at 11 | http://opensource.org/licenses/bsd-license.php 12 | 13 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 14 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 15 | 16 | **/ 17 | 18 | #ifndef __DRIVER_SUPPORTED_EFI_VERSION_H__ 19 | #define __DRIVER_SUPPORTED_EFI_VERSION_H__ 20 | 21 | #define EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL_GUID \ 22 | { 0x5c198761, 0x16a8, 0x4e69, { 0x97, 0x2c, 0x89, 0xd6, 0x79, 0x54, 0xf8, 0x1d } } 23 | 24 | 25 | /// 26 | /// The EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL provides a 27 | /// mechanism for an EFI driver to publish the version of the EFI 28 | /// specification it conforms to. This protocol must be placed on 29 | /// the driver's image handle when the driver's entry point is 30 | /// called. 31 | /// 32 | typedef struct _EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL { 33 | /// 34 | /// The size, in bytes, of the entire structure. Future versions of this 35 | /// specification may grow the size of the structure. 36 | /// 37 | UINT32 Length; 38 | /// 39 | /// The latest version of the UEFI specification that this driver conforms to. 40 | /// 41 | UINT32 FirmwareVersion; 42 | } EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL; 43 | 44 | extern EFI_GUID gEfiDriverSupportedEfiVersionProtocolGuid; 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /Include/Protocol/DxeMmReadyToLock.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | DXE MM Ready To Lock protocol introduced in the PI 1.5 specification. 3 | 4 | Copyright (c) 2017, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | **/ 14 | 15 | #ifndef _DXE_MM_READY_TO_LOCK_H_ 16 | #define _DXE_MM_READY_TO_LOCK_H_ 17 | 18 | #define EFI_DXE_MM_READY_TO_LOCK_PROTOCOL_GUID \ 19 | { \ 20 | 0x60ff8964, 0xe906, 0x41d0, { 0xaf, 0xed, 0xf2, 0x41, 0xe9, 0x74, 0xe0, 0x8e } \ 21 | } 22 | 23 | extern EFI_GUID gEfiDxeMmReadyToLockProtocolGuid; 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /Include/Protocol/DxeSmmReadyToLock.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | DXE SMM Ready To Lock protocol introduced in the PI 1.2 specification. 3 | 4 | According to PI 1.4a specification, this UEFI protocol indicates that 5 | resources and services that should not be used by the third party code 6 | are about to be locked. 7 | This protocol is a mandatory protocol published by PI platform code. 8 | This protocol in tandem with the End of DXE Event facilitates transition 9 | of the platform from the environment where all of the components are 10 | under the authority of the platform manufacturer to the environment where 11 | third party extensible modules such as UEFI drivers and UEFI applications 12 | are executed. The protocol is published immediately after signaling of the 13 | End of DXE Event. PI modules that need to lock or protect their resources 14 | in anticipation of the invocation of 3rd party extensible modules should 15 | register for notification on installation of this protocol and effect the 16 | appropriate protections in their notification handlers. For example, PI 17 | platform code may choose to use notification handler to lock SMM by invoking 18 | EFI_SMM_ACCESS2_PROTOCOL.Lock() function. 19 | 20 | Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.
21 | This program and the accompanying materials 22 | are licensed and made available under the terms and conditions of the BSD License 23 | which accompanies this distribution. The full text of the license may be found at 24 | http://opensource.org/licenses/bsd-license.php 25 | 26 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 27 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 28 | 29 | **/ 30 | 31 | #ifndef _DXE_SMM_READY_TO_LOCK_H_ 32 | #define _DXE_SMM_READY_TO_LOCK_H_ 33 | 34 | #include 35 | 36 | #define EFI_DXE_SMM_READY_TO_LOCK_PROTOCOL_GUID EFI_DXE_MM_READY_TO_LOCK_PROTOCOL_GUID 37 | 38 | extern EFI_GUID gEfiDxeSmmReadyToLockProtocolGuid; 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /Include/Protocol/EdidActive.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | EDID Active Protocol from the UEFI 2.0 specification. 3 | 4 | Placed on the video output device child handle that is actively displaying output. 5 | 6 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
7 | This program and the accompanying materials 8 | are licensed and made available under the terms and conditions of the BSD License 9 | which accompanies this distribution. The full text of the license may be found at 10 | http://opensource.org/licenses/bsd-license.php 11 | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 | 15 | **/ 16 | 17 | #ifndef __EDID_ACTIVE_H__ 18 | #define __EDID_ACTIVE_H__ 19 | 20 | #define EFI_EDID_ACTIVE_PROTOCOL_GUID \ 21 | { \ 22 | 0xbd8c1056, 0x9f36, 0x44ec, {0x92, 0xa8, 0xa6, 0x33, 0x7f, 0x81, 0x79, 0x86 } \ 23 | } 24 | 25 | /// 26 | /// This protocol contains the EDID information for an active video output device. This is either the 27 | /// EDID information retrieved from the EFI_EDID_OVERRIDE_PROTOCOL if an override is 28 | /// available, or an identical copy of the EDID information from the 29 | /// EFI_EDID_DISCOVERED_PROTOCOL if no overrides are available. 30 | /// 31 | typedef struct { 32 | /// 33 | /// The size, in bytes, of the Edid buffer. 0 if no EDID information 34 | /// is available from the video output device. Otherwise, it must be a 35 | /// minimum of 128 bytes. 36 | /// 37 | UINT32 SizeOfEdid; 38 | 39 | /// 40 | /// A pointer to a read-only array of bytes that contains the EDID 41 | /// information for an active video output device. This pointer is 42 | /// NULL if no EDID information is available for the video output 43 | /// device. The minimum size of a valid Edid buffer is 128 bytes. 44 | /// EDID information is defined in the E-EDID EEPROM 45 | /// specification published by VESA (www.vesa.org). 46 | /// 47 | UINT8 *Edid; 48 | } EFI_EDID_ACTIVE_PROTOCOL; 49 | 50 | extern EFI_GUID gEfiEdidActiveProtocolGuid; 51 | 52 | #endif 53 | -------------------------------------------------------------------------------- /Include/Protocol/EdidDiscovered.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | EDID Discovered Protocol from the UEFI 2.0 specification. 3 | 4 | This protocol is placed on the video output device child handle. It represents 5 | the EDID information being used for the output device represented by the child handle. 6 | 7 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
8 | This program and the accompanying materials 9 | are licensed and made available under the terms and conditions of the BSD License 10 | which accompanies this distribution. The full text of the license may be found at 11 | http://opensource.org/licenses/bsd-license.php 12 | 13 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 14 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 15 | 16 | **/ 17 | 18 | #ifndef __EDID_DISCOVERED_H__ 19 | #define __EDID_DISCOVERED_H__ 20 | 21 | #define EFI_EDID_DISCOVERED_PROTOCOL_GUID \ 22 | { \ 23 | 0x1c0c34f6, 0xd380, 0x41fa, {0xa0, 0x49, 0x8a, 0xd0, 0x6c, 0x1a, 0x66, 0xaa } \ 24 | } 25 | 26 | /// 27 | /// This protocol contains the EDID information retrieved from a video output device. 28 | /// 29 | typedef struct { 30 | /// 31 | /// The size, in bytes, of the Edid buffer. 0 if no EDID information 32 | /// is available from the video output device. Otherwise, it must be a 33 | /// minimum of 128 bytes. 34 | /// 35 | UINT32 SizeOfEdid; 36 | 37 | /// 38 | /// A pointer to a read-only array of bytes that contains the EDID 39 | /// information for an active video output device. This pointer is 40 | /// NULL if no EDID information is available for the video output 41 | /// device. The minimum size of a valid Edid buffer is 128 bytes. 42 | /// EDID information is defined in the E-EDID EEPROM 43 | /// specification published by VESA (www.vesa.org). 44 | /// 45 | UINT8 *Edid; 46 | } EFI_EDID_DISCOVERED_PROTOCOL; 47 | 48 | extern EFI_GUID gEfiEdidDiscoveredProtocolGuid; 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /Include/Protocol/HiiPackageList.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | EFI_HII_PACKAGE_LIST_PROTOCOL as defined in UEFI 2.1. 3 | Boot service LoadImage() installs EFI_HII_PACKAGE_LIST_PROTOCOL on the handle 4 | if the image contains a custom PE/COFF resource with the type 'HII'. 5 | The protocol's interface pointer points to the HII package list, which is 6 | contained in the resource's data. 7 | 8 | Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
9 | This program and the accompanying materials 10 | are licensed and made available under the terms and conditions of the BSD License 11 | which accompanies this distribution. The full text of the license may be found at 12 | http://opensource.org/licenses/bsd-license.php 13 | 14 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 15 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 16 | 17 | **/ 18 | 19 | #ifndef __HII_PACKAGE_LIST_H__ 20 | #define __HII_PACKAGE_LIST_H__ 21 | 22 | #define EFI_HII_PACKAGE_LIST_PROTOCOL_GUID \ 23 | { 0x6a1ee763, 0xd47a, 0x43b4, {0xaa, 0xbe, 0xef, 0x1d, 0xe2, 0xab, 0x56, 0xfc}} 24 | 25 | typedef EFI_HII_PACKAGE_LIST_HEADER * EFI_HII_PACKAGE_LIST_PROTOCOL; 26 | 27 | extern EFI_GUID gEfiHiiPackageListProtocolGuid; 28 | 29 | 30 | 31 | #endif 32 | 33 | 34 | -------------------------------------------------------------------------------- /Include/Protocol/LegacySpiSmmController.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This file defines the Legacy SPI SMM Controler Protocol. 3 | 4 | Copyright (c) 2017, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD 7 | License which accompanies this distribution. The full text of the license may 8 | be found at http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | @par Revision Reference: 14 | This Protocol was introduced in UEFI PI Specification 1.6. 15 | 16 | **/ 17 | 18 | #ifndef __LEGACY_SPI_SMM_CONTROLLER_PROTOCOL_H__ 19 | #define __LEGACY_SPI_SMM_CONTROLLER_PROTOCOL_H__ 20 | 21 | #include 22 | 23 | /// 24 | /// Global ID for the Legacy SPI SMM Controller Protocol 25 | /// 26 | #define EFI_LEGACY_SPI_SMM_CONTROLLER_PROTOCOL_GUID \ 27 | { 0x62331b78, 0xd8d0, 0x4c8c, \ 28 | { 0x8c, 0xcb, 0xd2, 0x7d, 0xfe, 0x32, 0xdb, 0x9b }} 29 | 30 | typedef 31 | struct _EFI_LEGACY_SPI_CONTROLLER_PROTOCOL 32 | EFI_LEGACY_SPI_SMM_CONTROLLER_PROTOCOL; 33 | 34 | extern EFI_GUID gEfiLegacySpiSmmControllerProtocolGuid; 35 | 36 | #endif // __LEGACY_SPI_SMM_CONTROLLER_PROTOCOL_H__ 37 | -------------------------------------------------------------------------------- /Include/Protocol/LegacySpiSmmFlash.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This file defines the Legacy SPI SMM Flash Protocol. 3 | 4 | Copyright (c) 2017, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD 7 | License which accompanies this distribution. The full text of the license may 8 | be found at http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | @par Revision Reference: 14 | This Protocol was introduced in UEFI PI Specification 1.6. 15 | 16 | **/ 17 | 18 | #ifndef __LEGACY_SPI_SMM_FLASH_PROTOCOL_H__ 19 | #define __LEGACY_SPI_SMM_FLASH_PROTOCOL_H__ 20 | 21 | #include 22 | 23 | /// 24 | /// Global ID for the Legacy SPI SMM Flash Protocol 25 | /// 26 | #define EFI_LEGACY_SPI_SMM_FLASH_PROTOCOL_GUID \ 27 | { 0x5e3848d4, 0x0db5, 0x4fc0, \ 28 | { 0x97, 0x29, 0x3f, 0x35, 0x3d, 0x4f, 0x87, 0x9f }} 29 | 30 | typedef 31 | struct _EFI_LEGACY_SPI_FLASH_PROTOCOL 32 | EFI_LEGACY_SPI_SMM_FLASH_PROTOCOL; 33 | 34 | extern EFI_GUID gEfiLegacySpiSmmFlashProtocolGuid; 35 | 36 | #endif // __SPI_SMM_FLASH_PROTOCOL_H__ 37 | -------------------------------------------------------------------------------- /Include/Protocol/MmEndOfDxe.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | MM End Of Dxe protocol introduced in the PI 1.5 specification. 3 | 4 | This protocol is a mandatory protocol published by MM Foundation code. 5 | This protocol is an MM counterpart of the End of DXE Event. 6 | This protocol prorogates End of DXE notification into MM environment. 7 | This protocol is installed prior to installation of the MM Ready to Lock Protocol. 8 | 9 | Copyright (c) 2017, Intel Corporation. All rights reserved.
10 | This program and the accompanying materials 11 | are licensed and made available under the terms and conditions of the BSD License 12 | which accompanies this distribution. The full text of the license may be found at 13 | http://opensource.org/licenses/bsd-license.php 14 | 15 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 16 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 17 | 18 | **/ 19 | 20 | #ifndef _MM_END_OF_DXE_H_ 21 | #define _MM_END_OF_DXE_H_ 22 | 23 | #define EFI_MM_END_OF_DXE_PROTOCOL_GUID \ 24 | { \ 25 | 0x24e70042, 0xd5c5, 0x4260, { 0x8c, 0x39, 0xa, 0xd3, 0xaa, 0x32, 0xe9, 0x3d } \ 26 | } 27 | 28 | extern EFI_GUID gEfiMmEndOfDxeProtocolGuid; 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /Include/Protocol/MmPciRootBridgeIo.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | MM PCI Root Bridge IO protocol as defined in the PI 1.5 specification. 3 | 4 | This protocol provides PCI I/O and memory access within MM. 5 | 6 | Copyright (c) 2017, Intel Corporation. All rights reserved.
7 | This program and the accompanying materials 8 | are licensed and made available under the terms and conditions of the BSD License 9 | which accompanies this distribution. The full text of the license may be found at 10 | http://opensource.org/licenses/bsd-license.php 11 | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 | 15 | **/ 16 | 17 | #ifndef _MM_PCI_ROOT_BRIDGE_IO_H_ 18 | #define _MM_PCI_ROOT_BRIDGE_IO_H_ 19 | 20 | #include 21 | 22 | #define EFI_MM_PCI_ROOT_BRIDGE_IO_PROTOCOL_GUID \ 23 | { \ 24 | 0x8bc1714d, 0xffcb, 0x41c3, { 0x89, 0xdc, 0x6c, 0x74, 0xd0, 0x6d, 0x98, 0xea } \ 25 | } 26 | 27 | /// 28 | /// This protocol provides the same functionality as the PCI Root Bridge I/O Protocol defined in the 29 | /// UEFI 2.1 Specifcation, section 13.2, except that the functions for Map() and Unmap() may return 30 | /// EFI_UNSUPPORTED. 31 | /// 32 | typedef EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL EFI_MM_PCI_ROOT_BRIDGE_IO_PROTOCOL; 33 | 34 | extern EFI_GUID gEfiMmPciRootBridgeIoProtocolGuid; 35 | 36 | #endif 37 | 38 | -------------------------------------------------------------------------------- /Include/Protocol/MmReadyToLock.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | MM Ready To Lock protocol introduced in the PI 1.5 specification. 3 | 4 | This protocol is a mandatory protocol published by the MM Foundation 5 | code when the system is preparing to lock certain resources and interfaces 6 | in anticipation of the invocation of 3rd party extensible modules. 7 | This protocol is an MM counterpart of the DXE MM Ready to Lock Protocol. 8 | This protocol prorogates resource locking notification into MM environment. 9 | This protocol is installed after installation of the MM End of DXE Protocol. 10 | 11 | Copyright (c) 2017, Intel Corporation. All rights reserved.
12 | This program and the accompanying materials 13 | are licensed and made available under the terms and conditions of the BSD License 14 | which accompanies this distribution. The full text of the license may be found at 15 | http://opensource.org/licenses/bsd-license.php 16 | 17 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 18 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 19 | 20 | **/ 21 | 22 | #ifndef _MM_READY_TO_LOCK_H_ 23 | #define _MM_READY_TO_LOCK_H_ 24 | 25 | #define EFI_MM_READY_TO_LOCK_PROTOCOL_GUID \ 26 | { \ 27 | 0x47b7fa8c, 0xf4bd, 0x4af6, { 0x82, 0x00, 0x33, 0x30, 0x86, 0xf0, 0xd2, 0xc8 } \ 28 | } 29 | 30 | extern EFI_GUID gEfiMmReadyToLockProtocolGuid; 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /Include/Protocol/MonotonicCounter.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Monotonic Counter Architectural Protocol as defined in PI SPEC VOLUME 2 DXE 3 | 4 | This code provides the services required to access the system's monotonic counter 5 | 6 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
7 | This program and the accompanying materials are licensed and made available under 8 | the terms and conditions of the BSD License that accompanies this distribution. 9 | The full text of the license may be found at 10 | http://opensource.org/licenses/bsd-license.php. 11 | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 | 15 | **/ 16 | 17 | #ifndef __ARCH_PROTOCOL_MONTONIC_COUNTER_H__ 18 | #define __ARCH_PROTOCOL_MONTONIC_COUNTER_H__ 19 | 20 | /// 21 | /// Global ID for the Monotonic Counter Architectural Protocol. 22 | /// 23 | #define EFI_MONOTONIC_COUNTER_ARCH_PROTOCOL_GUID \ 24 | {0x1da97072, 0xbddc, 0x4b30, {0x99, 0xf1, 0x72, 0xa0, 0xb5, 0x6f, 0xff, 0x2a} } 25 | 26 | extern EFI_GUID gEfiMonotonicCounterArchProtocolGuid; 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /Include/Protocol/PartitionInfo.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This file defines the EFI Partition Information Protocol. 3 | 4 | Copyright (c) 2017, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | @par Revision Reference: 14 | This Protocol is introduced in UEFI Specification 2.7 15 | 16 | **/ 17 | 18 | #ifndef __PARTITION_INFO_PROTOCOL_H__ 19 | #define __PARTITION_INFO_PROTOCOL_H__ 20 | 21 | #include 22 | #include 23 | 24 | // 25 | // EFI Partition Information Protocol GUID value 26 | // 27 | #define EFI_PARTITION_INFO_PROTOCOL_GUID \ 28 | { 0x8cf2f62c, 0xbc9b, 0x4821, { 0x80, 0x8d, 0xec, 0x9e, 0xc4, 0x21, 0xa1, 0xa0 }}; 29 | 30 | 31 | #define EFI_PARTITION_INFO_PROTOCOL_REVISION 0x0001000 32 | #define PARTITION_TYPE_OTHER 0x00 33 | #define PARTITION_TYPE_MBR 0x01 34 | #define PARTITION_TYPE_GPT 0x02 35 | 36 | #pragma pack(1) 37 | 38 | /// 39 | /// Partition Information Protocol structure. 40 | /// 41 | typedef struct { 42 | // 43 | // Set to EFI_PARTITION_INFO_PROTOCOL_REVISION. 44 | // 45 | UINT32 Revision; 46 | // 47 | // Partition info type (PARTITION_TYPE_MBR, PARTITION_TYPE_GPT, or PARTITION_TYPE_OTHER). 48 | // 49 | UINT32 Type; 50 | // 51 | // If 1, partition describes an EFI System Partition. 52 | // 53 | UINT8 System; 54 | UINT8 Reserved[7]; 55 | union { 56 | /// 57 | /// MBR data 58 | /// 59 | MBR_PARTITION_RECORD Mbr; 60 | /// 61 | /// GPT data 62 | /// 63 | EFI_PARTITION_ENTRY Gpt; 64 | } Info; 65 | } EFI_PARTITION_INFO_PROTOCOL; 66 | 67 | #pragma pack() 68 | 69 | /// 70 | /// Partition Information Protocol GUID variable. 71 | /// 72 | extern EFI_GUID gEfiPartitionInfoProtocolGuid; 73 | 74 | #endif 75 | -------------------------------------------------------------------------------- /Include/Protocol/PciEnumerationComplete.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | PCI Enumeration Complete Protocol as defined in the PI 1.1 specification. 3 | This protocol indicates that pci enumeration complete 4 | 5 | Copyright (c) 2009, Intel Corporation. All rights reserved.
6 | This program and the accompanying materials 7 | are licensed and made available under the terms and conditions of the BSD License 8 | which accompanies this distribution. The full text of the license may be found at 9 | http://opensource.org/licenses/bsd-license.php 10 | 11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 | 14 | @par Revision Reference: 15 | This Protocol is defined in UEFI Platform Initialization Specification 1.2 16 | Volume 5: Standards 17 | 18 | **/ 19 | 20 | #ifndef _PCI_ENUMERATION_COMPLETE_H_ 21 | #define _PCI_ENUMERATION_COMPLETE_H_ 22 | 23 | #define EFI_PCI_ENUMERATION_COMPLETE_GUID \ 24 | { \ 25 | 0x30cfe3e7, 0x3de1, 0x4586, { 0xbe, 0x20, 0xde, 0xab, 0xa1, 0xb3, 0xb7, 0x93 } \ 26 | } 27 | 28 | extern EFI_GUID gEfiPciEnumerationCompleteProtocolGuid; 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /Include/Protocol/PciOverride.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This file declares EFI PCI Override protocol which provides the interface between 3 | the PCI bus driver/PCI Host Bridge Resource Allocation driver and an implementation's 4 | driver to describe the unique features of a platform. 5 | This protocol is optional. 6 | 7 | Copyright (c) 2009, Intel Corporation. All rights reserved.
8 | This program and the accompanying materials 9 | are licensed and made available under the terms and conditions of the BSD License 10 | which accompanies this distribution. The full text of the license may be found at 11 | http://opensource.org/licenses/bsd-license.php 12 | 13 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 14 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 15 | 16 | @par Revision Reference: 17 | This Protocol is defined in UEFI Platform Initialization Specification 1.2 18 | Volume 5: Standards 19 | 20 | **/ 21 | 22 | #ifndef _PCI_OVERRIDE_H_ 23 | #define _PCI_OVERRIDE_H_ 24 | 25 | /// 26 | /// EFI_PCI_OVERRIDE_PROTOCOL has the same structure with EFI_PCI_PLATFORM_PROTOCOL 27 | /// 28 | #include 29 | 30 | /// 31 | /// Global ID for the EFI_PCI_OVERRIDE_PROTOCOL 32 | /// 33 | #define EFI_PCI_OVERRIDE_GUID \ 34 | { \ 35 | 0xb5b35764, 0x460c, 0x4a06, {0x99, 0xfc, 0x77, 0xa1, 0x7c, 0x1b, 0x5c, 0xeb} \ 36 | } 37 | 38 | /// 39 | /// Declaration for EFI_PCI_OVERRIDE_PROTOCOL 40 | /// 41 | typedef EFI_PCI_PLATFORM_PROTOCOL EFI_PCI_OVERRIDE_PROTOCOL; 42 | 43 | 44 | extern EFI_GUID gEfiPciOverrideProtocolGuid; 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /Include/Protocol/RealTimeClock.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Real Time clock Architectural Protocol as defined in PI Specification VOLUME 2 DXE 3 | 4 | This code abstracts time and data functions. Used to provide 5 | Time and date related EFI runtime services. 6 | 7 | The GetTime (), SetTime (), GetWakeupTime (), and SetWakeupTime () UEFI 2.0 8 | services are added to the EFI system table and the 9 | EFI_REAL_TIME_CLOCK_ARCH_PROTOCOL_GUID protocol is registered with a NULL 10 | pointer. 11 | 12 | No CRC of the EFI system table is required, since that is done in the DXE core. 13 | 14 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
15 | This program and the accompanying materials 16 | are licensed and made available under the terms and conditions of the BSD License 17 | which accompanies this distribution. The full text of the license may be found at 18 | http://opensource.org/licenses/bsd-license.php 19 | 20 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 21 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 22 | 23 | **/ 24 | 25 | #ifndef __ARCH_PROTOCOL_REAL_TIME_CLOCK_H__ 26 | #define __ARCH_PROTOCOL_REAL_TIME_CLOCK_H__ 27 | 28 | /// 29 | /// Global ID for the Real Time Clock Architectural Protocol 30 | /// 31 | #define EFI_REAL_TIME_CLOCK_ARCH_PROTOCOL_GUID \ 32 | { 0x27CFAC87, 0x46CC, 0x11d4, {0x9A, 0x38, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D } } 33 | 34 | extern EFI_GUID gEfiRealTimeClockArchProtocolGuid; 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /Include/Protocol/Reset.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Reset Architectural Protocol as defined in PI Specification VOLUME 2 DXE 3 | 4 | Used to provide ResetSystem runtime services 5 | 6 | The ResetSystem () UEFI 2.0 service is added to the EFI system table and the 7 | EFI_RESET_ARCH_PROTOCOL_GUID protocol is registered with a NULL pointer. 8 | 9 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
10 | This program and the accompanying materials 11 | are licensed and made available under the terms and conditions of the BSD License 12 | which accompanies this distribution. The full text of the license may be found at 13 | http://opensource.org/licenses/bsd-license.php 14 | 15 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 16 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 17 | 18 | **/ 19 | 20 | #ifndef __ARCH_PROTOCOL_RESET_H__ 21 | #define __ARCH_PROTOCOL_RESET_H__ 22 | 23 | /// 24 | /// Global ID for the Reset Architectural Protocol 25 | /// 26 | #define EFI_RESET_ARCH_PROTOCOL_GUID \ 27 | { 0x27CFAC88, 0x46CC, 0x11d4, {0x9A, 0x38, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D } } 28 | 29 | extern EFI_GUID gEfiResetArchProtocolGuid; 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /Include/Protocol/S3SmmSaveState.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | S3 SMM Save State Protocol as defined in PI1.2 Specification VOLUME 5 Standard. 3 | 4 | The EFI_S3_SMM_SAVE_STATE_PROTOCOL publishes the PI SMMboot script abstractions 5 | On an S3 resume boot path the data stored via this protocol is replayed in the order it was stored. 6 | The order of replay is the order either of the S3 Save State Protocol or S3 SMM Save State Protocol 7 | Write() functions were called during the boot process. Insert(), Label(), and 8 | Compare() operations are ordered relative other S3 SMM Save State Protocol write() operations 9 | and the order relative to S3 State Save Write() operations is not defined. Due to these ordering 10 | restrictions it is recommended that the S3 State Save Protocol be used during the DXE phase when 11 | every possible. 12 | The EFI_S3_SMM_SAVE_STATE_PROTOCOL can be called at runtime and 13 | EFI_OUT_OF_RESOURCES may be returned from a runtime call. It is the responsibility of the 14 | platform to ensure enough memory resource exists to save the system state. It is recommended that 15 | runtime calls be minimized by the caller. 16 | 17 | Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
18 | This program and the accompanying materials 19 | are licensed and made available under the terms and conditions of the BSD License 20 | which accompanies this distribution. The full text of the license may be found at 21 | http://opensource.org/licenses/bsd-license.php 22 | 23 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 24 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 25 | 26 | @par Revision Reference: 27 | This PPI is defined in UEFI Platform Initialization Specification 1.2 Volume 5: 28 | Standards 29 | 30 | **/ 31 | 32 | #ifndef __S3_SMM_SAVE_STATE_H__ 33 | #define __S3_SMM_SAVE_STATE_H__ 34 | 35 | #include 36 | 37 | #define EFI_S3_SMM_SAVE_STATE_PROTOCOL_GUID \ 38 | {0x320afe62, 0xe593, 0x49cb, { 0xa9, 0xf1, 0xd4, 0xc2, 0xf4, 0xaf, 0x1, 0x4c }} 39 | 40 | 41 | typedef EFI_S3_SAVE_STATE_PROTOCOL EFI_S3_SMM_SAVE_STATE_PROTOCOL; 42 | 43 | extern EFI_GUID gEfiS3SmmSaveStateProtocolGuid; 44 | 45 | #endif // __S3_SMM_SAVE_STATE_H__ 46 | 47 | -------------------------------------------------------------------------------- /Include/Protocol/SecurityPolicy.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Security Policy protocol as defined in PI Specification VOLUME 2 DXE 3 | 4 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | **/ 14 | 15 | #ifndef _SECURITY_POLICY_H_ 16 | #define _SECURITY_POLICY_H_ 17 | 18 | /// 19 | /// Security policy protocol GUID definition 20 | /// 21 | #define EFI_SECURITY_POLICY_PROTOCOL_GUID \ 22 | {0x78E4D245, 0xCD4D, 0x4a05, {0xA2, 0xBA, 0x47, 0x43, 0xE8, 0x6C, 0xFC, 0xAB} } 23 | 24 | extern EFI_GUID gEfiSecurityPolicyProtocolGuid; 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /Include/Protocol/ShellParameters.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | EFI Shell protocol as defined in the UEFI Shell 2.0 specification. 3 | 4 | Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | **/ 14 | 15 | #ifndef __EFI_SHELL_PARAMETERS_PROTOCOL_H__ 16 | #define __EFI_SHELL_PARAMETERS_PROTOCOL_H__ 17 | 18 | #include 19 | 20 | #define EFI_SHELL_PARAMETERS_PROTOCOL_GUID \ 21 | { \ 22 | 0x752f3136, 0x4e16, 0x4fdc, { 0xa2, 0x2a, 0xe5, 0xf4, 0x68, 0x12, 0xf4, 0xca } \ 23 | } 24 | 25 | typedef struct _EFI_SHELL_PARAMETERS_PROTOCOL { 26 | /// 27 | /// Points to an Argc-element array of points to NULL-terminated strings containing 28 | /// the command-line parameters. The first entry in the array is always the full file 29 | /// path of the executable. Any quotation marks that were used to preserve 30 | /// whitespace have been removed. 31 | /// 32 | CHAR16 **Argv; 33 | 34 | /// 35 | /// The number of elements in the Argv array. 36 | /// 37 | UINTN Argc; 38 | 39 | /// 40 | /// The file handle for the standard input for this executable. This may be different 41 | /// from the ConInHandle in EFI_SYSTEM_TABLE. 42 | /// 43 | SHELL_FILE_HANDLE StdIn; 44 | 45 | /// 46 | /// The file handle for the standard output for this executable. This may be different 47 | /// from the ConOutHandle in EFI_SYSTEM_TABLE. 48 | /// 49 | SHELL_FILE_HANDLE StdOut; 50 | 51 | /// 52 | /// The file handle for the standard error output for this executable. This may be 53 | /// different from the StdErrHandle in EFI_SYSTEM_TABLE. 54 | /// 55 | SHELL_FILE_HANDLE StdErr; 56 | } EFI_SHELL_PARAMETERS_PROTOCOL; 57 | 58 | extern EFI_GUID gEfiShellParametersProtocolGuid; 59 | 60 | #endif 61 | -------------------------------------------------------------------------------- /Include/Protocol/SmmAccess2.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | EFI SMM Access2 Protocol as defined in the PI 1.2 specification. 3 | 4 | This protocol is used to control the visibility of the SMRAM on the platform. 5 | It abstracts the location and characteristics of SMRAM. The expectation is 6 | that the north bridge or memory controller would publish this protocol. 7 | 8 | The principal functionality found in the memory controller includes the following: 9 | - Exposing the SMRAM to all non-SMM agents, or the "open" state 10 | - Shrouding the SMRAM to all but the SMM agents, or the "closed" state 11 | - Preserving the system integrity, or "locking" the SMRAM, such that the settings cannot be 12 | perturbed by either boot service or runtime agents 13 | 14 | Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
15 | This program and the accompanying materials 16 | are licensed and made available under the terms and conditions of the BSD License 17 | which accompanies this distribution. The full text of the license may be found at 18 | http://opensource.org/licenses/bsd-license.php 19 | 20 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 21 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 22 | 23 | **/ 24 | 25 | #ifndef _SMM_ACCESS2_H_ 26 | #define _SMM_ACCESS2_H_ 27 | 28 | #include 29 | 30 | #define EFI_SMM_ACCESS2_PROTOCOL_GUID EFI_MM_ACCESS_PROTOCOL_GUID 31 | 32 | typedef EFI_MM_ACCESS_PROTOCOL EFI_SMM_ACCESS2_PROTOCOL; 33 | 34 | typedef EFI_MM_OPEN EFI_SMM_OPEN2; 35 | 36 | typedef EFI_MM_CLOSE EFI_SMM_CLOSE2; 37 | 38 | typedef EFI_MM_LOCK EFI_SMM_LOCK2; 39 | 40 | typedef EFI_MM_CAPABILITIES EFI_SMM_CAPABILITIES2; 41 | extern EFI_GUID gEfiSmmAccess2ProtocolGuid; 42 | 43 | #endif 44 | 45 | -------------------------------------------------------------------------------- /Include/Protocol/SmmCommunication.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | EFI SMM Communication Protocol as defined in the PI 1.2 specification. 3 | 4 | This protocol provides a means of communicating between drivers outside of SMM and SMI 5 | handlers inside of SMM. 6 | 7 | Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
8 | This program and the accompanying materials 9 | are licensed and made available under the terms and conditions of the BSD License 10 | which accompanies this distribution. The full text of the license may be found at 11 | http://opensource.org/licenses/bsd-license.php 12 | 13 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 14 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 15 | 16 | **/ 17 | 18 | #ifndef _SMM_COMMUNICATION_H_ 19 | #define _SMM_COMMUNICATION_H_ 20 | 21 | #include 22 | 23 | 24 | typedef EFI_MM_COMMUNICATE_HEADER EFI_SMM_COMMUNICATE_HEADER; 25 | 26 | #define EFI_SMM_COMMUNICATION_PROTOCOL_GUID EFI_MM_COMMUNICATION_PROTOCOL_GUID 27 | 28 | typedef EFI_MM_COMMUNICATION_PROTOCOL EFI_SMM_COMMUNICATION_PROTOCOL; 29 | 30 | extern EFI_GUID gEfiSmmCommunicationProtocolGuid; 31 | 32 | #endif 33 | 34 | -------------------------------------------------------------------------------- /Include/Protocol/SmmControl2.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | EFI SMM Control2 Protocol as defined in the PI 1.2 specification. 3 | 4 | This protocol is used initiate synchronous SMI activations. This protocol could be published by a 5 | processor driver to abstract the SMI IPI or a driver which abstracts the ASIC that is supporting the 6 | APM port. Because of the possibility of performing SMI IPI transactions, the ability to generate this 7 | event from a platform chipset agent is an optional capability for both IA-32 and x64-based systems. 8 | 9 | The EFI_SMM_CONTROL2_PROTOCOL is produced by a runtime driver. It provides an 10 | abstraction of the platform hardware that generates an SMI. There are often I/O ports that, when 11 | accessed, will generate the SMI. Also, the hardware optionally supports the periodic generation of 12 | these signals. 13 | 14 | Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
15 | This program and the accompanying materials 16 | are licensed and made available under the terms and conditions of the BSD License 17 | which accompanies this distribution. The full text of the license may be found at 18 | http://opensource.org/licenses/bsd-license.php 19 | 20 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 21 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 22 | 23 | **/ 24 | 25 | #ifndef _SMM_CONTROL2_H_ 26 | #define _SMM_CONTROL2_H_ 27 | 28 | #include 29 | 30 | #define EFI_SMM_CONTROL2_PROTOCOL_GUID EFI_MM_CONTROL_PROTOCOL_GUID 31 | 32 | typedef EFI_MM_CONTROL_PROTOCOL EFI_SMM_CONTROL2_PROTOCOL; 33 | typedef EFI_MM_PERIOD EFI_SMM_PERIOD; 34 | 35 | typedef EFI_MM_ACTIVATE EFI_SMM_ACTIVATE2; 36 | 37 | typedef EFI_MM_DEACTIVATE EFI_SMM_DEACTIVATE2; 38 | extern EFI_GUID gEfiSmmControl2ProtocolGuid; 39 | 40 | #endif 41 | 42 | -------------------------------------------------------------------------------- /Include/Protocol/SmmCpuIo2.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | SMM CPU I/O 2 protocol as defined in the PI 1.2 specification. 3 | 4 | This protocol provides CPU I/O and memory access within SMM. 5 | 6 | Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.
7 | This program and the accompanying materials 8 | are licensed and made available under the terms and conditions of the BSD License 9 | which accompanies this distribution. The full text of the license may be found at 10 | http://opensource.org/licenses/bsd-license.php 11 | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 | 15 | **/ 16 | 17 | #ifndef _SMM_CPU_IO2_H_ 18 | #define _SMM_CPU_IO2_H_ 19 | 20 | #include 21 | 22 | #define EFI_SMM_CPU_IO2_PROTOCOL_GUID EFI_MM_CPU_IO_PROTOCOL_GUID 23 | 24 | typedef EFI_MM_CPU_IO_PROTOCOL EFI_SMM_CPU_IO2_PROTOCOL; 25 | 26 | /// 27 | /// Width of the SMM CPU I/O operations 28 | /// 29 | #define SMM_IO_UINT8 MM_IO_UINT8 30 | #define SMM_IO_UINT16 MM_IO_UINT16 31 | #define SMM_IO_UINT32 MM_IO_UINT32 32 | #define SMM_IO_UINT64 MM_IO_UINT64 33 | 34 | typedef EFI_MM_IO_WIDTH EFI_SMM_IO_WIDTH; 35 | typedef EFI_MM_CPU_IO EFI_SMM_CPU_IO2; 36 | 37 | typedef EFI_MM_IO_ACCESS EFI_SMM_IO_ACCESS2; 38 | 39 | extern EFI_GUID gEfiSmmCpuIo2ProtocolGuid; 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /Include/Protocol/SmmEndOfDxe.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | SMM End Of Dxe protocol introduced in the PI 1.2.1 specification. 3 | 4 | According to PI 1.4a specification, this protocol indicates end of the 5 | execution phase when all of the components are under the authority of 6 | the platform manufacturer. 7 | This protocol is a mandatory protocol published by SMM Foundation code. 8 | This protocol is an SMM counterpart of the End of DXE Event. 9 | This protocol prorogates End of DXE notification into SMM environment. 10 | This protocol is installed prior to installation of the SMM Ready to Lock Protocol. 11 | 12 | Copyright (c) 2012 - 2017, Intel Corporation. All rights reserved.
13 | This program and the accompanying materials 14 | are licensed and made available under the terms and conditions of the BSD License 15 | which accompanies this distribution. The full text of the license may be found at 16 | http://opensource.org/licenses/bsd-license.php 17 | 18 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 19 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 20 | 21 | **/ 22 | 23 | #ifndef _SMM_END_OF_DXE_H_ 24 | #define _SMM_END_OF_DXE_H_ 25 | 26 | #include 27 | 28 | #define EFI_SMM_END_OF_DXE_PROTOCOL_GUID EFI_MM_END_OF_DXE_PROTOCOL_GUID 29 | 30 | extern EFI_GUID gEfiSmmEndOfDxeProtocolGuid; 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /Include/Protocol/SmmGpiDispatch2.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | SMM General Purpose Input (GPI) Dispatch2 Protocol as defined in PI 1.1 Specification 3 | Volume 4 System Management Mode Core Interface. 4 | 5 | This protocol provides the parent dispatch service for the General Purpose Input 6 | (GPI) SMI source generator. 7 | 8 | The EFI_SMM_GPI_DISPATCH2_PROTOCOL provides the ability to install child handlers for the 9 | given event types. Several inputs can be enabled. This purpose of this interface is to generate an 10 | SMI in response to any of these inputs having a true value provided. 11 | 12 | Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
13 | This program and the accompanying materials 14 | are licensed and made available under the terms and conditions of the BSD License 15 | which accompanies this distribution. The full text of the license may be found at 16 | http://opensource.org/licenses/bsd-license.php 17 | 18 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 19 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 20 | 21 | @par Revision Reference: 22 | This protocol is from PI Version 1.1. 23 | 24 | **/ 25 | 26 | #ifndef _SMM_GPI_DISPATCH2_H_ 27 | #define _SMM_GPI_DISPATCH2_H_ 28 | 29 | #include 30 | #include 31 | 32 | #define EFI_SMM_GPI_DISPATCH2_PROTOCOL_GUID EFI_MM_GPI_DISPATCH_PROTOCOL_GUID 33 | /// 34 | /// The dispatch function's context. 35 | /// 36 | typedef EFI_MM_GPI_REGISTER_CONTEXT EFI_SMM_GPI_REGISTER_CONTEXT; 37 | 38 | typedef EFI_MM_GPI_REGISTER EFI_SMM_GPI_REGISTER2; 39 | 40 | typedef EFI_MM_GPI_UNREGISTER EFI_SMM_GPI_UNREGISTER2; 41 | 42 | typedef EFI_MM_GPI_DISPATCH_PROTOCOL EFI_SMM_GPI_DISPATCH2_PROTOCOL; 43 | 44 | 45 | 46 | extern EFI_GUID gEfiSmmGpiDispatch2ProtocolGuid; 47 | 48 | #endif 49 | 50 | -------------------------------------------------------------------------------- /Include/Protocol/SmmIoTrapDispatch2.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | SMM IO Trap Dispatch2 Protocol as defined in PI 1.1 Specification 3 | Volume 4 System Management Mode Core Interface. 4 | 5 | This protocol provides a parent dispatch service for IO trap SMI sources. 6 | 7 | Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.
8 | This program and the accompanying materials 9 | are licensed and made available under the terms and conditions of the BSD License 10 | which accompanies this distribution. The full text of the license may be found at 11 | http://opensource.org/licenses/bsd-license.php 12 | 13 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 14 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 15 | 16 | @par Revision Reference: 17 | This protocol is from PI Version 1.1. 18 | 19 | **/ 20 | 21 | #ifndef _SMM_IO_TRAP_DISPATCH2_H_ 22 | #define _SMM_IO_TRAP_DISPATCH2_H_ 23 | 24 | #include 25 | 26 | #define EFI_SMM_IO_TRAP_DISPATCH2_PROTOCOL_GUID EFI_MM_IO_TRAP_DISPATCH_PROTOCOL_GUID 27 | 28 | /// 29 | /// IO Trap valid types 30 | /// 31 | typedef EFI_MM_IO_TRAP_DISPATCH_TYPE EFI_SMM_IO_TRAP_DISPATCH_TYPE; 32 | 33 | /// 34 | /// IO Trap context structure containing information about the 35 | /// IO trap event that should invoke the handler 36 | /// 37 | typedef EFI_MM_IO_TRAP_REGISTER_CONTEXT EFI_SMM_IO_TRAP_REGISTER_CONTEXT; 38 | 39 | /// 40 | /// IO Trap context structure containing information about the IO trap that occurred 41 | /// 42 | typedef EFI_MM_IO_TRAP_CONTEXT EFI_SMM_IO_TRAP_CONTEXT; 43 | 44 | typedef EFI_MM_IO_TRAP_DISPATCH_PROTOCOL EFI_SMM_IO_TRAP_DISPATCH2_PROTOCOL; 45 | 46 | typedef EFI_MM_IO_TRAP_DISPATCH_REGISTER EFI_SMM_IO_TRAP_DISPATCH2_REGISTER; 47 | 48 | typedef EFI_MM_IO_TRAP_DISPATCH_UNREGISTER EFI_SMM_IO_TRAP_DISPATCH2_UNREGISTER; 49 | 50 | extern EFI_GUID gEfiSmmIoTrapDispatch2ProtocolGuid; 51 | 52 | #endif 53 | 54 | -------------------------------------------------------------------------------- /Include/Protocol/SmmPciRootBridgeIo.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | SMM PCI Root Bridge IO protocol as defined in the PI 1.2 specification. 3 | 4 | This protocol provides PCI I/O and memory access within SMM. 5 | 6 | Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
7 | This program and the accompanying materials 8 | are licensed and made available under the terms and conditions of the BSD License 9 | which accompanies this distribution. The full text of the license may be found at 10 | http://opensource.org/licenses/bsd-license.php 11 | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 | 15 | **/ 16 | 17 | #ifndef _SMM_PCI_ROOT_BRIDGE_IO_H_ 18 | #define _SMM_PCI_ROOT_BRIDGE_IO_H_ 19 | 20 | #include 21 | 22 | #define EFI_SMM_PCI_ROOT_BRIDGE_IO_PROTOCOL_GUID EFI_MM_PCI_ROOT_BRIDGE_IO_PROTOCOL_GUID 23 | 24 | /// 25 | /// This protocol provides the same functionality as the PCI Root Bridge I/O Protocol defined in the 26 | /// UEFI 2.1 Specifcation, section 13.2, except that the functions for Map() and Unmap() may return 27 | /// EFI_UNSUPPORTED. 28 | /// 29 | typedef EFI_MM_PCI_ROOT_BRIDGE_IO_PROTOCOL EFI_SMM_PCI_ROOT_BRIDGE_IO_PROTOCOL; 30 | 31 | extern EFI_GUID gEfiSmmPciRootBridgeIoProtocolGuid; 32 | 33 | #endif 34 | 35 | -------------------------------------------------------------------------------- /Include/Protocol/SmmPowerButtonDispatch2.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | SMM Power Button Dispatch2 Protocol as defined in PI 1.1 Specification 3 | Volume 4 System Management Mode Core Interface. 4 | 5 | This protocol provides the parent dispatch service for the power button SMI source generator. 6 | 7 | Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.
8 | This program and the accompanying materials 9 | are licensed and made available under the terms and conditions of the BSD License 10 | which accompanies this distribution. The full text of the license may be found at 11 | http://opensource.org/licenses/bsd-license.php 12 | 13 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 14 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 15 | 16 | @par Revision Reference: 17 | This protocol is from PI Version 1.1. 18 | 19 | **/ 20 | 21 | #ifndef _SMM_POWER_BUTTON_DISPATCH2_H_ 22 | #define _SMM_POWER_BUTTON_DISPATCH2_H_ 23 | 24 | #include 25 | 26 | #define EFI_SMM_POWER_BUTTON_DISPATCH2_PROTOCOL_GUID EFI_MM_POWER_BUTTON_DISPATCH_PROTOCOL_GUID 27 | 28 | /// 29 | /// The dispatch function's context. 30 | /// 31 | typedef EFI_MM_POWER_BUTTON_REGISTER_CONTEXT EFI_SMM_POWER_BUTTON_REGISTER_CONTEXT; 32 | 33 | typedef EFI_MM_POWER_BUTTON_DISPATCH_PROTOCOL EFI_SMM_POWER_BUTTON_DISPATCH2_PROTOCOL; 34 | 35 | typedef EFI_MM_POWER_BUTTON_REGISTER EFI_SMM_POWER_BUTTON_REGISTER2; 36 | 37 | typedef EFI_MM_POWER_BUTTON_UNREGISTER EFI_SMM_POWER_BUTTON_UNREGISTER2; 38 | 39 | extern EFI_GUID gEfiSmmPowerButtonDispatch2ProtocolGuid; 40 | 41 | #endif 42 | 43 | -------------------------------------------------------------------------------- /Include/Protocol/SmmReadyToLock.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | SMM Ready To Lock protocol introduced in the PI 1.2 specification. 3 | 4 | According to PI 1.4a specification, this SMM protocol indicates that 5 | SMM resources and services that should not be used by the third party 6 | code are about to be locked. 7 | This protocol is a mandatory protocol published by the SMM Foundation 8 | code when the system is preparing to lock certain resources and interfaces 9 | in anticipation of the invocation of 3rd party extensible modules. 10 | This protocol is an SMM counterpart of the DXE SMM Ready to Lock Protocol. 11 | This protocol prorogates resource locking notification into SMM environment. 12 | This protocol is installed after installation of the SMM End of DXE Protocol. 13 | 14 | Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.
15 | This program and the accompanying materials 16 | are licensed and made available under the terms and conditions of the BSD License 17 | which accompanies this distribution. The full text of the license may be found at 18 | http://opensource.org/licenses/bsd-license.php 19 | 20 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 21 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 22 | 23 | **/ 24 | 25 | #ifndef _SMM_READY_TO_LOCK_H_ 26 | #define _SMM_READY_TO_LOCK_H_ 27 | 28 | #include 29 | 30 | #define EFI_SMM_READY_TO_LOCK_PROTOCOL_GUID EFI_MM_READY_TO_LOCK_PROTOCOL_GUID 31 | 32 | extern EFI_GUID gEfiSmmReadyToLockProtocolGuid; 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /Include/Protocol/SmmReportStatusCodeHandler.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This protocol provides registering and unregistering services to status code consumers while in DXE SMM. 3 | 4 | Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | @par Revision Reference: 14 | This Protocol was introduced in PI Specification 1.1. 15 | 16 | **/ 17 | 18 | #ifndef __SMM_REPORT_STATUS_CODE_HANDLER_PROTOCOL_H__ 19 | #define __SMM_REPORT_STATUS_CODE_HANDLER_PROTOCOL_H__ 20 | 21 | #include 22 | 23 | #define EFI_SMM_RSC_HANDLER_PROTOCOL_GUID EFI_MM_RSC_HANDLER_PROTOCOL_GUID 24 | 25 | typedef EFI_MM_RSC_HANDLER_CALLBACK EFI_SMM_RSC_HANDLER_CALLBACK; 26 | 27 | typedef EFI_MM_RSC_HANDLER_REGISTER EFI_SMM_RSC_HANDLER_REGISTER; 28 | 29 | typedef EFI_MM_RSC_HANDLER_UNREGISTER EFI_SMM_RSC_HANDLER_UNREGISTER; 30 | 31 | typedef EFI_MM_RSC_HANDLER_PROTOCOL EFI_SMM_RSC_HANDLER_PROTOCOL; 32 | 33 | extern EFI_GUID gEfiSmmRscHandlerProtocolGuid; 34 | 35 | #endif // __SMM_REPORT_STATUS_CODE_HANDLER_PROTOCOL_H__ 36 | -------------------------------------------------------------------------------- /Include/Protocol/SmmStandbyButtonDispatch2.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | SMM Standby Button Dispatch2 Protocol as defined in PI 1.1 Specification 3 | Volume 4 System Management Mode Core Interface. 4 | 5 | This protocol provides the parent dispatch service for the standby button SMI source generator. 6 | 7 | Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.
8 | This program and the accompanying materials 9 | are licensed and made available under the terms and conditions of the BSD License 10 | which accompanies this distribution. The full text of the license may be found at 11 | http://opensource.org/licenses/bsd-license.php 12 | 13 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 14 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 15 | 16 | @par Revision Reference: 17 | This protocol is from PI Version 1.1. 18 | 19 | **/ 20 | 21 | #ifndef _SMM_STANDBY_BUTTON_DISPATCH2_H_ 22 | #define _SMM_STANDBY_BUTTON_DISPATCH2_H_ 23 | 24 | #include 25 | 26 | #define EFI_SMM_STANDBY_BUTTON_DISPATCH2_PROTOCOL_GUID EFI_MM_STANDBY_BUTTON_DISPATCH_PROTOCOL_GUID 27 | 28 | /// 29 | /// The dispatch function's context. 30 | /// 31 | typedef EFI_MM_STANDBY_BUTTON_REGISTER_CONTEXT EFI_SMM_STANDBY_BUTTON_REGISTER_CONTEXT; 32 | 33 | typedef EFI_MM_STANDBY_BUTTON_DISPATCH_PROTOCOL EFI_SMM_STANDBY_BUTTON_DISPATCH2_PROTOCOL; 34 | 35 | typedef EFI_MM_STANDBY_BUTTON_REGISTER EFI_SMM_STANDBY_BUTTON_REGISTER2; 36 | 37 | typedef EFI_MM_STANDBY_BUTTON_UNREGISTER EFI_SMM_STANDBY_BUTTON_UNREGISTER2; 38 | 39 | extern EFI_GUID gEfiSmmStandbyButtonDispatch2ProtocolGuid; 40 | 41 | #endif 42 | 43 | -------------------------------------------------------------------------------- /Include/Protocol/SmmStatusCode.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | EFI SMM Status Code Protocol as defined in the PI 1.2 specification. 3 | 4 | This protocol provides the basic status code services while in SMM. 5 | 6 | Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
7 | This program and the accompanying materials 8 | are licensed and made available under the terms and conditions of the BSD License 9 | which accompanies this distribution. The full text of the license may be found at 10 | http://opensource.org/licenses/bsd-license.php 11 | 12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 | 15 | **/ 16 | 17 | #ifndef _SMM_STATUS_CODE_H__ 18 | #define _SMM_STATUS_CODE_H__ 19 | 20 | #include 21 | 22 | #define EFI_SMM_STATUS_CODE_PROTOCOL_GUID EFI_MM_STATUS_CODE_PROTOCOL_GUID 23 | 24 | typedef EFI_MM_STATUS_CODE_PROTOCOL EFI_SMM_STATUS_CODE_PROTOCOL; 25 | 26 | typedef EFI_MM_REPORT_STATUS_CODE EFI_SMM_REPORT_STATUS_CODE; 27 | 28 | extern EFI_GUID gEfiSmmStatusCodeProtocolGuid; 29 | 30 | #endif 31 | 32 | -------------------------------------------------------------------------------- /Include/Protocol/SmmSxDispatch2.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | SMM Sx Dispatch Protocol as defined in PI 1.2 Specification 3 | Volume 4 System Management Mode Core Interface. 4 | 5 | Provides the parent dispatch service for a given Sx-state source generator. 6 | 7 | Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.
8 | This program and the accompanying materials 9 | are licensed and made available under the terms and conditions of the BSD License 10 | which accompanies this distribution. The full text of the license may be found at 11 | http://opensource.org/licenses/bsd-license.php 12 | 13 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 14 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 15 | 16 | **/ 17 | 18 | #ifndef _SMM_SX_DISPATCH2_H_ 19 | #define _SMM_SX_DISPATCH2_H_ 20 | 21 | #include 22 | 23 | #define EFI_SMM_SX_DISPATCH2_PROTOCOL_GUID EFI_MM_SX_DISPATCH_PROTOCOL_GUID 24 | 25 | /// 26 | /// The dispatch function's context 27 | /// 28 | typedef EFI_MM_SX_REGISTER_CONTEXT EFI_SMM_SX_REGISTER_CONTEXT; 29 | 30 | typedef EFI_MM_SX_DISPATCH_PROTOCOL EFI_SMM_SX_DISPATCH2_PROTOCOL; 31 | 32 | typedef EFI_MM_SX_REGISTER EFI_SMM_SX_REGISTER2; 33 | 34 | typedef EFI_MM_SX_UNREGISTER EFI_SMM_SX_UNREGISTER2; 35 | 36 | extern EFI_GUID gEfiSmmSxDispatch2ProtocolGuid; 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /Include/Protocol/SmmUsbDispatch2.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | SMM USB Dispatch2 Protocol as defined in PI 1.1 Specification 3 | Volume 4 System Management Mode Core Interface. 4 | 5 | Provides the parent dispatch service for the USB SMI source generator. 6 | 7 | Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.
8 | This program and the accompanying materials 9 | are licensed and made available under the terms and conditions of the BSD License 10 | which accompanies this distribution. The full text of the license may be found at 11 | http://opensource.org/licenses/bsd-license.php 12 | 13 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 14 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 15 | 16 | @par Revision Reference: 17 | This protocol is from PI Version 1.1. 18 | 19 | **/ 20 | 21 | #ifndef _SMM_USB_DISPATCH2_H_ 22 | #define _SMM_USB_DISPATCH2_H_ 23 | 24 | #include 25 | 26 | #define EFI_SMM_USB_DISPATCH2_PROTOCOL_GUID EFI_MM_USB_DISPATCH_PROTOCOL_GUID 27 | 28 | /// 29 | /// USB SMI event types 30 | /// 31 | typedef EFI_USB_MMI_TYPE EFI_USB_SMI_TYPE; 32 | 33 | /// 34 | /// The dispatch function's context. 35 | /// 36 | typedef EFI_MM_USB_REGISTER_CONTEXT EFI_SMM_USB_REGISTER_CONTEXT; 37 | 38 | typedef EFI_MM_USB_DISPATCH_PROTOCOL EFI_SMM_USB_DISPATCH2_PROTOCOL; 39 | 40 | typedef EFI_MM_USB_REGISTER EFI_SMM_USB_REGISTER2; 41 | 42 | typedef EFI_MM_USB_UNREGISTER EFI_SMM_USB_UNREGISTER2; 43 | 44 | extern EFI_GUID gEfiSmmUsbDispatch2ProtocolGuid; 45 | 46 | #endif 47 | 48 | -------------------------------------------------------------------------------- /Include/Protocol/SpiSmmConfiguration.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This file defines the SPI SMM Configuration Protocol. 3 | 4 | Copyright (c) 2017, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD 7 | License which accompanies this distribution. The full text of the license may 8 | be found at http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | @par Revision Reference: 14 | This Protocol was introduced in UEFI PI Specification 1.6. 15 | 16 | **/ 17 | 18 | #ifndef __SPI_SMM_CONFIGURATION_PROTOCOL_H__ 19 | #define __SPI_SMM_CONFIGURATION_PROTOCOL_H__ 20 | 21 | #include 22 | 23 | /// 24 | /// Global ID for the SPI SMM Configuration Protocol 25 | /// 26 | #define EFI_SPI_SMM_CONFIGURATION_PROTOCOL_GUID \ 27 | { 0x995c6eca, 0x171b, 0x45fd, \ 28 | { 0xa3, 0xaa, 0xfd, 0x4c, 0x9c, 0x9d, 0xef, 0x59 }} 29 | 30 | typedef 31 | struct _EFI_SPI_CONFIGURATION_PROTOCOL 32 | EFI_SPI_SMM_CONFIGURATION_PROTOCOL; 33 | 34 | extern EFI_GUID gEfiSpiSmmConfigurationProtocolGuid; 35 | 36 | #endif // __SPI_SMM_CONFIGURATION_H__ 37 | -------------------------------------------------------------------------------- /Include/Protocol/SpiSmmHc.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This file defines the SPI SMM Host Controller Protocol. 3 | 4 | Copyright (c) 2017, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD 7 | License which accompanies this distribution. The full text of the license may 8 | be found at http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | @par Revision Reference: 14 | This Protocol was introduced in UEFI PI Specification 1.6. 15 | 16 | **/ 17 | 18 | #ifndef __SPI_SMM_HC_H__ 19 | #define __SPI_SMM_HC_H__ 20 | 21 | #include 22 | 23 | /// 24 | /// Global ID for the SPI SMM Host Controller Protocol 25 | /// 26 | #define EFI_SPI_SMM_HC_PROTOCOL_GUID \ 27 | { 0xe9f02217, 0x2093, 0x4470, \ 28 | { 0x8a, 0x54, 0x5c, 0x2c, 0xff, 0xe7, 0x3e, 0xcb }} 29 | 30 | typedef 31 | struct _EFI_SPI_HC_PROTOCOL 32 | EFI_SPI_SMM_HC_PROTOCOL; 33 | 34 | extern EFI_GUID gEfiSpiSmmHcProtocolGuid; 35 | 36 | #endif // __SPI_SMM_HC_H__ 37 | -------------------------------------------------------------------------------- /Include/Protocol/SpiSmmNorFlash.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | This file defines the SPI SMM NOR Flash Protocol. 3 | 4 | Copyright (c) 2017, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD 7 | License which accompanies this distribution. The full text of the license may 8 | be found at http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | @par Revision Reference: 14 | This Protocol was introduced in UEFI PI Specification 1.6. 15 | 16 | **/ 17 | 18 | #ifndef __SPI_SMM_NOR_FLASH_PROTOCOL_H__ 19 | #define __SPI_SMM_NOR_FLASH_PROTOCOL_H__ 20 | 21 | #include 22 | 23 | /// 24 | /// Global ID for the SPI SMM NOR Flash Protocol 25 | /// 26 | #define EFI_SPI_SMM_NOR_FLASH_PROTOCOL_GUID \ 27 | { 0xaab18f19, 0xfe14, 0x4666, \ 28 | { 0x86, 0x04, 0x87, 0xff, 0x6d, 0x66, 0x2c, 0x9a } } 29 | 30 | typedef 31 | struct _EFI_SPI_NOR_FLASH_PROTOCOL 32 | EFI_SPI_SMM_NOR_FLASH_PROTOCOL; 33 | 34 | extern EFI_GUID gEfiSpiSmmNorFlashProtocolGuid; 35 | 36 | #endif // __SPI_SMM_NOR_FLASH_PROTOCOL_H__ 37 | -------------------------------------------------------------------------------- /Include/Protocol/StatusCode.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Status code Runtime Protocol as defined in PI Specification 1.4a VOLUME 2 DXE 3 | 4 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials 6 | are licensed and made available under the terms and conditions of the BSD License 7 | which accompanies this distribution. The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | **/ 14 | 15 | #ifndef __STATUS_CODE_RUNTIME_PROTOCOL_H__ 16 | #define __STATUS_CODE_RUNTIME_PROTOCOL_H__ 17 | 18 | #define EFI_STATUS_CODE_RUNTIME_PROTOCOL_GUID \ 19 | { 0xd2b2b828, 0x826, 0x48a7, { 0xb3, 0xdf, 0x98, 0x3c, 0x0, 0x60, 0x24, 0xf0 } } 20 | 21 | /** 22 | Provides an interface that a software module can call to report a status code. 23 | 24 | @param Type Indicates the type of status code being reported. 25 | @param Value Describes the current status of a hardware or software entity. 26 | This included information about the class and subclass that is used to 27 | classify the entity as well as an operation. 28 | @param Instance The enumeration of a hardware or software entity within 29 | the system. Valid instance numbers start with 1. 30 | @param CallerId This optional parameter may be used to identify the caller. 31 | This parameter allows the status code driver to apply different rules to 32 | different callers. 33 | @param Data This optional parameter may be used to pass additional data. 34 | 35 | @retval EFI_SUCCESS The function completed successfully 36 | @retval EFI_DEVICE_ERROR The function should not be completed due to a device error. 37 | 38 | **/ 39 | typedef 40 | EFI_STATUS 41 | (EFIAPI *EFI_REPORT_STATUS_CODE)( 42 | IN EFI_STATUS_CODE_TYPE Type, 43 | IN EFI_STATUS_CODE_VALUE Value, 44 | IN UINT32 Instance, 45 | IN EFI_GUID *CallerId OPTIONAL, 46 | IN EFI_STATUS_CODE_DATA *Data OPTIONAL 47 | ); 48 | 49 | /// 50 | /// Provides the service required to report a status code to the platform firmware. 51 | /// This protocol must be produced by a runtime DXE driver. 52 | /// 53 | typedef struct _EFI_STATUS_CODE_PROTOCOL { 54 | EFI_REPORT_STATUS_CODE ReportStatusCode; 55 | } EFI_STATUS_CODE_PROTOCOL; 56 | 57 | extern EFI_GUID gEfiStatusCodeRuntimeProtocolGuid; 58 | 59 | #endif 60 | -------------------------------------------------------------------------------- /Include/Protocol/Variable.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Variable Architectural Protocol as defined in PI Specification VOLUME 2 DXE 3 | 4 | This provides the services required to get and set environment variables. This 5 | protocol must be produced by a runtime DXE driver and may be consumed only by 6 | the DXE Foundation. The DXE driver that produces this protocol must be a runtime 7 | driver. This driver is responsible for initializing the GetVariable(), 8 | GetNextVariableName(), and SetVariable() fields of the UEFI Runtime Services Table. 9 | 10 | After the three fields of the UEFI Runtime Services Table have been initialized, 11 | the driver must install the EFI_VARIABLE_ARCH_PROTOCOL_GUID on a new handle with 12 | a NULL interface pointer. The installation of this protocol informs the DXE Foundation 13 | that the read-only and the volatile environment variable related services are 14 | now available and that the DXE Foundation must update the 32-bit CRC of the UEFI 15 | Runtime Services Table. The full complement of environment variable services are 16 | not available until both this protocol and EFI_VARIABLE_WRITE_ARCH_PROTOCOL are 17 | installed. DXE drivers that require read-only access or read/write access to volatile 18 | environment variables must have this architectural protocol in their dependency 19 | expressions. DXE drivers that require write access to nonvolatile environment 20 | variables must have the EFI_VARIABLE_WRITE_ARCH_PROTOCOL in their dependency 21 | expressions. 22 | 23 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
24 | This program and the accompanying materials 25 | are licensed and made available under the terms and conditions of the BSD License 26 | which accompanies this distribution. The full text of the license may be found at 27 | http://opensource.org/licenses/bsd-license.php 28 | 29 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 30 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 31 | 32 | **/ 33 | 34 | #ifndef __ARCH_PROTOCOL_VARIABLE_ARCH_H__ 35 | #define __ARCH_PROTOCOL_VARIABLE_ARCH_H__ 36 | 37 | /// 38 | /// Global ID for the Variable Architectural Protocol 39 | /// 40 | #define EFI_VARIABLE_ARCH_PROTOCOL_GUID \ 41 | { 0x1e5668e2, 0x8481, 0x11d4, {0xbc, 0xf1, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } } 42 | 43 | extern EFI_GUID gEfiVariableArchProtocolGuid; 44 | 45 | #endif 46 | -------------------------------------------------------------------------------- /Include/Protocol/VariableWrite.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | Variable Write Architectural Protocol as defined in PI Specification VOLUME 2 DXE 3 | 4 | This provides the services required to set nonvolatile environment variables. 5 | This protocol must be produced by a runtime DXE driver and may be consumed only 6 | by the DXE Foundation. 7 | 8 | The DXE driver that produces this protocol must be a runtime driver. This driver 9 | may update the SetVariable() field of the UEFI Runtime Services Table. 10 | 11 | After the UEFI Runtime Services Table has been initialized, the driver must 12 | install the EFI_VARIABLE_WRITE_ARCH_PROTOCOL_GUID on a new handle with a NULL 13 | interface pointer. The installation of this protocol informs the DXE Foundation 14 | that the write services for nonvolatile environment variables are now available 15 | and that the DXE Foundation must update the 32-bit CRC of the UEFI Runtime Services 16 | Table. The full complement of environment variable services are not available 17 | until both this protocol and EFI_VARIABLE_ARCH_PROTOCOL are installed. DXE drivers 18 | that require read-only access or read/write access to volatile environment variables 19 | must have the EFI_VARIABLE_WRITE_ARCH_PROTOCOL in their dependency expressions. 20 | DXE drivers that require write access to nonvolatile environment variables must 21 | have this architectural protocol in their dependency expressions. 22 | 23 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
24 | This program and the accompanying materials 25 | are licensed and made available under the terms and conditions of the BSD License 26 | which accompanies this distribution. The full text of the license may be found at 27 | http://opensource.org/licenses/bsd-license.php 28 | 29 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 30 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 31 | 32 | **/ 33 | 34 | #ifndef __ARCH_PROTOCOL_VARIABLE_WRITE_ARCH_H__ 35 | #define __ARCH_PROTOCOL_VARIABLE_WRITE_ARCH_H__ 36 | 37 | /// 38 | /// Global ID for the Variable Write Architectural Protocol 39 | /// 40 | #define EFI_VARIABLE_WRITE_ARCH_PROTOCOL_GUID \ 41 | { 0x6441f818, 0x6362, 0x4e44, {0xb5, 0x70, 0x7d, 0xba, 0x31, 0xdd, 0x24, 0x53 } } 42 | 43 | extern EFI_GUID gEfiVariableWriteArchProtocolGuid; 44 | 45 | #endif 46 | -------------------------------------------------------------------------------- /Include/Uefi.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | 3 | Root include file for Mde Package UEFI, UEFI_APPLICATION type modules. 4 | 5 | This is the include file for any module of type UEFI and UEFI_APPLICATION. Uefi modules only use 6 | types defined via this include file and can be ported easily to any 7 | environment. 8 | 9 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
10 | This program and the accompanying materials are licensed and made available under 11 | the terms and conditions of the BSD License that accompanies this distribution. 12 | The full text of the license may be found at 13 | http://opensource.org/licenses/bsd-license.php. 14 | 15 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 16 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 17 | 18 | **/ 19 | 20 | #ifndef __PI_UEFI_H__ 21 | #define __PI_UEFI_H__ 22 | 23 | #include 24 | #include 25 | 26 | #endif 27 | 28 | -------------------------------------------------------------------------------- /Include/Uefi/UefiAcpiDataTable.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | UEFI ACPI Data Table Definition. 3 | 4 | Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.
5 | This program and the accompanying materials are licensed and made available under 6 | the terms and conditions of the BSD License that accompanies this distribution. 7 | The full text of the license may be found at 8 | http://opensource.org/licenses/bsd-license.php. 9 | 10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 | 13 | **/ 14 | 15 | #ifndef __UEFI_ACPI_DATA_TABLE_H__ 16 | #define __UEFI_ACPI_DATA_TABLE_H__ 17 | 18 | #include 19 | 20 | #pragma pack(1) 21 | typedef struct { 22 | EFI_ACPI_DESCRIPTION_HEADER Header; 23 | GUID Identifier; 24 | UINT16 DataOffset; 25 | } EFI_ACPI_DATA_TABLE; 26 | #pragma pack() 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /License.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012, Intel Corporation. All rights reserved. 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions 5 | are met: 6 | 7 | * Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | notice, this list of conditions and the following disclaimer in 11 | the documentation and/or other materials provided with the 12 | distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 15 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 16 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 17 | FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 18 | COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 19 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 20 | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 22 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 24 | ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 25 | POSSIBILITY OF SUCH DAMAGE. 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # uefi-headers 2 | 3 | This is a set of header files that contain UEFI definitions. 4 | 5 | Files were taken from TianoCore EDK2 (https://github.com/tianocore/edk2) under the "MdePkg" folder. 6 | --------------------------------------------------------------------------------