[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,14 +297,14 @@ 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) | \
|
||||
(((_HeadId) & 0x7) << 18) | \
|
||||
(((_NonVgaOutput) & 0x1) << 17) | \
|
||||
(((_BiosCanDetect) & 0x1) << 16) | \
|
||||
(((_VendorInfo) & 0xf) << 12) | \
|
||||
(((_Type) & 0xf) << 8) | \
|
||||
(((_Port) & 0xf) << 4) | \
|
||||
((_Index) & 0xf) ))
|
||||
((UINT32)( ((UINT32)((_DeviceIdScheme) & 0x1) << 31) | \
|
||||
(((_HeadId) & 0x7) << 18) | \
|
||||
(((_NonVgaOutput) & 0x1) << 17) | \
|
||||
(((_BiosCanDetect) & 0x1) << 16) | \
|
||||
(((_VendorInfo) & 0xf) << 12) | \
|
||||
(((_Type) & 0xf) << 8) | \
|
||||
(((_Port) & 0xf) << 4) | \
|
||||
((_Index) & 0xf) ))
|
||||
|
||||
///
|
||||
/// Messaging Device Paths.
|
||||
@ -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
|
||||
@ -813,10 +814,11 @@ typedef struct _EFI_IFR_QUESTION_HEADER {
|
||||
//
|
||||
// Flag values of 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_OPTIONS_ONLY 0x80
|
||||
#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
|
||||
|
||||
//
|
||||
// Definition for Opcode Reference
|
||||
@ -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.
|
||||
///
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -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