Remove the dependence to MdePkg
1. add Include folder which contain the *.h file which used by Tiano tools. 2. Change ${evn.WORKSPACE}/MdePkg to ${PACKAGE_DIR} in build.xml. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@509 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
206
Tools/Source/TianoTools/Include/Common/BaseTypes.h
Normal file
206
Tools/Source/TianoTools/Include/Common/BaseTypes.h
Normal file
@@ -0,0 +1,206 @@
|
||||
/** @file
|
||||
Processor or Compiler specific defines for all supported processors.
|
||||
|
||||
This file is stand alone self consistent set of definitions.
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. 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.
|
||||
|
||||
Module Name: BaseTypes.h
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __BASE_TYPES_H__
|
||||
#define __BASE_TYPES_H__
|
||||
|
||||
//
|
||||
// Include processor specific binding
|
||||
//
|
||||
#include <ProcessorBind.h>
|
||||
|
||||
#define MEMORY_FENCE() MemoryFence ()
|
||||
#define BREAKPOINT() CpuBreakpoint ()
|
||||
#define DEADLOOP() CpuDeadLoop ()
|
||||
|
||||
typedef struct {
|
||||
UINT32 Data1;
|
||||
UINT16 Data2;
|
||||
UINT16 Data3;
|
||||
UINT8 Data4[8];
|
||||
} GUID;
|
||||
|
||||
|
||||
//
|
||||
// Modifiers to absract standard types to aid in debug of problems
|
||||
//
|
||||
#define CONST const
|
||||
#define STATIC static
|
||||
#define VOID void
|
||||
|
||||
//
|
||||
// Modifiers for Data Types used to self document code.
|
||||
// This concept is borrowed for UEFI specification.
|
||||
//
|
||||
#ifndef IN
|
||||
//
|
||||
// Some other envirnments use this construct, so #ifndef to prevent
|
||||
// mulitple definition.
|
||||
//
|
||||
#define IN
|
||||
#define OUT
|
||||
#define OPTIONAL
|
||||
#endif
|
||||
|
||||
//
|
||||
// Constants. They may exist in other build structures, so #ifndef them.
|
||||
//
|
||||
#ifndef TRUE
|
||||
//
|
||||
// BugBug: UEFI specification claims 1 and 0. We are concerned about the
|
||||
// complier portability so we did it this way.
|
||||
//
|
||||
#define TRUE ((BOOLEAN)(1==1))
|
||||
#endif
|
||||
|
||||
#ifndef FALSE
|
||||
#define FALSE ((BOOLEAN)(0==1))
|
||||
#endif
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL ((VOID *) 0)
|
||||
#endif
|
||||
|
||||
//
|
||||
// Support for variable length argument lists using the ANSI standard.
|
||||
//
|
||||
// Since we are using the ANSI standard we used the standard nameing and
|
||||
// did not folow the coding convention
|
||||
//
|
||||
// VA_LIST - typedef for argument list.
|
||||
// VA_START (VA_LIST Marker, argument before the ...) - Init Marker for use.
|
||||
// VA_END (VA_LIST Marker) - Clear Marker
|
||||
// VA_ARG (VA_LIST Marker, var arg size) - Use Marker to get an argumnet from
|
||||
// the ... list. You must know the size and pass it in this macro.
|
||||
//
|
||||
// example:
|
||||
//
|
||||
// UINTN
|
||||
// ExampleVarArg (
|
||||
// IN UINTN NumberOfArgs,
|
||||
// ...
|
||||
// )
|
||||
// {
|
||||
// VA_LIST Marker;
|
||||
// UINTN Index;
|
||||
// UINTN Result;
|
||||
//
|
||||
// //
|
||||
// // Initialize the Marker
|
||||
// //
|
||||
// VA_START (Marker, NumberOfArgs);
|
||||
// for (Index = 0, Result = 0; Index < NumberOfArgs; Index++) {
|
||||
// //
|
||||
// // The ... list is a series of UINTN values, so average them up.
|
||||
// //
|
||||
// Result += VA_ARG (Marker, UINTN);
|
||||
// }
|
||||
//
|
||||
// VA_END (Marker);
|
||||
// return Result
|
||||
// }
|
||||
//
|
||||
|
||||
#define _INT_SIZE_OF(n) ((sizeof (n) + sizeof (UINTN) - 1) &~(sizeof (UINTN) - 1))
|
||||
|
||||
//
|
||||
// Also support coding convention rules for var arg macros
|
||||
//
|
||||
#ifndef VA_START
|
||||
|
||||
typedef CHAR8 *VA_LIST;
|
||||
#define VA_START(ap, v) (ap = (VA_LIST) & (v) + _INT_SIZE_OF (v))
|
||||
#define VA_ARG(ap, t) (*(t *) ((ap += _INT_SIZE_OF (t)) - _INT_SIZE_OF (t)))
|
||||
#define VA_END(ap) (ap = (VA_LIST) 0)
|
||||
|
||||
#endif
|
||||
|
||||
///
|
||||
/// CONTAINING_RECORD - returns a pointer to the structure
|
||||
/// from one of it's elements.
|
||||
///
|
||||
#define _CR(Record, TYPE, Field) ((TYPE *) ((CHAR8 *) (Record) - (CHAR8 *) &(((TYPE *) 0)->Field)))
|
||||
|
||||
///
|
||||
/// ALIGN_POINTER - aligns a pointer to the lowest boundry
|
||||
///
|
||||
#define ALIGN_POINTER(p, s) ((VOID *) ((p) + (((s) - ((UINTN) (p))) & ((s) - 1))))
|
||||
|
||||
///
|
||||
/// ALIGN_VARIABLE - aligns a variable up to the next natural boundry for int size of a processor
|
||||
///
|
||||
#define ALIGN_VARIABLE(Value, Adjustment) \
|
||||
Adjustment = 0U; \
|
||||
if ((UINTN) (Value) % sizeof (UINTN)) { \
|
||||
(Adjustment) = (UINTN)(sizeof (UINTN) - ((UINTN) (Value) % sizeof (UINTN))); \
|
||||
} \
|
||||
(Value) = (UINTN)((UINTN) (Value) + (UINTN) (Adjustment))
|
||||
|
||||
//
|
||||
// EFI Error Codes common to all execution phases
|
||||
//
|
||||
|
||||
typedef INTN RETURN_STATUS;
|
||||
|
||||
///
|
||||
/// Set the upper bit to indicate EFI Error.
|
||||
///
|
||||
#define ENCODE_ERROR(a) (MAX_BIT | (a))
|
||||
|
||||
#define ENCODE_WARNING(a) (a)
|
||||
#define RETURN_ERROR(a) ((a) < 0)
|
||||
|
||||
#define RETURN_SUCCESS 0
|
||||
#define RETURN_LOAD_ERROR ENCODE_ERROR (1)
|
||||
#define RETURN_INVALID_PARAMETER ENCODE_ERROR (2)
|
||||
#define RETURN_UNSUPPORTED ENCODE_ERROR (3)
|
||||
#define RETURN_BAD_BUFFER_SIZE ENCODE_ERROR (4)
|
||||
#define RETURN_BUFFER_TOO_SMALL ENCODE_ERROR (5)
|
||||
#define RETURN_NOT_READY ENCODE_ERROR (6)
|
||||
#define RETURN_DEVICE_ERROR ENCODE_ERROR (7)
|
||||
#define RETURN_WRITE_PROTECTED ENCODE_ERROR (8)
|
||||
#define RETURN_OUT_OF_RESOURCES ENCODE_ERROR (9)
|
||||
#define RETURN_VOLUME_CORRUPTED ENCODE_ERROR (10)
|
||||
#define RETURN_VOLUME_FULL ENCODE_ERROR (11)
|
||||
#define RETURN_NO_MEDIA ENCODE_ERROR (12)
|
||||
#define RETURN_MEDIA_CHANGED ENCODE_ERROR (13)
|
||||
#define RETURN_NOT_FOUND ENCODE_ERROR (14)
|
||||
#define RETURN_ACCESS_DENIED ENCODE_ERROR (15)
|
||||
#define RETURN_NO_RESPONSE ENCODE_ERROR (16)
|
||||
#define RETURN_NO_MAPPING ENCODE_ERROR (17)
|
||||
#define RETURN_TIMEOUT ENCODE_ERROR (18)
|
||||
#define RETURN_NOT_STARTED ENCODE_ERROR (19)
|
||||
#define RETURN_ALREADY_STARTED ENCODE_ERROR (20)
|
||||
#define RETURN_ABORTED ENCODE_ERROR (21)
|
||||
#define RETURN_ICMP_ERROR ENCODE_ERROR (22)
|
||||
#define RETURN_TFTP_ERROR ENCODE_ERROR (23)
|
||||
#define RETURN_PROTOCOL_ERROR ENCODE_ERROR (24)
|
||||
#define RETURN_INCOMPATIBLE_VERSION ENCODE_ERROR (25)
|
||||
#define RETURN_SECURITY_VIOLATION ENCODE_ERROR (26)
|
||||
#define RETURN_CRC_ERROR ENCODE_ERROR (27)
|
||||
#define RETURN_END_OF_MEDIA ENCODE_ERROR (28)
|
||||
#define RETURN_END_OF_FILE ENCODE_ERROR (31)
|
||||
|
||||
#define RETURN_WARN_UNKNOWN_GLYPH ENCODE_WARNING (1)
|
||||
#define RETURN_WARN_DELETE_FAILURE ENCODE_WARNING (2)
|
||||
#define RETURN_WARN_WRITE_FAILURE ENCODE_WARNING (3)
|
||||
#define RETURN_WARN_BUFFER_TOO_SMALL ENCODE_WARNING (4)
|
||||
|
||||
typedef UINT64 PHYSICAL_ADDRESS;
|
||||
|
||||
#endif
|
37
Tools/Source/TianoTools/Include/Common/BootMode.h
Normal file
37
Tools/Source/TianoTools/Include/Common/BootMode.h
Normal file
@@ -0,0 +1,37 @@
|
||||
/** @file
|
||||
This includes for the Boot mode information.
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. 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.
|
||||
|
||||
Module Name: BootMode.h
|
||||
|
||||
@par Revision Reference:
|
||||
These definitions are from PeiCis 0.91 spec.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __EFI_BOOT_MODE_H__
|
||||
#define __EFI_BOOT_MODE_H__
|
||||
|
||||
#define BOOT_WITH_FULL_CONFIGURATION 0x00
|
||||
#define BOOT_WITH_MINIMAL_CONFIGURATION 0x01
|
||||
#define BOOT_ASSUMING_NO_CONFIGURATION_CHANGES 0x02
|
||||
#define BOOT_WITH_FULL_CONFIGURATION_PLUS_DIAGNOSTICS 0x03
|
||||
#define BOOT_WITH_DEFAULT_SETTINGS 0x04
|
||||
#define BOOT_ON_S4_RESUME 0x05
|
||||
#define BOOT_ON_S5_RESUME 0x06
|
||||
#define BOOT_ON_S2_RESUME 0x10
|
||||
#define BOOT_ON_S3_RESUME 0x11
|
||||
#define BOOT_ON_FLASH_UPDATE 0x12
|
||||
#define BOOT_IN_RECOVERY_MODE 0x20
|
||||
#define BOOT_IN_RECOVERY_MODE_MASK 0x40
|
||||
#define BOOT_SPECIAL_MASK 0x80
|
||||
|
||||
#endif
|
198
Tools/Source/TianoTools/Include/Common/BootScript.h
Normal file
198
Tools/Source/TianoTools/Include/Common/BootScript.h
Normal file
@@ -0,0 +1,198 @@
|
||||
/** @file
|
||||
This file declares the related BootScript definitions and some SMBus definitions.
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. 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.
|
||||
|
||||
Module Name: BootScript.h
|
||||
|
||||
@par Revision Reference:
|
||||
These definitions are defined in BootScript Spec 0.91 and SmBus PPI spec 0.9.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef _EFI_SCRIPT_H_
|
||||
#define _EFI_SCRIPT_H_
|
||||
|
||||
#define EFI_ACPI_S3_RESUME_SCRIPT_TABLE 0x00
|
||||
|
||||
//
|
||||
// Boot Script Opcode Definitions
|
||||
//
|
||||
|
||||
#define EFI_BOOT_SCRIPT_IO_WRITE_OPCODE 0x00
|
||||
#define EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE 0x01
|
||||
#define EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE 0x02
|
||||
#define EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE 0x03
|
||||
#define EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE 0x04
|
||||
#define EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE 0x05
|
||||
#define EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE 0x06
|
||||
#define EFI_BOOT_SCRIPT_STALL_OPCODE 0x07
|
||||
#define EFI_BOOT_SCRIPT_DISPATCH_OPCODE 0x08
|
||||
|
||||
#define EFI_BOOT_SCRIPT_TABLE_OPCODE 0xAA
|
||||
#define EFI_BOOT_SCRIPT_TERMINATE_OPCODE 0xFF
|
||||
|
||||
//
|
||||
// EFI Boot Script Width
|
||||
//
|
||||
typedef enum {
|
||||
EfiBootScriptWidthUint8,
|
||||
EfiBootScriptWidthUint16,
|
||||
EfiBootScriptWidthUint32,
|
||||
EfiBootScriptWidthUint64,
|
||||
EfiBootScriptWidthFifoUint8,
|
||||
EfiBootScriptWidthFifoUint16,
|
||||
EfiBootScriptWidthFifoUint32,
|
||||
EfiBootScriptWidthFifoUint64,
|
||||
EfiBootScriptWidthFillUint8,
|
||||
EfiBootScriptWidthFillUint16,
|
||||
EfiBootScriptWidthFillUint32,
|
||||
EfiBootScriptWidthFillUint64,
|
||||
EfiBootScriptWidthMaximum
|
||||
} EFI_BOOT_SCRIPT_WIDTH;
|
||||
|
||||
//
|
||||
// EFI Smbus Device Address, Smbus Device Command, Smbus Operation
|
||||
//
|
||||
typedef struct {
|
||||
UINTN SmbusDeviceAddress : 7;
|
||||
} EFI_SMBUS_DEVICE_ADDRESS;
|
||||
|
||||
typedef UINTN EFI_SMBUS_DEVICE_COMMAND;
|
||||
|
||||
typedef enum _EFI_SMBUS_OPERATION
|
||||
{
|
||||
EfiSmbusQuickRead,
|
||||
EfiSmbusQuickWrite,
|
||||
EfiSmbusReceiveByte,
|
||||
EfiSmbusSendByte,
|
||||
EfiSmbusReadByte,
|
||||
EfiSmbusWriteByte,
|
||||
EfiSmbusReadWord,
|
||||
EfiSmbusWriteWord,
|
||||
EfiSmbusReadBlock,
|
||||
EfiSmbusWriteBlock,
|
||||
EfiSmbusProcessCall,
|
||||
EfiSmbusBWBRProcessCall
|
||||
} EFI_SMBUS_OPERATION;
|
||||
|
||||
//
|
||||
// Boot Script Opcode Header Structure Definitions
|
||||
//
|
||||
|
||||
typedef struct {
|
||||
UINT16 OpCode;
|
||||
UINT8 Length;
|
||||
} EFI_BOOT_SCRIPT_GENERIC_HEADER;
|
||||
|
||||
typedef struct {
|
||||
UINT16 OpCode;
|
||||
UINT8 Length;
|
||||
UINT16 Version;
|
||||
UINT32 TableLength;
|
||||
UINT16 Reserved[2];
|
||||
} EFI_BOOT_SCRIPT_TABLE_HEADER;
|
||||
|
||||
typedef struct {
|
||||
UINT16 OpCode;
|
||||
UINT8 Length;
|
||||
EFI_BOOT_SCRIPT_WIDTH Width;
|
||||
} EFI_BOOT_SCRIPT_COMMON_HEADER;
|
||||
|
||||
typedef struct {
|
||||
UINT16 OpCode;
|
||||
UINT8 Length;
|
||||
EFI_BOOT_SCRIPT_WIDTH Width;
|
||||
UINTN Count;
|
||||
UINT64 Address;
|
||||
} EFI_BOOT_SCRIPT_IO_WRITE;
|
||||
|
||||
typedef struct {
|
||||
UINT16 OpCode;
|
||||
UINT8 Length;
|
||||
EFI_BOOT_SCRIPT_WIDTH Width;
|
||||
UINT64 Address;
|
||||
} EFI_BOOT_SCRIPT_IO_READ_WRITE;
|
||||
|
||||
typedef struct {
|
||||
UINT16 OpCode;
|
||||
UINT8 Length;
|
||||
EFI_BOOT_SCRIPT_WIDTH Width;
|
||||
UINTN Count;
|
||||
UINT64 Address;
|
||||
} EFI_BOOT_SCRIPT_MEM_WRITE;
|
||||
|
||||
typedef struct {
|
||||
UINT16 OpCode;
|
||||
UINT8 Length;
|
||||
EFI_BOOT_SCRIPT_WIDTH Width;
|
||||
UINT64 Address;
|
||||
} EFI_BOOT_SCRIPT_MEM_READ_WRITE;
|
||||
|
||||
typedef struct {
|
||||
UINT16 OpCode;
|
||||
UINT8 Length;
|
||||
EFI_BOOT_SCRIPT_WIDTH Width;
|
||||
UINTN Count;
|
||||
UINT64 Address;
|
||||
} EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE;
|
||||
|
||||
typedef struct {
|
||||
UINT16 OpCode;
|
||||
UINT8 Length;
|
||||
EFI_BOOT_SCRIPT_WIDTH Width;
|
||||
UINT64 Address;
|
||||
} EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE;
|
||||
|
||||
typedef struct {
|
||||
UINT16 OpCode;
|
||||
UINT8 Length;
|
||||
EFI_SMBUS_DEVICE_ADDRESS SlaveAddress;
|
||||
EFI_SMBUS_DEVICE_COMMAND Command;
|
||||
EFI_SMBUS_OPERATION Operation;
|
||||
BOOLEAN PecCheck;
|
||||
UINTN DataSize;
|
||||
} EFI_BOOT_SCRIPT_SMBUS_EXECUTE;
|
||||
|
||||
typedef struct {
|
||||
UINT16 OpCode;
|
||||
UINT8 Length;
|
||||
UINTN Duration;
|
||||
} EFI_BOOT_SCRIPT_STALL;
|
||||
|
||||
typedef struct {
|
||||
UINT16 OpCode;
|
||||
UINT8 Length;
|
||||
EFI_PHYSICAL_ADDRESS EntryPoint;
|
||||
} EFI_BOOT_SCRIPT_DISPATCH;
|
||||
|
||||
typedef struct {
|
||||
UINT16 OpCode;
|
||||
UINT8 Length;
|
||||
} EFI_BOOT_SCRIPT_TERMINATE;
|
||||
|
||||
typedef union {
|
||||
EFI_BOOT_SCRIPT_GENERIC_HEADER *Header;
|
||||
EFI_BOOT_SCRIPT_TABLE_HEADER *TableInfo;
|
||||
EFI_BOOT_SCRIPT_IO_WRITE *IoWrite;
|
||||
EFI_BOOT_SCRIPT_IO_READ_WRITE *IoReadWrite;
|
||||
EFI_BOOT_SCRIPT_MEM_WRITE *MemWrite;
|
||||
EFI_BOOT_SCRIPT_MEM_READ_WRITE *MemReadWrite;
|
||||
EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE *PciWrite;
|
||||
EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE *PciReadWrite;
|
||||
EFI_BOOT_SCRIPT_SMBUS_EXECUTE *SmbusExecute;
|
||||
EFI_BOOT_SCRIPT_STALL *Stall;
|
||||
EFI_BOOT_SCRIPT_DISPATCH *Dispatch;
|
||||
EFI_BOOT_SCRIPT_TERMINATE *Terminate;
|
||||
EFI_BOOT_SCRIPT_COMMON_HEADER *CommonHeader;
|
||||
UINT8 *Raw;
|
||||
} BOOT_SCRIPT_POINTERS;
|
||||
|
||||
#endif
|
67
Tools/Source/TianoTools/Include/Common/Capsule.h
Normal file
67
Tools/Source/TianoTools/Include/Common/Capsule.h
Normal file
@@ -0,0 +1,67 @@
|
||||
/** @file
|
||||
Defines for the EFI Capsule functionality.
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. 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.
|
||||
|
||||
Module Name: Capsule.h
|
||||
|
||||
@par Revision Reference:
|
||||
These definitions are from Capsule Spec Version 0.9.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef _EFI_CAPSULE_H_
|
||||
#define _EFI_CAPSULE_H_
|
||||
|
||||
//
|
||||
// Bits in the flags field of the capsule header
|
||||
//
|
||||
#define EFI_CAPSULE_HEADER_FLAG_SETUP 0x00000001 // supports setup changes
|
||||
|
||||
|
||||
#define CAPSULE_BLOCK_DESCRIPTOR_SIGNATURE EFI_SIGNATURE_32 ('C', 'B', 'D', 'S')
|
||||
|
||||
//
|
||||
// An array of these describe the blocks that make up a capsule for
|
||||
// a capsule update.
|
||||
//
|
||||
typedef struct {
|
||||
UINT64 Length; // length of the data block
|
||||
EFI_PHYSICAL_ADDRESS Data; // physical address of the data block
|
||||
UINT32 Signature; // CBDS
|
||||
UINT32 CheckSum; // to sum this structure to 0
|
||||
} EFI_CAPSULE_BLOCK_DESCRIPTOR;
|
||||
|
||||
typedef struct {
|
||||
EFI_GUID OemGuid;
|
||||
UINT32 HeaderSize;
|
||||
//
|
||||
// UINT8 OemHdrData[];
|
||||
//
|
||||
} EFI_CAPSULE_OEM_HEADER;
|
||||
|
||||
typedef struct {
|
||||
EFI_GUID CapsuleGuid;
|
||||
UINT32 HeaderSize;
|
||||
UINT32 Flags;
|
||||
UINT32 CapsuleImageSize;
|
||||
UINT32 SequenceNumber;
|
||||
EFI_GUID InstanceId;
|
||||
UINT32 OffsetToSplitInformation;
|
||||
UINT32 OffsetToCapsuleBody;
|
||||
UINT32 OffsetToOemDefinedHeader;
|
||||
UINT32 OffsetToAuthorInformation;
|
||||
UINT32 OffsetToRevisionInformation;
|
||||
UINT32 OffsetToShortDescription;
|
||||
UINT32 OffsetToLongDescription;
|
||||
UINT32 OffsetToApplicableDevices;
|
||||
} EFI_CAPSULE_HEADER;
|
||||
|
||||
#endif // #ifndef _EFI_CAPSULE_H_
|
1847
Tools/Source/TianoTools/Include/Common/DataHubRecords.h
Normal file
1847
Tools/Source/TianoTools/Include/Common/DataHubRecords.h
Normal file
File diff suppressed because it is too large
Load Diff
50
Tools/Source/TianoTools/Include/Common/Dependency.h
Normal file
50
Tools/Source/TianoTools/Include/Common/Dependency.h
Normal file
@@ -0,0 +1,50 @@
|
||||
/** @file
|
||||
This module contains data specific to dependency expressions
|
||||
and local function prototypes.
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. 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.
|
||||
|
||||
Module Name: Dependency.h
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __DEPENDENCY_H__
|
||||
#define __DEPENDENCY_H__
|
||||
|
||||
/// EFI_DEP_BEFORE - If present, this must be the first and only opcode
|
||||
#define EFI_DEP_BEFORE 0x00
|
||||
|
||||
/// EFI_DEP_AFTER - If present, this must be the first and only opcode
|
||||
#define EFI_DEP_AFTER 0x01
|
||||
|
||||
#define EFI_DEP_PUSH 0x02
|
||||
#define EFI_DEP_AND 0x03
|
||||
#define EFI_DEP_OR 0x04
|
||||
#define EFI_DEP_NOT 0x05
|
||||
#define EFI_DEP_TRUE 0x06
|
||||
#define EFI_DEP_FALSE 0x07
|
||||
#define EFI_DEP_END 0x08
|
||||
|
||||
/// EFI_DEP_SOR - If present, this must be the first opcode
|
||||
#define EFI_DEP_SOR 0x09
|
||||
|
||||
///
|
||||
/// EFI_DEP_REPLACE_TRUE - Used to dynamically patch the dependecy expression
|
||||
/// to save time. A EFI_DEP_PUSH is evauated one an
|
||||
/// replaced with EFI_DEP_REPLACE_TRUE
|
||||
///
|
||||
#define EFI_DEP_REPLACE_TRUE 0xff
|
||||
|
||||
///
|
||||
/// Define the initial size of the dependency expression evaluation stack
|
||||
///
|
||||
#define DEPEX_STACK_SIZE_INCREMENT 0x1000
|
||||
|
||||
#endif
|
698
Tools/Source/TianoTools/Include/Common/EfiImage.h
Normal file
698
Tools/Source/TianoTools/Include/Common/EfiImage.h
Normal file
@@ -0,0 +1,698 @@
|
||||
/** @file
|
||||
EFI image format for PE32+. Please note some data structures are different
|
||||
for IA-32 and Itanium-based images, look for UINTN and the #ifdef EFI_IA64
|
||||
|
||||
@bug Fix text - doc as defined in MSFT EFI specification.
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. 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.
|
||||
|
||||
Module Name: EfiImage.h
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __EFI_IMAGE_H__
|
||||
#define __EFI_IMAGE_H__
|
||||
|
||||
//
|
||||
// PE32+ Subsystem type for EFI images
|
||||
//
|
||||
#define EFI_IMAGE_SUBSYSTEM_EFI_APPLICATION 10
|
||||
#define EFI_IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11
|
||||
#define EFI_IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 12
|
||||
#define EFI_IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER 13
|
||||
|
||||
//
|
||||
// BugBug: Need to get a real answer for this problem. This is not in the
|
||||
// PE specification.
|
||||
//
|
||||
// A SAL runtime driver does not get fixed up when a transition to
|
||||
// virtual mode is made. In all other cases it should be treated
|
||||
// like a EFI_IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER image
|
||||
//
|
||||
#define EFI_IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER 13
|
||||
|
||||
//
|
||||
// PE32+ Machine type for EFI images
|
||||
//
|
||||
#define IMAGE_FILE_MACHINE_I386 0x014c
|
||||
#define IMAGE_FILE_MACHINE_IA64 0x0200
|
||||
#define IMAGE_FILE_MACHINE_EBC 0x0EBC
|
||||
#define IMAGE_FILE_MACHINE_X64 0x8664
|
||||
//
|
||||
// Support old names for backward compatible
|
||||
//
|
||||
#define EFI_IMAGE_MACHINE_IA32 IMAGE_FILE_MACHINE_I386
|
||||
#define EFI_IMAGE_MACHINE_IA64 IMAGE_FILE_MACHINE_IA64
|
||||
#define EFI_IMAGE_MACHINE_IPF IMAGE_FILE_MACHINE_IA64
|
||||
#define EFI_IMAGE_MACHINE_EBC IMAGE_FILE_MACHINE_EBC
|
||||
#define EFI_IMAGE_MACHINE_X64 IMAGE_FILE_MACHINE_X64
|
||||
|
||||
#define EFI_IMAGE_DOS_SIGNATURE 0x5A4D // MZ
|
||||
#define EFI_IMAGE_OS2_SIGNATURE 0x454E // NE
|
||||
#define EFI_IMAGE_OS2_SIGNATURE_LE 0x454C // LE
|
||||
#define EFI_IMAGE_NT_SIGNATURE 0x00004550 // PE00
|
||||
#define EFI_IMAGE_EDOS_SIGNATURE 0x44454550 // PEED
|
||||
|
||||
///
|
||||
/// PE images can start with an optional DOS header, so if an image is run
|
||||
/// under DOS it can print an error message.
|
||||
///
|
||||
typedef struct {
|
||||
UINT16 e_magic; // Magic number
|
||||
UINT16 e_cblp; // Bytes on last page of file
|
||||
UINT16 e_cp; // Pages in file
|
||||
UINT16 e_crlc; // Relocations
|
||||
UINT16 e_cparhdr; // Size of header in paragraphs
|
||||
UINT16 e_minalloc; // Minimum extra paragraphs needed
|
||||
UINT16 e_maxalloc; // Maximum extra paragraphs needed
|
||||
UINT16 e_ss; // Initial (relative) SS value
|
||||
UINT16 e_sp; // Initial SP value
|
||||
UINT16 e_csum; // Checksum
|
||||
UINT16 e_ip; // Initial IP value
|
||||
UINT16 e_cs; // Initial (relative) CS value
|
||||
UINT16 e_lfarlc; // File address of relocation table
|
||||
UINT16 e_ovno; // Overlay number
|
||||
UINT16 e_res[4]; // Reserved words
|
||||
UINT16 e_oemid; // OEM identifier (for e_oeminfo)
|
||||
UINT16 e_oeminfo; // OEM information; e_oemid specific
|
||||
UINT16 e_res2[10]; // Reserved words
|
||||
UINT32 e_lfanew; // File address of new exe header
|
||||
} EFI_IMAGE_DOS_HEADER;
|
||||
|
||||
///
|
||||
/// File header format.
|
||||
///
|
||||
typedef struct {
|
||||
UINT16 Machine;
|
||||
UINT16 NumberOfSections;
|
||||
UINT32 TimeDateStamp;
|
||||
UINT32 PointerToSymbolTable;
|
||||
UINT32 NumberOfSymbols;
|
||||
UINT16 SizeOfOptionalHeader;
|
||||
UINT16 Characteristics;
|
||||
} EFI_IMAGE_FILE_HEADER;
|
||||
|
||||
#define EFI_IMAGE_SIZEOF_FILE_HEADER 20
|
||||
|
||||
#define EFI_IMAGE_FILE_RELOCS_STRIPPED 0x0001 // Relocation info stripped from file.
|
||||
#define EFI_IMAGE_FILE_EXECUTABLE_IMAGE 0x0002 // File is executable (i.e. no unresolved externel references).
|
||||
#define EFI_IMAGE_FILE_LINE_NUMS_STRIPPED 0x0004 // Line nunbers stripped from file.
|
||||
#define EFI_IMAGE_FILE_LOCAL_SYMS_STRIPPED 0x0008 // Local symbols stripped from file.
|
||||
#define EFI_IMAGE_FILE_BYTES_REVERSED_LO 0x0080 // Bytes of machine word are reversed.
|
||||
#define EFI_IMAGE_FILE_32BIT_MACHINE 0x0100 // 32 bit word machine.
|
||||
#define EFI_IMAGE_FILE_DEBUG_STRIPPED 0x0200 // Debugging info stripped from file in .DBG file
|
||||
#define EFI_IMAGE_FILE_SYSTEM 0x1000 // System File.
|
||||
#define EFI_IMAGE_FILE_DLL 0x2000 // File is a DLL.
|
||||
#define EFI_IMAGE_FILE_BYTES_REVERSED_HI 0x8000 // Bytes of machine word are reversed.
|
||||
#define EFI_IMAGE_FILE_MACHINE_UNKNOWN 0
|
||||
#define EFI_IMAGE_FILE_MACHINE_I386 0x14c // Intel 386.
|
||||
#define EFI_IMAGE_FILE_MACHINE_R3000 0x162 // MIPS* little-endian, 0540 big-endian
|
||||
#define EFI_IMAGE_FILE_MACHINE_R4000 0x166 // MIPS* little-endian
|
||||
#define EFI_IMAGE_FILE_MACHINE_ALPHA 0x184 // Alpha_AXP*
|
||||
#define EFI_IMAGE_FILE_MACHINE_POWERPC 0x1F0 // IBM* PowerPC Little-Endian
|
||||
#define EFI_IMAGE_FILE_MACHINE_TAHOE 0x7cc // Intel EM machine
|
||||
//
|
||||
// * Other names and brands may be claimed as the property of others.
|
||||
//
|
||||
|
||||
///
|
||||
/// Directory format.
|
||||
///
|
||||
typedef struct {
|
||||
UINT32 VirtualAddress;
|
||||
UINT32 Size;
|
||||
} EFI_IMAGE_DATA_DIRECTORY;
|
||||
|
||||
#define EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES 16
|
||||
|
||||
typedef struct {
|
||||
UINT16 Magic;
|
||||
UINT8 MajorLinkerVersion;
|
||||
UINT8 MinorLinkerVersion;
|
||||
UINT32 SizeOfCode;
|
||||
UINT32 SizeOfInitializedData;
|
||||
UINT32 SizeOfUninitializedData;
|
||||
UINT32 AddressOfEntryPoint;
|
||||
UINT32 BaseOfCode;
|
||||
UINT32 BaseOfData;
|
||||
UINT32 BaseOfBss;
|
||||
UINT32 GprMask;
|
||||
UINT32 CprMask[4];
|
||||
UINT32 GpValue;
|
||||
} EFI_IMAGE_ROM_OPTIONAL_HEADER;
|
||||
|
||||
#define EFI_IMAGE_ROM_OPTIONAL_HDR_MAGIC 0x107
|
||||
#define EFI_IMAGE_SIZEOF_ROM_OPTIONAL_HEADER sizeof (EFI_IMAGE_ROM_OPTIONAL_HEADER)
|
||||
|
||||
typedef struct {
|
||||
EFI_IMAGE_FILE_HEADER FileHeader;
|
||||
EFI_IMAGE_ROM_OPTIONAL_HEADER OptionalHeader;
|
||||
} EFI_IMAGE_ROM_HEADERS;
|
||||
|
||||
///
|
||||
/// @attention
|
||||
/// EFI_IMAGE_OPTIONAL_HEADER32 and EFI_IMAGE_OPTIONAL_HEADER64
|
||||
/// are for use ONLY by tools. All proper EFI code MUST use
|
||||
/// EFI_IMAGE_OPTIONAL_HEADER ONLY!!!
|
||||
///
|
||||
#define EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x10b
|
||||
|
||||
typedef struct {
|
||||
//
|
||||
// Standard fields.
|
||||
//
|
||||
UINT16 Magic;
|
||||
UINT8 MajorLinkerVersion;
|
||||
UINT8 MinorLinkerVersion;
|
||||
UINT32 SizeOfCode;
|
||||
UINT32 SizeOfInitializedData;
|
||||
UINT32 SizeOfUninitializedData;
|
||||
UINT32 AddressOfEntryPoint;
|
||||
UINT32 BaseOfCode;
|
||||
UINT32 BaseOfData;
|
||||
//
|
||||
// NT additional fields.
|
||||
//
|
||||
UINT32 ImageBase;
|
||||
UINT32 SectionAlignment;
|
||||
UINT32 FileAlignment;
|
||||
UINT16 MajorOperatingSystemVersion;
|
||||
UINT16 MinorOperatingSystemVersion;
|
||||
UINT16 MajorImageVersion;
|
||||
UINT16 MinorImageVersion;
|
||||
UINT16 MajorSubsystemVersion;
|
||||
UINT16 MinorSubsystemVersion;
|
||||
UINT32 Win32VersionValue;
|
||||
UINT32 SizeOfImage;
|
||||
UINT32 SizeOfHeaders;
|
||||
UINT32 CheckSum;
|
||||
UINT16 Subsystem;
|
||||
UINT16 DllCharacteristics;
|
||||
UINT32 SizeOfStackReserve;
|
||||
UINT32 SizeOfStackCommit;
|
||||
UINT32 SizeOfHeapReserve;
|
||||
UINT32 SizeOfHeapCommit;
|
||||
UINT32 LoaderFlags;
|
||||
UINT32 NumberOfRvaAndSizes;
|
||||
EFI_IMAGE_DATA_DIRECTORY DataDirectory[EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES];
|
||||
} EFI_IMAGE_OPTIONAL_HEADER32;
|
||||
|
||||
///
|
||||
/// @attention
|
||||
/// EFI_IMAGE_OPTIONAL_HEADER32 and EFI_IMAGE_OPTIONAL_HEADER64
|
||||
/// are for use ONLY by tools. All proper EFI code MUST use
|
||||
/// EFI_IMAGE_OPTIONAL_HEADER ONLY!!!
|
||||
///
|
||||
#define EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x20b
|
||||
|
||||
typedef struct {
|
||||
//
|
||||
// Standard fields.
|
||||
//
|
||||
UINT16 Magic;
|
||||
UINT8 MajorLinkerVersion;
|
||||
UINT8 MinorLinkerVersion;
|
||||
UINT32 SizeOfCode;
|
||||
UINT32 SizeOfInitializedData;
|
||||
UINT32 SizeOfUninitializedData;
|
||||
UINT32 AddressOfEntryPoint;
|
||||
UINT32 BaseOfCode;
|
||||
//
|
||||
// NT additional fields.
|
||||
//
|
||||
UINT64 ImageBase;
|
||||
UINT32 SectionAlignment;
|
||||
UINT32 FileAlignment;
|
||||
UINT16 MajorOperatingSystemVersion;
|
||||
UINT16 MinorOperatingSystemVersion;
|
||||
UINT16 MajorImageVersion;
|
||||
UINT16 MinorImageVersion;
|
||||
UINT16 MajorSubsystemVersion;
|
||||
UINT16 MinorSubsystemVersion;
|
||||
UINT32 Win32VersionValue;
|
||||
UINT32 SizeOfImage;
|
||||
UINT32 SizeOfHeaders;
|
||||
UINT32 CheckSum;
|
||||
UINT16 Subsystem;
|
||||
UINT16 DllCharacteristics;
|
||||
UINT64 SizeOfStackReserve;
|
||||
UINT64 SizeOfStackCommit;
|
||||
UINT64 SizeOfHeapReserve;
|
||||
UINT64 SizeOfHeapCommit;
|
||||
UINT32 LoaderFlags;
|
||||
UINT32 NumberOfRvaAndSizes;
|
||||
EFI_IMAGE_DATA_DIRECTORY DataDirectory[EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES];
|
||||
} EFI_IMAGE_OPTIONAL_HEADER64;
|
||||
|
||||
///
|
||||
/// @attention
|
||||
/// EFI_IMAGE_NT_HEADERS32 and EFI_IMAGE_HEADERS64 are for use ONLY
|
||||
/// by tools. All proper EFI code MUST use EFI_IMAGE_NT_HEADERS ONLY!!!
|
||||
///
|
||||
typedef struct {
|
||||
UINT32 Signature;
|
||||
EFI_IMAGE_FILE_HEADER FileHeader;
|
||||
EFI_IMAGE_OPTIONAL_HEADER32 OptionalHeader;
|
||||
} EFI_IMAGE_NT_HEADERS32;
|
||||
|
||||
#define EFI_IMAGE_SIZEOF_NT_OPTIONAL32_HEADER sizeof (EFI_IMAGE_NT_HEADERS32)
|
||||
|
||||
typedef struct {
|
||||
UINT32 Signature;
|
||||
EFI_IMAGE_FILE_HEADER FileHeader;
|
||||
EFI_IMAGE_OPTIONAL_HEADER64 OptionalHeader;
|
||||
} EFI_IMAGE_NT_HEADERS64;
|
||||
|
||||
#define EFI_IMAGE_SIZEOF_NT_OPTIONAL64_HEADER sizeof (EFI_IMAGE_NT_HEADERS64)
|
||||
|
||||
//
|
||||
// Processor specific definition of EFI_IMAGE_OPTIONAL_HEADER so the
|
||||
// type name EFI_IMAGE_OPTIONAL_HEADER is appropriate to the build. Same for
|
||||
// EFI_IMAGE_NT_HEADERS. These definitions MUST be used by ALL EFI code.
|
||||
//
|
||||
#if defined (MDE_CPU_IA32)
|
||||
|
||||
typedef EFI_IMAGE_OPTIONAL_HEADER32 EFI_IMAGE_OPTIONAL_HEADER;
|
||||
typedef EFI_IMAGE_NT_HEADERS32 EFI_IMAGE_NT_HEADERS;
|
||||
|
||||
#define EFI_IMAGE_NT_OPTIONAL_HDR_MAGIC EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC
|
||||
#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \
|
||||
(((Machine) == EFI_IMAGE_MACHINE_IA32) || ((Machine) == EFI_IMAGE_MACHINE_EBC))
|
||||
|
||||
#elif defined (MDE_CPU_IPF)
|
||||
|
||||
typedef EFI_IMAGE_OPTIONAL_HEADER64 EFI_IMAGE_OPTIONAL_HEADER;
|
||||
typedef EFI_IMAGE_NT_HEADERS64 EFI_IMAGE_NT_HEADERS;
|
||||
|
||||
#define EFI_IMAGE_NT_OPTIONAL_HDR_MAGIC EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC
|
||||
#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \
|
||||
(((Machine) == EFI_IMAGE_MACHINE_IPF) || ((Machine) == EFI_IMAGE_MACHINE_EBC))
|
||||
|
||||
#elif defined (MDE_CPU_X64)
|
||||
|
||||
typedef EFI_IMAGE_OPTIONAL_HEADER64 EFI_IMAGE_OPTIONAL_HEADER;
|
||||
typedef EFI_IMAGE_NT_HEADERS64 EFI_IMAGE_NT_HEADERS;
|
||||
|
||||
#define EFI_IMAGE_NT_OPTIONAL_HDR_MAGIC EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC
|
||||
#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \
|
||||
(((Machine) == EFI_IMAGE_MACHINE_X64) || ((Machine) == EFI_IMAGE_MACHINE_EBC))
|
||||
|
||||
#elif defined (MDE_CPU_EBC)
|
||||
|
||||
//
|
||||
// This is just to make sure you can cross compile with the EBC compiiler.
|
||||
// It does not make sense to have a PE loader coded in EBC. You need to
|
||||
// understand the basic
|
||||
//
|
||||
typedef EFI_IMAGE_OPTIONAL_HEADER64 EFI_IMAGE_OPTIONAL_HEADER;
|
||||
typedef EFI_IMAGE_NT_HEADERS64 EFI_IMAGE_NT_HEADERS;
|
||||
|
||||
#define EFI_IMAGE_NT_OPTIONAL_HDR_MAGIC EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC
|
||||
#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) ((Machine) == EFI_IMAGE_MACHINE_EBC)
|
||||
|
||||
#else
|
||||
#error Unknown Processor Type
|
||||
#endif
|
||||
|
||||
|
||||
#define EFI_IMAGE_FIRST_SECTION(ntheader) \
|
||||
( \
|
||||
(EFI_IMAGE_SECTION_HEADER *) \
|
||||
( \
|
||||
(UINT32) ntheader + \
|
||||
FIELD_OFFSET (EFI_IMAGE_NT_HEADERS, OptionalHeader) + \
|
||||
((EFI_IMAGE_NT_HEADERS *) (ntheader))->FileHeader.SizeOfOptionalHeader \
|
||||
) \
|
||||
)
|
||||
|
||||
//
|
||||
// Subsystem Values
|
||||
//
|
||||
#define EFI_IMAGE_SUBSYSTEM_UNKNOWN 0
|
||||
#define EFI_IMAGE_SUBSYSTEM_NATIVE 1
|
||||
#define EFI_IMAGE_SUBSYSTEM_WINDOWS_GUI 2
|
||||
#define EFI_IMAGE_SUBSYSTEM_WINDOWS_CUI 3.
|
||||
#define EFI_IMAGE_SUBSYSTEM_OS2_CUI 5
|
||||
#define EFI_IMAGE_SUBSYSTEM_POSIX_CUI 7
|
||||
|
||||
//
|
||||
// Directory Entries
|
||||
//
|
||||
#define EFI_IMAGE_DIRECTORY_ENTRY_EXPORT 0
|
||||
#define EFI_IMAGE_DIRECTORY_ENTRY_IMPORT 1
|
||||
#define EFI_IMAGE_DIRECTORY_ENTRY_RESOURCE 2
|
||||
#define EFI_IMAGE_DIRECTORY_ENTRY_EXCEPTION 3
|
||||
#define EFI_IMAGE_DIRECTORY_ENTRY_SECURITY 4
|
||||
#define EFI_IMAGE_DIRECTORY_ENTRY_BASERELOC 5
|
||||
#define EFI_IMAGE_DIRECTORY_ENTRY_DEBUG 6
|
||||
#define EFI_IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7
|
||||
#define EFI_IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8
|
||||
#define EFI_IMAGE_DIRECTORY_ENTRY_TLS 9
|
||||
#define EFI_IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10
|
||||
|
||||
//
|
||||
// Section header format.
|
||||
//
|
||||
#define EFI_IMAGE_SIZEOF_SHORT_NAME 8
|
||||
|
||||
typedef struct {
|
||||
UINT8 Name[EFI_IMAGE_SIZEOF_SHORT_NAME];
|
||||
union {
|
||||
UINT32 PhysicalAddress;
|
||||
UINT32 VirtualSize;
|
||||
} Misc;
|
||||
UINT32 VirtualAddress;
|
||||
UINT32 SizeOfRawData;
|
||||
UINT32 PointerToRawData;
|
||||
UINT32 PointerToRelocations;
|
||||
UINT32 PointerToLinenumbers;
|
||||
UINT16 NumberOfRelocations;
|
||||
UINT16 NumberOfLinenumbers;
|
||||
UINT32 Characteristics;
|
||||
} EFI_IMAGE_SECTION_HEADER;
|
||||
|
||||
#define EFI_IMAGE_SIZEOF_SECTION_HEADER 40
|
||||
|
||||
#define EFI_IMAGE_SCN_TYPE_NO_PAD 0x00000008 // Reserved.
|
||||
#define EFI_IMAGE_SCN_CNT_CODE 0x00000020
|
||||
#define EFI_IMAGE_SCN_CNT_INITIALIZED_DATA 0x00000040
|
||||
#define EFI_IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080
|
||||
|
||||
#define EFI_IMAGE_SCN_LNK_OTHER 0x00000100 // Reserved.
|
||||
#define EFI_IMAGE_SCN_LNK_INFO 0x00000200 // Section contains comments or some other type of information.
|
||||
#define EFI_IMAGE_SCN_LNK_REMOVE 0x00000800 // Section contents will not become part of image.
|
||||
#define EFI_IMAGE_SCN_LNK_COMDAT 0x00001000
|
||||
|
||||
#define EFI_IMAGE_SCN_ALIGN_1BYTES 0x00100000
|
||||
#define EFI_IMAGE_SCN_ALIGN_2BYTES 0x00200000
|
||||
#define EFI_IMAGE_SCN_ALIGN_4BYTES 0x00300000
|
||||
#define EFI_IMAGE_SCN_ALIGN_8BYTES 0x00400000
|
||||
#define EFI_IMAGE_SCN_ALIGN_16BYTES 0x00500000
|
||||
#define EFI_IMAGE_SCN_ALIGN_32BYTES 0x00600000
|
||||
#define EFI_IMAGE_SCN_ALIGN_64BYTES 0x00700000
|
||||
|
||||
#define EFI_IMAGE_SCN_MEM_DISCARDABLE 0x02000000
|
||||
#define EFI_IMAGE_SCN_MEM_NOT_CACHED 0x04000000
|
||||
#define EFI_IMAGE_SCN_MEM_NOT_PAGED 0x08000000
|
||||
#define EFI_IMAGE_SCN_MEM_SHARED 0x10000000
|
||||
#define EFI_IMAGE_SCN_MEM_EXECUTE 0x20000000
|
||||
#define EFI_IMAGE_SCN_MEM_READ 0x40000000
|
||||
#define EFI_IMAGE_SCN_MEM_WRITE 0x80000000
|
||||
|
||||
///
|
||||
/// Symbol format.
|
||||
///
|
||||
#define EFI_IMAGE_SIZEOF_SYMBOL 18
|
||||
|
||||
//
|
||||
// Section values.
|
||||
//
|
||||
// Symbols have a section number of the section in which they are
|
||||
// defined. Otherwise, section numbers have the following meanings:
|
||||
//
|
||||
#define EFI_IMAGE_SYM_UNDEFINED (UINT16) 0 // Symbol is undefined or is common.
|
||||
#define EFI_IMAGE_SYM_ABSOLUTE (UINT16) -1 // Symbol is an absolute value.
|
||||
#define EFI_IMAGE_SYM_DEBUG (UINT16) -2 // Symbol is a special debug item.
|
||||
//
|
||||
// Type (fundamental) values.
|
||||
//
|
||||
#define EFI_IMAGE_SYM_TYPE_NULL 0 // no type.
|
||||
#define EFI_IMAGE_SYM_TYPE_VOID 1 //
|
||||
#define EFI_IMAGE_SYM_TYPE_CHAR 2 // type character.
|
||||
#define EFI_IMAGE_SYM_TYPE_SHORT 3 // type short integer.
|
||||
#define EFI_IMAGE_SYM_TYPE_INT 4
|
||||
#define EFI_IMAGE_SYM_TYPE_LONG 5
|
||||
#define EFI_IMAGE_SYM_TYPE_FLOAT 6
|
||||
#define EFI_IMAGE_SYM_TYPE_DOUBLE 7
|
||||
#define EFI_IMAGE_SYM_TYPE_STRUCT 8
|
||||
#define EFI_IMAGE_SYM_TYPE_UNION 9
|
||||
#define EFI_IMAGE_SYM_TYPE_ENUM 10 // enumeration.
|
||||
#define EFI_IMAGE_SYM_TYPE_MOE 11 // member of enumeration.
|
||||
#define EFI_IMAGE_SYM_TYPE_BYTE 12
|
||||
#define EFI_IMAGE_SYM_TYPE_WORD 13
|
||||
#define EFI_IMAGE_SYM_TYPE_UINT 14
|
||||
#define EFI_IMAGE_SYM_TYPE_DWORD 15
|
||||
|
||||
//
|
||||
// Type (derived) values.
|
||||
//
|
||||
#define EFI_IMAGE_SYM_DTYPE_NULL 0 // no derived type.
|
||||
#define EFI_IMAGE_SYM_DTYPE_POINTER 1
|
||||
#define EFI_IMAGE_SYM_DTYPE_FUNCTION 2
|
||||
#define EFI_IMAGE_SYM_DTYPE_ARRAY 3
|
||||
|
||||
//
|
||||
// Storage classes.
|
||||
//
|
||||
#define EFI_IMAGE_SYM_CLASS_END_OF_FUNCTION (UINT8) -1
|
||||
#define EFI_IMAGE_SYM_CLASS_NULL 0
|
||||
#define EFI_IMAGE_SYM_CLASS_AUTOMATIC 1
|
||||
#define EFI_IMAGE_SYM_CLASS_EXTERNAL 2
|
||||
#define EFI_IMAGE_SYM_CLASS_STATIC 3
|
||||
#define EFI_IMAGE_SYM_CLASS_REGISTER 4
|
||||
#define EFI_IMAGE_SYM_CLASS_EXTERNAL_DEF 5
|
||||
#define EFI_IMAGE_SYM_CLASS_LABEL 6
|
||||
#define EFI_IMAGE_SYM_CLASS_UNDEFINED_LABEL 7
|
||||
#define EFI_IMAGE_SYM_CLASS_MEMBER_OF_STRUCT 8
|
||||
#define EFI_IMAGE_SYM_CLASS_ARGUMENT 9
|
||||
#define EFI_IMAGE_SYM_CLASS_STRUCT_TAG 10
|
||||
#define EFI_IMAGE_SYM_CLASS_MEMBER_OF_UNION 11
|
||||
#define EFI_IMAGE_SYM_CLASS_UNION_TAG 12
|
||||
#define EFI_IMAGE_SYM_CLASS_TYPE_DEFINITION 13
|
||||
#define EFI_IMAGE_SYM_CLASS_UNDEFINED_STATIC 14
|
||||
#define EFI_IMAGE_SYM_CLASS_ENUM_TAG 15
|
||||
#define EFI_IMAGE_SYM_CLASS_MEMBER_OF_ENUM 16
|
||||
#define EFI_IMAGE_SYM_CLASS_REGISTER_PARAM 17
|
||||
#define EFI_IMAGE_SYM_CLASS_BIT_FIELD 18
|
||||
#define EFI_IMAGE_SYM_CLASS_BLOCK 100
|
||||
#define EFI_IMAGE_SYM_CLASS_FUNCTION 101
|
||||
#define EFI_IMAGE_SYM_CLASS_END_OF_STRUCT 102
|
||||
#define EFI_IMAGE_SYM_CLASS_FILE 103
|
||||
#define EFI_IMAGE_SYM_CLASS_SECTION 104
|
||||
#define EFI_IMAGE_SYM_CLASS_WEAK_EXTERNAL 105
|
||||
|
||||
//
|
||||
// type packing constants
|
||||
//
|
||||
#define EFI_IMAGE_N_BTMASK 017
|
||||
#define EFI_IMAGE_N_TMASK 060
|
||||
#define EFI_IMAGE_N_TMASK1 0300
|
||||
#define EFI_IMAGE_N_TMASK2 0360
|
||||
#define EFI_IMAGE_N_BTSHFT 4
|
||||
#define EFI_IMAGE_N_TSHIFT 2
|
||||
|
||||
//
|
||||
// Communal selection types.
|
||||
//
|
||||
#define EFI_IMAGE_COMDAT_SELECT_NODUPLICATES 1
|
||||
#define EFI_IMAGE_COMDAT_SELECT_ANY 2
|
||||
#define EFI_IMAGE_COMDAT_SELECT_SAME_SIZE 3
|
||||
#define EFI_IMAGE_COMDAT_SELECT_EXACT_MATCH 4
|
||||
#define EFI_IMAGE_COMDAT_SELECT_ASSOCIATIVE 5
|
||||
|
||||
#define EFI_IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY 1
|
||||
#define EFI_IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 2
|
||||
#define EFI_IMAGE_WEAK_EXTERN_SEARCH_ALIAS 3
|
||||
|
||||
///
|
||||
/// Relocation format.
|
||||
///
|
||||
typedef struct {
|
||||
UINT32 VirtualAddress;
|
||||
UINT32 SymbolTableIndex;
|
||||
UINT16 Type;
|
||||
} EFI_IMAGE_RELOCATION;
|
||||
|
||||
#define EFI_IMAGE_SIZEOF_RELOCATION 10
|
||||
|
||||
//
|
||||
// I386 relocation types.
|
||||
//
|
||||
#define EFI_IMAGE_REL_I386_ABSOLUTE 0 // Reference is absolute, no relocation is necessary
|
||||
#define EFI_IMAGE_REL_I386_DIR16 01 // Direct 16-bit reference to the symbols virtual address
|
||||
#define EFI_IMAGE_REL_I386_REL16 02 // PC-relative 16-bit reference to the symbols virtual address
|
||||
#define EFI_IMAGE_REL_I386_DIR32 06 // Direct 32-bit reference to the symbols virtual address
|
||||
#define EFI_IMAGE_REL_I386_DIR32NB 07 // Direct 32-bit reference to the symbols virtual address, base not included
|
||||
#define EFI_IMAGE_REL_I386_SEG12 011 // Direct 16-bit reference to the segment-selector bits of a 32-bit virtual address
|
||||
#define EFI_IMAGE_REL_I386_SECTION 012
|
||||
#define EFI_IMAGE_REL_I386_SECREL 013
|
||||
#define EFI_IMAGE_REL_I386_REL32 024 // PC-relative 32-bit reference to the symbols virtual address
|
||||
|
||||
///
|
||||
/// Based relocation format.
|
||||
///
|
||||
typedef struct {
|
||||
UINT32 VirtualAddress;
|
||||
UINT32 SizeOfBlock;
|
||||
} EFI_IMAGE_BASE_RELOCATION;
|
||||
|
||||
#define EFI_IMAGE_SIZEOF_BASE_RELOCATION 8
|
||||
|
||||
//
|
||||
// Based relocation types.
|
||||
//
|
||||
#define EFI_IMAGE_REL_BASED_ABSOLUTE 0
|
||||
#define EFI_IMAGE_REL_BASED_HIGH 1
|
||||
#define EFI_IMAGE_REL_BASED_LOW 2
|
||||
#define EFI_IMAGE_REL_BASED_HIGHLOW 3
|
||||
#define EFI_IMAGE_REL_BASED_HIGHADJ 4
|
||||
#define EFI_IMAGE_REL_BASED_MIPS_JMPADDR 5
|
||||
#define EFI_IMAGE_REL_BASED_IA64_IMM64 9
|
||||
#define EFI_IMAGE_REL_BASED_DIR64 10
|
||||
|
||||
///
|
||||
/// Line number format.
|
||||
///
|
||||
typedef struct {
|
||||
union {
|
||||
UINT32 SymbolTableIndex; // Symbol table index of function name if Linenumber is 0.
|
||||
UINT32 VirtualAddress; // Virtual address of line number.
|
||||
} Type;
|
||||
UINT16 Linenumber; // Line number.
|
||||
} EFI_IMAGE_LINENUMBER;
|
||||
|
||||
#define EFI_IMAGE_SIZEOF_LINENUMBER 6
|
||||
|
||||
//
|
||||
// Archive format.
|
||||
//
|
||||
#define EFI_IMAGE_ARCHIVE_START_SIZE 8
|
||||
#define EFI_IMAGE_ARCHIVE_START "!<arch>\n"
|
||||
#define EFI_IMAGE_ARCHIVE_END "`\n"
|
||||
#define EFI_IMAGE_ARCHIVE_PAD "\n"
|
||||
#define EFI_IMAGE_ARCHIVE_LINKER_MEMBER "/ "
|
||||
#define EFI_IMAGE_ARCHIVE_LONGNAMES_MEMBER "// "
|
||||
|
||||
typedef struct {
|
||||
UINT8 Name[16]; // File member name - `/' terminated.
|
||||
UINT8 Date[12]; // File member date - decimal.
|
||||
UINT8 UserID[6]; // File member user id - decimal.
|
||||
UINT8 GroupID[6]; // File member group id - decimal.
|
||||
UINT8 Mode[8]; // File member mode - octal.
|
||||
UINT8 Size[10]; // File member size - decimal.
|
||||
UINT8 EndHeader[2]; // String to end header.
|
||||
} EFI_IMAGE_ARCHIVE_MEMBER_HEADER;
|
||||
|
||||
#define EFI_IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR 60
|
||||
|
||||
//
|
||||
// DLL support.
|
||||
//
|
||||
|
||||
///
|
||||
/// DLL Export Format
|
||||
///
|
||||
typedef struct {
|
||||
UINT32 Characteristics;
|
||||
UINT32 TimeDateStamp;
|
||||
UINT16 MajorVersion;
|
||||
UINT16 MinorVersion;
|
||||
UINT32 Name;
|
||||
UINT32 Base;
|
||||
UINT32 NumberOfFunctions;
|
||||
UINT32 NumberOfNames;
|
||||
UINT32 AddressOfFunctions;
|
||||
UINT32 AddressOfNames;
|
||||
UINT32 AddressOfNameOrdinals;
|
||||
} EFI_IMAGE_EXPORT_DIRECTORY;
|
||||
|
||||
///
|
||||
/// DLL support.
|
||||
/// Import Format
|
||||
///
|
||||
typedef struct {
|
||||
UINT16 Hint;
|
||||
UINT8 Name[1];
|
||||
} EFI_IMAGE_IMPORT_BY_NAME;
|
||||
|
||||
typedef struct {
|
||||
union {
|
||||
UINT32 Function;
|
||||
UINT32 Ordinal;
|
||||
EFI_IMAGE_IMPORT_BY_NAME *AddressOfData;
|
||||
} u1;
|
||||
} EFI_IMAGE_THUNK_DATA;
|
||||
|
||||
#define EFI_IMAGE_ORDINAL_FLAG 0x80000000
|
||||
#define EFI_IMAGE_SNAP_BY_ORDINAL(Ordinal) ((Ordinal & EFI_IMAGE_ORDINAL_FLAG) != 0)
|
||||
#define EFI_IMAGE_ORDINAL(Ordinal) (Ordinal & 0xffff)
|
||||
|
||||
typedef struct {
|
||||
UINT32 Characteristics;
|
||||
UINT32 TimeDateStamp;
|
||||
UINT32 ForwarderChain;
|
||||
UINT32 Name;
|
||||
EFI_IMAGE_THUNK_DATA *FirstThunk;
|
||||
} EFI_IMAGE_IMPORT_DESCRIPTOR;
|
||||
|
||||
///
|
||||
/// Debug Format
|
||||
///
|
||||
#define EFI_IMAGE_DEBUG_TYPE_CODEVIEW 2
|
||||
|
||||
typedef struct {
|
||||
UINT32 Characteristics;
|
||||
UINT32 TimeDateStamp;
|
||||
UINT16 MajorVersion;
|
||||
UINT16 MinorVersion;
|
||||
UINT32 Type;
|
||||
UINT32 SizeOfData;
|
||||
UINT32 RVA;
|
||||
UINT32 FileOffset;
|
||||
} EFI_IMAGE_DEBUG_DIRECTORY_ENTRY;
|
||||
|
||||
#define CODEVIEW_SIGNATURE_NB10 0x3031424E // "NB10"
|
||||
typedef struct {
|
||||
UINT32 Signature; // "NB10"
|
||||
UINT32 Unknown;
|
||||
UINT32 Unknown2;
|
||||
UINT32 Unknown3;
|
||||
//
|
||||
// Filename of .PDB goes here
|
||||
//
|
||||
} EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY;
|
||||
|
||||
#define CODEVIEW_SIGNATURE_RSDS 0x53445352 // "RSDS"
|
||||
typedef struct {
|
||||
UINT32 Signature; // "RSDS"
|
||||
UINT32 Unknown;
|
||||
UINT32 Unknown2;
|
||||
UINT32 Unknown3;
|
||||
UINT32 Unknown4;
|
||||
UINT32 Unknown5;
|
||||
//
|
||||
// Filename of .PDB goes here
|
||||
//
|
||||
} EFI_IMAGE_DEBUG_CODEVIEW_RSDS_ENTRY;
|
||||
|
||||
///
|
||||
/// Header format for TE images
|
||||
///
|
||||
typedef struct {
|
||||
UINT16 Signature; // signature for TE format = "VZ"
|
||||
UINT16 Machine; // from the original file header
|
||||
UINT8 NumberOfSections; // from the original file header
|
||||
UINT8 Subsystem; // from original optional header
|
||||
UINT16 StrippedSize; // how many bytes we removed from the header
|
||||
UINT32 AddressOfEntryPoint; // offset to entry point -- from original optional header
|
||||
UINT32 BaseOfCode; // from original image -- required for ITP debug
|
||||
UINT64 ImageBase; // from original file header
|
||||
EFI_IMAGE_DATA_DIRECTORY DataDirectory[2]; // only base relocation and debug directory
|
||||
} EFI_TE_IMAGE_HEADER;
|
||||
|
||||
#define EFI_TE_IMAGE_HEADER_SIGNATURE 0x5A56 // "VZ"
|
||||
|
||||
//
|
||||
// Data directory indexes in our TE image header
|
||||
//
|
||||
#define EFI_TE_IMAGE_DIRECTORY_ENTRY_BASERELOC 0
|
||||
#define EFI_TE_IMAGE_DIRECTORY_ENTRY_DEBUG 1
|
||||
|
||||
#endif
|
98
Tools/Source/TianoTools/Include/Common/FirmwareFileSystem.h
Normal file
98
Tools/Source/TianoTools/Include/Common/FirmwareFileSystem.h
Normal file
@@ -0,0 +1,98 @@
|
||||
/** @file
|
||||
This file defines the data structures that comprise the FFS file system.
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. 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.
|
||||
|
||||
Module Name: FirmwareFileSystem.h
|
||||
|
||||
@par Revision Reference:
|
||||
These definitions are from Firmware File System Spec 0.9.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __EFI_FFS_FILE_SYSTEM_H__
|
||||
#define __EFI_FFS_FILE_SYSTEM_H__
|
||||
|
||||
///
|
||||
/// FFS specific file types
|
||||
///
|
||||
#define EFI_FV_FILETYPE_FFS_PAD 0xF0
|
||||
|
||||
//
|
||||
// FFS File Attributes
|
||||
//
|
||||
#define FFS_ATTRIB_TAIL_PRESENT 0x01
|
||||
#define FFS_ATTRIB_RECOVERY 0x02
|
||||
#define FFS_ATTRIB_HEADER_EXTENSION 0x04
|
||||
#define FFS_ATTRIB_DATA_ALIGNMENT 0x38
|
||||
#define FFS_ATTRIB_CHECKSUM 0x40
|
||||
|
||||
///
|
||||
/// FFS_FIXED_CHECKSUM is the default checksum value used when the
|
||||
/// FFS_ATTRIB_CHECKSUM attribute bit is clear
|
||||
/// note this is NOT an architecturally defined value, but is in this file for
|
||||
/// implementation convenience
|
||||
///
|
||||
#define FFS_FIXED_CHECKSUM 0x5A
|
||||
|
||||
//
|
||||
// File state definitions
|
||||
//
|
||||
#define EFI_FILE_HEADER_CONSTRUCTION 0x01
|
||||
#define EFI_FILE_HEADER_VALID 0x02
|
||||
#define EFI_FILE_DATA_VALID 0x04
|
||||
#define EFI_FILE_MARKED_FOR_UPDATE 0x08
|
||||
#define EFI_FILE_DELETED 0x10
|
||||
#define EFI_FILE_HEADER_INVALID 0x20
|
||||
|
||||
#define EFI_FILE_ALL_STATE_BITS (EFI_FILE_HEADER_CONSTRUCTION | \
|
||||
EFI_FILE_HEADER_VALID | \
|
||||
EFI_FILE_DATA_VALID | \
|
||||
EFI_FILE_MARKED_FOR_UPDATE | \
|
||||
EFI_FILE_DELETED | \
|
||||
EFI_FILE_HEADER_INVALID \
|
||||
)
|
||||
|
||||
#define EFI_TEST_FFS_ATTRIBUTES_BIT(FvbAttributes, TestAttributes, Bit) \
|
||||
( \
|
||||
(BOOLEAN) ( \
|
||||
(FvbAttributes & EFI_FVB_ERASE_POLARITY) ? (((~TestAttributes) & Bit) == Bit) : ((TestAttributes & Bit) == Bit) \
|
||||
) \
|
||||
)
|
||||
|
||||
typedef UINT16 EFI_FFS_FILE_TAIL;
|
||||
|
||||
///
|
||||
/// FFS file integrity check structure
|
||||
///
|
||||
typedef union {
|
||||
struct {
|
||||
UINT8 Header;
|
||||
UINT8 File;
|
||||
} Checksum;
|
||||
UINT16 TailReference;
|
||||
} EFI_FFS_INTEGRITY_CHECK;
|
||||
|
||||
//
|
||||
// FFS file header definition
|
||||
//
|
||||
typedef UINT8 EFI_FFS_FILE_ATTRIBUTES;
|
||||
typedef UINT8 EFI_FFS_FILE_STATE;
|
||||
|
||||
typedef struct {
|
||||
EFI_GUID Name;
|
||||
EFI_FFS_INTEGRITY_CHECK IntegrityCheck;
|
||||
EFI_FV_FILETYPE Type;
|
||||
EFI_FFS_FILE_ATTRIBUTES Attributes;
|
||||
UINT8 Size[3];
|
||||
EFI_FFS_FILE_STATE State;
|
||||
} EFI_FFS_FILE_HEADER;
|
||||
|
||||
#endif
|
109
Tools/Source/TianoTools/Include/Common/FirmwareVolumeHeader.h
Normal file
109
Tools/Source/TianoTools/Include/Common/FirmwareVolumeHeader.h
Normal file
@@ -0,0 +1,109 @@
|
||||
/** @file
|
||||
Defines data structure that is the volume header found at the beginning of
|
||||
all firmware volumes that are either memory mapped, or have an
|
||||
associated FirmwareVolumeBlock protocol.
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. 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.
|
||||
|
||||
Module Name: FirmwareVolumeHeader.h
|
||||
|
||||
@par Revision Reference:
|
||||
These definitions are from Firmware Volume Block Spec 0.9.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __EFI_FIRMWARE_VOLUME_HEADER_H__
|
||||
#define __EFI_FIRMWARE_VOLUME_HEADER_H__
|
||||
|
||||
//
|
||||
// Firmware Volume Block Attributes definition
|
||||
//
|
||||
typedef UINT32 EFI_FVB_ATTRIBUTES;
|
||||
|
||||
//
|
||||
// Firmware Volume Block Attributes bit definitions
|
||||
//
|
||||
#define EFI_FVB_READ_DISABLED_CAP 0x00000001
|
||||
#define EFI_FVB_READ_ENABLED_CAP 0x00000002
|
||||
#define EFI_FVB_READ_STATUS 0x00000004
|
||||
|
||||
#define EFI_FVB_WRITE_DISABLED_CAP 0x00000008
|
||||
#define EFI_FVB_WRITE_ENABLED_CAP 0x00000010
|
||||
#define EFI_FVB_WRITE_STATUS 0x00000020
|
||||
|
||||
#define EFI_FVB_LOCK_CAP 0x00000040
|
||||
#define EFI_FVB_LOCK_STATUS 0x00000080
|
||||
|
||||
#define EFI_FVB_STICKY_WRITE 0x00000200
|
||||
#define EFI_FVB_MEMORY_MAPPED 0x00000400
|
||||
#define EFI_FVB_ERASE_POLARITY 0x00000800
|
||||
|
||||
#define EFI_FVB_ALIGNMENT_CAP 0x00008000
|
||||
#define EFI_FVB_ALIGNMENT_2 0x00010000
|
||||
#define EFI_FVB_ALIGNMENT_4 0x00020000
|
||||
#define EFI_FVB_ALIGNMENT_8 0x00040000
|
||||
#define EFI_FVB_ALIGNMENT_16 0x00080000
|
||||
#define EFI_FVB_ALIGNMENT_32 0x00100000
|
||||
#define EFI_FVB_ALIGNMENT_64 0x00200000
|
||||
#define EFI_FVB_ALIGNMENT_128 0x00400000
|
||||
#define EFI_FVB_ALIGNMENT_256 0x00800000
|
||||
#define EFI_FVB_ALIGNMENT_512 0x01000000
|
||||
#define EFI_FVB_ALIGNMENT_1K 0x02000000
|
||||
#define EFI_FVB_ALIGNMENT_2K 0x04000000
|
||||
#define EFI_FVB_ALIGNMENT_4K 0x08000000
|
||||
#define EFI_FVB_ALIGNMENT_8K 0x10000000
|
||||
#define EFI_FVB_ALIGNMENT_16K 0x20000000
|
||||
#define EFI_FVB_ALIGNMENT_32K 0x40000000
|
||||
#define EFI_FVB_ALIGNMENT_64K 0x80000000
|
||||
|
||||
#define EFI_FVB_CAPABILITIES (EFI_FVB_READ_DISABLED_CAP | \
|
||||
EFI_FVB_READ_ENABLED_CAP | \
|
||||
EFI_FVB_WRITE_DISABLED_CAP | \
|
||||
EFI_FVB_WRITE_ENABLED_CAP | \
|
||||
EFI_FVB_LOCK_CAP \
|
||||
)
|
||||
|
||||
#define EFI_FVB_STATUS (EFI_FVB_READ_STATUS | EFI_FVB_WRITE_STATUS | EFI_FVB_LOCK_STATUS)
|
||||
|
||||
///
|
||||
/// Firmware Volume Header Revision definition
|
||||
///
|
||||
#define EFI_FVH_REVISION 0x01
|
||||
|
||||
///
|
||||
/// Firmware Volume Header Signature definition
|
||||
///
|
||||
#define EFI_FVH_SIGNATURE EFI_SIGNATURE_32 ('_', 'F', 'V', 'H')
|
||||
|
||||
///
|
||||
/// Firmware Volume Header Block Map Entry definition
|
||||
///
|
||||
typedef struct {
|
||||
UINT32 NumBlocks;
|
||||
UINT32 BlockLength;
|
||||
} EFI_FV_BLOCK_MAP_ENTRY;
|
||||
|
||||
///
|
||||
/// Firmware Volume Header definition
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 ZeroVector[16];
|
||||
EFI_GUID FileSystemGuid;
|
||||
UINT64 FvLength;
|
||||
UINT32 Signature;
|
||||
EFI_FVB_ATTRIBUTES Attributes;
|
||||
UINT16 HeaderLength;
|
||||
UINT16 Checksum;
|
||||
UINT8 Reserved[3];
|
||||
UINT8 Revision;
|
||||
EFI_FV_BLOCK_MAP_ENTRY FvBlockMap[1];
|
||||
} EFI_FIRMWARE_VOLUME_HEADER;
|
||||
|
||||
#endif
|
@@ -0,0 +1,277 @@
|
||||
/** @file
|
||||
This file defines the data structures that are architecturally defined for file
|
||||
images loaded via the FirmwareVolume protocol. The Firmware Volume specification
|
||||
is the basis for these definitions.
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. 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.
|
||||
|
||||
Module Name: FimrwareVolumeImageFormat.h
|
||||
|
||||
@par Revision Reference:
|
||||
These definitions are from Firmware Volume Spec 0.9.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __FIRMWARE_VOLUME_IMAGE_FORMAT_H__
|
||||
#define __FIRMWARE_VOLUME_IMAGE_FORMAT_H__
|
||||
|
||||
//
|
||||
// pack all data structures since this is actually a binary format and we cannot
|
||||
// allow internal padding in the data structures because of some compilerism..
|
||||
//
|
||||
#pragma pack(1)
|
||||
//
|
||||
// ////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Architectural file types
|
||||
//
|
||||
typedef UINT8 EFI_FV_FILETYPE;
|
||||
|
||||
#define EFI_FV_FILETYPE_ALL 0x00
|
||||
#define EFI_FV_FILETYPE_RAW 0x01
|
||||
#define EFI_FV_FILETYPE_FREEFORM 0x02
|
||||
#define EFI_FV_FILETYPE_SECURITY_CORE 0x03
|
||||
#define EFI_FV_FILETYPE_PEI_CORE 0x04
|
||||
#define EFI_FV_FILETYPE_DXE_CORE 0x05
|
||||
#define EFI_FV_FILETYPE_PEIM 0x06
|
||||
#define EFI_FV_FILETYPE_DRIVER 0x07
|
||||
#define EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER 0x08
|
||||
#define EFI_FV_FILETYPE_APPLICATION 0x09
|
||||
//
|
||||
// File type 0x0A is reserved and should not be used
|
||||
//
|
||||
#define EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE 0x0B
|
||||
|
||||
//
|
||||
// ////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Section types
|
||||
//
|
||||
typedef UINT8 EFI_SECTION_TYPE;
|
||||
|
||||
//
|
||||
// ************************************************************
|
||||
// The section type EFI_SECTION_ALL is a psuedo type. It is
|
||||
// used as a wildcard when retrieving sections. The section
|
||||
// type EFI_SECTION_ALL matches all section types.
|
||||
// ************************************************************
|
||||
//
|
||||
#define EFI_SECTION_ALL 0x00
|
||||
|
||||
//
|
||||
// ************************************************************
|
||||
// Encapsulation section Type values
|
||||
// ************************************************************
|
||||
//
|
||||
#define EFI_SECTION_COMPRESSION 0x01
|
||||
#define EFI_SECTION_GUID_DEFINED 0x02
|
||||
|
||||
//
|
||||
// ************************************************************
|
||||
// Leaf section Type values
|
||||
// ************************************************************
|
||||
//
|
||||
#define EFI_SECTION_FIRST_LEAF_SECTION_TYPE 0x10
|
||||
|
||||
#define EFI_SECTION_PE32 0x10
|
||||
#define EFI_SECTION_PIC 0x11
|
||||
#define EFI_SECTION_TE 0x12
|
||||
#define EFI_SECTION_DXE_DEPEX 0x13
|
||||
#define EFI_SECTION_VERSION 0x14
|
||||
#define EFI_SECTION_USER_INTERFACE 0x15
|
||||
#define EFI_SECTION_COMPATIBILITY16 0x16
|
||||
#define EFI_SECTION_FIRMWARE_VOLUME_IMAGE 0x17
|
||||
#define EFI_SECTION_FREEFORM_SUBTYPE_GUID 0x18
|
||||
#define EFI_SECTION_RAW 0x19
|
||||
#define EFI_SECTION_PEI_DEPEX 0x1B
|
||||
|
||||
#define EFI_SECTION_LAST_LEAF_SECTION_TYPE 0x1B
|
||||
#define EFI_SECTION_LAST_SECTION_TYPE 0x1B
|
||||
|
||||
//
|
||||
// ////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Common section header
|
||||
//
|
||||
typedef struct {
|
||||
UINT8 Size[3];
|
||||
UINT8 Type;
|
||||
} EFI_COMMON_SECTION_HEADER;
|
||||
|
||||
#define SECTION_SIZE(SectionHeaderPtr) \
|
||||
((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) SectionHeaderPtr)->Size) & 0x00ffffff))
|
||||
|
||||
//
|
||||
// ////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Compression section
|
||||
//
|
||||
//
|
||||
// CompressionType values
|
||||
//
|
||||
#define EFI_NOT_COMPRESSED 0x00
|
||||
#define EFI_STANDARD_COMPRESSION 0x01
|
||||
#define EFI_CUSTOMIZED_COMPRESSION 0x02
|
||||
|
||||
typedef struct {
|
||||
EFI_COMMON_SECTION_HEADER CommonHeader;
|
||||
UINT32 UncompressedLength;
|
||||
UINT8 CompressionType;
|
||||
} EFI_COMPRESSION_SECTION;
|
||||
|
||||
//
|
||||
// ////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// GUID defined section
|
||||
//
|
||||
typedef struct {
|
||||
EFI_COMMON_SECTION_HEADER CommonHeader;
|
||||
EFI_GUID SectionDefinitionGuid;
|
||||
UINT16 DataOffset;
|
||||
UINT16 Attributes;
|
||||
} EFI_GUID_DEFINED_SECTION;
|
||||
|
||||
//
|
||||
// Bit values for Attributes
|
||||
//
|
||||
#define EFI_GUIDED_SECTION_PROCESSING_REQUIRED 0x01
|
||||
#define EFI_GUIDED_SECTION_AUTH_STATUS_VALID 0x02
|
||||
|
||||
//
|
||||
// Bit values for AuthenticationStatus
|
||||
//
|
||||
#define EFI_AGGREGATE_AUTH_STATUS_PLATFORM_OVERRIDE 0x000001
|
||||
#define EFI_AGGREGATE_AUTH_STATUS_IMAGE_SIGNED 0x000002
|
||||
#define EFI_AGGREGATE_AUTH_STATUS_NOT_TESTED 0x000004
|
||||
#define EFI_AGGREGATE_AUTH_STATUS_TEST_FAILED 0x000008
|
||||
#define EFI_AGGREGATE_AUTH_STATUS_ALL 0x00000f
|
||||
|
||||
#define EFI_LOCAL_AUTH_STATUS_PLATFORM_OVERRIDE 0x010000
|
||||
#define EFI_LOCAL_AUTH_STATUS_IMAGE_SIGNED 0x020000
|
||||
#define EFI_LOCAL_AUTH_STATUS_NOT_TESTED 0x040000
|
||||
#define EFI_LOCAL_AUTH_STATUS_TEST_FAILED 0x080000
|
||||
#define EFI_LOCAL_AUTH_STATUS_ALL 0x0f0000
|
||||
|
||||
//
|
||||
// ////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// PE32+ section
|
||||
//
|
||||
typedef struct {
|
||||
EFI_COMMON_SECTION_HEADER CommonHeader;
|
||||
} EFI_PE32_SECTION;
|
||||
|
||||
//
|
||||
// ////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// PIC section
|
||||
//
|
||||
typedef struct {
|
||||
EFI_COMMON_SECTION_HEADER CommonHeader;
|
||||
} EFI_PIC_SECTION;
|
||||
|
||||
//
|
||||
// ////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// PEIM header section
|
||||
//
|
||||
typedef struct {
|
||||
EFI_COMMON_SECTION_HEADER CommonHeader;
|
||||
} EFI_PEIM_HEADER_SECTION;
|
||||
|
||||
//
|
||||
// ////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DEPEX section
|
||||
//
|
||||
typedef struct {
|
||||
EFI_COMMON_SECTION_HEADER CommonHeader;
|
||||
} EFI_DEPEX_SECTION;
|
||||
|
||||
//
|
||||
// ////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version section
|
||||
//
|
||||
typedef struct {
|
||||
EFI_COMMON_SECTION_HEADER CommonHeader;
|
||||
UINT16 BuildNumber;
|
||||
INT16 VersionString[1];
|
||||
} EFI_VERSION_SECTION;
|
||||
|
||||
//
|
||||
// ////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// User interface section
|
||||
//
|
||||
typedef struct {
|
||||
EFI_COMMON_SECTION_HEADER CommonHeader;
|
||||
INT16 FileNameString[1];
|
||||
} EFI_USER_INTERFACE_SECTION;
|
||||
|
||||
//
|
||||
// ////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Code16 section
|
||||
//
|
||||
typedef struct {
|
||||
EFI_COMMON_SECTION_HEADER CommonHeader;
|
||||
} EFI_CODE16_SECTION;
|
||||
|
||||
//
|
||||
// ////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Firmware Volume Image section
|
||||
//
|
||||
typedef struct {
|
||||
EFI_COMMON_SECTION_HEADER CommonHeader;
|
||||
} EFI_FIRMWARE_VOLUME_IMAGE_SECTION;
|
||||
|
||||
//
|
||||
// ////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Freeform subtype GUID section
|
||||
//
|
||||
typedef struct {
|
||||
EFI_COMMON_SECTION_HEADER CommonHeader;
|
||||
EFI_GUID SubTypeGuid;
|
||||
} EFI_FREEFORM_SUBTYPE_GUID_SECTION;
|
||||
|
||||
//
|
||||
// ////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Raw section
|
||||
//
|
||||
typedef struct {
|
||||
EFI_COMMON_SECTION_HEADER CommonHeader;
|
||||
} EFI_RAW_SECTION;
|
||||
|
||||
//
|
||||
// undo the pragma from the beginning...
|
||||
//
|
||||
#pragma pack()
|
||||
|
||||
typedef union {
|
||||
EFI_COMMON_SECTION_HEADER *CommonHeader;
|
||||
EFI_COMPRESSION_SECTION *CompressionSection;
|
||||
EFI_GUID_DEFINED_SECTION *GuidDefinedSection;
|
||||
EFI_PE32_SECTION *Pe32Section;
|
||||
EFI_PIC_SECTION *PicSection;
|
||||
EFI_PEIM_HEADER_SECTION *PeimHeaderSection;
|
||||
EFI_DEPEX_SECTION *DependencySection;
|
||||
EFI_VERSION_SECTION *VersionSection;
|
||||
EFI_USER_INTERFACE_SECTION *UISection;
|
||||
EFI_CODE16_SECTION *Code16Section;
|
||||
EFI_FIRMWARE_VOLUME_IMAGE_SECTION *FVImageSection;
|
||||
EFI_FREEFORM_SUBTYPE_GUID_SECTION *FreeformSubtypeSection;
|
||||
EFI_RAW_SECTION *RawSection;
|
||||
} EFI_FILE_SECTION_POINTER;
|
||||
|
||||
#endif
|
235
Tools/Source/TianoTools/Include/Common/Hob.h
Normal file
235
Tools/Source/TianoTools/Include/Common/Hob.h
Normal file
@@ -0,0 +1,235 @@
|
||||
/** @file
|
||||
Hand Off Block (HOB) definition.
|
||||
|
||||
The HOB is a memory data structure used to hand-off system information from
|
||||
PEI to DXE (the next phase).
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. 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.
|
||||
|
||||
Module Name: Hob.h
|
||||
|
||||
@par Revision Reference:
|
||||
These definitions are from Hand Off Block (HOB) Spec Version 0.9.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __HOB_H__
|
||||
#define __HOB_H__
|
||||
|
||||
|
||||
//
|
||||
// Every Hob must start with this data structure.
|
||||
//
|
||||
typedef struct {
|
||||
UINT16 HobType;
|
||||
UINT16 HobLength;
|
||||
UINT32 Reserved;
|
||||
} EFI_HOB_GENERIC_HEADER;
|
||||
|
||||
//
|
||||
// End of HOB List HOB
|
||||
//
|
||||
#define EFI_HOB_TYPE_END_OF_HOB_LIST 0xffff
|
||||
|
||||
//
|
||||
// Handoff Information Table HOB
|
||||
//
|
||||
#define EFI_HOB_TYPE_HANDOFF 0x0001
|
||||
|
||||
#define EFI_HOB_HANDOFF_TABLE_VERSION 0x0009
|
||||
|
||||
typedef UINT32 EFI_BOOT_MODE;
|
||||
|
||||
typedef struct {
|
||||
EFI_HOB_GENERIC_HEADER Header;
|
||||
UINT32 Version;
|
||||
EFI_BOOT_MODE BootMode;
|
||||
EFI_PHYSICAL_ADDRESS EfiMemoryTop;
|
||||
EFI_PHYSICAL_ADDRESS EfiMemoryBottom;
|
||||
EFI_PHYSICAL_ADDRESS EfiFreeMemoryTop;
|
||||
EFI_PHYSICAL_ADDRESS EfiFreeMemoryBottom;
|
||||
EFI_PHYSICAL_ADDRESS EfiEndOfHobList;
|
||||
} EFI_HOB_HANDOFF_INFO_TABLE;
|
||||
|
||||
//
|
||||
// Memory Descriptor HOB
|
||||
//
|
||||
#define EFI_HOB_TYPE_MEMORY_ALLOCATION 0x0002
|
||||
|
||||
typedef struct {
|
||||
EFI_GUID Name;
|
||||
EFI_PHYSICAL_ADDRESS MemoryBaseAddress;
|
||||
UINT64 MemoryLength;
|
||||
EFI_MEMORY_TYPE MemoryType;
|
||||
UINT8 Reserved[4];
|
||||
} EFI_HOB_MEMORY_ALLOCATION_HEADER;
|
||||
|
||||
typedef struct {
|
||||
EFI_HOB_GENERIC_HEADER Header;
|
||||
EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor;
|
||||
//
|
||||
// Additional data pertaining to the "Name" Guid memory
|
||||
// may go here.
|
||||
//
|
||||
} EFI_HOB_MEMORY_ALLOCATION;
|
||||
|
||||
typedef struct {
|
||||
EFI_HOB_GENERIC_HEADER Header;
|
||||
EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor;
|
||||
} EFI_HOB_MEMORY_ALLOCATION_BSP_STORE;
|
||||
|
||||
typedef struct {
|
||||
EFI_HOB_GENERIC_HEADER Header;
|
||||
EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor;
|
||||
} EFI_HOB_MEMORY_ALLOCATION_STACK;
|
||||
|
||||
typedef struct {
|
||||
EFI_HOB_GENERIC_HEADER Header;
|
||||
EFI_HOB_MEMORY_ALLOCATION_HEADER MemoryAllocationHeader;
|
||||
EFI_GUID ModuleName;
|
||||
EFI_PHYSICAL_ADDRESS EntryPoint;
|
||||
} EFI_HOB_MEMORY_ALLOCATION_MODULE;
|
||||
|
||||
#define EFI_HOB_TYPE_RESOURCE_DESCRIPTOR 0x0003
|
||||
|
||||
typedef UINT32 EFI_RESOURCE_TYPE;
|
||||
|
||||
#define EFI_RESOURCE_SYSTEM_MEMORY 0
|
||||
#define EFI_RESOURCE_MEMORY_MAPPED_IO 1
|
||||
#define EFI_RESOURCE_IO 2
|
||||
#define EFI_RESOURCE_FIRMWARE_DEVICE 3
|
||||
#define EFI_RESOURCE_MEMORY_MAPPED_IO_PORT 4
|
||||
#define EFI_RESOURCE_MEMORY_RESERVED 5
|
||||
#define EFI_RESOURCE_IO_RESERVED 6
|
||||
#define EFI_RESOURCE_MAX_MEMORY_TYPE 7
|
||||
|
||||
typedef UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE;
|
||||
|
||||
#define EFI_RESOURCE_ATTRIBUTE_PRESENT 0x00000001
|
||||
#define EFI_RESOURCE_ATTRIBUTE_INITIALIZED 0x00000002
|
||||
#define EFI_RESOURCE_ATTRIBUTE_TESTED 0x00000004
|
||||
#define EFI_RESOURCE_ATTRIBUTE_SINGLE_BIT_ECC 0x00000008
|
||||
#define EFI_RESOURCE_ATTRIBUTE_MULTIPLE_BIT_ECC 0x00000010
|
||||
#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_1 0x00000020
|
||||
#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_2 0x00000040
|
||||
#define EFI_RESOURCE_ATTRIBUTE_READ_PROTECTED 0x00000080
|
||||
#define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTED 0x00000100
|
||||
#define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTED 0x00000200
|
||||
#define EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE 0x00000400
|
||||
#define EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE 0x00000800
|
||||
#define EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE 0x00001000
|
||||
#define EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE 0x00002000
|
||||
#define EFI_RESOURCE_ATTRIBUTE_16_BIT_IO 0x00004000
|
||||
#define EFI_RESOURCE_ATTRIBUTE_32_BIT_IO 0x00008000
|
||||
#define EFI_RESOURCE_ATTRIBUTE_64_BIT_IO 0x00010000
|
||||
#define EFI_RESOURCE_ATTRIBUTE_UNCACHED_EXPORTED 0x00020000
|
||||
|
||||
typedef struct {
|
||||
EFI_HOB_GENERIC_HEADER Header;
|
||||
EFI_GUID Owner;
|
||||
EFI_RESOURCE_TYPE ResourceType;
|
||||
EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute;
|
||||
EFI_PHYSICAL_ADDRESS PhysicalStart;
|
||||
UINT64 ResourceLength;
|
||||
} EFI_HOB_RESOURCE_DESCRIPTOR;
|
||||
|
||||
//
|
||||
// GUID Extension HOB
|
||||
// The HobLength is variable as it includes the GUID specific data.
|
||||
//
|
||||
#define EFI_HOB_TYPE_GUID_EXTENSION 0x0004
|
||||
|
||||
typedef struct {
|
||||
EFI_HOB_GENERIC_HEADER Header;
|
||||
EFI_GUID Name;
|
||||
|
||||
//
|
||||
// Guid specific data goes here
|
||||
//
|
||||
} EFI_HOB_GUID_TYPE;
|
||||
|
||||
//
|
||||
// Firmware Volume HOB
|
||||
//
|
||||
#define EFI_HOB_TYPE_FV 0x0005
|
||||
|
||||
typedef struct {
|
||||
EFI_HOB_GENERIC_HEADER Header;
|
||||
EFI_PHYSICAL_ADDRESS BaseAddress;
|
||||
UINT64 Length;
|
||||
} EFI_HOB_FIRMWARE_VOLUME;
|
||||
|
||||
//
|
||||
// CPU HOB
|
||||
//
|
||||
#define EFI_HOB_TYPE_CPU 0x0006
|
||||
|
||||
typedef struct {
|
||||
EFI_HOB_GENERIC_HEADER Header;
|
||||
UINT8 SizeOfMemorySpace;
|
||||
UINT8 SizeOfIoSpace;
|
||||
UINT8 Reserved[6];
|
||||
} EFI_HOB_CPU;
|
||||
|
||||
//
|
||||
// PEI Core Memory Pool HOB
|
||||
// The HobLength is variable as the HOB contains pool allocations by
|
||||
// the PeiServices AllocatePool function
|
||||
//
|
||||
#define EFI_HOB_TYPE_PEI_MEMORY_POOL 0x0007
|
||||
|
||||
typedef struct {
|
||||
EFI_HOB_GENERIC_HEADER Header;
|
||||
} EFI_HOB_MEMORY_POOL;
|
||||
|
||||
//
|
||||
// Capsule volume HOB -- identical to a firmware volume
|
||||
//
|
||||
#define EFI_HOB_TYPE_CV 0x0008
|
||||
|
||||
typedef struct {
|
||||
EFI_HOB_GENERIC_HEADER Header;
|
||||
EFI_PHYSICAL_ADDRESS BaseAddress;
|
||||
UINT64 Length;
|
||||
} EFI_HOB_CAPSULE_VOLUME;
|
||||
|
||||
#define EFI_HOB_TYPE_UNUSED 0xFFFE
|
||||
|
||||
//
|
||||
// Union of all the possible HOB Types
|
||||
//
|
||||
typedef union {
|
||||
EFI_HOB_GENERIC_HEADER *Header;
|
||||
EFI_HOB_HANDOFF_INFO_TABLE *HandoffInformationTable;
|
||||
EFI_HOB_MEMORY_ALLOCATION *MemoryAllocation;
|
||||
EFI_HOB_MEMORY_ALLOCATION_BSP_STORE *MemoryAllocationBspStore;
|
||||
EFI_HOB_MEMORY_ALLOCATION_STACK *MemoryAllocationStack;
|
||||
EFI_HOB_MEMORY_ALLOCATION_MODULE *MemoryAllocationModule;
|
||||
EFI_HOB_RESOURCE_DESCRIPTOR *ResourceDescriptor;
|
||||
EFI_HOB_GUID_TYPE *Guid;
|
||||
EFI_HOB_FIRMWARE_VOLUME *FirmwareVolume;
|
||||
EFI_HOB_CPU *Cpu;
|
||||
EFI_HOB_MEMORY_POOL *Pool;
|
||||
EFI_HOB_CAPSULE_VOLUME *CapsuleVolume;
|
||||
UINT8 *Raw;
|
||||
} EFI_PEI_HOB_POINTERS;
|
||||
|
||||
#define GET_HOB_TYPE(Hob) ((Hob).Header->HobType)
|
||||
#define GET_HOB_LENGTH(Hob) ((Hob).Header->HobLength)
|
||||
#define GET_NEXT_HOB(Hob) ((Hob).Raw + GET_HOB_LENGTH (Hob))
|
||||
#define END_OF_HOB_LIST(Hob) (GET_HOB_TYPE (Hob) == EFI_HOB_TYPE_END_OF_HOB_LIST)
|
||||
|
||||
//
|
||||
// Get the data and data size field of GUID
|
||||
//
|
||||
#define GET_GUID_HOB_DATA(GuidHob) ((VOID *) (((UINT8 *) &((GuidHob)->Name)) + sizeof (EFI_GUID)))
|
||||
#define GET_GUID_HOB_DATA_SIZE(GuidHob) (((GuidHob)->Header).HobLength - sizeof (EFI_HOB_GUID_TYPE))
|
||||
|
||||
#endif
|
@@ -0,0 +1,422 @@
|
||||
/** @file
|
||||
This file defines the encoding for the VFR (Visual Form Representation) language.
|
||||
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, Intel Corporation
|
||||
All rights reserved. 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.
|
||||
|
||||
Module Name: InternalFormRepresentation.h
|
||||
|
||||
@par Revision Reference:
|
||||
These definitions are from Human Interface Infrastructure Spec Version 0.92.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __EFI_INTERNAL_FORM_REPRESENTATION_H__
|
||||
#define __EFI_INTERNAL_FORM_REPRESENTATION_H__
|
||||
|
||||
//
|
||||
// The following types are currently defined:
|
||||
//
|
||||
typedef UINT32 RELOFST;
|
||||
typedef CHAR16 *EFI_STRING;
|
||||
|
||||
//
|
||||
// IFR Op codes
|
||||
//
|
||||
#define EFI_IFR_FORM_OP 0x01
|
||||
#define EFI_IFR_SUBTITLE_OP 0x02
|
||||
#define EFI_IFR_TEXT_OP 0x03
|
||||
#define EFI_IFR_GRAPHIC_OP 0x04
|
||||
#define EFI_IFR_ONE_OF_OP 0x05
|
||||
#define EFI_IFR_CHECKBOX_OP 0x06
|
||||
#define EFI_IFR_NUMERIC_OP 0x07
|
||||
#define EFI_IFR_PASSWORD_OP 0x08
|
||||
#define EFI_IFR_ONE_OF_OPTION_OP 0x09 // ONEOF OPTION field
|
||||
#define EFI_IFR_SUPPRESS_IF_OP 0x0A
|
||||
#define EFI_IFR_END_FORM_OP 0x0B
|
||||
#define EFI_IFR_HIDDEN_OP 0x0C
|
||||
#define EFI_IFR_END_FORM_SET_OP 0x0D
|
||||
#define EFI_IFR_FORM_SET_OP 0x0E
|
||||
#define EFI_IFR_REF_OP 0x0F
|
||||
#define EFI_IFR_END_ONE_OF_OP 0x10
|
||||
#define EFI_IFR_END_OP EFI_IFR_END_ONE_OF_OP
|
||||
#define EFI_IFR_INCONSISTENT_IF_OP 0x11
|
||||
#define EFI_IFR_EQ_ID_VAL_OP 0x12
|
||||
#define EFI_IFR_EQ_ID_ID_OP 0x13
|
||||
#define EFI_IFR_EQ_ID_LIST_OP 0x14
|
||||
#define EFI_IFR_AND_OP 0x15
|
||||
#define EFI_IFR_OR_OP 0x16
|
||||
#define EFI_IFR_NOT_OP 0x17
|
||||
#define EFI_IFR_END_IF_OP 0x18 // for endif of inconsistentif, suppressif, grayoutif
|
||||
#define EFI_IFR_GRAYOUT_IF_OP 0x19
|
||||
#define EFI_IFR_DATE_OP 0x1A
|
||||
#define EFI_IFR_TIME_OP 0x1B
|
||||
#define EFI_IFR_STRING_OP 0x1C
|
||||
#define EFI_IFR_LABEL_OP 0x1D
|
||||
#define EFI_IFR_SAVE_DEFAULTS_OP 0x1E
|
||||
#define EFI_IFR_RESTORE_DEFAULTS_OP 0x1F
|
||||
#define EFI_IFR_BANNER_OP 0x20
|
||||
#define EFI_IFR_INVENTORY_OP 0x21
|
||||
#define EFI_IFR_EQ_VAR_VAL_OP 0x22
|
||||
#define EFI_IFR_ORDERED_LIST_OP 0x23
|
||||
#define EFI_IFR_VARSTORE_OP 0x24
|
||||
#define EFI_IFR_VARSTORE_SELECT_OP 0x25
|
||||
#define EFI_IFR_VARSTORE_SELECT_PAIR_OP 0x26
|
||||
#define EFI_IFR_TRUE_OP 0x27
|
||||
#define EFI_IFR_FALSE_OP 0x28
|
||||
#define EFI_IFR_GT_OP 0x29
|
||||
#define EFI_IFR_GE_OP 0x2A
|
||||
#define EFI_IFR_OEM_DEFINED_OP 0x2B
|
||||
#define EFI_IFR_LAST_OPCODE EFI_IFR_OEM_DEFINED_OP
|
||||
#define EFI_IFR_OEM_OP 0xFE
|
||||
#define EFI_IFR_NV_ACCESS_COMMAND 0xFF
|
||||
|
||||
//
|
||||
// Define values for the flags fields in some VFR opcodes. These are
|
||||
// bitmasks.
|
||||
//
|
||||
#define EFI_IFR_FLAG_DEFAULT 0x01
|
||||
#define EFI_IFR_FLAG_MANUFACTURING 0x02
|
||||
#define EFI_IFR_FLAG_INTERACTIVE 0x04
|
||||
#define EFI_IFR_FLAG_NV_ACCESS 0x08
|
||||
#define EFI_IFR_FLAG_RESET_REQUIRED 0x10
|
||||
#define EFI_IFR_FLAG_LATE_CHECK 0x20
|
||||
|
||||
#define EFI_NON_DEVICE_CLASS 0x00 // Useful when you do not want something in the Device Manager
|
||||
#define EFI_DISK_DEVICE_CLASS 0x01
|
||||
#define EFI_VIDEO_DEVICE_CLASS 0x02
|
||||
#define EFI_NETWORK_DEVICE_CLASS 0x04
|
||||
#define EFI_INPUT_DEVICE_CLASS 0x08
|
||||
#define EFI_ON_BOARD_DEVICE_CLASS 0x10
|
||||
#define EFI_OTHER_DEVICE_CLASS 0x20
|
||||
|
||||
#define EFI_SETUP_APPLICATION_SUBCLASS 0x00
|
||||
#define EFI_GENERAL_APPLICATION_SUBCLASS 0x01
|
||||
#define EFI_FRONT_PAGE_SUBCLASS 0x02
|
||||
#define EFI_SINGLE_USE_SUBCLASS 0x03 // Used to display a single entity and then exit
|
||||
|
||||
//
|
||||
// Used to flag dynamically created op-codes. This is meaningful to the IFR Library set
|
||||
// and the browser since we need to distinguish between compiled NV map data and created data.
|
||||
// We do not allow new entries to be created in the NV map dynamically however we still need
|
||||
// to display this information correctly. To dynamically create op-codes and assume that their
|
||||
// data will be saved, ensure that the NV starting location they refer to is pre-defined in the
|
||||
// NV map.
|
||||
//
|
||||
#define EFI_IFR_FLAG_CREATED 128
|
||||
|
||||
#pragma pack(1)
|
||||
//
|
||||
// IFR Structure definitions
|
||||
//
|
||||
typedef struct {
|
||||
UINT8 OpCode;
|
||||
UINT8 Length;
|
||||
} EFI_IFR_OP_HEADER;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
EFI_GUID Guid;
|
||||
STRING_REF FormSetTitle;
|
||||
STRING_REF Help;
|
||||
EFI_PHYSICAL_ADDRESS CallbackHandle;
|
||||
UINT16 Class;
|
||||
UINT16 SubClass;
|
||||
UINT16 NvDataSize; // set once, size of the NV data as defined in the script
|
||||
} EFI_IFR_FORM_SET;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
UINT16 FormId;
|
||||
STRING_REF FormTitle;
|
||||
} EFI_IFR_FORM;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
UINT16 LabelId;
|
||||
} EFI_IFR_LABEL;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
STRING_REF SubTitle;
|
||||
} EFI_IFR_SUBTITLE;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
STRING_REF Help;
|
||||
STRING_REF Text;
|
||||
STRING_REF TextTwo;
|
||||
UINT8 Flags; // This is included solely for purposes of interactive/dynamic support.
|
||||
UINT16 Key; // Value to be passed to caller to identify this particular op-code
|
||||
} EFI_IFR_TEXT;
|
||||
|
||||
//
|
||||
// goto
|
||||
//
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
UINT16 FormId;
|
||||
STRING_REF Prompt;
|
||||
STRING_REF Help; // The string Token for the context-help
|
||||
UINT8 Flags; // This is included solely for purposes of interactive/dynamic support.
|
||||
UINT16 Key; // Value to be passed to caller to identify this particular op-code
|
||||
} EFI_IFR_REF;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
} EFI_IFR_END_FORM;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
} EFI_IFR_END_FORM_SET;
|
||||
|
||||
//
|
||||
// Also notice that the IFR_ONE_OF and IFR_CHECK_BOX are identical in structure......code assumes this to be true, if this ever
|
||||
// changes we need to revisit the InitializeTagStructures code
|
||||
//
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
UINT16 QuestionId; // The ID designating what the question is about...sucked in from a #define, likely in the form of a variable name
|
||||
UINT8 Width; // The Size of the Data being saved
|
||||
STRING_REF Prompt; // The String Token for the Prompt
|
||||
STRING_REF Help; // The string Token for the context-help
|
||||
} EFI_IFR_ONE_OF;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
UINT16 QuestionId; // The offset in NV for storage of the data
|
||||
UINT8 MaxEntries; // The maximum number of options in the ordered list (=size of NVStore)
|
||||
STRING_REF Prompt; // The string token for the prompt
|
||||
STRING_REF Help; // The string token for the context-help
|
||||
} EFI_IFR_ORDERED_LIST;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
UINT16 QuestionId; // The ID designating what the question is about...sucked in from a #define, likely in the form of a variable name
|
||||
UINT8 Width; // The Size of the Data being saved
|
||||
STRING_REF Prompt; // The String Token for the Prompt
|
||||
STRING_REF Help; // The string Token for the context-help
|
||||
UINT8 Flags; // For now, if non-zero, means that it is the default option, - further definition likely
|
||||
UINT16 Key; // Value to be passed to caller to identify this particular op-code
|
||||
} EFI_IFR_CHECKBOX, EFI_IFR_CHECK_BOX;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
STRING_REF Option; // The string token describing the option
|
||||
UINT16 Value; // The value associated with this option that is stored in the NVRAM if chosen
|
||||
UINT8 Flags; // For now, if non-zero, means that it is the default option, - further definition likely above
|
||||
UINT16 Key; // Value to be passed to caller to identify this particular op-code
|
||||
} EFI_IFR_ONE_OF_OPTION;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
UINT16 QuestionId; // The ID designating what the question is about...sucked in from a #define, likely in the form of a variable name
|
||||
UINT8 Width; // The Size of the Data being saved
|
||||
STRING_REF Prompt; // The String Token for the Prompt
|
||||
STRING_REF Help; // The string Token for the context-help
|
||||
UINT8 Flags; // This is included solely for purposes of interactive/dynamic support.
|
||||
UINT16 Key; // Value to be passed to caller to identify this particular op-code
|
||||
UINT16 Minimum;
|
||||
UINT16 Maximum;
|
||||
UINT16 Step; // If step is 0, then manual input is specified, otherwise, left/right arrow selection is called for
|
||||
UINT16 Default;
|
||||
} EFI_IFR_NUMERIC;
|
||||
|
||||
//
|
||||
// There is an interesting twist with regards to Time and Date. This is one of the few items which can accept input from
|
||||
// a user, however may or may not need to use storage in the NVRAM space. The decided method for determining if NVRAM space
|
||||
// will be used (only for a TimeOp or DateOp) is: If .QuestionId == 0 && .Width == 0 (normally an impossibility) then use system
|
||||
// resources to store the data away and not NV resources. In other words, the setup engine will call gRT->SetTime, and gRT->SetDate
|
||||
// for the saving of data, and the values displayed will be from the gRT->GetXXXX series of calls.
|
||||
//
|
||||
typedef struct {
|
||||
EFI_IFR_NUMERIC Hour;
|
||||
EFI_IFR_NUMERIC Minute;
|
||||
EFI_IFR_NUMERIC Second;
|
||||
} EFI_IFR_TIME;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_NUMERIC Year;
|
||||
EFI_IFR_NUMERIC Month;
|
||||
EFI_IFR_NUMERIC Day;
|
||||
} EFI_IFR_DATE;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
UINT16 QuestionId; // The ID designating what the question is about...sucked in from a #define, likely in the form of a variable name
|
||||
UINT8 Width; // The Size of the Data being saved -- BUGBUG -- remove someday
|
||||
STRING_REF Prompt; // The String Token for the Prompt
|
||||
STRING_REF Help; // The string Token for the context-help
|
||||
UINT8 Flags; // This is included solely for purposes of interactive/dynamic support.
|
||||
UINT16 Key; // Value to be passed to caller to identify this particular op-code
|
||||
UINT8 MinSize; // Minimum allowable sized password
|
||||
UINT8 MaxSize; // Maximum allowable sized password
|
||||
UINT16 Encoding;
|
||||
} EFI_IFR_PASSWORD;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
UINT16 QuestionId; // The ID designating what the question is about...sucked in from a #define, likely in the form of a variable name
|
||||
UINT8 Width; // The Size of the Data being saved -- BUGBUG -- remove someday
|
||||
STRING_REF Prompt; // The String Token for the Prompt
|
||||
STRING_REF Help; // The string Token for the context-help
|
||||
UINT8 Flags; // This is included solely for purposes of interactive/dynamic support.
|
||||
UINT16 Key; // Value to be passed to caller to identify this particular op-code
|
||||
UINT8 MinSize; // Minimum allowable sized password
|
||||
UINT8 MaxSize; // Maximum allowable sized password
|
||||
} EFI_IFR_STRING;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
} EFI_IFR_END_ONE_OF;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
UINT16 Value;
|
||||
UINT16 Key;
|
||||
} EFI_IFR_HIDDEN;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
UINT8 Flags;
|
||||
} EFI_IFR_SUPPRESS;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
UINT8 Flags;
|
||||
} EFI_IFR_GRAY_OUT;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
STRING_REF Popup;
|
||||
UINT8 Flags;
|
||||
} EFI_IFR_INCONSISTENT;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
UINT16 QuestionId; // offset into variable storage
|
||||
UINT8 Width; // size of variable storage
|
||||
UINT16 Value; // value to compare against
|
||||
} EFI_IFR_EQ_ID_VAL;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
UINT16 QuestionId; // offset into variable storage
|
||||
UINT8 Width; // size of variable storage
|
||||
UINT16 ListLength;
|
||||
UINT16 ValueList[1];
|
||||
} EFI_IFR_EQ_ID_LIST;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
UINT16 QuestionId1; // offset into variable storage for first value to compare
|
||||
UINT8 Width; // size of variable storage (must be same for both)
|
||||
UINT16 QuestionId2; // offset into variable storage for second value to compare
|
||||
} EFI_IFR_EQ_ID_ID;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
UINT16 VariableId; // offset into variable storage
|
||||
UINT16 Value; // value to compare against
|
||||
} EFI_IFR_EQ_VAR_VAL;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
} EFI_IFR_AND;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
} EFI_IFR_OR;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
} EFI_IFR_NOT;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
} EFI_IFR_END_EXPR, EFI_IFR_END_IF;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
UINT16 FormId;
|
||||
STRING_REF Prompt;
|
||||
STRING_REF Help;
|
||||
UINT8 Flags;
|
||||
UINT16 Key;
|
||||
} EFI_IFR_SAVE_DEFAULTS;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
STRING_REF Help;
|
||||
STRING_REF Text;
|
||||
STRING_REF TextTwo; // optional text
|
||||
} EFI_IFR_INVENTORY;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
EFI_GUID Guid; // GUID for the variable
|
||||
UINT16 VarId; // variable store ID, as referenced elsewhere in the form
|
||||
UINT16 Size; // size of the variable storage
|
||||
} EFI_IFR_VARSTORE;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
UINT16 VarId; // variable store ID, as referenced elsewhere in the form
|
||||
} EFI_IFR_VARSTORE_SELECT;
|
||||
|
||||
//
|
||||
// Used for the ideqid VFR statement where two variable stores may be referenced in the
|
||||
// same VFR statement.
|
||||
// A browser should treat this as an EFI_IFR_VARSTORE_SELECT statement and assume that all following
|
||||
// IFR opcodes use the VarId as defined here.
|
||||
//
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
UINT16 VarId; // variable store ID, as referenced elsewhere in the form
|
||||
UINT16 SecondaryVarId; // variable store ID, as referenced elsewhere in the form
|
||||
} EFI_IFR_VARSTORE_SELECT_PAIR;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
} EFI_IFR_TRUE;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
} EFI_IFR_FALSE;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
} EFI_IFR_GT;
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
} EFI_IFR_GE;
|
||||
|
||||
//
|
||||
// Save defaults and restore defaults have same structure
|
||||
//
|
||||
#define EFI_IFR_RESTORE_DEFAULTS EFI_IFR_SAVE_DEFAULTS
|
||||
|
||||
typedef struct {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
STRING_REF Title; // The string token for the banner title
|
||||
UINT16 LineNumber; // 1-based line number
|
||||
UINT8 Alignment; // left, center, or right-aligned
|
||||
} EFI_IFR_BANNER;
|
||||
|
||||
#define EFI_IFR_BANNER_ALIGN_LEFT 0
|
||||
#define EFI_IFR_BANNER_ALIGN_CENTER 1
|
||||
#define EFI_IFR_BANNER_ALIGN_RIGHT 2
|
||||
#define EFI_IFR_BANNER_TIMEOUT 0xFF
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#endif
|
84
Tools/Source/TianoTools/Include/Common/MultiPhase.h
Normal file
84
Tools/Source/TianoTools/Include/Common/MultiPhase.h
Normal file
@@ -0,0 +1,84 @@
|
||||
/** @file
|
||||
This includes some definitions that will be used in both PEI and DXE phases.
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. 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.
|
||||
|
||||
Module Name: MultiPhase.h
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __MULTI_PHASE_H__
|
||||
#define __MULTI_PHASE_H__
|
||||
|
||||
//
|
||||
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
//
|
||||
// Needed EFI defines for PEI
|
||||
//
|
||||
typedef UINT64 EFI_PHYSICAL_ADDRESS;
|
||||
|
||||
typedef enum {
|
||||
EfiReservedMemoryType,
|
||||
EfiLoaderCode,
|
||||
EfiLoaderData,
|
||||
EfiBootServicesCode,
|
||||
EfiBootServicesData,
|
||||
EfiRuntimeServicesCode,
|
||||
EfiRuntimeServicesData,
|
||||
EfiConventionalMemory,
|
||||
EfiUnusableMemory,
|
||||
EfiACPIReclaimMemory,
|
||||
EfiACPIMemoryNVS,
|
||||
EfiMemoryMappedIO,
|
||||
EfiMemoryMappedIOPortSpace,
|
||||
EfiPalCode,
|
||||
EfiMaxMemoryType
|
||||
} EFI_MEMORY_TYPE;
|
||||
|
||||
typedef UINT32 EFI_STATUS_CODE_TYPE;
|
||||
typedef UINT32 EFI_STATUS_CODE_VALUE;
|
||||
|
||||
typedef struct {
|
||||
UINT16 HeaderSize;
|
||||
UINT16 Size;
|
||||
EFI_GUID Type;
|
||||
} EFI_STATUS_CODE_DATA;
|
||||
|
||||
typedef struct {
|
||||
UINT64 Signature;
|
||||
UINT32 Revision;
|
||||
UINT32 HeaderSize;
|
||||
UINT32 CRC32;
|
||||
UINT32 Reserved;
|
||||
} EFI_TABLE_HEADER;
|
||||
|
||||
#define EFI_PAGE_SIZE 4096
|
||||
|
||||
|
||||
typedef VOID *EFI_HANDLE;
|
||||
typedef UINT16 EFI_HII_HANDLE;
|
||||
typedef UINT16 STRING_REF;
|
||||
typedef struct {
|
||||
INT16 Value;
|
||||
INT16 Exponent;
|
||||
} EFI_EXP_BASE10_DATA;
|
||||
|
||||
//
|
||||
// Define macros to build data structure signatures from characters.
|
||||
//
|
||||
#define EFI_SIGNATURE_16(A, B) ((A) | (B << 8))
|
||||
#define EFI_SIGNATURE_32(A, B, C, D) (EFI_SIGNATURE_16 (A, B) | (EFI_SIGNATURE_16 (C, D) << 16))
|
||||
#define EFI_SIGNATURE_64(A, B, C, D, E, F, G, H) \
|
||||
(EFI_SIGNATURE_32 (A, B, C, D) | ((UINT64) (EFI_SIGNATURE_32 (E, F, G, H)) << 32))
|
||||
|
||||
|
||||
#include <Protocol/DevicePath.h>
|
||||
|
||||
#endif
|
912
Tools/Source/TianoTools/Include/Common/StatusCode.h
Normal file
912
Tools/Source/TianoTools/Include/Common/StatusCode.h
Normal file
@@ -0,0 +1,912 @@
|
||||
/** @file
|
||||
Status Code Definitions, according to Intel Platform Innovation Framework
|
||||
for EFI Status Codes Specification
|
||||
|
||||
The file is divided into sections for ease of use.
|
||||
|
||||
<pre>
|
||||
Section: Contents:
|
||||
1 General Status Code Definitions
|
||||
2 Class definitions
|
||||
3 Computing Unit Subclasses, Progress and Error Codes
|
||||
4 Peripheral Subclasses, Progress and Error Codes.
|
||||
5 IO Bus Subclasses, Progress and Error Codes.
|
||||
6 Software Subclasses, Progress and Error Codes.
|
||||
7 Debug Codes
|
||||
</pre>
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. 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.
|
||||
|
||||
Module Name: StatusCode.h
|
||||
|
||||
@par Revision Reference:
|
||||
Version 0.92.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef _EFI_STATUS_CODE_H_
|
||||
#define _EFI_STATUS_CODE_H_
|
||||
|
||||
|
||||
//
|
||||
// /////////////////////////////////////////////////////////////////////////////
|
||||
// Section 1
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//
|
||||
// A Status Code Type is made up of the code type and severity
|
||||
// All values masked by EFI_STATUS_CODE_RESERVED_MASK are
|
||||
// reserved for use by this specification.
|
||||
//
|
||||
#define EFI_STATUS_CODE_TYPE_MASK 0x000000FF
|
||||
#define EFI_STATUS_CODE_SEVERITY_MASK 0xFF000000
|
||||
#define EFI_STATUS_CODE_RESERVED_MASK 0x00FFFF00
|
||||
|
||||
//
|
||||
// Definition of code types, all other values masked by
|
||||
// EFI_STATUS_CODE_TYPE_MASK are reserved for use by
|
||||
// this specification.
|
||||
//
|
||||
#define EFI_PROGRESS_CODE 0x00000001
|
||||
#define EFI_ERROR_CODE 0x00000002
|
||||
#define EFI_DEBUG_CODE 0x00000003
|
||||
|
||||
//
|
||||
// Definitions of severities, all other values masked by
|
||||
// EFI_STATUS_CODE_SEVERITY_MASK are reserved for use by
|
||||
// this specification.
|
||||
//
|
||||
#define EFI_ERROR_MINOR 0x40000000
|
||||
#define EFI_ERROR_MAJOR 0x80000000
|
||||
#define EFI_ERROR_UNRECOVERED 0x90000000
|
||||
#define EFI_ERROR_UNCONTAINED 0xA0000000
|
||||
|
||||
//
|
||||
// A Status Code Value is made up of the class, subclass, and
|
||||
// an operation. Classes, subclasses, and operations are defined
|
||||
// in the following sections.
|
||||
//
|
||||
#define EFI_STATUS_CODE_CLASS_MASK 0xFF000000
|
||||
#define EFI_STATUS_CODE_SUBCLASS_MASK 0x00FF0000
|
||||
#define EFI_STATUS_CODE_OPERATION_MASK 0x0000FFFF
|
||||
|
||||
//
|
||||
// Data Hub Status Code class record definition
|
||||
//
|
||||
typedef struct {
|
||||
EFI_STATUS_CODE_TYPE CodeType;
|
||||
EFI_STATUS_CODE_VALUE Value;
|
||||
UINT32 Instance;
|
||||
EFI_GUID CallerId;
|
||||
EFI_STATUS_CODE_DATA Data;
|
||||
} DATA_HUB_STATUS_CODE_DATA_RECORD;
|
||||
|
||||
//
|
||||
// /////////////////////////////////////////////////////////////////////////////
|
||||
// Section 2
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Class definitions
|
||||
// Values of 4-127 are reserved for future use by this
|
||||
// specification.
|
||||
// Values in the range 127-255 are reserved for OEM use.
|
||||
//
|
||||
#define EFI_COMPUTING_UNIT 0x00000000
|
||||
#define EFI_PERIPHERAL 0x01000000
|
||||
#define EFI_IO_BUS 0x02000000
|
||||
#define EFI_SOFTWARE 0x03000000
|
||||
|
||||
//
|
||||
// General partitioning scheme for Progress and Error Codes are
|
||||
// 0x0000-0x0FFF - Shared by all sub-classes in a given class
|
||||
// 0x1000-0x7FFF - Subclass Specific
|
||||
// 0x8000-0xFFFF - OEM specific
|
||||
//
|
||||
#define EFI_SUBCLASS_SPECIFIC 0x1000
|
||||
#define EFI_OEM_SPECIFIC 0x8000
|
||||
|
||||
//
|
||||
// /////////////////////////////////////////////////////////////////////////////
|
||||
// Section 3
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Computing Unit Subclass definitions.
|
||||
// Values of 8-127 are reserved for future use by this
|
||||
// specification.
|
||||
// Values of 128-255 are reserved for OEM use.
|
||||
//
|
||||
#define EFI_COMPUTING_UNIT_UNSPECIFIED (EFI_COMPUTING_UNIT | 0x00000000)
|
||||
#define EFI_COMPUTING_UNIT_HOST_PROCESSOR (EFI_COMPUTING_UNIT | 0x00010000)
|
||||
#define EFI_COMPUTING_UNIT_FIRMWARE_PROCESSOR (EFI_COMPUTING_UNIT | 0x00020000)
|
||||
#define EFI_COMPUTING_UNIT_IO_PROCESSOR (EFI_COMPUTING_UNIT | 0x00030000)
|
||||
#define EFI_COMPUTING_UNIT_CACHE (EFI_COMPUTING_UNIT | 0x00040000)
|
||||
#define EFI_COMPUTING_UNIT_MEMORY (EFI_COMPUTING_UNIT | 0x00050000)
|
||||
#define EFI_COMPUTING_UNIT_CHIPSET (EFI_COMPUTING_UNIT | 0x00060000)
|
||||
|
||||
//
|
||||
// Computing Unit Class Progress Code definitions.
|
||||
// These are shared by all subclasses.
|
||||
//
|
||||
#define EFI_CU_PC_INIT_BEGIN 0x00000000
|
||||
#define EFI_CU_PC_INIT_END 0x00000001
|
||||
|
||||
//
|
||||
// Computing Unit Unspecified Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// Computing Unit Host Processor Subclass Progress Code definitions.
|
||||
//
|
||||
#define EFI_CU_HP_PC_POWER_ON_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_CU_HP_PC_CACHE_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
#define EFI_CU_HP_PC_RAM_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000002)
|
||||
#define EFI_CU_HP_PC_MEMORY_CONTROLLER_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000003)
|
||||
#define EFI_CU_HP_PC_IO_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000004)
|
||||
#define EFI_CU_HP_PC_BSP_SELECT (EFI_SUBCLASS_SPECIFIC | 0x00000005)
|
||||
#define EFI_CU_HP_PC_BSP_RESELECT (EFI_SUBCLASS_SPECIFIC | 0x00000006)
|
||||
#define EFI_CU_HP_PC_AP_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000007)
|
||||
#define EFI_CU_HP_PC_SMM_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000008)
|
||||
|
||||
//
|
||||
// Computing Unit Firmware Processor Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// Computing Unit IO Processor Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// Computing Unit Cache Subclass Progress Code definitions.
|
||||
//
|
||||
#define EFI_CU_CACHE_PC_PRESENCE_DETECT (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_CU_CACHE_PC_CONFIGURATION (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
|
||||
//
|
||||
// Computing Unit Memory Subclass Progress Code definitions.
|
||||
//
|
||||
#define EFI_CU_MEMORY_PC_SPD_READ (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_CU_MEMORY_PC_PRESENCE_DETECT (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
#define EFI_CU_MEMORY_PC_TIMING (EFI_SUBCLASS_SPECIFIC | 0x00000002)
|
||||
#define EFI_CU_MEMORY_PC_CONFIGURING (EFI_SUBCLASS_SPECIFIC | 0x00000003)
|
||||
#define EFI_CU_MEMORY_PC_OPTIMIZING (EFI_SUBCLASS_SPECIFIC | 0x00000004)
|
||||
#define EFI_CU_MEMORY_PC_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000005)
|
||||
#define EFI_CU_MEMORY_PC_TEST (EFI_SUBCLASS_SPECIFIC | 0x00000006)
|
||||
|
||||
//
|
||||
// Computing Unit Chipset Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// Computing Unit Class Error Code definitions.
|
||||
// These are shared by all subclasses.
|
||||
//
|
||||
#define EFI_CU_EC_NON_SPECIFIC 0x00000000
|
||||
#define EFI_CU_EC_DISABLED 0x00000001
|
||||
#define EFI_CU_EC_NOT_SUPPORTED 0x00000002
|
||||
#define EFI_CU_EC_NOT_DETECTED 0x00000003
|
||||
#define EFI_CU_EC_NOT_CONFIGURED 0x00000004
|
||||
|
||||
//
|
||||
// Computing Unit Unspecified Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// Computing Unit Host Processor Subclass Error Code definitions.
|
||||
//
|
||||
#define EFI_CU_HP_EC_INVALID_TYPE (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_CU_HP_EC_INVALID_SPEED (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
#define EFI_CU_HP_EC_MISMATCH (EFI_SUBCLASS_SPECIFIC | 0x00000002)
|
||||
#define EFI_CU_HP_EC_TIMER_EXPIRED (EFI_SUBCLASS_SPECIFIC | 0x00000003)
|
||||
#define EFI_CU_HP_EC_SELF_TEST (EFI_SUBCLASS_SPECIFIC | 0x00000004)
|
||||
#define EFI_CU_HP_EC_INTERNAL (EFI_SUBCLASS_SPECIFIC | 0x00000005)
|
||||
#define EFI_CU_HP_EC_THERMAL (EFI_SUBCLASS_SPECIFIC | 0x00000006)
|
||||
#define EFI_CU_HP_EC_LOW_VOLTAGE (EFI_SUBCLASS_SPECIFIC | 0x00000007)
|
||||
#define EFI_CU_HP_EC_HIGH_VOLTAGE (EFI_SUBCLASS_SPECIFIC | 0x00000008)
|
||||
#define EFI_CU_HP_EC_CACHE (EFI_SUBCLASS_SPECIFIC | 0x00000009)
|
||||
#define EFI_CU_HP_EC_MICROCODE_UPDATE (EFI_SUBCLASS_SPECIFIC | 0x0000000A)
|
||||
#define EFI_CU_HP_EC_CORRECTABLE (EFI_SUBCLASS_SPECIFIC | 0x0000000B)
|
||||
#define EFI_CU_HP_EC_UNCORRECTABLE (EFI_SUBCLASS_SPECIFIC | 0x0000000C)
|
||||
#define EFI_CU_HP_EC_NO_MICROCODE_UPDATE (EFI_SUBCLASS_SPECIFIC | 0x0000000D)
|
||||
|
||||
//
|
||||
// Computing Unit Firmware Processor Subclass Error Code definitions.
|
||||
//
|
||||
#define EFI_CU_FP_EC_HARD_FAIL (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_CU_FP_EC_SOFT_FAIL (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
#define EFI_CU_FP_EC_COMM_ERROR (EFI_SUBCLASS_SPECIFIC | 0x00000002)
|
||||
|
||||
//
|
||||
// Computing Unit IO Processor Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// Computing Unit Cache Subclass Error Code definitions.
|
||||
//
|
||||
#define EFI_CU_CACHE_EC_INVALID_TYPE (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_CU_CACHE_EC_INVALID_SPEED (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
#define EFI_CU_CACHE_EC_INVALID_SIZE (EFI_SUBCLASS_SPECIFIC | 0x00000002)
|
||||
#define EFI_CU_CACHE_EC_MISMATCH (EFI_SUBCLASS_SPECIFIC | 0x00000003)
|
||||
|
||||
//
|
||||
// Computing Unit Memory Subclass Error Code definitions.
|
||||
//
|
||||
#define EFI_CU_MEMORY_EC_INVALID_TYPE (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_CU_MEMORY_EC_INVALID_SPEED (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
#define EFI_CU_MEMORY_EC_CORRECTABLE (EFI_SUBCLASS_SPECIFIC | 0x00000002)
|
||||
#define EFI_CU_MEMORY_EC_UNCORRECTABLE (EFI_SUBCLASS_SPECIFIC | 0x00000003)
|
||||
#define EFI_CU_MEMORY_EC_SPD_FAIL (EFI_SUBCLASS_SPECIFIC | 0x00000004)
|
||||
#define EFI_CU_MEMORY_EC_INVALID_SIZE (EFI_SUBCLASS_SPECIFIC | 0x00000005)
|
||||
#define EFI_CU_MEMORY_EC_MISMATCH (EFI_SUBCLASS_SPECIFIC | 0x00000006)
|
||||
#define EFI_CU_MEMORY_EC_S3_RESUME_FAIL (EFI_SUBCLASS_SPECIFIC | 0x00000007)
|
||||
#define EFI_CU_MEMORY_EC_UPDATE_FAIL (EFI_SUBCLASS_SPECIFIC | 0x00000008)
|
||||
#define EFI_CU_MEMORY_EC_NONE_DETECTED (EFI_SUBCLASS_SPECIFIC | 0x00000009)
|
||||
#define EFI_CU_MEMORY_EC_NONE_USEFUL (EFI_SUBCLASS_SPECIFIC | 0x0000000A)
|
||||
|
||||
//
|
||||
// Computing Unit Chipset Subclass Error Code definitions.
|
||||
//
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Section 4
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Peripheral Subclass definitions.
|
||||
// Values of 12-127 are reserved for future use by this
|
||||
// specification.
|
||||
// Values of 128-255 are reserved for OEM use.
|
||||
//
|
||||
#define EFI_PERIPHERAL_UNSPECIFIED (EFI_PERIPHERAL | 0x00000000)
|
||||
#define EFI_PERIPHERAL_KEYBOARD (EFI_PERIPHERAL | 0x00010000)
|
||||
#define EFI_PERIPHERAL_MOUSE (EFI_PERIPHERAL | 0x00020000)
|
||||
#define EFI_PERIPHERAL_LOCAL_CONSOLE (EFI_PERIPHERAL | 0x00030000)
|
||||
#define EFI_PERIPHERAL_REMOTE_CONSOLE (EFI_PERIPHERAL | 0x00040000)
|
||||
#define EFI_PERIPHERAL_SERIAL_PORT (EFI_PERIPHERAL | 0x00050000)
|
||||
#define EFI_PERIPHERAL_PARALLEL_PORT (EFI_PERIPHERAL | 0x00060000)
|
||||
#define EFI_PERIPHERAL_FIXED_MEDIA (EFI_PERIPHERAL | 0x00070000)
|
||||
#define EFI_PERIPHERAL_REMOVABLE_MEDIA (EFI_PERIPHERAL | 0x00080000)
|
||||
#define EFI_PERIPHERAL_AUDIO_INPUT (EFI_PERIPHERAL | 0x00090000)
|
||||
#define EFI_PERIPHERAL_AUDIO_OUTPUT (EFI_PERIPHERAL | 0x000A0000)
|
||||
#define EFI_PERIPHERAL_LCD_DEVICE (EFI_PERIPHERAL | 0x000B0000)
|
||||
#define EFI_PERIPHERAL_NETWORK (EFI_PERIPHERAL | 0x000C0000)
|
||||
|
||||
//
|
||||
// Peripheral Class Progress Code definitions.
|
||||
// These are shared by all subclasses.
|
||||
//
|
||||
#define EFI_P_PC_INIT 0x00000000
|
||||
#define EFI_P_PC_RESET 0x00000001
|
||||
#define EFI_P_PC_DISABLE 0x00000002
|
||||
#define EFI_P_PC_PRESENCE_DETECT 0x00000003
|
||||
#define EFI_P_PC_ENABLE 0x00000004
|
||||
#define EFI_P_PC_RECONFIG 0x00000005
|
||||
#define EFI_P_PC_DETECTED 0x00000006
|
||||
|
||||
//
|
||||
// Peripheral Class Unspecified Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// Peripheral Class Keyboard Subclass Progress Code definitions.
|
||||
//
|
||||
#define EFI_P_KEYBOARD_PC_CLEAR_BUFFER (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_P_KEYBOARD_PC_SELF_TEST (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
|
||||
//
|
||||
// Peripheral Class Mouse Subclass Progress Code definitions.
|
||||
//
|
||||
#define EFI_P_MOUSE_PC_SELF_TEST (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
|
||||
//
|
||||
// Peripheral Class Local Console Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// Peripheral Class Remote Console Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// Peripheral Class Serial Port Subclass Progress Code definitions.
|
||||
//
|
||||
#define EFI_P_SERIAL_PORT_PC_CLEAR_BUFFER (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
|
||||
//
|
||||
// Peripheral Class Parallel Port Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// Peripheral Class Fixed Media Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// Peripheral Class Removable Media Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// Peripheral Class Audio Input Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// Peripheral Class Audio Output Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// Peripheral Class LCD Device Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// Peripheral Class Network Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// Peripheral Class Error Code definitions.
|
||||
// These are shared by all subclasses.
|
||||
//
|
||||
#define EFI_P_EC_NON_SPECIFIC 0x00000000
|
||||
#define EFI_P_EC_DISABLED 0x00000001
|
||||
#define EFI_P_EC_NOT_SUPPORTED 0x00000002
|
||||
#define EFI_P_EC_NOT_DETECTED 0x00000003
|
||||
#define EFI_P_EC_NOT_CONFIGURED 0x00000004
|
||||
#define EFI_P_EC_INTERFACE_ERROR 0x00000005
|
||||
#define EFI_P_EC_CONTROLLER_ERROR 0x00000006
|
||||
#define EFI_P_EC_INPUT_ERROR 0x00000007
|
||||
#define EFI_P_EC_OUTPUT_ERROR 0x00000008
|
||||
#define EFI_P_EC_RESOURCE_CONFLICT 0x00000009
|
||||
|
||||
//
|
||||
// Peripheral Class Unspecified Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// Peripheral Class Keyboard Subclass Error Code definitions.
|
||||
//
|
||||
#define EFI_P_KEYBOARD_EC_LOCKED (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_P_KEYBOARD_EC_STUCK_KEY (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
|
||||
//
|
||||
// Peripheral Class Mouse Subclass Error Code definitions.
|
||||
//
|
||||
#define EFI_P_MOUSE_EC_LOCKED (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
|
||||
//
|
||||
// Peripheral Class Local Console Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// Peripheral Class Remote Console Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// Peripheral Class Serial Port Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// Peripheral Class Parallel Port Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// Peripheral Class Fixed Media Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// Peripheral Class Removable Media Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// Peripheral Class Audio Input Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// Peripheral Class Audio Output Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// Peripheral Class LCD Device Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// Peripheral Class Network Subclass Error Code definitions.
|
||||
//
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Section 5
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// IO Bus Subclass definitions.
|
||||
// Values of 14-127 are reserved for future use by this
|
||||
// specification.
|
||||
// Values of 128-255 are reserved for OEM use.
|
||||
//
|
||||
#define EFI_IO_BUS_UNSPECIFIED (EFI_IO_BUS | 0x00000000)
|
||||
#define EFI_IO_BUS_PCI (EFI_IO_BUS | 0x00010000)
|
||||
#define EFI_IO_BUS_USB (EFI_IO_BUS | 0x00020000)
|
||||
#define EFI_IO_BUS_IBA (EFI_IO_BUS | 0x00030000)
|
||||
#define EFI_IO_BUS_AGP (EFI_IO_BUS | 0x00040000)
|
||||
#define EFI_IO_BUS_PC_CARD (EFI_IO_BUS | 0x00050000)
|
||||
#define EFI_IO_BUS_LPC (EFI_IO_BUS | 0x00060000)
|
||||
#define EFI_IO_BUS_SCSI (EFI_IO_BUS | 0x00070000)
|
||||
#define EFI_IO_BUS_ATA_ATAPI (EFI_IO_BUS | 0x00080000)
|
||||
#define EFI_IO_BUS_FC (EFI_IO_BUS | 0x00090000)
|
||||
#define EFI_IO_BUS_IP_NETWORK (EFI_IO_BUS | 0x000A0000)
|
||||
#define EFI_IO_BUS_SMBUS (EFI_IO_BUS | 0x000B0000)
|
||||
#define EFI_IO_BUS_I2C (EFI_IO_BUS | 0x000C0000)
|
||||
|
||||
//
|
||||
// IO Bus Class Progress Code definitions.
|
||||
// These are shared by all subclasses.
|
||||
//
|
||||
#define EFI_IOB_PC_INIT 0x00000000
|
||||
#define EFI_IOB_PC_RESET 0x00000001
|
||||
#define EFI_IOB_PC_DISABLE 0x00000002
|
||||
#define EFI_IOB_PC_DETECT 0x00000003
|
||||
#define EFI_IOB_PC_ENABLE 0x00000004
|
||||
#define EFI_IOB_PC_RECONFIG 0x00000005
|
||||
#define EFI_IOB_PC_HOTPLUG 0x00000006
|
||||
|
||||
//
|
||||
// IO Bus Class Unspecified Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// IO Bus Class PCI Subclass Progress Code definitions.
|
||||
//
|
||||
#define EFI_IOB_PCI_PC_BUS_ENUM (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_IOB_PCI_PC_RES_ALLOC (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
#define EFI_IOB_PCI_PC_HPC_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000002)
|
||||
|
||||
//
|
||||
// IO Bus Class USB Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// IO Bus Class IBA Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// IO Bus Class AGP Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// IO Bus Class PC Card Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// IO Bus Class LPC Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// IO Bus Class SCSI Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// 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.
|
||||
//
|
||||
//
|
||||
// IO Bus Class IP Network Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// IO Bus Class SMBUS Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// IO Bus Class I2C Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// IO Bus Class Error Code definitions.
|
||||
// These are shared by all subclasses.
|
||||
//
|
||||
#define EFI_IOB_EC_NON_SPECIFIC 0x00000000
|
||||
#define EFI_IOB_EC_DISABLED 0x00000001
|
||||
#define EFI_IOB_EC_NOT_SUPPORTED 0x00000002
|
||||
#define EFI_IOB_EC_NOT_DETECTED 0x00000003
|
||||
#define EFI_IOB_EC_NOT_CONFIGURED 0x00000004
|
||||
#define EFI_IOB_EC_INTERFACE_ERROR 0x00000005
|
||||
#define EFI_IOB_EC_CONTROLLER_ERROR 0x00000006
|
||||
#define EFI_IOB_EC_READ_ERROR 0x00000007
|
||||
#define EFI_IOB_EC_WRITE_ERROR 0x00000008
|
||||
#define EFI_IOB_EC_RESOURCE_CONFLICT 0x00000009
|
||||
|
||||
//
|
||||
// IO Bus Class Unspecified Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// IO Bus Class PCI Subclass Error Code definitions.
|
||||
//
|
||||
#define EFI_IOB_PCI_EC_PERR (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_IOB_PCI_EC_SERR (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
|
||||
//
|
||||
// IO Bus Class USB Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// IO Bus Class IBA Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// IO Bus Class AGP Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// IO Bus Class PC Card Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// IO Bus Class LPC Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// IO Bus Class SCSI Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// 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.
|
||||
//
|
||||
//
|
||||
// IO Bus Class IP Network Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// IO Bus Class SMBUS Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// IO Bus Class I2C Subclass Error Code definitions.
|
||||
//
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Section 6
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Software Subclass definitions.
|
||||
// Values of 14-127 are reserved for future use by this
|
||||
// specification.
|
||||
// Values of 128-255 are reserved for OEM use.
|
||||
//
|
||||
#define EFI_SOFTWARE_UNSPECIFIED (EFI_SOFTWARE | 0x00000000)
|
||||
#define EFI_SOFTWARE_SEC (EFI_SOFTWARE | 0x00010000)
|
||||
#define EFI_SOFTWARE_PEI_CORE (EFI_SOFTWARE | 0x00020000)
|
||||
#define EFI_SOFTWARE_PEI_MODULE (EFI_SOFTWARE | 0x00030000)
|
||||
#define EFI_SOFTWARE_DXE_CORE (EFI_SOFTWARE | 0x00040000)
|
||||
#define EFI_SOFTWARE_DXE_BS_DRIVER (EFI_SOFTWARE | 0x00050000)
|
||||
#define EFI_SOFTWARE_DXE_RT_DRIVER (EFI_SOFTWARE | 0x00060000)
|
||||
#define EFI_SOFTWARE_SMM_DRIVER (EFI_SOFTWARE | 0x00070000)
|
||||
#define EFI_SOFTWARE_EFI_APPLICATION (EFI_SOFTWARE | 0x00080000)
|
||||
#define EFI_SOFTWARE_EFI_OS_LOADER (EFI_SOFTWARE | 0x00090000)
|
||||
#define EFI_SOFTWARE_RT (EFI_SOFTWARE | 0x000A0000)
|
||||
#define EFI_SOFTWARE_AL (EFI_SOFTWARE | 0x000B0000)
|
||||
#define EFI_SOFTWARE_EBC_EXCEPTION (EFI_SOFTWARE | 0x000C0000)
|
||||
#define EFI_SOFTWARE_IA32_EXCEPTION (EFI_SOFTWARE | 0x000D0000)
|
||||
#define EFI_SOFTWARE_IPF_EXCEPTION (EFI_SOFTWARE | 0x000E0000)
|
||||
#define EFI_SOFTWARE_PEI_SERVICE (EFI_SOFTWARE | 0x000F0000)
|
||||
#define EFI_SOFTWARE_EFI_BOOT_SERVICE (EFI_SOFTWARE | 0x00100000)
|
||||
#define EFI_SOFTWARE_EFI_RUNTIME_SERVICE (EFI_SOFTWARE | 0x00110000)
|
||||
#define EFI_SOFTWARE_EFI_DXE_SERVICE (EFI_SOFTWARE | 0x00120000)
|
||||
|
||||
//
|
||||
// Software Class Progress Code definitions.
|
||||
// These are shared by all subclasses.
|
||||
//
|
||||
#define EFI_SW_PC_INIT 0x00000000
|
||||
#define EFI_SW_PC_LOAD 0x00000001
|
||||
#define EFI_SW_PC_INIT_BEGIN 0x00000002
|
||||
#define EFI_SW_PC_INIT_END 0x00000003
|
||||
#define EFI_SW_PC_AUTHENTICATE_BEGIN 0x00000004
|
||||
#define EFI_SW_PC_AUTHENTICATE_END 0x00000005
|
||||
#define EFI_SW_PC_INPUT_WAIT 0x00000006
|
||||
#define EFI_SW_PC_USER_SETUP 0x00000007
|
||||
|
||||
//
|
||||
// Software Class Unspecified Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// Software Class SEC Subclass Progress Code definitions.
|
||||
//
|
||||
#define EFI_SW_SEC_PC_ENTRY_POINT (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_SW_SEC_PC_HANDOFF_TO_NEXT (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
|
||||
//
|
||||
// Software Class PEI Core Subclass Progress Code definitions.
|
||||
//
|
||||
#define EFI_SW_PEI_CORE_PC_ENTRY_POINT (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_SW_PEI_CORE_PC_HANDOFF_TO_NEXT (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
#define EFI_SW_PEI_CORE_PC_RETURN_TO_LAST (EFI_SUBCLASS_SPECIFIC | 0x00000002)
|
||||
|
||||
//
|
||||
// Software Class PEI Module Subclass Progress Code definitions.
|
||||
//
|
||||
#define EFI_SW_PEIM_PC_RECOVERY_BEGIN (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_SW_PEIM_PC_CAPSULE_LOAD (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
#define EFI_SW_PEIM_PC_CAPSULE_START (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
#define EFI_SW_PEIM_PC_RECOVERY_USER (EFI_SUBCLASS_SPECIFIC | 0x00000003)
|
||||
#define EFI_SW_PEIM_PC_RECOVERY_AUTO (EFI_SUBCLASS_SPECIFIC | 0x00000004)
|
||||
|
||||
//
|
||||
// Software Class DXE Core Subclass Progress Code definitions.
|
||||
//
|
||||
#define EFI_SW_DXE_CORE_PC_ENTRY_POINT (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_SW_DXE_CORE_PC_HANDOFF_TO_NEXT (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
#define EFI_SW_DXE_CORE_PC_RETURN_TO_LAST (EFI_SUBCLASS_SPECIFIC | 0x00000002)
|
||||
#define EFI_SW_DXE_CORE_PC_START_DRIVER (EFI_SUBCLASS_SPECIFIC | 0x00000003)
|
||||
|
||||
//
|
||||
// Software Class DXE BS Driver Subclass Progress Code definitions.
|
||||
//
|
||||
#define EFI_SW_DXE_BS_PC_LEGACY_OPROM_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_SW_DXE_BS_PC_READY_TO_BOOT_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
#define EFI_SW_DXE_BS_PC_LEGACY_BOOT_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000002)
|
||||
#define EFI_SW_DXE_BS_PC_EXIT_BOOT_SERVICES_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000003)
|
||||
#define EFI_SW_DXE_BS_PC_VIRTUAL_ADDRESS_CHANGE_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000004)
|
||||
#define EFI_SW_DXE_BS_PC_BEGIN_CONNECTING_DRIVERS (EFI_SUBCLASS_SPECIFIC | 0x00000005)
|
||||
#define EFI_SW_DXE_BS_PC_VERIFYING_PASSWORD (EFI_SUBCLASS_SPECIFIC | 0x00000006)
|
||||
|
||||
//
|
||||
// Software Class DXE RT Driver Subclass Progress Code definitions.
|
||||
//
|
||||
#define EFI_SW_DXE_RT_PC_S0 (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_SW_DXE_RT_PC_S1 (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
#define EFI_SW_DXE_RT_PC_S2 (EFI_SUBCLASS_SPECIFIC | 0x00000002)
|
||||
#define EFI_SW_DXE_RT_PC_S3 (EFI_SUBCLASS_SPECIFIC | 0x00000003)
|
||||
#define EFI_SW_DXE_RT_PC_S4 (EFI_SUBCLASS_SPECIFIC | 0x00000004)
|
||||
#define EFI_SW_DXE_RT_PC_S5 (EFI_SUBCLASS_SPECIFIC | 0x00000005)
|
||||
|
||||
//
|
||||
// Software Class SMM Driver Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// Software Class EFI Application Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// Software Class EFI OS Loader Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// Software Class EFI RT Subclass Progress Code definitions.
|
||||
//
|
||||
#define EFI_SW_RT_PC_ENTRY_POINT (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_SW_RT_PC_HANDOFF_TO_NEXT (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
#define EFI_SW_RT_PC_RETURN_TO_LAST (EFI_SUBCLASS_SPECIFIC | 0x00000002)
|
||||
|
||||
//
|
||||
// Software Class EFI AL Subclass Progress Code definitions.
|
||||
//
|
||||
#define EFI_SW_AL_PC_ENTRY_POINT (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_SW_AL_PC_RETURN_TO_LAST (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
|
||||
//
|
||||
// Software Class EBC Exception Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// Software Class IA32 Exception Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// Software Class IPF Exception Subclass Progress Code definitions.
|
||||
//
|
||||
//
|
||||
// Software Class PEI Services Subclass Progress Code definitions.
|
||||
//
|
||||
#define EFI_SW_PS_PC_INSTALL_PPI (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_SW_PS_PC_REINSTALL_PPI (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
#define EFI_SW_PS_PC_LOCATE_PPI (EFI_SUBCLASS_SPECIFIC | 0x00000002)
|
||||
#define EFI_SW_PS_PC_NOTIFY_PPI (EFI_SUBCLASS_SPECIFIC | 0x00000003)
|
||||
#define EFI_SW_PS_PC_GET_BOOT_MODE (EFI_SUBCLASS_SPECIFIC | 0x00000004)
|
||||
#define EFI_SW_PS_PC_SET_BOOT_MODE (EFI_SUBCLASS_SPECIFIC | 0x00000005)
|
||||
#define EFI_SW_PS_PC_GET_HOB_LIST (EFI_SUBCLASS_SPECIFIC | 0x00000006)
|
||||
#define EFI_SW_PS_PC_CREATE_HOB (EFI_SUBCLASS_SPECIFIC | 0x00000007)
|
||||
#define EFI_SW_PS_PC_FFS_FIND_NEXT_VOLUME (EFI_SUBCLASS_SPECIFIC | 0x00000008)
|
||||
#define EFI_SW_PS_PC_FFS_FIND_NEXT_FILE (EFI_SUBCLASS_SPECIFIC | 0x00000009)
|
||||
#define EFI_SW_PS_PC_FFS_FIND_SECTION_DATA (EFI_SUBCLASS_SPECIFIC | 0x0000000A)
|
||||
#define EFI_SW_PS_PC_INSTALL_PEI_MEMORY (EFI_SUBCLASS_SPECIFIC | 0x0000000B)
|
||||
#define EFI_SW_PS_PC_ALLOCATE_PAGES (EFI_SUBCLASS_SPECIFIC | 0x0000000C)
|
||||
#define EFI_SW_PS_PC_ALLOCATE_POOL (EFI_SUBCLASS_SPECIFIC | 0x0000000D)
|
||||
#define EFI_SW_PS_PC_COPY_MEM (EFI_SUBCLASS_SPECIFIC | 0x0000000E)
|
||||
#define EFI_SW_PS_PC_SET_MEM (EFI_SUBCLASS_SPECIFIC | 0x0000000F)
|
||||
|
||||
//
|
||||
// Software Class EFI Boot Services Subclass Progress Code definitions.
|
||||
//
|
||||
#define EFI_SW_BS_PC_RAISE_TPL (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_SW_BS_PC_RESTORE_TPL (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
#define EFI_SW_BS_PC_ALLOCATE_PAGES (EFI_SUBCLASS_SPECIFIC | 0x00000002)
|
||||
#define EFI_SW_BS_PC_FREE_PAGES (EFI_SUBCLASS_SPECIFIC | 0x00000003)
|
||||
#define EFI_SW_BS_PC_GET_MEMORY_MAP (EFI_SUBCLASS_SPECIFIC | 0x00000004)
|
||||
#define EFI_SW_BS_PC_ALLOCATE_POOL (EFI_SUBCLASS_SPECIFIC | 0x00000005)
|
||||
#define EFI_SW_BS_PC_FREE_POOL (EFI_SUBCLASS_SPECIFIC | 0x00000006)
|
||||
#define EFI_SW_BS_PC_CREATE_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000007)
|
||||
#define EFI_SW_BS_PC_SET_TIMER (EFI_SUBCLASS_SPECIFIC | 0x00000008)
|
||||
#define EFI_SW_BS_PC_WAIT_FOR_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000009)
|
||||
#define EFI_SW_BS_PC_SIGNAL_EVENT (EFI_SUBCLASS_SPECIFIC | 0x0000000A)
|
||||
#define EFI_SW_BS_PC_CLOSE_EVENT (EFI_SUBCLASS_SPECIFIC | 0x0000000B)
|
||||
#define EFI_SW_BS_PC_CHECK_EVENT (EFI_SUBCLASS_SPECIFIC | 0x0000000C)
|
||||
#define EFI_SW_BS_PC_INSTALL_PROTOCOL_INTERFACE (EFI_SUBCLASS_SPECIFIC | 0x0000000D)
|
||||
#define EFI_SW_BS_PC_REINSTALL_PROTOCOL_INTERFACE (EFI_SUBCLASS_SPECIFIC | 0x0000000E)
|
||||
#define EFI_SW_BS_PC_UNINSTALL_PROTOCOL_INTERFACE (EFI_SUBCLASS_SPECIFIC | 0x0000000F)
|
||||
#define EFI_SW_BS_PC_HANDLE_PROTOCOL (EFI_SUBCLASS_SPECIFIC | 0x00000010)
|
||||
#define EFI_SW_BS_PC_PC_HANDLE_PROTOCOL (EFI_SUBCLASS_SPECIFIC | 0x00000011)
|
||||
#define EFI_SW_BS_PC_REGISTER_PROTOCOL_NOTIFY (EFI_SUBCLASS_SPECIFIC | 0x00000012)
|
||||
#define EFI_SW_BS_PC_LOCATE_HANDLE (EFI_SUBCLASS_SPECIFIC | 0x00000013)
|
||||
#define EFI_SW_BS_PC_INSTALL_CONFIGURATION_TABLE (EFI_SUBCLASS_SPECIFIC | 0x00000014)
|
||||
#define EFI_SW_BS_PC_LOAD_IMAGE (EFI_SUBCLASS_SPECIFIC | 0x00000015)
|
||||
#define EFI_SW_BS_PC_START_IMAGE (EFI_SUBCLASS_SPECIFIC | 0x00000016)
|
||||
#define EFI_SW_BS_PC_EXIT (EFI_SUBCLASS_SPECIFIC | 0x00000017)
|
||||
#define EFI_SW_BS_PC_UNLOAD_IMAGE (EFI_SUBCLASS_SPECIFIC | 0x00000018)
|
||||
#define EFI_SW_BS_PC_EXIT_BOOT_SERVICES (EFI_SUBCLASS_SPECIFIC | 0x00000019)
|
||||
#define EFI_SW_BS_PC_GET_NEXT_MONOTONIC_COUNT (EFI_SUBCLASS_SPECIFIC | 0x0000001A)
|
||||
#define EFI_SW_BS_PC_STALL (EFI_SUBCLASS_SPECIFIC | 0x0000001B)
|
||||
#define EFI_SW_BS_PC_SET_WATCHDOG_TIMER (EFI_SUBCLASS_SPECIFIC | 0x0000001C)
|
||||
#define EFI_SW_BS_PC_CONNECT_CONTROLLER (EFI_SUBCLASS_SPECIFIC | 0x0000001D)
|
||||
#define EFI_SW_BS_PC_DISCONNECT_CONTROLLER (EFI_SUBCLASS_SPECIFIC | 0x0000001E)
|
||||
#define EFI_SW_BS_PC_OPEN_PROTOCOL (EFI_SUBCLASS_SPECIFIC | 0x0000001F)
|
||||
#define EFI_SW_BS_PC_CLOSE_PROTOCOL (EFI_SUBCLASS_SPECIFIC | 0x00000020)
|
||||
#define EFI_SW_BS_PC_OPEN_PROTOCOL_INFORMATION (EFI_SUBCLASS_SPECIFIC | 0x00000021)
|
||||
#define EFI_SW_BS_PC_PROTOCOLS_PER_HANDLE (EFI_SUBCLASS_SPECIFIC | 0x00000022)
|
||||
#define EFI_SW_BS_PC_LOCATE_HANDLE_BUFFER (EFI_SUBCLASS_SPECIFIC | 0x00000023)
|
||||
#define EFI_SW_BS_PC_LOCATE_PROTOCOL (EFI_SUBCLASS_SPECIFIC | 0x00000024)
|
||||
#define EFI_SW_BS_PC_INSTALL_MULTIPLE_INTERFACES (EFI_SUBCLASS_SPECIFIC | 0x00000025)
|
||||
#define EFI_SW_BS_PC_UNINSTALL_MULTIPLE_INTERFACES (EFI_SUBCLASS_SPECIFIC | 0x00000026)
|
||||
#define EFI_SW_BS_PC_CALCULATE_CRC_32 (EFI_SUBCLASS_SPECIFIC | 0x00000027)
|
||||
#define EFI_SW_BS_PC_COPY_MEM (EFI_SUBCLASS_SPECIFIC | 0x00000028)
|
||||
#define EFI_SW_BS_PC_SET_MEM (EFI_SUBCLASS_SPECIFIC | 0x00000029)
|
||||
|
||||
//
|
||||
// Software Class EFI Runtime Services Subclass Progress Code definitions.
|
||||
//
|
||||
#define EFI_SW_RS_PC_GET_TIME (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_SW_RS_PC_SET_TIME (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
#define EFI_SW_RS_PC_GET_WAKEUP_TIME (EFI_SUBCLASS_SPECIFIC | 0x00000002)
|
||||
#define EFI_SW_RS_PC_SET_WAKEUP_TIME (EFI_SUBCLASS_SPECIFIC | 0x00000003)
|
||||
#define EFI_SW_RS_PC_SET_VIRTUAL_ADDRESS_MAP (EFI_SUBCLASS_SPECIFIC | 0x00000004)
|
||||
#define EFI_SW_RS_PC_CONVERT_POINTER (EFI_SUBCLASS_SPECIFIC | 0x00000005)
|
||||
#define EFI_SW_RS_PC_GET_VARIABLE (EFI_SUBCLASS_SPECIFIC | 0x00000006)
|
||||
#define EFI_SW_RS_PC_GET_NEXT_VARIABLE_NAME (EFI_SUBCLASS_SPECIFIC | 0x00000007)
|
||||
#define EFI_SW_RS_PC_SET_VARIABLE (EFI_SUBCLASS_SPECIFIC | 0x00000008)
|
||||
#define EFI_SW_RS_PC_GET_NEXT_HIGH_MONOTONIC_COUNT (EFI_SUBCLASS_SPECIFIC | 0x00000009)
|
||||
#define EFI_SW_RS_PC_RESET_SYSTEM (EFI_SUBCLASS_SPECIFIC | 0x0000000A)
|
||||
|
||||
//
|
||||
// Software Class EFI DXE Services Subclass Progress Code definitions
|
||||
//
|
||||
#define EFI_SW_DS_PC_ADD_MEMORY_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_SW_DS_PC_ALLOCATE_MEMORY_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
#define EFI_SW_DS_PC_FREE_MEMORY_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000002)
|
||||
#define EFI_SW_DS_PC_REMOVE_MEMORY_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000003)
|
||||
#define EFI_SW_DS_PC_GET_MEMORY_SPACE_DESCRIPTOR (EFI_SUBCLASS_SPECIFIC | 0x00000004)
|
||||
#define EFI_SW_DS_PC_SET_MEMORY_SPACE_ATTRIBUTES (EFI_SUBCLASS_SPECIFIC | 0x00000005)
|
||||
#define EFI_SW_DS_PC_GET_MEMORY_SPACE_MAP (EFI_SUBCLASS_SPECIFIC | 0x00000006)
|
||||
#define EFI_SW_DS_PC_ADD_IO_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000007)
|
||||
#define EFI_SW_DS_PC_ALLOCATE_IO_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000008)
|
||||
#define EFI_SW_DS_PC_FREE_IO_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000009)
|
||||
#define EFI_SW_DS_PC_REMOVE_IO_SPACE (EFI_SUBCLASS_SPECIFIC | 0x0000000A)
|
||||
#define EFI_SW_DS_PC_GET_IO_SPACE_DESCRIPTOR (EFI_SUBCLASS_SPECIFIC | 0x0000000B)
|
||||
#define EFI_SW_DS_PC_GET_IO_SPACE_MAP (EFI_SUBCLASS_SPECIFIC | 0x0000000C)
|
||||
#define EFI_SW_DS_PC_DISPATCH (EFI_SUBCLASS_SPECIFIC | 0x0000000D)
|
||||
#define EFI_SW_DS_PC_SCHEDULE (EFI_SUBCLASS_SPECIFIC | 0x0000000E)
|
||||
#define EFI_SW_DS_PC_TRUST (EFI_SUBCLASS_SPECIFIC | 0x0000000F)
|
||||
#define EFI_SW_DS_PC_PROCESS_FIRMWARE_VOLUME (EFI_SUBCLASS_SPECIFIC | 0x00000010)
|
||||
|
||||
//
|
||||
// Software Class Error Code definitions.
|
||||
// These are shared by all subclasses.
|
||||
//
|
||||
#define EFI_SW_EC_NON_SPECIFIC 0x00000000
|
||||
#define EFI_SW_EC_LOAD_ERROR 0x00000001
|
||||
#define EFI_SW_EC_INVALID_PARAMETER 0x00000002
|
||||
#define EFI_SW_EC_UNSUPPORTED 0x00000003
|
||||
#define EFI_SW_EC_INVALID_BUFFER 0x00000004
|
||||
#define EFI_SW_EC_OUT_OF_RESOURCES 0x00000005
|
||||
#define EFI_SW_EC_ABORTED 0x00000006
|
||||
#define EFI_SW_EC_ILLEGAL_SOFTWARE_STATE 0x00000007
|
||||
#define EFI_SW_EC_ILLEGAL_HARDWARE_STATE 0x00000008
|
||||
#define EFI_SW_EC_START_ERROR 0x00000009
|
||||
#define EFI_SW_EC_BAD_DATE_TIME 0x0000000A
|
||||
#define EFI_SW_EC_CFG_INVALID 0x0000000B
|
||||
#define EFI_SW_EC_CFG_CLR_REQUEST 0x0000000C
|
||||
#define EFI_SW_EC_CFG_DEFAULT 0x0000000D
|
||||
#define EFI_SW_EC_PWD_INVALID 0x0000000E
|
||||
#define EFI_SW_EC_PWD_CLR_REQUEST 0x0000000F
|
||||
#define EFI_SW_EC_PWD_CLEARED 0x00000010
|
||||
#define EFI_SW_EC_EVENT_LOG_FULL 0x00000011
|
||||
|
||||
//
|
||||
// Software Class Unspecified Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// Software Class SEC Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// Software Class PEI Core Subclass Error Code definitions.
|
||||
//
|
||||
#define EFI_SW_PEI_CORE_EC_DXE_CORRUPT (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
|
||||
//
|
||||
// Software Class PEI Module Subclass Error Code definitions.
|
||||
//
|
||||
#define EFI_SW_PEIM_EC_NO_RECOVERY_CAPSULE (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
#define EFI_SW_PEIM_EC_INVALID_CAPSULE_DESCRIPTOR (EFI_SUBCLASS_SPECIFIC | 0x00000001)
|
||||
|
||||
//
|
||||
// Software Class DXE Core Subclass Error Code definitions.
|
||||
//
|
||||
#define EFI_SW_CSM_LEGACY_ROM_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
//
|
||||
// Software Class DXE Boot Service Driver Subclass Error Code definitions.
|
||||
//
|
||||
#define EFI_SW_DXE_BS_EC_LEGACY_OPROM_NO_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000000)
|
||||
|
||||
//
|
||||
// Software Class DXE Runtime Service Driver Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// Software Class SMM Driver Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// Software Class EFI Application Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// Software Class EFI OS Loader Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// Software Class EFI RT Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// Software Class EFI AL Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// Software Class EBC Exception Subclass Error Code definitions.
|
||||
// These exceptions are derived from the debug protocol definitions in the EFI
|
||||
// specification.
|
||||
//
|
||||
#define EFI_SW_EC_EBC_UNDEFINED 0x00000000
|
||||
#define EFI_SW_EC_EBC_DIVIDE_ERROR EXCEPT_EBC_DIVIDE_ERROR
|
||||
#define EFI_SW_EC_EBC_DEBUG EXCEPT_EBC_DEBUG
|
||||
#define EFI_SW_EC_EBC_BREAKPOINT EXCEPT_EBC_BREAKPOINT
|
||||
#define EFI_SW_EC_EBC_OVERFLOW EXCEPT_EBC_OVERFLOW
|
||||
#define EFI_SW_EC_EBC_INVALID_OPCODE EXCEPT_EBC_INVALID_OPCODE
|
||||
#define EFI_SW_EC_EBC_STACK_FAULT EXCEPT_EBC_STACK_FAULT
|
||||
#define EFI_SW_EC_EBC_ALIGNMENT_CHECK EXCEPT_EBC_ALIGNMENT_CHECK
|
||||
#define EFI_SW_EC_EBC_INSTRUCTION_ENCODING EXCEPT_EBC_INSTRUCTION_ENCODING
|
||||
#define EFI_SW_EC_EBC_BAD_BREAK EXCEPT_EBC_BAD_BREAK
|
||||
#define EFI_SW_EC_EBC_STEP EXCEPT_EBC_STEP
|
||||
|
||||
//
|
||||
// Software Class IA32 Exception Subclass Error Code definitions.
|
||||
// These exceptions are derived from the debug protocol definitions in the EFI
|
||||
// specification.
|
||||
//
|
||||
#define EFI_SW_EC_IA32_DIVIDE_ERROR EXCEPT_IA32_DIVIDE_ERROR
|
||||
#define EFI_SW_EC_IA32_DEBUG EXCEPT_IA32_DEBUG
|
||||
#define EFI_SW_EC_IA32_NMI EXCEPT_IA32_NMI
|
||||
#define EFI_SW_EC_IA32_BREAKPOINT EXCEPT_IA32_BREAKPOINT
|
||||
#define EFI_SW_EC_IA32_OVERFLOW EXCEPT_IA32_OVERFLOW
|
||||
#define EFI_SW_EC_IA32_BOUND EXCEPT_IA32_BOUND
|
||||
#define EFI_SW_EC_IA32_INVALID_OPCODE EXCEPT_IA32_INVALID_OPCODE
|
||||
#define EFI_SW_EC_IA32_DOUBLE_FAULT EXCEPT_IA32_DOUBLE_FAULT
|
||||
#define EFI_SW_EC_IA32_INVALID_TSS EXCEPT_IA32_INVALID_TSS
|
||||
#define EFI_SW_EC_IA32_SEG_NOT_PRESENT EXCEPT_IA32_SEG_NOT_PRESENT
|
||||
#define EFI_SW_EC_IA32_STACK_FAULT EXCEPT_IA32_STACK_FAULT
|
||||
#define EFI_SW_EC_IA32_GP_FAULT EXCEPT_IA32_GP_FAULT
|
||||
#define EFI_SW_EC_IA32_PAGE_FAULT EXCEPT_IA32_PAGE_FAULT
|
||||
#define EFI_SW_EC_IA32_FP_ERROR EXCEPT_IA32_FP_ERROR
|
||||
#define EFI_SW_EC_IA32_ALIGNMENT_CHECK EXCEPT_IA32_ALIGNMENT_CHECK
|
||||
#define EFI_SW_EC_IA32_MACHINE_CHECK EXCEPT_IA32_MACHINE_CHECK
|
||||
#define EFI_SW_EC_IA32_SIMD EXCEPT_IA32_SIMD
|
||||
|
||||
//
|
||||
// Software Class IPF Exception Subclass Error Code definitions.
|
||||
// These exceptions are derived from the debug protocol definitions in the EFI
|
||||
// specification.
|
||||
//
|
||||
#define EFI_SW_EC_IPF_ALT_DTLB EXCEPT_IPF_ALT_DTLB
|
||||
#define EFI_SW_EC_IPF_DNESTED_TLB EXCEPT_IPF_DNESTED_TLB
|
||||
#define EFI_SW_EC_IPF_BREAKPOINT EXCEPT_IPF_BREAKPOINT
|
||||
#define EFI_SW_EC_IPF_EXTERNAL_INTERRUPT EXCEPT_IPF_EXTERNAL_INTERRUPT
|
||||
#define EFI_SW_EC_IPF_GEN_EXCEPT EXCEPT_IPF_GEN_EXCEPT
|
||||
#define EFI_SW_EC_IPF_NAT_CONSUMPTION EXCEPT_IPF_NAT_CONSUMPTION
|
||||
#define EFI_SW_EC_IPF_DEBUG_EXCEPT EXCEPT_IPF_DEBUG_EXCEPT
|
||||
#define EFI_SW_EC_IPF_UNALIGNED_ACCESS EXCEPT_IPF_UNALIGNED_ACCESS
|
||||
#define EFI_SW_EC_IPF_FP_FAULT EXCEPT_IPF_FP_FAULT
|
||||
#define EFI_SW_EC_IPF_FP_TRAP EXCEPT_IPF_FP_TRAP
|
||||
#define EFI_SW_EC_IPF_TAKEN_BRANCH EXCEPT_IPF_TAKEN_BRANCH
|
||||
#define EFI_SW_EC_IPF_SINGLE_STEP EXCEPT_IPF_SINGLE_STEP
|
||||
|
||||
//
|
||||
// Software Class PEI Service Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// Software Class EFI Boot Service Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// Software Class EFI Runtime Service Subclass Error Code definitions.
|
||||
//
|
||||
//
|
||||
// Software Class EFI DXE Service Subclass Error Code definitions.
|
||||
//
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Section 7
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Debug Code definitions for all classes and subclass
|
||||
// Only one debug code is defined at this point and should
|
||||
// be used for anything that gets sent to debug stream.
|
||||
//
|
||||
#define EFI_DC_UNSPECIFIED 0x0
|
||||
|
||||
#endif
|
336
Tools/Source/TianoTools/Include/Common/StatusCodeDataTypeId.h
Normal file
336
Tools/Source/TianoTools/Include/Common/StatusCodeDataTypeId.h
Normal file
@@ -0,0 +1,336 @@
|
||||
/** @file
|
||||
This file defines the data structures to support Status Code Data.
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. 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.
|
||||
|
||||
Module Name: StatusCodeDataTypeId.h
|
||||
|
||||
@par Revision Reference:
|
||||
These definitions are from Framework of EFI Status Code Spec
|
||||
Version 0.92.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __STATUS_CODE_DATA_TYPE_ID_H__
|
||||
#define __STATUS_CODE_DATA_TYPE_ID_H__
|
||||
|
||||
|
||||
///
|
||||
/// The size of string
|
||||
///
|
||||
#define EFI_STATUS_CODE_DATA_MAX_STRING_SIZE 150
|
||||
|
||||
///
|
||||
/// This is the max data size including all the headers which can be passed
|
||||
/// as Status Code data. This data should be multiple of 8 byte
|
||||
/// to avoid any kind of boundary issue. Also, sum of this data size (inclusive
|
||||
/// of size of EFI_STATUS_CODE_DATA should not exceed the max record size of
|
||||
/// data hub
|
||||
///
|
||||
#define EFI_STATUS_CODE_DATA_MAX_SIZE 200
|
||||
|
||||
#pragma pack(1)
|
||||
typedef enum {
|
||||
EfiStringAscii,
|
||||
EfiStringUnicode,
|
||||
EfiStringToken
|
||||
} EFI_STRING_TYPE;
|
||||
|
||||
typedef struct {
|
||||
EFI_HII_HANDLE Handle;
|
||||
STRING_REF Token;
|
||||
} EFI_STATUS_CODE_STRING_TOKEN;
|
||||
|
||||
typedef union {
|
||||
CHAR8 *Ascii;
|
||||
CHAR16 *Unicode;
|
||||
EFI_STATUS_CODE_STRING_TOKEN Hii;
|
||||
} EFI_STATUS_CODE_STRING;
|
||||
|
||||
typedef struct {
|
||||
EFI_STATUS_CODE_DATA DataHeader;
|
||||
EFI_STRING_TYPE StringType;
|
||||
EFI_STATUS_CODE_STRING String;
|
||||
} EFI_STATUS_CODE_STRING_DATA;
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
typedef struct {
|
||||
UINT32 ErrorLevel;
|
||||
//
|
||||
// 12 * sizeof (UINT64) Var Arg stack
|
||||
//
|
||||
// ascii DEBUG () Format string
|
||||
//
|
||||
} EFI_DEBUG_INFO;
|
||||
|
||||
#pragma pack()
|
||||
|
||||
//
|
||||
// declaration for EFI_EXP_DATA. This may change
|
||||
//
|
||||
// typedef UINTN EFI_EXP_DATA;
|
||||
|
||||
///
|
||||
/// Voltage Extended Error Data
|
||||
///
|
||||
typedef struct {
|
||||
EFI_STATUS_CODE_DATA DataHeader;
|
||||
EFI_EXP_BASE10_DATA Voltage;
|
||||
EFI_EXP_BASE10_DATA Threshold;
|
||||
} EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA;
|
||||
|
||||
///
|
||||
/// Microcode Update Extended Error Data
|
||||
///
|
||||
typedef struct {
|
||||
EFI_STATUS_CODE_DATA DataHeader;
|
||||
UINT32 Version;
|
||||
} EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA;
|
||||
|
||||
///
|
||||
/// Asynchronous Timer Extended Error Data
|
||||
///
|
||||
typedef struct {
|
||||
EFI_STATUS_CODE_DATA DataHeader;
|
||||
EFI_EXP_BASE10_DATA TimerLimit;
|
||||
} EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA;
|
||||
|
||||
///
|
||||
/// Host Processor Mismatch Extended Error Data
|
||||
///
|
||||
typedef struct {
|
||||
EFI_STATUS_CODE_DATA DataHeader;
|
||||
UINT32 Instance;
|
||||
UINT16 Attributes;
|
||||
} EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA;
|
||||
|
||||
//
|
||||
// EFI_COMPUTING_UNIT_MISMATCH_ATTRIBUTES
|
||||
// All other attributes are reserved for future use and
|
||||
// must be initialized to 0.
|
||||
//
|
||||
#define EFI_COMPUTING_UNIT_MISMATCH_SPEED 0x0001
|
||||
#define EFI_COMPUTING_UNIT_MISMATCH_FSB_SPEED 0x0002
|
||||
#define EFI_COMPUTING_UNIT_MISMATCH_FAMILY 0x0004
|
||||
#define EFI_COMPUTING_UNIT_MISMATCH_MODEL 0x0008
|
||||
#define EFI_COMPUTING_UNIT_MISMATCH_STEPPING 0x0010
|
||||
#define EFI_COMPUTING_UNIT_MISMATCH_CACHE_SIZE 0x0020
|
||||
#define EFI_COMPUTING_UNIT_MISMATCH_OEM1 0x1000
|
||||
#define EFI_COMPUTING_UNIT_MISMATCH_OEM2 0x2000
|
||||
#define EFI_COMPUTING_UNIT_MISMATCH_OEM3 0x4000
|
||||
#define EFI_COMPUTING_UNIT_MISMATCH_OEM4 0x8000
|
||||
|
||||
///
|
||||
/// Thermal Extended Error Data
|
||||
///
|
||||
typedef struct {
|
||||
EFI_STATUS_CODE_DATA DataHeader;
|
||||
EFI_EXP_BASE10_DATA Temperature;
|
||||
EFI_EXP_BASE10_DATA Threshold;
|
||||
} EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA;
|
||||
|
||||
///
|
||||
/// Processor Disabled Extended Error Data
|
||||
///
|
||||
typedef struct {
|
||||
EFI_STATUS_CODE_DATA DataHeader;
|
||||
UINT32 Cause;
|
||||
BOOLEAN SoftwareDisabled;
|
||||
} EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA;
|
||||
|
||||
typedef enum {
|
||||
EfiInitCacheDataOnly,
|
||||
EfiInitCacheInstrOnly,
|
||||
EfiInitCacheBoth,
|
||||
EfiInitCacheUnspecified
|
||||
} EFI_INIT_CACHE_TYPE;
|
||||
|
||||
///
|
||||
/// Embedded cache init extended data
|
||||
///
|
||||
typedef struct {
|
||||
EFI_STATUS_CODE_DATA DataHeader;
|
||||
UINT32 Level;
|
||||
EFI_INIT_CACHE_TYPE Type;
|
||||
} EFI_CACHE_INIT_DATA;
|
||||
|
||||
//
|
||||
// Memory Extended Error Data
|
||||
//
|
||||
|
||||
///
|
||||
/// Memory Error Granularity Definition
|
||||
///
|
||||
typedef UINT8 EFI_MEMORY_ERROR_GRANULARITY;
|
||||
|
||||
///
|
||||
/// Memory Error Operation Definition
|
||||
///
|
||||
typedef UINT8 EFI_MEMORY_ERROR_OPERATION;
|
||||
|
||||
typedef struct {
|
||||
EFI_STATUS_CODE_DATA DataHeader;
|
||||
EFI_MEMORY_ERROR_GRANULARITY Granularity;
|
||||
EFI_MEMORY_ERROR_OPERATION Operation;
|
||||
UINTN Syndrome;
|
||||
EFI_PHYSICAL_ADDRESS Address;
|
||||
UINTN Resolution;
|
||||
} EFI_MEMORY_EXTENDED_ERROR_DATA;
|
||||
|
||||
//
|
||||
// Memory Error Granularities
|
||||
//
|
||||
#define EFI_MEMORY_ERROR_OTHER 0x01
|
||||
#define EFI_MEMORY_ERROR_UNKNOWN 0x02
|
||||
#define EFI_MEMORY_ERROR_DEVICE 0x03
|
||||
#define EFI_MEMORY_ERROR_PARTITION 0x04
|
||||
|
||||
//
|
||||
// Memory Error Operations
|
||||
//
|
||||
#define EFI_MEMORY_OPERATION_OTHER 0x01
|
||||
#define EFI_MEMORY_OPERATION_UNKNOWN 0x02
|
||||
#define EFI_MEMORY_OPERATION_READ 0x03
|
||||
#define EFI_MEMORY_OPERATION_WRITE 0x04
|
||||
#define EFI_MEMORY_OPERATION_PARTIAL_WRITE 0x05
|
||||
|
||||
//
|
||||
// Define shorthands to describe Group Operations
|
||||
// Many memory init operations are essentially group
|
||||
// operations.
|
||||
|
||||
/// A shorthand to describe that the operation is performed
|
||||
/// on multiple devices within the array
|
||||
///
|
||||
#define EFI_MULTIPLE_MEMORY_DEVICE_OPERATION 0xfffe
|
||||
///
|
||||
/// A shorthand to describe that the operation is performed on all devices within the array
|
||||
///
|
||||
#define EFI_ALL_MEMORY_DEVICE_OPERATION 0xffff
|
||||
///
|
||||
/// A shorthand to describe that the operation is performed on multiple arrays
|
||||
///
|
||||
#define EFI_MULTIPLE_MEMORY_ARRAY_OPERATION 0xfffe
|
||||
///
|
||||
/// A shorthand to describe that the operation is performed on all the arrays
|
||||
///
|
||||
#define EFI_ALL_MEMORY_ARRAY_OPERATION 0xffff
|
||||
|
||||
//
|
||||
// DIMM number
|
||||
//
|
||||
#pragma pack(1)
|
||||
typedef struct {
|
||||
EFI_STATUS_CODE_DATA DataHeader;
|
||||
UINT16 Array;
|
||||
UINT16 Device;
|
||||
} EFI_STATUS_CODE_DIMM_NUMBER;
|
||||
#pragma pack()
|
||||
|
||||
///
|
||||
/// Memory Module Mismatch Extended Error Data
|
||||
///
|
||||
typedef struct {
|
||||
EFI_STATUS_CODE_DATA DataHeader;
|
||||
EFI_STATUS_CODE_DIMM_NUMBER Instance;
|
||||
} EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA;
|
||||
|
||||
///
|
||||
/// Memory Range Extended Data
|
||||
///
|
||||
typedef struct {
|
||||
EFI_STATUS_CODE_DATA DataHeader;
|
||||
EFI_PHYSICAL_ADDRESS Start;
|
||||
EFI_PHYSICAL_ADDRESS Length;
|
||||
} EFI_MEMORY_RANGE_EXTENDED_DATA;
|
||||
|
||||
///
|
||||
/// Device handle Extended Data. Used for many
|
||||
/// errors and progress codes to point to the device.
|
||||
///
|
||||
typedef struct {
|
||||
EFI_STATUS_CODE_DATA DataHeader;
|
||||
EFI_HANDLE Handle;
|
||||
} EFI_DEVICE_HANDLE_EXTENDED_DATA;
|
||||
|
||||
typedef struct {
|
||||
EFI_STATUS_CODE_DATA DataHeader;
|
||||
UINT8 *DevicePath;
|
||||
} EFI_DEVICE_PATH_EXTENDED_DATA;
|
||||
|
||||
typedef struct {
|
||||
EFI_STATUS_CODE_DATA DataHeader;
|
||||
EFI_HANDLE ControllerHandle;
|
||||
EFI_HANDLE DriverBindingHandle;
|
||||
UINT16 DevicePathSize;
|
||||
UINT8 *RemainingDevicePath;
|
||||
} EFI_STATUS_CODE_START_EXTENDED_DATA;
|
||||
|
||||
///
|
||||
/// Resource Allocation Failure Extended Error Data
|
||||
///
|
||||
|
||||
/*
|
||||
typedef struct {
|
||||
EFI_STATUS_CODE_DATA DataHeader;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
UINT32 Bar;
|
||||
VOID *ReqRes;
|
||||
VOID *AllocRes;
|
||||
} EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA;
|
||||
*/
|
||||
typedef struct {
|
||||
EFI_STATUS_CODE_DATA DataHeader;
|
||||
UINT32 Bar;
|
||||
UINT16 DevicePathSize;
|
||||
UINT16 ReqResSize;
|
||||
UINT16 AllocResSize;
|
||||
UINT8 *DevicePath;
|
||||
UINT8 *ReqRes;
|
||||
UINT8 *AllocRes;
|
||||
} EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA;
|
||||
|
||||
///
|
||||
/// Extended Error Data for Assert
|
||||
///
|
||||
typedef struct {
|
||||
EFI_STATUS_CODE_DATA DataHeader;
|
||||
UINT32 LineNumber;
|
||||
UINT32 FileNameSize;
|
||||
EFI_STATUS_CODE_STRING_DATA *FileName;
|
||||
} EFI_DEBUG_ASSERT_DATA;
|
||||
|
||||
///
|
||||
/// System Context Data EBC/IA32/IPF
|
||||
///
|
||||
typedef union {
|
||||
EFI_SYSTEM_CONTEXT_EBC SystemContextEbc;
|
||||
EFI_SYSTEM_CONTEXT_IA32 SystemContextIa32;
|
||||
EFI_SYSTEM_CONTEXT_IPF SystemContextIpf;
|
||||
} EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT;
|
||||
|
||||
typedef struct {
|
||||
EFI_STATUS_CODE_DATA DataHeader;
|
||||
EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT Context;
|
||||
} EFI_STATUS_CODE_EXCEP_EXTENDED_DATA;
|
||||
|
||||
///
|
||||
/// Legacy Oprom extended data
|
||||
///
|
||||
typedef struct {
|
||||
EFI_STATUS_CODE_DATA DataHeader;
|
||||
EFI_HANDLE DeviceHandle;
|
||||
EFI_PHYSICAL_ADDRESS RomImageBase;
|
||||
} EFI_LEGACY_OPROM_EXTENDED_DATA;
|
||||
|
||||
#endif
|
85
Tools/Source/TianoTools/Include/Common/UefiBaseTypes.h
Normal file
85
Tools/Source/TianoTools/Include/Common/UefiBaseTypes.h
Normal file
@@ -0,0 +1,85 @@
|
||||
/** @file
|
||||
This file makes the BaseTypes.h backward compatible with the ones used in the
|
||||
past for EFI and Tiano development. It's mostly just prepending an EFI_ on the
|
||||
definitions.
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. 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.
|
||||
|
||||
Module Name: UefiBaseTypes.h
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __UEFI_BASE_TYPES_H__
|
||||
#define __UEFI_BASE_TYPES_H__
|
||||
|
||||
#include <Common/BaseTypes.h>
|
||||
|
||||
typedef UINT64 EFI_LBA;
|
||||
|
||||
#define EFIERR(_a) ENCODE_ERROR(_a)
|
||||
|
||||
#define EFI_MAX_BIT MAX_BIT
|
||||
#define EFI_MAX_ADDRESS MAX_ADDRESS
|
||||
#define EFI_BREAKPOINT() CpuBreakpoint ()
|
||||
#define EFI_DEADLOOP() CpuDeadLoop ()
|
||||
#define EFI_ERROR(A) RETURN_ERROR(A)
|
||||
|
||||
typedef GUID EFI_GUID;
|
||||
typedef RETURN_STATUS EFI_STATUS;
|
||||
|
||||
#define EFI_SUCCESS RETURN_SUCCESS
|
||||
#define EFI_LOAD_ERROR RETURN_LOAD_ERROR
|
||||
#define EFI_INVALID_PARAMETER RETURN_INVALID_PARAMETER
|
||||
#define EFI_UNSUPPORTED RETURN_UNSUPPORTED
|
||||
#define EFI_BAD_BUFFER_SIZE RETURN_BAD_BUFFER_SIZE
|
||||
#define EFI_BUFFER_TOO_SMALL RETURN_BUFFER_TOO_SMALL
|
||||
#define EFI_NOT_READY RETURN_NOT_READY
|
||||
#define EFI_DEVICE_ERROR RETURN_DEVICE_ERROR
|
||||
#define EFI_WRITE_PROTECTED RETURN_WRITE_PROTECTED
|
||||
#define EFI_OUT_OF_RESOURCES RETURN_OUT_OF_RESOURCES
|
||||
#define EFI_VOLUME_CORRUPTED RETURN_VOLUME_CORRUPTED
|
||||
#define EFI_VOLUME_FULL RETURN_VOLUME_FULL
|
||||
#define EFI_NO_MEDIA RETURN_NO_MEDIA
|
||||
#define EFI_MEDIA_CHANGED RETURN_MEDIA_CHANGED
|
||||
#define EFI_NOT_FOUND RETURN_NOT_FOUND
|
||||
#define EFI_ACCESS_DENIED RETURN_ACCESS_DENIED
|
||||
#define EFI_NO_RESPONSE RETURN_NO_RESPONSE
|
||||
#define EFI_NO_MAPPING RETURN_NO_MAPPING
|
||||
#define EFI_TIMEOUT RETURN_TIMEOUT
|
||||
#define EFI_NOT_STARTED RETURN_NOT_STARTED
|
||||
#define EFI_ALREADY_STARTED RETURN_ALREADY_STARTED
|
||||
#define EFI_ABORTED RETURN_ABORTED
|
||||
#define EFI_ICMP_ERROR RETURN_ICMP_ERROR
|
||||
#define EFI_TFTP_ERROR RETURN_TFTP_ERROR
|
||||
#define EFI_PROTOCOL_ERROR RETURN_PROTOCOL_ERROR
|
||||
#define EFI_INCOMPATIBLE_VERSION RETURN_INCOMPATIBLE_VERSION
|
||||
#define EFI_SECURITY_VIOLATION RETURN_SECURITY_VIOLATION
|
||||
#define EFI_CRC_ERROR RETURN_CRC_ERROR
|
||||
#define EFI_END_OF_MEDIA RETURN_END_OF_MEDIA
|
||||
#define EFI_END_OF_FILE RETURN_END_OF_FILE
|
||||
|
||||
#define EFI_WARN_UNKNOWN_GLYPH RETURN_WARN_UNKNOWN_GLYPH
|
||||
#define EFI_WARN_DELETE_FAILURE RETURN_WARN_DELETE_FAILURE
|
||||
#define EFI_WARN_WRITE_FAILURE RETURN_WARN_WRITE_FAILURE
|
||||
#define EFI_WARN_BUFFER_TOO_SMALL RETURN_WARN_BUFFER_TOO_SMALL
|
||||
|
||||
//
|
||||
// The EFI memory allocation functions work in units of EFI_PAGEs that are
|
||||
// 4K. This should in no way be confused with the page size of the processor.
|
||||
// An EFI_PAGE is just the quanta of memory in EFI.
|
||||
//
|
||||
#define EFI_PAGE_MASK 0xFFF
|
||||
#define EFI_PAGE_SHIFT 12
|
||||
|
||||
#define EFI_SIZE_TO_PAGES(a) (((a) >> EFI_PAGE_SHIFT) + (((a) & EFI_PAGE_MASK) ? 1 : 0))
|
||||
|
||||
#define EFI_PAGES_TO_SIZE(a) ( (a) << EFI_PAGE_SHIFT)
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user