[efi] Update to current EDK2 headers
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
parent
1880691774
commit
42e0c7e956
@ -6,7 +6,7 @@
|
||||
environment. There are a set of base libraries in the Mde Package that can
|
||||
be used to implement base modules.
|
||||
|
||||
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
@ -29,6 +29,12 @@ FILE_LICENCE ( BSD3 );
|
||||
//
|
||||
#include <ipxe/efi/ProcessorBind.h>
|
||||
|
||||
#if defined(_MSC_EXTENSIONS)
|
||||
//
|
||||
// Disable warning when last field of data structure is a zero sized array.
|
||||
//
|
||||
#pragma warning ( disable : 4200 )
|
||||
#endif
|
||||
|
||||
/**
|
||||
Verifies the storage size of a given data type.
|
||||
@ -1018,5 +1024,46 @@ typedef UINTN RETURN_STATUS;
|
||||
#define SIGNATURE_64(A, B, C, D, E, F, G, H) \
|
||||
(SIGNATURE_32 (A, B, C, D) | ((UINT64) (SIGNATURE_32 (E, F, G, H)) << 32))
|
||||
|
||||
#if defined(_MSC_EXTENSIONS) && !defined (MDE_CPU_EBC)
|
||||
#pragma intrinsic(_ReturnAddress)
|
||||
/**
|
||||
Get the return address of the calling funcation.
|
||||
|
||||
Based on intrinsic function _ReturnAddress that provides the address of
|
||||
the instruction in the calling function that will be executed after
|
||||
control returns to the caller.
|
||||
|
||||
@param L Return Level.
|
||||
|
||||
@return The return address of the calling funcation or 0 if L != 0.
|
||||
|
||||
**/
|
||||
#define RETURN_ADDRESS(L) ((L == 0) ? _ReturnAddress() : (VOID *) 0)
|
||||
#elif defined(__GNUC__)
|
||||
void * __builtin_return_address (unsigned int level);
|
||||
/**
|
||||
Get the return address of the calling funcation.
|
||||
|
||||
Based on built-in Function __builtin_return_address that returns
|
||||
the return address of the current function, or of one of its callers.
|
||||
|
||||
@param L Return Level.
|
||||
|
||||
@return The return address of the calling funcation.
|
||||
|
||||
**/
|
||||
#define RETURN_ADDRESS(L) __builtin_return_address (L)
|
||||
#else
|
||||
/**
|
||||
Get the return address of the calling funcation.
|
||||
|
||||
@param L Return Level.
|
||||
|
||||
@return 0 as compilers don't support this feature.
|
||||
|
||||
**/
|
||||
#define RETURN_ADDRESS(L) ((VOID *) 0)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
/** @file
|
||||
GUIDs used to locate the SMBIOS tables in the UEFI 2.0 system table.
|
||||
GUIDs used to locate the SMBIOS tables in the UEFI 2.5 system table.
|
||||
|
||||
This GUID in the system table is the only legal way to search for and
|
||||
These GUIDs in the system table are the only legal ways to search for and
|
||||
locate the SMBIOS tables. Do not search the 0xF0000 segment to find SMBIOS
|
||||
tables.
|
||||
|
||||
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
@ -15,7 +15,7 @@
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
@par Revision Reference:
|
||||
GUIDs defined in UEFI 2.0 spec.
|
||||
GUIDs defined in UEFI 2.5 spec.
|
||||
|
||||
**/
|
||||
|
||||
@ -29,6 +29,12 @@ FILE_LICENCE ( BSD3 );
|
||||
0xeb9d2d31, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \
|
||||
}
|
||||
|
||||
#define SMBIOS3_TABLE_GUID \
|
||||
{ \
|
||||
0xf2fd1544, 0x9794, 0x4a2c, {0x99, 0x2e, 0xe5, 0xbb, 0xcf, 0x20, 0xe3, 0x94 } \
|
||||
}
|
||||
|
||||
extern EFI_GUID gEfiSmbiosTableGuid;
|
||||
extern EFI_GUID gEfiSmbios3TableGuid;
|
||||
|
||||
#endif
|
||||
|
@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
Processor or Compiler specific defines and types for IA-32 architecture.
|
||||
|
||||
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
@ -95,6 +95,26 @@ FILE_LICENCE ( BSD3 );
|
||||
//
|
||||
#pragma warning ( disable : 4206 )
|
||||
|
||||
#if _MSC_VER == 1800
|
||||
|
||||
//
|
||||
// Disable these warnings for VS2013.
|
||||
//
|
||||
|
||||
//
|
||||
// This warning is for potentially uninitialized local variable, and it may cause false
|
||||
// positive issues in VS2013 build
|
||||
//
|
||||
#pragma warning ( disable : 4701 )
|
||||
|
||||
//
|
||||
// This warning is for potentially uninitialized local pointer variable, and it may cause
|
||||
// false positive issues in VS2013 build
|
||||
//
|
||||
#pragma warning ( disable : 4703 )
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
547
src/include/ipxe/efi/IndustryStandard/Acpi20.h
Normal file
547
src/include/ipxe/efi/IndustryStandard/Acpi20.h
Normal file
@ -0,0 +1,547 @@
|
||||
/** @file
|
||||
ACPI 2.0 definitions from the ACPI Specification, revision 2.0
|
||||
|
||||
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
**/
|
||||
|
||||
#ifndef _ACPI_2_0_H_
|
||||
#define _ACPI_2_0_H_
|
||||
|
||||
FILE_LICENCE ( BSD3 );
|
||||
|
||||
#include <ipxe/efi/IndustryStandard/Acpi10.h>
|
||||
|
||||
//
|
||||
// Define for Desriptor
|
||||
//
|
||||
#define ACPI_LARGE_GENERIC_REGISTER_DESCRIPTOR_NAME 0x02
|
||||
|
||||
#define ACPI_GENERIC_REGISTER_DESCRIPTOR 0x82
|
||||
|
||||
//
|
||||
// Ensure proper structure formats
|
||||
//
|
||||
#pragma pack(1)
|
||||
|
||||
///
|
||||
/// Generic Register Descriptor
|
||||
///
|
||||
typedef PACKED struct {
|
||||
ACPI_LARGE_RESOURCE_HEADER Header;
|
||||
UINT8 AddressSpaceId;
|
||||
UINT8 RegisterBitWidth;
|
||||
UINT8 RegisterBitOffset;
|
||||
UINT8 AddressSize;
|
||||
UINT64 RegisterAddress;
|
||||
} EFI_ACPI_GENERIC_REGISTER_DESCRIPTOR;
|
||||
|
||||
#pragma pack()
|
||||
|
||||
//
|
||||
// Ensure proper structure formats
|
||||
//
|
||||
#pragma pack(1)
|
||||
|
||||
///
|
||||
/// ACPI 2.0 Generic Address Space definition
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 AddressSpaceId;
|
||||
UINT8 RegisterBitWidth;
|
||||
UINT8 RegisterBitOffset;
|
||||
UINT8 Reserved;
|
||||
UINT64 Address;
|
||||
} EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE;
|
||||
|
||||
//
|
||||
// Generic Address Space Address IDs
|
||||
//
|
||||
#define EFI_ACPI_2_0_SYSTEM_MEMORY 0
|
||||
#define EFI_ACPI_2_0_SYSTEM_IO 1
|
||||
#define EFI_ACPI_2_0_PCI_CONFIGURATION_SPACE 2
|
||||
#define EFI_ACPI_2_0_EMBEDDED_CONTROLLER 3
|
||||
#define EFI_ACPI_2_0_SMBUS 4
|
||||
#define EFI_ACPI_2_0_FUNCTIONAL_FIXED_HARDWARE 0x7F
|
||||
|
||||
//
|
||||
// ACPI 2.0 table structures
|
||||
//
|
||||
|
||||
///
|
||||
/// Root System Description Pointer Structure
|
||||
///
|
||||
typedef struct {
|
||||
UINT64 Signature;
|
||||
UINT8 Checksum;
|
||||
UINT8 OemId[6];
|
||||
UINT8 Revision;
|
||||
UINT32 RsdtAddress;
|
||||
UINT32 Length;
|
||||
UINT64 XsdtAddress;
|
||||
UINT8 ExtendedChecksum;
|
||||
UINT8 Reserved[3];
|
||||
} EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER;
|
||||
|
||||
///
|
||||
/// RSD_PTR Revision (as defined in ACPI 2.0 spec.)
|
||||
///
|
||||
#define EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02
|
||||
|
||||
///
|
||||
/// Common table header, this prefaces all ACPI tables, including FACS, but
|
||||
/// excluding the RSD PTR structure
|
||||
///
|
||||
typedef struct {
|
||||
UINT32 Signature;
|
||||
UINT32 Length;
|
||||
} EFI_ACPI_2_0_COMMON_HEADER;
|
||||
|
||||
//
|
||||
// Root System Description Table
|
||||
// No definition needed as it is a common description table header, the same with
|
||||
// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers.
|
||||
//
|
||||
|
||||
///
|
||||
/// RSDT Revision (as defined in ACPI 2.0 spec.)
|
||||
///
|
||||
#define EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
|
||||
|
||||
//
|
||||
// Extended System Description Table
|
||||
// No definition needed as it is a common description table header, the same with
|
||||
// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers.
|
||||
//
|
||||
|
||||
///
|
||||
/// XSDT Revision (as defined in ACPI 2.0 spec.)
|
||||
///
|
||||
#define EFI_ACPI_2_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
|
||||
|
||||
///
|
||||
/// Fixed ACPI Description Table Structure (FADT)
|
||||
///
|
||||
typedef struct {
|
||||
EFI_ACPI_DESCRIPTION_HEADER Header;
|
||||
UINT32 FirmwareCtrl;
|
||||
UINT32 Dsdt;
|
||||
UINT8 Reserved0;
|
||||
UINT8 PreferredPmProfile;
|
||||
UINT16 SciInt;
|
||||
UINT32 SmiCmd;
|
||||
UINT8 AcpiEnable;
|
||||
UINT8 AcpiDisable;
|
||||
UINT8 S4BiosReq;
|
||||
UINT8 PstateCnt;
|
||||
UINT32 Pm1aEvtBlk;
|
||||
UINT32 Pm1bEvtBlk;
|
||||
UINT32 Pm1aCntBlk;
|
||||
UINT32 Pm1bCntBlk;
|
||||
UINT32 Pm2CntBlk;
|
||||
UINT32 PmTmrBlk;
|
||||
UINT32 Gpe0Blk;
|
||||
UINT32 Gpe1Blk;
|
||||
UINT8 Pm1EvtLen;
|
||||
UINT8 Pm1CntLen;
|
||||
UINT8 Pm2CntLen;
|
||||
UINT8 PmTmrLen;
|
||||
UINT8 Gpe0BlkLen;
|
||||
UINT8 Gpe1BlkLen;
|
||||
UINT8 Gpe1Base;
|
||||
UINT8 CstCnt;
|
||||
UINT16 PLvl2Lat;
|
||||
UINT16 PLvl3Lat;
|
||||
UINT16 FlushSize;
|
||||
UINT16 FlushStride;
|
||||
UINT8 DutyOffset;
|
||||
UINT8 DutyWidth;
|
||||
UINT8 DayAlrm;
|
||||
UINT8 MonAlrm;
|
||||
UINT8 Century;
|
||||
UINT16 IaPcBootArch;
|
||||
UINT8 Reserved1;
|
||||
UINT32 Flags;
|
||||
EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE ResetReg;
|
||||
UINT8 ResetValue;
|
||||
UINT8 Reserved2[3];
|
||||
UINT64 XFirmwareCtrl;
|
||||
UINT64 XDsdt;
|
||||
EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk;
|
||||
EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk;
|
||||
EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk;
|
||||
EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk;
|
||||
EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk;
|
||||
EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk;
|
||||
EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk;
|
||||
EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk;
|
||||
} EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE;
|
||||
|
||||
///
|
||||
/// FADT Version (as defined in ACPI 2.0 spec.)
|
||||
///
|
||||
#define EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 0x03
|
||||
|
||||
//
|
||||
// Fixed ACPI Description Table Preferred Power Management Profile
|
||||
//
|
||||
#define EFI_ACPI_2_0_PM_PROFILE_UNSPECIFIED 0
|
||||
#define EFI_ACPI_2_0_PM_PROFILE_DESKTOP 1
|
||||
#define EFI_ACPI_2_0_PM_PROFILE_MOBILE 2
|
||||
#define EFI_ACPI_2_0_PM_PROFILE_WORKSTATION 3
|
||||
#define EFI_ACPI_2_0_PM_PROFILE_ENTERPRISE_SERVER 4
|
||||
#define EFI_ACPI_2_0_PM_PROFILE_SOHO_SERVER 5
|
||||
#define EFI_ACPI_2_0_PM_PROFILE_APPLIANCE_PC 6
|
||||
|
||||
//
|
||||
// Fixed ACPI Description Table Boot Architecture Flags
|
||||
// All other bits are reserved and must be set to 0.
|
||||
//
|
||||
#define EFI_ACPI_2_0_LEGACY_DEVICES BIT0
|
||||
#define EFI_ACPI_2_0_8042 BIT1
|
||||
|
||||
//
|
||||
// Fixed ACPI Description Table Fixed Feature Flags
|
||||
// All other bits are reserved and must be set to 0.
|
||||
//
|
||||
#define EFI_ACPI_2_0_WBINVD BIT0
|
||||
#define EFI_ACPI_2_0_WBINVD_FLUSH BIT1
|
||||
#define EFI_ACPI_2_0_PROC_C1 BIT2
|
||||
#define EFI_ACPI_2_0_P_LVL2_UP BIT3
|
||||
#define EFI_ACPI_2_0_PWR_BUTTON BIT4
|
||||
#define EFI_ACPI_2_0_SLP_BUTTON BIT5
|
||||
#define EFI_ACPI_2_0_FIX_RTC BIT6
|
||||
#define EFI_ACPI_2_0_RTC_S4 BIT7
|
||||
#define EFI_ACPI_2_0_TMR_VAL_EXT BIT8
|
||||
#define EFI_ACPI_2_0_DCK_CAP BIT9
|
||||
#define EFI_ACPI_2_0_RESET_REG_SUP BIT10
|
||||
#define EFI_ACPI_2_0_SEALED_CASE BIT11
|
||||
#define EFI_ACPI_2_0_HEADLESS BIT12
|
||||
#define EFI_ACPI_2_0_CPU_SW_SLP BIT13
|
||||
|
||||
///
|
||||
/// Firmware ACPI Control Structure
|
||||
///
|
||||
typedef struct {
|
||||
UINT32 Signature;
|
||||
UINT32 Length;
|
||||
UINT32 HardwareSignature;
|
||||
UINT32 FirmwareWakingVector;
|
||||
UINT32 GlobalLock;
|
||||
UINT32 Flags;
|
||||
UINT64 XFirmwareWakingVector;
|
||||
UINT8 Version;
|
||||
UINT8 Reserved[31];
|
||||
} EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE;
|
||||
|
||||
///
|
||||
/// FACS Version (as defined in ACPI 2.0 spec.)
|
||||
///
|
||||
#define EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION 0x01
|
||||
|
||||
///
|
||||
/// Firmware Control Structure Feature Flags
|
||||
/// All other bits are reserved and must be set to 0.
|
||||
///
|
||||
#define EFI_ACPI_2_0_S4BIOS_F BIT0
|
||||
|
||||
///
|
||||
/// Multiple APIC Description Table header definition. The rest of the table
|
||||
/// must be defined in a platform specific manner.
|
||||
///
|
||||
typedef struct {
|
||||
EFI_ACPI_DESCRIPTION_HEADER Header;
|
||||
UINT32 LocalApicAddress;
|
||||
UINT32 Flags;
|
||||
} EFI_ACPI_2_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER;
|
||||
|
||||
///
|
||||
/// MADT Revision (as defined in ACPI 2.0 spec.)
|
||||
///
|
||||
#define EFI_ACPI_2_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x01
|
||||
|
||||
///
|
||||
/// Multiple APIC Flags
|
||||
/// All other bits are reserved and must be set to 0.
|
||||
///
|
||||
#define EFI_ACPI_2_0_PCAT_COMPAT BIT0
|
||||
|
||||
//
|
||||
// Multiple APIC Description Table APIC structure types
|
||||
// All other values between 0x09 an 0xFF are reserved and
|
||||
// will be ignored by OSPM.
|
||||
//
|
||||
#define EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC 0x00
|
||||
#define EFI_ACPI_2_0_IO_APIC 0x01
|
||||
#define EFI_ACPI_2_0_INTERRUPT_SOURCE_OVERRIDE 0x02
|
||||
#define EFI_ACPI_2_0_NON_MASKABLE_INTERRUPT_SOURCE 0x03
|
||||
#define EFI_ACPI_2_0_LOCAL_APIC_NMI 0x04
|
||||
#define EFI_ACPI_2_0_LOCAL_APIC_ADDRESS_OVERRIDE 0x05
|
||||
#define EFI_ACPI_2_0_IO_SAPIC 0x06
|
||||
#define EFI_ACPI_2_0_PROCESSOR_LOCAL_SAPIC 0x07
|
||||
#define EFI_ACPI_2_0_PLATFORM_INTERRUPT_SOURCES 0x08
|
||||
|
||||
//
|
||||
// APIC Structure Definitions
|
||||
//
|
||||
|
||||
///
|
||||
/// Processor Local APIC Structure Definition
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 Type;
|
||||
UINT8 Length;
|
||||
UINT8 AcpiProcessorId;
|
||||
UINT8 ApicId;
|
||||
UINT32 Flags;
|
||||
} EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE;
|
||||
|
||||
///
|
||||
/// Local APIC Flags. All other bits are reserved and must be 0.
|
||||
///
|
||||
#define EFI_ACPI_2_0_LOCAL_APIC_ENABLED BIT0
|
||||
|
||||
///
|
||||
/// IO APIC Structure
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 Type;
|
||||
UINT8 Length;
|
||||
UINT8 IoApicId;
|
||||
UINT8 Reserved;
|
||||
UINT32 IoApicAddress;
|
||||
UINT32 GlobalSystemInterruptBase;
|
||||
} EFI_ACPI_2_0_IO_APIC_STRUCTURE;
|
||||
|
||||
///
|
||||
/// Interrupt Source Override Structure
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 Type;
|
||||
UINT8 Length;
|
||||
UINT8 Bus;
|
||||
UINT8 Source;
|
||||
UINT32 GlobalSystemInterrupt;
|
||||
UINT16 Flags;
|
||||
} EFI_ACPI_2_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE;
|
||||
|
||||
///
|
||||
/// Non-Maskable Interrupt Source Structure
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 Type;
|
||||
UINT8 Length;
|
||||
UINT16 Flags;
|
||||
UINT32 GlobalSystemInterrupt;
|
||||
} EFI_ACPI_2_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE;
|
||||
|
||||
///
|
||||
/// Local APIC NMI Structure
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 Type;
|
||||
UINT8 Length;
|
||||
UINT8 AcpiProcessorId;
|
||||
UINT16 Flags;
|
||||
UINT8 LocalApicLint;
|
||||
} EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE;
|
||||
|
||||
///
|
||||
/// Local APIC Address Override Structure
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 Type;
|
||||
UINT8 Length;
|
||||
UINT16 Reserved;
|
||||
UINT64 LocalApicAddress;
|
||||
} EFI_ACPI_2_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE;
|
||||
|
||||
///
|
||||
/// IO SAPIC Structure
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 Type;
|
||||
UINT8 Length;
|
||||
UINT8 IoApicId;
|
||||
UINT8 Reserved;
|
||||
UINT32 GlobalSystemInterruptBase;
|
||||
UINT64 IoSapicAddress;
|
||||
} EFI_ACPI_2_0_IO_SAPIC_STRUCTURE;
|
||||
|
||||
///
|
||||
/// Local SAPIC Structure
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 Type;
|
||||
UINT8 Length;
|
||||
UINT8 AcpiProcessorId;
|
||||
UINT8 LocalSapicId;
|
||||
UINT8 LocalSapicEid;
|
||||
UINT8 Reserved[3];
|
||||
UINT32 Flags;
|
||||
} EFI_ACPI_2_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE;
|
||||
|
||||
///
|
||||
/// Platform Interrupt Sources Structure
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 Type;
|
||||
UINT8 Length;
|
||||
UINT16 Flags;
|
||||
UINT8 InterruptType;
|
||||
UINT8 ProcessorId;
|
||||
UINT8 ProcessorEid;
|
||||
UINT8 IoSapicVector;
|
||||
UINT32 GlobalSystemInterrupt;
|
||||
UINT32 Reserved;
|
||||
} EFI_ACPI_2_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE;
|
||||
|
||||
///
|
||||
/// Smart Battery Description Table (SBST)
|
||||
///
|
||||
typedef struct {
|
||||
EFI_ACPI_DESCRIPTION_HEADER Header;
|
||||
UINT32 WarningEnergyLevel;
|
||||
UINT32 LowEnergyLevel;
|
||||
UINT32 CriticalEnergyLevel;
|
||||
} EFI_ACPI_2_0_SMART_BATTERY_DESCRIPTION_TABLE;
|
||||
|
||||
///
|
||||
/// SBST Version (as defined in ACPI 2.0 spec.)
|
||||
///
|
||||
#define EFI_ACPI_2_0_SMART_BATTERY_DESCRIPTION_TABLE_REVISION 0x01
|
||||
|
||||
///
|
||||
/// Embedded Controller Boot Resources Table (ECDT)
|
||||
/// The table is followed by a null terminated ASCII string that contains
|
||||
/// a fully qualified reference to the name space object.
|
||||
///
|
||||
typedef struct {
|
||||
EFI_ACPI_DESCRIPTION_HEADER Header;
|
||||
EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE EcControl;
|
||||
EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE EcData;
|
||||
UINT32 Uid;
|
||||
UINT8 GpeBit;
|
||||
} EFI_ACPI_2_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE;
|
||||
|
||||
///
|
||||
/// ECDT Version (as defined in ACPI 2.0 spec.)
|
||||
///
|
||||
#define EFI_ACPI_2_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_REVISION 0x01
|
||||
|
||||
//
|
||||
// Known table signatures
|
||||
//
|
||||
|
||||
///
|
||||
/// "RSD PTR " Root System Description Pointer
|
||||
///
|
||||
#define EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ')
|
||||
|
||||
///
|
||||
/// "SPIC" Multiple SAPIC Description Table
|
||||
///
|
||||
/// BUGBUG: Don't know where this came from except SR870BN4 uses it.
|
||||
/// #define EFI_ACPI_2_0_MULTIPLE_SAPIC_DESCRIPTION_TABLE_SIGNATURE 0x43495053
|
||||
///
|
||||
#define EFI_ACPI_2_0_MULTIPLE_SAPIC_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('A', 'P', 'I', 'C')
|
||||
|
||||
///
|
||||
/// "BOOT" MS Simple Boot Spec
|
||||
///
|
||||
#define EFI_ACPI_2_0_SIMPLE_BOOT_FLAG_TABLE_SIGNATURE SIGNATURE_32('B', 'O', 'O', 'T')
|
||||
|
||||
///
|
||||
/// "DBGP" MS Bebug Port Spec
|
||||
///
|
||||
#define EFI_ACPI_2_0_DEBUG_PORT_TABLE_SIGNATURE SIGNATURE_32('D', 'B', 'G', 'P')
|
||||
|
||||
///
|
||||
/// "DSDT" Differentiated System Description Table
|
||||
///
|
||||
#define EFI_ACPI_2_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('D', 'S', 'D', 'T')
|
||||
|
||||
///
|
||||
/// "ECDT" Embedded Controller Boot Resources Table
|
||||
///
|
||||
#define EFI_ACPI_2_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_SIGNATURE SIGNATURE_32('E', 'C', 'D', 'T')
|
||||
|
||||
///
|
||||
/// "ETDT" Event Timer Description Table
|
||||
///
|
||||
#define EFI_ACPI_2_0_EVENT_TIMER_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('E', 'T', 'D', 'T')
|
||||
|
||||
///
|
||||
/// "FACS" Firmware ACPI Control Structure
|
||||
///
|
||||
#define EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'S')
|
||||
|
||||
///
|
||||
/// "FACP" Fixed ACPI Description Table
|
||||
///
|
||||
#define EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'P')
|
||||
|
||||
///
|
||||
/// "APIC" Multiple APIC Description Table
|
||||
///
|
||||
#define EFI_ACPI_2_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('A', 'P', 'I', 'C')
|
||||
|
||||
///
|
||||
/// "PSDT" Persistent System Description Table
|
||||
///
|
||||
#define EFI_ACPI_2_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('P', 'S', 'D', 'T')
|
||||
|
||||
///
|
||||
/// "RSDT" Root System Description Table
|
||||
///
|
||||
#define EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('R', 'S', 'D', 'T')
|
||||
|
||||
///
|
||||
/// "SBST" Smart Battery Specification Table
|
||||
///
|
||||
#define EFI_ACPI_2_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE SIGNATURE_32('S', 'B', 'S', 'T')
|
||||
|
||||
///
|
||||
/// "SLIT" System Locality Information Table
|
||||
///
|
||||
#define EFI_ACPI_2_0_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE SIGNATURE_32('S', 'L', 'I', 'T')
|
||||
|
||||
///
|
||||
/// "SPCR" Serial Port Concole Redirection Table
|
||||
///
|
||||
#define EFI_ACPI_2_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'C', 'R')
|
||||
|
||||
///
|
||||
/// "SRAT" Static Resource Affinity Table
|
||||
///
|
||||
#define EFI_ACPI_2_0_STATIC_RESOURCE_AFFINITY_TABLE_SIGNATURE SIGNATURE_32('S', 'R', 'A', 'T')
|
||||
|
||||
///
|
||||
/// "SSDT" Secondary System Description Table
|
||||
///
|
||||
#define EFI_ACPI_2_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('S', 'S', 'D', 'T')
|
||||
|
||||
///
|
||||
/// "SPMI" Server Platform Management Interface Table
|
||||
///
|
||||
#define EFI_ACPI_2_0_SERVER_PLATFORM_MANAGEMENT_INTERFACE_SIGNATURE SIGNATURE_32('S', 'P', 'M', 'I')
|
||||
|
||||
///
|
||||
/// "XSDT" Extended System Description Table
|
||||
///
|
||||
#define EFI_ACPI_2_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('X', 'S', 'D', 'T')
|
||||
|
||||
///
|
||||
/// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table
|
||||
///
|
||||
#define EFI_ACPI_2_0_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'F', 'G')
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#endif
|
731
src/include/ipxe/efi/IndustryStandard/Acpi30.h
Normal file
731
src/include/ipxe/efi/IndustryStandard/Acpi30.h
Normal file
@ -0,0 +1,731 @@
|
||||
/** @file
|
||||
ACPI 3.0 definitions from the ACPI Specification Revision 3.0b October 10, 2006
|
||||
|
||||
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
**/
|
||||
|
||||
#ifndef _ACPI_3_0_H_
|
||||
#define _ACPI_3_0_H_
|
||||
|
||||
FILE_LICENCE ( BSD3 );
|
||||
|
||||
#include <ipxe/efi/IndustryStandard/Acpi20.h>
|
||||
|
||||
//
|
||||
// Define for Desriptor
|
||||
//
|
||||
#define ACPI_LARGE_EXTENDED_ADDRESS_SPACE_DESCRIPTOR_NAME 0x0B
|
||||
|
||||
#define ACPI_EXTENDED_ADDRESS_SPACE_DESCRIPTOR 0x8B
|
||||
|
||||
//
|
||||
// Ensure proper structure formats
|
||||
//
|
||||
#pragma pack(1)
|
||||
|
||||
///
|
||||
/// Extended Address Space Descriptor
|
||||
///
|
||||
typedef PACKED struct {
|
||||
ACPI_LARGE_RESOURCE_HEADER Header;
|
||||
UINT8 ResType;
|
||||
UINT8 GenFlag;
|
||||
UINT8 SpecificFlag;
|
||||
UINT8 RevisionId;
|
||||
UINT8 Reserved;
|
||||
UINT64 AddrSpaceGranularity;
|
||||
UINT64 AddrRangeMin;
|
||||
UINT64 AddrRangeMax;
|
||||
UINT64 AddrTranslationOffset;
|
||||
UINT64 AddrLen;
|
||||
UINT64 TypeSpecificAttribute;
|
||||
} EFI_ACPI_EXTENDED_ADDRESS_SPACE_DESCRIPTOR;
|
||||
|
||||
#pragma pack()
|
||||
|
||||
//
|
||||
// Memory Type Specific Flags
|
||||
//
|
||||
#define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_UC 0x0000000000000001
|
||||
#define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_WC 0x0000000000000002
|
||||
#define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_WT 0x0000000000000004
|
||||
#define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_WB 0x0000000000000008
|
||||
#define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_UCE 0x0000000000000010
|
||||
#define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_NV 0x0000000000008000
|
||||
|
||||
//
|
||||
// Ensure proper structure formats
|
||||
//
|
||||
#pragma pack(1)
|
||||
|
||||
///
|
||||
/// ACPI 3.0 Generic Address Space definition
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 AddressSpaceId;
|
||||
UINT8 RegisterBitWidth;
|
||||
UINT8 RegisterBitOffset;
|
||||
UINT8 AccessSize;
|
||||
UINT64 Address;
|
||||
} EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE;
|
||||
|
||||
//
|
||||
// Generic Address Space Address IDs
|
||||
//
|
||||
#define EFI_ACPI_3_0_SYSTEM_MEMORY 0
|
||||
#define EFI_ACPI_3_0_SYSTEM_IO 1
|
||||
#define EFI_ACPI_3_0_PCI_CONFIGURATION_SPACE 2
|
||||
#define EFI_ACPI_3_0_EMBEDDED_CONTROLLER 3
|
||||
#define EFI_ACPI_3_0_SMBUS 4
|
||||
#define EFI_ACPI_3_0_FUNCTIONAL_FIXED_HARDWARE 0x7F
|
||||
|
||||
//
|
||||
// Generic Address Space Access Sizes
|
||||
//
|
||||
#define EFI_ACPI_3_0_UNDEFINED 0
|
||||
#define EFI_ACPI_3_0_BYTE 1
|
||||
#define EFI_ACPI_3_0_WORD 2
|
||||
#define EFI_ACPI_3_0_DWORD 3
|
||||
#define EFI_ACPI_3_0_QWORD 4
|
||||
|
||||
//
|
||||
// ACPI 3.0 table structures
|
||||
//
|
||||
|
||||
///
|
||||
/// Root System Description Pointer Structure
|
||||
///
|
||||
typedef struct {
|
||||
UINT64 Signature;
|
||||
UINT8 Checksum;
|
||||
UINT8 OemId[6];
|
||||
UINT8 Revision;
|
||||
UINT32 RsdtAddress;
|
||||
UINT32 Length;
|
||||
UINT64 XsdtAddress;
|
||||
UINT8 ExtendedChecksum;
|
||||
UINT8 Reserved[3];
|
||||
} EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER;
|
||||
|
||||
///
|
||||
/// RSD_PTR Revision (as defined in ACPI 3.0b spec.)
|
||||
///
|
||||
#define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02 ///< ACPISpec (Revision 3.0b) says current value is 2
|
||||
|
||||
///
|
||||
/// Common table header, this prefaces all ACPI tables, including FACS, but
|
||||
/// excluding the RSD PTR structure
|
||||
///
|
||||
typedef struct {
|
||||
UINT32 Signature;
|
||||
UINT32 Length;
|
||||
} EFI_ACPI_3_0_COMMON_HEADER;
|
||||
|
||||
//
|
||||
// Root System Description Table
|
||||
// No definition needed as it is a common description table header, the same with
|
||||
// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers.
|
||||
//
|
||||
|
||||
///
|
||||
/// RSDT Revision (as defined in ACPI 3.0 spec.)
|
||||
///
|
||||
#define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
|
||||
|
||||
//
|
||||
// Extended System Description Table
|
||||
// No definition needed as it is a common description table header, the same with
|
||||
// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers.
|
||||
//
|
||||
|
||||
///
|
||||
/// XSDT Revision (as defined in ACPI 3.0 spec.)
|
||||
///
|
||||
#define EFI_ACPI_3_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
|
||||
|
||||
///
|
||||
/// Fixed ACPI Description Table Structure (FADT)
|
||||
///
|
||||
typedef struct {
|
||||
EFI_ACPI_DESCRIPTION_HEADER Header;
|
||||
UINT32 FirmwareCtrl;
|
||||
UINT32 Dsdt;
|
||||
UINT8 Reserved0;
|
||||
UINT8 PreferredPmProfile;
|
||||
UINT16 SciInt;
|
||||
UINT32 SmiCmd;
|
||||
UINT8 AcpiEnable;
|
||||
UINT8 AcpiDisable;
|
||||
UINT8 S4BiosReq;
|
||||
UINT8 PstateCnt;
|
||||
UINT32 Pm1aEvtBlk;
|
||||
UINT32 Pm1bEvtBlk;
|
||||
UINT32 Pm1aCntBlk;
|
||||
UINT32 Pm1bCntBlk;
|
||||
UINT32 Pm2CntBlk;
|
||||
UINT32 PmTmrBlk;
|
||||
UINT32 Gpe0Blk;
|
||||
UINT32 Gpe1Blk;
|
||||
UINT8 Pm1EvtLen;
|
||||
UINT8 Pm1CntLen;
|
||||
UINT8 Pm2CntLen;
|
||||
UINT8 PmTmrLen;
|
||||
UINT8 Gpe0BlkLen;
|
||||
UINT8 Gpe1BlkLen;
|
||||
UINT8 Gpe1Base;
|
||||
UINT8 CstCnt;
|
||||
UINT16 PLvl2Lat;
|
||||
UINT16 PLvl3Lat;
|
||||
UINT16 FlushSize;
|
||||
UINT16 FlushStride;
|
||||
UINT8 DutyOffset;
|
||||
UINT8 DutyWidth;
|
||||
UINT8 DayAlrm;
|
||||
UINT8 MonAlrm;
|
||||
UINT8 Century;
|
||||
UINT16 IaPcBootArch;
|
||||
UINT8 Reserved1;
|
||||
UINT32 Flags;
|
||||
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE ResetReg;
|
||||
UINT8 ResetValue;
|
||||
UINT8 Reserved2[3];
|
||||
UINT64 XFirmwareCtrl;
|
||||
UINT64 XDsdt;
|
||||
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk;
|
||||
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk;
|
||||
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk;
|
||||
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk;
|
||||
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk;
|
||||
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk;
|
||||
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk;
|
||||
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk;
|
||||
} EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE;
|
||||
|
||||
///
|
||||
/// FADT Version (as defined in ACPI 3.0 spec.)
|
||||
///
|
||||
#define EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 0x04
|
||||
|
||||
//
|
||||
// Fixed ACPI Description Table Preferred Power Management Profile
|
||||
//
|
||||
#define EFI_ACPI_3_0_PM_PROFILE_UNSPECIFIED 0
|
||||
#define EFI_ACPI_3_0_PM_PROFILE_DESKTOP 1
|
||||
#define EFI_ACPI_3_0_PM_PROFILE_MOBILE 2
|
||||
#define EFI_ACPI_3_0_PM_PROFILE_WORKSTATION 3
|
||||
#define EFI_ACPI_3_0_PM_PROFILE_ENTERPRISE_SERVER 4
|
||||
#define EFI_ACPI_3_0_PM_PROFILE_SOHO_SERVER 5
|
||||
#define EFI_ACPI_3_0_PM_PROFILE_APPLIANCE_PC 6
|
||||
#define EFI_ACPI_3_0_PM_PROFILE_PERFORMANCE_SERVER 7
|
||||
|
||||
//
|
||||
// Fixed ACPI Description Table Boot Architecture Flags
|
||||
// All other bits are reserved and must be set to 0.
|
||||
//
|
||||
#define EFI_ACPI_3_0_LEGACY_DEVICES BIT0
|
||||
#define EFI_ACPI_3_0_8042 BIT1
|
||||
#define EFI_ACPI_3_0_VGA_NOT_PRESENT BIT2
|
||||
#define EFI_ACPI_3_0_MSI_NOT_SUPPORTED BIT3
|
||||
#define EFI_ACPI_3_0_PCIE_ASPM_CONTROLS BIT4
|
||||
|
||||
//
|
||||
// Fixed ACPI Description Table Fixed Feature Flags
|
||||
// All other bits are reserved and must be set to 0.
|
||||
//
|
||||
#define EFI_ACPI_3_0_WBINVD BIT0
|
||||
#define EFI_ACPI_3_0_WBINVD_FLUSH BIT1
|
||||
#define EFI_ACPI_3_0_PROC_C1 BIT2
|
||||
#define EFI_ACPI_3_0_P_LVL2_UP BIT3
|
||||
#define EFI_ACPI_3_0_PWR_BUTTON BIT4
|
||||
#define EFI_ACPI_3_0_SLP_BUTTON BIT5
|
||||
#define EFI_ACPI_3_0_FIX_RTC BIT6
|
||||
#define EFI_ACPI_3_0_RTC_S4 BIT7
|
||||
#define EFI_ACPI_3_0_TMR_VAL_EXT BIT8
|
||||
#define EFI_ACPI_3_0_DCK_CAP BIT9
|
||||
#define EFI_ACPI_3_0_RESET_REG_SUP BIT10
|
||||
#define EFI_ACPI_3_0_SEALED_CASE BIT11
|
||||
#define EFI_ACPI_3_0_HEADLESS BIT12
|
||||
#define EFI_ACPI_3_0_CPU_SW_SLP BIT13
|
||||
#define EFI_ACPI_3_0_PCI_EXP_WAK BIT14
|
||||
#define EFI_ACPI_3_0_USE_PLATFORM_CLOCK BIT15
|
||||
#define EFI_ACPI_3_0_S4_RTC_STS_VALID BIT16
|
||||
#define EFI_ACPI_3_0_REMOTE_POWER_ON_CAPABLE BIT17
|
||||
#define EFI_ACPI_3_0_FORCE_APIC_CLUSTER_MODEL BIT18
|
||||
#define EFI_ACPI_3_0_FORCE_APIC_PHYSICAL_DESTINATION_MODE BIT19
|
||||
|
||||
///
|
||||
/// Firmware ACPI Control Structure
|
||||
///
|
||||
typedef struct {
|
||||
UINT32 Signature;
|
||||
UINT32 Length;
|
||||
UINT32 HardwareSignature;
|
||||
UINT32 FirmwareWakingVector;
|
||||
UINT32 GlobalLock;
|
||||
UINT32 Flags;
|
||||
UINT64 XFirmwareWakingVector;
|
||||
UINT8 Version;
|
||||
UINT8 Reserved[31];
|
||||
} EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE;
|
||||
|
||||
///
|
||||
/// FACS Version (as defined in ACPI 3.0 spec.)
|
||||
///
|
||||
#define EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION 0x01
|
||||
|
||||
///
|
||||
/// Firmware Control Structure Feature Flags
|
||||
/// All other bits are reserved and must be set to 0.
|
||||
///
|
||||
#define EFI_ACPI_3_0_S4BIOS_F BIT0
|
||||
|
||||
//
|
||||
// Differentiated System Description Table,
|
||||
// Secondary System Description Table
|
||||
// and Persistent System Description Table,
|
||||
// no definition needed as they are common description table header, the same with
|
||||
// EFI_ACPI_DESCRIPTION_HEADER, followed by a definition block.
|
||||
//
|
||||
#define EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02
|
||||
#define EFI_ACPI_3_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02
|
||||
|
||||
///
|
||||
/// Multiple APIC Description Table header definition. The rest of the table
|
||||
/// must be defined in a platform specific manner.
|
||||
///
|
||||
typedef struct {
|
||||
EFI_ACPI_DESCRIPTION_HEADER Header;
|
||||
UINT32 LocalApicAddress;
|
||||
UINT32 Flags;
|
||||
} EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER;
|
||||
|
||||
///
|
||||
/// MADT Revision (as defined in ACPI 3.0 spec.)
|
||||
///
|
||||
#define EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x02
|
||||
|
||||
///
|
||||
/// Multiple APIC Flags
|
||||
/// All other bits are reserved and must be set to 0.
|
||||
///
|
||||
#define EFI_ACPI_3_0_PCAT_COMPAT BIT0
|
||||
|
||||
//
|
||||
// Multiple APIC Description Table APIC structure types
|
||||
// All other values between 0x09 an 0xFF are reserved and
|
||||
// will be ignored by OSPM.
|
||||
//
|
||||
#define EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC 0x00
|
||||
#define EFI_ACPI_3_0_IO_APIC 0x01
|
||||
#define EFI_ACPI_3_0_INTERRUPT_SOURCE_OVERRIDE 0x02
|
||||
#define EFI_ACPI_3_0_NON_MASKABLE_INTERRUPT_SOURCE 0x03
|
||||
#define EFI_ACPI_3_0_LOCAL_APIC_NMI 0x04
|
||||
#define EFI_ACPI_3_0_LOCAL_APIC_ADDRESS_OVERRIDE 0x05
|
||||
#define EFI_ACPI_3_0_IO_SAPIC 0x06
|
||||
#define EFI_ACPI_3_0_LOCAL_SAPIC 0x07
|
||||
#define EFI_ACPI_3_0_PLATFORM_INTERRUPT_SOURCES 0x08
|
||||
|
||||
//
|
||||
// APIC Structure Definitions
|
||||
//
|
||||
|
||||
///
|
||||
/// Processor Local APIC Structure Definition
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 Type;
|
||||
UINT8 Length;
|
||||
UINT8 AcpiProcessorId;
|
||||
UINT8 ApicId;
|
||||
UINT32 Flags;
|
||||
} EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_STRUCTURE;
|
||||
|
||||
///
|
||||
/// Local APIC Flags. All other bits are reserved and must be 0.
|
||||
///
|
||||
#define EFI_ACPI_3_0_LOCAL_APIC_ENABLED BIT0
|
||||
|
||||
///
|
||||
/// IO APIC Structure
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 Type;
|
||||
UINT8 Length;
|
||||
UINT8 IoApicId;
|
||||
UINT8 Reserved;
|
||||
UINT32 IoApicAddress;
|
||||
UINT32 GlobalSystemInterruptBase;
|
||||
} EFI_ACPI_3_0_IO_APIC_STRUCTURE;
|
||||
|
||||
///
|
||||
/// Interrupt Source Override Structure
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 Type;
|
||||
UINT8 Length;
|
||||
UINT8 Bus;
|
||||
UINT8 Source;
|
||||
UINT32 GlobalSystemInterrupt;
|
||||
UINT16 Flags;
|
||||
} EFI_ACPI_3_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE;
|
||||
|
||||
///
|
||||
/// Platform Interrupt Sources Structure Definition
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 Type;
|
||||
UINT8 Length;
|
||||
UINT16 Flags;
|
||||
UINT8 InterruptType;
|
||||
UINT8 ProcessorId;
|
||||
UINT8 ProcessorEid;
|
||||
UINT8 IoSapicVector;
|
||||
UINT32 GlobalSystemInterrupt;
|
||||
UINT32 PlatformInterruptSourceFlags;
|
||||
UINT8 CpeiProcessorOverride;
|
||||
UINT8 Reserved[31];
|
||||
} EFI_ACPI_3_0_PLATFORM_INTERRUPT_APIC_STRUCTURE;
|
||||
|
||||
//
|
||||
// MPS INTI flags.
|
||||
// All other bits are reserved and must be set to 0.
|
||||
//
|
||||
#define EFI_ACPI_3_0_POLARITY (3 << 0)
|
||||
#define EFI_ACPI_3_0_TRIGGER_MODE (3 << 2)
|
||||
|
||||
///
|
||||
/// Non-Maskable Interrupt Source Structure
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 Type;
|
||||
UINT8 Length;
|
||||
UINT16 Flags;
|
||||
UINT32 GlobalSystemInterrupt;
|
||||
} EFI_ACPI_3_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE;
|
||||
|
||||
///
|
||||
/// Local APIC NMI Structure
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 Type;
|
||||
UINT8 Length;
|
||||
UINT8 AcpiProcessorId;
|
||||
UINT16 Flags;
|
||||
UINT8 LocalApicLint;
|
||||
} EFI_ACPI_3_0_LOCAL_APIC_NMI_STRUCTURE;
|
||||
|
||||
///
|
||||
/// Local APIC Address Override Structure
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 Type;
|
||||
UINT8 Length;
|
||||
UINT16 Reserved;
|
||||
UINT64 LocalApicAddress;
|
||||
} EFI_ACPI_3_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE;
|
||||
|
||||
///
|
||||
/// IO SAPIC Structure
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 Type;
|
||||
UINT8 Length;
|
||||
UINT8 IoApicId;
|
||||
UINT8 Reserved;
|
||||
UINT32 GlobalSystemInterruptBase;
|
||||
UINT64 IoSapicAddress;
|
||||
} EFI_ACPI_3_0_IO_SAPIC_STRUCTURE;
|
||||
|
||||
///
|
||||
/// Local SAPIC Structure
|
||||
/// This struct followed by a null-terminated ASCII string - ACPI Processor UID String
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 Type;
|
||||
UINT8 Length;
|
||||
UINT8 AcpiProcessorId;
|
||||
UINT8 LocalSapicId;
|
||||
UINT8 LocalSapicEid;
|
||||
UINT8 Reserved[3];
|
||||
UINT32 Flags;
|
||||
UINT32 ACPIProcessorUIDValue;
|
||||
} EFI_ACPI_3_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE;
|
||||
|
||||
///
|
||||
/// Platform Interrupt Sources Structure
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 Type;
|
||||
UINT8 Length;
|
||||
UINT16 Flags;
|
||||
UINT8 InterruptType;
|
||||
UINT8 ProcessorId;
|
||||
UINT8 ProcessorEid;
|
||||
UINT8 IoSapicVector;
|
||||
UINT32 GlobalSystemInterrupt;
|
||||
UINT32 PlatformInterruptSourceFlags;
|
||||
} EFI_ACPI_3_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE;
|
||||
|
||||
///
|
||||
/// Platform Interrupt Source Flags.
|
||||
/// All other bits are reserved and must be set to 0.
|
||||
///
|
||||
#define EFI_ACPI_3_0_CPEI_PROCESSOR_OVERRIDE BIT0
|
||||
|
||||
///
|
||||
/// Smart Battery Description Table (SBST)
|
||||
///
|
||||
typedef struct {
|
||||
EFI_ACPI_DESCRIPTION_HEADER Header;
|
||||
UINT32 WarningEnergyLevel;
|
||||
UINT32 LowEnergyLevel;
|
||||
UINT32 CriticalEnergyLevel;
|
||||
} EFI_ACPI_3_0_SMART_BATTERY_DESCRIPTION_TABLE;
|
||||
|
||||
///
|
||||
/// SBST Version (as defined in ACPI 3.0 spec.)
|
||||
///
|
||||
#define EFI_ACPI_3_0_SMART_BATTERY_DESCRIPTION_TABLE_REVISION 0x01
|
||||
|
||||
///
|
||||
/// Embedded Controller Boot Resources Table (ECDT)
|
||||
/// The table is followed by a null terminated ASCII string that contains
|
||||
/// a fully qualified reference to the name space object.
|
||||
///
|
||||
typedef struct {
|
||||
EFI_ACPI_DESCRIPTION_HEADER Header;
|
||||
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE EcControl;
|
||||
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE EcData;
|
||||
UINT32 Uid;
|
||||
UINT8 GpeBit;
|
||||
} EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE;
|
||||
|
||||
///
|
||||
/// ECDT Version (as defined in ACPI 3.0 spec.)
|
||||
///
|
||||
#define EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_REVISION 0x01
|
||||
|
||||
///
|
||||
/// System Resource Affinity Table (SRAT. The rest of the table
|
||||
/// must be defined in a platform specific manner.
|
||||
///
|
||||
typedef struct {
|
||||
EFI_ACPI_DESCRIPTION_HEADER Header;
|
||||
UINT32 Reserved1; ///< Must be set to 1
|
||||
UINT64 Reserved2;
|
||||
} EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER;
|
||||
|
||||
///
|
||||
/// SRAT Version (as defined in ACPI 3.0 spec.)
|
||||
///
|
||||
#define EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_REVISION 0x02
|
||||
|
||||
//
|
||||
// SRAT structure types.
|
||||
// All other values between 0x02 an 0xFF are reserved and
|
||||
// will be ignored by OSPM.
|
||||
//
|
||||
#define EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY 0x00
|
||||
#define EFI_ACPI_3_0_MEMORY_AFFINITY 0x01
|
||||
|
||||
///
|
||||
/// Processor Local APIC/SAPIC Affinity Structure Definition
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 Type;
|
||||
UINT8 Length;
|
||||
UINT8 ProximityDomain7To0;
|
||||
UINT8 ApicId;
|
||||
UINT32 Flags;
|
||||
UINT8 LocalSapicEid;
|
||||
UINT8 ProximityDomain31To8[3];
|
||||
UINT8 Reserved[4];
|
||||
} EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY_STRUCTURE;
|
||||
|
||||
///
|
||||
/// Local APIC/SAPIC Flags. All other bits are reserved and must be 0.
|
||||
///
|
||||
#define EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_ENABLED (1 << 0)
|
||||
|
||||
///
|
||||
/// Memory Affinity Structure Definition
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 Type;
|
||||
UINT8 Length;
|
||||
UINT32 ProximityDomain;
|
||||
UINT16 Reserved1;
|
||||
UINT32 AddressBaseLow;
|
||||
UINT32 AddressBaseHigh;
|
||||
UINT32 LengthLow;
|
||||
UINT32 LengthHigh;
|
||||
UINT32 Reserved2;
|
||||
UINT32 Flags;
|
||||
UINT64 Reserved3;
|
||||
} EFI_ACPI_3_0_MEMORY_AFFINITY_STRUCTURE;
|
||||
|
||||
//
|
||||
// Memory Flags. All other bits are reserved and must be 0.
|
||||
//
|
||||
#define EFI_ACPI_3_0_MEMORY_ENABLED (1 << 0)
|
||||
#define EFI_ACPI_3_0_MEMORY_HOT_PLUGGABLE (1 << 1)
|
||||
#define EFI_ACPI_3_0_MEMORY_NONVOLATILE (1 << 2)
|
||||
|
||||
///
|
||||
/// System Locality Distance Information Table (SLIT).
|
||||
/// The rest of the table is a matrix.
|
||||
///
|
||||
typedef struct {
|
||||
EFI_ACPI_DESCRIPTION_HEADER Header;
|
||||
UINT64 NumberOfSystemLocalities;
|
||||
} EFI_ACPI_3_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_HEADER;
|
||||
|
||||
///
|
||||
/// SLIT Version (as defined in ACPI 3.0 spec.)
|
||||
///
|
||||
#define EFI_ACPI_3_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_REVISION 0x01
|
||||
|
||||
//
|
||||
// Known table signatures
|
||||
//
|
||||
|
||||
///
|
||||
/// "RSD PTR " Root System Description Pointer
|
||||
///
|
||||
#define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ')
|
||||
|
||||
///
|
||||
/// "APIC" Multiple APIC Description Table
|
||||
///
|
||||
#define EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('A', 'P', 'I', 'C')
|
||||
|
||||
///
|
||||
/// "DSDT" Differentiated System Description Table
|
||||
///
|
||||
#define EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('D', 'S', 'D', 'T')
|
||||
|
||||
///
|
||||
/// "ECDT" Embedded Controller Boot Resources Table
|
||||
///
|
||||
#define EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_SIGNATURE SIGNATURE_32('E', 'C', 'D', 'T')
|
||||
|
||||
///
|
||||
/// "FACP" Fixed ACPI Description Table
|
||||
///
|
||||
#define EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'P')
|
||||
|
||||
///
|
||||
/// "FACS" Firmware ACPI Control Structure
|
||||
///
|
||||
#define EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'S')
|
||||
|
||||
///
|
||||
/// "PSDT" Persistent System Description Table
|
||||
///
|
||||
#define EFI_ACPI_3_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('P', 'S', 'D', 'T')
|
||||
|
||||
///
|
||||
/// "RSDT" Root System Description Table
|
||||
///
|
||||
#define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('R', 'S', 'D', 'T')
|
||||
|
||||
///
|
||||
/// "SBST" Smart Battery Specification Table
|
||||
///
|
||||
#define EFI_ACPI_3_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE SIGNATURE_32('S', 'B', 'S', 'T')
|
||||
|
||||
///
|
||||
/// "SLIT" System Locality Information Table
|
||||
///
|
||||
#define EFI_ACPI_3_0_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE SIGNATURE_32('S', 'L', 'I', 'T')
|
||||
|
||||
///
|
||||
/// "SRAT" System Resource Affinity Table
|
||||
///
|
||||
#define EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_SIGNATURE SIGNATURE_32('S', 'R', 'A', 'T')
|
||||
|
||||
///
|
||||
/// "SSDT" Secondary System Description Table
|
||||
///
|
||||
#define EFI_ACPI_3_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('S', 'S', 'D', 'T')
|
||||
|
||||
///
|
||||
/// "XSDT" Extended System Description Table
|
||||
///
|
||||
#define EFI_ACPI_3_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('X', 'S', 'D', 'T')
|
||||
|
||||
///
|
||||
/// "BOOT" MS Simple Boot Spec
|
||||
///
|
||||
#define EFI_ACPI_3_0_SIMPLE_BOOT_FLAG_TABLE_SIGNATURE SIGNATURE_32('B', 'O', 'O', 'T')
|
||||
|
||||
///
|
||||
/// "CPEP" Corrected Platform Error Polling Table
|
||||
///
|
||||
#define EFI_ACPI_3_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_SIGNATURE SIGNATURE_32('C', 'P', 'E', 'P')
|
||||
|
||||
///
|
||||
/// "DBGP" MS Debug Port Spec
|
||||
///
|
||||
#define EFI_ACPI_3_0_DEBUG_PORT_TABLE_SIGNATURE SIGNATURE_32('D', 'B', 'G', 'P')
|
||||
|
||||
///
|
||||
/// "ETDT" Event Timer Description Table
|
||||
///
|
||||
#define EFI_ACPI_3_0_EVENT_TIMER_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('E', 'T', 'D', 'T')
|
||||
|
||||
///
|
||||
/// "HPET" IA-PC High Precision Event Timer Table
|
||||
///
|
||||
#define EFI_ACPI_3_0_HIGH_PRECISION_EVENT_TIMER_TABLE_SIGNATURE SIGNATURE_32('H', 'P', 'E', 'T')
|
||||
|
||||
///
|
||||
/// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table
|
||||
///
|
||||
#define EFI_ACPI_3_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'F', 'G')
|
||||
|
||||
///
|
||||
/// "SPCR" Serial Port Concole Redirection Table
|
||||
///
|
||||
#define EFI_ACPI_3_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'C', 'R')
|
||||
|
||||
///
|
||||
/// "SPMI" Server Platform Management Interface Table
|
||||
///
|
||||
#define EFI_ACPI_3_0_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'M', 'I')
|
||||
|
||||
///
|
||||
/// "TCPA" Trusted Computing Platform Alliance Capabilities Table
|
||||
///
|
||||
#define EFI_ACPI_3_0_TRUSTED_COMPUTING_PLATFORM_ALLIANCE_CAPABILITIES_TABLE_SIGNATURE SIGNATURE_32('T', 'C', 'P', 'A')
|
||||
|
||||
///
|
||||
/// "WDRT" Watchdog Resource Table
|
||||
///
|
||||
#define EFI_ACPI_3_0_WATCHDOG_RESOURCE_TABLE_SIGNATURE SIGNATURE_32('W', 'D', 'R', 'T')
|
||||
|
||||
///
|
||||
/// "WDAT" Watchdog Action Table
|
||||
///
|
||||
#define EFI_ACPI_3_0_WATCHDOG_ACTION_TABLE_SIGNATURE SIGNATURE_32('W', 'D', 'A', 'T')
|
||||
|
||||
///
|
||||
/// "WSPT" Windows Specific Properties Table
|
||||
///
|
||||
#define EFI_ACPI_3_0_WINDOWS_SPECIFIC_PROPERTIES_TABLE_SIGNATURE SIGNATURE_32('W', 'S', 'P', 'T')
|
||||
|
||||
///
|
||||
/// "iBFT" iSCSI Boot Firmware Table
|
||||
///
|
||||
#define EFI_ACPI_3_0_ISCSI_BOOT_FIRMWARE_TABLE_SIGNATURE SIGNATURE_32('i', 'B', 'F', 'T')
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#endif
|
1311
src/include/ipxe/efi/IndustryStandard/Acpi40.h
Normal file
1311
src/include/ipxe/efi/IndustryStandard/Acpi40.h
Normal file
File diff suppressed because it is too large
Load Diff
2121
src/include/ipxe/efi/IndustryStandard/Acpi50.h
Normal file
2121
src/include/ipxe/efi/IndustryStandard/Acpi50.h
Normal file
File diff suppressed because it is too large
Load Diff
2131
src/include/ipxe/efi/IndustryStandard/Acpi51.h
Normal file
2131
src/include/ipxe/efi/IndustryStandard/Acpi51.h
Normal file
File diff suppressed because it is too large
Load Diff
2335
src/include/ipxe/efi/IndustryStandard/Acpi60.h
Normal file
2335
src/include/ipxe/efi/IndustryStandard/Acpi60.h
Normal file
File diff suppressed because it is too large
Load Diff
49
src/include/ipxe/efi/IndustryStandard/Bluetooth.h
Normal file
49
src/include/ipxe/efi/IndustryStandard/Bluetooth.h
Normal file
@ -0,0 +1,49 @@
|
||||
/** @file
|
||||
This file contains the Bluetooth definitions that are consumed by drivers.
|
||||
These definitions are from Bluetooth Core Specification Version 4.0 June, 2010
|
||||
|
||||
Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef _BLUETOOTH_H_
|
||||
#define _BLUETOOTH_H_
|
||||
|
||||
FILE_LICENCE ( BSD3 );
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
///
|
||||
/// BLUETOOTH_ADDRESS
|
||||
///
|
||||
typedef struct {
|
||||
///
|
||||
/// 48bit Bluetooth device address.
|
||||
///
|
||||
UINT8 Address[6];
|
||||
} BLUETOOTH_ADDRESS;
|
||||
|
||||
///
|
||||
/// BLUETOOTH_CLASS_OF_DEVICE. See Bluetooth specification for detail.
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 FormatType:2;
|
||||
UINT8 MinorDeviceClass: 6;
|
||||
UINT16 MajorDeviceClass: 5;
|
||||
UINT16 MajorServiceClass:11;
|
||||
} BLUETOOTH_CLASS_OF_DEVICE;
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#define BLUETOOTH_HCI_COMMAND_LOCAL_READABLE_NAME_MAX_SIZE 248
|
||||
|
||||
#define BLUETOOTH_HCI_LINK_KEY_SIZE 16
|
||||
|
||||
#endif
|
@ -9,7 +9,7 @@
|
||||
|
||||
|
||||
Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2014, Hewlett-Packard Development Company, L.P.<BR>
|
||||
Copyright (c) 2014 - 2105, Hewlett-Packard Development Company, L.P.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
@ -554,6 +554,7 @@ typedef struct {
|
||||
#define PCI_BRIDGE_PRIMARY_BUS_REGISTER_OFFSET 0x18
|
||||
#define PCI_BRIDGE_SECONDARY_BUS_REGISTER_OFFSET 0x19
|
||||
#define PCI_BRIDGE_SUBORDINATE_BUS_REGISTER_OFFSET 0x1a
|
||||
#define PCI_BRIDGE_SECONDARY_LATENCY_TIMER_OFFSET 0x1b
|
||||
#define PCI_BRIDGE_STATUS_REGISTER_OFFSET 0x1E
|
||||
#define PCI_BRIDGE_CONTROL_REGISTER_OFFSET 0x3E
|
||||
|
||||
|
1819
src/include/ipxe/efi/IndustryStandard/Tpm20.h
Normal file
1819
src/include/ipxe/efi/IndustryStandard/Tpm20.h
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
TCG EFI Platform Definition in TCG_EFI_Platform_1_20_Final
|
||||
|
||||
Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
@ -18,12 +18,14 @@
|
||||
FILE_LICENCE ( BSD3 );
|
||||
|
||||
#include <ipxe/efi/IndustryStandard/Tpm12.h>
|
||||
#include <ipxe/efi/IndustryStandard/Tpm20.h>
|
||||
#include <ipxe/efi/Uefi.h>
|
||||
|
||||
//
|
||||
// Standard event types
|
||||
//
|
||||
#define EV_POST_CODE ((TCG_EVENTTYPE) 0x00000001)
|
||||
#define EV_NO_ACTION ((TCG_EVENTTYPE) 0x00000003)
|
||||
#define EV_SEPARATOR ((TCG_EVENTTYPE) 0x00000004)
|
||||
#define EV_S_CRTM_CONTENTS ((TCG_EVENTTYPE) 0x00000007)
|
||||
#define EV_S_CRTM_VERSION ((TCG_EVENTTYPE) 0x00000008)
|
||||
@ -43,6 +45,7 @@ FILE_LICENCE ( BSD3 );
|
||||
#define EV_EFI_ACTION (EV_EFI_EVENT_BASE + 7)
|
||||
#define EV_EFI_PLATFORM_FIRMWARE_BLOB (EV_EFI_EVENT_BASE + 8)
|
||||
#define EV_EFI_HANDOFF_TABLES (EV_EFI_EVENT_BASE + 9)
|
||||
#define EV_EFI_VARIABLE_AUTHORITY (EV_EFI_EVENT_BASE + 0xE0)
|
||||
|
||||
#define EFI_CALLING_EFI_APPLICATION \
|
||||
"Calling EFI Application from Boot Option"
|
||||
@ -74,6 +77,9 @@ FILE_LICENCE ( BSD3 );
|
||||
#define EV_POSTCODE_INFO_OPROM "Embedded Option ROM"
|
||||
#define OPROM_LEN (sizeof(EV_POSTCODE_INFO_OPROM) - 1)
|
||||
|
||||
#define FIRMWARE_DEBUGGER_EVENT_STRING "UEFI Debug Mode"
|
||||
#define FIRMWARE_DEBUGGER_EVENT_STRING_LEN (sizeof(FIRMWARE_DEBUGGER_EVENT_STRING) - 1)
|
||||
|
||||
//
|
||||
// Set structure alignment to 1-byte
|
||||
//
|
||||
@ -156,12 +162,114 @@ typedef struct tdEFI_VARIABLE_DATA {
|
||||
INT8 VariableData[1]; ///< Driver or platform-specific data
|
||||
} EFI_VARIABLE_DATA;
|
||||
|
||||
//
|
||||
// For TrEE1.0 compatibility
|
||||
//
|
||||
typedef struct {
|
||||
EFI_GUID VariableName;
|
||||
UINT64 UnicodeNameLength; // The TCG Definition used UINTN
|
||||
UINT64 VariableDataLength; // The TCG Definition used UINTN
|
||||
CHAR16 UnicodeName[1];
|
||||
INT8 VariableData[1];
|
||||
} EFI_VARIABLE_DATA_TREE;
|
||||
|
||||
typedef struct tdEFI_GPT_DATA {
|
||||
EFI_PARTITION_TABLE_HEADER EfiPartitionHeader;
|
||||
UINTN NumberOfPartitions;
|
||||
EFI_PARTITION_ENTRY Partitions[1];
|
||||
} EFI_GPT_DATA;
|
||||
|
||||
//
|
||||
// Crypto Agile Log Entry Format
|
||||
//
|
||||
typedef struct tdTCG_PCR_EVENT2 {
|
||||
TCG_PCRINDEX PCRIndex;
|
||||
TCG_EVENTTYPE EventType;
|
||||
TPML_DIGEST_VALUES Digest;
|
||||
UINT32 EventSize;
|
||||
UINT8 Event[1];
|
||||
} TCG_PCR_EVENT2;
|
||||
|
||||
//
|
||||
// Log Header Entry Data
|
||||
//
|
||||
typedef struct {
|
||||
//
|
||||
// TCG defined hashing algorithm ID.
|
||||
//
|
||||
UINT16 algorithmId;
|
||||
//
|
||||
// The size of the digest for the respective hashing algorithm.
|
||||
//
|
||||
UINT16 digestSize;
|
||||
} TCG_EfiSpecIdEventAlgorithmSize;
|
||||
|
||||
#define TCG_EfiSpecIDEventStruct_SIGNATURE_02 "Spec ID Event02"
|
||||
#define TCG_EfiSpecIDEventStruct_SIGNATURE_03 "Spec ID Event03"
|
||||
|
||||
#define TCG_EfiSpecIDEventStruct_SPEC_VERSION_MAJOR_TPM12 1
|
||||
#define TCG_EfiSpecIDEventStruct_SPEC_VERSION_MINOR_TPM12 2
|
||||
#define TCG_EfiSpecIDEventStruct_SPEC_ERRATA_TPM12 2
|
||||
|
||||
#define TCG_EfiSpecIDEventStruct_SPEC_VERSION_MAJOR_TPM2 2
|
||||
#define TCG_EfiSpecIDEventStruct_SPEC_VERSION_MINOR_TPM2 0
|
||||
#define TCG_EfiSpecIDEventStruct_SPEC_ERRATA_TPM2 0
|
||||
|
||||
typedef struct {
|
||||
UINT8 signature[16];
|
||||
//
|
||||
// The value for the Platform Class.
|
||||
// The enumeration is defined in the TCG ACPI Specification Client Common Header.
|
||||
//
|
||||
UINT32 platformClass;
|
||||
//
|
||||
// The TCG EFI Platform Specification minor version number this BIOS supports.
|
||||
// Any BIOS supporting version (1.22) MUST set this value to 02h.
|
||||
// Any BIOS supporting version (2.0) SHALL set this value to 0x00.
|
||||
//
|
||||
UINT8 specVersionMinor;
|
||||
//
|
||||
// The TCG EFI Platform Specification major version number this BIOS supports.
|
||||
// Any BIOS supporting version (1.22) MUST set this value to 01h.
|
||||
// Any BIOS supporting version (2.0) SHALL set this value to 0x02.
|
||||
//
|
||||
UINT8 specVersionMajor;
|
||||
//
|
||||
// The TCG EFI Platform Specification errata for this specification this BIOS supports.
|
||||
// Any BIOS supporting version and errata (1.22) MUST set this value to 02h.
|
||||
// Any BIOS supporting version and errata (2.0) SHALL set this value to 0x00.
|
||||
//
|
||||
UINT8 specErrata;
|
||||
//
|
||||
// Specifies the size of the UINTN fields used in various data structures used in this specification.
|
||||
// 0x01 indicates UINT32 and 0x02 indicates UINT64.
|
||||
//
|
||||
UINT8 uintnSize;
|
||||
//
|
||||
// This field is added in "Spec ID Event03".
|
||||
// The number of hashing algorithms used in this event log (except the first event).
|
||||
// All events in this event log use all hashing algorithms defined here.
|
||||
//
|
||||
//UINT32 numberOfAlgorithms;
|
||||
//
|
||||
// This field is added in "Spec ID Event03".
|
||||
// An array of size numberOfAlgorithms of value pairs.
|
||||
//
|
||||
//TCG_EfiSpecIdEventAlgorithmSize digestSize[numberOfAlgorithms];
|
||||
//
|
||||
// Size in bytes of the VendorInfo field.
|
||||
// Maximum value SHALL be FFh bytes.
|
||||
//
|
||||
//UINT8 vendorInfoSize;
|
||||
//
|
||||
// Provided for use by the BIOS implementer.
|
||||
// The value might be used, for example, to provide more detailed information about the specific BIOS such as BIOS revision numbers, etc.
|
||||
// The values within this field are not standardized and are implementer-specific.
|
||||
// Platform-specific or -unique information SHALL NOT be provided in this field.
|
||||
//
|
||||
//UINT8 vendorInfo[vendorInfoSize];
|
||||
} TCG_EfiSpecIDEventStruct;
|
||||
|
||||
//
|
||||
// Restore original structure alignment
|
||||
//
|
||||
|
@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
Support for USB 2.0 standard.
|
||||
|
||||
Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
@ -17,6 +17,32 @@
|
||||
|
||||
FILE_LICENCE ( BSD3 );
|
||||
|
||||
//
|
||||
// Subset of Class and Subclass definitions from USB Specs
|
||||
//
|
||||
|
||||
//
|
||||
// Usb mass storage class code
|
||||
//
|
||||
#define USB_MASS_STORE_CLASS 0x08
|
||||
|
||||
//
|
||||
// Usb mass storage subclass code, specify the command set used.
|
||||
//
|
||||
#define USB_MASS_STORE_RBC 0x01 ///< Reduced Block Commands
|
||||
#define USB_MASS_STORE_8020I 0x02 ///< SFF-8020i, typically a CD/DVD device
|
||||
#define USB_MASS_STORE_QIC 0x03 ///< Typically a tape device
|
||||
#define USB_MASS_STORE_UFI 0x04 ///< Typically a floppy disk driver device
|
||||
#define USB_MASS_STORE_8070I 0x05 ///< SFF-8070i, typically a floppy disk driver device.
|
||||
#define USB_MASS_STORE_SCSI 0x06 ///< SCSI transparent command set
|
||||
|
||||
//
|
||||
// Usb mass storage protocol code, specify the transport protocol
|
||||
//
|
||||
#define USB_MASS_STORE_CBI0 0x00 ///< CBI protocol with command completion interrupt
|
||||
#define USB_MASS_STORE_CBI1 0x01 ///< CBI protocol without command completion interrupt
|
||||
#define USB_MASS_STORE_BOT 0x50 ///< Bulk-Only Transport
|
||||
|
||||
//
|
||||
// Standard device request and request type
|
||||
// USB 2.0 spec, Section 9.4
|
||||
|
@ -1,8 +1,8 @@
|
||||
/** @file
|
||||
Provides string functions, linked list functions, math functions, synchronization
|
||||
functions, and CPU architecture-specific functions.
|
||||
functions, file path functions, and CPU architecture-specific functions.
|
||||
|
||||
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
@ -185,7 +185,321 @@ typedef struct {
|
||||
// String Services
|
||||
//
|
||||
|
||||
|
||||
/**
|
||||
Returns the length of a Null-terminated Unicode string.
|
||||
|
||||
If String is not aligned on a 16-bit boundary, then ASSERT().
|
||||
|
||||
@param String A pointer to a Null-terminated Unicode string.
|
||||
@param MaxSize The maximum number of Destination Unicode
|
||||
char, including terminating null char.
|
||||
|
||||
@retval 0 If String is NULL.
|
||||
@retval MaxSize If there is no null character in the first MaxSize characters of String.
|
||||
@return The number of characters that percede the terminating null character.
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EFIAPI
|
||||
StrnLenS (
|
||||
IN CONST CHAR16 *String,
|
||||
IN UINTN MaxSize
|
||||
);
|
||||
|
||||
/**
|
||||
Copies the string pointed to by Source (including the terminating null char)
|
||||
to the array pointed to by Destination.
|
||||
|
||||
If Destination is not aligned on a 16-bit boundary, then ASSERT().
|
||||
If Source is not aligned on a 16-bit boundary, then ASSERT().
|
||||
If an error would be returned, then the function will also ASSERT().
|
||||
|
||||
@param Destination A pointer to a Null-terminated Unicode string.
|
||||
@param DestMax The maximum number of Destination Unicode
|
||||
char, including terminating null char.
|
||||
@param Source A pointer to a Null-terminated Unicode string.
|
||||
|
||||
@retval RETURN_SUCCESS String is copied.
|
||||
@retval RETURN_BUFFER_TOO_SMALL If DestMax is NOT greater than StrLen(Source).
|
||||
@retval RETURN_INVALID_PARAMETER If Destination is NULL.
|
||||
If Source is NULL.
|
||||
If PcdMaximumUnicodeStringLength is not zero,
|
||||
and DestMax is greater than
|
||||
PcdMaximumUnicodeStringLength.
|
||||
If DestMax is 0.
|
||||
@retval RETURN_ACCESS_DENIED If Source and Destination overlap.
|
||||
**/
|
||||
RETURN_STATUS
|
||||
EFIAPI
|
||||
StrCpyS (
|
||||
OUT CHAR16 *Destination,
|
||||
IN UINTN DestMax,
|
||||
IN CONST CHAR16 *Source
|
||||
);
|
||||
|
||||
/**
|
||||
Copies not more than Length successive char from the string pointed to by
|
||||
Source to the array pointed to by Destination. If no null char is copied from
|
||||
Source, then Destination[Length] is always set to null.
|
||||
|
||||
If Length > 0 and Destination is not aligned on a 16-bit boundary, then ASSERT().
|
||||
If Length > 0 and Source is not aligned on a 16-bit boundary, then ASSERT().
|
||||
If an error would be returned, then the function will also ASSERT().
|
||||
|
||||
@param Destination A pointer to a Null-terminated Unicode string.
|
||||
@param DestMax The maximum number of Destination Unicode
|
||||
char, including terminating null char.
|
||||
@param Source A pointer to a Null-terminated Unicode string.
|
||||
@param Length The maximum number of Unicode characters to copy.
|
||||
|
||||
@retval RETURN_SUCCESS String is copied.
|
||||
@retval RETURN_BUFFER_TOO_SMALL If DestMax is NOT greater than
|
||||
MIN(StrLen(Source), Length).
|
||||
@retval RETURN_INVALID_PARAMETER If Destination is NULL.
|
||||
If Source is NULL.
|
||||
If PcdMaximumUnicodeStringLength is not zero,
|
||||
and DestMax is greater than
|
||||
PcdMaximumUnicodeStringLength.
|
||||
If DestMax is 0.
|
||||
@retval RETURN_ACCESS_DENIED If Source and Destination overlap.
|
||||
**/
|
||||
RETURN_STATUS
|
||||
EFIAPI
|
||||
StrnCpyS (
|
||||
OUT CHAR16 *Destination,
|
||||
IN UINTN DestMax,
|
||||
IN CONST CHAR16 *Source,
|
||||
IN UINTN Length
|
||||
);
|
||||
|
||||
/**
|
||||
Appends a copy of the string pointed to by Source (including the terminating
|
||||
null char) to the end of the string pointed to by Destination.
|
||||
|
||||
If Destination is not aligned on a 16-bit boundary, then ASSERT().
|
||||
If Source is not aligned on a 16-bit boundary, then ASSERT().
|
||||
If an error would be returned, then the function will also ASSERT().
|
||||
|
||||
@param Destination A pointer to a Null-terminated Unicode string.
|
||||
@param DestMax The maximum number of Destination Unicode
|
||||
char, including terminating null char.
|
||||
@param Source A pointer to a Null-terminated Unicode string.
|
||||
|
||||
@retval RETURN_SUCCESS String is appended.
|
||||
@retval RETURN_BAD_BUFFER_SIZE If DestMax is NOT greater than
|
||||
StrLen(Destination).
|
||||
@retval RETURN_BUFFER_TOO_SMALL If (DestMax - StrLen(Destination)) is NOT
|
||||
greater than StrLen(Source).
|
||||
@retval RETURN_INVALID_PARAMETER If Destination is NULL.
|
||||
If Source is NULL.
|
||||
If PcdMaximumUnicodeStringLength is not zero,
|
||||
and DestMax is greater than
|
||||
PcdMaximumUnicodeStringLength.
|
||||
If DestMax is 0.
|
||||
@retval RETURN_ACCESS_DENIED If Source and Destination overlap.
|
||||
**/
|
||||
RETURN_STATUS
|
||||
EFIAPI
|
||||
StrCatS (
|
||||
IN OUT CHAR16 *Destination,
|
||||
IN UINTN DestMax,
|
||||
IN CONST CHAR16 *Source
|
||||
);
|
||||
|
||||
/**
|
||||
Appends not more than Length successive char from the string pointed to by
|
||||
Source to the end of the string pointed to by Destination. If no null char is
|
||||
copied from Source, then Destination[StrLen(Destination) + Length] is always
|
||||
set to null.
|
||||
|
||||
If Destination is not aligned on a 16-bit boundary, then ASSERT().
|
||||
If Source is not aligned on a 16-bit boundary, then ASSERT().
|
||||
If an error would be returned, then the function will also ASSERT().
|
||||
|
||||
@param Destination A pointer to a Null-terminated Unicode string.
|
||||
@param DestMax The maximum number of Destination Unicode
|
||||
char, including terminating null char.
|
||||
@param Source A pointer to a Null-terminated Unicode string.
|
||||
@param Length The maximum number of Unicode characters to copy.
|
||||
|
||||
@retval RETURN_SUCCESS String is appended.
|
||||
@retval RETURN_BAD_BUFFER_SIZE If DestMax is NOT greater than
|
||||
StrLen(Destination).
|
||||
@retval RETURN_BUFFER_TOO_SMALL If (DestMax - StrLen(Destination)) is NOT
|
||||
greater than MIN(StrLen(Source), Length).
|
||||
@retval RETURN_INVALID_PARAMETER If Destination is NULL.
|
||||
If Source is NULL.
|
||||
If PcdMaximumUnicodeStringLength is not zero,
|
||||
and DestMax is greater than
|
||||
PcdMaximumUnicodeStringLength.
|
||||
If DestMax is 0.
|
||||
@retval RETURN_ACCESS_DENIED If Source and Destination overlap.
|
||||
**/
|
||||
RETURN_STATUS
|
||||
EFIAPI
|
||||
StrnCatS (
|
||||
IN OUT CHAR16 *Destination,
|
||||
IN UINTN DestMax,
|
||||
IN CONST CHAR16 *Source,
|
||||
IN UINTN Length
|
||||
);
|
||||
|
||||
/**
|
||||
Returns the length of a Null-terminated Ascii string.
|
||||
|
||||
@param String A pointer to a Null-terminated Ascii string.
|
||||
@param MaxSize The maximum number of Destination Ascii
|
||||
char, including terminating null char.
|
||||
|
||||
@retval 0 If String is NULL.
|
||||
@retval MaxSize If there is no null character in the first MaxSize characters of String.
|
||||
@return The number of characters that percede the terminating null character.
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EFIAPI
|
||||
AsciiStrnLenS (
|
||||
IN CONST CHAR8 *String,
|
||||
IN UINTN MaxSize
|
||||
);
|
||||
|
||||
/**
|
||||
Copies the string pointed to by Source (including the terminating null char)
|
||||
to the array pointed to by Destination.
|
||||
|
||||
If an error would be returned, then the function will also ASSERT().
|
||||
|
||||
@param Destination A pointer to a Null-terminated Ascii string.
|
||||
@param DestMax The maximum number of Destination Ascii
|
||||
char, including terminating null char.
|
||||
@param Source A pointer to a Null-terminated Ascii string.
|
||||
|
||||
@retval RETURN_SUCCESS String is copied.
|
||||
@retval RETURN_BUFFER_TOO_SMALL If DestMax is NOT greater than StrLen(Source).
|
||||
@retval RETURN_INVALID_PARAMETER If Destination is NULL.
|
||||
If Source is NULL.
|
||||
If PcdMaximumAsciiStringLength is not zero,
|
||||
and DestMax is greater than
|
||||
PcdMaximumAsciiStringLength.
|
||||
If DestMax is 0.
|
||||
@retval RETURN_ACCESS_DENIED If Source and Destination overlap.
|
||||
**/
|
||||
RETURN_STATUS
|
||||
EFIAPI
|
||||
AsciiStrCpyS (
|
||||
OUT CHAR8 *Destination,
|
||||
IN UINTN DestMax,
|
||||
IN CONST CHAR8 *Source
|
||||
);
|
||||
|
||||
/**
|
||||
Copies not more than Length successive char from the string pointed to by
|
||||
Source to the array pointed to by Destination. If no null char is copied from
|
||||
Source, then Destination[Length] is always set to null.
|
||||
|
||||
If an error would be returned, then the function will also ASSERT().
|
||||
|
||||
@param Destination A pointer to a Null-terminated Ascii string.
|
||||
@param DestMax The maximum number of Destination Ascii
|
||||
char, including terminating null char.
|
||||
@param Source A pointer to a Null-terminated Ascii string.
|
||||
@param Length The maximum number of Ascii characters to copy.
|
||||
|
||||
@retval RETURN_SUCCESS String is copied.
|
||||
@retval RETURN_BUFFER_TOO_SMALL If DestMax is NOT greater than
|
||||
MIN(StrLen(Source), Length).
|
||||
@retval RETURN_INVALID_PARAMETER If Destination is NULL.
|
||||
If Source is NULL.
|
||||
If PcdMaximumAsciiStringLength is not zero,
|
||||
and DestMax is greater than
|
||||
PcdMaximumAsciiStringLength.
|
||||
If DestMax is 0.
|
||||
@retval RETURN_ACCESS_DENIED If Source and Destination overlap.
|
||||
**/
|
||||
RETURN_STATUS
|
||||
EFIAPI
|
||||
AsciiStrnCpyS (
|
||||
OUT CHAR8 *Destination,
|
||||
IN UINTN DestMax,
|
||||
IN CONST CHAR8 *Source,
|
||||
IN UINTN Length
|
||||
);
|
||||
|
||||
/**
|
||||
Appends a copy of the string pointed to by Source (including the terminating
|
||||
null char) to the end of the string pointed to by Destination.
|
||||
|
||||
If an error would be returned, then the function will also ASSERT().
|
||||
|
||||
@param Destination A pointer to a Null-terminated Ascii string.
|
||||
@param DestMax The maximum number of Destination Ascii
|
||||
char, including terminating null char.
|
||||
@param Source A pointer to a Null-terminated Ascii string.
|
||||
|
||||
@retval RETURN_SUCCESS String is appended.
|
||||
@retval RETURN_BAD_BUFFER_SIZE If DestMax is NOT greater than
|
||||
StrLen(Destination).
|
||||
@retval RETURN_BUFFER_TOO_SMALL If (DestMax - StrLen(Destination)) is NOT
|
||||
greater than StrLen(Source).
|
||||
@retval RETURN_INVALID_PARAMETER If Destination is NULL.
|
||||
If Source is NULL.
|
||||
If PcdMaximumAsciiStringLength is not zero,
|
||||
and DestMax is greater than
|
||||
PcdMaximumAsciiStringLength.
|
||||
If DestMax is 0.
|
||||
@retval RETURN_ACCESS_DENIED If Source and Destination overlap.
|
||||
**/
|
||||
RETURN_STATUS
|
||||
EFIAPI
|
||||
AsciiStrCatS (
|
||||
IN OUT CHAR8 *Destination,
|
||||
IN UINTN DestMax,
|
||||
IN CONST CHAR8 *Source
|
||||
);
|
||||
|
||||
/**
|
||||
Appends not more than Length successive char from the string pointed to by
|
||||
Source to the end of the string pointed to by Destination. If no null char is
|
||||
copied from Source, then Destination[StrLen(Destination) + Length] is always
|
||||
set to null.
|
||||
|
||||
If an error would be returned, then the function will also ASSERT().
|
||||
|
||||
@param Destination A pointer to a Null-terminated Ascii string.
|
||||
@param DestMax The maximum number of Destination Ascii
|
||||
char, including terminating null char.
|
||||
@param Source A pointer to a Null-terminated Ascii string.
|
||||
@param Length The maximum number of Ascii characters to copy.
|
||||
|
||||
@retval RETURN_SUCCESS String is appended.
|
||||
@retval RETURN_BAD_BUFFER_SIZE If DestMax is NOT greater than
|
||||
StrLen(Destination).
|
||||
@retval RETURN_BUFFER_TOO_SMALL If (DestMax - StrLen(Destination)) is NOT
|
||||
greater than MIN(StrLen(Source), Length).
|
||||
@retval RETURN_INVALID_PARAMETER If Destination is NULL.
|
||||
If Source is NULL.
|
||||
If PcdMaximumAsciiStringLength is not zero,
|
||||
and DestMax is greater than
|
||||
PcdMaximumAsciiStringLength.
|
||||
If DestMax is 0.
|
||||
@retval RETURN_ACCESS_DENIED If Source and Destination overlap.
|
||||
**/
|
||||
RETURN_STATUS
|
||||
EFIAPI
|
||||
AsciiStrnCatS (
|
||||
IN OUT CHAR8 *Destination,
|
||||
IN UINTN DestMax,
|
||||
IN CONST CHAR8 *Source,
|
||||
IN UINTN Length
|
||||
);
|
||||
|
||||
|
||||
#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
|
||||
|
||||
/**
|
||||
[ATTENTION] This function is deprecated for security reason.
|
||||
|
||||
Copies one Null-terminated Unicode string to another Null-terminated Unicode
|
||||
string and returns the new Unicode string.
|
||||
|
||||
@ -217,6 +531,8 @@ StrCpy (
|
||||
|
||||
|
||||
/**
|
||||
[ATTENTION] This function is deprecated for security reason.
|
||||
|
||||
Copies up to a specified length from one Null-terminated Unicode string to
|
||||
another Null-terminated Unicode string and returns the new Unicode string.
|
||||
|
||||
@ -253,7 +569,7 @@ StrnCpy (
|
||||
IN CONST CHAR16 *Source,
|
||||
IN UINTN Length
|
||||
);
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
Returns the length of a Null-terminated Unicode string.
|
||||
@ -381,7 +697,11 @@ StrnCmp (
|
||||
);
|
||||
|
||||
|
||||
#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
|
||||
|
||||
/**
|
||||
[ATTENTION] This function is deprecated for security reason.
|
||||
|
||||
Concatenates one Null-terminated Unicode string to another Null-terminated
|
||||
Unicode string, and returns the concatenated Unicode string.
|
||||
|
||||
@ -422,6 +742,8 @@ StrCat (
|
||||
|
||||
|
||||
/**
|
||||
[ATTENTION] This function is deprecated for security reason.
|
||||
|
||||
Concatenates up to a specified length one Null-terminated Unicode to the end
|
||||
of another Null-terminated Unicode string, and returns the concatenated
|
||||
Unicode string.
|
||||
@ -466,6 +788,7 @@ StrnCat (
|
||||
IN CONST CHAR16 *Source,
|
||||
IN UINTN Length
|
||||
);
|
||||
#endif
|
||||
|
||||
/**
|
||||
Returns the first occurrence of a Null-terminated Unicode sub-string
|
||||
@ -704,7 +1027,11 @@ UnicodeStrToAsciiStr (
|
||||
);
|
||||
|
||||
|
||||
#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
|
||||
|
||||
/**
|
||||
[ATTENTION] This function is deprecated for security reason.
|
||||
|
||||
Copies one Null-terminated ASCII string to another Null-terminated ASCII
|
||||
string and returns the new ASCII string.
|
||||
|
||||
@ -734,6 +1061,8 @@ AsciiStrCpy (
|
||||
|
||||
|
||||
/**
|
||||
[ATTENTION] This function is deprecated for security reason.
|
||||
|
||||
Copies up to a specified length one Null-terminated ASCII string to another
|
||||
Null-terminated ASCII string and returns the new ASCII string.
|
||||
|
||||
@ -767,7 +1096,7 @@ AsciiStrnCpy (
|
||||
IN CONST CHAR8 *Source,
|
||||
IN UINTN Length
|
||||
);
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
Returns the length of a Null-terminated ASCII string.
|
||||
@ -927,7 +1256,11 @@ AsciiStrnCmp (
|
||||
);
|
||||
|
||||
|
||||
#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
|
||||
|
||||
/**
|
||||
[ATTENTION] This function is deprecated for security reason.
|
||||
|
||||
Concatenates one Null-terminated ASCII string to another Null-terminated
|
||||
ASCII string, and returns the concatenated ASCII string.
|
||||
|
||||
@ -963,6 +1296,8 @@ AsciiStrCat (
|
||||
|
||||
|
||||
/**
|
||||
[ATTENTION] This function is deprecated for security reason.
|
||||
|
||||
Concatenates up to a specified length one Null-terminated ASCII string to
|
||||
the end of another Null-terminated ASCII string, and returns the
|
||||
concatenated ASCII string.
|
||||
@ -1005,7 +1340,7 @@ AsciiStrnCat (
|
||||
IN CONST CHAR8 *Source,
|
||||
IN UINTN Length
|
||||
);
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
Returns the first occurrence of a Null-terminated ASCII sub-string
|
||||
@ -1270,6 +1605,43 @@ BcdToDecimal8 (
|
||||
IN UINT8 Value
|
||||
);
|
||||
|
||||
//
|
||||
// File Path Manipulation Functions
|
||||
//
|
||||
|
||||
/**
|
||||
Removes the last directory or file entry in a path by changing the last
|
||||
L'\' to a CHAR_NULL.
|
||||
|
||||
@param[in, out] Path The pointer to the path to modify.
|
||||
|
||||
@retval FALSE Nothing was found to remove.
|
||||
@retval TRUE A directory or file was removed.
|
||||
**/
|
||||
BOOLEAN
|
||||
EFIAPI
|
||||
PathRemoveLastItem(
|
||||
IN OUT CHAR16 *Path
|
||||
);
|
||||
|
||||
/**
|
||||
Function to clean up paths.
|
||||
- Single periods in the path are removed.
|
||||
- Double periods in the path are removed along with a single parent directory.
|
||||
- Forward slashes L'/' are converted to backward slashes L'\'.
|
||||
|
||||
This will be done inline and the existing buffer may be larger than required
|
||||
upon completion.
|
||||
|
||||
@param[in] Path The pointer to the string containing the path.
|
||||
|
||||
@return Returns Path, otherwise returns NULL to indicate that an error has occured.
|
||||
**/
|
||||
CHAR16*
|
||||
EFIAPI
|
||||
PathCleanUpDirectories(
|
||||
IN CHAR16 *Path
|
||||
);
|
||||
|
||||
//
|
||||
// Linked List Functions and Macros
|
||||
@ -7277,6 +7649,57 @@ AsmPrepareAndThunk16 (
|
||||
IN OUT THUNK_CONTEXT *ThunkContext
|
||||
);
|
||||
|
||||
/**
|
||||
Generates a 16-bit random number through RDRAND instruction.
|
||||
|
||||
if Rand is NULL, then ASSERT().
|
||||
|
||||
@param[out] Rand Buffer pointer to store the random result.
|
||||
|
||||
@retval TRUE RDRAND call was successful.
|
||||
@retval FALSE Failed attempts to call RDRAND.
|
||||
|
||||
**/
|
||||
BOOLEAN
|
||||
EFIAPI
|
||||
AsmRdRand16 (
|
||||
OUT UINT16 *Rand
|
||||
);
|
||||
|
||||
/**
|
||||
Generates a 32-bit random number through RDRAND instruction.
|
||||
|
||||
if Rand is NULL, then ASSERT().
|
||||
|
||||
@param[out] Rand Buffer pointer to store the random result.
|
||||
|
||||
@retval TRUE RDRAND call was successful.
|
||||
@retval FALSE Failed attempts to call RDRAND.
|
||||
|
||||
**/
|
||||
BOOLEAN
|
||||
EFIAPI
|
||||
AsmRdRand32 (
|
||||
OUT UINT32 *Rand
|
||||
);
|
||||
|
||||
/**
|
||||
Generates a 64-bit random number through RDRAND instruction.
|
||||
|
||||
if Rand is NULL, then ASSERT().
|
||||
|
||||
@param[out] Rand Buffer pointer to store the random result.
|
||||
|
||||
@retval TRUE RDRAND call was successful.
|
||||
@retval FALSE Failed attempts to call RDRAND.
|
||||
|
||||
**/
|
||||
BOOLEAN
|
||||
EFIAPI
|
||||
AsmRdRand64 (
|
||||
OUT UINT64 *Rand
|
||||
);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
Include file matches things in PI.
|
||||
|
||||
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
@ -11,7 +11,7 @@ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
@par Revision Reference:
|
||||
PI Version 1.2
|
||||
PI Version 1.4
|
||||
|
||||
**/
|
||||
|
||||
@ -50,6 +50,16 @@ typedef enum {
|
||||
/// access I/O devices in the platform.
|
||||
///
|
||||
EfiGcdMemoryTypeMemoryMappedIo,
|
||||
///
|
||||
/// A memory region that is visible to the boot processor.
|
||||
/// This memory supports byte-addressable non-volatility.
|
||||
///
|
||||
EfiGcdMemoryTypePersistentMemory,
|
||||
///
|
||||
/// A memory region that provides higher reliability relative to other memory in the
|
||||
/// system. If all memory has the same reliability, then this bit is not used.
|
||||
///
|
||||
EfiGcdMemoryTypeMoreReliable,
|
||||
EfiGcdMemoryTypeMaximum
|
||||
} EFI_GCD_MEMORY_TYPE;
|
||||
|
||||
@ -367,7 +377,7 @@ EFI_STATUS
|
||||
resource range specified by BaseAddress and Length.
|
||||
@retval EFI_UNSUPPORTED The bit mask of attributes is not support for the memory resource
|
||||
range specified by BaseAddress and Length.
|
||||
@retval EFI_ACCESS_DEFINED The attributes for the memory resource range specified by
|
||||
@retval EFI_ACCESS_DENIED The attributes for the memory resource range specified by
|
||||
BaseAddress and Length cannot be modified.
|
||||
@retval EFI_OUT_OF_RESOURCES There are not enough system resources to modify the attributes of
|
||||
the memory resource range.
|
||||
@ -382,6 +392,31 @@ EFI_STATUS
|
||||
IN UINT64 Attributes
|
||||
);
|
||||
|
||||
/**
|
||||
Modifies the capabilities for a memory region in the global coherency domain of the
|
||||
processor.
|
||||
|
||||
@param BaseAddress The physical address that is the start address of a memory region.
|
||||
@param Length The size in bytes of the memory region.
|
||||
@param Capabilities The bit mask of capabilities that the memory region supports.
|
||||
|
||||
@retval EFI_SUCCESS The capabilities were set for the memory region.
|
||||
@retval EFI_INVALID_PARAMETER Length is zero.
|
||||
@retval EFI_UNSUPPORTED The capabilities specified by Capabilities do not include the
|
||||
memory region attributes currently in use.
|
||||
@retval EFI_ACCESS_DENIED The capabilities for the memory resource range specified by
|
||||
BaseAddress and Length cannot be modified.
|
||||
@retval EFI_OUT_OF_RESOURCES There are not enough system resources to modify the capabilities
|
||||
of the memory resource range.
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_SET_MEMORY_SPACE_CAPABILITIES) (
|
||||
IN EFI_PHYSICAL_ADDRESS BaseAddress,
|
||||
IN UINT64 Length,
|
||||
IN UINT64 Capabilities
|
||||
);
|
||||
|
||||
/**
|
||||
Returns a map of the memory resources in the global coherency domain of the
|
||||
processor.
|
||||
@ -659,7 +694,7 @@ EFI_STATUS
|
||||
//
|
||||
#define DXE_SERVICES_SIGNATURE 0x565245535f455844ULL
|
||||
#define DXE_SPECIFICATION_MAJOR_REVISION 1
|
||||
#define DXE_SPECIFICATION_MINOR_REVISION 30
|
||||
#define DXE_SPECIFICATION_MINOR_REVISION 40
|
||||
#define DXE_SERVICES_REVISION ((DXE_SPECIFICATION_MAJOR_REVISION<<16) | (DXE_SPECIFICATION_MINOR_REVISION))
|
||||
|
||||
typedef struct {
|
||||
@ -696,23 +731,12 @@ typedef struct {
|
||||
// Service to process a single firmware volume found in a capsule
|
||||
//
|
||||
EFI_PROCESS_FIRMWARE_VOLUME ProcessFirmwareVolume;
|
||||
//
|
||||
// Extensions to Global Coherency Domain Services
|
||||
//
|
||||
EFI_SET_MEMORY_SPACE_CAPABILITIES SetMemorySpaceCapabilities;
|
||||
} DXE_SERVICES;
|
||||
|
||||
typedef DXE_SERVICES EFI_DXE_SERVICES;
|
||||
|
||||
|
||||
/**
|
||||
The function prototype for invoking a function on an Application Processor.
|
||||
|
||||
This definition is used by the UEFI MP Serices Protocol, and the
|
||||
PI SMM System Table.
|
||||
|
||||
@param[in,out] Buffer The pointer to private data buffer.
|
||||
**/
|
||||
typedef
|
||||
VOID
|
||||
(EFIAPI *EFI_AP_PROCEDURE)(
|
||||
IN OUT VOID *Buffer
|
||||
);
|
||||
|
||||
#endif
|
||||
|
@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
The firmware file related definitions in PI.
|
||||
|
||||
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
@ -11,7 +11,7 @@ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
@par Revision Reference:
|
||||
PI Version 1.2.
|
||||
PI Version 1.4.
|
||||
|
||||
**/
|
||||
|
||||
@ -175,7 +175,7 @@ typedef struct {
|
||||
/// If FFS_ATTRIB_LARGE_FILE is set in Attributes, then ExtendedSize exists and Size must be set to zero.
|
||||
/// If FFS_ATTRIB_LARGE_FILE is not set then EFI_FFS_FILE_HEADER is used.
|
||||
///
|
||||
UINT32 ExtendedSize;
|
||||
UINT64 ExtendedSize;
|
||||
} EFI_FFS_FILE_HEADER2;
|
||||
|
||||
#define IS_FFS_FILE2(FfsFileHeaderPtr) \
|
||||
@ -185,7 +185,7 @@ typedef struct {
|
||||
((UINT32) (*((UINT32 *) ((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Size) & 0x00ffffff))
|
||||
|
||||
#define FFS_FILE2_SIZE(FfsFileHeaderPtr) \
|
||||
(((EFI_FFS_FILE_HEADER2 *) (UINTN) FfsFileHeaderPtr)->ExtendedSize)
|
||||
((UINT32) (((EFI_FFS_FILE_HEADER2 *) (UINTN) FfsFileHeaderPtr)->ExtendedSize))
|
||||
|
||||
typedef UINT8 EFI_SECTION_TYPE;
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
HOB related definitions in PI.
|
||||
|
||||
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
@ -11,7 +11,7 @@ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
@par Revision Reference:
|
||||
PI Version 1.0
|
||||
PI Version 1.4
|
||||
|
||||
**/
|
||||
|
||||
@ -257,8 +257,16 @@ typedef UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE;
|
||||
#define EFI_RESOURCE_ATTRIBUTE_INITIALIZED 0x00000002
|
||||
#define EFI_RESOURCE_ATTRIBUTE_TESTED 0x00000004
|
||||
#define EFI_RESOURCE_ATTRIBUTE_READ_PROTECTED 0x00000080
|
||||
//
|
||||
// This is typically used as memory cacheability attribute today.
|
||||
// NOTE: Since PI spec 1.4, please use EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTED
|
||||
// as Physical write protected attribute, and EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTED
|
||||
// means Memory cacheability attribute: The memory supports being programmed with
|
||||
// a writeprotected cacheable attribute.
|
||||
//
|
||||
#define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTED 0x00000100
|
||||
#define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTED 0x00000200
|
||||
#define EFI_RESOURCE_ATTRIBUTE_PERSISTENT 0x00800000
|
||||
//
|
||||
// The rest of the attributes are used to describe capabilities
|
||||
//
|
||||
@ -275,8 +283,27 @@ typedef UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE;
|
||||
#define EFI_RESOURCE_ATTRIBUTE_64_BIT_IO 0x00010000
|
||||
#define EFI_RESOURCE_ATTRIBUTE_UNCACHED_EXPORTED 0x00020000
|
||||
#define EFI_RESOURCE_ATTRIBUTE_READ_PROTECTABLE 0x00100000
|
||||
//
|
||||
// This is typically used as memory cacheability attribute today.
|
||||
// NOTE: Since PI spec 1.4, please use EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTABLE
|
||||
// as Memory capability attribute: The memory supports being protected from processor
|
||||
// writes, and EFI_RESOURCE_ATTRIBUTE_WRITE_PROTEC TABLE means Memory cacheability attribute:
|
||||
// The memory supports being programmed with a writeprotected cacheable attribute.
|
||||
//
|
||||
#define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTABLE 0x00200000
|
||||
#define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTABLE 0x00400000
|
||||
#define EFI_RESOURCE_ATTRIBUTE_PERSISTABLE 0x01000000
|
||||
|
||||
#define EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTED 0x00040000
|
||||
#define EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTABLE 0x00800000
|
||||
|
||||
//
|
||||
// Physical memory relative reliability attribute. This
|
||||
// memory provides higher reliability relative to other
|
||||
// memory in the system. If all memory has the same
|
||||
// reliability, then this bit is not used.
|
||||
//
|
||||
#define EFI_RESOURCE_ATTRIBUTE_MORE_RELIABLE 0x02000000
|
||||
|
||||
///
|
||||
/// Describes the resource properties of all fixed,
|
||||
|
@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
Include file matches things in PI for multiple module types.
|
||||
|
||||
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
@ -164,4 +164,18 @@ typedef struct {
|
||||
CHAR8 *PcdName;
|
||||
} EFI_PCD_INFO;
|
||||
|
||||
/**
|
||||
The function prototype for invoking a function on an Application Processor.
|
||||
|
||||
This definition is used by the UEFI MP Serices Protocol, and the
|
||||
PI SMM System Table.
|
||||
|
||||
@param[in,out] Buffer The pointer to private data buffer.
|
||||
**/
|
||||
typedef
|
||||
VOID
|
||||
(EFIAPI *EFI_AP_PROCEDURE)(
|
||||
IN OUT VOID *Buffer
|
||||
);
|
||||
|
||||
#endif
|
||||
|
@ -5,7 +5,7 @@
|
||||
from a software point of view. The path must persist from boot to boot, so
|
||||
it can not contain things like PCI bus numbers that change from boot to boot.
|
||||
|
||||
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
@ -22,6 +22,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
FILE_LICENCE ( BSD3 );
|
||||
|
||||
#include <ipxe/efi/Guid/PcAnsi.h>
|
||||
#include <ipxe/efi/IndustryStandard/Bluetooth.h>
|
||||
#include <ipxe/efi/IndustryStandard/Acpi60.h>
|
||||
|
||||
///
|
||||
/// Device Path protocol.
|
||||
@ -171,6 +173,26 @@ typedef struct {
|
||||
UINT32 ControllerNumber;
|
||||
} CONTROLLER_DEVICE_PATH;
|
||||
|
||||
///
|
||||
/// BMC Device Path SubType.
|
||||
///
|
||||
#define HW_BMC_DP 0x06
|
||||
|
||||
///
|
||||
/// BMC Device Path.
|
||||
///
|
||||
typedef struct {
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
///
|
||||
/// Interface Type.
|
||||
///
|
||||
UINT8 InterfaceType;
|
||||
///
|
||||
/// Base Address.
|
||||
///
|
||||
UINT8 BaseAddress[8];
|
||||
} BMC_DEVICE_PATH;
|
||||
|
||||
///
|
||||
/// ACPI Device Paths.
|
||||
///
|
||||
@ -275,7 +297,7 @@ typedef struct {
|
||||
#define ACPI_ADR_DISPLAY_TYPE_INTERNAL_DIGITAL 4
|
||||
|
||||
#define ACPI_DISPLAY_ADR(_DeviceIdScheme, _HeadId, _NonVgaOutput, _BiosCanDetect, _VendorInfo, _Type, _Port, _Index) \
|
||||
((UINT32)( (((_DeviceIdScheme) & 0x1) << 31) | \
|
||||
((UINT32)( ((UINT32)((_DeviceIdScheme) & 0x1) << 31) | \
|
||||
(((_HeadId) & 0x7) << 18) | \
|
||||
(((_NonVgaOutput) & 0x1) << 17) | \
|
||||
(((_BiosCanDetect) & 0x1) << 16) | \
|
||||
@ -797,6 +819,43 @@ typedef struct {
|
||||
UINT64 NamespaceUuid;
|
||||
} NVME_NAMESPACE_DEVICE_PATH;
|
||||
|
||||
///
|
||||
/// Uniform Resource Identifiers (URI) Device Path SubType
|
||||
///
|
||||
#define MSG_URI_DP 0x18
|
||||
typedef struct {
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
///
|
||||
/// Instance of the URI pursuant to RFC 3986.
|
||||
///
|
||||
CHAR8 Uri[];
|
||||
} URI_DEVICE_PATH;
|
||||
|
||||
///
|
||||
/// Universal Flash Storage (UFS) Device Path SubType.
|
||||
///
|
||||
#define MSG_UFS_DP 0x19
|
||||
typedef struct {
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
///
|
||||
/// Target ID on the UFS bus (PUN).
|
||||
///
|
||||
UINT8 Pun;
|
||||
///
|
||||
/// Logical Unit Number (LUN).
|
||||
///
|
||||
UINT8 Lun;
|
||||
} UFS_DEVICE_PATH;
|
||||
|
||||
///
|
||||
/// SD (Secure Digital) Device Path SubType.
|
||||
///
|
||||
#define MSG_SD_DP 0x1A
|
||||
typedef struct {
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT8 SlotNumber;
|
||||
} SD_DEVICE_PATH;
|
||||
|
||||
///
|
||||
/// iSCSI Device Path SubType
|
||||
///
|
||||
@ -848,6 +907,30 @@ typedef struct {
|
||||
UINT16 VlanId;
|
||||
} VLAN_DEVICE_PATH;
|
||||
|
||||
///
|
||||
/// Bluetooth Device Path SubType.
|
||||
///
|
||||
#define MSG_BLUETOOTH_DP 0x1b
|
||||
typedef struct {
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
///
|
||||
/// 48bit Bluetooth device address.
|
||||
///
|
||||
BLUETOOTH_ADDRESS BD_ADDR;
|
||||
} BLUETOOTH_DEVICE_PATH;
|
||||
|
||||
///
|
||||
/// Wi-Fi Device Path SubType.
|
||||
///
|
||||
#define MSG_WIFI_DP 0x1C
|
||||
typedef struct {
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
///
|
||||
/// Service set identifier. A 32-byte octets string.
|
||||
///
|
||||
UINT8 SSId[32];
|
||||
} WIFI_DEVICE_PATH;
|
||||
|
||||
//
|
||||
// Media Device Path
|
||||
//
|
||||
@ -1016,6 +1099,62 @@ typedef struct {
|
||||
UINT64 EndingOffset;
|
||||
} MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH;
|
||||
|
||||
///
|
||||
/// This GUID defines a RAM Disk supporting a raw disk format in volatile memory.
|
||||
///
|
||||
#define EFI_VIRTUAL_DISK_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_VOLATILE
|
||||
|
||||
extern EFI_GUID gEfiVirtualDiskGuid;
|
||||
|
||||
///
|
||||
/// This GUID defines a RAM Disk supporting an ISO image in volatile memory.
|
||||
///
|
||||
#define EFI_VIRTUAL_CD_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_VOLATILE
|
||||
|
||||
extern EFI_GUID gEfiVirtualCdGuid;
|
||||
|
||||
///
|
||||
/// This GUID defines a RAM Disk supporting a raw disk format in persistent memory.
|
||||
///
|
||||
#define EFI_PERSISTENT_VIRTUAL_DISK_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_PERSISTENT
|
||||
|
||||
extern EFI_GUID gEfiPersistentVirtualDiskGuid;
|
||||
|
||||
///
|
||||
/// This GUID defines a RAM Disk supporting an ISO image in persistent memory.
|
||||
///
|
||||
#define EFI_PERSISTENT_VIRTUAL_CD_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_PERSISTENT
|
||||
|
||||
extern EFI_GUID gEfiPersistentVirtualCdGuid;
|
||||
|
||||
///
|
||||
/// Media ram disk device path.
|
||||
///
|
||||
#define MEDIA_RAM_DISK_DP 0x09
|
||||
|
||||
///
|
||||
/// Used to describe the ram disk device path.
|
||||
///
|
||||
typedef struct {
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
///
|
||||
/// Starting Memory Address.
|
||||
///
|
||||
UINT32 StartingAddr[2];
|
||||
///
|
||||
/// Ending Memory Address.
|
||||
///
|
||||
UINT32 EndingAddr[2];
|
||||
///
|
||||
/// GUID that defines the type of the RAM Disk.
|
||||
///
|
||||
EFI_GUID TypeGuid;
|
||||
///
|
||||
/// RAM Diskinstance number, if supported. The default value is zero.
|
||||
///
|
||||
UINT16 Instance;
|
||||
} MEDIA_RAM_DISK_DEVICE_PATH;
|
||||
|
||||
///
|
||||
/// BIOS Boot Specification Device Path.
|
||||
///
|
||||
@ -1069,6 +1208,7 @@ typedef union {
|
||||
VENDOR_DEVICE_PATH Vendor;
|
||||
|
||||
CONTROLLER_DEVICE_PATH Controller;
|
||||
BMC_DEVICE_PATH Bmc;
|
||||
ACPI_HID_DEVICE_PATH Acpi;
|
||||
ACPI_EXTENDED_HID_DEVICE_PATH ExtendedAcpi;
|
||||
ACPI_ADR_DEVICE_PATH AcpiAdr;
|
||||
@ -1096,6 +1236,11 @@ typedef union {
|
||||
SAS_DEVICE_PATH Sas;
|
||||
SASEX_DEVICE_PATH SasEx;
|
||||
NVME_NAMESPACE_DEVICE_PATH NvmeNamespace;
|
||||
URI_DEVICE_PATH Uri;
|
||||
BLUETOOTH_DEVICE_PATH Bluetooth;
|
||||
WIFI_DEVICE_PATH WiFi;
|
||||
UFS_DEVICE_PATH Ufs;
|
||||
SD_DEVICE_PATH Sd;
|
||||
HARDDRIVE_DEVICE_PATH HardDrive;
|
||||
CDROM_DEVICE_PATH CD;
|
||||
|
||||
@ -1105,7 +1250,7 @@ typedef union {
|
||||
MEDIA_FW_VOL_DEVICE_PATH FirmwareVolume;
|
||||
MEDIA_FW_VOL_FILEPATH_DEVICE_PATH FirmwareFile;
|
||||
MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH Offset;
|
||||
|
||||
MEDIA_RAM_DISK_DEVICE_PATH RamDisk;
|
||||
BBS_BBS_DEVICE_PATH Bbs;
|
||||
} EFI_DEV_PATH;
|
||||
|
||||
@ -1119,6 +1264,7 @@ typedef union {
|
||||
VENDOR_DEVICE_PATH *Vendor;
|
||||
|
||||
CONTROLLER_DEVICE_PATH *Controller;
|
||||
BMC_DEVICE_PATH *Bmc;
|
||||
ACPI_HID_DEVICE_PATH *Acpi;
|
||||
ACPI_EXTENDED_HID_DEVICE_PATH *ExtendedAcpi;
|
||||
ACPI_ADR_DEVICE_PATH *AcpiAdr;
|
||||
@ -1146,6 +1292,11 @@ typedef union {
|
||||
SAS_DEVICE_PATH *Sas;
|
||||
SASEX_DEVICE_PATH *SasEx;
|
||||
NVME_NAMESPACE_DEVICE_PATH *NvmeNamespace;
|
||||
URI_DEVICE_PATH *Uri;
|
||||
BLUETOOTH_DEVICE_PATH *Bluetooth;
|
||||
WIFI_DEVICE_PATH *WiFi;
|
||||
UFS_DEVICE_PATH *Ufs;
|
||||
SD_DEVICE_PATH *Sd;
|
||||
HARDDRIVE_DEVICE_PATH *HardDrive;
|
||||
CDROM_DEVICE_PATH *CD;
|
||||
|
||||
@ -1155,7 +1306,7 @@ typedef union {
|
||||
MEDIA_FW_VOL_DEVICE_PATH *FirmwareVolume;
|
||||
MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *FirmwareFile;
|
||||
MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH *Offset;
|
||||
|
||||
MEDIA_RAM_DISK_DEVICE_PATH *RamDisk;
|
||||
BBS_BBS_DEVICE_PATH *Bbs;
|
||||
UINT8 *Raw;
|
||||
} EFI_DEV_PATH_PTR;
|
||||
|
@ -4,7 +4,7 @@
|
||||
The EFI_FORM_BROWSER2_PROTOCOL is the interface to call for drivers to
|
||||
leverage the EFI configuration driver interface.
|
||||
|
||||
Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
@ -65,6 +65,7 @@ typedef UINTN EFI_BROWSER_ACTION_REQUEST;
|
||||
#define EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD_EXIT 5
|
||||
#define EFI_BROWSER_ACTION_REQUEST_FORM_APPLY 6
|
||||
#define EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD 7
|
||||
#define EFI_BROWSER_ACTION_REQUEST_RECONNECT 8
|
||||
|
||||
|
||||
/**
|
||||
|
@ -6,7 +6,7 @@
|
||||
a single hardware device or a virtual device that is an aggregation
|
||||
of multiple physical devices.
|
||||
|
||||
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
@ -117,7 +117,7 @@ typedef EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL SIMPLE_TEXT_OUTPUT_INTERFACE;
|
||||
#define EFI_BROWN (EFI_GREEN | EFI_RED)
|
||||
#define EFI_LIGHTGRAY (EFI_BLUE | EFI_GREEN | EFI_RED)
|
||||
#define EFI_BRIGHT 0x08
|
||||
#define EFI_DARKGRAY (EFI_BRIGHT)
|
||||
#define EFI_DARKGRAY (EFI_BLACK | EFI_BRIGHT)
|
||||
#define EFI_LIGHTBLUE (EFI_BLUE | EFI_BRIGHT)
|
||||
#define EFI_LIGHTGREEN (EFI_GREEN | EFI_BRIGHT)
|
||||
#define EFI_LIGHTCYAN (EFI_CYAN | EFI_BRIGHT)
|
||||
@ -126,7 +126,18 @@ typedef EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL SIMPLE_TEXT_OUTPUT_INTERFACE;
|
||||
#define EFI_YELLOW (EFI_BROWN | EFI_BRIGHT)
|
||||
#define EFI_WHITE (EFI_BLUE | EFI_GREEN | EFI_RED | EFI_BRIGHT)
|
||||
|
||||
#define EFI_TEXT_ATTR(f, b) ((f) | ((b) << 4))
|
||||
//
|
||||
// Macro to accept color values in their raw form to create
|
||||
// a value that represents both a foreground and background
|
||||
// color in a single byte.
|
||||
// For Foreground, and EFI_* value is valid from EFI_BLACK(0x00) to
|
||||
// EFI_WHITE (0x0F).
|
||||
// For Background, only EFI_BLACK, EFI_BLUE, EFI_GREEN, EFI_CYAN,
|
||||
// EFI_RED, EFI_MAGENTA, EFI_BROWN, and EFI_LIGHTGRAY are acceptable
|
||||
//
|
||||
// Do not use EFI_BACKGROUND_xxx values with this macro.
|
||||
//
|
||||
#define EFI_TEXT_ATTR(Foreground,Background) ((Foreground) | ((Background) << 4))
|
||||
|
||||
#define EFI_BACKGROUND_BLACK 0x00
|
||||
#define EFI_BACKGROUND_BLUE 0x10
|
||||
|
@ -1,8 +1,8 @@
|
||||
/** @file
|
||||
TCG Service Protocol as defined in TCG_EFI_Protocol_1_20_Final
|
||||
TCG Service Protocol as defined in TCG_EFI_Protocol_1_22_Final
|
||||
See http://trustedcomputinggroup.org for the latest specification
|
||||
|
||||
Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
@ -44,12 +44,6 @@ typedef struct _TCG_EFI_BOOT_SERVICE_CAPABILITY {
|
||||
|
||||
typedef UINT32 TCG_ALGORITHM_ID;
|
||||
|
||||
///
|
||||
/// Note:
|
||||
/// Status codes returned for functions of EFI_TCG_PROTOCOL do not exactly match
|
||||
/// those defined in the TCG EFI Protocol 1.20 Final Specification.
|
||||
///
|
||||
|
||||
/**
|
||||
This service provides EFI protocol capability information, state information
|
||||
about the TPM, and Event Log state information.
|
||||
|
@ -4,7 +4,7 @@
|
||||
running in the EFI boot services environment, to perform data transactions over
|
||||
a USB bus. In addition, it provides an abstraction for the root hub of the USB bus.
|
||||
|
||||
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
@ -415,11 +415,42 @@ EFI_STATUS
|
||||
/**
|
||||
Submits isochronous transfer to an isochronous endpoint of a USB device.
|
||||
|
||||
This function is used to submit isochronous transfer to a target endpoint of a USB device.
|
||||
The target endpoint is specified by DeviceAddressand EndpointAddress. Isochronous transfers are
|
||||
used when working with isochronous date. It provides periodic, continuous communication between
|
||||
the host and a device. Isochronous transfers can beused only by full-speed, high-speed, and
|
||||
super-speed devices.
|
||||
|
||||
High-speed isochronous transfers can be performed using multiple data buffers. The number of
|
||||
buffers that are actually prepared for the transfer is specified by DataBuffersNumber. For
|
||||
full-speed isochronous transfers this value is ignored.
|
||||
|
||||
Data represents a list of pointers to the data buffers. For full-speed isochronous transfers
|
||||
only the data pointed by Data[0]shall be used. For high-speed isochronous transfers and for
|
||||
the split transactions depending on DataLengththere several data buffers canbe used. For the
|
||||
high-speed isochronous transfers the total number of buffers must not exceed EFI_USB_MAX_ISO_BUFFER_NUM.
|
||||
|
||||
For split transactions performed on full-speed device by high-speed host controller the total
|
||||
number of buffers is limited to EFI_USB_MAX_ISO_BUFFER_NUM1.
|
||||
If the isochronous transfer is successful, then EFI_SUCCESSis returned. The isochronous transfer
|
||||
is designed to be completed within one USB frame time, if it cannot be completed, EFI_TIMEOUT
|
||||
is returned. If an error other than timeout occurs during the USB transfer, then EFI_DEVICE_ERROR
|
||||
is returned and the detailed status code will be returned in TransferResult.
|
||||
|
||||
EFI_INVALID_PARAMETERis returned if one of the following conditionsis satisfied:
|
||||
- Data is NULL.
|
||||
- DataLength is 0.
|
||||
- DeviceSpeed is not one of the supported values listed above.
|
||||
- MaximumPacketLength is invalid. MaximumPacketLength must be 1023 or less for full-speed devices,
|
||||
and 1024 or less for high-speed and super-speed devices.
|
||||
- TransferResult is NULL.
|
||||
|
||||
@param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
|
||||
@param DeviceAddress Represents the address of the target device on the USB.
|
||||
@param EndPointAddress The combination of an endpoint number and an endpoint direction of the
|
||||
target USB device.
|
||||
@param DeviceSpeed Indicates device speed.
|
||||
@param DeviceSpeed Indicates device speed. The supported values are EFI_USB_SPEED_FULL,
|
||||
EFI_USB_SPEED_HIGH, or EFI_USB_SPEED_SUPER.
|
||||
@param MaximumPacketLength Indicates the maximum packet size the target endpoint is capable of
|
||||
sending or receiving.
|
||||
@param DataBuffersNumber Number of data buffers prepared for the transfer.
|
||||
@ -456,11 +487,43 @@ EFI_STATUS
|
||||
/**
|
||||
Submits nonblocking isochronous transfer to an isochronous endpoint of a USB device.
|
||||
|
||||
This is an asynchronous type of USB isochronous transfer. If the caller submits a USB
|
||||
isochronous transfer request through this function, this function will return immediately.
|
||||
|
||||
When the isochronous transfer completes, the IsochronousCallbackfunction will be triggered,
|
||||
the caller can know the transfer results. If the transfer is successful, the caller can get
|
||||
the data received or sent in this callback function.
|
||||
|
||||
The target endpoint is specified by DeviceAddressand EndpointAddress. Isochronous transfers
|
||||
are used when working with isochronous date. It provides periodic, continuous communication
|
||||
between the host and a device. Isochronous transfers can be used only by full-speed, high-speed,
|
||||
and super-speed devices.
|
||||
|
||||
High-speed isochronous transfers can be performed using multiple data buffers. The number of
|
||||
buffers that are actually prepared for the transfer is specified by DataBuffersNumber. For
|
||||
full-speed isochronous transfers this value is ignored.
|
||||
|
||||
Data represents a list of pointers to the data buffers. For full-speed isochronous transfers
|
||||
only the data pointed by Data[0] shall be used. For high-speed isochronous transfers and for
|
||||
the split transactions depending on DataLength there several data buffers can be used. For
|
||||
the high-speed isochronous transfers the total number of buffers must not exceed EFI_USB_MAX_ISO_BUFFER_NUM.
|
||||
|
||||
For split transactions performed on full-speed device by high-speed host controller the total
|
||||
number of buffers is limited to EFI_USB_MAX_ISO_BUFFER_NUM1.
|
||||
|
||||
EFI_INVALID_PARAMETER is returned if one of the following conditionsis satisfied:
|
||||
- Data is NULL.
|
||||
- DataLength is 0.
|
||||
- DeviceSpeed is not one of the supported values listed above.
|
||||
- MaximumPacketLength is invalid. MaximumPacketLength must be 1023 or less for full-speed
|
||||
devices and 1024 or less for high-speed and super-speed devices.
|
||||
|
||||
@param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
|
||||
@param DeviceAddress Represents the address of the target device on the USB.
|
||||
@param EndPointAddress The combination of an endpoint number and an endpoint direction of the
|
||||
target USB device.
|
||||
@param DeviceSpeed Indicates device speed.
|
||||
@param DeviceSpeed Indicates device speed. The supported values are EFI_USB_SPEED_FULL,
|
||||
EFI_USB_SPEED_HIGH, or EFI_USB_SPEED_SUPER.
|
||||
@param MaximumPacketLength Indicates the maximum packet size the target endpoint is capable of
|
||||
sending or receiving.
|
||||
@param DataBuffersNumber Number of data buffers prepared for the transfer.
|
||||
|
@ -3,7 +3,7 @@
|
||||
IFR is primarily consumed by the EFI presentation engine, and produced by EFI
|
||||
internal application and drivers as well as all add-in card option-ROM drivers
|
||||
|
||||
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
@ -782,6 +782,7 @@ typedef union {
|
||||
#define EFI_IFR_MODAL_TAG_OP 0x61
|
||||
#define EFI_IFR_REFRESH_ID_OP 0x62
|
||||
#define EFI_IFR_WARNING_IF_OP 0x63
|
||||
#define EFI_IFR_MATCH2_OP 0x64
|
||||
|
||||
//
|
||||
// Definitions of IFR Standard Headers
|
||||
@ -816,6 +817,7 @@ typedef struct _EFI_IFR_QUESTION_HEADER {
|
||||
#define EFI_IFR_FLAG_READ_ONLY 0x01
|
||||
#define EFI_IFR_FLAG_CALLBACK 0x04
|
||||
#define EFI_IFR_FLAG_RESET_REQUIRED 0x10
|
||||
#define EFI_IFR_FLAG_RECONNECT_REQUIRED 0x40
|
||||
#define EFI_IFR_FLAG_OPTIONS_ONLY 0x80
|
||||
|
||||
//
|
||||
@ -1401,6 +1403,11 @@ typedef struct _EFI_IFR_MATCH {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
} EFI_IFR_MATCH;
|
||||
|
||||
typedef struct _EFI_IFR_MATCH2 {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
EFI_GUID SyntaxType;
|
||||
} EFI_IFR_MATCH2;
|
||||
|
||||
typedef struct _EFI_IFR_MULTIPLY {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
} EFI_IFR_MULTIPLY;
|
||||
|
@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
This includes some definitions introduced in UEFI that will be used in both PEI and DXE phases.
|
||||
|
||||
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
@ -84,9 +84,47 @@ typedef enum {
|
||||
/// Address space reserved by the firmware for code that is part of the processor.
|
||||
///
|
||||
EfiPalCode,
|
||||
///
|
||||
/// A memory region that operates as EfiConventionalMemory,
|
||||
/// however it happens to also support byte-addressable non-volatility.
|
||||
///
|
||||
EfiPersistentMemory,
|
||||
EfiMaxMemoryType
|
||||
} EFI_MEMORY_TYPE;
|
||||
|
||||
///
|
||||
/// Enumeration of reset types.
|
||||
///
|
||||
typedef enum {
|
||||
///
|
||||
/// Used to induce a system-wide reset. This sets all circuitry within the
|
||||
/// system to its initial state. This type of reset is asynchronous to system
|
||||
/// operation and operates withgout regard to cycle boundaries. EfiColdReset
|
||||
/// is tantamount to a system power cycle.
|
||||
///
|
||||
EfiResetCold,
|
||||
///
|
||||
/// Used to induce a system-wide initialization. The processors are set to their
|
||||
/// initial state, and pending cycles are not corrupted. If the system does
|
||||
/// not support this reset type, then an EfiResetCold must be performed.
|
||||
///
|
||||
EfiResetWarm,
|
||||
///
|
||||
/// Used to induce an entry into a power state equivalent to the ACPI G2/S5 or G3
|
||||
/// state. If the system does not support this reset type, then when the system
|
||||
/// is rebooted, it should exhibit the EfiResetCold attributes.
|
||||
///
|
||||
EfiResetShutdown,
|
||||
///
|
||||
/// Used to induce a system-wide reset. The exact type of the reset is defined by
|
||||
/// the EFI_GUID that follows the Null-terminated Unicode string passed into
|
||||
/// ResetData. If the platform does not recognize the EFI_GUID in ResetData the
|
||||
/// platform must pick a supported reset type to perform. The platform may
|
||||
/// optionally log the parameters from any non-normal reset that occurs.
|
||||
///
|
||||
EfiResetPlatformSpecific
|
||||
} EFI_RESET_TYPE;
|
||||
|
||||
///
|
||||
/// Data structure that precedes all of the standard EFI table types.
|
||||
///
|
||||
|
@ -1,11 +1,11 @@
|
||||
/** @file
|
||||
Include file that supports UEFI.
|
||||
|
||||
This include file must contain things defined in the UEFI 2.4 specification.
|
||||
If a code construct is defined in the UEFI 2.4 specification it must be included
|
||||
This include file must contain things defined in the UEFI 2.5 specification.
|
||||
If a code construct is defined in the UEFI 2.5 specification it must be included
|
||||
by this include file.
|
||||
|
||||
Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
@ -73,9 +73,23 @@ typedef enum {
|
||||
//
|
||||
// Physical memory protection attributes
|
||||
//
|
||||
// Note: UEFI spec 2.5 and following: use EFI_MEMORY_RO as write-protected physical memory
|
||||
// protection attribute. Also, EFI_MEMORY_WP means cacheability attribute.
|
||||
//
|
||||
#define EFI_MEMORY_WP 0x0000000000001000ULL
|
||||
#define EFI_MEMORY_RP 0x0000000000002000ULL
|
||||
#define EFI_MEMORY_XP 0x0000000000004000ULL
|
||||
#define EFI_MEMORY_RO 0x0000000000020000ULL
|
||||
//
|
||||
// Physical memory persistence attribute.
|
||||
// The memory region supports byte-addressable non-volatility.
|
||||
//
|
||||
#define EFI_MEMORY_NV 0x0000000000008000ULL
|
||||
//
|
||||
// The memory region provides higher reliability relative to other memory in the system.
|
||||
// If all memory has the same reliability, then this bit is not used.
|
||||
//
|
||||
#define EFI_MEMORY_MORE_RELIABLE 0x0000000000010000ULL
|
||||
//
|
||||
// Runtime memory attribute
|
||||
//
|
||||
@ -119,18 +133,24 @@ typedef struct {
|
||||
/**
|
||||
Allocates memory pages from the system.
|
||||
|
||||
@param Type The type of allocation to perform.
|
||||
@param MemoryType The type of memory to allocate.
|
||||
@param Pages The number of contiguous 4 KB pages to allocate.
|
||||
@param Memory The pointer to a physical address. On input, the way in which the address is
|
||||
@param[in] Type The type of allocation to perform.
|
||||
@param[in] MemoryType The type of memory to allocate.
|
||||
MemoryType values in the range 0x70000000..0x7FFFFFFF
|
||||
are reserved for OEM use. MemoryType values in the range
|
||||
0x80000000..0xFFFFFFFF are reserved for use by UEFI OS loaders
|
||||
that are provided by operating system vendors. The only illegal
|
||||
memory type values are those in the range EfiMaxMemoryType..0x6FFFFFFF.
|
||||
@param[in] Pages The number of contiguous 4 KB pages to allocate.
|
||||
@param[in, out] Memory The pointer to a physical address. On input, the way in which the address is
|
||||
used depends on the value of Type.
|
||||
|
||||
@retval EFI_SUCCESS The requested pages were allocated.
|
||||
@retval EFI_INVALID_PARAMETER 1) Type is not AllocateAnyPages or
|
||||
AllocateMaxAddress or AllocateAddress.
|
||||
2) MemoryType is in the range
|
||||
EfiMaxMemoryType..0x6FFFFFFF.
|
||||
3) Memory is NULL.
|
||||
EfiMaxMemoryType..0x7FFFFFFF.
|
||||
4) MemoryType was EfiPersistentMemory.
|
||||
@retval EFI_OUT_OF_RESOURCES The pages could not be allocated.
|
||||
@retval EFI_NOT_FOUND The requested pages could not be found.
|
||||
|
||||
@ -147,8 +167,8 @@ EFI_STATUS
|
||||
/**
|
||||
Frees memory pages.
|
||||
|
||||
@param Memory The base physical address of the pages to be freed.
|
||||
@param Pages The number of contiguous 4 KB pages to free.
|
||||
@param[in] Memory The base physical address of the pages to be freed.
|
||||
@param[in] Pages The number of contiguous 4 KB pages to free.
|
||||
|
||||
@retval EFI_SUCCESS The requested pages were freed.
|
||||
@retval EFI_INVALID_PARAMETER Memory is not a page-aligned address or Pages is invalid.
|
||||
@ -166,18 +186,18 @@ EFI_STATUS
|
||||
/**
|
||||
Returns the current memory map.
|
||||
|
||||
@param MemoryMapSize A pointer to the size, in bytes, of the MemoryMap buffer.
|
||||
@param[in, out] MemoryMapSize A pointer to the size, in bytes, of the MemoryMap buffer.
|
||||
On input, this is the size of the buffer allocated by the caller.
|
||||
On output, it is the size of the buffer returned by the firmware if
|
||||
the buffer was large enough, or the size of the buffer needed to contain
|
||||
the map if the buffer was too small.
|
||||
@param MemoryMap A pointer to the buffer in which firmware places the current memory
|
||||
@param[in, out] MemoryMap A pointer to the buffer in which firmware places the current memory
|
||||
map.
|
||||
@param MapKey A pointer to the location in which firmware returns the key for the
|
||||
@param[out] MapKey A pointer to the location in which firmware returns the key for the
|
||||
current memory map.
|
||||
@param DescriptorSize A pointer to the location in which firmware returns the size, in bytes, of
|
||||
@param[out] DescriptorSize A pointer to the location in which firmware returns the size, in bytes, of
|
||||
an individual EFI_MEMORY_DESCRIPTOR.
|
||||
@param DescriptorVersion A pointer to the location in which firmware returns the version number
|
||||
@param[out] DescriptorVersion A pointer to the location in which firmware returns the version number
|
||||
associated with the EFI_MEMORY_DESCRIPTOR.
|
||||
|
||||
@retval EFI_SUCCESS The memory map was returned in the MemoryMap buffer.
|
||||
@ -201,14 +221,20 @@ EFI_STATUS
|
||||
/**
|
||||
Allocates pool memory.
|
||||
|
||||
@param PoolType The type of pool to allocate.
|
||||
@param Size The number of bytes to allocate from the pool.
|
||||
@param Buffer A pointer to a pointer to the allocated buffer if the call succeeds;
|
||||
@param[in] PoolType The type of pool to allocate.
|
||||
MemoryType values in the range 0x70000000..0x7FFFFFFF
|
||||
are reserved for OEM use. MemoryType values in the range
|
||||
0x80000000..0xFFFFFFFF are reserved for use by UEFI OS loaders
|
||||
that are provided by operating system vendors. The only illegal
|
||||
memory type values are those in the range EfiMaxMemoryType..0x6FFFFFFF.
|
||||
@param[in] Size The number of bytes to allocate from the pool.
|
||||
@param[out] Buffer A pointer to a pointer to the allocated buffer if the call succeeds;
|
||||
undefined otherwise.
|
||||
|
||||
@retval EFI_SUCCESS The requested number of bytes was allocated.
|
||||
@retval EFI_OUT_OF_RESOURCES The pool requested could not be allocated.
|
||||
@retval EFI_INVALID_PARAMETER PoolType was invalid or Buffer is NULL.
|
||||
PoolType was EfiPersistentMemory.
|
||||
|
||||
**/
|
||||
typedef
|
||||
@ -222,7 +248,7 @@ EFI_STATUS
|
||||
/**
|
||||
Returns pool memory to the system.
|
||||
|
||||
@param Buffer The pointer to the buffer to free.
|
||||
@param[in] Buffer The pointer to the buffer to free.
|
||||
|
||||
@retval EFI_SUCCESS The memory was returned to the system.
|
||||
@retval EFI_INVALID_PARAMETER Buffer was invalid.
|
||||
@ -237,10 +263,10 @@ EFI_STATUS
|
||||
/**
|
||||
Changes the runtime addressing mode of EFI firmware from physical to virtual.
|
||||
|
||||
@param MemoryMapSize The size in bytes of VirtualMap.
|
||||
@param DescriptorSize The size in bytes of an entry in the VirtualMap.
|
||||
@param DescriptorVersion The version of the structure entries in VirtualMap.
|
||||
@param VirtualMap An array of memory descriptors which contain new virtual
|
||||
@param[in] MemoryMapSize The size in bytes of VirtualMap.
|
||||
@param[in] DescriptorSize The size in bytes of an entry in the VirtualMap.
|
||||
@param[in] DescriptorVersion The version of the structure entries in VirtualMap.
|
||||
@param[in] VirtualMap An array of memory descriptors which contain new virtual
|
||||
address mapping information for all runtime ranges.
|
||||
|
||||
@retval EFI_SUCCESS The virtual address map has been applied.
|
||||
@ -265,12 +291,12 @@ EFI_STATUS
|
||||
/**
|
||||
Connects one or more drivers to a controller.
|
||||
|
||||
@param ControllerHandle The handle of the controller to which driver(s) are to be connected.
|
||||
@param DriverImageHandle A pointer to an ordered list handles that support the
|
||||
@param[in] ControllerHandle The handle of the controller to which driver(s) are to be connected.
|
||||
@param[in] DriverImageHandle A pointer to an ordered list handles that support the
|
||||
EFI_DRIVER_BINDING_PROTOCOL.
|
||||
@param RemainingDevicePath A pointer to the device path that specifies a child of the
|
||||
@param[in] RemainingDevicePath A pointer to the device path that specifies a child of the
|
||||
controller specified by ControllerHandle.
|
||||
@param Recursive If TRUE, then ConnectController() is called recursively
|
||||
@param[in] Recursive If TRUE, then ConnectController() is called recursively
|
||||
until the entire tree of controllers below the controller specified
|
||||
by ControllerHandle have been created. If FALSE, then
|
||||
the tree of controllers is only expanded one level.
|
||||
@ -299,11 +325,11 @@ EFI_STATUS
|
||||
/**
|
||||
Disconnects one or more drivers from a controller.
|
||||
|
||||
@param ControllerHandle The handle of the controller from which driver(s) are to be disconnected.
|
||||
@param DriverImageHandle The driver to disconnect from ControllerHandle.
|
||||
@param[in] ControllerHandle The handle of the controller from which driver(s) are to be disconnected.
|
||||
@param[in] DriverImageHandle The driver to disconnect from ControllerHandle.
|
||||
If DriverImageHandle is NULL, then all the drivers currently managing
|
||||
ControllerHandle are disconnected from ControllerHandle.
|
||||
@param ChildHandle The handle of the child to destroy.
|
||||
@param[in] ChildHandle The handle of the child to destroy.
|
||||
If ChildHandle is NULL, then all the children of ControllerHandle are
|
||||
destroyed before the drivers are disconnected from ControllerHandle.
|
||||
|
||||
@ -338,8 +364,8 @@ EFI_STATUS
|
||||
/**
|
||||
Determines the new virtual address that is to be used on subsequent memory accesses.
|
||||
|
||||
@param DebugDisposition Supplies type information for the pointer being converted.
|
||||
@param Address A pointer to a pointer that is to be fixed to be the value needed
|
||||
@param[in] DebugDisposition Supplies type information for the pointer being converted.
|
||||
@param[in, out] Address A pointer to a pointer that is to be fixed to be the value needed
|
||||
for the new virtual address mappings being applied.
|
||||
|
||||
@retval EFI_SUCCESS The pointer pointed to by Address was modified.
|
||||
@ -382,8 +408,8 @@ EFI_STATUS
|
||||
/**
|
||||
Invoke a notification event
|
||||
|
||||
@param Event Event whose notification function is being invoked.
|
||||
@param Context The pointer to the notification function's context,
|
||||
@param[in] Event Event whose notification function is being invoked.
|
||||
@param[in] Context The pointer to the notification function's context,
|
||||
which is implementation-dependent.
|
||||
|
||||
**/
|
||||
@ -397,12 +423,12 @@ VOID
|
||||
/**
|
||||
Creates an event.
|
||||
|
||||
@param Type The type of event to create and its mode and attributes.
|
||||
@param NotifyTpl The task priority level of event notifications, if needed.
|
||||
@param NotifyFunction The pointer to the event's notification function, if any.
|
||||
@param NotifyContext The pointer to the notification function's context; corresponds to parameter
|
||||
@param[in] Type The type of event to create and its mode and attributes.
|
||||
@param[in] NotifyTpl The task priority level of event notifications, if needed.
|
||||
@param[in] NotifyFunction The pointer to the event's notification function, if any.
|
||||
@param[in] NotifyContext The pointer to the notification function's context; corresponds to parameter
|
||||
Context in the notification function.
|
||||
@param Event The pointer to the newly created event if the call succeeds; undefined
|
||||
@param[out] Event The pointer to the newly created event if the call succeeds; undefined
|
||||
otherwise.
|
||||
|
||||
@retval EFI_SUCCESS The event structure was created.
|
||||
@ -423,15 +449,15 @@ EFI_STATUS
|
||||
/**
|
||||
Creates an event in a group.
|
||||
|
||||
@param Type The type of event to create and its mode and attributes.
|
||||
@param NotifyTpl The task priority level of event notifications,if needed.
|
||||
@param NotifyFunction The pointer to the event's notification function, if any.
|
||||
@param NotifyContext The pointer to the notification function's context; corresponds to parameter
|
||||
@param[in] Type The type of event to create and its mode and attributes.
|
||||
@param[in] NotifyTpl The task priority level of event notifications,if needed.
|
||||
@param[in] NotifyFunction The pointer to the event's notification function, if any.
|
||||
@param[in] NotifyContext The pointer to the notification function's context; corresponds to parameter
|
||||
Context in the notification function.
|
||||
@param EventGroup The pointer to the unique identifier of the group to which this event belongs.
|
||||
@param[in] EventGroup The pointer to the unique identifier of the group to which this event belongs.
|
||||
If this is NULL, then the function behaves as if the parameters were passed
|
||||
to CreateEvent.
|
||||
@param Event The pointer to the newly created event if the call succeeds; undefined
|
||||
@param[out] Event The pointer to the newly created event if the call succeeds; undefined
|
||||
otherwise.
|
||||
|
||||
@retval EFI_SUCCESS The event structure was created.
|
||||
@ -471,9 +497,9 @@ typedef enum {
|
||||
/**
|
||||
Sets the type of timer and the trigger time for a timer event.
|
||||
|
||||
@param Event The timer event that is to be signaled at the specified time.
|
||||
@param Type The type of time that is specified in TriggerTime.
|
||||
@param TriggerTime The number of 100ns units until the timer expires.
|
||||
@param[in] Event The timer event that is to be signaled at the specified time.
|
||||
@param[in] Type The type of time that is specified in TriggerTime.
|
||||
@param[in] TriggerTime The number of 100ns units until the timer expires.
|
||||
A TriggerTime of 0 is legal.
|
||||
If Type is TimerRelative and TriggerTime is 0, then the timer
|
||||
event will be signaled on the next timer tick.
|
||||
@ -495,7 +521,7 @@ EFI_STATUS
|
||||
/**
|
||||
Signals an event.
|
||||
|
||||
@param Event The event to signal.
|
||||
@param[in] Event The event to signal.
|
||||
|
||||
@retval EFI_SUCCESS The event has been signaled.
|
||||
|
||||
@ -509,9 +535,9 @@ EFI_STATUS
|
||||
/**
|
||||
Stops execution until an event is signaled.
|
||||
|
||||
@param NumberOfEvents The number of events in the Event array.
|
||||
@param Event An array of EFI_EVENT.
|
||||
@param Index The pointer to the index of the event which satisfied the wait condition.
|
||||
@param[in] NumberOfEvents The number of events in the Event array.
|
||||
@param[in] Event An array of EFI_EVENT.
|
||||
@param[out] Index The pointer to the index of the event which satisfied the wait condition.
|
||||
|
||||
@retval EFI_SUCCESS The event indicated by Index was signaled.
|
||||
@retval EFI_INVALID_PARAMETER 1) NumberOfEvents is 0.
|
||||
@ -531,7 +557,7 @@ EFI_STATUS
|
||||
/**
|
||||
Closes an event.
|
||||
|
||||
@param Event The event to close.
|
||||
@param[in] Event The event to close.
|
||||
|
||||
@retval EFI_SUCCESS The event has been closed.
|
||||
|
||||
@ -545,7 +571,7 @@ EFI_STATUS
|
||||
/**
|
||||
Checks whether an event is in the signaled state.
|
||||
|
||||
@param Event The event to check.
|
||||
@param[in] Event The event to check.
|
||||
|
||||
@retval EFI_SUCCESS The event is in the signaled state.
|
||||
@retval EFI_NOT_READY The event is not in the signaled state.
|
||||
@ -571,7 +597,7 @@ EFI_STATUS
|
||||
/**
|
||||
Raises a task's priority level and returns its previous level.
|
||||
|
||||
@param NewTpl The new task priority level.
|
||||
@param[in] NewTpl The new task priority level.
|
||||
|
||||
@return Previous task priority level
|
||||
|
||||
@ -585,7 +611,7 @@ EFI_TPL
|
||||
/**
|
||||
Restores a task's priority level to its previous value.
|
||||
|
||||
@param OldTpl The previous task priority level to restore.
|
||||
@param[in] OldTpl The previous task priority level to restore.
|
||||
|
||||
**/
|
||||
typedef
|
||||
@ -597,14 +623,14 @@ VOID
|
||||
/**
|
||||
Returns the value of a variable.
|
||||
|
||||
@param VariableName A Null-terminated string that is the name of the vendor's
|
||||
@param[in] VariableName A Null-terminated string that is the name of the vendor's
|
||||
variable.
|
||||
@param VendorGuid A unique identifier for the vendor.
|
||||
@param Attributes If not NULL, a pointer to the memory location to return the
|
||||
@param[in] VendorGuid A unique identifier for the vendor.
|
||||
@param[out] Attributes If not NULL, a pointer to the memory location to return the
|
||||
attributes bitmask for the variable.
|
||||
@param DataSize On input, the size in bytes of the return Data buffer.
|
||||
@param[in, out] DataSize On input, the size in bytes of the return Data buffer.
|
||||
On output the size of data returned in Data.
|
||||
@param Data The buffer to return the contents of the variable.
|
||||
@param[out] Data The buffer to return the contents of the variable.
|
||||
|
||||
@retval EFI_SUCCESS The function completed successfully.
|
||||
@retval EFI_NOT_FOUND The variable was not found.
|
||||
@ -630,11 +656,11 @@ EFI_STATUS
|
||||
/**
|
||||
Enumerates the current variable names.
|
||||
|
||||
@param VariableNameSize The size of the VariableName buffer.
|
||||
@param VariableName On input, supplies the last VariableName that was returned
|
||||
@param[in, out] VariableNameSize The size of the VariableName buffer.
|
||||
@param[in, out] VariableName On input, supplies the last VariableName that was returned
|
||||
by GetNextVariableName(). On output, returns the Nullterminated
|
||||
string of the current variable.
|
||||
@param VendorGuid On input, supplies the last VendorGuid that was returned by
|
||||
@param[in, out] VendorGuid On input, supplies the last VendorGuid that was returned by
|
||||
GetNextVariableName(). On output, returns the
|
||||
VendorGuid of the current variable.
|
||||
|
||||
@ -658,13 +684,13 @@ EFI_STATUS
|
||||
/**
|
||||
Sets the value of a variable.
|
||||
|
||||
@param VariableName A Null-terminated string that is the name of the vendor's variable.
|
||||
@param[in] VariableName A Null-terminated string that is the name of the vendor's variable.
|
||||
Each VariableName is unique for each VendorGuid. VariableName must
|
||||
contain 1 or more characters. If VariableName is an empty string,
|
||||
then EFI_INVALID_PARAMETER is returned.
|
||||
@param VendorGuid A unique identifier for the vendor.
|
||||
@param Attributes Attributes bitmask to set for the variable.
|
||||
@param DataSize The size in bytes of the Data buffer. Unless the EFI_VARIABLE_APPEND_WRITE,
|
||||
@param[in] VendorGuid A unique identifier for the vendor.
|
||||
@param[in] Attributes Attributes bitmask to set for the variable.
|
||||
@param[in] DataSize The size in bytes of the Data buffer. Unless the EFI_VARIABLE_APPEND_WRITE,
|
||||
EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS, or
|
||||
EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS attribute is set, a size of zero
|
||||
causes the variable to be deleted. When the EFI_VARIABLE_APPEND_WRITE attribute is
|
||||
@ -673,7 +699,7 @@ EFI_STATUS
|
||||
even if no new data value is provided,see the description of the
|
||||
EFI_VARIABLE_AUTHENTICATION_2 descriptor below. In this case the DataSize will not
|
||||
be zero since the EFI_VARIABLE_AUTHENTICATION_2 descriptor will be populated).
|
||||
@param Data The contents for the variable.
|
||||
@param[in] Data The contents for the variable.
|
||||
|
||||
@retval EFI_SUCCESS The firmware has successfully stored the variable and its data as
|
||||
defined by the Attributes.
|
||||
@ -735,8 +761,8 @@ typedef struct {
|
||||
Returns the current time and date information, and the time-keeping capabilities
|
||||
of the hardware platform.
|
||||
|
||||
@param Time A pointer to storage to receive a snapshot of the current time.
|
||||
@param Capabilities An optional pointer to a buffer to receive the real time clock
|
||||
@param[out] Time A pointer to storage to receive a snapshot of the current time.
|
||||
@param[out] Capabilities An optional pointer to a buffer to receive the real time clock
|
||||
device's capabilities.
|
||||
|
||||
@retval EFI_SUCCESS The operation completed successfully.
|
||||
@ -754,7 +780,7 @@ EFI_STATUS
|
||||
/**
|
||||
Sets the current local time and date information.
|
||||
|
||||
@param Time A pointer to the current time.
|
||||
@param[in] Time A pointer to the current time.
|
||||
|
||||
@retval EFI_SUCCESS The operation completed successfully.
|
||||
@retval EFI_INVALID_PARAMETER A time field is out of range.
|
||||
@ -770,9 +796,9 @@ EFI_STATUS
|
||||
/**
|
||||
Returns the current wakeup alarm clock setting.
|
||||
|
||||
@param Enabled Indicates if the alarm is currently enabled or disabled.
|
||||
@param Pending Indicates if the alarm signal is pending and requires acknowledgement.
|
||||
@param Time The current alarm setting.
|
||||
@param[out] Enabled Indicates if the alarm is currently enabled or disabled.
|
||||
@param[out] Pending Indicates if the alarm signal is pending and requires acknowledgement.
|
||||
@param[out] Time The current alarm setting.
|
||||
|
||||
@retval EFI_SUCCESS The alarm settings were returned.
|
||||
@retval EFI_INVALID_PARAMETER Enabled is NULL.
|
||||
@ -793,8 +819,8 @@ EFI_STATUS
|
||||
/**
|
||||
Sets the system wakeup alarm clock time.
|
||||
|
||||
@param Enabled Enable or disable the wakeup alarm.
|
||||
@param Time If Enable is TRUE, the time to set the wakeup alarm for.
|
||||
@param[in] Enable Enable or disable the wakeup alarm.
|
||||
@param[in] Time If Enable is TRUE, the time to set the wakeup alarm for.
|
||||
If Enable is FALSE, then this parameter is optional, and may be NULL.
|
||||
|
||||
@retval EFI_SUCCESS If Enable is TRUE, then the wakeup alarm was enabled. If
|
||||
@ -814,17 +840,17 @@ EFI_STATUS
|
||||
/**
|
||||
Loads an EFI image into memory.
|
||||
|
||||
@param BootPolicy If TRUE, indicates that the request originates from the boot
|
||||
@param[in] BootPolicy If TRUE, indicates that the request originates from the boot
|
||||
manager, and that the boot manager is attempting to load
|
||||
FilePath as a boot selection. Ignored if SourceBuffer is
|
||||
not NULL.
|
||||
@param ParentImageHandle The caller's image handle.
|
||||
@param DevicePath The DeviceHandle specific file path from which the image is
|
||||
@param[in] ParentImageHandle The caller's image handle.
|
||||
@param[in] DevicePath The DeviceHandle specific file path from which the image is
|
||||
loaded.
|
||||
@param SourceBuffer If not NULL, a pointer to the memory location containing a copy
|
||||
@param[in] SourceBuffer If not NULL, a pointer to the memory location containing a copy
|
||||
of the image to be loaded.
|
||||
@param SourceSize The size in bytes of SourceBuffer. Ignored if SourceBuffer is NULL.
|
||||
@param ImageHandle The pointer to the returned image handle that is created when the
|
||||
@param[in] SourceSize The size in bytes of SourceBuffer. Ignored if SourceBuffer is NULL.
|
||||
@param[out] ImageHandle The pointer to the returned image handle that is created when the
|
||||
image is successfully loaded.
|
||||
|
||||
@retval EFI_SUCCESS Image was loaded into memory correctly.
|
||||
@ -855,9 +881,9 @@ EFI_STATUS
|
||||
/**
|
||||
Transfers control to a loaded image's entry point.
|
||||
|
||||
@param ImageHandle Handle of image to be started.
|
||||
@param ExitDataSize The pointer to the size, in bytes, of ExitData.
|
||||
@param ExitData The pointer to a pointer to a data buffer that includes a Null-terminated
|
||||
@param[in] ImageHandle Handle of image to be started.
|
||||
@param[out] ExitDataSize The pointer to the size, in bytes, of ExitData.
|
||||
@param[out] ExitData The pointer to a pointer to a data buffer that includes a Null-terminated
|
||||
string, optionally followed by additional binary data.
|
||||
|
||||
@retval EFI_INVALID_PARAMETER ImageHandle is either an invalid image handle or the image
|
||||
@ -877,11 +903,11 @@ EFI_STATUS
|
||||
/**
|
||||
Terminates a loaded EFI image and returns control to boot services.
|
||||
|
||||
@param ImageHandle Handle that identifies the image. This parameter is passed to the
|
||||
@param[in] ImageHandle Handle that identifies the image. This parameter is passed to the
|
||||
image on entry.
|
||||
@param ExitStatus The image's exit code.
|
||||
@param ExitDataSize The size, in bytes, of ExitData. Ignored if ExitStatus is EFI_SUCCESS.
|
||||
@param ExitData The pointer to a data buffer that includes a Null-terminated string,
|
||||
@param[in] ExitStatus The image's exit code.
|
||||
@param[in] ExitDataSize The size, in bytes, of ExitData. Ignored if ExitStatus is EFI_SUCCESS.
|
||||
@param[in] ExitData The pointer to a data buffer that includes a Null-terminated string,
|
||||
optionally followed by additional binary data. The string is a
|
||||
description that the caller may use to further indicate the reason
|
||||
for the image's exit. ExitData is only valid if ExitStatus
|
||||
@ -906,7 +932,7 @@ EFI_STATUS
|
||||
/**
|
||||
Unloads an image.
|
||||
|
||||
@param ImageHandle Handle that identifies the image to be unloaded.
|
||||
@param[in] ImageHandle Handle that identifies the image to be unloaded.
|
||||
|
||||
@retval EFI_SUCCESS The image has been unloaded.
|
||||
@retval EFI_INVALID_PARAMETER ImageHandle is not a valid image handle.
|
||||
@ -921,8 +947,8 @@ EFI_STATUS
|
||||
/**
|
||||
Terminates all boot services.
|
||||
|
||||
@param ImageHandle Handle that identifies the exiting image.
|
||||
@param MapKey Key to the latest memory map.
|
||||
@param[in] ImageHandle Handle that identifies the exiting image.
|
||||
@param[in] MapKey Key to the latest memory map.
|
||||
|
||||
@retval EFI_SUCCESS Boot services have been terminated.
|
||||
@retval EFI_INVALID_PARAMETER MapKey is incorrect.
|
||||
@ -938,7 +964,7 @@ EFI_STATUS
|
||||
/**
|
||||
Induces a fine-grained stall.
|
||||
|
||||
@param Microseconds The number of microseconds to stall execution.
|
||||
@param[in] Microseconds The number of microseconds to stall execution.
|
||||
|
||||
@retval EFI_SUCCESS Execution was stalled at least the requested number of
|
||||
Microseconds.
|
||||
@ -953,10 +979,10 @@ EFI_STATUS
|
||||
/**
|
||||
Sets the system's watchdog timer.
|
||||
|
||||
@param Timeout The number of seconds to set the watchdog timer to.
|
||||
@param WatchdogCode The numeric code to log on a watchdog timer timeout event.
|
||||
@param DataSize The size, in bytes, of WatchdogData.
|
||||
@param WatchdogData A data buffer that includes a Null-terminated string, optionally
|
||||
@param[in] Timeout The number of seconds to set the watchdog timer to.
|
||||
@param[in] WatchdogCode The numeric code to log on a watchdog timer timeout event.
|
||||
@param[in] DataSize The size, in bytes, of WatchdogData.
|
||||
@param[in] WatchdogData A data buffer that includes a Null-terminated string, optionally
|
||||
followed by additional binary data.
|
||||
|
||||
@retval EFI_SUCCESS The timeout has been set.
|
||||
@ -975,46 +1001,13 @@ EFI_STATUS
|
||||
IN CHAR16 *WatchdogData OPTIONAL
|
||||
);
|
||||
|
||||
///
|
||||
/// Enumeration of reset types.
|
||||
///
|
||||
typedef enum {
|
||||
///
|
||||
/// Used to induce a system-wide reset. This sets all circuitry within the
|
||||
/// system to its initial state. This type of reset is asynchronous to system
|
||||
/// operation and operates withgout regard to cycle boundaries. EfiColdReset
|
||||
/// is tantamount to a system power cycle.
|
||||
///
|
||||
EfiResetCold,
|
||||
///
|
||||
/// Used to induce a system-wide initialization. The processors are set to their
|
||||
/// initial state, and pending cycles are not corrupted. If the system does
|
||||
/// not support this reset type, then an EfiResetCold must be performed.
|
||||
///
|
||||
EfiResetWarm,
|
||||
///
|
||||
/// Used to induce an entry into a power state equivalent to the ACPI G2/S5 or G3
|
||||
/// state. If the system does not support this reset type, then when the system
|
||||
/// is rebooted, it should exhibit the EfiResetCold attributes.
|
||||
///
|
||||
EfiResetShutdown,
|
||||
///
|
||||
/// Used to induce a system-wide reset. The exact type of the reset is defined by
|
||||
/// the EFI_GUID that follows the Null-terminated Unicode string passed into
|
||||
/// ResetData. If the platform does not recognize the EFI_GUID in ResetData the
|
||||
/// platform must pick a supported reset type to perform. The platform may
|
||||
/// optionally log the parameters from any non-normal reset that occurs.
|
||||
///
|
||||
EfiResetPlatformSpecific
|
||||
} EFI_RESET_TYPE;
|
||||
|
||||
/**
|
||||
Resets the entire platform.
|
||||
|
||||
@param ResetType The type of reset to perform.
|
||||
@param ResetStatus The status code for the reset.
|
||||
@param DataSize The size, in bytes, of WatchdogData.
|
||||
@param ResetData For a ResetType of EfiResetCold, EfiResetWarm, or
|
||||
@param[in] ResetType The type of reset to perform.
|
||||
@param[in] ResetStatus The status code for the reset.
|
||||
@param[in] DataSize The size, in bytes, of WatchdogData.
|
||||
@param[in] ResetData For a ResetType of EfiResetCold, EfiResetWarm, or
|
||||
EfiResetShutdown the data buffer starts with a Null-terminated
|
||||
string, optionally followed by additional binary data.
|
||||
|
||||
@ -1031,7 +1024,7 @@ VOID
|
||||
/**
|
||||
Returns a monotonically increasing count for the platform.
|
||||
|
||||
@param Count The pointer to returned value.
|
||||
@param[out] Count The pointer to returned value.
|
||||
|
||||
@retval EFI_SUCCESS The next monotonic count was returned.
|
||||
@retval EFI_INVALID_PARAMETER Count is NULL.
|
||||
@ -1047,7 +1040,7 @@ EFI_STATUS
|
||||
/**
|
||||
Returns the next high 32 bits of the platform's monotonic counter.
|
||||
|
||||
@param HighCount The pointer to returned value.
|
||||
@param[out] HighCount The pointer to returned value.
|
||||
|
||||
@retval EFI_SUCCESS The next high monotonic count was returned.
|
||||
@retval EFI_INVALID_PARAMETER HighCount is NULL.
|
||||
@ -1063,9 +1056,9 @@ EFI_STATUS
|
||||
/**
|
||||
Computes and returns a 32-bit CRC for a data buffer.
|
||||
|
||||
@param Data A pointer to the buffer on which the 32-bit CRC is to be computed.
|
||||
@param DataSize The number of bytes in the buffer Data.
|
||||
@param Crc32 The 32-bit CRC that was computed for the data buffer specified by Data
|
||||
@param[in] Data A pointer to the buffer on which the 32-bit CRC is to be computed.
|
||||
@param[in] DataSize The number of bytes in the buffer Data.
|
||||
@param[out] Crc32 The 32-bit CRC that was computed for the data buffer specified by Data
|
||||
and DataSize.
|
||||
|
||||
@retval EFI_SUCCESS The 32-bit CRC was computed for the data buffer and returned in
|
||||
@ -1086,9 +1079,9 @@ EFI_STATUS
|
||||
/**
|
||||
Copies the contents of one buffer to another buffer.
|
||||
|
||||
@param Destination The pointer to the destination buffer of the memory copy.
|
||||
@param Source The pointer to the source buffer of the memory copy.
|
||||
@param Length Number of bytes to copy from Source to Destination.
|
||||
@param[in] Destination The pointer to the destination buffer of the memory copy.
|
||||
@param[in] Source The pointer to the source buffer of the memory copy.
|
||||
@param[in] Length Number of bytes to copy from Source to Destination.
|
||||
|
||||
**/
|
||||
typedef
|
||||
@ -1102,9 +1095,9 @@ VOID
|
||||
/**
|
||||
The SetMem() function fills a buffer with a specified value.
|
||||
|
||||
@param Buffer The pointer to the buffer to fill.
|
||||
@param Size Number of bytes in Buffer to fill.
|
||||
@param Value Value to fill Buffer with.
|
||||
@param[in] Buffer The pointer to the buffer to fill.
|
||||
@param[in] Size Number of bytes in Buffer to fill.
|
||||
@param[in] Value Value to fill Buffer with.
|
||||
|
||||
**/
|
||||
typedef
|
||||
@ -1132,10 +1125,10 @@ typedef enum {
|
||||
InstallMultipleProtocolInterfaces() be used in place of
|
||||
InstallProtocolInterface()
|
||||
|
||||
@param Handle A pointer to the EFI_HANDLE on which the interface is to be installed.
|
||||
@param Protocol The numeric ID of the protocol interface.
|
||||
@param InterfaceType Indicates whether Interface is supplied in native form.
|
||||
@param Interface A pointer to the protocol interface.
|
||||
@param[in, out] Handle A pointer to the EFI_HANDLE on which the interface is to be installed.
|
||||
@param[in] Protocol The numeric ID of the protocol interface.
|
||||
@param[in] InterfaceType Indicates whether Interface is supplied in native form.
|
||||
@param[in] Interface A pointer to the protocol interface.
|
||||
|
||||
@retval EFI_SUCCESS The protocol interface was installed.
|
||||
@retval EFI_OUT_OF_RESOURCES Space for a new handle could not be allocated.
|
||||
@ -1157,7 +1150,7 @@ EFI_STATUS
|
||||
/**
|
||||
Installs one or more protocol interfaces into the boot services environment.
|
||||
|
||||
@param Handle The pointer to a handle to install the new protocol interfaces on,
|
||||
@param[in, out] Handle The pointer to a handle to install the new protocol interfaces on,
|
||||
or a pointer to NULL if a new handle is to be allocated.
|
||||
@param ... A variable argument list containing pairs of protocol GUIDs and protocol
|
||||
interfaces.
|
||||
@ -1180,11 +1173,11 @@ EFI_STATUS
|
||||
/**
|
||||
Reinstalls a protocol interface on a device handle.
|
||||
|
||||
@param Handle Handle on which the interface is to be reinstalled.
|
||||
@param Protocol The numeric ID of the interface.
|
||||
@param OldInterface A pointer to the old interface. NULL can be used if a structure is not
|
||||
@param[in] Handle Handle on which the interface is to be reinstalled.
|
||||
@param[in] Protocol The numeric ID of the interface.
|
||||
@param[in] OldInterface A pointer to the old interface. NULL can be used if a structure is not
|
||||
associated with Protocol.
|
||||
@param NewInterface A pointer to the new interface.
|
||||
@param[in] NewInterface A pointer to the new interface.
|
||||
|
||||
@retval EFI_SUCCESS The protocol interface was reinstalled.
|
||||
@retval EFI_NOT_FOUND The OldInterface on the handle was not found.
|
||||
@ -1209,9 +1202,9 @@ EFI_STATUS
|
||||
UninstallMultipleProtocolInterfaces() be used in place of
|
||||
UninstallProtocolInterface().
|
||||
|
||||
@param Handle The handle on which the interface was installed.
|
||||
@param Protocol The numeric ID of the interface.
|
||||
@param Interface A pointer to the interface.
|
||||
@param[in] Handle The handle on which the interface was installed.
|
||||
@param[in] Protocol The numeric ID of the interface.
|
||||
@param[in] Interface A pointer to the interface.
|
||||
|
||||
@retval EFI_SUCCESS The interface was removed.
|
||||
@retval EFI_NOT_FOUND The interface was not found.
|
||||
@ -1232,7 +1225,7 @@ EFI_STATUS
|
||||
/**
|
||||
Removes one or more protocol interfaces into the boot services environment.
|
||||
|
||||
@param Handle The handle to remove the protocol interfaces from.
|
||||
@param[in] Handle The handle to remove the protocol interfaces from.
|
||||
@param ... A variable argument list containing pairs of protocol GUIDs and
|
||||
protocol interfaces.
|
||||
|
||||
@ -1250,9 +1243,9 @@ EFI_STATUS
|
||||
/**
|
||||
Queries a handle to determine if it supports a specified protocol.
|
||||
|
||||
@param Handle The handle being queried.
|
||||
@param Protocol The published unique identifier of the protocol.
|
||||
@param Interface Supplies the address where a pointer to the corresponding Protocol
|
||||
@param[in] Handle The handle being queried.
|
||||
@param[in] Protocol The published unique identifier of the protocol.
|
||||
@param[out] Interface Supplies the address where a pointer to the corresponding Protocol
|
||||
Interface is returned.
|
||||
|
||||
@retval EFI_SUCCESS The interface information for the specified protocol was returned.
|
||||
@ -1281,18 +1274,18 @@ EFI_STATUS
|
||||
Queries a handle to determine if it supports a specified protocol. If the protocol is supported by the
|
||||
handle, it opens the protocol on behalf of the calling agent.
|
||||
|
||||
@param Handle The handle for the protocol interface that is being opened.
|
||||
@param Protocol The published unique identifier of the protocol.
|
||||
@param Interface Supplies the address where a pointer to the corresponding Protocol
|
||||
@param[in] Handle The handle for the protocol interface that is being opened.
|
||||
@param[in] Protocol The published unique identifier of the protocol.
|
||||
@param[out] Interface Supplies the address where a pointer to the corresponding Protocol
|
||||
Interface is returned.
|
||||
@param AgentHandle The handle of the agent that is opening the protocol interface
|
||||
@param[in] AgentHandle The handle of the agent that is opening the protocol interface
|
||||
specified by Protocol and Interface.
|
||||
@param ControllerHandle If the agent that is opening a protocol is a driver that follows the
|
||||
@param[in] ControllerHandle If the agent that is opening a protocol is a driver that follows the
|
||||
UEFI Driver Model, then this parameter is the controller handle
|
||||
that requires the protocol interface. If the agent does not follow
|
||||
the UEFI Driver Model, then this parameter is optional and may
|
||||
be NULL.
|
||||
@param Attributes The open mode of the protocol interface specified by Handle
|
||||
@param[in] Attributes The open mode of the protocol interface specified by Handle
|
||||
and Protocol.
|
||||
|
||||
@retval EFI_SUCCESS An item was added to the open list for the protocol interface, and the
|
||||
@ -1319,11 +1312,11 @@ EFI_STATUS
|
||||
/**
|
||||
Closes a protocol on a handle that was opened using OpenProtocol().
|
||||
|
||||
@param Handle The handle for the protocol interface that was previously opened
|
||||
@param[in] Handle The handle for the protocol interface that was previously opened
|
||||
with OpenProtocol(), and is now being closed.
|
||||
@param Protocol The published unique identifier of the protocol.
|
||||
@param AgentHandle The handle of the agent that is closing the protocol interface.
|
||||
@param ControllerHandle If the agent that opened a protocol is a driver that follows the
|
||||
@param[in] Protocol The published unique identifier of the protocol.
|
||||
@param[in] AgentHandle The handle of the agent that is closing the protocol interface.
|
||||
@param[in] ControllerHandle If the agent that opened a protocol is a driver that follows the
|
||||
UEFI Driver Model, then this parameter is the controller handle
|
||||
that required the protocol interface.
|
||||
|
||||
@ -1359,11 +1352,11 @@ typedef struct {
|
||||
/**
|
||||
Retrieves the list of agents that currently have a protocol interface opened.
|
||||
|
||||
@param Handle The handle for the protocol interface that is being queried.
|
||||
@param Protocol The published unique identifier of the protocol.
|
||||
@param EntryBuffer A pointer to a buffer of open protocol information in the form of
|
||||
@param[in] Handle The handle for the protocol interface that is being queried.
|
||||
@param[in] Protocol The published unique identifier of the protocol.
|
||||
@param[out] EntryBuffer A pointer to a buffer of open protocol information in the form of
|
||||
EFI_OPEN_PROTOCOL_INFORMATION_ENTRY structures.
|
||||
@param EntryCount A pointer to the number of entries in EntryBuffer.
|
||||
@param[out] EntryCount A pointer to the number of entries in EntryBuffer.
|
||||
|
||||
@retval EFI_SUCCESS The open protocol information was returned in EntryBuffer, and the
|
||||
number of entries was returned EntryCount.
|
||||
@ -1384,11 +1377,11 @@ EFI_STATUS
|
||||
Retrieves the list of protocol interface GUIDs that are installed on a handle in a buffer allocated
|
||||
from pool.
|
||||
|
||||
@param Handle The handle from which to retrieve the list of protocol interface
|
||||
@param[in] Handle The handle from which to retrieve the list of protocol interface
|
||||
GUIDs.
|
||||
@param ProtocolBuffer A pointer to the list of protocol interface GUID pointers that are
|
||||
@param[out] ProtocolBuffer A pointer to the list of protocol interface GUID pointers that are
|
||||
installed on Handle.
|
||||
@param ProtocolBufferCount A pointer to the number of GUID pointers present in
|
||||
@param[out] ProtocolBufferCount A pointer to the number of GUID pointers present in
|
||||
ProtocolBuffer.
|
||||
|
||||
@retval EFI_SUCCESS The list of protocol interface GUIDs installed on Handle was returned in
|
||||
@ -1412,10 +1405,10 @@ EFI_STATUS
|
||||
/**
|
||||
Creates an event that is to be signaled whenever an interface is installed for a specified protocol.
|
||||
|
||||
@param Protocol The numeric ID of the protocol for which the event is to be registered.
|
||||
@param Event Event that is to be signaled whenever a protocol interface is registered
|
||||
@param[in] Protocol The numeric ID of the protocol for which the event is to be registered.
|
||||
@param[in] Event Event that is to be signaled whenever a protocol interface is registered
|
||||
for Protocol.
|
||||
@param Registration A pointer to a memory location to receive the registration value.
|
||||
@param[out] Registration A pointer to a memory location to receive the registration value.
|
||||
|
||||
@retval EFI_SUCCESS The notification event has been registered.
|
||||
@retval EFI_OUT_OF_RESOURCES Space for the notification event could not be allocated.
|
||||
@ -1454,14 +1447,14 @@ typedef enum {
|
||||
/**
|
||||
Returns an array of handles that support a specified protocol.
|
||||
|
||||
@param SearchType Specifies which handle(s) are to be returned.
|
||||
@param Protocol Specifies the protocol to search by.
|
||||
@param SearchKey Specifies the search key.
|
||||
@param BufferSize On input, the size in bytes of Buffer. On output, the size in bytes of
|
||||
@param[in] SearchType Specifies which handle(s) are to be returned.
|
||||
@param[in] Protocol Specifies the protocol to search by.
|
||||
@param[in] SearchKey Specifies the search key.
|
||||
@param[in, out] BufferSize On input, the size in bytes of Buffer. On output, the size in bytes of
|
||||
the array returned in Buffer (if the buffer was large enough) or the
|
||||
size, in bytes, of the buffer needed to obtain the array (if the buffer was
|
||||
not large enough).
|
||||
@param Buffer The buffer in which the array is returned.
|
||||
@param[out] Buffer The buffer in which the array is returned.
|
||||
|
||||
@retval EFI_SUCCESS The array of handles was returned.
|
||||
@retval EFI_NOT_FOUND No handles match the search.
|
||||
@ -1486,11 +1479,11 @@ EFI_STATUS
|
||||
/**
|
||||
Locates the handle to a device on the device path that supports the specified protocol.
|
||||
|
||||
@param Protocol Specifies the protocol to search for.
|
||||
@param DevicePath On input, a pointer to a pointer to the device path. On output, the device
|
||||
@param[in] Protocol Specifies the protocol to search for.
|
||||
@param[in, out] DevicePath On input, a pointer to a pointer to the device path. On output, the device
|
||||
path pointer is modified to point to the remaining part of the device
|
||||
path.
|
||||
@param Device A pointer to the returned device handle.
|
||||
@param[out] Device A pointer to the returned device handle.
|
||||
|
||||
@retval EFI_SUCCESS The resulting handle was returned.
|
||||
@retval EFI_NOT_FOUND No handles match the search.
|
||||
@ -1510,8 +1503,8 @@ EFI_STATUS
|
||||
/**
|
||||
Adds, updates, or removes a configuration table entry from the EFI System Table.
|
||||
|
||||
@param Guid A pointer to the GUID for the entry to add, update, or remove.
|
||||
@param Table A pointer to the configuration table for the entry to add, update, or
|
||||
@param[in] Guid A pointer to the GUID for the entry to add, update, or remove.
|
||||
@param[in] Table A pointer to the configuration table for the entry to add, update, or
|
||||
remove. May be NULL.
|
||||
|
||||
@retval EFI_SUCCESS The (Guid, Table) pair was added, updated, or removed.
|
||||
@ -1530,12 +1523,12 @@ EFI_STATUS
|
||||
/**
|
||||
Returns an array of handles that support the requested protocol in a buffer allocated from pool.
|
||||
|
||||
@param SearchType Specifies which handle(s) are to be returned.
|
||||
@param Protocol Provides the protocol to search by.
|
||||
@param[in] SearchType Specifies which handle(s) are to be returned.
|
||||
@param[in] Protocol Provides the protocol to search by.
|
||||
This parameter is only valid for a SearchType of ByProtocol.
|
||||
@param SearchKey Supplies the search key depending on the SearchType.
|
||||
@param NoHandles The number of handles returned in Buffer.
|
||||
@param Buffer A pointer to the buffer to return the requested array of handles that
|
||||
@param[in] SearchKey Supplies the search key depending on the SearchType.
|
||||
@param[in, out] NoHandles The number of handles returned in Buffer.
|
||||
@param[out] Buffer A pointer to the buffer to return the requested array of handles that
|
||||
support Protocol.
|
||||
|
||||
@retval EFI_SUCCESS The array of handles was returned in Buffer, and the number of
|
||||
@ -1559,10 +1552,10 @@ EFI_STATUS
|
||||
/**
|
||||
Returns the first protocol instance that matches the given protocol.
|
||||
|
||||
@param Protocol Provides the protocol to search for.
|
||||
@param Registration Optional registration key returned from
|
||||
@param[in] Protocol Provides the protocol to search for.
|
||||
@param[in] Registration Optional registration key returned from
|
||||
RegisterProtocolNotify().
|
||||
@param Interface On return, a pointer to the first interface that matches Protocol and
|
||||
@param[out] Interface On return, a pointer to the first interface that matches Protocol and
|
||||
Registration.
|
||||
|
||||
@retval EFI_SUCCESS A protocol instance matching Protocol was found and returned in
|
||||
@ -1657,11 +1650,11 @@ typedef struct {
|
||||
be passed into ResetSystem() and will cause the capsule to be processed by the firmware as
|
||||
part of the reset process.
|
||||
|
||||
@param CapsuleHeaderArray Virtual pointer to an array of virtual pointers to the capsules
|
||||
@param[in] CapsuleHeaderArray Virtual pointer to an array of virtual pointers to the capsules
|
||||
being passed into update capsule.
|
||||
@param CapsuleCount Number of pointers to EFI_CAPSULE_HEADER in
|
||||
@param[in] CapsuleCount Number of pointers to EFI_CAPSULE_HEADER in
|
||||
CaspuleHeaderArray.
|
||||
@param ScatterGatherList Physical pointer to a set of
|
||||
@param[in] ScatterGatherList Physical pointer to a set of
|
||||
EFI_CAPSULE_BLOCK_DESCRIPTOR that describes the
|
||||
location in physical memory of a set of capsules.
|
||||
|
||||
@ -1691,14 +1684,14 @@ EFI_STATUS
|
||||
/**
|
||||
Returns if the capsule can be supported via UpdateCapsule().
|
||||
|
||||
@param CapsuleHeaderArray Virtual pointer to an array of virtual pointers to the capsules
|
||||
@param[in] CapsuleHeaderArray Virtual pointer to an array of virtual pointers to the capsules
|
||||
being passed into update capsule.
|
||||
@param CapsuleCount Number of pointers to EFI_CAPSULE_HEADER in
|
||||
@param[in] CapsuleCount Number of pointers to EFI_CAPSULE_HEADER in
|
||||
CaspuleHeaderArray.
|
||||
@param MaxiumCapsuleSize On output the maximum size that UpdateCapsule() can
|
||||
@param[out] MaxiumCapsuleSize On output the maximum size that UpdateCapsule() can
|
||||
support as an argument to UpdateCapsule() via
|
||||
CapsuleHeaderArray and ScatterGatherList.
|
||||
@param ResetType Returns the type of reset required for the capsule update.
|
||||
@param[out] ResetType Returns the type of reset required for the capsule update.
|
||||
|
||||
@retval EFI_SUCCESS Valid answer returned.
|
||||
@retval EFI_UNSUPPORTED The capsule type is not supported on this platform, and
|
||||
@ -1723,15 +1716,15 @@ EFI_STATUS
|
||||
/**
|
||||
Returns information about the EFI variables.
|
||||
|
||||
@param Attributes Attributes bitmask to specify the type of variables on
|
||||
@param[in] Attributes Attributes bitmask to specify the type of variables on
|
||||
which to return information.
|
||||
@param MaximumVariableStorageSize On output the maximum size of the storage space
|
||||
@param[out] MaximumVariableStorageSize On output the maximum size of the storage space
|
||||
available for the EFI variables associated with the
|
||||
attributes specified.
|
||||
@param RemainingVariableStorageSize Returns the remaining size of the storage space
|
||||
@param[out] RemainingVariableStorageSize Returns the remaining size of the storage space
|
||||
available for the EFI variables associated with the
|
||||
attributes specified.
|
||||
@param MaximumVariableSize Returns the maximum size of the individual EFI
|
||||
@param[out] MaximumVariableSize Returns the maximum size of the individual EFI
|
||||
variables associated with the attributes specified.
|
||||
|
||||
@retval EFI_SUCCESS Valid answer returned.
|
||||
@ -1764,6 +1757,7 @@ EFI_STATUS
|
||||
// EFI Runtime Services Table
|
||||
//
|
||||
#define EFI_SYSTEM_TABLE_SIGNATURE SIGNATURE_64 ('I','B','I',' ','S','Y','S','T')
|
||||
#define EFI_2_50_SYSTEM_TABLE_REVISION ((2 << 16) | (50))
|
||||
#define EFI_2_40_SYSTEM_TABLE_REVISION ((2 << 16) | (40))
|
||||
#define EFI_2_31_SYSTEM_TABLE_REVISION ((2 << 16) | (31))
|
||||
#define EFI_2_30_SYSTEM_TABLE_REVISION ((2 << 16) | (30))
|
||||
@ -1772,7 +1766,7 @@ EFI_STATUS
|
||||
#define EFI_2_00_SYSTEM_TABLE_REVISION ((2 << 16) | (00))
|
||||
#define EFI_1_10_SYSTEM_TABLE_REVISION ((1 << 16) | (10))
|
||||
#define EFI_1_02_SYSTEM_TABLE_REVISION ((1 << 16) | (02))
|
||||
#define EFI_SYSTEM_TABLE_REVISION EFI_2_40_SYSTEM_TABLE_REVISION
|
||||
#define EFI_SYSTEM_TABLE_REVISION EFI_2_50_SYSTEM_TABLE_REVISION
|
||||
#define EFI_SPECIFICATION_VERSION EFI_SYSTEM_TABLE_REVISION
|
||||
|
||||
#define EFI_RUNTIME_SERVICES_SIGNATURE SIGNATURE_64 ('R','U','N','T','S','E','R','V')
|
||||
@ -2014,8 +2008,8 @@ typedef struct {
|
||||
the same for UEFI Applications, UEFI OS Loaders, and UEFI Drivers including
|
||||
both device drivers and bus drivers.
|
||||
|
||||
@param ImageHandle The firmware allocated handle for the UEFI image.
|
||||
@param SystemTable A pointer to the EFI System Table.
|
||||
@param[in] ImageHandle The firmware allocated handle for the UEFI image.
|
||||
@param[in] SystemTable A pointer to the EFI System Table.
|
||||
|
||||
@retval EFI_SUCCESS The operation completed successfully.
|
||||
@retval Others An unexpected error occurred.
|
||||
@ -2027,6 +2021,55 @@ EFI_STATUS
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
);
|
||||
|
||||
//
|
||||
// EFI Load Option. This data structure describes format of UEFI boot option variables.
|
||||
//
|
||||
// NOTE: EFI Load Option is a byte packed buffer of variable length fields.
|
||||
// The first two fields have fixed length. They are declared as members of the
|
||||
// EFI_LOAD_OPTION structure. All the other fields are variable length fields.
|
||||
// They are listed in the comment block below for reference purposes.
|
||||
//
|
||||
#pragma pack(1)
|
||||
typedef struct _EFI_LOAD_OPTION {
|
||||
///
|
||||
/// The attributes for this load option entry. All unused bits must be zero
|
||||
/// and are reserved by the UEFI specification for future growth.
|
||||
///
|
||||
UINT32 Attributes;
|
||||
///
|
||||
/// Length in bytes of the FilePathList. OptionalData starts at offset
|
||||
/// sizeof(UINT32) + sizeof(UINT16) + StrSize(Description) + FilePathListLength
|
||||
/// of the EFI_LOAD_OPTION descriptor.
|
||||
///
|
||||
UINT16 FilePathListLength;
|
||||
///
|
||||
/// The user readable description for the load option.
|
||||
/// This field ends with a Null character.
|
||||
///
|
||||
// CHAR16 Description[];
|
||||
///
|
||||
/// A packed array of UEFI device paths. The first element of the array is a
|
||||
/// device path that describes the device and location of the Image for this
|
||||
/// load option. The FilePathList[0] is specific to the device type. Other
|
||||
/// device paths may optionally exist in the FilePathList, but their usage is
|
||||
/// OSV specific. Each element in the array is variable length, and ends at
|
||||
/// the device path end structure. Because the size of Description is
|
||||
/// arbitrary, this data structure is not guaranteed to be aligned on a
|
||||
/// natural boundary. This data structure may have to be copied to an aligned
|
||||
/// natural boundary before it is used.
|
||||
///
|
||||
// EFI_DEVICE_PATH_PROTOCOL FilePathList[];
|
||||
///
|
||||
/// The remaining bytes in the load option descriptor are a binary data buffer
|
||||
/// that is passed to the loaded image. If the field is zero bytes long, a
|
||||
/// NULL pointer is passed to the loaded image. The number of bytes in
|
||||
/// OptionalData can be computed by subtracting the starting offset of
|
||||
/// OptionalData from total size in bytes of the EFI_LOAD_OPTION.
|
||||
///
|
||||
// UINT8 OptionalData[];
|
||||
} EFI_LOAD_OPTION;
|
||||
#pragma pack()
|
||||
|
||||
//
|
||||
// EFI Load Options Attributes
|
||||
//
|
||||
@ -2040,6 +2083,7 @@ EFI_STATUS
|
||||
|
||||
#define EFI_BOOT_OPTION_SUPPORT_KEY 0x00000001
|
||||
#define EFI_BOOT_OPTION_SUPPORT_APP 0x00000002
|
||||
#define EFI_BOOT_OPTION_SUPPORT_SYSPREP 0x00000010
|
||||
#define EFI_BOOT_OPTION_SUPPORT_COUNT 0x00000300
|
||||
|
||||
///
|
||||
|
@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
Processor or Compiler specific defines and types x64 (Intel 64, AMD64).
|
||||
|
||||
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
@ -96,6 +96,26 @@ FILE_LICENCE ( BSD3 );
|
||||
//
|
||||
#pragma warning ( disable : 4206 )
|
||||
|
||||
#if _MSC_VER == 1800
|
||||
|
||||
//
|
||||
// Disable these warnings for VS2013.
|
||||
//
|
||||
|
||||
//
|
||||
// This warning is for potentially uninitialized local variable, and it may cause false
|
||||
// positive issues in VS2013 build
|
||||
//
|
||||
#pragma warning ( disable : 4701 )
|
||||
|
||||
//
|
||||
// This warning is for potentially uninitialized local pointer variable, and it may cause
|
||||
// false positive issues in VS2013 build
|
||||
//
|
||||
#pragma warning ( disable : 4703 )
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@ -251,12 +271,12 @@ typedef INT64 INTN;
|
||||
///
|
||||
#elif defined(_MSC_EXTENSIONS)
|
||||
///
|
||||
/// Microsoft* compiler specific method for EFIAPI calling convension
|
||||
/// Microsoft* compiler specific method for EFIAPI calling convention.
|
||||
///
|
||||
#define EFIAPI __cdecl
|
||||
#elif defined(__GNUC__)
|
||||
///
|
||||
/// Define the standard calling convention reguardless of optimization level.
|
||||
/// Define the standard calling convention regardless of optimization level.
|
||||
/// The GCC support assumes a GCC compiler that supports the EFI ABI. The EFI
|
||||
/// ABI is much closer to the x64 Microsoft* ABI than standard x64 (x86-64)
|
||||
/// GCC ABI. Thus a standard x64 (x86-64) GCC compiler can not be used for
|
||||
|
Reference in New Issue
Block a user