mirror of https://github.com/ipxe/ipxe.git
parent
c4af977271
commit
cff0103bd2
|
@ -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 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2013, 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
|
||||
|
@ -208,6 +208,17 @@ struct _LIST_ENTRY {
|
|||
///
|
||||
#define NULL ((VOID *) 0)
|
||||
|
||||
///
|
||||
/// Maximum values for common UEFI Data Types
|
||||
///
|
||||
#define MAX_INT8 ((INT8)0x7F)
|
||||
#define MAX_UINT8 ((UINT8)0xFF)
|
||||
#define MAX_INT16 ((INT16)0x7FFF)
|
||||
#define MAX_UINT16 ((UINT16)0xFFFF)
|
||||
#define MAX_INT32 ((INT32)0x7FFFFFFF)
|
||||
#define MAX_UINT32 ((UINT32)0xFFFFFFFF)
|
||||
#define MAX_INT64 ((INT64)0x7FFFFFFFFFFFFFFFULL)
|
||||
#define MAX_UINT64 ((UINT64)0xFFFFFFFFFFFFFFFFULL)
|
||||
|
||||
#define BIT0 0x00000001
|
||||
#define BIT1 0x00000002
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/** @file
|
||||
Processor or Compiler specific defines and types for IA-32 architecture.
|
||||
|
||||
Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
|
@ -228,6 +228,12 @@ typedef INT32 INTN;
|
|||
///
|
||||
#define MAX_ADDRESS 0xFFFFFFFF
|
||||
|
||||
///
|
||||
/// Maximum legal IA-32 INTN and UINTN values.
|
||||
///
|
||||
#define MAX_INTN ((INTN)0x7FFFFFFF)
|
||||
#define MAX_UINTN ((UINTN)0xFFFFFFFF)
|
||||
|
||||
///
|
||||
/// The stack alignment required for IA-32.
|
||||
///
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
EFI_IMAGE_NT_HEADERS64 is for PE32+.
|
||||
|
||||
This file is coded to the Visual Studio, Microsoft Portable Executable and
|
||||
Common Object File Format Specification, Revision 8.0 - May 16, 2006.
|
||||
Common Object File Format Specification, Revision 8.3 - February 6, 2013.
|
||||
This file also includes some definitions in PI Specification, Revision 1.0.
|
||||
|
||||
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
||||
|
@ -41,6 +41,7 @@ FILE_LICENCE ( BSD3 );
|
|||
#define IMAGE_FILE_MACHINE_EBC 0x0EBC
|
||||
#define IMAGE_FILE_MACHINE_X64 0x8664
|
||||
#define IMAGE_FILE_MACHINE_ARMTHUMB_MIXED 0x01c2
|
||||
#define IMAGE_FILE_MACHINE_ARM64 0xAA64
|
||||
|
||||
//
|
||||
// EXE file formats
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
Provides string functions, linked list functions, math functions, synchronization
|
||||
functions, and CPU architecture-specific functions.
|
||||
|
||||
Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2013, 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
|
||||
|
@ -148,6 +148,39 @@ typedef struct {
|
|||
|
||||
#endif // defined (MDE_CPU_ARM)
|
||||
|
||||
#if defined (MDE_CPU_AARCH64)
|
||||
typedef struct {
|
||||
// GP regs
|
||||
UINT64 X19;
|
||||
UINT64 X20;
|
||||
UINT64 X21;
|
||||
UINT64 X22;
|
||||
UINT64 X23;
|
||||
UINT64 X24;
|
||||
UINT64 X25;
|
||||
UINT64 X26;
|
||||
UINT64 X27;
|
||||
UINT64 X28;
|
||||
UINT64 FP;
|
||||
UINT64 LR;
|
||||
UINT64 IP0;
|
||||
|
||||
// FP regs
|
||||
UINT64 D8;
|
||||
UINT64 D9;
|
||||
UINT64 D10;
|
||||
UINT64 D11;
|
||||
UINT64 D12;
|
||||
UINT64 D13;
|
||||
UINT64 D14;
|
||||
UINT64 D15;
|
||||
} BASE_LIBRARY_JUMP_BUFFER;
|
||||
|
||||
#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 8
|
||||
|
||||
#endif // defined (MDE_CPU_AARCH64)
|
||||
|
||||
|
||||
//
|
||||
// String Services
|
||||
//
|
||||
|
@ -1359,7 +1392,7 @@ InsertTailList (
|
|||
@param List A pointer to the head node of a doubly linked list.
|
||||
|
||||
@return The first node of a doubly linked list.
|
||||
@retval NULL The list is empty.
|
||||
@retval List The list is empty.
|
||||
|
||||
**/
|
||||
LIST_ENTRY *
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/** @file
|
||||
Include file matches things in PI.
|
||||
|
||||
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
|
@ -659,7 +659,7 @@ EFI_STATUS
|
|||
//
|
||||
#define DXE_SERVICES_SIGNATURE 0x565245535f455844ULL
|
||||
#define DXE_SPECIFICATION_MAJOR_REVISION 1
|
||||
#define DXE_SPECIFICATION_MINOR_REVISION 20
|
||||
#define DXE_SPECIFICATION_MINOR_REVISION 30
|
||||
#define DXE_SERVICES_REVISION ((DXE_SPECIFICATION_MAJOR_REVISION<<16) | (DXE_SPECIFICATION_MINOR_REVISION))
|
||||
|
||||
typedef struct {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/** @file
|
||||
The firmware volume related definitions in PI.
|
||||
|
||||
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
|
@ -11,7 +11,7 @@
|
|||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
@par Revision Reference:
|
||||
PI Version 1.2C
|
||||
PI Version 1.3
|
||||
|
||||
**/
|
||||
|
||||
|
@ -88,7 +88,7 @@ typedef UINT32 EFI_FVB_ATTRIBUTES_2;
|
|||
#define EFI_FVB2_ALIGNMENT_512M 0x001D0000
|
||||
#define EFI_FVB2_ALIGNMENT_1G 0x001E0000
|
||||
#define EFI_FVB2_ALIGNMENT_2G 0x001F0000
|
||||
|
||||
#define EFI_FVB2_WEAK_ALIGNMENT 0x80000000
|
||||
|
||||
typedef struct {
|
||||
///
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/** @file
|
||||
Include file matches things in PI for multiple module types.
|
||||
|
||||
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
|
@ -135,4 +135,33 @@ typedef struct {
|
|||
UINT64 RegionState;
|
||||
} EFI_SMRAM_DESCRIPTOR;
|
||||
|
||||
typedef enum {
|
||||
EFI_PCD_TYPE_8,
|
||||
EFI_PCD_TYPE_16,
|
||||
EFI_PCD_TYPE_32,
|
||||
EFI_PCD_TYPE_64,
|
||||
EFI_PCD_TYPE_BOOL,
|
||||
EFI_PCD_TYPE_PTR
|
||||
} EFI_PCD_TYPE;
|
||||
|
||||
typedef struct {
|
||||
///
|
||||
/// The returned information associated with the requested TokenNumber. If
|
||||
/// TokenNumber is 0, then PcdType is set to EFI_PCD_TYPE_8.
|
||||
///
|
||||
EFI_PCD_TYPE PcdType;
|
||||
///
|
||||
/// The size of the data in bytes associated with the TokenNumber specified. If
|
||||
/// TokenNumber is 0, then PcdSize is set 0.
|
||||
///
|
||||
UINTN PcdSize;
|
||||
///
|
||||
/// The null-terminated ASCII string associated with a given token. If the
|
||||
/// TokenNumber specified was 0, then this field corresponds to the null-terminated
|
||||
/// ASCII string associated with the token's namespace Guid. If NULL, there is no
|
||||
/// name associated with this request.
|
||||
///
|
||||
CHAR8 *PcdName;
|
||||
} EFI_PCD_INFO;
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/** @file
|
||||
StatusCode related definitions in PI.
|
||||
|
||||
Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
|
@ -598,7 +598,10 @@ typedef struct {
|
|||
//
|
||||
// IO Bus Class ATA/ATAPI Subclass Progress Code definitions.
|
||||
//
|
||||
|
||||
#define EFI_IOB_ATA_BUS_SMART_ENABLE (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_IOB_ATA_BUS_SMART_DISABLE (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
#define EFI_IOB_ATA_BUS_SMART_OVERTHRESHOLD (EFI_SUBCLASS_SPECIFIC | 0x00000002)
|
||||
#define EFI_IOB_ATA_BUS_SMART_UNDERTHRESHOLD (EFI_SUBCLASS_SPECIFIC | 0x00000003)
|
||||
//
|
||||
// IO Bus Class FC Subclass Progress Code definitions.
|
||||
//
|
||||
|
@ -671,6 +674,8 @@ typedef struct {
|
|||
//
|
||||
// IO Bus Class ATA/ATAPI Subclass Error Code definitions.
|
||||
//
|
||||
#define EFI_IOB_ATA_BUS_SMART_NOTSUPPORTED (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_IOB_ATA_BUS_SMART_DISABLED (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
|
||||
//
|
||||
// IO Bus Class FC Subclass Error Code definitions.
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
/** @file
|
||||
DebugSupport protocol and supporting definitions as defined in the UEFI2.0
|
||||
DebugSupport protocol and supporting definitions as defined in the UEFI2.4
|
||||
specification.
|
||||
|
||||
The DebugSupport protocol is used by source level debuggers to abstract the
|
||||
processor and handle context save and restore operations.
|
||||
|
||||
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
||||
Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR>
|
||||
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
|
@ -519,6 +521,97 @@ typedef struct {
|
|||
UINT32 IFAR;
|
||||
} EFI_SYSTEM_CONTEXT_ARM;
|
||||
|
||||
|
||||
///
|
||||
/// AARCH64 processor exception types.
|
||||
///
|
||||
#define EXCEPT_AARCH64_SYNCHRONOUS_EXCEPTIONS 0
|
||||
#define EXCEPT_AARCH64_IRQ 1
|
||||
#define EXCEPT_AARCH64_FIQ 2
|
||||
#define EXCEPT_AARCH64_SERROR 3
|
||||
|
||||
///
|
||||
/// For coding convenience, define the maximum valid ARM exception.
|
||||
///
|
||||
#define MAX_AARCH64_EXCEPTION EXCEPT_AARCH64_SERROR
|
||||
|
||||
typedef struct {
|
||||
// General Purpose Registers
|
||||
UINT64 X0;
|
||||
UINT64 X1;
|
||||
UINT64 X2;
|
||||
UINT64 X3;
|
||||
UINT64 X4;
|
||||
UINT64 X5;
|
||||
UINT64 X6;
|
||||
UINT64 X7;
|
||||
UINT64 X8;
|
||||
UINT64 X9;
|
||||
UINT64 X10;
|
||||
UINT64 X11;
|
||||
UINT64 X12;
|
||||
UINT64 X13;
|
||||
UINT64 X14;
|
||||
UINT64 X15;
|
||||
UINT64 X16;
|
||||
UINT64 X17;
|
||||
UINT64 X18;
|
||||
UINT64 X19;
|
||||
UINT64 X20;
|
||||
UINT64 X21;
|
||||
UINT64 X22;
|
||||
UINT64 X23;
|
||||
UINT64 X24;
|
||||
UINT64 X25;
|
||||
UINT64 X26;
|
||||
UINT64 X27;
|
||||
UINT64 X28;
|
||||
UINT64 FP; // x29 - Frame pointer
|
||||
UINT64 LR; // x30 - Link Register
|
||||
UINT64 SP; // x31 - Stack pointer
|
||||
|
||||
// FP/SIMD Registers
|
||||
UINT64 V0[2];
|
||||
UINT64 V1[2];
|
||||
UINT64 V2[2];
|
||||
UINT64 V3[2];
|
||||
UINT64 V4[2];
|
||||
UINT64 V5[2];
|
||||
UINT64 V6[2];
|
||||
UINT64 V7[2];
|
||||
UINT64 V8[2];
|
||||
UINT64 V9[2];
|
||||
UINT64 V10[2];
|
||||
UINT64 V11[2];
|
||||
UINT64 V12[2];
|
||||
UINT64 V13[2];
|
||||
UINT64 V14[2];
|
||||
UINT64 V15[2];
|
||||
UINT64 V16[2];
|
||||
UINT64 V17[2];
|
||||
UINT64 V18[2];
|
||||
UINT64 V19[2];
|
||||
UINT64 V20[2];
|
||||
UINT64 V21[2];
|
||||
UINT64 V22[2];
|
||||
UINT64 V23[2];
|
||||
UINT64 V24[2];
|
||||
UINT64 V25[2];
|
||||
UINT64 V26[2];
|
||||
UINT64 V27[2];
|
||||
UINT64 V28[2];
|
||||
UINT64 V29[2];
|
||||
UINT64 V30[2];
|
||||
UINT64 V31[2];
|
||||
|
||||
UINT64 ELR; // Exception Link Register
|
||||
UINT64 SPSR; // Saved Processor Status Register
|
||||
UINT64 FPSR; // Floating Point Status Register
|
||||
UINT64 ESR; // Exception syndrome register
|
||||
UINT64 FAR; // Fault Address Register
|
||||
} EFI_SYSTEM_CONTEXT_AARCH64;
|
||||
|
||||
|
||||
///
|
||||
/// Universal EFI_SYSTEM_CONTEXT definition.
|
||||
///
|
||||
|
@ -528,6 +621,7 @@ typedef union {
|
|||
EFI_SYSTEM_CONTEXT_X64 *SystemContextX64;
|
||||
EFI_SYSTEM_CONTEXT_IPF *SystemContextIpf;
|
||||
EFI_SYSTEM_CONTEXT_ARM *SystemContextArm;
|
||||
EFI_SYSTEM_CONTEXT_AARCH64 *SystemContextAArch64;
|
||||
} EFI_SYSTEM_CONTEXT;
|
||||
|
||||
//
|
||||
|
@ -568,7 +662,8 @@ typedef enum {
|
|||
IsaX64 = IMAGE_FILE_MACHINE_X64, ///< 0x8664
|
||||
IsaIpf = IMAGE_FILE_MACHINE_IA64, ///< 0x0200
|
||||
IsaEbc = IMAGE_FILE_MACHINE_EBC, ///< 0x0EBC
|
||||
IsaArm = IMAGE_FILE_MACHINE_ARMTHUMB_MIXED ///< 0x01c2
|
||||
IsaArm = IMAGE_FILE_MACHINE_ARMTHUMB_MIXED, ///< 0x01c2
|
||||
IsaAArch64 = IMAGE_FILE_MACHINE_ARM64 ///< 0xAA64
|
||||
} EFI_INSTRUCTION_SET_ARCHITECTURE;
|
||||
|
||||
|
||||
|
|
|
@ -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 - 2011, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
|
@ -787,6 +787,16 @@ typedef struct {
|
|||
UINT16 RelativeTargetPort;
|
||||
} SASEX_DEVICE_PATH;
|
||||
|
||||
///
|
||||
/// NvmExpress Namespace Device Path SubType.
|
||||
///
|
||||
#define MSG_NVME_NAMESPACE_DP 0x17
|
||||
typedef struct {
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
UINT32 NamespaceId;
|
||||
UINT64 NamespaceUuid;
|
||||
} NVME_NAMESPACE_DEVICE_PATH;
|
||||
|
||||
///
|
||||
/// iSCSI Device Path SubType
|
||||
///
|
||||
|
@ -1085,6 +1095,7 @@ typedef union {
|
|||
UART_FLOW_CONTROL_DEVICE_PATH UartFlowControl;
|
||||
SAS_DEVICE_PATH Sas;
|
||||
SASEX_DEVICE_PATH SasEx;
|
||||
NVME_NAMESPACE_DEVICE_PATH NvmeNamespace;
|
||||
HARDDRIVE_DEVICE_PATH HardDrive;
|
||||
CDROM_DEVICE_PATH CD;
|
||||
|
||||
|
@ -1134,6 +1145,7 @@ typedef union {
|
|||
UART_FLOW_CONTROL_DEVICE_PATH *UartFlowControl;
|
||||
SAS_DEVICE_PATH *Sas;
|
||||
SASEX_DEVICE_PATH *SasEx;
|
||||
NVME_NAMESPACE_DEVICE_PATH *NvmeNamespace;
|
||||
HARDDRIVE_DEVICE_PATH *HardDrive;
|
||||
CDROM_DEVICE_PATH *CD;
|
||||
|
||||
|
|
|
@ -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 - 2010, 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 that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
|
@ -84,7 +84,7 @@ typedef UINTN EFI_BROWSER_ACTION_REQUEST;
|
|||
|
||||
@param FormSetGuid This field points to the EFI_GUID which must match the Guid field or one of the
|
||||
elements of the ClassId field in the EFI_IFR_FORM_SET op-code. If
|
||||
FormsetGuid is NULL, then this function will display the the form set class
|
||||
FormsetGuid is NULL, then this function will display the form set class
|
||||
EFI_HII_PLATFORM_SETUP_FORMSET_GUID.
|
||||
|
||||
@param FormId This field specifies the identifier of the form within the form set to render as the first
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
This protocol is published by drivers providing and requesting
|
||||
configuration data from HII. It may only be invoked by HII.
|
||||
|
||||
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
|
@ -96,13 +96,10 @@ typedef UINTN EFI_BROWSER_ACTION;
|
|||
stored awaiting possible future
|
||||
protocols.
|
||||
|
||||
@retval EFI_NOT_FOUND Routing data doesn't match any
|
||||
known driver. Progress set to the
|
||||
first character in the routing header.
|
||||
Note: There is no requirement that the
|
||||
driver validate the routing data. It
|
||||
must skip the <ConfigHdr> in order to
|
||||
process the names.
|
||||
@retval EFI_NOT_FOUND A configuration element matching
|
||||
the routing data is not found.
|
||||
Progress set to the first character
|
||||
in the routing header.
|
||||
|
||||
@retval EFI_INVALID_PARAMETER Illegal syntax. Progress set
|
||||
to most recent "&" before the
|
||||
|
|
|
@ -225,7 +225,9 @@ EFI_STATUS
|
|||
updated with a value that will
|
||||
enable the data to fit.
|
||||
@retval EFI_NOT_FOUND No matching handle could be found in database.
|
||||
@retval EFI_INVALID_PARAMETER Handle or HandleBufferLength was NULL.
|
||||
@retval EFI_INVALID_PARAMETER HandleBufferLength was NULL.
|
||||
@retval EFI_INVALID_PARAMETER The value referenced by HandleBufferLength was not
|
||||
zero and Handle was NULL.
|
||||
@retval EFI_INVALID_PARAMETER PackageType is not a EFI_HII_PACKAGE_TYPE_GUID but
|
||||
PackageGuid is not NULL, PackageType is a EFI_HII_
|
||||
PACKAGE_TYPE_GUID but PackageGuid is NULL.
|
||||
|
@ -273,6 +275,13 @@ EFI_STATUS
|
|||
|
||||
@retval EFI_OUT_OF_RESOURCES BufferSize is too small to hold the package.
|
||||
|
||||
@retval EFI_NOT_FOUND The specifiecd Handle could not be found in the
|
||||
current database.
|
||||
|
||||
@retval EFI_INVALID_PARAMETER BufferSize was NULL.
|
||||
|
||||
@retval EFI_INVALID_PARAMETER The value referenced by BufferSize was not zero
|
||||
and Buffer was NULL.
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
|
@ -395,6 +404,11 @@ EFI_STATUS
|
|||
KeyGuidBufferLength is updated
|
||||
with a value that will enable
|
||||
the data to fit.
|
||||
@retval EFI_INVALID_PARAMETER The KeyGuidBufferLength is NULL.
|
||||
@retval EFI_INVALID_PARAMETER The value referenced by
|
||||
KeyGuidBufferLength is not
|
||||
zero and KeyGuidBuffer is NULL.
|
||||
@retval EFI_NOT_FOUND There was no keyboard layout.
|
||||
|
||||
**/
|
||||
typedef
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/** @file
|
||||
EFI Network Interface Identifier Protocol.
|
||||
|
||||
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
|
@ -36,7 +36,11 @@ FILE_LICENCE ( BSD3 );
|
|||
0x1ACED566, 0x76ED, 0x4218, {0xBC, 0x81, 0x76, 0x7F, 0x1F, 0x97, 0x7A, 0x89 } \
|
||||
}
|
||||
|
||||
#define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_REVISION 0x00010000
|
||||
//
|
||||
// Revision defined in UEFI Specification 2.4
|
||||
//
|
||||
#define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_REVISION 0x00020000
|
||||
|
||||
|
||||
///
|
||||
/// Revision defined in EFI1.1.
|
||||
|
@ -72,9 +76,9 @@ struct _EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL {
|
|||
UINT8 MajorVer; ///< Major version number.
|
||||
UINT8 MinorVer; ///< Minor version number.
|
||||
BOOLEAN Ipv6Supported; ///< TRUE if the network interface supports IPv6; otherwise FALSE.
|
||||
UINT8 IfNum; ///< The network interface number that is being identified by this Network
|
||||
///< Interface Identifier Protocol. This field must be less than or equal
|
||||
///< to the IFcnt field in the !PXE structure.
|
||||
UINT16 IfNum; ///< The network interface number that is being identified by this Network
|
||||
///< Interface Identifier Protocol. This field must be less than or
|
||||
///< equal to the (IFcnt | IFcntExt <<8 ) fields in the !PXE structure.
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
UEFI 2.0 can boot from any valid EFI image contained in a SimpleFileSystem.
|
||||
|
||||
Copyright (c) 2006 - 2011, 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 that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
|
@ -192,7 +192,7 @@ EFI_STATUS
|
|||
@retval EFI_DEVICE_ERROR An attempt was made to read from a deleted file.
|
||||
@retval EFI_DEVICE_ERROR On entry, the current file position is beyond the end of the file.
|
||||
@retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.
|
||||
@retval EFI_BUFFER_TO_SMALL The BufferSize is too small to read the current directory
|
||||
@retval EFI_BUFFER_TOO_SMALL The BufferSize is too small to read the current directory
|
||||
entry. BufferSize has been updated with the size
|
||||
needed to complete the request.
|
||||
|
||||
|
@ -365,7 +365,164 @@ EFI_STATUS
|
|||
IN EFI_FILE_PROTOCOL *This
|
||||
);
|
||||
|
||||
#define EFI_FILE_PROTOCOL_REVISION 0x00010000
|
||||
typedef struct {
|
||||
//
|
||||
// If Event is NULL, then blocking I/O is performed.
|
||||
// If Event is not NULL and non-blocking I/O is supported, then non-blocking I/O is performed,
|
||||
// and Event will be signaled when the read request is completed.
|
||||
// The caller must be prepared to handle the case where the callback associated with Event
|
||||
// occurs before the original asynchronous I/O request call returns.
|
||||
//
|
||||
EFI_EVENT Event;
|
||||
|
||||
//
|
||||
// Defines whether or not the signaled event encountered an error.
|
||||
//
|
||||
EFI_STATUS Status;
|
||||
|
||||
//
|
||||
// For OpenEx(): Not Used, ignored.
|
||||
// For ReadEx(): On input, the size of the Buffer. On output, the amount of data returned in Buffer.
|
||||
// In both cases, the size is measured in bytes.
|
||||
// For WriteEx(): On input, the size of the Buffer. On output, the amount of data actually written.
|
||||
// In both cases, the size is measured in bytes.
|
||||
// For FlushEx(): Not used, ignored.
|
||||
//
|
||||
UINTN BufferSize;
|
||||
|
||||
//
|
||||
// For OpenEx(): Not Used, ignored.
|
||||
// For ReadEx(): The buffer into which the data is read.
|
||||
// For WriteEx(): The buffer of data to write.
|
||||
// For FlushEx(): Not Used, ignored.
|
||||
//
|
||||
VOID *Buffer;
|
||||
} EFI_FILE_IO_TOKEN;
|
||||
|
||||
/**
|
||||
Opens a new file relative to the source directory's location.
|
||||
|
||||
@param This A pointer to the EFI_FILE_PROTOCOL instance that is the file
|
||||
handle to the source location.
|
||||
@param NewHandle A pointer to the location to return the opened handle for the new
|
||||
file.
|
||||
@param FileName The Null-terminated string of the name of the file to be opened.
|
||||
The file name may contain the following path modifiers: "\", ".",
|
||||
and "..".
|
||||
@param OpenMode The mode to open the file. The only valid combinations that the
|
||||
file may be opened with are: Read, Read/Write, or Create/Read/Write.
|
||||
@param Attributes Only valid for EFI_FILE_MODE_CREATE, in which case these are the
|
||||
attribute bits for the newly created file.
|
||||
@param Token A pointer to the token associated with the transaction.
|
||||
|
||||
@retval EFI_SUCCESS If Event is NULL (blocking I/O): The data was read successfully.
|
||||
If Event is not NULL (asynchronous I/O): The request was successfully
|
||||
queued for processing.
|
||||
@retval EFI_NOT_FOUND The specified file could not be found on the device.
|
||||
@retval EFI_NO_MEDIA The device has no medium.
|
||||
@retval EFI_MEDIA_CHANGED The device has a different medium in it or the medium is no
|
||||
longer supported.
|
||||
@retval EFI_DEVICE_ERROR The device reported an error.
|
||||
@retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.
|
||||
@retval EFI_WRITE_PROTECTED An attempt was made to create a file, or open a file for write
|
||||
when the media is write-protected.
|
||||
@retval EFI_ACCESS_DENIED The service denied access to the file.
|
||||
@retval EFI_OUT_OF_RESOURCES Not enough resources were available to open the file.
|
||||
@retval EFI_VOLUME_FULL The volume is full.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_FILE_OPEN_EX)(
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
OUT EFI_FILE_PROTOCOL **NewHandle,
|
||||
IN CHAR16 *FileName,
|
||||
IN UINT64 OpenMode,
|
||||
IN UINT64 Attributes,
|
||||
IN OUT EFI_FILE_IO_TOKEN *Token
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Reads data from a file.
|
||||
|
||||
@param This A pointer to the EFI_FILE_PROTOCOL instance that is the file handle to read data from.
|
||||
@param Token A pointer to the token associated with the transaction.
|
||||
|
||||
@retval EFI_SUCCESS If Event is NULL (blocking I/O): The data was read successfully.
|
||||
If Event is not NULL (asynchronous I/O): The request was successfully
|
||||
queued for processing.
|
||||
@retval EFI_NO_MEDIA The device has no medium.
|
||||
@retval EFI_DEVICE_ERROR The device reported an error.
|
||||
@retval EFI_DEVICE_ERROR An attempt was made to read from a deleted file.
|
||||
@retval EFI_DEVICE_ERROR On entry, the current file position is beyond the end of the file.
|
||||
@retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.
|
||||
@retval EFI_OUT_OF_RESOURCES Unable to queue the request due to lack of resources.
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_FILE_READ_EX) (
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
IN OUT EFI_FILE_IO_TOKEN *Token
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Writes data to a file.
|
||||
|
||||
@param This A pointer to the EFI_FILE_PROTOCOL instance that is the file handle to write data to.
|
||||
@param Token A pointer to the token associated with the transaction.
|
||||
|
||||
@retval EFI_SUCCESS If Event is NULL (blocking I/O): The data was read successfully.
|
||||
If Event is not NULL (asynchronous I/O): The request was successfully
|
||||
queued for processing.
|
||||
@retval EFI_UNSUPPORTED Writes to open directory files are not supported.
|
||||
@retval EFI_NO_MEDIA The device has no medium.
|
||||
@retval EFI_DEVICE_ERROR The device reported an error.
|
||||
@retval EFI_DEVICE_ERROR An attempt was made to write to a deleted file.
|
||||
@retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.
|
||||
@retval EFI_WRITE_PROTECTED The file or medium is write-protected.
|
||||
@retval EFI_ACCESS_DENIED The file was opened read only.
|
||||
@retval EFI_VOLUME_FULL The volume is full.
|
||||
@retval EFI_OUT_OF_RESOURCES Unable to queue the request due to lack of resources.
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_FILE_WRITE_EX) (
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
IN OUT EFI_FILE_IO_TOKEN *Token
|
||||
);
|
||||
|
||||
/**
|
||||
Flushes all modified data associated with a file to a device.
|
||||
|
||||
@param This A pointer to the EFI_FILE_PROTOCOL instance that is the file
|
||||
handle to flush.
|
||||
@param Token A pointer to the token associated with the transaction.
|
||||
|
||||
@retval EFI_SUCCESS If Event is NULL (blocking I/O): The data was read successfully.
|
||||
If Event is not NULL (asynchronous I/O): The request was successfully
|
||||
queued for processing.
|
||||
@retval EFI_NO_MEDIA The device has no medium.
|
||||
@retval EFI_DEVICE_ERROR The device reported an error.
|
||||
@retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.
|
||||
@retval EFI_WRITE_PROTECTED The file or medium is write-protected.
|
||||
@retval EFI_ACCESS_DENIED The file was opened read-only.
|
||||
@retval EFI_VOLUME_FULL The volume is full.
|
||||
@retval EFI_OUT_OF_RESOURCES Unable to queue the request due to lack of resources.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_FILE_FLUSH_EX) (
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
IN OUT EFI_FILE_IO_TOKEN *Token
|
||||
);
|
||||
|
||||
#define EFI_FILE_PROTOCOL_REVISION 0x00010000
|
||||
#define EFI_FILE_PROTOCOL_REVISION2 0x00020000
|
||||
#define EFI_FILE_PROTOCOL_LATEST_REVISION EFI_FILE_PROTOCOL_REVISION2
|
||||
|
||||
//
|
||||
// Revision defined in EFI1.1.
|
||||
//
|
||||
|
@ -381,8 +538,8 @@ EFI_STATUS
|
|||
struct _EFI_FILE_PROTOCOL {
|
||||
///
|
||||
/// The version of the EFI_FILE_PROTOCOL interface. The version specified
|
||||
/// by this specification is 0x00010000. Future versions are required
|
||||
/// to be backward compatible to version 1.0.
|
||||
/// by this specification is EFI_FILE_PROTOCOL_LATEST_REVISION.
|
||||
/// Future versions are required to be backward compatible to version 1.0.
|
||||
///
|
||||
UINT64 Revision;
|
||||
EFI_FILE_OPEN Open;
|
||||
|
@ -395,6 +552,10 @@ struct _EFI_FILE_PROTOCOL {
|
|||
EFI_FILE_GET_INFO GetInfo;
|
||||
EFI_FILE_SET_INFO SetInfo;
|
||||
EFI_FILE_FLUSH Flush;
|
||||
EFI_FILE_OPEN_EX OpenEx;
|
||||
EFI_FILE_READ_EX ReadEx;
|
||||
EFI_FILE_WRITE_EX WriteEx;
|
||||
EFI_FILE_FLUSH_EX FlushEx;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
Defines data types and constants introduced in UEFI.
|
||||
|
||||
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
|
||||
Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR>
|
||||
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
|
@ -243,6 +245,11 @@ typedef union {
|
|||
///
|
||||
#define EFI_IMAGE_MACHINE_ARMTHUMB_MIXED 0x01C2
|
||||
|
||||
///
|
||||
/// PE32+ Machine type for AARCH64 A64 images.
|
||||
///
|
||||
#define EFI_IMAGE_MACHINE_AARCH64 0xAA64
|
||||
|
||||
|
||||
#if defined (MDE_CPU_IA32)
|
||||
|
||||
|
@ -272,6 +279,13 @@ typedef union {
|
|||
|
||||
#define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) ((Machine) == EFI_IMAGE_MACHINE_ARMTHUMB_MIXED)
|
||||
|
||||
#elif defined (MDE_CPU_AARCH64)
|
||||
|
||||
#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \
|
||||
(((Machine) == EFI_IMAGE_MACHINE_AARCH64) || ((Machine) == EFI_IMAGE_MACHINE_EBC))
|
||||
|
||||
#define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) (FALSE)
|
||||
|
||||
#elif defined (MDE_CPU_EBC)
|
||||
|
||||
///
|
||||
|
|
|
@ -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 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
|
@ -781,6 +781,7 @@ typedef union {
|
|||
#define EFI_IFR_SECURITY_OP 0x60
|
||||
#define EFI_IFR_MODAL_TAG_OP 0x61
|
||||
#define EFI_IFR_REFRESH_ID_OP 0x62
|
||||
#define EFI_IFR_WARNING_IF_OP 0x63
|
||||
|
||||
//
|
||||
// Definitions of IFR Standard Headers
|
||||
|
@ -1128,6 +1129,12 @@ typedef struct _EFI_IFR_NO_SUBMIT_IF {
|
|||
EFI_STRING_ID Error;
|
||||
} EFI_IFR_NO_SUBMIT_IF;
|
||||
|
||||
typedef struct _EFI_IFR_WARNING_IF {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
EFI_STRING_ID Warning;
|
||||
UINT8 TimeOut;
|
||||
} EFI_IFR_WARNING_IF;
|
||||
|
||||
typedef struct _EFI_IFR_REFRESH {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
UINT8 RefreshInterval;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
structure prototypes, global variables and constants that
|
||||
are needed for porting PXE to EFI.
|
||||
|
||||
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
|
@ -721,10 +721,11 @@ typedef struct s_pxe_hw_undi {
|
|||
PXE_UINT8 Len; ///< sizeof(PXE_HW_UNDI).
|
||||
PXE_UINT8 Fudge; ///< makes 8-bit cksum equal zero.
|
||||
PXE_UINT8 Rev; ///< PXE_ROMID_REV.
|
||||
PXE_UINT8 IFcnt; ///< physical connector count.
|
||||
PXE_UINT8 IFcnt; ///< physical connector count lower byte.
|
||||
PXE_UINT8 MajorVer; ///< PXE_ROMID_MAJORVER.
|
||||
PXE_UINT8 MinorVer; ///< PXE_ROMID_MINORVER.
|
||||
PXE_UINT16 reserved; ///< zero, not used.
|
||||
PXE_UINT8 IFcntExt; ///< physical connector count upper byte.
|
||||
PXE_UINT8 reserved; ///< zero, not used.
|
||||
PXE_UINT32 Implementation; ///< implementation flags.
|
||||
///< reserved ///< vendor use.
|
||||
///< UINT32 Status; ///< status port.
|
||||
|
@ -817,10 +818,11 @@ typedef struct s_pxe_sw_undi {
|
|||
PXE_UINT8 Len; ///< sizeof(PXE_SW_UNDI).
|
||||
PXE_UINT8 Fudge; ///< makes 8-bit cksum zero.
|
||||
PXE_UINT8 Rev; ///< PXE_ROMID_REV.
|
||||
PXE_UINT8 IFcnt; ///< physical connector count.
|
||||
PXE_UINT8 IFcnt; ///< physical connector count lower byte.
|
||||
PXE_UINT8 MajorVer; ///< PXE_ROMID_MAJORVER.
|
||||
PXE_UINT8 MinorVer; ///< PXE_ROMID_MINORVER.
|
||||
PXE_UINT16 reserved1; ///< zero, not used.
|
||||
PXE_UINT8 IFcntExt; ///< physical connector count upper byte.
|
||||
PXE_UINT8 reserved1; ///< zero, not used.
|
||||
PXE_UINT32 Implementation; ///< Implementation flags.
|
||||
PXE_UINT64 EntryPoint; ///< API entry point.
|
||||
PXE_UINT8 reserved2[3]; ///< zero, not used.
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
/** @file
|
||||
Include file that supports UEFI.
|
||||
|
||||
This include file must contain things defined in the UEFI 2.3 specification.
|
||||
If a code construct is defined in the UEFI 2.3 specification it must be included
|
||||
This include file must contain things defined in the UEFI 2.4 specification.
|
||||
If a code construct is defined in the UEFI 2.4 specification it must be included
|
||||
by this include file.
|
||||
|
||||
Copyright (c) 2006 - 2012, 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 that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
|
@ -459,11 +459,11 @@ typedef enum {
|
|||
///
|
||||
TimerCancel,
|
||||
///
|
||||
/// An event is to be signalled periodically at a specified interval from the current time.
|
||||
/// An event is to be signaled periodically at a specified interval from the current time.
|
||||
///
|
||||
TimerPeriodic,
|
||||
///
|
||||
/// An event is to be signalled once at a specified interval from the current time.
|
||||
/// An event is to be signaled once at a specified interval from the current time.
|
||||
///
|
||||
TimerRelative
|
||||
} EFI_TIMER_DELAY;
|
||||
|
@ -664,13 +664,20 @@ EFI_STATUS
|
|||
then EFI_INVALID_PARAMETER is returned.
|
||||
@param VendorGuid A unique identifier for the vendor.
|
||||
@param Attributes Attributes bitmask to set for the variable.
|
||||
@param DataSize The size in bytes of the Data buffer. A size of zero causes the
|
||||
variable to be deleted.
|
||||
@param DataSize The size in bytes of the Data buffer. Unless the EFI_VARIABLE_APPEND_WRITE,
|
||||
EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS, or
|
||||
EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS attribute is set, a size of zero
|
||||
causes the variable to be deleted. When the EFI_VARIABLE_APPEND_WRITE attribute is
|
||||
set, then a SetVariable() call with a DataSize of zero will not cause any change to
|
||||
the variable value (the timestamp associated with the variable may be updated however
|
||||
even if no new data value is provided,see the description of the
|
||||
EFI_VARIABLE_AUTHENTICATION_2 descriptor below. In this case the DataSize will not
|
||||
be zero since the EFI_VARIABLE_AUTHENTICATION_2 descriptor will be populated).
|
||||
@param Data The contents for the variable.
|
||||
|
||||
@retval EFI_SUCCESS The firmware has successfully stored the variable and its data as
|
||||
defined by the Attributes.
|
||||
@retval EFI_INVALID_PARAMETER An invalid combination of attribute bits was supplied, or the
|
||||
@retval EFI_INVALID_PARAMETER An invalid combination of attribute bits, name, and GUID was supplied, or the
|
||||
DataSize exceeds the maximum allowed.
|
||||
@retval EFI_INVALID_PARAMETER VariableName is an empty string.
|
||||
@retval EFI_OUT_OF_RESOURCES Not enough storage is available to hold the variable and its data.
|
||||
|
@ -678,8 +685,9 @@ EFI_STATUS
|
|||
@retval EFI_WRITE_PROTECTED The variable in question is read-only.
|
||||
@retval EFI_WRITE_PROTECTED The variable in question cannot be deleted.
|
||||
@retval EFI_SECURITY_VIOLATION The variable could not be written due to EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS
|
||||
set but the AuthInfo does NOT pass the validation check carried out
|
||||
by the firmware.
|
||||
or EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACESS being set, but the AuthInfo
|
||||
does NOT pass the validation check carried out by the firmware.
|
||||
|
||||
@retval EFI_NOT_FOUND The variable trying to be updated or deleted was not found.
|
||||
|
||||
**/
|
||||
|
@ -989,7 +997,15 @@ typedef enum {
|
|||
/// state. If the system does not support this reset type, then when the system
|
||||
/// is rebooted, it should exhibit the EfiResetCold attributes.
|
||||
///
|
||||
EfiResetShutdown
|
||||
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;
|
||||
|
||||
/**
|
||||
|
@ -1150,6 +1166,8 @@ EFI_STATUS
|
|||
@retval EFI_OUT_OF_RESOURCES There was not enough memory in pool to install all the protocols.
|
||||
@retval EFI_ALREADY_STARTED A Device Path Protocol instance was passed in that is already present in
|
||||
the handle database.
|
||||
@retval EFI_INVALID_PARAMETER Handle is NULL.
|
||||
@retval EFI_INVALID_PARAMETER Protocol is already installed on the handle specified by Handle.
|
||||
|
||||
**/
|
||||
typedef
|
||||
|
@ -1655,7 +1673,11 @@ typedef struct {
|
|||
@retval EFI_INVALID_PARAMETER CapsuleCount is 0.
|
||||
@retval EFI_DEVICE_ERROR The capsule update was started, but failed due to a device error.
|
||||
@retval EFI_UNSUPPORTED The capsule type is not supported on this platform.
|
||||
@retval EFI_OUT_OF_RESOURCES There were insufficient resources to process the capsule.
|
||||
@retval EFI_OUT_OF_RESOURCES When ExitBootServices() has been previously called this error indicates the capsule
|
||||
is compatible with this platform but is not capable of being submitted or processed
|
||||
in runtime. The caller may resubmit the capsule prior to ExitBootServices().
|
||||
@retval EFI_OUT_OF_RESOURCES When ExitBootServices() has not been previously called then this error indicates
|
||||
the capsule is compatible with this platform but there are insufficient resources to process.
|
||||
|
||||
**/
|
||||
typedef
|
||||
|
@ -1682,7 +1704,11 @@ EFI_STATUS
|
|||
@retval EFI_UNSUPPORTED The capsule type is not supported on this platform, and
|
||||
MaximumCapsuleSize and ResetType are undefined.
|
||||
@retval EFI_INVALID_PARAMETER MaximumCapsuleSize is NULL.
|
||||
@retval EFI_OUT_OF_RESOURCES There were insufficient resources to process the query request.
|
||||
@retval EFI_OUT_OF_RESOURCES When ExitBootServices() has been previously called this error indicates the capsule
|
||||
is compatible with this platform but is not capable of being submitted or processed
|
||||
in runtime. The caller may resubmit the capsule prior to ExitBootServices().
|
||||
@retval EFI_OUT_OF_RESOURCES When ExitBootServices() has not been previously called then this error indicates
|
||||
the capsule is compatible with this platform but there are insufficient resources to process.
|
||||
|
||||
**/
|
||||
typedef
|
||||
|
@ -1728,12 +1754,17 @@ EFI_STATUS
|
|||
//
|
||||
// Firmware should stop at a firmware user interface on next boot
|
||||
//
|
||||
#define EFI_OS_INDICATIONS_BOOT_TO_FW_UI 0x0000000000000001
|
||||
#define EFI_OS_INDICATIONS_BOOT_TO_FW_UI 0x0000000000000001
|
||||
#define EFI_OS_INDICATIONS_TIMESTAMP_REVOCATION 0x0000000000000002
|
||||
#define EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED 0x0000000000000004
|
||||
#define EFI_OS_INDICATIONS_FMP_CAPSULE_SUPPORTED 0x0000000000000008
|
||||
#define EFI_OS_INDICATIONS_CAPSULE_RESULT_VAR_SUPPORTED 0x0000000000000010
|
||||
|
||||
//
|
||||
// EFI Runtime Services Table
|
||||
//
|
||||
#define EFI_SYSTEM_TABLE_SIGNATURE SIGNATURE_64 ('I','B','I',' ','S','Y','S','T')
|
||||
#define EFI_2_40_SYSTEM_TABLE_REVISION ((2 << 16) | (40))
|
||||
#define EFI_2_31_SYSTEM_TABLE_REVISION ((2 << 16) | (31))
|
||||
#define EFI_2_30_SYSTEM_TABLE_REVISION ((2 << 16) | (30))
|
||||
#define EFI_2_20_SYSTEM_TABLE_REVISION ((2 << 16) | (20))
|
||||
|
@ -1741,10 +1772,11 @@ EFI_STATUS
|
|||
#define EFI_2_00_SYSTEM_TABLE_REVISION ((2 << 16) | (00))
|
||||
#define EFI_1_10_SYSTEM_TABLE_REVISION ((1 << 16) | (10))
|
||||
#define EFI_1_02_SYSTEM_TABLE_REVISION ((1 << 16) | (02))
|
||||
#define EFI_SYSTEM_TABLE_REVISION EFI_2_31_SYSTEM_TABLE_REVISION
|
||||
#define EFI_SYSTEM_TABLE_REVISION EFI_2_40_SYSTEM_TABLE_REVISION
|
||||
#define EFI_SPECIFICATION_VERSION EFI_SYSTEM_TABLE_REVISION
|
||||
|
||||
#define EFI_RUNTIME_SERVICES_SIGNATURE SIGNATURE_64 ('R','U','N','T','S','E','R','V')
|
||||
#define EFI_RUNTIME_SERVICES_REVISION EFI_2_31_SYSTEM_TABLE_REVISION
|
||||
#define EFI_RUNTIME_SERVICES_REVISION EFI_SPECIFICATION_VERSION
|
||||
|
||||
///
|
||||
/// EFI Runtime Services Table.
|
||||
|
@ -1796,7 +1828,7 @@ typedef struct {
|
|||
|
||||
|
||||
#define EFI_BOOT_SERVICES_SIGNATURE SIGNATURE_64 ('B','O','O','T','S','E','R','V')
|
||||
#define EFI_BOOT_SERVICES_REVISION EFI_2_31_SYSTEM_TABLE_REVISION
|
||||
#define EFI_BOOT_SERVICES_REVISION EFI_SPECIFICATION_VERSION
|
||||
|
||||
///
|
||||
/// EFI Boot Services Table.
|
||||
|
@ -2013,41 +2045,46 @@ EFI_STATUS
|
|||
///
|
||||
/// EFI Boot Key Data
|
||||
///
|
||||
typedef UINT32 EFI_BOOT_KEY_DATA;
|
||||
///
|
||||
/// Indicates the revision of the EFI_KEY_OPTION structure. This revision level should be 0.
|
||||
///
|
||||
#define EFI_KEY_OPTION_REVISION_MASK 0x000000FF
|
||||
///
|
||||
/// Either the left or right Shift keys must be pressed (1) or must not be pressed (0).
|
||||
///
|
||||
#define EFI_KEY_OPTION_SHIFT_PRESSED_MASK BIT8
|
||||
///
|
||||
/// Either the left or right Control keys must be pressed (1) or must not be pressed (0).
|
||||
///
|
||||
#define EFI_KEY_OPTION_CONTROL_PRESSED_MASK BIT9
|
||||
///
|
||||
/// Either the left or right Alt keys must be pressed (1) or must not be pressed (0).
|
||||
///
|
||||
#define EFI_KEY_OPTION_ALT_PRESSED_MASK BIT10
|
||||
///
|
||||
/// Either the left or right Logo keys must be pressed (1) or must not be pressed (0).
|
||||
///
|
||||
#define EFI_KEY_OPTION_LOGO_PRESSED_MASK BIT11
|
||||
///
|
||||
/// The Menu key must be pressed (1) or must not be pressed (0).
|
||||
///
|
||||
#define EFI_KEY_OPTION_MENU_PRESSED_MASK BIT12
|
||||
///
|
||||
/// The SysReq key must be pressed (1) or must not be pressed (0).
|
||||
///
|
||||
#define EFI_KEY_OPTION_SYS_REQ_PRESSED_MASK BIT13
|
||||
///
|
||||
/// Specifies the actual number of entries in EFI_KEY_OPTION.Keys, from 0-3. If
|
||||
/// zero, then only the shift state is considered. If more than one, then the boot option will
|
||||
/// only be launched if all of the specified keys are pressed with the same shift state.
|
||||
///
|
||||
#define EFI_KEY_OPTION_INPUT_KEY_COUNT_MASK (BIT30 | BIT31)
|
||||
typedef union {
|
||||
struct {
|
||||
///
|
||||
/// Indicates the revision of the EFI_KEY_OPTION structure. This revision level should be 0.
|
||||
///
|
||||
UINT32 Revision : 8;
|
||||
///
|
||||
/// Either the left or right Shift keys must be pressed (1) or must not be pressed (0).
|
||||
///
|
||||
UINT32 ShiftPressed : 1;
|
||||
///
|
||||
/// Either the left or right Control keys must be pressed (1) or must not be pressed (0).
|
||||
///
|
||||
UINT32 ControlPressed : 1;
|
||||
///
|
||||
/// Either the left or right Alt keys must be pressed (1) or must not be pressed (0).
|
||||
///
|
||||
UINT32 AltPressed : 1;
|
||||
///
|
||||
/// Either the left or right Logo keys must be pressed (1) or must not be pressed (0).
|
||||
///
|
||||
UINT32 LogoPressed : 1;
|
||||
///
|
||||
/// The Menu key must be pressed (1) or must not be pressed (0).
|
||||
///
|
||||
UINT32 MenuPressed : 1;
|
||||
///
|
||||
/// The SysReq key must be pressed (1) or must not be pressed (0).
|
||||
///
|
||||
UINT32 SysReqPressed : 1;
|
||||
UINT32 Reserved : 16;
|
||||
///
|
||||
/// Specifies the actual number of entries in EFI_KEY_OPTION.Keys, from 0-3. If
|
||||
/// zero, then only the shift state is considered. If more than one, then the boot option will
|
||||
/// only be launched if all of the specified keys are pressed with the same shift state.
|
||||
///
|
||||
UINT32 InputKeyCount : 2;
|
||||
} Options;
|
||||
UINT32 PackedValue;
|
||||
} EFI_BOOT_KEY_DATA;
|
||||
|
||||
///
|
||||
/// EFI Key Option.
|
||||
|
@ -2085,6 +2122,7 @@ typedef struct {
|
|||
#define EFI_REMOVABLE_MEDIA_FILE_NAME_IA64 L"\\EFI\\BOOT\\BOOTIA64.EFI"
|
||||
#define EFI_REMOVABLE_MEDIA_FILE_NAME_X64 L"\\EFI\\BOOT\\BOOTX64.EFI"
|
||||
#define EFI_REMOVABLE_MEDIA_FILE_NAME_ARM L"\\EFI\\BOOT\\BOOTARM.EFI"
|
||||
#define EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64 L"\\EFI\\BOOT\\BOOTAA64.EFI"
|
||||
|
||||
#if defined (MDE_CPU_IA32)
|
||||
#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_IA32
|
||||
|
@ -2095,6 +2133,8 @@ typedef struct {
|
|||
#elif defined (MDE_CPU_EBC)
|
||||
#elif defined (MDE_CPU_ARM)
|
||||
#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_ARM
|
||||
#elif defined (MDE_CPU_AARCH64)
|
||||
#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64
|
||||
#else
|
||||
#error Unknown Processor Type
|
||||
#endif
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/** @file
|
||||
Processor or Compiler specific defines and types x64 (Intel 64, AMD64).
|
||||
|
||||
Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
|
@ -229,6 +229,12 @@ typedef INT64 INTN;
|
|||
///
|
||||
#define MAX_ADDRESS 0xFFFFFFFFFFFFFFFFULL
|
||||
|
||||
///
|
||||
/// Maximum legal x64 INTN and UINTN values.
|
||||
///
|
||||
#define MAX_INTN ((INTN)0x7FFFFFFFFFFFFFFFULL)
|
||||
#define MAX_UINTN ((UINTN)0xFFFFFFFFFFFFFFFFULL)
|
||||
|
||||
///
|
||||
/// The stack alignment required for x64
|
||||
///
|
||||
|
|
Loading…
Reference in New Issue