MdePkg: Apply uncrustify changes

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737

Apply uncrustify changes to .c/.h files in the MdePkg package

Cc: Andrew Fish <afish@apple.com>
Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
This commit is contained in:
Michael Kubacki
2021-12-05 14:54:05 -08:00
committed by mergify[bot]
parent 1436aea4d5
commit 2f88bd3a12
975 changed files with 55681 additions and 57790 deletions

View File

@ -20,11 +20,11 @@
// //
// Make sure we are using the correct packing rules per EFI specification // Make sure we are using the correct packing rules per EFI specification
// //
#if !defined(__GNUC__) && !defined(__ASSEMBLER__) #if !defined (__GNUC__) && !defined (__ASSEMBLER__)
#pragma pack() #pragma pack()
#endif #endif
#if defined(_MSC_EXTENSIONS) #if defined (_MSC_EXTENSIONS)
// //
// Disable some level 4 compilation warnings (same as IA32 and X64) // Disable some level 4 compilation warnings (same as IA32 and X64)
@ -33,75 +33,75 @@
// //
// Disabling bitfield type checking warnings. // Disabling bitfield type checking warnings.
// //
#pragma warning ( disable : 4214 ) #pragma warning ( disable : 4214 )
// //
// Disabling the unreferenced formal parameter warnings. // Disabling the unreferenced formal parameter warnings.
// //
#pragma warning ( disable : 4100 ) #pragma warning ( disable : 4100 )
// //
// Disable slightly different base types warning as CHAR8 * can not be set // Disable slightly different base types warning as CHAR8 * can not be set
// to a constant string. // to a constant string.
// //
#pragma warning ( disable : 4057 ) #pragma warning ( disable : 4057 )
// //
// ASSERT(FALSE) or while (TRUE) are legal constructs so suppress this warning // ASSERT(FALSE) or while (TRUE) are legal constructs so suppress this warning
// //
#pragma warning ( disable : 4127 ) #pragma warning ( disable : 4127 )
// //
// This warning is caused by functions defined but not used. For precompiled header only. // This warning is caused by functions defined but not used. For precompiled header only.
// //
#pragma warning ( disable : 4505 ) #pragma warning ( disable : 4505 )
// //
// This warning is caused by empty (after preprocessing) source file. For precompiled header only. // This warning is caused by empty (after preprocessing) source file. For precompiled header only.
// //
#pragma warning ( disable : 4206 ) #pragma warning ( disable : 4206 )
// //
// Disable 'potentially uninitialized local variable X used' warnings // Disable 'potentially uninitialized local variable X used' warnings
// //
#pragma warning ( disable : 4701 ) #pragma warning ( disable : 4701 )
// //
// Disable 'potentially uninitialized local pointer variable X used' warnings // Disable 'potentially uninitialized local pointer variable X used' warnings
// //
#pragma warning ( disable : 4703 ) #pragma warning ( disable : 4703 )
// //
// use Microsoft* C compiler dependent integer width types // use Microsoft* C compiler dependent integer width types
// //
typedef unsigned __int64 UINT64; typedef unsigned __int64 UINT64;
typedef __int64 INT64; typedef __int64 INT64;
typedef unsigned __int32 UINT32; typedef unsigned __int32 UINT32;
typedef __int32 INT32; typedef __int32 INT32;
typedef unsigned short UINT16; typedef unsigned short UINT16;
typedef unsigned short CHAR16; typedef unsigned short CHAR16;
typedef short INT16; typedef short INT16;
typedef unsigned char BOOLEAN; typedef unsigned char BOOLEAN;
typedef unsigned char UINT8; typedef unsigned char UINT8;
typedef char CHAR8; typedef char CHAR8;
typedef signed char INT8; typedef signed char INT8;
#else #else
// //
// Assume standard AARCH64 alignment. // Assume standard AARCH64 alignment.
// //
typedef unsigned long long UINT64; typedef unsigned long long UINT64;
typedef long long INT64; typedef long long INT64;
typedef unsigned int UINT32; typedef unsigned int UINT32;
typedef int INT32; typedef int INT32;
typedef unsigned short UINT16; typedef unsigned short UINT16;
typedef unsigned short CHAR16; typedef unsigned short CHAR16;
typedef short INT16; typedef short INT16;
typedef unsigned char BOOLEAN; typedef unsigned char BOOLEAN;
typedef unsigned char UINT8; typedef unsigned char UINT8;
typedef char CHAR8; typedef char CHAR8;
typedef signed char INT8; typedef signed char INT8;
#endif #endif
@ -109,13 +109,13 @@
/// Unsigned value of native width. (4 bytes on supported 32-bit processor instructions, /// Unsigned value of native width. (4 bytes on supported 32-bit processor instructions,
/// 8 bytes on supported 64-bit processor instructions) /// 8 bytes on supported 64-bit processor instructions)
/// ///
typedef UINT64 UINTN; typedef UINT64 UINTN;
/// ///
/// Signed value of native width. (4 bytes on supported 32-bit processor instructions, /// Signed value of native width. (4 bytes on supported 32-bit processor instructions,
/// 8 bytes on supported 64-bit processor instructions) /// 8 bytes on supported 64-bit processor instructions)
/// ///
typedef INT64 INTN; typedef INT64 INTN;
// //
// Processor specific defines // Processor specific defines
@ -124,7 +124,7 @@ typedef INT64 INTN;
/// ///
/// A value of native width with the highest bit set. /// A value of native width with the highest bit set.
/// ///
#define MAX_BIT 0x8000000000000000ULL #define MAX_BIT 0x8000000000000000ULL
/// ///
/// A value of native width with the two highest bits set. /// A value of native width with the two highest bits set.
@ -134,12 +134,12 @@ typedef INT64 INTN;
/// ///
/// Maximum legal AARCH64 address /// Maximum legal AARCH64 address
/// ///
#define MAX_ADDRESS 0xFFFFFFFFFFFFFFFFULL #define MAX_ADDRESS 0xFFFFFFFFFFFFFFFFULL
/// ///
/// Maximum usable address at boot time (48 bits using 4 KB pages) /// Maximum usable address at boot time (48 bits using 4 KB pages)
/// ///
#define MAX_ALLOC_ADDRESS 0xFFFFFFFFFFFFULL #define MAX_ALLOC_ADDRESS 0xFFFFFFFFFFFFULL
/// ///
/// Maximum legal AArch64 INTN and UINTN values. /// Maximum legal AArch64 INTN and UINTN values.
@ -150,7 +150,7 @@ typedef INT64 INTN;
/// ///
/// Minimum legal AArch64 INTN value. /// Minimum legal AArch64 INTN value.
/// ///
#define MIN_INTN (((INTN)-9223372036854775807LL) - 1) #define MIN_INTN (((INTN)-9223372036854775807LL) - 1)
/// ///
/// The stack alignment required for AARCH64 /// The stack alignment required for AARCH64
@ -160,8 +160,8 @@ typedef INT64 INTN;
/// ///
/// Page allocation granularity for AARCH64 /// Page allocation granularity for AARCH64
/// ///
#define DEFAULT_PAGE_ALLOCATION_GRANULARITY (0x1000) #define DEFAULT_PAGE_ALLOCATION_GRANULARITY (0x1000)
#define RUNTIME_PAGE_ALLOCATION_GRANULARITY (0x10000) #define RUNTIME_PAGE_ALLOCATION_GRANULARITY (0x10000)
// //
// Modifier to ensure that all protocol member functions and EFI intrinsics // Modifier to ensure that all protocol member functions and EFI intrinsics
@ -172,18 +172,18 @@ typedef INT64 INTN;
// When compiling with Clang, we still use GNU as for the assembler, so we still // When compiling with Clang, we still use GNU as for the assembler, so we still
// need to define the GCC_ASM* macros. // need to define the GCC_ASM* macros.
#if defined(__GNUC__) || defined(__clang__) #if defined (__GNUC__) || defined (__clang__)
/// ///
/// For GNU assembly code, .global or .globl can declare global symbols. /// For GNU assembly code, .global or .globl can declare global symbols.
/// Define this macro to unify the usage. /// Define this macro to unify the usage.
/// ///
#define ASM_GLOBAL .globl #define ASM_GLOBAL .globl
#define GCC_ASM_EXPORT(func__) \ #define GCC_ASM_EXPORT(func__) \
.global _CONCATENATE (__USER_LABEL_PREFIX__, func__) ;\ .global _CONCATENATE (__USER_LABEL_PREFIX__, func__) ;\
.type ASM_PFX(func__), %function .type ASM_PFX(func__), %function
#define GCC_ASM_IMPORT(func__) \ #define GCC_ASM_IMPORT(func__) \
.extern _CONCATENATE (__USER_LABEL_PREFIX__, func__) .extern _CONCATENATE (__USER_LABEL_PREFIX__, func__)
#endif #endif
@ -198,7 +198,7 @@ typedef INT64 INTN;
@return The pointer to the first instruction of a function given a function pointer. @return The pointer to the first instruction of a function given a function pointer.
**/ **/
#define FUNCTION_ENTRY_POINT(FunctionPointer) (VOID *)(UINTN)(FunctionPointer) #define FUNCTION_ENTRY_POINT(FunctionPointer) (VOID *)(UINTN)(FunctionPointer)
#ifndef __USER_LABEL_PREFIX__ #ifndef __USER_LABEL_PREFIX__
#define __USER_LABEL_PREFIX__ #define __USER_LABEL_PREFIX__

View File

@ -18,11 +18,11 @@
// //
// Make sure we are using the correct packing rules per EFI specification // Make sure we are using the correct packing rules per EFI specification
// //
#if !defined(__GNUC__) && !defined(__ASSEMBLER__) #if !defined (__GNUC__) && !defined (__ASSEMBLER__)
#pragma pack() #pragma pack()
#endif #endif
#if defined(_MSC_EXTENSIONS) #if defined (_MSC_EXTENSIONS)
// //
// Disable some level 4 compilation warnings (same as IA32 and X64) // Disable some level 4 compilation warnings (same as IA32 and X64)
@ -31,97 +31,97 @@
// //
// Disabling bitfield type checking warnings. // Disabling bitfield type checking warnings.
// //
#pragma warning ( disable : 4214 ) #pragma warning ( disable : 4214 )
// //
// Disabling the unreferenced formal parameter warnings. // Disabling the unreferenced formal parameter warnings.
// //
#pragma warning ( disable : 4100 ) #pragma warning ( disable : 4100 )
// //
// Disable slightly different base types warning as CHAR8 * can not be set // Disable slightly different base types warning as CHAR8 * can not be set
// to a constant string. // to a constant string.
// //
#pragma warning ( disable : 4057 ) #pragma warning ( disable : 4057 )
// //
// ASSERT(FALSE) or while (TRUE) are legal constructs so suppress this warning // ASSERT(FALSE) or while (TRUE) are legal constructs so suppress this warning
// //
#pragma warning ( disable : 4127 ) #pragma warning ( disable : 4127 )
// //
// This warning is caused by functions defined but not used. For precompiled header only. // This warning is caused by functions defined but not used. For precompiled header only.
// //
#pragma warning ( disable : 4505 ) #pragma warning ( disable : 4505 )
// //
// This warning is caused by empty (after preprocessing) source file. For precompiled header only. // This warning is caused by empty (after preprocessing) source file. For precompiled header only.
// //
#pragma warning ( disable : 4206 ) #pragma warning ( disable : 4206 )
// //
// Disable 'potentially uninitialized local variable X used' warnings // Disable 'potentially uninitialized local variable X used' warnings
// //
#pragma warning ( disable : 4701 ) #pragma warning ( disable : 4701 )
// //
// Disable 'potentially uninitialized local pointer variable X used' warnings // Disable 'potentially uninitialized local pointer variable X used' warnings
// //
#pragma warning ( disable : 4703 ) #pragma warning ( disable : 4703 )
#endif #endif
// //
// RVCT and MSFT don't support the __builtin_unreachable() macro // RVCT and MSFT don't support the __builtin_unreachable() macro
// //
#if defined(__ARMCC_VERSION) || defined(_MSC_EXTENSIONS) #if defined (__ARMCC_VERSION) || defined (_MSC_EXTENSIONS)
#define UNREACHABLE() #define UNREACHABLE()
#endif #endif
#if defined(_MSC_EXTENSIONS) #if defined (_MSC_EXTENSIONS)
// //
// use Microsoft* C compiler dependent integer width types // use Microsoft* C compiler dependent integer width types
// //
typedef unsigned __int64 UINT64; typedef unsigned __int64 UINT64;
typedef __int64 INT64; typedef __int64 INT64;
typedef unsigned __int32 UINT32; typedef unsigned __int32 UINT32;
typedef __int32 INT32; typedef __int32 INT32;
typedef unsigned short UINT16; typedef unsigned short UINT16;
typedef unsigned short CHAR16; typedef unsigned short CHAR16;
typedef short INT16; typedef short INT16;
typedef unsigned char BOOLEAN; typedef unsigned char BOOLEAN;
typedef unsigned char UINT8; typedef unsigned char UINT8;
typedef char CHAR8; typedef char CHAR8;
typedef signed char INT8; typedef signed char INT8;
#else #else
// //
// Assume standard ARM alignment. // Assume standard ARM alignment.
// Need to check portability of long long // Need to check portability of long long
// //
typedef unsigned long long UINT64; typedef unsigned long long UINT64;
typedef long long INT64; typedef long long INT64;
typedef unsigned int UINT32; typedef unsigned int UINT32;
typedef int INT32; typedef int INT32;
typedef unsigned short UINT16; typedef unsigned short UINT16;
typedef unsigned short CHAR16; typedef unsigned short CHAR16;
typedef short INT16; typedef short INT16;
typedef unsigned char BOOLEAN; typedef unsigned char BOOLEAN;
typedef unsigned char UINT8; typedef unsigned char UINT8;
typedef char CHAR8; typedef char CHAR8;
typedef signed char INT8; typedef signed char INT8;
#endif #endif
/// ///
/// Unsigned value of native width. (4 bytes on supported 32-bit processor instructions, /// Unsigned value of native width. (4 bytes on supported 32-bit processor instructions,
/// 8 bytes on supported 64-bit processor instructions) /// 8 bytes on supported 64-bit processor instructions)
/// ///
typedef UINT32 UINTN; typedef UINT32 UINTN;
/// ///
/// Signed value of native width. (4 bytes on supported 32-bit processor instructions, /// Signed value of native width. (4 bytes on supported 32-bit processor instructions,
/// 8 bytes on supported 64-bit processor instructions) /// 8 bytes on supported 64-bit processor instructions)
/// ///
typedef INT32 INTN; typedef INT32 INTN;
// //
// Processor specific defines // Processor specific defines
@ -130,12 +130,12 @@ typedef INT32 INTN;
/// ///
/// A value of native width with the highest bit set. /// A value of native width with the highest bit set.
/// ///
#define MAX_BIT 0x80000000 #define MAX_BIT 0x80000000
/// ///
/// A value of native width with the two highest bits set. /// A value of native width with the two highest bits set.
/// ///
#define MAX_2_BITS 0xC0000000 #define MAX_2_BITS 0xC0000000
/// ///
/// Maximum legal ARM address /// Maximum legal ARM address
@ -145,7 +145,7 @@ typedef INT32 INTN;
/// ///
/// Maximum usable address at boot time /// Maximum usable address at boot time
/// ///
#define MAX_ALLOC_ADDRESS MAX_ADDRESS #define MAX_ALLOC_ADDRESS MAX_ADDRESS
/// ///
/// Maximum legal ARM INTN and UINTN values. /// Maximum legal ARM INTN and UINTN values.
@ -156,7 +156,7 @@ typedef INT32 INTN;
/// ///
/// Minimum legal ARM INTN value. /// Minimum legal ARM INTN value.
/// ///
#define MIN_INTN (((INTN)-2147483647) - 1) #define MIN_INTN (((INTN)-2147483647) - 1)
/// ///
/// The stack alignment required for ARM /// The stack alignment required for ARM
@ -166,8 +166,8 @@ typedef INT32 INTN;
/// ///
/// Page allocation granularity for ARM /// Page allocation granularity for ARM
/// ///
#define DEFAULT_PAGE_ALLOCATION_GRANULARITY (0x1000) #define DEFAULT_PAGE_ALLOCATION_GRANULARITY (0x1000)
#define RUNTIME_PAGE_ALLOCATION_GRANULARITY (0x1000) #define RUNTIME_PAGE_ALLOCATION_GRANULARITY (0x1000)
// //
// Modifier to ensure that all protocol member functions and EFI intrinsics // Modifier to ensure that all protocol member functions and EFI intrinsics
@ -178,45 +178,45 @@ typedef INT32 INTN;
// When compiling with Clang, we still use GNU as for the assembler, so we still // When compiling with Clang, we still use GNU as for the assembler, so we still
// need to define the GCC_ASM* macros. // need to define the GCC_ASM* macros.
#if defined(__GNUC__) || defined(__clang__) #if defined (__GNUC__) || defined (__clang__)
/// ///
/// For GNU assembly code, .global or .globl can declare global symbols. /// For GNU assembly code, .global or .globl can declare global symbols.
/// Define this macro to unify the usage. /// Define this macro to unify the usage.
/// ///
#define ASM_GLOBAL .globl #define ASM_GLOBAL .globl
#if !defined(__APPLE__) #if !defined (__APPLE__)
/// ///
/// ARM EABI defines that the linker should not manipulate call relocations /// ARM EABI defines that the linker should not manipulate call relocations
/// (do bl/blx conversion) unless the target symbol has function type. /// (do bl/blx conversion) unless the target symbol has function type.
/// CodeSourcery 2010.09 started requiring the .type to function properly /// CodeSourcery 2010.09 started requiring the .type to function properly
/// ///
#define INTERWORK_FUNC(func__) .type ASM_PFX(func__), %function #define INTERWORK_FUNC(func__) .type ASM_PFX(func__), %function
#define GCC_ASM_EXPORT(func__) \ #define GCC_ASM_EXPORT(func__) \
.global _CONCATENATE (__USER_LABEL_PREFIX__, func__) ;\ .global _CONCATENATE (__USER_LABEL_PREFIX__, func__) ;\
.type ASM_PFX(func__), %function .type ASM_PFX(func__), %function
#define GCC_ASM_IMPORT(func__) \ #define GCC_ASM_IMPORT(func__) \
.extern _CONCATENATE (__USER_LABEL_PREFIX__, func__) .extern _CONCATENATE (__USER_LABEL_PREFIX__, func__)
#else #else
// //
// .type not supported by Apple Xcode tools // .type not supported by Apple Xcode tools
// //
#define INTERWORK_FUNC(func__) #define INTERWORK_FUNC(func__)
#define GCC_ASM_EXPORT(func__) \ #define GCC_ASM_EXPORT(func__) \
.globl _CONCATENATE (__USER_LABEL_PREFIX__, func__) \ .globl _CONCATENATE (__USER_LABEL_PREFIX__, func__) \
#define GCC_ASM_IMPORT(name) #define GCC_ASM_IMPORT(name)
#endif #endif
#elif defined(_MSC_EXTENSIONS) #elif defined (_MSC_EXTENSIONS)
// //
// PRESERVE8 is not supported by the MSFT assembler. // PRESERVE8 is not supported by the MSFT assembler.
// //
#define PRESERVE8 #define PRESERVE8
#endif #endif
/** /**
@ -229,12 +229,10 @@ typedef INT32 INTN;
@return The pointer to the first instruction of a function given a function pointer. @return The pointer to the first instruction of a function given a function pointer.
**/ **/
#define FUNCTION_ENTRY_POINT(FunctionPointer) (VOID *)(UINTN)(FunctionPointer) #define FUNCTION_ENTRY_POINT(FunctionPointer) (VOID *)(UINTN)(FunctionPointer)
#ifndef __USER_LABEL_PREFIX__ #ifndef __USER_LABEL_PREFIX__
#define __USER_LABEL_PREFIX__ #define __USER_LABEL_PREFIX__
#endif #endif
#endif #endif

File diff suppressed because it is too large Load Diff

View File

@ -24,68 +24,68 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
/// ///
/// 1-byte signed value /// 1-byte signed value
/// ///
typedef signed char INT8; typedef signed char INT8;
/// ///
/// Logical Boolean. 1-byte value containing 0 for FALSE or a 1 for TRUE. Other /// Logical Boolean. 1-byte value containing 0 for FALSE or a 1 for TRUE. Other
/// values are undefined. /// values are undefined.
/// ///
typedef unsigned char BOOLEAN; typedef unsigned char BOOLEAN;
/// ///
/// 1-byte unsigned value. /// 1-byte unsigned value.
/// ///
typedef unsigned char UINT8; typedef unsigned char UINT8;
/// ///
/// 1-byte Character. /// 1-byte Character.
/// ///
typedef char CHAR8; typedef char CHAR8;
/// ///
/// 2-byte signed value. /// 2-byte signed value.
/// ///
typedef short INT16; typedef short INT16;
/// ///
/// 2-byte unsigned value. /// 2-byte unsigned value.
/// ///
typedef unsigned short UINT16; typedef unsigned short UINT16;
/// ///
/// 2-byte Character. Unless otherwise specified all strings are stored in the /// 2-byte Character. Unless otherwise specified all strings are stored in the
/// UTF-16 encoding format as defined by Unicode 2.1 and ISO/IEC 10646 standards. /// UTF-16 encoding format as defined by Unicode 2.1 and ISO/IEC 10646 standards.
/// ///
typedef unsigned short CHAR16; typedef unsigned short CHAR16;
/// ///
/// 4-byte signed value. /// 4-byte signed value.
/// ///
typedef int INT32; typedef int INT32;
/// ///
/// 4-byte unsigned value. /// 4-byte unsigned value.
/// ///
typedef unsigned int UINT32; typedef unsigned int UINT32;
/// ///
/// 8-byte signed value. /// 8-byte signed value.
/// ///
typedef __int64 INT64; typedef __int64 INT64;
/// ///
/// 8-byte unsigned value. /// 8-byte unsigned value.
/// ///
typedef unsigned __int64 UINT64; typedef unsigned __int64 UINT64;
/// ///
/// Signed value of native width. (4 bytes on supported 32-bit processor instructions, /// Signed value of native width. (4 bytes on supported 32-bit processor instructions,
/// 8 bytes on supported 64-bit processor instructions) /// 8 bytes on supported 64-bit processor instructions)
/// "long" type scales to the processor native size with EBC compiler /// "long" type scales to the processor native size with EBC compiler
/// ///
typedef long INTN; typedef long INTN;
/// ///
/// The unsigned value of native width. (4 bytes on supported 32-bit processor instructions; /// The unsigned value of native width. (4 bytes on supported 32-bit processor instructions;
/// 8 bytes on supported 64-bit processor instructions) /// 8 bytes on supported 64-bit processor instructions)
/// "long" type scales to the processor native size with the EBC compiler. /// "long" type scales to the processor native size with the EBC compiler.
/// ///
typedef unsigned long UINTN; typedef unsigned long UINTN;
/// ///
/// A value of native width with the highest bit set. /// A value of native width with the highest bit set.
/// Scalable macro to set the most significant bit in a natural number. /// Scalable macro to set the most significant bit in a natural number.
/// ///
#define MAX_BIT ((UINTN)((1ULL << (sizeof (INTN) * 8 - 1)))) #define MAX_BIT ((UINTN)((1ULL << (sizeof (INTN) * 8 - 1))))
/// ///
/// A value of native width with the two highest bits set. /// A value of native width with the two highest bits set.
/// Scalable macro to set the most 2 significant bits in a natural number. /// Scalable macro to set the most 2 significant bits in a natural number.
@ -95,12 +95,12 @@ typedef unsigned long UINTN;
/// ///
/// Maximum legal EBC address /// Maximum legal EBC address
/// ///
#define MAX_ADDRESS ((UINTN)(~0ULL >> (64 - sizeof (INTN) * 8))) #define MAX_ADDRESS ((UINTN)(~0ULL >> (64 - sizeof (INTN) * 8)))
/// ///
/// Maximum usable address at boot time (48 bits using 4 KB pages) /// Maximum usable address at boot time (48 bits using 4 KB pages)
/// ///
#define MAX_ALLOC_ADDRESS MAX_ADDRESS #define MAX_ALLOC_ADDRESS MAX_ADDRESS
/// ///
/// Maximum legal EBC INTN and UINTN values. /// Maximum legal EBC INTN and UINTN values.
@ -111,18 +111,18 @@ typedef unsigned long UINTN;
/// ///
/// Minimum legal EBC INTN value. /// Minimum legal EBC INTN value.
/// ///
#define MIN_INTN (((INTN)-MAX_INTN) - 1) #define MIN_INTN (((INTN)-MAX_INTN) - 1)
/// ///
/// The stack alignment required for EBC /// The stack alignment required for EBC
/// ///
#define CPU_STACK_ALIGNMENT sizeof(UINTN) #define CPU_STACK_ALIGNMENT sizeof(UINTN)
/// ///
/// Page allocation granularity for EBC /// Page allocation granularity for EBC
/// ///
#define DEFAULT_PAGE_ALLOCATION_GRANULARITY (0x1000) #define DEFAULT_PAGE_ALLOCATION_GRANULARITY (0x1000)
#define RUNTIME_PAGE_ALLOCATION_GRANULARITY (0x1000) #define RUNTIME_PAGE_ALLOCATION_GRANULARITY (0x1000)
/// ///
/// Modifier to ensure that all protocol member functions and EFI intrinsics /// Modifier to ensure that all protocol member functions and EFI intrinsics
@ -130,9 +130,9 @@ typedef unsigned long UINTN;
/// EFI intrinsics are required to modify their member functions with EFIAPI. /// EFI intrinsics are required to modify their member functions with EFIAPI.
/// ///
#ifdef EFIAPI #ifdef EFIAPI
/// ///
/// If EFIAPI is already defined, then we use that definition. /// If EFIAPI is already defined, then we use that definition.
/// ///
#else #else
#define EFIAPI #define EFIAPI
#endif #endif
@ -146,11 +146,10 @@ typedef unsigned long UINTN;
@return The pointer to the first instruction of a function given a function pointer. @return The pointer to the first instruction of a function given a function pointer.
**/ **/
#define FUNCTION_ENTRY_POINT(FunctionPointer) (VOID *)(UINTN)(FunctionPointer) #define FUNCTION_ENTRY_POINT(FunctionPointer) (VOID *)(UINTN)(FunctionPointer)
#ifndef __USER_LABEL_PREFIX__ #ifndef __USER_LABEL_PREFIX__
#define __USER_LABEL_PREFIX__ #define __USER_LABEL_PREFIX__
#endif #endif
#endif #endif

View File

@ -26,15 +26,15 @@
0x8868e871, 0xe4f1, 0x11d3, {0xbc, 0x22, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } \ 0x8868e871, 0xe4f1, 0x11d3, {0xbc, 0x22, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } \
} }
#define ACPI_10_TABLE_GUID ACPI_TABLE_GUID #define ACPI_10_TABLE_GUID ACPI_TABLE_GUID
// //
// ACPI 2.0 or newer tables should use EFI_ACPI_TABLE_GUID. // ACPI 2.0 or newer tables should use EFI_ACPI_TABLE_GUID.
// //
#define EFI_ACPI_20_TABLE_GUID EFI_ACPI_TABLE_GUID #define EFI_ACPI_20_TABLE_GUID EFI_ACPI_TABLE_GUID
extern EFI_GUID gEfiAcpiTableGuid; extern EFI_GUID gEfiAcpiTableGuid;
extern EFI_GUID gEfiAcpi10TableGuid; extern EFI_GUID gEfiAcpi10TableGuid;
extern EFI_GUID gEfiAcpi20TableGuid; extern EFI_GUID gEfiAcpi20TableGuid;
#endif #endif

View File

@ -19,6 +19,6 @@
0xfc510ee7, 0xffdc, 0x11d4, {0xbd, 0x41, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } \ 0xfc510ee7, 0xffdc, 0x11d4, {0xbd, 0x41, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } \
} }
extern EFI_GUID gAprioriGuid; extern EFI_GUID gAprioriGuid;
#endif #endif

View File

@ -17,7 +17,6 @@
#define PEI_APRIORI_FILE_NAME_GUID \ #define PEI_APRIORI_FILE_NAME_GUID \
{ 0x1b45cc0a, 0x156a, 0x428a, { 0x62, 0XAF, 0x49, 0x86, 0x4d, 0xa0, 0xe6, 0xe6 } } { 0x1b45cc0a, 0x156a, 0x428a, { 0x62, 0XAF, 0x49, 0x86, 0x4d, 0xa0, 0xe6, 0xe6 } }
/// ///
/// This file must be of type EFI_FV_FILETYPE_FREEFORM and must /// This file must be of type EFI_FV_FILETYPE_FREEFORM and must
/// contain a single section of type EFI_SECTION_RAW. For details on /// contain a single section of type EFI_SECTION_RAW. For details on
@ -29,10 +28,9 @@ typedef struct {
/// An array of zero or more EFI_GUID type entries that match the file names of PEIM /// An array of zero or more EFI_GUID type entries that match the file names of PEIM
/// modules in the same Firmware Volume. The maximum number of entries. /// modules in the same Firmware Volume. The maximum number of entries.
/// ///
EFI_GUID FileNamesWithinVolume[1]; EFI_GUID FileNamesWithinVolume[1];
} PEI_APRIORI_FILE_CONTENTS; } PEI_APRIORI_FILE_CONTENTS;
extern EFI_GUID gPeiAprioriFileNameGuid; extern EFI_GUID gPeiAprioriFileNameGuid;
#endif #endif

View File

@ -26,19 +26,19 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
// //
// Alignment of all BTT structures // Alignment of all BTT structures
// //
#define EFI_BTT_ALIGNMENT 4096 #define EFI_BTT_ALIGNMENT 4096
#define EFI_BTT_INFO_UNUSED_LEN 3968 #define EFI_BTT_INFO_UNUSED_LEN 3968
#define EFI_BTT_INFO_BLOCK_SIG_LEN 16 #define EFI_BTT_INFO_BLOCK_SIG_LEN 16
/// ///
/// Indicate inconsistent metadata or lost metadata due to unrecoverable media errors. /// Indicate inconsistent metadata or lost metadata due to unrecoverable media errors.
/// ///
#define EFI_BTT_INFO_BLOCK_FLAGS_ERROR 0x00000001 #define EFI_BTT_INFO_BLOCK_FLAGS_ERROR 0x00000001
#define EFI_BTT_INFO_BLOCK_MAJOR_VERSION 2 #define EFI_BTT_INFO_BLOCK_MAJOR_VERSION 2
#define EFI_BTT_INFO_BLOCK_MINOR_VERSION 0 #define EFI_BTT_INFO_BLOCK_MINOR_VERSION 0
/// ///
/// Block Translation Table (BTT) Info Block /// Block Translation Table (BTT) Info Block
@ -48,97 +48,97 @@ typedef struct _EFI_BTT_INFO_BLOCK {
/// Signature of the BTT Index Block data structure. /// Signature of the BTT Index Block data structure.
/// Shall be "BTT_ARENA_INFO\0\0". /// Shall be "BTT_ARENA_INFO\0\0".
/// ///
CHAR8 Sig[EFI_BTT_INFO_BLOCK_SIG_LEN]; CHAR8 Sig[EFI_BTT_INFO_BLOCK_SIG_LEN];
/// ///
/// UUID identifying this BTT instance. /// UUID identifying this BTT instance.
/// ///
GUID Uuid; GUID Uuid;
/// ///
/// UUID of containing namespace. /// UUID of containing namespace.
/// ///
GUID ParentUuid; GUID ParentUuid;
/// ///
/// Attributes of this BTT Info Block. /// Attributes of this BTT Info Block.
/// ///
UINT32 Flags; UINT32 Flags;
/// ///
/// Major version number. Currently at version 2. /// Major version number. Currently at version 2.
/// ///
UINT16 Major; UINT16 Major;
/// ///
/// Minor version number. Currently at version 0. /// Minor version number. Currently at version 0.
/// ///
UINT16 Minor; UINT16 Minor;
/// ///
/// Advertised LBA size in bytes. I/O requests shall be in this size chunk. /// Advertised LBA size in bytes. I/O requests shall be in this size chunk.
/// ///
UINT32 ExternalLbaSize; UINT32 ExternalLbaSize;
/// ///
/// Advertised number of LBAs in this arena. /// Advertised number of LBAs in this arena.
/// ///
UINT32 ExternalNLba; UINT32 ExternalNLba;
/// ///
/// Internal LBA size shall be greater than or equal to ExternalLbaSize and shall not be smaller than 512 bytes. /// Internal LBA size shall be greater than or equal to ExternalLbaSize and shall not be smaller than 512 bytes.
/// ///
UINT32 InternalLbaSize; UINT32 InternalLbaSize;
/// ///
/// Number of internal blocks in the arena data area. /// Number of internal blocks in the arena data area.
/// ///
UINT32 InternalNLba; UINT32 InternalNLba;
/// ///
/// Number of free blocks maintained for writes to this arena. /// Number of free blocks maintained for writes to this arena.
/// ///
UINT32 NFree; UINT32 NFree;
/// ///
/// The size of this info block in bytes. /// The size of this info block in bytes.
/// ///
UINT32 InfoSize; UINT32 InfoSize;
/// ///
/// Offset of next arena, relative to the beginning of this arena. /// Offset of next arena, relative to the beginning of this arena.
/// ///
UINT64 NextOff; UINT64 NextOff;
/// ///
/// Offset of the data area for this arena, relative to the beginning of this arena. /// Offset of the data area for this arena, relative to the beginning of this arena.
/// ///
UINT64 DataOff; UINT64 DataOff;
/// ///
/// Offset of the map for this arena, relative to the beginning of this arena. /// Offset of the map for this arena, relative to the beginning of this arena.
/// ///
UINT64 MapOff; UINT64 MapOff;
/// ///
/// Offset of the flog for this arena, relative to the beginning of this arena. /// Offset of the flog for this arena, relative to the beginning of this arena.
/// ///
UINT64 FlogOff; UINT64 FlogOff;
/// ///
/// Offset of the backup copy of this arena's info block, relative to the beginning of this arena. /// Offset of the backup copy of this arena's info block, relative to the beginning of this arena.
/// ///
UINT64 InfoOff; UINT64 InfoOff;
/// ///
/// Shall be zero. /// Shall be zero.
/// ///
CHAR8 Unused[EFI_BTT_INFO_UNUSED_LEN]; CHAR8 Unused[EFI_BTT_INFO_UNUSED_LEN];
/// ///
/// 64-bit Fletcher64 checksum of all fields. /// 64-bit Fletcher64 checksum of all fields.
/// ///
UINT64 Checksum; UINT64 Checksum;
} EFI_BTT_INFO_BLOCK; } EFI_BTT_INFO_BLOCK;
/// ///
@ -148,25 +148,25 @@ typedef struct _EFI_BTT_MAP_ENTRY {
/// ///
/// Post-map LBA number (block number in this arena's data area) /// Post-map LBA number (block number in this arena's data area)
/// ///
UINT32 PostMapLba : 30; UINT32 PostMapLba : 30;
/// ///
/// When set and Zero is not set, reads on this block return an error. /// When set and Zero is not set, reads on this block return an error.
/// When set and Zero is set, indicate a map entry in its normal, non-error state. /// When set and Zero is set, indicate a map entry in its normal, non-error state.
/// ///
UINT32 Error : 1; UINT32 Error : 1;
/// ///
/// When set and Error is not set, reads on this block return a full block of zeros. /// When set and Error is not set, reads on this block return a full block of zeros.
/// When set and Error is set, indicate a map entry in its normal, non-error state. /// When set and Error is set, indicate a map entry in its normal, non-error state.
/// ///
UINT32 Zero : 1; UINT32 Zero : 1;
} EFI_BTT_MAP_ENTRY; } EFI_BTT_MAP_ENTRY;
/// ///
/// Alignment of each flog structure /// Alignment of each flog structure
/// ///
#define EFI_BTT_FLOG_ENTRY_ALIGNMENT 64 #define EFI_BTT_FLOG_ENTRY_ALIGNMENT 64
/// ///
/// The BTT Flog is both a free list and a log. /// The BTT Flog is both a free list and a log.
@ -178,45 +178,45 @@ typedef struct _EFI_BTT_FLOG {
/// ///
/// Last pre-map LBA written using this flog entry. /// Last pre-map LBA written using this flog entry.
/// ///
UINT32 Lba0; UINT32 Lba0;
/// ///
/// Old post-map LBA. /// Old post-map LBA.
/// ///
UINT32 OldMap0; UINT32 OldMap0;
/// ///
/// New post-map LBA. /// New post-map LBA.
/// ///
UINT32 NewMap0; UINT32 NewMap0;
/// ///
/// The Seq0 field in each flog entry is used to determine which set of fields is newer between the two sets /// The Seq0 field in each flog entry is used to determine which set of fields is newer between the two sets
/// (Lba0, OldMap0, NewMpa0, Seq0 vs Lba1, Oldmap1, NewMap1, Seq1). /// (Lba0, OldMap0, NewMpa0, Seq0 vs Lba1, Oldmap1, NewMap1, Seq1).
/// ///
UINT32 Seq0; UINT32 Seq0;
/// ///
/// Alternate lba entry. /// Alternate lba entry.
/// ///
UINT32 Lba1; UINT32 Lba1;
/// ///
/// Alternate old entry. /// Alternate old entry.
/// ///
UINT32 OldMap1; UINT32 OldMap1;
/// ///
/// Alternate new entry. /// Alternate new entry.
/// ///
UINT32 NewMap1; UINT32 NewMap1;
/// ///
/// Alternate Seq entry. /// Alternate Seq entry.
/// ///
UINT32 Seq1; UINT32 Seq1;
} EFI_BTT_FLOG; } EFI_BTT_FLOG;
extern GUID gEfiBttAbstractionGuid; extern GUID gEfiBttAbstractionGuid;
#endif //_BTT_H_ #endif //_BTT_H_

View File

@ -9,7 +9,6 @@
**/ **/
#ifndef _CAPSULE_REPORT_GUID_H__ #ifndef _CAPSULE_REPORT_GUID_H__
#define _CAPSULE_REPORT_GUID_H__ #define _CAPSULE_REPORT_GUID_H__
@ -21,60 +20,56 @@
0x39b68c46, 0xf7fb, 0x441b, {0xb6, 0xec, 0x16, 0xb0, 0xf6, 0x98, 0x21, 0xf3 } \ 0x39b68c46, 0xf7fb, 0x441b, {0xb6, 0xec, 0x16, 0xb0, 0xf6, 0x98, 0x21, 0xf3 } \
} }
typedef struct { typedef struct {
/// ///
/// Size in bytes of the variable including any data beyond header as specified by CapsuleGuid /// Size in bytes of the variable including any data beyond header as specified by CapsuleGuid
/// ///
UINT32 VariableTotalSize; UINT32 VariableTotalSize;
/// ///
/// For alignment /// For alignment
/// ///
UINT32 Reserved; UINT32 Reserved;
/// ///
/// Guid from EFI_CAPSULE_HEADER /// Guid from EFI_CAPSULE_HEADER
/// ///
EFI_GUID CapsuleGuid; EFI_GUID CapsuleGuid;
/// ///
/// Timestamp using system time when processing completed /// Timestamp using system time when processing completed
/// ///
EFI_TIME CapsuleProcessed; EFI_TIME CapsuleProcessed;
/// ///
/// Result of the capsule processing. Exact interpretation of any error code may depend /// Result of the capsule processing. Exact interpretation of any error code may depend
/// upon type of capsule processed /// upon type of capsule processed
/// ///
EFI_STATUS CapsuleStatus; EFI_STATUS CapsuleStatus;
} EFI_CAPSULE_RESULT_VARIABLE_HEADER; } EFI_CAPSULE_RESULT_VARIABLE_HEADER;
typedef struct { typedef struct {
/// ///
/// Version of this structure, currently 0x00000001 /// Version of this structure, currently 0x00000001
/// ///
UINT16 Version; UINT16 Version;
/// ///
/// The index of the payload within the FMP capsule which was processed to generate this report /// The index of the payload within the FMP capsule which was processed to generate this report
/// Starting from zero /// Starting from zero
/// ///
UINT8 PayloadIndex; UINT8 PayloadIndex;
/// ///
/// The UpdateImageIndex from EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER /// The UpdateImageIndex from EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER
/// (after unsigned conversion from UINT8 to UINT16). /// (after unsigned conversion from UINT8 to UINT16).
/// ///
UINT8 UpdateImageIndex; UINT8 UpdateImageIndex;
/// ///
/// The UpdateImageTypeId Guid from EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER. /// The UpdateImageTypeId Guid from EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER.
/// ///
EFI_GUID UpdateImageTypeId; EFI_GUID UpdateImageTypeId;
/// ///
/// In case of capsule loaded from disk, the zero-terminated array containing file name of capsule that was processed. /// In case of capsule loaded from disk, the zero-terminated array containing file name of capsule that was processed.
@ -94,7 +89,6 @@ typedef struct {
} EFI_CAPSULE_RESULT_VARIABLE_FMP; } EFI_CAPSULE_RESULT_VARIABLE_FMP;
typedef struct { typedef struct {
/// ///
/// Version of this structure, currently 0x00000001 /// Version of this structure, currently 0x00000001
/// ///
@ -108,21 +102,21 @@ typedef struct {
/// The JSON payload shall conform to a Redfish-defined JSON schema, see DMTF-Redfish /// The JSON payload shall conform to a Redfish-defined JSON schema, see DMTF-Redfish
/// Specification. /// Specification.
/// ///
UINT32 CapsuleId; UINT32 CapsuleId;
/// ///
/// The length of Resp in bytes. /// The length of Resp in bytes.
/// ///
UINT32 RespLength; UINT32 RespLength;
/// ///
/// Variable length buffer containing the replied JSON payload to the caller who delivered JSON /// Variable length buffer containing the replied JSON payload to the caller who delivered JSON
/// capsule to system. The definition of the JSON schema used in the replied payload is beyond /// capsule to system. The definition of the JSON schema used in the replied payload is beyond
/// the scope of this specification. /// the scope of this specification.
/// ///
UINT8 Resp[]; UINT8 Resp[];
} EFI_CAPSULE_RESULT_VARIABLE_JSON; } EFI_CAPSULE_RESULT_VARIABLE_JSON;
extern EFI_GUID gEfiCapsuleReportGuid; extern EFI_GUID gEfiCapsuleReportGuid;
#endif #endif

File diff suppressed because it is too large Load Diff

View File

@ -22,15 +22,15 @@
0x49152e77, 0x1ada, 0x4764, {0xb7, 0xa2, 0x7a, 0xfe, 0xfe, 0xd9, 0x5e, 0x8b } \ 0x49152e77, 0x1ada, 0x4764, {0xb7, 0xa2, 0x7a, 0xfe, 0xfe, 0xd9, 0x5e, 0x8b } \
} }
#define EFI_DEBUG_IMAGE_INFO_UPDATE_IN_PROGRESS 0x01 #define EFI_DEBUG_IMAGE_INFO_UPDATE_IN_PROGRESS 0x01
#define EFI_DEBUG_IMAGE_INFO_TABLE_MODIFIED 0x02 #define EFI_DEBUG_IMAGE_INFO_TABLE_MODIFIED 0x02
#define EFI_DEBUG_IMAGE_INFO_TYPE_NORMAL 0x01 #define EFI_DEBUG_IMAGE_INFO_TYPE_NORMAL 0x01
typedef struct { typedef struct {
UINT64 Signature; ///< A constant UINT64 that has the value EFI_SYSTEM_TABLE_SIGNATURE UINT64 Signature; ///< A constant UINT64 that has the value EFI_SYSTEM_TABLE_SIGNATURE
EFI_PHYSICAL_ADDRESS EfiSystemTableBase; ///< The physical address of the EFI system table. EFI_PHYSICAL_ADDRESS EfiSystemTableBase; ///< The physical address of the EFI system table.
UINT32 Crc32; ///< A 32-bit CRC value that is used to verify the EFI_SYSTEM_TABLE_POINTER structure is valid. UINT32 Crc32; ///< A 32-bit CRC value that is used to verify the EFI_SYSTEM_TABLE_POINTER structure is valid.
} EFI_SYSTEM_TABLE_POINTER; } EFI_SYSTEM_TABLE_POINTER;
typedef struct { typedef struct {
@ -38,37 +38,37 @@ typedef struct {
/// Indicates the type of image info structure. For PE32 EFI images, /// Indicates the type of image info structure. For PE32 EFI images,
/// this is set to EFI_DEBUG_IMAGE_INFO_TYPE_NORMAL. /// this is set to EFI_DEBUG_IMAGE_INFO_TYPE_NORMAL.
/// ///
UINT32 ImageInfoType; UINT32 ImageInfoType;
/// ///
/// A pointer to an instance of the loaded image protocol for the associated image. /// A pointer to an instance of the loaded image protocol for the associated image.
/// ///
EFI_LOADED_IMAGE_PROTOCOL *LoadedImageProtocolInstance; EFI_LOADED_IMAGE_PROTOCOL *LoadedImageProtocolInstance;
/// ///
/// Indicates the image handle of the associated image. /// Indicates the image handle of the associated image.
/// ///
EFI_HANDLE ImageHandle; EFI_HANDLE ImageHandle;
} EFI_DEBUG_IMAGE_INFO_NORMAL; } EFI_DEBUG_IMAGE_INFO_NORMAL;
typedef union { typedef union {
UINT32 *ImageInfoType; UINT32 *ImageInfoType;
EFI_DEBUG_IMAGE_INFO_NORMAL *NormalImage; EFI_DEBUG_IMAGE_INFO_NORMAL *NormalImage;
} EFI_DEBUG_IMAGE_INFO; } EFI_DEBUG_IMAGE_INFO;
typedef struct { typedef struct {
/// ///
/// UpdateStatus is used by the system to indicate the state of the debug image info table. /// UpdateStatus is used by the system to indicate the state of the debug image info table.
/// ///
volatile UINT32 UpdateStatus; volatile UINT32 UpdateStatus;
/// ///
/// The number of EFI_DEBUG_IMAGE_INFO elements in the array pointed to by EfiDebugImageInfoTable. /// The number of EFI_DEBUG_IMAGE_INFO elements in the array pointed to by EfiDebugImageInfoTable.
/// ///
UINT32 TableSize; UINT32 TableSize;
/// ///
/// A pointer to the first element of an array of EFI_DEBUG_IMAGE_INFO structures. /// A pointer to the first element of an array of EFI_DEBUG_IMAGE_INFO structures.
/// ///
EFI_DEBUG_IMAGE_INFO *EfiDebugImageInfoTable; EFI_DEBUG_IMAGE_INFO *EfiDebugImageInfoTable;
} EFI_DEBUG_IMAGE_INFO_TABLE_HEADER; } EFI_DEBUG_IMAGE_INFO_TABLE_HEADER;
extern EFI_GUID gEfiDebugImageInfoTableGuid; extern EFI_GUID gEfiDebugImageInfoTableGuid;
#endif #endif

View File

@ -17,6 +17,6 @@
0x5ad34ba, 0x6f02, 0x4214, {0x95, 0x2e, 0x4d, 0xa0, 0x39, 0x8e, 0x2b, 0xb9 } \ 0x5ad34ba, 0x6f02, 0x4214, {0x95, 0x2e, 0x4d, 0xa0, 0x39, 0x8e, 0x2b, 0xb9 } \
} }
extern EFI_GUID gEfiDxeServicesTableGuid; extern EFI_GUID gEfiDxeServicesTableGuid;
#endif #endif

View File

@ -9,38 +9,34 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#ifndef __EVENT_GROUP_GUID__ #ifndef __EVENT_GROUP_GUID__
#define __EVENT_GROUP_GUID__ #define __EVENT_GROUP_GUID__
#define EFI_EVENT_GROUP_EXIT_BOOT_SERVICES \ #define EFI_EVENT_GROUP_EXIT_BOOT_SERVICES \
{ 0x27abf055, 0xb1b8, 0x4c26, { 0x80, 0x48, 0x74, 0x8f, 0x37, 0xba, 0xa2, 0xdf } } { 0x27abf055, 0xb1b8, 0x4c26, { 0x80, 0x48, 0x74, 0x8f, 0x37, 0xba, 0xa2, 0xdf } }
extern EFI_GUID gEfiEventExitBootServicesGuid; extern EFI_GUID gEfiEventExitBootServicesGuid;
#define EFI_EVENT_GROUP_VIRTUAL_ADDRESS_CHANGE \ #define EFI_EVENT_GROUP_VIRTUAL_ADDRESS_CHANGE \
{ 0x13fa7698, 0xc831, 0x49c7, { 0x87, 0xea, 0x8f, 0x43, 0xfc, 0xc2, 0x51, 0x96 } } { 0x13fa7698, 0xc831, 0x49c7, { 0x87, 0xea, 0x8f, 0x43, 0xfc, 0xc2, 0x51, 0x96 } }
extern EFI_GUID gEfiEventVirtualAddressChangeGuid; extern EFI_GUID gEfiEventVirtualAddressChangeGuid;
#define EFI_EVENT_GROUP_MEMORY_MAP_CHANGE \ #define EFI_EVENT_GROUP_MEMORY_MAP_CHANGE \
{ 0x78bee926, 0x692f, 0x48fd, { 0x9e, 0xdb, 0x1, 0x42, 0x2e, 0xf0, 0xd7, 0xab } } { 0x78bee926, 0x692f, 0x48fd, { 0x9e, 0xdb, 0x1, 0x42, 0x2e, 0xf0, 0xd7, 0xab } }
extern EFI_GUID gEfiEventMemoryMapChangeGuid; extern EFI_GUID gEfiEventMemoryMapChangeGuid;
#define EFI_EVENT_GROUP_READY_TO_BOOT \ #define EFI_EVENT_GROUP_READY_TO_BOOT \
{ 0x7ce88fb3, 0x4bd7, 0x4679, { 0x87, 0xa8, 0xa8, 0xd8, 0xde, 0xe5, 0x0d, 0x2b } } { 0x7ce88fb3, 0x4bd7, 0x4679, { 0x87, 0xa8, 0xa8, 0xd8, 0xde, 0xe5, 0x0d, 0x2b } }
extern EFI_GUID gEfiEventReadyToBootGuid; extern EFI_GUID gEfiEventReadyToBootGuid;
#define EFI_EVENT_GROUP_DXE_DISPATCH_GUID \ #define EFI_EVENT_GROUP_DXE_DISPATCH_GUID \
{ 0x7081e22f, 0xcac6, 0x4053, { 0x94, 0x68, 0x67, 0x57, 0x82, 0xcf, 0x88, 0xe5 }} { 0x7081e22f, 0xcac6, 0x4053, { 0x94, 0x68, 0x67, 0x57, 0x82, 0xcf, 0x88, 0xe5 }}
extern EFI_GUID gEfiEventDxeDispatchGuid; extern EFI_GUID gEfiEventDxeDispatchGuid;
#define EFI_END_OF_DXE_EVENT_GROUP_GUID \ #define EFI_END_OF_DXE_EVENT_GROUP_GUID \
{ 0x2ce967a, 0xdd7e, 0x4ffc, { 0x9e, 0xe7, 0x81, 0xc, 0xf0, 0x47, 0x8, 0x80 } } { 0x2ce967a, 0xdd7e, 0x4ffc, { 0x9e, 0xe7, 0x81, 0xc, 0xf0, 0x47, 0x8, 0x80 } }
extern EFI_GUID gEfiEndOfDxeEventGroupGuid; extern EFI_GUID gEfiEndOfDxeEventGroupGuid;
#endif #endif

View File

@ -17,6 +17,6 @@
#define EFI_EVENT_LEGACY_BOOT_GUID \ #define EFI_EVENT_LEGACY_BOOT_GUID \
{ 0x2a571201, 0x4966, 0x47f6, {0x8b, 0x86, 0xf3, 0x1e, 0x41, 0xf3, 0x2f, 0x10 } } { 0x2a571201, 0x4966, 0x47f6, {0x8b, 0x86, 0xf3, 0x1e, 0x41, 0xf3, 0x2f, 0x10 } }
extern EFI_GUID gEfiEventLegacyBootGuid; extern EFI_GUID gEfiEventLegacyBootGuid;
#endif #endif

View File

@ -20,35 +20,35 @@ typedef struct {
/// ///
/// The size of the EFI_FILE_INFO structure, including the Null-terminated FileName string. /// The size of the EFI_FILE_INFO structure, including the Null-terminated FileName string.
/// ///
UINT64 Size; UINT64 Size;
/// ///
/// The size of the file in bytes. /// The size of the file in bytes.
/// ///
UINT64 FileSize; UINT64 FileSize;
/// ///
/// PhysicalSize The amount of physical space the file consumes on the file system volume. /// PhysicalSize The amount of physical space the file consumes on the file system volume.
/// ///
UINT64 PhysicalSize; UINT64 PhysicalSize;
/// ///
/// The time the file was created. /// The time the file was created.
/// ///
EFI_TIME CreateTime; EFI_TIME CreateTime;
/// ///
/// The time when the file was last accessed. /// The time when the file was last accessed.
/// ///
EFI_TIME LastAccessTime; EFI_TIME LastAccessTime;
/// ///
/// The time when the file's contents were last modified. /// The time when the file's contents were last modified.
/// ///
EFI_TIME ModificationTime; EFI_TIME ModificationTime;
/// ///
/// The attribute bits for the file. /// The attribute bits for the file.
/// ///
UINT64 Attribute; UINT64 Attribute;
/// ///
/// The Null-terminated name of the file. /// The Null-terminated name of the file.
/// ///
CHAR16 FileName[1]; CHAR16 FileName[1];
} EFI_FILE_INFO; } EFI_FILE_INFO;
/// ///
@ -58,8 +58,8 @@ typedef struct {
/// computes this size correctly no matter how big the FileName array is declared. /// computes this size correctly no matter how big the FileName array is declared.
/// This is required to make the EFI_FILE_INFO data structure ANSI compilant. /// This is required to make the EFI_FILE_INFO data structure ANSI compilant.
/// ///
#define SIZE_OF_EFI_FILE_INFO OFFSET_OF (EFI_FILE_INFO, FileName) #define SIZE_OF_EFI_FILE_INFO OFFSET_OF (EFI_FILE_INFO, FileName)
extern EFI_GUID gEfiFileInfoGuid; extern EFI_GUID gEfiFileInfoGuid;
#endif #endif

View File

@ -20,27 +20,27 @@ typedef struct {
/// ///
/// The size of the EFI_FILE_SYSTEM_INFO structure, including the Null-terminated VolumeLabel string. /// The size of the EFI_FILE_SYSTEM_INFO structure, including the Null-terminated VolumeLabel string.
/// ///
UINT64 Size; UINT64 Size;
/// ///
/// TRUE if the volume only supports read access. /// TRUE if the volume only supports read access.
/// ///
BOOLEAN ReadOnly; BOOLEAN ReadOnly;
/// ///
/// The number of bytes managed by the file system. /// The number of bytes managed by the file system.
/// ///
UINT64 VolumeSize; UINT64 VolumeSize;
/// ///
/// The number of available bytes for use by the file system. /// The number of available bytes for use by the file system.
/// ///
UINT64 FreeSpace; UINT64 FreeSpace;
/// ///
/// The nominal block size by which files are typically grown. /// The nominal block size by which files are typically grown.
/// ///
UINT32 BlockSize; UINT32 BlockSize;
/// ///
/// The Null-terminated string that is the volume's label. /// The Null-terminated string that is the volume's label.
/// ///
CHAR16 VolumeLabel[1]; CHAR16 VolumeLabel[1];
} EFI_FILE_SYSTEM_INFO; } EFI_FILE_SYSTEM_INFO;
/// ///
@ -52,6 +52,6 @@ typedef struct {
/// ///
#define SIZE_OF_EFI_FILE_SYSTEM_INFO OFFSET_OF (EFI_FILE_SYSTEM_INFO, VolumeLabel) #define SIZE_OF_EFI_FILE_SYSTEM_INFO OFFSET_OF (EFI_FILE_SYSTEM_INFO, VolumeLabel)
extern EFI_GUID gEfiFileSystemInfoGuid; extern EFI_GUID gEfiFileSystemInfoGuid;
#endif #endif

View File

@ -20,12 +20,12 @@ typedef struct {
/// ///
/// The Null-terminated string that is the volume's label. /// The Null-terminated string that is the volume's label.
/// ///
CHAR16 VolumeLabel[1]; CHAR16 VolumeLabel[1];
} EFI_FILE_SYSTEM_VOLUME_LABEL; } EFI_FILE_SYSTEM_VOLUME_LABEL;
#define SIZE_OF_EFI_FILE_SYSTEM_VOLUME_LABEL \ #define SIZE_OF_EFI_FILE_SYSTEM_VOLUME_LABEL \
OFFSET_OF (EFI_FILE_SYSTEM_VOLUME_LABEL, VolumeLabel) OFFSET_OF (EFI_FILE_SYSTEM_VOLUME_LABEL, VolumeLabel)
extern EFI_GUID gEfiFileSystemVolumeLabelInfoIdGuid; extern EFI_GUID gEfiFileSystemVolumeLabelInfoIdGuid;
#endif #endif

View File

@ -15,6 +15,6 @@
#define EFI_FIRMWARE_CONTENTS_SIGNED_GUID \ #define EFI_FIRMWARE_CONTENTS_SIGNED_GUID \
{ 0xf9d89e8, 0x9259, 0x4f76, {0xa5, 0xaf, 0xc, 0x89, 0xe3, 0x40, 0x23, 0xdf } } { 0xf9d89e8, 0x9259, 0x4f76, {0xa5, 0xaf, 0xc, 0x89, 0xe3, 0x40, 0x23, 0xdf } }
extern EFI_GUID gEfiFirmwareContentsSignedGuid; extern EFI_GUID gEfiFirmwareContentsSignedGuid;
#endif #endif

View File

@ -27,8 +27,7 @@
#define EFI_FFS_VOLUME_TOP_FILE_GUID \ #define EFI_FFS_VOLUME_TOP_FILE_GUID \
{ 0x1BA0062E, 0xC779, 0x4582, { 0x85, 0x66, 0x33, 0x6A, 0xE8, 0xF7, 0x8F, 0x9 } } { 0x1BA0062E, 0xC779, 0x4582, { 0x85, 0x66, 0x33, 0x6A, 0xE8, 0xF7, 0x8F, 0x9 } }
extern EFI_GUID gEfiFirmwareFileSystem2Guid;
extern EFI_GUID gEfiFirmwareFileSystem2Guid; extern EFI_GUID gEfiFirmwareVolumeTopFileGuid;
extern EFI_GUID gEfiFirmwareVolumeTopFileGuid;
#endif #endif

View File

@ -19,6 +19,6 @@
#define EFI_FIRMWARE_FILE_SYSTEM3_GUID \ #define EFI_FIRMWARE_FILE_SYSTEM3_GUID \
{ 0x5473c07a, 0x3dcb, 0x4dca, { 0xbd, 0x6f, 0x1e, 0x96, 0x89, 0xe7, 0x34, 0x9a }} { 0x5473c07a, 0x3dcb, 0x4dca, { 0xbd, 0x6f, 0x1e, 0x96, 0x89, 0xe7, 0x34, 0x9a }}
extern EFI_GUID gEfiFirmwareFileSystem3Guid; extern EFI_GUID gEfiFirmwareFileSystem3Guid;
#endif // __FIRMWARE_FILE_SYSTEM3_GUID_H__ #endif // __FIRMWARE_FILE_SYSTEM3_GUID_H__

View File

@ -10,7 +10,6 @@
**/ **/
#ifndef _FMP_CAPSULE_GUID_H__ #ifndef _FMP_CAPSULE_GUID_H__
#define _FMP_CAPSULE_GUID_H__ #define _FMP_CAPSULE_GUID_H__
@ -25,19 +24,19 @@
#pragma pack(1) #pragma pack(1)
typedef struct { typedef struct {
UINT32 Version; UINT32 Version;
/// ///
/// The number of drivers included in the capsule and the number of corresponding /// The number of drivers included in the capsule and the number of corresponding
/// offsets stored in ItemOffsetList array. /// offsets stored in ItemOffsetList array.
/// ///
UINT16 EmbeddedDriverCount; UINT16 EmbeddedDriverCount;
/// ///
/// The number of payload items included in the capsule and the number of /// The number of payload items included in the capsule and the number of
/// corresponding offsets stored in the ItemOffsetList array. /// corresponding offsets stored in the ItemOffsetList array.
/// ///
UINT16 PayloadItemCount; UINT16 PayloadItemCount;
/// ///
/// Variable length array of dimension [EmbeddedDriverCount + PayloadItemCount] /// Variable length array of dimension [EmbeddedDriverCount + PayloadItemCount]
@ -47,29 +46,29 @@ typedef struct {
} EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER; } EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER;
typedef struct { typedef struct {
UINT32 Version; UINT32 Version;
/// ///
/// Used to identify device firmware targeted by this update. This guid is matched by /// Used to identify device firmware targeted by this update. This guid is matched by
/// system firmware against ImageTypeId field within a EFI_FIRMWARE_IMAGE_DESCRIPTOR /// system firmware against ImageTypeId field within a EFI_FIRMWARE_IMAGE_DESCRIPTOR
/// ///
EFI_GUID UpdateImageTypeId; EFI_GUID UpdateImageTypeId;
/// ///
/// Passed as ImageIndex in call to EFI_FIRMWARE_MANAGEMENT_PROTOCOL.SetImage() /// Passed as ImageIndex in call to EFI_FIRMWARE_MANAGEMENT_PROTOCOL.SetImage()
/// ///
UINT8 UpdateImageIndex; UINT8 UpdateImageIndex;
UINT8 reserved_bytes[3]; UINT8 reserved_bytes[3];
/// ///
/// Size of the binary update image which immediately follows this structure /// Size of the binary update image which immediately follows this structure
/// ///
UINT32 UpdateImageSize; UINT32 UpdateImageSize;
/// ///
/// Size of the VendorCode bytes which optionally immediately follow binary update image in the capsule /// Size of the VendorCode bytes which optionally immediately follow binary update image in the capsule
/// ///
UINT32 UpdateVendorCodeSize; UINT32 UpdateVendorCodeSize;
/// ///
/// The HardwareInstance to target with this update. If value is zero it means match all /// The HardwareInstance to target with this update. If value is zero it means match all
@ -78,24 +77,23 @@ typedef struct {
/// This header is outside the signed data of the Authentication Info structure and /// This header is outside the signed data of the Authentication Info structure and
/// therefore can be modified without changing the Auth data. /// therefore can be modified without changing the Auth data.
/// ///
UINT64 UpdateHardwareInstance; UINT64 UpdateHardwareInstance;
/// ///
/// A 64-bit bitmask that determines what sections are added to the payload. /// A 64-bit bitmask that determines what sections are added to the payload.
/// #define CAPSULE_SUPPORT_AUTHENTICATION 0x0000000000000001 /// #define CAPSULE_SUPPORT_AUTHENTICATION 0x0000000000000001
/// #define CAPSULE_SUPPORT_DEPENDENCY 0x0000000000000002 /// #define CAPSULE_SUPPORT_DEPENDENCY 0x0000000000000002
/// ///
UINT64 ImageCapsuleSupport; UINT64 ImageCapsuleSupport;
} EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER; } EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER;
#pragma pack() #pragma pack()
#define EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER_INIT_VERSION 0x00000001
#define EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER_INIT_VERSION 0x00000003
#define CAPSULE_SUPPORT_AUTHENTICATION 0x0000000000000001
#define CAPSULE_SUPPORT_DEPENDENCY 0x0000000000000002
#define EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER_INIT_VERSION 0x00000001 extern EFI_GUID gEfiFmpCapsuleGuid;
#define EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER_INIT_VERSION 0x00000003
#define CAPSULE_SUPPORT_AUTHENTICATION 0x0000000000000001
#define CAPSULE_SUPPORT_DEPENDENCY 0x0000000000000002
extern EFI_GUID gEfiFmpCapsuleGuid;
#endif #endif

View File

@ -16,7 +16,7 @@
0x8BE4DF61, 0x93CA, 0x11d2, {0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C } \ 0x8BE4DF61, 0x93CA, 0x11d2, {0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C } \
} }
extern EFI_GUID gEfiGlobalVariableGuid; extern EFI_GUID gEfiGlobalVariableGuid;
// //
// Follow UEFI 2.4 spec: // Follow UEFI 2.4 spec:
@ -41,146 +41,146 @@ extern EFI_GUID gEfiGlobalVariableGuid;
/// The language codes that the firmware supports. This value is deprecated. /// The language codes that the firmware supports. This value is deprecated.
/// Its attribute is BS+RT. /// Its attribute is BS+RT.
/// ///
#define EFI_LANG_CODES_VARIABLE_NAME L"LangCodes" #define EFI_LANG_CODES_VARIABLE_NAME L"LangCodes"
/// ///
/// The language code that the system is configured for. This value is deprecated. /// The language code that the system is configured for. This value is deprecated.
/// Its attribute is NV+BS+RT. /// Its attribute is NV+BS+RT.
/// ///
#define EFI_LANG_VARIABLE_NAME L"Lang" #define EFI_LANG_VARIABLE_NAME L"Lang"
/// ///
/// The firmware's boot managers timeout, in seconds, before initiating the default boot selection. /// The firmware's boot managers timeout, in seconds, before initiating the default boot selection.
/// Its attribute is NV+BS+RT. /// Its attribute is NV+BS+RT.
/// ///
#define EFI_TIME_OUT_VARIABLE_NAME L"Timeout" #define EFI_TIME_OUT_VARIABLE_NAME L"Timeout"
/// ///
/// The language codes that the firmware supports. /// The language codes that the firmware supports.
/// Its attribute is BS+RT. /// Its attribute is BS+RT.
/// ///
#define EFI_PLATFORM_LANG_CODES_VARIABLE_NAME L"PlatformLangCodes" #define EFI_PLATFORM_LANG_CODES_VARIABLE_NAME L"PlatformLangCodes"
/// ///
/// The language code that the system is configured for. /// The language code that the system is configured for.
/// Its attribute is NV+BS+RT. /// Its attribute is NV+BS+RT.
/// ///
#define EFI_PLATFORM_LANG_VARIABLE_NAME L"PlatformLang" #define EFI_PLATFORM_LANG_VARIABLE_NAME L"PlatformLang"
/// ///
/// The device path of the default input/output/error output console. /// The device path of the default input/output/error output console.
/// Its attribute is NV+BS+RT. /// Its attribute is NV+BS+RT.
/// ///
#define EFI_CON_IN_VARIABLE_NAME L"ConIn" #define EFI_CON_IN_VARIABLE_NAME L"ConIn"
#define EFI_CON_OUT_VARIABLE_NAME L"ConOut" #define EFI_CON_OUT_VARIABLE_NAME L"ConOut"
#define EFI_ERR_OUT_VARIABLE_NAME L"ErrOut" #define EFI_ERR_OUT_VARIABLE_NAME L"ErrOut"
/// ///
/// The device path of all possible input/output/error output devices. /// The device path of all possible input/output/error output devices.
/// Its attribute is BS+RT. /// Its attribute is BS+RT.
/// ///
#define EFI_CON_IN_DEV_VARIABLE_NAME L"ConInDev" #define EFI_CON_IN_DEV_VARIABLE_NAME L"ConInDev"
#define EFI_CON_OUT_DEV_VARIABLE_NAME L"ConOutDev" #define EFI_CON_OUT_DEV_VARIABLE_NAME L"ConOutDev"
#define EFI_ERR_OUT_DEV_VARIABLE_NAME L"ErrOutDev" #define EFI_ERR_OUT_DEV_VARIABLE_NAME L"ErrOutDev"
/// ///
/// The ordered boot option load list. /// The ordered boot option load list.
/// Its attribute is NV+BS+RT. /// Its attribute is NV+BS+RT.
/// ///
#define EFI_BOOT_ORDER_VARIABLE_NAME L"BootOrder" #define EFI_BOOT_ORDER_VARIABLE_NAME L"BootOrder"
/// ///
/// The boot option for the next boot only. /// The boot option for the next boot only.
/// Its attribute is NV+BS+RT. /// Its attribute is NV+BS+RT.
/// ///
#define EFI_BOOT_NEXT_VARIABLE_NAME L"BootNext" #define EFI_BOOT_NEXT_VARIABLE_NAME L"BootNext"
/// ///
/// The boot option that was selected for the current boot. /// The boot option that was selected for the current boot.
/// Its attribute is BS+RT. /// Its attribute is BS+RT.
/// ///
#define EFI_BOOT_CURRENT_VARIABLE_NAME L"BootCurrent" #define EFI_BOOT_CURRENT_VARIABLE_NAME L"BootCurrent"
/// ///
/// The types of boot options supported by the boot manager. Should be treated as read-only. /// The types of boot options supported by the boot manager. Should be treated as read-only.
/// Its attribute is BS+RT. /// Its attribute is BS+RT.
/// ///
#define EFI_BOOT_OPTION_SUPPORT_VARIABLE_NAME L"BootOptionSupport" #define EFI_BOOT_OPTION_SUPPORT_VARIABLE_NAME L"BootOptionSupport"
/// ///
/// The ordered driver load option list. /// The ordered driver load option list.
/// Its attribute is NV+BS+RT. /// Its attribute is NV+BS+RT.
/// ///
#define EFI_DRIVER_ORDER_VARIABLE_NAME L"DriverOrder" #define EFI_DRIVER_ORDER_VARIABLE_NAME L"DriverOrder"
/// ///
/// The ordered System Prep Application load option list. /// The ordered System Prep Application load option list.
/// Its attribute is NV+BS+RT. /// Its attribute is NV+BS+RT.
/// ///
#define EFI_SYS_PREP_ORDER_VARIABLE_NAME L"SysPrepOrder" #define EFI_SYS_PREP_ORDER_VARIABLE_NAME L"SysPrepOrder"
/// ///
/// Identifies the level of hardware error record persistence /// Identifies the level of hardware error record persistence
/// support implemented by the platform. This variable is /// support implemented by the platform. This variable is
/// only modified by firmware and is read-only to the OS. /// only modified by firmware and is read-only to the OS.
/// Its attribute is NV+BS+RT. /// Its attribute is NV+BS+RT.
/// ///
#define EFI_HW_ERR_REC_SUPPORT_VARIABLE_NAME L"HwErrRecSupport" #define EFI_HW_ERR_REC_SUPPORT_VARIABLE_NAME L"HwErrRecSupport"
/// ///
/// Whether the system is operating in setup mode (1) or not (0). /// Whether the system is operating in setup mode (1) or not (0).
/// All other values are reserved. Should be treated as read-only. /// All other values are reserved. Should be treated as read-only.
/// Its attribute is BS+RT. /// Its attribute is BS+RT.
/// ///
#define EFI_SETUP_MODE_NAME L"SetupMode" #define EFI_SETUP_MODE_NAME L"SetupMode"
/// ///
/// The Key Exchange Key Signature Database. /// The Key Exchange Key Signature Database.
/// Its attribute is NV+BS+RT+AT. /// Its attribute is NV+BS+RT+AT.
/// ///
#define EFI_KEY_EXCHANGE_KEY_NAME L"KEK" #define EFI_KEY_EXCHANGE_KEY_NAME L"KEK"
/// ///
/// The public Platform Key. /// The public Platform Key.
/// Its attribute is NV+BS+RT+AT. /// Its attribute is NV+BS+RT+AT.
/// ///
#define EFI_PLATFORM_KEY_NAME L"PK" #define EFI_PLATFORM_KEY_NAME L"PK"
/// ///
/// Array of GUIDs representing the type of signatures supported /// Array of GUIDs representing the type of signatures supported
/// by the platform firmware. Should be treated as read-only. /// by the platform firmware. Should be treated as read-only.
/// Its attribute is BS+RT. /// Its attribute is BS+RT.
/// ///
#define EFI_SIGNATURE_SUPPORT_NAME L"SignatureSupport" #define EFI_SIGNATURE_SUPPORT_NAME L"SignatureSupport"
/// ///
/// Whether the platform firmware is operating in Secure boot mode (1) or not (0). /// Whether the platform firmware is operating in Secure boot mode (1) or not (0).
/// All other values are reserved. Should be treated as read-only. /// All other values are reserved. Should be treated as read-only.
/// Its attribute is BS+RT. /// Its attribute is BS+RT.
/// ///
#define EFI_SECURE_BOOT_MODE_NAME L"SecureBoot" #define EFI_SECURE_BOOT_MODE_NAME L"SecureBoot"
/// ///
/// The OEM's default Key Exchange Key Signature Database. Should be treated as read-only. /// The OEM's default Key Exchange Key Signature Database. Should be treated as read-only.
/// Its attribute is BS+RT. /// Its attribute is BS+RT.
/// ///
#define EFI_KEK_DEFAULT_VARIABLE_NAME L"KEKDefault" #define EFI_KEK_DEFAULT_VARIABLE_NAME L"KEKDefault"
/// ///
/// The OEM's default public Platform Key. Should be treated as read-only. /// The OEM's default public Platform Key. Should be treated as read-only.
/// Its attribute is BS+RT. /// Its attribute is BS+RT.
/// ///
#define EFI_PK_DEFAULT_VARIABLE_NAME L"PKDefault" #define EFI_PK_DEFAULT_VARIABLE_NAME L"PKDefault"
/// ///
/// The OEM's default secure boot signature store. Should be treated as read-only. /// The OEM's default secure boot signature store. Should be treated as read-only.
/// Its attribute is BS+RT. /// Its attribute is BS+RT.
/// ///
#define EFI_DB_DEFAULT_VARIABLE_NAME L"dbDefault" #define EFI_DB_DEFAULT_VARIABLE_NAME L"dbDefault"
/// ///
/// The OEM's default secure boot blacklist signature store. Should be treated as read-only. /// The OEM's default secure boot blacklist signature store. Should be treated as read-only.
/// Its attribute is BS+RT. /// Its attribute is BS+RT.
/// ///
#define EFI_DBX_DEFAULT_VARIABLE_NAME L"dbxDefault" #define EFI_DBX_DEFAULT_VARIABLE_NAME L"dbxDefault"
/// ///
/// The OEM's default secure boot timestamp signature store. Should be treated as read-only. /// The OEM's default secure boot timestamp signature store. Should be treated as read-only.
/// Its attribute is BS+RT. /// Its attribute is BS+RT.
/// ///
#define EFI_DBT_DEFAULT_VARIABLE_NAME L"dbtDefault" #define EFI_DBT_DEFAULT_VARIABLE_NAME L"dbtDefault"
/// ///
/// Allows the firmware to indicate supported features and actions to the OS. /// Allows the firmware to indicate supported features and actions to the OS.
/// Its attribute is BS+RT. /// Its attribute is BS+RT.
/// ///
#define EFI_OS_INDICATIONS_SUPPORT_VARIABLE_NAME L"OsIndicationsSupported" #define EFI_OS_INDICATIONS_SUPPORT_VARIABLE_NAME L"OsIndicationsSupported"
/// ///
/// Allows the OS to request the firmware to enable certain features and to take certain actions. /// Allows the OS to request the firmware to enable certain features and to take certain actions.
/// Its attribute is NV+BS+RT. /// Its attribute is NV+BS+RT.
/// ///
#define EFI_OS_INDICATIONS_VARIABLE_NAME L"OsIndications" #define EFI_OS_INDICATIONS_VARIABLE_NAME L"OsIndications"
/// ///
/// Whether the system is configured to use only vendor provided /// Whether the system is configured to use only vendor provided
/// keys or not. Should be treated as read-only. /// keys or not. Should be treated as read-only.
/// Its attribute is BS+RT. /// Its attribute is BS+RT.
/// ///
#define EFI_VENDOR_KEYS_VARIABLE_NAME L"VendorKeys" #define EFI_VENDOR_KEYS_VARIABLE_NAME L"VendorKeys"
#endif #endif

View File

@ -30,8 +30,8 @@
0x024dee41, 0x33e7, 0x11d3, {0x9d, 0x69, 0x00, 0x08, 0xc7, 0x81, 0xf3, 0x9f } \ 0x024dee41, 0x33e7, 0x11d3, {0x9d, 0x69, 0x00, 0x08, 0xc7, 0x81, 0xf3, 0x9f } \
} }
extern EFI_GUID gEfiPartTypeUnusedGuid; extern EFI_GUID gEfiPartTypeUnusedGuid;
extern EFI_GUID gEfiPartTypeSystemPartGuid; extern EFI_GUID gEfiPartTypeSystemPartGuid;
extern EFI_GUID gEfiPartTypeLegacyMbrGuid; extern EFI_GUID gEfiPartTypeLegacyMbrGuid;
#endif #endif

View File

@ -25,21 +25,21 @@
} }
typedef struct { typedef struct {
EFI_PHYSICAL_ADDRESS FrameBufferBase; EFI_PHYSICAL_ADDRESS FrameBufferBase;
UINT32 FrameBufferSize; UINT32 FrameBufferSize;
EFI_GRAPHICS_OUTPUT_MODE_INFORMATION GraphicsMode; EFI_GRAPHICS_OUTPUT_MODE_INFORMATION GraphicsMode;
} EFI_PEI_GRAPHICS_INFO_HOB; } EFI_PEI_GRAPHICS_INFO_HOB;
typedef struct { typedef struct {
UINT16 VendorId; ///< Ignore if the value is 0xFFFF. UINT16 VendorId; ///< Ignore if the value is 0xFFFF.
UINT16 DeviceId; ///< Ignore if the value is 0xFFFF. UINT16 DeviceId; ///< Ignore if the value is 0xFFFF.
UINT16 SubsystemVendorId; ///< Ignore if the value is 0xFFFF. UINT16 SubsystemVendorId; ///< Ignore if the value is 0xFFFF.
UINT16 SubsystemId; ///< Ignore if the value is 0xFFFF. UINT16 SubsystemId; ///< Ignore if the value is 0xFFFF.
UINT8 RevisionId; ///< Ignore if the value is 0xFF. UINT8 RevisionId; ///< Ignore if the value is 0xFF.
UINT8 BarIndex; ///< Ignore if the value is 0xFF. UINT8 BarIndex; ///< Ignore if the value is 0xFF.
} EFI_PEI_GRAPHICS_DEVICE_INFO_HOB; } EFI_PEI_GRAPHICS_DEVICE_INFO_HOB;
extern EFI_GUID gEfiGraphicsInfoHobGuid; extern EFI_GUID gEfiGraphicsInfoHobGuid;
extern EFI_GUID gEfiGraphicsDeviceInfoHobGuid; extern EFI_GUID gEfiGraphicsDeviceInfoHobGuid;
#endif #endif

View File

@ -17,6 +17,6 @@
0x414E6BDD, 0xE47B, 0x47cc, {0xB2, 0x44, 0xBB, 0x61, 0x02, 0x0C, 0xF5, 0x16} \ 0x414E6BDD, 0xE47B, 0x47cc, {0xB2, 0x44, 0xBB, 0x61, 0x02, 0x0C, 0xF5, 0x16} \
} }
extern EFI_GUID gEfiHardwareErrorVariableGuid; extern EFI_GUID gEfiHardwareErrorVariableGuid;
#endif #endif

View File

@ -14,6 +14,6 @@
#define EFI_HII_STANDARD_FORM_GUID \ #define EFI_HII_STANDARD_FORM_GUID \
{ 0x3bd2f4ec, 0xe524, 0x46e4, { 0xa9, 0xd8, 0x51, 0x1, 0x17, 0x42, 0x55, 0x62 } } { 0x3bd2f4ec, 0xe524, 0x46e4, { 0xa9, 0xd8, 0x51, 0x1, 0x17, 0x42, 0x55, 0x62 } }
extern EFI_GUID gEfiHiiStandardFormGuid; extern EFI_GUID gEfiHiiStandardFormGuid;
#endif #endif

View File

@ -16,6 +16,6 @@
#define EFI_HII_SET_KEYBOARD_LAYOUT_EVENT_GUID \ #define EFI_HII_SET_KEYBOARD_LAYOUT_EVENT_GUID \
{ 0x14982a4f, 0xb0ed, 0x45b8, { 0xa8, 0x11, 0x5a, 0x7a, 0x9b, 0xc2, 0x32, 0xdf }} { 0x14982a4f, 0xb0ed, 0x45b8, { 0xa8, 0x11, 0x5a, 0x7a, 0x9b, 0xc2, 0x32, 0xdf }}
extern EFI_GUID gEfiHiiKeyBoardLayoutGuid; extern EFI_GUID gEfiHiiKeyBoardLayoutGuid;
#endif #endif

View File

@ -25,9 +25,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#define EFI_HII_REST_STYLE_FORMSET_GUID \ #define EFI_HII_REST_STYLE_FORMSET_GUID \
{ 0x790217bd, 0xbecf, 0x485b, { 0x91, 0x70, 0x5f, 0xf7, 0x11, 0x31, 0x8b, 0x27 } } { 0x790217bd, 0xbecf, 0x485b, { 0x91, 0x70, 0x5f, 0xf7, 0x11, 0x31, 0x8b, 0x27 } }
extern EFI_GUID gEfiHiiPlatformSetupFormsetGuid; extern EFI_GUID gEfiHiiPlatformSetupFormsetGuid;
extern EFI_GUID gEfiHiiDriverHealthFormsetGuid; extern EFI_GUID gEfiHiiDriverHealthFormsetGuid;
extern EFI_GUID gEfiHiiUserCredentialFormsetGuid; extern EFI_GUID gEfiHiiUserCredentialFormsetGuid;
extern EFI_GUID gEfiHiiRestStyleFormsetGuid; extern EFI_GUID gEfiHiiRestStyleFormsetGuid;
#endif #endif

View File

@ -19,6 +19,6 @@
0x7739f24c, 0x93d7, 0x11d4, {0x9a, 0x3a, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \ 0x7739f24c, 0x93d7, 0x11d4, {0x9a, 0x3a, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \
} }
extern EFI_GUID gEfiHobListGuid; extern EFI_GUID gEfiHobListGuid;
#endif #endif

View File

@ -23,27 +23,27 @@
/// Varialbe name with guid EFI_IMAGE_SECURITY_DATABASE_GUID /// Varialbe name with guid EFI_IMAGE_SECURITY_DATABASE_GUID
/// for the authorized signature database. /// for the authorized signature database.
/// ///
#define EFI_IMAGE_SECURITY_DATABASE L"db" #define EFI_IMAGE_SECURITY_DATABASE L"db"
/// ///
/// Varialbe name with guid EFI_IMAGE_SECURITY_DATABASE_GUID /// Varialbe name with guid EFI_IMAGE_SECURITY_DATABASE_GUID
/// for the forbidden signature database. /// for the forbidden signature database.
/// ///
#define EFI_IMAGE_SECURITY_DATABASE1 L"dbx" #define EFI_IMAGE_SECURITY_DATABASE1 L"dbx"
/// ///
/// Variable name with guid EFI_IMAGE_SECURITY_DATABASE_GUID /// Variable name with guid EFI_IMAGE_SECURITY_DATABASE_GUID
/// for the timestamp signature database. /// for the timestamp signature database.
/// ///
#define EFI_IMAGE_SECURITY_DATABASE2 L"dbt" #define EFI_IMAGE_SECURITY_DATABASE2 L"dbt"
#define SECURE_BOOT_MODE_ENABLE 1 #define SECURE_BOOT_MODE_ENABLE 1
#define SECURE_BOOT_MODE_DISABLE 0 #define SECURE_BOOT_MODE_DISABLE 0
#define SETUP_MODE 1 #define SETUP_MODE 1
#define USER_MODE 0 #define USER_MODE 0
//*********************************************************************** // ***********************************************************************
// Signature Database // Signature Database
//*********************************************************************** // ***********************************************************************
/// ///
/// The format of a signature database. /// The format of a signature database.
/// ///
@ -53,30 +53,30 @@ typedef struct {
/// ///
/// An identifier which identifies the agent which added the signature to the list. /// An identifier which identifies the agent which added the signature to the list.
/// ///
EFI_GUID SignatureOwner; EFI_GUID SignatureOwner;
/// ///
/// The format of the signature is defined by the SignatureType. /// The format of the signature is defined by the SignatureType.
/// ///
UINT8 SignatureData[1]; UINT8 SignatureData[1];
} EFI_SIGNATURE_DATA; } EFI_SIGNATURE_DATA;
typedef struct { typedef struct {
/// ///
/// Type of the signature. GUID signature types are defined in below. /// Type of the signature. GUID signature types are defined in below.
/// ///
EFI_GUID SignatureType; EFI_GUID SignatureType;
/// ///
/// Total size of the signature list, including this header. /// Total size of the signature list, including this header.
/// ///
UINT32 SignatureListSize; UINT32 SignatureListSize;
/// ///
/// Size of the signature header which precedes the array of signatures. /// Size of the signature header which precedes the array of signatures.
/// ///
UINT32 SignatureHeaderSize; UINT32 SignatureHeaderSize;
/// ///
/// Size of each signature. /// Size of each signature.
/// ///
UINT32 SignatureSize; UINT32 SignatureSize;
/// ///
/// Header before the array of signatures. The format of this header is specified /// Header before the array of signatures. The format of this header is specified
/// by the SignatureType. /// by the SignatureType.
@ -91,33 +91,33 @@ typedef struct {
/// ///
/// The SHA256 hash of an X.509 certificate's To-Be-Signed contents. /// The SHA256 hash of an X.509 certificate's To-Be-Signed contents.
/// ///
EFI_SHA256_HASH ToBeSignedHash; EFI_SHA256_HASH ToBeSignedHash;
/// ///
/// The time that the certificate shall be considered to be revoked. /// The time that the certificate shall be considered to be revoked.
/// ///
EFI_TIME TimeOfRevocation; EFI_TIME TimeOfRevocation;
} EFI_CERT_X509_SHA256; } EFI_CERT_X509_SHA256;
typedef struct { typedef struct {
/// ///
/// The SHA384 hash of an X.509 certificate's To-Be-Signed contents. /// The SHA384 hash of an X.509 certificate's To-Be-Signed contents.
/// ///
EFI_SHA384_HASH ToBeSignedHash; EFI_SHA384_HASH ToBeSignedHash;
/// ///
/// The time that the certificate shall be considered to be revoked. /// The time that the certificate shall be considered to be revoked.
/// ///
EFI_TIME TimeOfRevocation; EFI_TIME TimeOfRevocation;
} EFI_CERT_X509_SHA384; } EFI_CERT_X509_SHA384;
typedef struct { typedef struct {
/// ///
/// The SHA512 hash of an X.509 certificate's To-Be-Signed contents. /// The SHA512 hash of an X.509 certificate's To-Be-Signed contents.
/// ///
EFI_SHA512_HASH ToBeSignedHash; EFI_SHA512_HASH ToBeSignedHash;
/// ///
/// The time that the certificate shall be considered to be revoked. /// The time that the certificate shall be considered to be revoked.
/// ///
EFI_TIME TimeOfRevocation; EFI_TIME TimeOfRevocation;
} EFI_CERT_X509_SHA512; } EFI_CERT_X509_SHA512;
#pragma pack() #pragma pack()
@ -265,9 +265,9 @@ typedef struct {
0x4aafd29d, 0x68df, 0x49ee, {0x8a, 0xa9, 0x34, 0x7d, 0x37, 0x56, 0x65, 0xa7} \ 0x4aafd29d, 0x68df, 0x49ee, {0x8a, 0xa9, 0x34, 0x7d, 0x37, 0x56, 0x65, 0xa7} \
} }
//*********************************************************************** // ***********************************************************************
// Image Execution Information Table Definition // Image Execution Information Table Definition
//*********************************************************************** // ***********************************************************************
typedef UINT32 EFI_IMAGE_EXECUTION_ACTION; typedef UINT32 EFI_IMAGE_EXECUTION_ACTION;
#define EFI_IMAGE_EXECUTION_AUTHENTICATION 0x00000007 #define EFI_IMAGE_EXECUTION_AUTHENTICATION 0x00000007
@ -316,31 +316,30 @@ typedef struct {
/// ///
} EFI_IMAGE_EXECUTION_INFO; } EFI_IMAGE_EXECUTION_INFO;
typedef struct { typedef struct {
/// ///
/// Number of EFI_IMAGE_EXECUTION_INFO structures. /// Number of EFI_IMAGE_EXECUTION_INFO structures.
/// ///
UINTN NumberOfImages; UINTN NumberOfImages;
/// ///
/// Number of image instances of EFI_IMAGE_EXECUTION_INFO structures. /// Number of image instances of EFI_IMAGE_EXECUTION_INFO structures.
/// ///
// EFI_IMAGE_EXECUTION_INFO InformationInfo[] // EFI_IMAGE_EXECUTION_INFO InformationInfo[]
} EFI_IMAGE_EXECUTION_INFO_TABLE; } EFI_IMAGE_EXECUTION_INFO_TABLE;
extern EFI_GUID gEfiImageSecurityDatabaseGuid; extern EFI_GUID gEfiImageSecurityDatabaseGuid;
extern EFI_GUID gEfiCertSha256Guid; extern EFI_GUID gEfiCertSha256Guid;
extern EFI_GUID gEfiCertRsa2048Guid; extern EFI_GUID gEfiCertRsa2048Guid;
extern EFI_GUID gEfiCertRsa2048Sha256Guid; extern EFI_GUID gEfiCertRsa2048Sha256Guid;
extern EFI_GUID gEfiCertSha1Guid; extern EFI_GUID gEfiCertSha1Guid;
extern EFI_GUID gEfiCertRsa2048Sha1Guid; extern EFI_GUID gEfiCertRsa2048Sha1Guid;
extern EFI_GUID gEfiCertX509Guid; extern EFI_GUID gEfiCertX509Guid;
extern EFI_GUID gEfiCertSha224Guid; extern EFI_GUID gEfiCertSha224Guid;
extern EFI_GUID gEfiCertSha384Guid; extern EFI_GUID gEfiCertSha384Guid;
extern EFI_GUID gEfiCertSha512Guid; extern EFI_GUID gEfiCertSha512Guid;
extern EFI_GUID gEfiCertX509Sha256Guid; extern EFI_GUID gEfiCertX509Sha256Guid;
extern EFI_GUID gEfiCertX509Sha384Guid; extern EFI_GUID gEfiCertX509Sha384Guid;
extern EFI_GUID gEfiCertX509Sha512Guid; extern EFI_GUID gEfiCertX509Sha512Guid;
extern EFI_GUID gEfiCertPkcs7Guid; extern EFI_GUID gEfiCertPkcs7Guid;
#endif #endif

View File

@ -31,68 +31,66 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
{0x67d6f4cd, 0xd6b8, 0x4573, \ {0x67d6f4cd, 0xd6b8, 0x4573, \
{0xbf, 0x4a, 0xde, 0x5e, 0x25, 0x2d, 0x61, 0xae }} {0xbf, 0x4a, 0xde, 0x5e, 0x25, 0x2d, 0x61, 0xae }}
#pragma pack(1) #pragma pack(1)
typedef struct { typedef struct {
/// ///
/// Version of the structure, initially 0x00000001. /// Version of the structure, initially 0x00000001.
/// ///
UINT32 Version; UINT32 Version;
/// ///
/// The unique identifier of this capsule. /// The unique identifier of this capsule.
/// ///
UINT32 CapsuleId; UINT32 CapsuleId;
/// ///
/// The length of the JSON payload immediately following this header, in bytes. /// The length of the JSON payload immediately following this header, in bytes.
/// ///
UINT32 PayloadLength; UINT32 PayloadLength;
/// ///
/// Variable length buffer containing the JSON payload that should be parsed and applied to the system. The /// Variable length buffer containing the JSON payload that should be parsed and applied to the system. The
/// definition of the JSON schema used in the payload is beyond the scope of this specification. /// definition of the JSON schema used in the payload is beyond the scope of this specification.
/// ///
UINT8 Payload[]; UINT8 Payload[];
} EFI_JSON_CAPSULE_HEADER; } EFI_JSON_CAPSULE_HEADER;
typedef struct { typedef struct {
/// ///
/// The length of the following ConfigData, in bytes. /// The length of the following ConfigData, in bytes.
/// ///
UINT32 ConfigDataLength; UINT32 ConfigDataLength;
/// ///
/// Variable length buffer containing the JSON payload that describes one group of configuration data within /// Variable length buffer containing the JSON payload that describes one group of configuration data within
/// current system. The definition of the JSON schema used in this payload is beyond the scope of this specification. /// current system. The definition of the JSON schema used in this payload is beyond the scope of this specification.
/// ///
UINT8 ConfigData[]; UINT8 ConfigData[];
} EFI_JSON_CONFIG_DATA_ITEM; } EFI_JSON_CONFIG_DATA_ITEM;
typedef struct { typedef struct {
/// ///
/// Version of the structure, initially 0x00000001. /// Version of the structure, initially 0x00000001.
/// ///
UINT32 Version; UINT32 Version;
/// ///
////The total length of EFI_JSON_CAPSULE_CONFIG_DATA, in bytes. ////The total length of EFI_JSON_CAPSULE_CONFIG_DATA, in bytes.
/// ///
UINT32 TotalLength; UINT32 TotalLength;
/// ///
/// Array of configuration data groups. /// Array of configuration data groups.
/// ///
EFI_JSON_CONFIG_DATA_ITEM ConfigDataList[]; EFI_JSON_CONFIG_DATA_ITEM ConfigDataList[];
} EFI_JSON_CAPSULE_CONFIG_DATA; } EFI_JSON_CAPSULE_CONFIG_DATA;
#pragma pack() #pragma pack()
extern EFI_GUID gEfiJsonConfigDataTableGuid; extern EFI_GUID gEfiJsonConfigDataTableGuid;
extern EFI_GUID gEfiJsonCapsuleDataTableGuid; extern EFI_GUID gEfiJsonCapsuleDataTableGuid;
extern EFI_GUID gEfiJsonCapsuleResultTableGuid; extern EFI_GUID gEfiJsonCapsuleResultTableGuid;
extern EFI_GUID gEfiJsonCapsuleIdGuid; extern EFI_GUID gEfiJsonCapsuleIdGuid;
#endif #endif

View File

@ -25,6 +25,6 @@
#define LINUX_EFI_INITRD_MEDIA_GUID \ #define LINUX_EFI_INITRD_MEDIA_GUID \
{0x5568e427, 0x68fc, 0x4f3d, {0xac, 0x74, 0xca, 0x55, 0x52, 0x31, 0xcc, 0x68}} {0x5568e427, 0x68fc, 0x4f3d, {0xac, 0x74, 0xca, 0x55, 0x52, 0x31, 0xcc, 0x68}}
extern EFI_GUID gLinuxEfiInitrdMediaGuid; extern EFI_GUID gLinuxEfiInitrdMediaGuid;
#endif #endif

View File

@ -14,6 +14,6 @@
0x914AEBE7, 0x4635, 0x459b, { 0xAA, 0x1C, 0x11, 0xE2, 0x19, 0xB0, 0x3A, 0x10 } \ 0x914AEBE7, 0x4635, 0x459b, { 0xAA, 0x1C, 0x11, 0xE2, 0x19, 0xB0, 0x3A, 0x10 } \
} }
extern EFI_GUID gEfiMdePkgTokenSpaceGuid; extern EFI_GUID gEfiMdePkgTokenSpaceGuid;
#endif #endif

View File

@ -21,8 +21,8 @@
#define EFI_HOB_MEMORY_ALLOC_MODULE_GUID \ #define EFI_HOB_MEMORY_ALLOC_MODULE_GUID \
{0xf8e21975, 0x899, 0x4f58, {0xa4, 0xbe, 0x55, 0x25, 0xa9, 0xc6, 0xd7, 0x7a} } {0xf8e21975, 0x899, 0x4f58, {0xa4, 0xbe, 0x55, 0x25, 0xa9, 0xc6, 0xd7, 0x7a} }
extern EFI_GUID gEfiHobMemoryAllocBspStoreGuid; extern EFI_GUID gEfiHobMemoryAllocBspStoreGuid;
extern EFI_GUID gEfiHobMemoryAllocStackGuid; extern EFI_GUID gEfiHobMemoryAllocStackGuid;
extern EFI_GUID gEfiHobMemoryAllocModuleGuid; extern EFI_GUID gEfiHobMemoryAllocModuleGuid;
#endif #endif

View File

@ -9,20 +9,20 @@
#ifndef __UEFI_MEMORY_ATTRIBUTES_TABLE_H__ #ifndef __UEFI_MEMORY_ATTRIBUTES_TABLE_H__
#define __UEFI_MEMORY_ATTRIBUTES_TABLE_H__ #define __UEFI_MEMORY_ATTRIBUTES_TABLE_H__
#define EFI_MEMORY_ATTRIBUTES_TABLE_GUID {\ #define EFI_MEMORY_ATTRIBUTES_TABLE_GUID {\
0xdcfa911d, 0x26eb, 0x469f, {0xa2, 0x20, 0x38, 0xb7, 0xdc, 0x46, 0x12, 0x20} \ 0xdcfa911d, 0x26eb, 0x469f, {0xa2, 0x20, 0x38, 0xb7, 0xdc, 0x46, 0x12, 0x20} \
} }
typedef struct { typedef struct {
UINT32 Version; UINT32 Version;
UINT32 NumberOfEntries; UINT32 NumberOfEntries;
UINT32 DescriptorSize; UINT32 DescriptorSize;
UINT32 Reserved; UINT32 Reserved;
//EFI_MEMORY_DESCRIPTOR Entry[1]; // EFI_MEMORY_DESCRIPTOR Entry[1];
} EFI_MEMORY_ATTRIBUTES_TABLE; } EFI_MEMORY_ATTRIBUTES_TABLE;
#define EFI_MEMORY_ATTRIBUTES_TABLE_VERSION 0x00000001 #define EFI_MEMORY_ATTRIBUTES_TABLE_VERSION 0x00000001
extern EFI_GUID gEfiMemoryAttributesTableGuid; extern EFI_GUID gEfiMemoryAttributesTableGuid;
#endif #endif

View File

@ -27,25 +27,25 @@
/// EFI_VARIABLE_BOOTSERVICE_ACCESS | /// EFI_VARIABLE_BOOTSERVICE_ACCESS |
/// EFI_VARIABLE_RUNTIME_ACCESS /// EFI_VARIABLE_RUNTIME_ACCESS
/// ///
#define MEMORY_OVERWRITE_REQUEST_VARIABLE_NAME L"MemoryOverwriteRequestControl" #define MEMORY_OVERWRITE_REQUEST_VARIABLE_NAME L"MemoryOverwriteRequestControl"
/// ///
/// 0 = Firmware MUST clear the MOR bit /// 0 = Firmware MUST clear the MOR bit
/// 1 = Firmware MUST set the MOR bit /// 1 = Firmware MUST set the MOR bit
/// ///
#define MOR_CLEAR_MEMORY_BIT_MASK 0x01 #define MOR_CLEAR_MEMORY_BIT_MASK 0x01
/// ///
/// 0 = Firmware MAY autodetect a clean shutdown of the Static RTM OS. /// 0 = Firmware MAY autodetect a clean shutdown of the Static RTM OS.
/// 1 = Firmware MUST NOT autodetect a clean shutdown of the Static RTM OS. /// 1 = Firmware MUST NOT autodetect a clean shutdown of the Static RTM OS.
/// ///
#define MOR_DISABLEAUTODETECT_BIT_MASK 0x10 #define MOR_DISABLEAUTODETECT_BIT_MASK 0x10
/// ///
/// MOR field bit offset /// MOR field bit offset
/// ///
#define MOR_CLEAR_MEMORY_BIT_OFFSET 0 #define MOR_CLEAR_MEMORY_BIT_OFFSET 0
#define MOR_DISABLEAUTODETECT_BIT_OFFSET 4 #define MOR_DISABLEAUTODETECT_BIT_OFFSET 4
/** /**
Return the ClearMemory bit value 0 or 1. Return the ClearMemory bit value 0 or 1.
@ -54,7 +54,7 @@
@return ClearMemory bit value @return ClearMemory bit value
**/ **/
#define MOR_CLEAR_MEMORY_VALUE(mor) (((UINT8)(mor) & MOR_CLEAR_MEMORY_BIT_MASK) >> MOR_CLEAR_MEMORY_BIT_OFFSET) #define MOR_CLEAR_MEMORY_VALUE(mor) (((UINT8)(mor) & MOR_CLEAR_MEMORY_BIT_MASK) >> MOR_CLEAR_MEMORY_BIT_OFFSET)
/** /**
Return the DisableAutoDetect bit value 0 or 1. Return the DisableAutoDetect bit value 0 or 1.
@ -63,8 +63,8 @@
@return DisableAutoDetect bit value @return DisableAutoDetect bit value
**/ **/
#define MOR_DISABLE_AUTO_DETECT_VALUE(mor) (((UINT8)(mor) & MOR_DISABLEAUTODETECT_BIT_MASK) >> MOR_DISABLEAUTODETECT_BIT_OFFSET) #define MOR_DISABLE_AUTO_DETECT_VALUE(mor) (((UINT8)(mor) & MOR_DISABLEAUTODETECT_BIT_MASK) >> MOR_DISABLEAUTODETECT_BIT_OFFSET)
extern EFI_GUID gEfiMemoryOverwriteControlDataGuid; extern EFI_GUID gEfiMemoryOverwriteControlDataGuid;
#endif #endif

View File

@ -22,8 +22,8 @@
// //
// GUID name defined in spec. // GUID name defined in spec.
// //
#define MPS_TABLE_GUID EFI_MPS_TABLE_GUID #define MPS_TABLE_GUID EFI_MPS_TABLE_GUID
extern EFI_GUID gEfiMpsTableGuid; extern EFI_GUID gEfiMpsTableGuid;
#endif #endif

View File

@ -42,11 +42,11 @@
0xd487ddb4, 0x008b, 0x11d9, {0xaf, 0xdc, 0x00, 0x10, 0x83, 0xff, 0xca, 0x4d } \ 0xd487ddb4, 0x008b, 0x11d9, {0xaf, 0xdc, 0x00, 0x10, 0x83, 0xff, 0xca, 0x4d } \
} }
extern EFI_GUID gEfiPcAnsiGuid; extern EFI_GUID gEfiPcAnsiGuid;
extern EFI_GUID gEfiVT100Guid; extern EFI_GUID gEfiVT100Guid;
extern EFI_GUID gEfiVT100PlusGuid; extern EFI_GUID gEfiVT100PlusGuid;
extern EFI_GUID gEfiVTUTF8Guid; extern EFI_GUID gEfiVTUTF8Guid;
extern EFI_GUID gEfiUartDevicePathGuid; extern EFI_GUID gEfiUartDevicePathGuid;
extern EFI_GUID gEfiSasDevicePathGuid; extern EFI_GUID gEfiSasDevicePathGuid;
#endif #endif

View File

@ -22,32 +22,29 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
{ 0xeb66918a, 0x7eef, 0x402a, \ { 0xeb66918a, 0x7eef, 0x402a, \
{ 0x84, 0x2e, 0x93, 0x1d, 0x21, 0xc3, 0x8a, 0xe9 }} { 0x84, 0x2e, 0x93, 0x1d, 0x21, 0xc3, 0x8a, 0xe9 }}
#pragma pack(1) #pragma pack(1)
typedef struct { typedef struct {
/// ///
/// Version of the structure, must be 0x1. /// Version of the structure, must be 0x1.
/// ///
UINT16 Version; UINT16 Version;
/// ///
/// Size in bytes of the entire EFI_RT_PROPERTIES_TABLE, must be 8. /// Size in bytes of the entire EFI_RT_PROPERTIES_TABLE, must be 8.
/// ///
UINT16 Length; UINT16 Length;
/// ///
/// Bitmask of which calls are or are not supported, where a bit set to 1 indicates /// Bitmask of which calls are or are not supported, where a bit set to 1 indicates
/// that the call is supported, and 0 indicates that it is not. /// that the call is supported, and 0 indicates that it is not.
/// ///
UINT32 RuntimeServicesSupported; UINT32 RuntimeServicesSupported;
} EFI_RT_PROPERTIES_TABLE; } EFI_RT_PROPERTIES_TABLE;
#pragma pack() #pragma pack()
#define EFI_RT_PROPERTIES_TABLE_VERSION 0x1 #define EFI_RT_PROPERTIES_TABLE_VERSION 0x1
#define EFI_RT_SUPPORTED_GET_TIME 0x0001 #define EFI_RT_SUPPORTED_GET_TIME 0x0001
#define EFI_RT_SUPPORTED_SET_TIME 0x0002 #define EFI_RT_SUPPORTED_SET_TIME 0x0002
@ -64,6 +61,6 @@ typedef struct {
#define EFI_RT_SUPPORTED_QUERY_CAPSULE_CAPABILITIES 0x1000 #define EFI_RT_SUPPORTED_QUERY_CAPSULE_CAPABILITIES 0x1000
#define EFI_RT_SUPPORTED_QUERY_VARIABLE_INFO 0x2000 #define EFI_RT_SUPPORTED_QUERY_VARIABLE_INFO 0x2000
extern EFI_GUID gEfiRtPropertiesTableGuid; extern EFI_GUID gEfiRtPropertiesTableGuid;
#endif #endif

View File

@ -26,7 +26,7 @@
0xf2fd1544, 0x9794, 0x4a2c, {0x99, 0x2e, 0xe5, 0xbb, 0xcf, 0x20, 0xe3, 0x94 } \ 0xf2fd1544, 0x9794, 0x4a2c, {0x99, 0x2e, 0xe5, 0xbb, 0xcf, 0x20, 0xe3, 0x94 } \
} }
extern EFI_GUID gEfiSmbiosTableGuid; extern EFI_GUID gEfiSmbiosTableGuid;
extern EFI_GUID gEfiSmbios3TableGuid; extern EFI_GUID gEfiSmbios3TableGuid;
#endif #endif

View File

@ -31,15 +31,14 @@ typedef struct {
/// Designates the number of possible regions in the system /// Designates the number of possible regions in the system
/// that can be usable for SMRAM. /// that can be usable for SMRAM.
/// ///
UINT32 NumberOfSmmReservedRegions; UINT32 NumberOfSmmReservedRegions;
/// ///
/// Used throughout this protocol to describe the candidate /// Used throughout this protocol to describe the candidate
/// regions for SMRAM that are supported by this platform. /// regions for SMRAM that are supported by this platform.
/// ///
EFI_SMRAM_DESCRIPTOR Descriptor[1]; EFI_SMRAM_DESCRIPTOR Descriptor[1];
} EFI_SMRAM_HOB_DESCRIPTOR_BLOCK; } EFI_SMRAM_HOB_DESCRIPTOR_BLOCK;
extern EFI_GUID gEfiSmmSmramMemoryGuid; extern EFI_GUID gEfiSmmSmramMemoryGuid;
#endif #endif

View File

@ -47,27 +47,27 @@ typedef struct {
/// not be the same for different boots. Type EFI_HII_HANDLE is defined in /// not be the same for different boots. Type EFI_HII_HANDLE is defined in
/// EFI_HII_DATABASE_PROTOCOL.NewPackageList() in the UEFI Specification. /// EFI_HII_DATABASE_PROTOCOL.NewPackageList() in the UEFI Specification.
/// ///
EFI_HII_HANDLE Handle; EFI_HII_HANDLE Handle;
/// ///
/// When combined with Handle, the string token can be used to retrieve the string. /// When combined with Handle, the string token can be used to retrieve the string.
/// Type EFI_STRING_ID is defined in EFI_IFR_OP_HEADER in the UEFI Specification. /// Type EFI_STRING_ID is defined in EFI_IFR_OP_HEADER in the UEFI Specification.
/// ///
EFI_STRING_ID Token; EFI_STRING_ID Token;
} EFI_STATUS_CODE_STRING_TOKEN; } EFI_STATUS_CODE_STRING_TOKEN;
typedef union { typedef union {
/// ///
/// ASCII formatted string. /// ASCII formatted string.
/// ///
CHAR8 *Ascii; CHAR8 *Ascii;
/// ///
/// Unicode formatted string. /// Unicode formatted string.
/// ///
CHAR16 *Unicode; CHAR16 *Unicode;
/// ///
/// HII handle/token pair. /// HII handle/token pair.
/// ///
EFI_STATUS_CODE_STRING_TOKEN Hii; EFI_STATUS_CODE_STRING_TOKEN Hii;
} EFI_STATUS_CODE_STRING; } EFI_STATUS_CODE_STRING;
/// ///
@ -84,19 +84,19 @@ typedef struct {
/// DataHeader.Type should be /// DataHeader.Type should be
/// EFI_STATUS_CODE_DATA_TYPE_STRING_GUID. /// EFI_STATUS_CODE_DATA_TYPE_STRING_GUID.
/// ///
EFI_STATUS_CODE_DATA DataHeader; EFI_STATUS_CODE_DATA DataHeader;
/// ///
/// Specifies the format of the data in String. /// Specifies the format of the data in String.
/// ///
EFI_STRING_TYPE StringType; EFI_STRING_TYPE StringType;
/// ///
/// A pointer to the extended data. The data follows the format specified by /// A pointer to the extended data. The data follows the format specified by
/// StringType. /// StringType.
/// ///
EFI_STATUS_CODE_STRING String; EFI_STATUS_CODE_STRING String;
} EFI_STATUS_CODE_STRING_DATA; } EFI_STATUS_CODE_STRING_DATA;
extern EFI_GUID gEfiStatusCodeDataTypeStringGuid; extern EFI_GUID gEfiStatusCodeDataTypeStringGuid;
/// ///
/// Global ID for the following structures: /// Global ID for the following structures:
@ -141,7 +141,7 @@ typedef struct {
/// device that does not have a device path. DataHeader.Type should be /// device that does not have a device path. DataHeader.Type should be
/// EFI_STATUS_CODE_SPECIFIC_DATA_GUID. /// EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
/// ///
EFI_STATUS_CODE_DATA DataHeader; EFI_STATUS_CODE_DATA DataHeader;
/// ///
/// The device path to the controller or the hardware device. Note that this parameter is a /// The device path to the controller or the hardware device. Note that this parameter is a
/// variable-length device path structure and not a pointer to such a structure. This structure is /// variable-length device path structure and not a pointer to such a structure. This structure is
@ -168,11 +168,11 @@ typedef struct {
/// sizeof (EFI_DEVICE_HANDLE_EXTENDED_DATA) - HeaderSize, and /// sizeof (EFI_DEVICE_HANDLE_EXTENDED_DATA) - HeaderSize, and
/// DataHeader.Type should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID. /// DataHeader.Type should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
/// ///
EFI_STATUS_CODE_DATA DataHeader; EFI_STATUS_CODE_DATA DataHeader;
/// ///
/// The device handle. /// The device handle.
/// ///
EFI_HANDLE Handle; EFI_HANDLE Handle;
} EFI_DEVICE_HANDLE_EXTENDED_DATA; } EFI_DEVICE_HANDLE_EXTENDED_DATA;
/// ///
@ -196,27 +196,27 @@ typedef struct {
/// sizeof(UINT32) + 3 * sizeof (UINT16) ), and DataHeader.Type /// sizeof(UINT32) + 3 * sizeof (UINT16) ), and DataHeader.Type
/// should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID. /// should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
/// ///
EFI_STATUS_CODE_DATA DataHeader; EFI_STATUS_CODE_DATA DataHeader;
/// ///
/// The PCI BAR. Applicable only for PCI devices. Ignored for all other devices. /// The PCI BAR. Applicable only for PCI devices. Ignored for all other devices.
/// ///
UINT32 Bar; UINT32 Bar;
/// ///
/// DevicePathSize should be zero if it is a virtual device that is not associated with /// DevicePathSize should be zero if it is a virtual device that is not associated with
/// a device path. Otherwise, this parameter is the length of the variable-length /// a device path. Otherwise, this parameter is the length of the variable-length
/// DevicePath. /// DevicePath.
/// ///
UINT16 DevicePathSize; UINT16 DevicePathSize;
/// ///
/// Represents the size the ReqRes parameter. ReqResSize should be zero if the /// Represents the size the ReqRes parameter. ReqResSize should be zero if the
/// requested resources are not provided as a part of extended data. /// requested resources are not provided as a part of extended data.
/// ///
UINT16 ReqResSize; UINT16 ReqResSize;
/// ///
/// Represents the size the AllocRes parameter. AllocResSize should be zero if the /// Represents the size the AllocRes parameter. AllocResSize should be zero if the
/// allocated resources are not provided as a part of extended data. /// allocated resources are not provided as a part of extended data.
/// ///
UINT16 AllocResSize; UINT16 AllocResSize;
/// ///
/// The device path to the controller or the hardware device that did not get the requested /// The device path to the controller or the hardware device that did not get the requested
/// resources. Note that this parameter is the variable-length device path structure and not /// resources. Note that this parameter is the variable-length device path structure and not
@ -246,11 +246,11 @@ typedef struct {
/// ///
/// The INT16 number by which to multiply the base-2 representation. /// The INT16 number by which to multiply the base-2 representation.
/// ///
INT16 Value; INT16 Value;
/// ///
/// The INT16 number by which to raise the base-2 calculation. /// The INT16 number by which to raise the base-2 calculation.
/// ///
INT16 Exponent; INT16 Exponent;
} EFI_EXP_BASE10_DATA; } EFI_EXP_BASE10_DATA;
/// ///
@ -268,15 +268,15 @@ typedef struct {
/// HeaderSize, and DataHeader.Type should be /// HeaderSize, and DataHeader.Type should be
/// EFI_STATUS_CODE_SPECIFIC_DATA_GUID. /// EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
/// ///
EFI_STATUS_CODE_DATA DataHeader; EFI_STATUS_CODE_DATA DataHeader;
/// ///
/// The voltage value at the time of the error. /// The voltage value at the time of the error.
/// ///
EFI_EXP_BASE10_DATA Voltage; EFI_EXP_BASE10_DATA Voltage;
/// ///
/// The voltage threshold. /// The voltage threshold.
/// ///
EFI_EXP_BASE10_DATA Threshold; EFI_EXP_BASE10_DATA Threshold;
} EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA; } EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA;
/// ///
@ -290,11 +290,11 @@ typedef struct {
/// HeaderSize, and DataHeader.Type should be /// HeaderSize, and DataHeader.Type should be
/// EFI_STATUS_CODE_SPECIFIC_DATA_GUID. /// EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
/// ///
EFI_STATUS_CODE_DATA DataHeader; EFI_STATUS_CODE_DATA DataHeader;
/// ///
/// The version of the microcode update from the header. /// The version of the microcode update from the header.
/// ///
UINT32 Version; UINT32 Version;
} EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA; } EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA;
/// ///
@ -309,11 +309,11 @@ typedef struct {
/// HeaderSize, and DataHeader.Type should be /// HeaderSize, and DataHeader.Type should be
/// EFI_STATUS_CODE_SPECIFIC_DATA_GUID. /// EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
/// ///
EFI_STATUS_CODE_DATA DataHeader; EFI_STATUS_CODE_DATA DataHeader;
/// ///
/// The number of seconds that the computing unit timer was configured to expire. /// The number of seconds that the computing unit timer was configured to expire.
/// ///
EFI_EXP_BASE10_DATA TimerLimit; EFI_EXP_BASE10_DATA TimerLimit;
} EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA; } EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA;
/// ///
@ -351,15 +351,15 @@ typedef struct {
/// HeaderSize , and DataHeader.Type should be /// HeaderSize , and DataHeader.Type should be
/// EFI_STATUS_CODE_SPECIFIC_DATA_GUID. /// EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
/// ///
EFI_STATUS_CODE_DATA DataHeader; EFI_STATUS_CODE_DATA DataHeader;
/// ///
/// The unit number of the computing unit that does not match. /// The unit number of the computing unit that does not match.
/// ///
UINT32 Instance; UINT32 Instance;
/// ///
/// The attributes describing the failure. /// The attributes describing the failure.
/// ///
UINT16 Attributes; UINT16 Attributes;
} EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA; } EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA;
/// ///
@ -376,15 +376,15 @@ typedef struct {
/// HeaderSize , and DataHeader.Type should be /// HeaderSize , and DataHeader.Type should be
/// EFI_STATUS_CODE_SPECIFIC_DATA_GUID. /// EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
/// ///
EFI_STATUS_CODE_DATA DataHeader; EFI_STATUS_CODE_DATA DataHeader;
/// ///
/// The thermal value at the time of the error. /// The thermal value at the time of the error.
/// ///
EFI_EXP_BASE10_DATA Temperature; EFI_EXP_BASE10_DATA Temperature;
/// ///
/// The thermal threshold. /// The thermal threshold.
/// ///
EFI_EXP_BASE10_DATA Threshold; EFI_EXP_BASE10_DATA Threshold;
} EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA; } EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA;
/// ///
@ -407,36 +407,36 @@ typedef struct {
/// sizeof (EFI_CACHE_INIT_DATA) - HeaderSize , and /// sizeof (EFI_CACHE_INIT_DATA) - HeaderSize , and
/// DataHeader.Type should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID. /// DataHeader.Type should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
/// ///
EFI_STATUS_CODE_DATA DataHeader; EFI_STATUS_CODE_DATA DataHeader;
/// ///
/// The cache level. Starts with 1 for level 1 cache. /// The cache level. Starts with 1 for level 1 cache.
/// ///
UINT32 Level; UINT32 Level;
/// ///
/// The type of cache. /// The type of cache.
/// ///
EFI_INIT_CACHE_TYPE Type; EFI_INIT_CACHE_TYPE Type;
} EFI_CACHE_INIT_DATA; } EFI_CACHE_INIT_DATA;
/// ///
/// ///
/// ///
typedef UINT32 EFI_CPU_STATE_CHANGE_CAUSE; typedef UINT32 EFI_CPU_STATE_CHANGE_CAUSE;
/// ///
/// The reasons that the processor is disabled. /// The reasons that the processor is disabled.
/// Used to fill in EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA.Cause. /// Used to fill in EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA.Cause.
/// ///
///@{ ///@{
#define EFI_CPU_CAUSE_INTERNAL_ERROR 0x0001 #define EFI_CPU_CAUSE_INTERNAL_ERROR 0x0001
#define EFI_CPU_CAUSE_THERMAL_ERROR 0x0002 #define EFI_CPU_CAUSE_THERMAL_ERROR 0x0002
#define EFI_CPU_CAUSE_SELFTEST_FAILURE 0x0004 #define EFI_CPU_CAUSE_SELFTEST_FAILURE 0x0004
#define EFI_CPU_CAUSE_PREBOOT_TIMEOUT 0x0008 #define EFI_CPU_CAUSE_PREBOOT_TIMEOUT 0x0008
#define EFI_CPU_CAUSE_FAILED_TO_START 0x0010 #define EFI_CPU_CAUSE_FAILED_TO_START 0x0010
#define EFI_CPU_CAUSE_CONFIG_ERROR 0x0020 #define EFI_CPU_CAUSE_CONFIG_ERROR 0x0020
#define EFI_CPU_CAUSE_USER_SELECTION 0x0080 #define EFI_CPU_CAUSE_USER_SELECTION 0x0080
#define EFI_CPU_CAUSE_BY_ASSOCIATION 0x0100 #define EFI_CPU_CAUSE_BY_ASSOCIATION 0x0100
#define EFI_CPU_CAUSE_UNSPECIFIED 0x8000 #define EFI_CPU_CAUSE_UNSPECIFIED 0x8000
///@} ///@}
/// ///
@ -454,17 +454,17 @@ typedef struct {
/// HeaderSize, and DataHeader.Type should be /// HeaderSize, and DataHeader.Type should be
/// EFI_STATUS_CODE_SPECIFIC_DATA_GUID. /// EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
/// ///
EFI_STATUS_CODE_DATA DataHeader; EFI_STATUS_CODE_DATA DataHeader;
/// ///
/// The reason for disabling the processor. /// The reason for disabling the processor.
/// ///
UINT32 Cause; UINT32 Cause;
/// ///
/// TRUE if the processor is disabled via software means such as not listing it in the ACPI tables. /// TRUE if the processor is disabled via software means such as not listing it in the ACPI tables.
/// Such a processor will respond to Interprocessor Interrupts (IPIs). FALSE if the processor is hardware /// Such a processor will respond to Interprocessor Interrupts (IPIs). FALSE if the processor is hardware
/// disabled, which means it is invisible to software and will not respond to IPIs. /// disabled, which means it is invisible to software and will not respond to IPIs.
/// ///
BOOLEAN SoftwareDisabled; BOOLEAN SoftwareDisabled;
} EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA; } EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA;
/// ///
@ -491,11 +491,11 @@ typedef UINT8 EFI_MEMORY_ERROR_OPERATION;
/// Memory Error Operations. Used to fill in EFI_MEMORY_EXTENDED_ERROR_DATA.Operation. /// Memory Error Operations. Used to fill in EFI_MEMORY_EXTENDED_ERROR_DATA.Operation.
/// ///
///@{ ///@{
#define EFI_MEMORY_OPERATION_OTHER 0x01 #define EFI_MEMORY_OPERATION_OTHER 0x01
#define EFI_MEMORY_OPERATION_UNKNOWN 0x02 #define EFI_MEMORY_OPERATION_UNKNOWN 0x02
#define EFI_MEMORY_OPERATION_READ 0x03 #define EFI_MEMORY_OPERATION_READ 0x03
#define EFI_MEMORY_OPERATION_WRITE 0x04 #define EFI_MEMORY_OPERATION_WRITE 0x04
#define EFI_MEMORY_OPERATION_PARTIAL_WRITE 0x05 #define EFI_MEMORY_OPERATION_PARTIAL_WRITE 0x05
///@} ///@}
/// ///
@ -510,55 +510,55 @@ typedef struct {
/// sizeof (EFI_MEMORY_EXTENDED_ERROR_DATA) - HeaderSize, and /// sizeof (EFI_MEMORY_EXTENDED_ERROR_DATA) - HeaderSize, and
/// DataHeader.Type should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID. /// DataHeader.Type should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
/// ///
EFI_STATUS_CODE_DATA DataHeader; EFI_STATUS_CODE_DATA DataHeader;
/// ///
/// The error granularity type. /// The error granularity type.
/// ///
EFI_MEMORY_ERROR_GRANULARITY Granularity; EFI_MEMORY_ERROR_GRANULARITY Granularity;
/// ///
/// The operation that resulted in the error being detected. /// The operation that resulted in the error being detected.
/// ///
EFI_MEMORY_ERROR_OPERATION Operation; EFI_MEMORY_ERROR_OPERATION Operation;
/// ///
/// The error syndrome, vendor-specific ECC syndrome, or CRC data associated with /// The error syndrome, vendor-specific ECC syndrome, or CRC data associated with
/// the error. If unknown, should be initialized to 0. /// the error. If unknown, should be initialized to 0.
/// Inconsistent with specification here: /// Inconsistent with specification here:
/// This field in StatusCodes spec0.9 is defined as UINT32, keep code unchanged. /// This field in StatusCodes spec0.9 is defined as UINT32, keep code unchanged.
/// ///
UINTN Syndrome; UINTN Syndrome;
/// ///
/// The physical address of the error. /// The physical address of the error.
/// ///
EFI_PHYSICAL_ADDRESS Address; EFI_PHYSICAL_ADDRESS Address;
/// ///
/// The range, in bytes, within which the error address can be determined. /// The range, in bytes, within which the error address can be determined.
/// ///
UINTN Resolution; UINTN Resolution;
} EFI_MEMORY_EXTENDED_ERROR_DATA; } EFI_MEMORY_EXTENDED_ERROR_DATA;
/// ///
/// A definition to describe that the operation is performed on multiple devices within the array. /// A definition to describe that the operation is performed on multiple devices within the array.
/// May be used for EFI_STATUS_CODE_DIMM_NUMBER.Array and EFI_STATUS_CODE_DIMM_NUMBER.Device. /// May be used for EFI_STATUS_CODE_DIMM_NUMBER.Array and EFI_STATUS_CODE_DIMM_NUMBER.Device.
/// ///
#define EFI_MULTIPLE_MEMORY_DEVICE_OPERATION 0xfffe #define EFI_MULTIPLE_MEMORY_DEVICE_OPERATION 0xfffe
/// ///
/// A definition to describe that the operation is performed on all devices within the array. /// A definition to describe that the operation is performed on all devices within the array.
/// May be used for EFI_STATUS_CODE_DIMM_NUMBER.Array and EFI_STATUS_CODE_DIMM_NUMBER.Device. /// May be used for EFI_STATUS_CODE_DIMM_NUMBER.Array and EFI_STATUS_CODE_DIMM_NUMBER.Device.
/// ///
#define EFI_ALL_MEMORY_DEVICE_OPERATION 0xffff #define EFI_ALL_MEMORY_DEVICE_OPERATION 0xffff
/// ///
/// A definition to describe that the operation is performed on multiple arrays. /// A definition to describe that the operation is performed on multiple arrays.
/// May be used for EFI_STATUS_CODE_DIMM_NUMBER.Array and EFI_STATUS_CODE_DIMM_NUMBER.Device. /// May be used for EFI_STATUS_CODE_DIMM_NUMBER.Array and EFI_STATUS_CODE_DIMM_NUMBER.Device.
/// ///
#define EFI_MULTIPLE_MEMORY_ARRAY_OPERATION 0xfffe #define EFI_MULTIPLE_MEMORY_ARRAY_OPERATION 0xfffe
/// ///
/// A definition to describe that the operation is performed on all the arrays. /// A definition to describe that the operation is performed on all the arrays.
/// May be used for EFI_STATUS_CODE_DIMM_NUMBER.Array and EFI_STATUS_CODE_DIMM_NUMBER.Device. /// May be used for EFI_STATUS_CODE_DIMM_NUMBER.Array and EFI_STATUS_CODE_DIMM_NUMBER.Device.
/// ///
#define EFI_ALL_MEMORY_ARRAY_OPERATION 0xffff #define EFI_ALL_MEMORY_ARRAY_OPERATION 0xffff
/// ///
/// This extended data provides some context that consumers can use to locate a DIMM within the /// This extended data provides some context that consumers can use to locate a DIMM within the
@ -575,15 +575,15 @@ typedef struct {
/// sizeof (EFI_STATUS_CODE_DIMM_NUMBER) - HeaderSize, and /// sizeof (EFI_STATUS_CODE_DIMM_NUMBER) - HeaderSize, and
/// DataHeader.Type should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID. /// DataHeader.Type should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
/// ///
EFI_STATUS_CODE_DATA DataHeader; EFI_STATUS_CODE_DATA DataHeader;
/// ///
/// The memory array number. /// The memory array number.
/// ///
UINT16 Array; UINT16 Array;
/// ///
/// The device number within that Array. /// The device number within that Array.
/// ///
UINT16 Device; UINT16 Device;
} EFI_STATUS_CODE_DIMM_NUMBER; } EFI_STATUS_CODE_DIMM_NUMBER;
/// ///
@ -599,11 +599,11 @@ typedef struct {
/// HeaderSize, and DataHeader.Type should be /// HeaderSize, and DataHeader.Type should be
/// EFI_STATUS_CODE_SPECIFIC_DATA_GUID. /// EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
/// ///
EFI_STATUS_CODE_DATA DataHeader; EFI_STATUS_CODE_DATA DataHeader;
/// ///
/// The instance number of the memory module that does not match. /// The instance number of the memory module that does not match.
/// ///
EFI_STATUS_CODE_DIMM_NUMBER Instance; EFI_STATUS_CODE_DIMM_NUMBER Instance;
} EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA; } EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA;
/// ///
@ -619,15 +619,15 @@ typedef struct {
/// sizeof (EFI_MEMORY_RANGE_EXTENDED_DATA) - HeaderSize, and /// sizeof (EFI_MEMORY_RANGE_EXTENDED_DATA) - HeaderSize, and
/// DataHeader.Type should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID. /// DataHeader.Type should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
/// ///
EFI_STATUS_CODE_DATA DataHeader; EFI_STATUS_CODE_DATA DataHeader;
/// ///
/// The starting address of the memory range. /// The starting address of the memory range.
/// ///
EFI_PHYSICAL_ADDRESS Start; EFI_PHYSICAL_ADDRESS Start;
/// ///
/// The length in bytes of the memory range. /// The length in bytes of the memory range.
/// ///
EFI_PHYSICAL_ADDRESS Length; EFI_PHYSICAL_ADDRESS Length;
} EFI_MEMORY_RANGE_EXTENDED_DATA; } EFI_MEMORY_RANGE_EXTENDED_DATA;
/// ///
@ -643,20 +643,20 @@ typedef struct {
/// sizeof (EFI_DEBUG_ASSERT_DATA) - HeaderSize , and /// sizeof (EFI_DEBUG_ASSERT_DATA) - HeaderSize , and
/// DataHeader.Type should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID. /// DataHeader.Type should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
/// ///
EFI_STATUS_CODE_DATA DataHeader; EFI_STATUS_CODE_DATA DataHeader;
/// ///
/// The line number of the source file where the fault was generated. /// The line number of the source file where the fault was generated.
/// ///
UINT32 LineNumber; UINT32 LineNumber;
/// ///
/// The size in bytes of FileName. /// The size in bytes of FileName.
/// ///
UINT32 FileNameSize; UINT32 FileNameSize;
/// ///
/// A pointer to a NULL-terminated ASCII or Unicode string that represents /// A pointer to a NULL-terminated ASCII or Unicode string that represents
/// the file name of the source file where the fault was generated. /// the file name of the source file where the fault was generated.
/// ///
EFI_STATUS_CODE_STRING_DATA *FileName; EFI_STATUS_CODE_STRING_DATA *FileName;
} EFI_DEBUG_ASSERT_DATA; } EFI_DEBUG_ASSERT_DATA;
/// ///
@ -668,31 +668,31 @@ typedef union {
/// EFI_SYSTEM_CONTEXT_EBC is defined in EFI_DEBUG_SUPPORT_PROTOCOL /// EFI_SYSTEM_CONTEXT_EBC is defined in EFI_DEBUG_SUPPORT_PROTOCOL
/// in the UEFI Specification. /// in the UEFI Specification.
/// ///
EFI_SYSTEM_CONTEXT_EBC SystemContextEbc; EFI_SYSTEM_CONTEXT_EBC SystemContextEbc;
/// ///
/// The context of the IA-32 processor when the exception was generated. Type /// The context of the IA-32 processor when the exception was generated. Type
/// EFI_SYSTEM_CONTEXT_IA32 is defined in the /// EFI_SYSTEM_CONTEXT_IA32 is defined in the
/// EFI_DEBUG_SUPPORT_PROTOCOL in the UEFI Specification. /// EFI_DEBUG_SUPPORT_PROTOCOL in the UEFI Specification.
/// ///
EFI_SYSTEM_CONTEXT_IA32 SystemContextIa32; EFI_SYSTEM_CONTEXT_IA32 SystemContextIa32;
/// ///
/// The context of the Itanium(R) processor when the exception was generated. Type /// The context of the Itanium(R) processor when the exception was generated. Type
/// EFI_SYSTEM_CONTEXT_IPF is defined in the /// EFI_SYSTEM_CONTEXT_IPF is defined in the
/// EFI_DEBUG_SUPPORT_PROTOCOL in the UEFI Specification. /// EFI_DEBUG_SUPPORT_PROTOCOL in the UEFI Specification.
/// ///
EFI_SYSTEM_CONTEXT_IPF SystemContextIpf; EFI_SYSTEM_CONTEXT_IPF SystemContextIpf;
/// ///
/// The context of the X64 processor when the exception was generated. Type /// The context of the X64 processor when the exception was generated. Type
/// EFI_SYSTEM_CONTEXT_X64 is defined in the /// EFI_SYSTEM_CONTEXT_X64 is defined in the
/// EFI_DEBUG_SUPPORT_PROTOCOL in the UEFI Specification. /// EFI_DEBUG_SUPPORT_PROTOCOL in the UEFI Specification.
/// ///
EFI_SYSTEM_CONTEXT_X64 SystemContextX64; EFI_SYSTEM_CONTEXT_X64 SystemContextX64;
/// ///
/// The context of the ARM processor when the exception was generated. Type /// The context of the ARM processor when the exception was generated. Type
/// EFI_SYSTEM_CONTEXT_ARM is defined in the /// EFI_SYSTEM_CONTEXT_ARM is defined in the
/// EFI_DEBUG_SUPPORT_PROTOCOL in the UEFI Specification. /// EFI_DEBUG_SUPPORT_PROTOCOL in the UEFI Specification.
/// ///
EFI_SYSTEM_CONTEXT_ARM SystemContextArm; EFI_SYSTEM_CONTEXT_ARM SystemContextArm;
} EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT; } EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT;
/// ///
@ -710,11 +710,11 @@ typedef struct {
/// and DataHeader.Type should be /// and DataHeader.Type should be
/// EFI_STATUS_CODE_SPECIFIC_DATA_GUID. /// EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
/// ///
EFI_STATUS_CODE_DATA DataHeader; EFI_STATUS_CODE_DATA DataHeader;
/// ///
/// The system context. /// The system context.
/// ///
EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT Context; EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT Context;
} EFI_STATUS_CODE_EXCEP_EXTENDED_DATA; } EFI_STATUS_CODE_EXCEP_EXTENDED_DATA;
/// ///
@ -731,21 +731,21 @@ typedef struct {
/// and DataHeader.Type should be /// and DataHeader.Type should be
/// EFI_STATUS_CODE_SPECIFIC_DATA_GUID. /// EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
/// ///
EFI_STATUS_CODE_DATA DataHeader; EFI_STATUS_CODE_DATA DataHeader;
/// ///
/// The controller handle. /// The controller handle.
/// ///
EFI_HANDLE ControllerHandle; EFI_HANDLE ControllerHandle;
/// ///
/// The driver binding handle. /// The driver binding handle.
/// ///
EFI_HANDLE DriverBindingHandle; EFI_HANDLE DriverBindingHandle;
/// ///
/// The size of the RemainingDevicePath. It is zero if the Start() function is /// The size of the RemainingDevicePath. It is zero if the Start() function is
/// called with RemainingDevicePath = NULL. The UEFI Specification allows /// called with RemainingDevicePath = NULL. The UEFI Specification allows
/// that the Start() function of bus drivers can be called in this way. /// that the Start() function of bus drivers can be called in this way.
/// ///
UINT16 DevicePathSize; UINT16 DevicePathSize;
/// ///
/// Matches the RemainingDevicePath parameter being passed to the Start() function. /// Matches the RemainingDevicePath parameter being passed to the Start() function.
/// Note that this parameter is the variable-length device path and not a pointer /// Note that this parameter is the variable-length device path and not a pointer
@ -768,15 +768,15 @@ typedef struct {
/// sizeof (EFI_LEGACY_OPROM_EXTENDED_DATA) - HeaderSize, and /// sizeof (EFI_LEGACY_OPROM_EXTENDED_DATA) - HeaderSize, and
/// DataHeader.Type should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID. /// DataHeader.Type should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
/// ///
EFI_STATUS_CODE_DATA DataHeader; EFI_STATUS_CODE_DATA DataHeader;
/// ///
/// The handle corresponding to the device that this legacy option ROM is being invoked. /// The handle corresponding to the device that this legacy option ROM is being invoked.
/// ///
EFI_HANDLE DeviceHandle; EFI_HANDLE DeviceHandle;
/// ///
/// The base address of the shadowed legacy ROM image. May or may not point to the shadow RAM area. /// The base address of the shadowed legacy ROM image. May or may not point to the shadow RAM area.
/// ///
EFI_PHYSICAL_ADDRESS RomImageBase; EFI_PHYSICAL_ADDRESS RomImageBase;
} EFI_LEGACY_OPROM_EXTENDED_DATA; } EFI_LEGACY_OPROM_EXTENDED_DATA;
/// ///
@ -790,14 +790,14 @@ typedef struct {
/// DataHeader.Size should be sizeof(EFI_RETURN_STATUS_EXTENDED_DATA) - HeaderSize, /// DataHeader.Size should be sizeof(EFI_RETURN_STATUS_EXTENDED_DATA) - HeaderSize,
/// DataHeader.Type should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID. /// DataHeader.Type should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
/// ///
EFI_STATUS_CODE_DATA DataHeader; EFI_STATUS_CODE_DATA DataHeader;
/// ///
/// The EFI_STATUS return value of the service or function whose failure triggered the /// The EFI_STATUS return value of the service or function whose failure triggered the
/// reporting of the status code (generally an error code or a debug code). /// reporting of the status code (generally an error code or a debug code).
/// ///
EFI_STATUS ReturnStatus; EFI_STATUS ReturnStatus;
} EFI_RETURN_STATUS_EXTENDED_DATA; } EFI_RETURN_STATUS_EXTENDED_DATA;
extern EFI_GUID gEfiStatusCodeSpecificDataGuid; extern EFI_GUID gEfiStatusCodeSpecificDataGuid;
#endif #endif

View File

@ -10,7 +10,6 @@
**/ **/
#ifndef _SYSTEM_RESOURCE_TABLE_H__ #ifndef _SYSTEM_RESOURCE_TABLE_H__
#define _SYSTEM_RESOURCE_TABLE_H__ #define _SYSTEM_RESOURCE_TABLE_H__
@ -54,8 +53,8 @@
/// When the UEFI Specification is updated, this comment block can be /// When the UEFI Specification is updated, this comment block can be
/// removed. /// removed.
/// ///
#define LAST_ATTEMPT_STATUS_ERROR_UNSUCCESSFUL_VENDOR_RANGE_MIN 0x00001000 #define LAST_ATTEMPT_STATUS_ERROR_UNSUCCESSFUL_VENDOR_RANGE_MIN 0x00001000
#define LAST_ATTEMPT_STATUS_ERROR_UNSUCCESSFUL_VENDOR_RANGE_MAX 0x00003FFF #define LAST_ATTEMPT_STATUS_ERROR_UNSUCCESSFUL_VENDOR_RANGE_MAX 0x00003FFF
typedef struct { typedef struct {
/// ///
@ -63,28 +62,28 @@ typedef struct {
/// that can be updated via UpdateCapsule(). This GUID must be unique within all /// that can be updated via UpdateCapsule(). This GUID must be unique within all
/// entries of the ESRT. /// entries of the ESRT.
/// ///
EFI_GUID FwClass; EFI_GUID FwClass;
/// ///
/// Identifies the type of firmware resource. /// Identifies the type of firmware resource.
/// ///
UINT32 FwType; UINT32 FwType;
/// ///
/// The firmware version field represents the current version of the firmware /// The firmware version field represents the current version of the firmware
/// resource, value must always increase as a larger number represents a newer /// resource, value must always increase as a larger number represents a newer
/// version. /// version.
/// ///
UINT32 FwVersion; UINT32 FwVersion;
/// ///
/// The lowest firmware resource version to which a firmware resource can be /// The lowest firmware resource version to which a firmware resource can be
/// rolled back for the given system/device. Generally this is used to protect /// rolled back for the given system/device. Generally this is used to protect
/// against known and fixed security issues. /// against known and fixed security issues.
/// ///
UINT32 LowestSupportedFwVersion; UINT32 LowestSupportedFwVersion;
/// ///
/// The capsule flags field contains the CapsuleGuid flags (bits 0- 15) as defined /// The capsule flags field contains the CapsuleGuid flags (bits 0- 15) as defined
/// in the EFI_CAPSULE_HEADER that will be set in the capsule header. /// in the EFI_CAPSULE_HEADER that will be set in the capsule header.
/// ///
UINT32 CapsuleFlags; UINT32 CapsuleFlags;
/// ///
/// The last attempt version field describes the last firmware version for which /// The last attempt version field describes the last firmware version for which
/// an update was attempted (uses the same format as Firmware Version). /// an update was attempted (uses the same format as Firmware Version).
@ -95,7 +94,7 @@ typedef struct {
/// in the case of a removable device, this value is set to 0 in cases where the /// in the case of a removable device, this value is set to 0 in cases where the
/// device has not been updated since being added to the system. /// device has not been updated since being added to the system.
/// ///
UINT32 LastAttemptVersion; UINT32 LastAttemptVersion;
/// ///
/// The last attempt status field describes the result of the last firmware update /// The last attempt status field describes the result of the last firmware update
/// attempt for the firmware resource entry. /// attempt for the firmware resource entry.
@ -104,30 +103,30 @@ typedef struct {
/// If a firmware update has never been attempted or is unknown, for example after /// If a firmware update has never been attempted or is unknown, for example after
/// fresh insertion of a removable device, LastAttemptStatus must be set to Success. /// fresh insertion of a removable device, LastAttemptStatus must be set to Success.
/// ///
UINT32 LastAttemptStatus; UINT32 LastAttemptStatus;
} EFI_SYSTEM_RESOURCE_ENTRY; } EFI_SYSTEM_RESOURCE_ENTRY;
typedef struct { typedef struct {
/// ///
/// The number of firmware resources in the table, must not be zero. /// The number of firmware resources in the table, must not be zero.
/// ///
UINT32 FwResourceCount; UINT32 FwResourceCount;
/// ///
/// The maximum number of resource array entries that can be within the table /// The maximum number of resource array entries that can be within the table
/// without reallocating the table, must not be zero. /// without reallocating the table, must not be zero.
/// ///
UINT32 FwResourceCountMax; UINT32 FwResourceCountMax;
/// ///
/// The version of the EFI_SYSTEM_RESOURCE_ENTRY entities used in this table. /// The version of the EFI_SYSTEM_RESOURCE_ENTRY entities used in this table.
/// This field should be set to 1. /// This field should be set to 1.
/// ///
UINT64 FwResourceVersion; UINT64 FwResourceVersion;
/// ///
/// Array of EFI_SYSTEM_RESOURCE_ENTRY /// Array of EFI_SYSTEM_RESOURCE_ENTRY
/// ///
//EFI_SYSTEM_RESOURCE_ENTRY Entries[]; // EFI_SYSTEM_RESOURCE_ENTRY Entries[];
} EFI_SYSTEM_RESOURCE_TABLE; } EFI_SYSTEM_RESOURCE_TABLE;
extern EFI_GUID gEfiSystemResourceTableGuid; extern EFI_GUID gEfiSystemResourceTableGuid;
#endif #endif

View File

@ -22,6 +22,6 @@
#define EFI_VECTOR_HANDOF_TABLE_GUID \ #define EFI_VECTOR_HANDOF_TABLE_GUID \
{ 0x996ec11c, 0x5397, 0x4e73, { 0xb5, 0x8f, 0x82, 0x7e, 0x52, 0x90, 0x6d, 0xef }} { 0x996ec11c, 0x5397, 0x4e73, { 0xb5, 0x8f, 0x82, 0x7e, 0x52, 0x90, 0x6d, 0xef }}
extern EFI_GUID gEfiVectorHandoffTableGuid; extern EFI_GUID gEfiVectorHandoffTableGuid;
#endif #endif

View File

@ -14,9 +14,9 @@
// //
// _WIN_CERTIFICATE.wCertificateType // _WIN_CERTIFICATE.wCertificateType
// //
#define WIN_CERT_TYPE_PKCS_SIGNED_DATA 0x0002 #define WIN_CERT_TYPE_PKCS_SIGNED_DATA 0x0002
#define WIN_CERT_TYPE_EFI_PKCS115 0x0EF0 #define WIN_CERT_TYPE_EFI_PKCS115 0x0EF0
#define WIN_CERT_TYPE_EFI_GUID 0x0EF1 #define WIN_CERT_TYPE_EFI_GUID 0x0EF1
/// ///
/// The WIN_CERTIFICATE structure is part of the PE/COFF specification. /// The WIN_CERTIFICATE structure is part of the PE/COFF specification.
@ -26,18 +26,18 @@ typedef struct {
/// The length of the entire certificate, /// The length of the entire certificate,
/// including the length of the header, in bytes. /// including the length of the header, in bytes.
/// ///
UINT32 dwLength; UINT32 dwLength;
/// ///
/// The revision level of the WIN_CERTIFICATE /// The revision level of the WIN_CERTIFICATE
/// structure. The current revision level is 0x0200. /// structure. The current revision level is 0x0200.
/// ///
UINT16 wRevision; UINT16 wRevision;
/// ///
/// The certificate type. See WIN_CERT_TYPE_xxx for the UEFI /// The certificate type. See WIN_CERT_TYPE_xxx for the UEFI
/// certificate types. The UEFI specification reserves the range of /// certificate types. The UEFI specification reserves the range of
/// certificate type values from 0x0EF0 to 0x0EFF. /// certificate type values from 0x0EF0 to 0x0EFF.
/// ///
UINT16 wCertificateType; UINT16 wCertificateType;
/// ///
/// The following is the actual certificate. The format of /// The following is the actual certificate. The format of
/// the certificate depends on wCertificateType. /// the certificate depends on wCertificateType.
@ -56,12 +56,11 @@ typedef struct {
/// WIN_CERTIFICATE_UEFI_GUID.CertData /// WIN_CERTIFICATE_UEFI_GUID.CertData
/// ///
typedef struct { typedef struct {
EFI_GUID HashType; EFI_GUID HashType;
UINT8 PublicKey[256]; UINT8 PublicKey[256];
UINT8 Signature[256]; UINT8 Signature[256];
} EFI_CERT_BLOCK_RSA_2048_SHA256; } EFI_CERT_BLOCK_RSA_2048_SHA256;
/// ///
/// Certificate which encapsulates a GUID-specific digital signature /// Certificate which encapsulates a GUID-specific digital signature
/// ///
@ -70,22 +69,21 @@ typedef struct {
/// This is the standard WIN_CERTIFICATE header, where /// This is the standard WIN_CERTIFICATE header, where
/// wCertificateType is set to WIN_CERT_TYPE_EFI_GUID. /// wCertificateType is set to WIN_CERT_TYPE_EFI_GUID.
/// ///
WIN_CERTIFICATE Hdr; WIN_CERTIFICATE Hdr;
/// ///
/// This is the unique id which determines the /// This is the unique id which determines the
/// format of the CertData. . /// format of the CertData. .
/// ///
EFI_GUID CertType; EFI_GUID CertType;
/// ///
/// The following is the certificate data. The format of /// The following is the certificate data. The format of
/// the data is determined by the CertType. /// the data is determined by the CertType.
/// If CertType is EFI_CERT_TYPE_RSA2048_SHA256_GUID, /// If CertType is EFI_CERT_TYPE_RSA2048_SHA256_GUID,
/// the CertData will be EFI_CERT_BLOCK_RSA_2048_SHA256 structure. /// the CertData will be EFI_CERT_BLOCK_RSA_2048_SHA256 structure.
/// ///
UINT8 CertData[1]; UINT8 CertData[1];
} WIN_CERTIFICATE_UEFI_GUID; } WIN_CERTIFICATE_UEFI_GUID;
/// ///
/// Certificate which encapsulates the RSASSA_PKCS1-v1_5 digital signature. /// Certificate which encapsulates the RSASSA_PKCS1-v1_5 digital signature.
/// ///
@ -99,12 +97,12 @@ typedef struct {
/// This is the standard WIN_CERTIFICATE header, where /// This is the standard WIN_CERTIFICATE header, where
/// wCertificateType is set to WIN_CERT_TYPE_UEFI_PKCS1_15. /// wCertificateType is set to WIN_CERT_TYPE_UEFI_PKCS1_15.
/// ///
WIN_CERTIFICATE Hdr; WIN_CERTIFICATE Hdr;
/// ///
/// This is the hashing algorithm which was performed on the /// This is the hashing algorithm which was performed on the
/// UEFI executable when creating the digital signature. /// UEFI executable when creating the digital signature.
/// ///
EFI_GUID HashAlgorithm; EFI_GUID HashAlgorithm;
/// ///
/// The following is the actual digital signature. The /// The following is the actual digital signature. The
/// size of the signature is the same size as the key /// size of the signature is the same size as the key
@ -117,6 +115,6 @@ typedef struct {
/// ///
} WIN_CERTIFICATE_EFI_PKCS1_15; } WIN_CERTIFICATE_EFI_PKCS1_15;
extern EFI_GUID gEfiCertTypeRsa2048Sha256Guid; extern EFI_GUID gEfiCertTypeRsa2048Sha256Guid;
#endif #endif

View File

@ -17,39 +17,38 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
// //
// Make sure we are using the correct packing rules per EFI specification // Make sure we are using the correct packing rules per EFI specification
// //
#if !defined(__GNUC__) #if !defined (__GNUC__)
#pragma pack() #pragma pack()
#endif #endif
#if defined(__INTEL_COMPILER) #if defined (__INTEL_COMPILER)
// //
// Disable ICC's remark #869: "Parameter" was never referenced warning. // Disable ICC's remark #869: "Parameter" was never referenced warning.
// This is legal ANSI C code so we disable the remark that is turned on with -Wall // This is legal ANSI C code so we disable the remark that is turned on with -Wall
// //
#pragma warning ( disable : 869 ) #pragma warning ( disable : 869 )
// //
// Disable ICC's remark #1418: external function definition with no prior declaration. // Disable ICC's remark #1418: external function definition with no prior declaration.
// This is legal ANSI C code so we disable the remark that is turned on with /W4 // This is legal ANSI C code so we disable the remark that is turned on with /W4
// //
#pragma warning ( disable : 1418 ) #pragma warning ( disable : 1418 )
// //
// Disable ICC's remark #1419: external declaration in primary source file // Disable ICC's remark #1419: external declaration in primary source file
// This is legal ANSI C code so we disable the remark that is turned on with /W4 // This is legal ANSI C code so we disable the remark that is turned on with /W4
// //
#pragma warning ( disable : 1419 ) #pragma warning ( disable : 1419 )
// //
// Disable ICC's remark #593: "Variable" was set but never used. // Disable ICC's remark #593: "Variable" was set but never used.
// This is legal ANSI C code so we disable the remark that is turned on with /W4 // This is legal ANSI C code so we disable the remark that is turned on with /W4
// //
#pragma warning ( disable : 593 ) #pragma warning ( disable : 593 )
#endif #endif
#if defined (_MSC_EXTENSIONS)
#if defined(_MSC_EXTENSIONS)
// //
// Disable warning that make it impossible to compile at /W4 // Disable warning that make it impossible to compile at /W4
@ -59,35 +58,35 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
// //
// Disabling bitfield type checking warnings. // Disabling bitfield type checking warnings.
// //
#pragma warning ( disable : 4214 ) #pragma warning ( disable : 4214 )
// //
// Disabling the unreferenced formal parameter warnings. // Disabling the unreferenced formal parameter warnings.
// //
#pragma warning ( disable : 4100 ) #pragma warning ( disable : 4100 )
// //
// Disable slightly different base types warning as CHAR8 * can not be set // Disable slightly different base types warning as CHAR8 * can not be set
// to a constant string. // to a constant string.
// //
#pragma warning ( disable : 4057 ) #pragma warning ( disable : 4057 )
// //
// ASSERT(FALSE) or while (TRUE) are legal constructs so suppress this warning // ASSERT(FALSE) or while (TRUE) are legal constructs so suppress this warning
// //
#pragma warning ( disable : 4127 ) #pragma warning ( disable : 4127 )
// //
// This warning is caused by functions defined but not used. For precompiled header only. // This warning is caused by functions defined but not used. For precompiled header only.
// //
#pragma warning ( disable : 4505 ) #pragma warning ( disable : 4505 )
// //
// This warning is caused by empty (after preprocessing) source file. For precompiled header only. // This warning is caused by empty (after preprocessing) source file. For precompiled header only.
// //
#pragma warning ( disable : 4206 ) #pragma warning ( disable : 4206 )
#if defined(_MSC_VER) && _MSC_VER >= 1800 #if defined (_MSC_VER) && _MSC_VER >= 1800
// //
// Disable these warnings for VS2013. // Disable these warnings for VS2013.
@ -97,130 +96,129 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
// This warning is for potentially uninitialized local variable, and it may cause false // This warning is for potentially uninitialized local variable, and it may cause false
// positive issues in VS2013 and VS2015 build // positive issues in VS2013 and VS2015 build
// //
#pragma warning ( disable : 4701 ) #pragma warning ( disable : 4701 )
// //
// This warning is for potentially uninitialized local pointer variable, and it may cause // This warning is for potentially uninitialized local pointer variable, and it may cause
// false positive issues in VS2013 and VS2015 build // false positive issues in VS2013 and VS2015 build
// //
#pragma warning ( disable : 4703 ) #pragma warning ( disable : 4703 )
#endif
#endif #endif
#endif #if defined (_MSC_EXTENSIONS)
//
// use Microsoft C compiler dependent integer width types
//
#if defined(_MSC_EXTENSIONS) ///
/// 8-byte unsigned value.
// ///
// use Microsoft C compiler dependent integer width types typedef unsigned __int64 UINT64;
// ///
/// 8-byte signed value.
/// ///
/// 8-byte unsigned value. typedef __int64 INT64;
/// ///
typedef unsigned __int64 UINT64; /// 4-byte unsigned value.
/// ///
/// 8-byte signed value. typedef unsigned __int32 UINT32;
/// ///
typedef __int64 INT64; /// 4-byte signed value.
/// ///
/// 4-byte unsigned value. typedef __int32 INT32;
/// ///
typedef unsigned __int32 UINT32; /// 2-byte unsigned value.
/// ///
/// 4-byte signed value. typedef unsigned short UINT16;
/// ///
typedef __int32 INT32; /// 2-byte Character. Unless otherwise specified all strings are stored in the
/// /// UTF-16 encoding format as defined by Unicode 2.1 and ISO/IEC 10646 standards.
/// 2-byte unsigned value. ///
/// typedef unsigned short CHAR16;
typedef unsigned short UINT16; ///
/// /// 2-byte signed value.
/// 2-byte Character. Unless otherwise specified all strings are stored in the ///
/// UTF-16 encoding format as defined by Unicode 2.1 and ISO/IEC 10646 standards. typedef short INT16;
/// ///
typedef unsigned short CHAR16; /// Logical Boolean. 1-byte value containing 0 for FALSE or a 1 for TRUE. Other
/// /// values are undefined.
/// 2-byte signed value. ///
/// typedef unsigned char BOOLEAN;
typedef short INT16; ///
/// /// 1-byte unsigned value.
/// Logical Boolean. 1-byte value containing 0 for FALSE or a 1 for TRUE. Other ///
/// values are undefined. typedef unsigned char UINT8;
/// ///
typedef unsigned char BOOLEAN; /// 1-byte Character.
/// ///
/// 1-byte unsigned value. typedef char CHAR8;
/// ///
typedef unsigned char UINT8; /// 1-byte signed value.
/// ///
/// 1-byte Character. typedef signed char INT8;
///
typedef char CHAR8;
///
/// 1-byte signed value.
///
typedef signed char INT8;
#else #else
/// ///
/// 8-byte unsigned value. /// 8-byte unsigned value.
/// ///
typedef unsigned long long UINT64; typedef unsigned long long UINT64;
/// ///
/// 8-byte signed value. /// 8-byte signed value.
/// ///
typedef long long INT64; typedef long long INT64;
/// ///
/// 4-byte unsigned value. /// 4-byte unsigned value.
/// ///
typedef unsigned int UINT32; typedef unsigned int UINT32;
/// ///
/// 4-byte signed value. /// 4-byte signed value.
/// ///
typedef int INT32; typedef int INT32;
/// ///
/// 2-byte unsigned value. /// 2-byte unsigned value.
/// ///
typedef unsigned short UINT16; typedef unsigned short UINT16;
/// ///
/// 2-byte Character. Unless otherwise specified all strings are stored in the /// 2-byte Character. Unless otherwise specified all strings are stored in the
/// UTF-16 encoding format as defined by Unicode 2.1 and ISO/IEC 10646 standards. /// UTF-16 encoding format as defined by Unicode 2.1 and ISO/IEC 10646 standards.
/// ///
typedef unsigned short CHAR16; typedef unsigned short CHAR16;
/// ///
/// 2-byte signed value. /// 2-byte signed value.
/// ///
typedef short INT16; typedef short INT16;
/// ///
/// Logical Boolean. 1-byte value containing 0 for FALSE or a 1 for TRUE. Other /// Logical Boolean. 1-byte value containing 0 for FALSE or a 1 for TRUE. Other
/// values are undefined. /// values are undefined.
/// ///
typedef unsigned char BOOLEAN; typedef unsigned char BOOLEAN;
/// ///
/// 1-byte unsigned value. /// 1-byte unsigned value.
/// ///
typedef unsigned char UINT8; typedef unsigned char UINT8;
/// ///
/// 1-byte Character /// 1-byte Character
/// ///
typedef char CHAR8; typedef char CHAR8;
/// ///
/// 1-byte signed value /// 1-byte signed value
/// ///
typedef signed char INT8; typedef signed char INT8;
#endif #endif
/// ///
/// Unsigned value of native width. (4 bytes on supported 32-bit processor instructions; /// Unsigned value of native width. (4 bytes on supported 32-bit processor instructions;
/// 8 bytes on supported 64-bit processor instructions.) /// 8 bytes on supported 64-bit processor instructions.)
/// ///
typedef UINT32 UINTN; typedef UINT32 UINTN;
/// ///
/// Signed value of native width. (4 bytes on supported 32-bit processor instructions; /// Signed value of native width. (4 bytes on supported 32-bit processor instructions;
/// 8 bytes on supported 64-bit processor instructions.) /// 8 bytes on supported 64-bit processor instructions.)
/// ///
typedef INT32 INTN; typedef INT32 INTN;
// //
// Processor specific defines // Processor specific defines
@ -229,7 +227,7 @@ typedef INT32 INTN;
/// ///
/// A value of native width with the highest bit set. /// A value of native width with the highest bit set.
/// ///
#define MAX_BIT 0x80000000 #define MAX_BIT 0x80000000
/// ///
/// A value of native width with the two highest bits set. /// A value of native width with the two highest bits set.
/// ///
@ -238,12 +236,12 @@ typedef INT32 INTN;
/// ///
/// Maximum legal IA-32 address. /// Maximum legal IA-32 address.
/// ///
#define MAX_ADDRESS 0xFFFFFFFF #define MAX_ADDRESS 0xFFFFFFFF
/// ///
/// Maximum usable address at boot time /// Maximum usable address at boot time
/// ///
#define MAX_ALLOC_ADDRESS MAX_ADDRESS #define MAX_ALLOC_ADDRESS MAX_ADDRESS
/// ///
/// Maximum legal IA-32 INTN and UINTN values. /// Maximum legal IA-32 INTN and UINTN values.
@ -254,18 +252,18 @@ typedef INT32 INTN;
/// ///
/// Minimum legal IA-32 INTN value. /// Minimum legal IA-32 INTN value.
/// ///
#define MIN_INTN (((INTN)-2147483647) - 1) #define MIN_INTN (((INTN)-2147483647) - 1)
/// ///
/// The stack alignment required for IA-32. /// The stack alignment required for IA-32.
/// ///
#define CPU_STACK_ALIGNMENT sizeof(UINTN) #define CPU_STACK_ALIGNMENT sizeof(UINTN)
/// ///
/// Page allocation granularity for IA-32. /// Page allocation granularity for IA-32.
/// ///
#define DEFAULT_PAGE_ALLOCATION_GRANULARITY (0x1000) #define DEFAULT_PAGE_ALLOCATION_GRANULARITY (0x1000)
#define RUNTIME_PAGE_ALLOCATION_GRANULARITY (0x1000) #define RUNTIME_PAGE_ALLOCATION_GRANULARITY (0x1000)
// //
// Modifier to ensure that all protocol member functions and EFI intrinsics // Modifier to ensure that all protocol member functions and EFI intrinsics
@ -273,33 +271,33 @@ typedef INT32 INTN;
// EFI intrinsics are required to modify their member functions with EFIAPI. // EFI intrinsics are required to modify their member functions with EFIAPI.
// //
#ifdef EFIAPI #ifdef EFIAPI
/// ///
/// If EFIAPI is already defined, then we use that definition. /// If EFIAPI is already defined, then we use that definition.
/// ///
#elif defined(_MSC_EXTENSIONS) #elif defined (_MSC_EXTENSIONS)
/// ///
/// Microsoft* compiler specific method for EFIAPI calling convention. /// Microsoft* compiler specific method for EFIAPI calling convention.
/// ///
#define EFIAPI __cdecl #define EFIAPI __cdecl
#elif defined(__GNUC__) || defined(__clang__) #elif defined (__GNUC__) || defined (__clang__)
/// ///
/// GCC specific method for EFIAPI calling convention. /// GCC specific method for EFIAPI calling convention.
/// ///
#define EFIAPI __attribute__((cdecl)) #define EFIAPI __attribute__((cdecl))
#else #else
/// ///
/// The default for a non Microsoft* or GCC compiler is to assume the EFI ABI /// The default for a non Microsoft* or GCC compiler is to assume the EFI ABI
/// is the standard. /// is the standard.
/// ///
#define EFIAPI #define EFIAPI
#endif #endif
#if defined(__GNUC__) || defined(__clang__) #if defined (__GNUC__) || defined (__clang__)
/// ///
/// For GNU assembly code, .global or .globl can declare global symbols. /// For GNU assembly code, .global or .globl can declare global symbols.
/// Define this macro to unify the usage. /// Define this macro to unify the usage.
/// ///
#define ASM_GLOBAL .globl #define ASM_GLOBAL .globl
#endif #endif
/** /**
@ -312,11 +310,10 @@ typedef INT32 INTN;
@return The pointer to the first instruction of a function given a function pointer. @return The pointer to the first instruction of a function given a function pointer.
**/ **/
#define FUNCTION_ENTRY_POINT(FunctionPointer) (VOID *)(UINTN)(FunctionPointer) #define FUNCTION_ENTRY_POINT(FunctionPointer) (VOID *)(UINTN)(FunctionPointer)
#ifndef __USER_LABEL_PREFIX__ #ifndef __USER_LABEL_PREFIX__
#define __USER_LABEL_PREFIX__ _ #define __USER_LABEL_PREFIX__ _
#endif #endif
#endif #endif

View File

@ -16,8 +16,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
/// excluding the RSD PTR structure. /// excluding the RSD PTR structure.
/// ///
typedef struct { typedef struct {
UINT32 Signature; UINT32 Signature;
UINT32 Length; UINT32 Length;
} EFI_ACPI_COMMON_HEADER; } EFI_ACPI_COMMON_HEADER;
#pragma pack(1) #pragma pack(1)
@ -25,84 +25,84 @@ typedef struct {
/// The common ACPI description table header. This structure prefaces most ACPI tables. /// The common ACPI description table header. This structure prefaces most ACPI tables.
/// ///
typedef struct { typedef struct {
UINT32 Signature; UINT32 Signature;
UINT32 Length; UINT32 Length;
UINT8 Revision; UINT8 Revision;
UINT8 Checksum; UINT8 Checksum;
UINT8 OemId[6]; UINT8 OemId[6];
UINT64 OemTableId; UINT64 OemTableId;
UINT32 OemRevision; UINT32 OemRevision;
UINT32 CreatorId; UINT32 CreatorId;
UINT32 CreatorRevision; UINT32 CreatorRevision;
} EFI_ACPI_DESCRIPTION_HEADER; } EFI_ACPI_DESCRIPTION_HEADER;
#pragma pack() #pragma pack()
// //
// Define for Descriptor // Define for Descriptor
// //
#define ACPI_SMALL_ITEM_FLAG 0x00 #define ACPI_SMALL_ITEM_FLAG 0x00
#define ACPI_LARGE_ITEM_FLAG 0x01 #define ACPI_LARGE_ITEM_FLAG 0x01
// //
// Small Item Descriptor Name // Small Item Descriptor Name
// //
#define ACPI_SMALL_IRQ_DESCRIPTOR_NAME 0x04 #define ACPI_SMALL_IRQ_DESCRIPTOR_NAME 0x04
#define ACPI_SMALL_DMA_DESCRIPTOR_NAME 0x05 #define ACPI_SMALL_DMA_DESCRIPTOR_NAME 0x05
#define ACPI_SMALL_START_DEPENDENT_DESCRIPTOR_NAME 0x06 #define ACPI_SMALL_START_DEPENDENT_DESCRIPTOR_NAME 0x06
#define ACPI_SMALL_END_DEPENDENT_DESCRIPTOR_NAME 0x07 #define ACPI_SMALL_END_DEPENDENT_DESCRIPTOR_NAME 0x07
#define ACPI_SMALL_IO_PORT_DESCRIPTOR_NAME 0x08 #define ACPI_SMALL_IO_PORT_DESCRIPTOR_NAME 0x08
#define ACPI_SMALL_FIXED_IO_PORT_DESCRIPTOR_NAME 0x09 #define ACPI_SMALL_FIXED_IO_PORT_DESCRIPTOR_NAME 0x09
#define ACPI_SMALL_VENDOR_DEFINED_DESCRIPTOR_NAME 0x0E #define ACPI_SMALL_VENDOR_DEFINED_DESCRIPTOR_NAME 0x0E
#define ACPI_SMALL_END_TAG_DESCRIPTOR_NAME 0x0F #define ACPI_SMALL_END_TAG_DESCRIPTOR_NAME 0x0F
// //
// Large Item Descriptor Name // Large Item Descriptor Name
// //
#define ACPI_LARGE_24_BIT_MEMORY_RANGE_DESCRIPTOR_NAME 0x01 #define ACPI_LARGE_24_BIT_MEMORY_RANGE_DESCRIPTOR_NAME 0x01
#define ACPI_LARGE_VENDOR_DEFINED_DESCRIPTOR_NAME 0x04 #define ACPI_LARGE_VENDOR_DEFINED_DESCRIPTOR_NAME 0x04
#define ACPI_LARGE_32_BIT_MEMORY_RANGE_DESCRIPTOR_NAME 0x05 #define ACPI_LARGE_32_BIT_MEMORY_RANGE_DESCRIPTOR_NAME 0x05
#define ACPI_LARGE_32_BIT_FIXED_MEMORY_RANGE_DESCRIPTOR_NAME 0x06 #define ACPI_LARGE_32_BIT_FIXED_MEMORY_RANGE_DESCRIPTOR_NAME 0x06
#define ACPI_LARGE_DWORD_ADDRESS_SPACE_DESCRIPTOR_NAME 0x07 #define ACPI_LARGE_DWORD_ADDRESS_SPACE_DESCRIPTOR_NAME 0x07
#define ACPI_LARGE_WORD_ADDRESS_SPACE_DESCRIPTOR_NAME 0x08 #define ACPI_LARGE_WORD_ADDRESS_SPACE_DESCRIPTOR_NAME 0x08
#define ACPI_LARGE_EXTENDED_IRQ_DESCRIPTOR_NAME 0x09 #define ACPI_LARGE_EXTENDED_IRQ_DESCRIPTOR_NAME 0x09
#define ACPI_LARGE_QWORD_ADDRESS_SPACE_DESCRIPTOR_NAME 0x0A #define ACPI_LARGE_QWORD_ADDRESS_SPACE_DESCRIPTOR_NAME 0x0A
// //
// Small Item Descriptor Value // Small Item Descriptor Value
// //
#define ACPI_IRQ_NOFLAG_DESCRIPTOR 0x22 #define ACPI_IRQ_NOFLAG_DESCRIPTOR 0x22
#define ACPI_IRQ_DESCRIPTOR 0x23 #define ACPI_IRQ_DESCRIPTOR 0x23
#define ACPI_DMA_DESCRIPTOR 0x2A #define ACPI_DMA_DESCRIPTOR 0x2A
#define ACPI_START_DEPENDENT_DESCRIPTOR 0x30 #define ACPI_START_DEPENDENT_DESCRIPTOR 0x30
#define ACPI_START_DEPENDENT_EX_DESCRIPTOR 0x31 #define ACPI_START_DEPENDENT_EX_DESCRIPTOR 0x31
#define ACPI_END_DEPENDENT_DESCRIPTOR 0x38 #define ACPI_END_DEPENDENT_DESCRIPTOR 0x38
#define ACPI_IO_PORT_DESCRIPTOR 0x47 #define ACPI_IO_PORT_DESCRIPTOR 0x47
#define ACPI_FIXED_LOCATION_IO_PORT_DESCRIPTOR 0x4B #define ACPI_FIXED_LOCATION_IO_PORT_DESCRIPTOR 0x4B
#define ACPI_END_TAG_DESCRIPTOR 0x79 #define ACPI_END_TAG_DESCRIPTOR 0x79
// //
// Large Item Descriptor Value // Large Item Descriptor Value
// //
#define ACPI_24_BIT_MEMORY_RANGE_DESCRIPTOR 0x81 #define ACPI_24_BIT_MEMORY_RANGE_DESCRIPTOR 0x81
#define ACPI_32_BIT_MEMORY_RANGE_DESCRIPTOR 0x85 #define ACPI_32_BIT_MEMORY_RANGE_DESCRIPTOR 0x85
#define ACPI_32_BIT_FIXED_MEMORY_RANGE_DESCRIPTOR 0x86 #define ACPI_32_BIT_FIXED_MEMORY_RANGE_DESCRIPTOR 0x86
#define ACPI_DWORD_ADDRESS_SPACE_DESCRIPTOR 0x87 #define ACPI_DWORD_ADDRESS_SPACE_DESCRIPTOR 0x87
#define ACPI_WORD_ADDRESS_SPACE_DESCRIPTOR 0x88 #define ACPI_WORD_ADDRESS_SPACE_DESCRIPTOR 0x88
#define ACPI_EXTENDED_INTERRUPT_DESCRIPTOR 0x89 #define ACPI_EXTENDED_INTERRUPT_DESCRIPTOR 0x89
#define ACPI_QWORD_ADDRESS_SPACE_DESCRIPTOR 0x8A #define ACPI_QWORD_ADDRESS_SPACE_DESCRIPTOR 0x8A
#define ACPI_ADDRESS_SPACE_DESCRIPTOR 0x8A #define ACPI_ADDRESS_SPACE_DESCRIPTOR 0x8A
// //
// Resource Type // Resource Type
// //
#define ACPI_ADDRESS_SPACE_TYPE_MEM 0x00 #define ACPI_ADDRESS_SPACE_TYPE_MEM 0x00
#define ACPI_ADDRESS_SPACE_TYPE_IO 0x01 #define ACPI_ADDRESS_SPACE_TYPE_IO 0x01
#define ACPI_ADDRESS_SPACE_TYPE_BUS 0x02 #define ACPI_ADDRESS_SPACE_TYPE_BUS 0x02
/// ///
/// Power Management Timer frequency is fixed at 3.579545MHz. /// Power Management Timer frequency is fixed at 3.579545MHz.
/// ///
#define ACPI_TIMER_FREQUENCY 3579545 #define ACPI_TIMER_FREQUENCY 3579545
// //
// Ensure proper structure formats // Ensure proper structure formats
@ -114,83 +114,83 @@ typedef struct {
/// Address Space Descriptors. /// Address Space Descriptors.
/// ///
typedef PACKED struct { typedef PACKED struct {
UINT8 Desc; UINT8 Desc;
UINT16 Len; UINT16 Len;
UINT8 ResType; UINT8 ResType;
UINT8 GenFlag; UINT8 GenFlag;
UINT8 SpecificFlag; UINT8 SpecificFlag;
UINT64 AddrSpaceGranularity; UINT64 AddrSpaceGranularity;
UINT64 AddrRangeMin; UINT64 AddrRangeMin;
UINT64 AddrRangeMax; UINT64 AddrRangeMax;
UINT64 AddrTranslationOffset; UINT64 AddrTranslationOffset;
UINT64 AddrLen; UINT64 AddrLen;
} EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR; } EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR;
typedef PACKED union { typedef PACKED union {
UINT8 Byte; UINT8 Byte;
PACKED struct { PACKED struct {
UINT8 Length : 3; UINT8 Length : 3;
UINT8 Name : 4; UINT8 Name : 4;
UINT8 Type : 1; UINT8 Type : 1;
} Bits; } Bits;
} ACPI_SMALL_RESOURCE_HEADER; } ACPI_SMALL_RESOURCE_HEADER;
typedef PACKED struct { typedef PACKED struct {
PACKED union { PACKED union {
UINT8 Byte; UINT8 Byte;
PACKED struct { PACKED struct {
UINT8 Name : 7; UINT8 Name : 7;
UINT8 Type : 1; UINT8 Type : 1;
}Bits; } Bits;
} Header; } Header;
UINT16 Length; UINT16 Length;
} ACPI_LARGE_RESOURCE_HEADER; } ACPI_LARGE_RESOURCE_HEADER;
/// ///
/// IRQ Descriptor. /// IRQ Descriptor.
/// ///
typedef PACKED struct { typedef PACKED struct {
ACPI_SMALL_RESOURCE_HEADER Header; ACPI_SMALL_RESOURCE_HEADER Header;
UINT16 Mask; UINT16 Mask;
} EFI_ACPI_IRQ_NOFLAG_DESCRIPTOR; } EFI_ACPI_IRQ_NOFLAG_DESCRIPTOR;
/// ///
/// IRQ Descriptor. /// IRQ Descriptor.
/// ///
typedef PACKED struct { typedef PACKED struct {
ACPI_SMALL_RESOURCE_HEADER Header; ACPI_SMALL_RESOURCE_HEADER Header;
UINT16 Mask; UINT16 Mask;
UINT8 Information; UINT8 Information;
} EFI_ACPI_IRQ_DESCRIPTOR; } EFI_ACPI_IRQ_DESCRIPTOR;
/// ///
/// DMA Descriptor. /// DMA Descriptor.
/// ///
typedef PACKED struct { typedef PACKED struct {
ACPI_SMALL_RESOURCE_HEADER Header; ACPI_SMALL_RESOURCE_HEADER Header;
UINT8 ChannelMask; UINT8 ChannelMask;
UINT8 Information; UINT8 Information;
} EFI_ACPI_DMA_DESCRIPTOR; } EFI_ACPI_DMA_DESCRIPTOR;
/// ///
/// I/O Port Descriptor /// I/O Port Descriptor
/// ///
typedef PACKED struct { typedef PACKED struct {
ACPI_SMALL_RESOURCE_HEADER Header; ACPI_SMALL_RESOURCE_HEADER Header;
UINT8 Information; UINT8 Information;
UINT16 BaseAddressMin; UINT16 BaseAddressMin;
UINT16 BaseAddressMax; UINT16 BaseAddressMax;
UINT8 Alignment; UINT8 Alignment;
UINT8 Length; UINT8 Length;
} EFI_ACPI_IO_PORT_DESCRIPTOR; } EFI_ACPI_IO_PORT_DESCRIPTOR;
/// ///
/// Fixed Location I/O Port Descriptor. /// Fixed Location I/O Port Descriptor.
/// ///
typedef PACKED struct { typedef PACKED struct {
ACPI_SMALL_RESOURCE_HEADER Header; ACPI_SMALL_RESOURCE_HEADER Header;
UINT16 BaseAddress; UINT16 BaseAddress;
UINT8 Length; UINT8 Length;
} EFI_ACPI_FIXED_LOCATION_IO_PORT_DESCRIPTOR; } EFI_ACPI_FIXED_LOCATION_IO_PORT_DESCRIPTOR;
/// ///
@ -288,17 +288,17 @@ typedef PACKED struct {
/// The End tag identifies an end of resource data. /// The End tag identifies an end of resource data.
/// ///
typedef struct { typedef struct {
UINT8 Desc; UINT8 Desc;
UINT8 Checksum; UINT8 Checksum;
} EFI_ACPI_END_TAG_DESCRIPTOR; } EFI_ACPI_END_TAG_DESCRIPTOR;
// //
// General use definitions // General use definitions
// //
#define EFI_ACPI_RESERVED_BYTE 0x00 #define EFI_ACPI_RESERVED_BYTE 0x00
#define EFI_ACPI_RESERVED_WORD 0x0000 #define EFI_ACPI_RESERVED_WORD 0x0000
#define EFI_ACPI_RESERVED_DWORD 0x00000000 #define EFI_ACPI_RESERVED_DWORD 0x00000000
#define EFI_ACPI_RESERVED_QWORD 0x0000000000000000 #define EFI_ACPI_RESERVED_QWORD 0x0000000000000000
// //
// Resource Type Specific Flags // Resource Type Specific Flags
@ -306,86 +306,86 @@ typedef struct {
// //
// Bit [0] : Write Status, _RW // Bit [0] : Write Status, _RW
// //
#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_READ_WRITE (1 << 0) #define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_READ_WRITE (1 << 0)
#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_READ_ONLY (0 << 0) #define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_READ_ONLY (0 << 0)
// //
// Bit [2:1] : Memory Attributes, _MEM // Bit [2:1] : Memory Attributes, _MEM
// //
#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_NON_CACHEABLE (0 << 1) #define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_NON_CACHEABLE (0 << 1)
#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE (1 << 1) #define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE (1 << 1)
#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE_WRITE_COMBINING (2 << 1) #define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE_WRITE_COMBINING (2 << 1)
#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE_PREFETCHABLE (3 << 1) #define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE_PREFETCHABLE (3 << 1)
// //
// Bit [4:3] : Memory Attributes, _MTP // Bit [4:3] : Memory Attributes, _MTP
// //
#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_MEMORY (0 << 3) #define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_MEMORY (0 << 3)
#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_RESERVED (1 << 3) #define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_RESERVED (1 << 3)
#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_ACPI (2 << 3) #define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_ACPI (2 << 3)
#define EFI_APCI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_NVS (3 << 3) #define EFI_APCI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_NVS (3 << 3)
// //
// Bit [5] : Memory to I/O Translation, _TTP // Bit [5] : Memory to I/O Translation, _TTP
// //
#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_TYPE_TRANSLATION (1 << 5) #define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_TYPE_TRANSLATION (1 << 5)
#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_TYPE_STATIC (0 << 5) #define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_TYPE_STATIC (0 << 5)
// //
// IRQ Information // IRQ Information
// Ref ACPI specification 6.4.2.1 // Ref ACPI specification 6.4.2.1
// //
#define EFI_ACPI_IRQ_SHARABLE_MASK 0x10 #define EFI_ACPI_IRQ_SHARABLE_MASK 0x10
#define EFI_ACPI_IRQ_SHARABLE 0x10 #define EFI_ACPI_IRQ_SHARABLE 0x10
#define EFI_ACPI_IRQ_POLARITY_MASK 0x08 #define EFI_ACPI_IRQ_POLARITY_MASK 0x08
#define EFI_ACPI_IRQ_HIGH_TRUE 0x00 #define EFI_ACPI_IRQ_HIGH_TRUE 0x00
#define EFI_ACPI_IRQ_LOW_FALSE 0x08 #define EFI_ACPI_IRQ_LOW_FALSE 0x08
#define EFI_ACPI_IRQ_MODE 0x01 #define EFI_ACPI_IRQ_MODE 0x01
#define EFI_ACPI_IRQ_LEVEL_TRIGGERED 0x00 #define EFI_ACPI_IRQ_LEVEL_TRIGGERED 0x00
#define EFI_ACPI_IRQ_EDGE_TRIGGERED 0x01 #define EFI_ACPI_IRQ_EDGE_TRIGGERED 0x01
// //
// DMA Information // DMA Information
// Ref ACPI specification 6.4.2.2 // Ref ACPI specification 6.4.2.2
// //
#define EFI_ACPI_DMA_SPEED_TYPE_MASK 0x60 #define EFI_ACPI_DMA_SPEED_TYPE_MASK 0x60
#define EFI_ACPI_DMA_SPEED_TYPE_COMPATIBILITY 0x00 #define EFI_ACPI_DMA_SPEED_TYPE_COMPATIBILITY 0x00
#define EFI_ACPI_DMA_SPEED_TYPE_A 0x20 #define EFI_ACPI_DMA_SPEED_TYPE_A 0x20
#define EFI_ACPI_DMA_SPEED_TYPE_B 0x40 #define EFI_ACPI_DMA_SPEED_TYPE_B 0x40
#define EFI_ACPI_DMA_SPEED_TYPE_F 0x60 #define EFI_ACPI_DMA_SPEED_TYPE_F 0x60
#define EFI_ACPI_DMA_BUS_MASTER_MASK 0x04 #define EFI_ACPI_DMA_BUS_MASTER_MASK 0x04
#define EFI_ACPI_DMA_BUS_MASTER 0x04 #define EFI_ACPI_DMA_BUS_MASTER 0x04
#define EFI_ACPI_DMA_TRANSFER_TYPE_MASK 0x03 #define EFI_ACPI_DMA_TRANSFER_TYPE_MASK 0x03
#define EFI_ACPI_DMA_TRANSFER_TYPE_8_BIT 0x00 #define EFI_ACPI_DMA_TRANSFER_TYPE_8_BIT 0x00
#define EFI_ACPI_DMA_TRANSFER_TYPE_8_BIT_AND_16_BIT 0x01 #define EFI_ACPI_DMA_TRANSFER_TYPE_8_BIT_AND_16_BIT 0x01
#define EFI_ACPI_DMA_TRANSFER_TYPE_16_BIT 0x02 #define EFI_ACPI_DMA_TRANSFER_TYPE_16_BIT 0x02
// //
// IO Information // IO Information
// Ref ACPI specification 6.4.2.5 // Ref ACPI specification 6.4.2.5
// //
#define EFI_ACPI_IO_DECODE_MASK 0x01 #define EFI_ACPI_IO_DECODE_MASK 0x01
#define EFI_ACPI_IO_DECODE_16_BIT 0x01 #define EFI_ACPI_IO_DECODE_16_BIT 0x01
#define EFI_ACPI_IO_DECODE_10_BIT 0x00 #define EFI_ACPI_IO_DECODE_10_BIT 0x00
// //
// Memory Information // Memory Information
// Ref ACPI specification 6.4.3.4 // Ref ACPI specification 6.4.3.4
// //
#define EFI_ACPI_MEMORY_WRITE_STATUS_MASK 0x01 #define EFI_ACPI_MEMORY_WRITE_STATUS_MASK 0x01
#define EFI_ACPI_MEMORY_WRITABLE 0x01 #define EFI_ACPI_MEMORY_WRITABLE 0x01
#define EFI_ACPI_MEMORY_NON_WRITABLE 0x00 #define EFI_ACPI_MEMORY_NON_WRITABLE 0x00
// //
// Interrupt Vector Flags definitions for Extended Interrupt Descriptor // Interrupt Vector Flags definitions for Extended Interrupt Descriptor
// Ref ACPI specification 6.4.3.6 // Ref ACPI specification 6.4.3.6
// //
#define EFI_ACPI_EXTENDED_INTERRUPT_FLAG_PRODUCER_CONSUMER_MASK BIT0 #define EFI_ACPI_EXTENDED_INTERRUPT_FLAG_PRODUCER_CONSUMER_MASK BIT0
#define EFI_ACPI_EXTENDED_INTERRUPT_FLAG_MODE_MASK BIT1 #define EFI_ACPI_EXTENDED_INTERRUPT_FLAG_MODE_MASK BIT1
#define EFI_ACPI_EXTENDED_INTERRUPT_FLAG_POLARITY_MASK BIT2 #define EFI_ACPI_EXTENDED_INTERRUPT_FLAG_POLARITY_MASK BIT2
#define EFI_ACPI_EXTENDED_INTERRUPT_FLAG_SHARABLE_MASK BIT3 #define EFI_ACPI_EXTENDED_INTERRUPT_FLAG_SHARABLE_MASK BIT3
#define EFI_ACPI_EXTENDED_INTERRUPT_FLAG_WAKE_CAPABLITY_MASK BIT4 #define EFI_ACPI_EXTENDED_INTERRUPT_FLAG_WAKE_CAPABLITY_MASK BIT4
// //
// Ensure proper structure formats // Ensure proper structure formats
@ -399,11 +399,11 @@ typedef struct {
/// Root System Description Pointer Structure. /// Root System Description Pointer Structure.
/// ///
typedef struct { typedef struct {
UINT64 Signature; UINT64 Signature;
UINT8 Checksum; UINT8 Checksum;
UINT8 OemId[6]; UINT8 OemId[6];
UINT8 Reserved; UINT8 Reserved;
UINT32 RsdtAddress; UINT32 RsdtAddress;
} EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_POINTER; } EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_POINTER;
// //
@ -415,52 +415,52 @@ typedef struct {
/// ///
/// RSDT Revision (as defined in ACPI 1.0b specification). /// RSDT Revision (as defined in ACPI 1.0b specification).
/// ///
#define EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01 #define EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
/// ///
/// Fixed ACPI Description Table Structure (FADT). /// Fixed ACPI Description Table Structure (FADT).
/// ///
typedef struct { typedef struct {
EFI_ACPI_DESCRIPTION_HEADER Header; EFI_ACPI_DESCRIPTION_HEADER Header;
UINT32 FirmwareCtrl; UINT32 FirmwareCtrl;
UINT32 Dsdt; UINT32 Dsdt;
UINT8 IntModel; UINT8 IntModel;
UINT8 Reserved1; UINT8 Reserved1;
UINT16 SciInt; UINT16 SciInt;
UINT32 SmiCmd; UINT32 SmiCmd;
UINT8 AcpiEnable; UINT8 AcpiEnable;
UINT8 AcpiDisable; UINT8 AcpiDisable;
UINT8 S4BiosReq; UINT8 S4BiosReq;
UINT8 Reserved2; UINT8 Reserved2;
UINT32 Pm1aEvtBlk; UINT32 Pm1aEvtBlk;
UINT32 Pm1bEvtBlk; UINT32 Pm1bEvtBlk;
UINT32 Pm1aCntBlk; UINT32 Pm1aCntBlk;
UINT32 Pm1bCntBlk; UINT32 Pm1bCntBlk;
UINT32 Pm2CntBlk; UINT32 Pm2CntBlk;
UINT32 PmTmrBlk; UINT32 PmTmrBlk;
UINT32 Gpe0Blk; UINT32 Gpe0Blk;
UINT32 Gpe1Blk; UINT32 Gpe1Blk;
UINT8 Pm1EvtLen; UINT8 Pm1EvtLen;
UINT8 Pm1CntLen; UINT8 Pm1CntLen;
UINT8 Pm2CntLen; UINT8 Pm2CntLen;
UINT8 PmTmLen; UINT8 PmTmLen;
UINT8 Gpe0BlkLen; UINT8 Gpe0BlkLen;
UINT8 Gpe1BlkLen; UINT8 Gpe1BlkLen;
UINT8 Gpe1Base; UINT8 Gpe1Base;
UINT8 Reserved3; UINT8 Reserved3;
UINT16 PLvl2Lat; UINT16 PLvl2Lat;
UINT16 PLvl3Lat; UINT16 PLvl3Lat;
UINT16 FlushSize; UINT16 FlushSize;
UINT16 FlushStride; UINT16 FlushStride;
UINT8 DutyOffset; UINT8 DutyOffset;
UINT8 DutyWidth; UINT8 DutyWidth;
UINT8 DayAlrm; UINT8 DayAlrm;
UINT8 MonAlrm; UINT8 MonAlrm;
UINT8 Century; UINT8 Century;
UINT8 Reserved4; UINT8 Reserved4;
UINT8 Reserved5; UINT8 Reserved5;
UINT8 Reserved6; UINT8 Reserved6;
UINT32 Flags; UINT32 Flags;
} EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE; } EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE;
/// ///
@ -468,63 +468,63 @@ typedef struct {
/// ///
#define EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 0x01 #define EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 0x01
#define EFI_ACPI_1_0_INT_MODE_DUAL_PIC 0 #define EFI_ACPI_1_0_INT_MODE_DUAL_PIC 0
#define EFI_ACPI_1_0_INT_MODE_MULTIPLE_APIC 1 #define EFI_ACPI_1_0_INT_MODE_MULTIPLE_APIC 1
// //
// Fixed ACPI Description Table Fixed Feature Flags // Fixed ACPI Description Table Fixed Feature Flags
// All other bits are reserved and must be set to 0. // All other bits are reserved and must be set to 0.
// //
#define EFI_ACPI_1_0_WBINVD BIT0 #define EFI_ACPI_1_0_WBINVD BIT0
#define EFI_ACPI_1_0_WBINVD_FLUSH BIT1 #define EFI_ACPI_1_0_WBINVD_FLUSH BIT1
#define EFI_ACPI_1_0_PROC_C1 BIT2 #define EFI_ACPI_1_0_PROC_C1 BIT2
#define EFI_ACPI_1_0_P_LVL2_UP BIT3 #define EFI_ACPI_1_0_P_LVL2_UP BIT3
#define EFI_ACPI_1_0_PWR_BUTTON BIT4 #define EFI_ACPI_1_0_PWR_BUTTON BIT4
#define EFI_ACPI_1_0_SLP_BUTTON BIT5 #define EFI_ACPI_1_0_SLP_BUTTON BIT5
#define EFI_ACPI_1_0_FIX_RTC BIT6 #define EFI_ACPI_1_0_FIX_RTC BIT6
#define EFI_ACPI_1_0_RTC_S4 BIT7 #define EFI_ACPI_1_0_RTC_S4 BIT7
#define EFI_ACPI_1_0_TMR_VAL_EXT BIT8 #define EFI_ACPI_1_0_TMR_VAL_EXT BIT8
#define EFI_ACPI_1_0_DCK_CAP BIT9 #define EFI_ACPI_1_0_DCK_CAP BIT9
/// ///
/// Firmware ACPI Control Structure. /// Firmware ACPI Control Structure.
/// ///
typedef struct { typedef struct {
UINT32 Signature; UINT32 Signature;
UINT32 Length; UINT32 Length;
UINT32 HardwareSignature; UINT32 HardwareSignature;
UINT32 FirmwareWakingVector; UINT32 FirmwareWakingVector;
UINT32 GlobalLock; UINT32 GlobalLock;
UINT32 Flags; UINT32 Flags;
UINT8 Reserved[40]; UINT8 Reserved[40];
} EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE; } EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE;
/// ///
/// Firmware Control Structure Feature Flags. /// Firmware Control Structure Feature Flags.
/// All other bits are reserved and must be set to 0. /// All other bits are reserved and must be set to 0.
/// ///
#define EFI_ACPI_1_0_S4BIOS_F BIT0 #define EFI_ACPI_1_0_S4BIOS_F BIT0
/// ///
/// Multiple APIC Description Table header definition. The rest of the table /// Multiple APIC Description Table header definition. The rest of the table
/// must be defined in a platform-specific manner. /// must be defined in a platform-specific manner.
/// ///
typedef struct { typedef struct {
EFI_ACPI_DESCRIPTION_HEADER Header; EFI_ACPI_DESCRIPTION_HEADER Header;
UINT32 LocalApicAddress; UINT32 LocalApicAddress;
UINT32 Flags; UINT32 Flags;
} EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER; } EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER;
/// ///
/// MADT Revision (as defined in ACPI 1.0b specification). /// MADT Revision (as defined in ACPI 1.0b specification).
/// ///
#define EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x01 #define EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x01
/// ///
/// Multiple APIC Flags /// Multiple APIC Flags
/// All other bits are reserved and must be set to 0. /// All other bits are reserved and must be set to 0.
/// ///
#define EFI_ACPI_1_0_PCAT_COMPAT BIT0 #define EFI_ACPI_1_0_PCAT_COMPAT BIT0
// //
// Multiple APIC Description Table APIC structure types // Multiple APIC Description Table APIC structure types
@ -545,71 +545,71 @@ typedef struct {
/// Processor Local APIC Structure Definition. /// Processor Local APIC Structure Definition.
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT8 AcpiProcessorId; UINT8 AcpiProcessorId;
UINT8 ApicId; UINT8 ApicId;
UINT32 Flags; UINT32 Flags;
} EFI_ACPI_1_0_PROCESSOR_LOCAL_APIC_STRUCTURE; } EFI_ACPI_1_0_PROCESSOR_LOCAL_APIC_STRUCTURE;
/// ///
/// Local APIC Flags. All other bits are reserved and must be 0. /// Local APIC Flags. All other bits are reserved and must be 0.
/// ///
#define EFI_ACPI_1_0_LOCAL_APIC_ENABLED BIT0 #define EFI_ACPI_1_0_LOCAL_APIC_ENABLED BIT0
/// ///
/// IO APIC Structure. /// IO APIC Structure.
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT8 IoApicId; UINT8 IoApicId;
UINT8 Reserved; UINT8 Reserved;
UINT32 IoApicAddress; UINT32 IoApicAddress;
UINT32 SystemVectorBase; UINT32 SystemVectorBase;
} EFI_ACPI_1_0_IO_APIC_STRUCTURE; } EFI_ACPI_1_0_IO_APIC_STRUCTURE;
/// ///
/// Interrupt Source Override Structure. /// Interrupt Source Override Structure.
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT8 Bus; UINT8 Bus;
UINT8 Source; UINT8 Source;
UINT32 GlobalSystemInterruptVector; UINT32 GlobalSystemInterruptVector;
UINT16 Flags; UINT16 Flags;
} EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE; } EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE;
/// ///
/// Non-Maskable Interrupt Source Structure. /// Non-Maskable Interrupt Source Structure.
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT16 Flags; UINT16 Flags;
UINT32 GlobalSystemInterruptVector; UINT32 GlobalSystemInterruptVector;
} EFI_ACPI_1_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE; } EFI_ACPI_1_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE;
/// ///
/// Local APIC NMI Structure. /// Local APIC NMI Structure.
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT8 AcpiProcessorId; UINT8 AcpiProcessorId;
UINT16 Flags; UINT16 Flags;
UINT8 LocalApicInti; UINT8 LocalApicInti;
} EFI_ACPI_1_0_LOCAL_APIC_NMI_STRUCTURE; } EFI_ACPI_1_0_LOCAL_APIC_NMI_STRUCTURE;
/// ///
/// Smart Battery Description Table (SBST) /// Smart Battery Description Table (SBST)
/// ///
typedef struct { typedef struct {
EFI_ACPI_DESCRIPTION_HEADER Header; EFI_ACPI_DESCRIPTION_HEADER Header;
UINT32 WarningEnergyLevel; UINT32 WarningEnergyLevel;
UINT32 LowEnergyLevel; UINT32 LowEnergyLevel;
UINT32 CriticalEnergyLevel; UINT32 CriticalEnergyLevel;
} EFI_ACPI_1_0_SMART_BATTERY_DESCRIPTION_TABLE; } EFI_ACPI_1_0_SMART_BATTERY_DESCRIPTION_TABLE;
// //

View File

@ -13,9 +13,9 @@
// //
// Define for Descriptor // Define for Descriptor
// //
#define ACPI_LARGE_GENERIC_REGISTER_DESCRIPTOR_NAME 0x02 #define ACPI_LARGE_GENERIC_REGISTER_DESCRIPTOR_NAME 0x02
#define ACPI_GENERIC_REGISTER_DESCRIPTOR 0x82 #define ACPI_GENERIC_REGISTER_DESCRIPTOR 0x82
// //
// Ensure proper structure formats // Ensure proper structure formats
@ -45,11 +45,11 @@ typedef PACKED struct {
/// ACPI 2.0 Generic Address Space definition /// ACPI 2.0 Generic Address Space definition
/// ///
typedef struct { typedef struct {
UINT8 AddressSpaceId; UINT8 AddressSpaceId;
UINT8 RegisterBitWidth; UINT8 RegisterBitWidth;
UINT8 RegisterBitOffset; UINT8 RegisterBitOffset;
UINT8 Reserved; UINT8 Reserved;
UINT64 Address; UINT64 Address;
} EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE; } EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE;
// //
@ -70,29 +70,29 @@ typedef struct {
/// Root System Description Pointer Structure /// Root System Description Pointer Structure
/// ///
typedef struct { typedef struct {
UINT64 Signature; UINT64 Signature;
UINT8 Checksum; UINT8 Checksum;
UINT8 OemId[6]; UINT8 OemId[6];
UINT8 Revision; UINT8 Revision;
UINT32 RsdtAddress; UINT32 RsdtAddress;
UINT32 Length; UINT32 Length;
UINT64 XsdtAddress; UINT64 XsdtAddress;
UINT8 ExtendedChecksum; UINT8 ExtendedChecksum;
UINT8 Reserved[3]; UINT8 Reserved[3];
} EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER; } EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER;
/// ///
/// RSD_PTR Revision (as defined in ACPI 2.0 spec.) /// RSD_PTR Revision (as defined in ACPI 2.0 spec.)
/// ///
#define EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02 #define EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02
/// ///
/// Common table header, this prefaces all ACPI tables, including FACS, but /// Common table header, this prefaces all ACPI tables, including FACS, but
/// excluding the RSD PTR structure /// excluding the RSD PTR structure
/// ///
typedef struct { typedef struct {
UINT32 Signature; UINT32 Signature;
UINT32 Length; UINT32 Length;
} EFI_ACPI_2_0_COMMON_HEADER; } EFI_ACPI_2_0_COMMON_HEADER;
// //
@ -104,7 +104,7 @@ typedef struct {
/// ///
/// RSDT Revision (as defined in ACPI 2.0 spec.) /// RSDT Revision (as defined in ACPI 2.0 spec.)
/// ///
#define EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01 #define EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
// //
// Extended System Description Table // Extended System Description Table
@ -115,64 +115,64 @@ typedef struct {
/// ///
/// XSDT Revision (as defined in ACPI 2.0 spec.) /// XSDT Revision (as defined in ACPI 2.0 spec.)
/// ///
#define EFI_ACPI_2_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01 #define EFI_ACPI_2_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
/// ///
/// Fixed ACPI Description Table Structure (FADT) /// Fixed ACPI Description Table Structure (FADT)
/// ///
typedef struct { typedef struct {
EFI_ACPI_DESCRIPTION_HEADER Header; EFI_ACPI_DESCRIPTION_HEADER Header;
UINT32 FirmwareCtrl; UINT32 FirmwareCtrl;
UINT32 Dsdt; UINT32 Dsdt;
UINT8 Reserved0; UINT8 Reserved0;
UINT8 PreferredPmProfile; UINT8 PreferredPmProfile;
UINT16 SciInt; UINT16 SciInt;
UINT32 SmiCmd; UINT32 SmiCmd;
UINT8 AcpiEnable; UINT8 AcpiEnable;
UINT8 AcpiDisable; UINT8 AcpiDisable;
UINT8 S4BiosReq; UINT8 S4BiosReq;
UINT8 PstateCnt; UINT8 PstateCnt;
UINT32 Pm1aEvtBlk; UINT32 Pm1aEvtBlk;
UINT32 Pm1bEvtBlk; UINT32 Pm1bEvtBlk;
UINT32 Pm1aCntBlk; UINT32 Pm1aCntBlk;
UINT32 Pm1bCntBlk; UINT32 Pm1bCntBlk;
UINT32 Pm2CntBlk; UINT32 Pm2CntBlk;
UINT32 PmTmrBlk; UINT32 PmTmrBlk;
UINT32 Gpe0Blk; UINT32 Gpe0Blk;
UINT32 Gpe1Blk; UINT32 Gpe1Blk;
UINT8 Pm1EvtLen; UINT8 Pm1EvtLen;
UINT8 Pm1CntLen; UINT8 Pm1CntLen;
UINT8 Pm2CntLen; UINT8 Pm2CntLen;
UINT8 PmTmrLen; UINT8 PmTmrLen;
UINT8 Gpe0BlkLen; UINT8 Gpe0BlkLen;
UINT8 Gpe1BlkLen; UINT8 Gpe1BlkLen;
UINT8 Gpe1Base; UINT8 Gpe1Base;
UINT8 CstCnt; UINT8 CstCnt;
UINT16 PLvl2Lat; UINT16 PLvl2Lat;
UINT16 PLvl3Lat; UINT16 PLvl3Lat;
UINT16 FlushSize; UINT16 FlushSize;
UINT16 FlushStride; UINT16 FlushStride;
UINT8 DutyOffset; UINT8 DutyOffset;
UINT8 DutyWidth; UINT8 DutyWidth;
UINT8 DayAlrm; UINT8 DayAlrm;
UINT8 MonAlrm; UINT8 MonAlrm;
UINT8 Century; UINT8 Century;
UINT16 IaPcBootArch; UINT16 IaPcBootArch;
UINT8 Reserved1; UINT8 Reserved1;
UINT32 Flags; UINT32 Flags;
EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE ResetReg; EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE ResetReg;
UINT8 ResetValue; UINT8 ResetValue;
UINT8 Reserved2[3]; UINT8 Reserved2[3];
UINT64 XFirmwareCtrl; UINT64 XFirmwareCtrl;
UINT64 XDsdt; UINT64 XDsdt;
EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk; EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk;
EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk; EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk;
EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk; EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk;
EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk; EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk;
EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk; EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk;
EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk; EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk;
EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk; EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk;
EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk; EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk;
} EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE; } EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE;
/// ///
@ -183,53 +183,53 @@ typedef struct {
// //
// Fixed ACPI Description Table Preferred Power Management Profile // Fixed ACPI Description Table Preferred Power Management Profile
// //
#define EFI_ACPI_2_0_PM_PROFILE_UNSPECIFIED 0 #define EFI_ACPI_2_0_PM_PROFILE_UNSPECIFIED 0
#define EFI_ACPI_2_0_PM_PROFILE_DESKTOP 1 #define EFI_ACPI_2_0_PM_PROFILE_DESKTOP 1
#define EFI_ACPI_2_0_PM_PROFILE_MOBILE 2 #define EFI_ACPI_2_0_PM_PROFILE_MOBILE 2
#define EFI_ACPI_2_0_PM_PROFILE_WORKSTATION 3 #define EFI_ACPI_2_0_PM_PROFILE_WORKSTATION 3
#define EFI_ACPI_2_0_PM_PROFILE_ENTERPRISE_SERVER 4 #define EFI_ACPI_2_0_PM_PROFILE_ENTERPRISE_SERVER 4
#define EFI_ACPI_2_0_PM_PROFILE_SOHO_SERVER 5 #define EFI_ACPI_2_0_PM_PROFILE_SOHO_SERVER 5
#define EFI_ACPI_2_0_PM_PROFILE_APPLIANCE_PC 6 #define EFI_ACPI_2_0_PM_PROFILE_APPLIANCE_PC 6
// //
// Fixed ACPI Description Table Boot Architecture Flags // Fixed ACPI Description Table Boot Architecture Flags
// All other bits are reserved and must be set to 0. // All other bits are reserved and must be set to 0.
// //
#define EFI_ACPI_2_0_LEGACY_DEVICES BIT0 #define EFI_ACPI_2_0_LEGACY_DEVICES BIT0
#define EFI_ACPI_2_0_8042 BIT1 #define EFI_ACPI_2_0_8042 BIT1
// //
// Fixed ACPI Description Table Fixed Feature Flags // Fixed ACPI Description Table Fixed Feature Flags
// All other bits are reserved and must be set to 0. // All other bits are reserved and must be set to 0.
// //
#define EFI_ACPI_2_0_WBINVD BIT0 #define EFI_ACPI_2_0_WBINVD BIT0
#define EFI_ACPI_2_0_WBINVD_FLUSH BIT1 #define EFI_ACPI_2_0_WBINVD_FLUSH BIT1
#define EFI_ACPI_2_0_PROC_C1 BIT2 #define EFI_ACPI_2_0_PROC_C1 BIT2
#define EFI_ACPI_2_0_P_LVL2_UP BIT3 #define EFI_ACPI_2_0_P_LVL2_UP BIT3
#define EFI_ACPI_2_0_PWR_BUTTON BIT4 #define EFI_ACPI_2_0_PWR_BUTTON BIT4
#define EFI_ACPI_2_0_SLP_BUTTON BIT5 #define EFI_ACPI_2_0_SLP_BUTTON BIT5
#define EFI_ACPI_2_0_FIX_RTC BIT6 #define EFI_ACPI_2_0_FIX_RTC BIT6
#define EFI_ACPI_2_0_RTC_S4 BIT7 #define EFI_ACPI_2_0_RTC_S4 BIT7
#define EFI_ACPI_2_0_TMR_VAL_EXT BIT8 #define EFI_ACPI_2_0_TMR_VAL_EXT BIT8
#define EFI_ACPI_2_0_DCK_CAP BIT9 #define EFI_ACPI_2_0_DCK_CAP BIT9
#define EFI_ACPI_2_0_RESET_REG_SUP BIT10 #define EFI_ACPI_2_0_RESET_REG_SUP BIT10
#define EFI_ACPI_2_0_SEALED_CASE BIT11 #define EFI_ACPI_2_0_SEALED_CASE BIT11
#define EFI_ACPI_2_0_HEADLESS BIT12 #define EFI_ACPI_2_0_HEADLESS BIT12
#define EFI_ACPI_2_0_CPU_SW_SLP BIT13 #define EFI_ACPI_2_0_CPU_SW_SLP BIT13
/// ///
/// Firmware ACPI Control Structure /// Firmware ACPI Control Structure
/// ///
typedef struct { typedef struct {
UINT32 Signature; UINT32 Signature;
UINT32 Length; UINT32 Length;
UINT32 HardwareSignature; UINT32 HardwareSignature;
UINT32 FirmwareWakingVector; UINT32 FirmwareWakingVector;
UINT32 GlobalLock; UINT32 GlobalLock;
UINT32 Flags; UINT32 Flags;
UINT64 XFirmwareWakingVector; UINT64 XFirmwareWakingVector;
UINT8 Version; UINT8 Version;
UINT8 Reserved[31]; UINT8 Reserved[31];
} EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE; } EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE;
/// ///
@ -241,28 +241,28 @@ typedef struct {
/// Firmware Control Structure Feature Flags /// Firmware Control Structure Feature Flags
/// All other bits are reserved and must be set to 0. /// All other bits are reserved and must be set to 0.
/// ///
#define EFI_ACPI_2_0_S4BIOS_F BIT0 #define EFI_ACPI_2_0_S4BIOS_F BIT0
/// ///
/// Multiple APIC Description Table header definition. The rest of the table /// Multiple APIC Description Table header definition. The rest of the table
/// must be defined in a platform specific manner. /// must be defined in a platform specific manner.
/// ///
typedef struct { typedef struct {
EFI_ACPI_DESCRIPTION_HEADER Header; EFI_ACPI_DESCRIPTION_HEADER Header;
UINT32 LocalApicAddress; UINT32 LocalApicAddress;
UINT32 Flags; UINT32 Flags;
} EFI_ACPI_2_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER; } EFI_ACPI_2_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER;
/// ///
/// MADT Revision (as defined in ACPI 2.0 spec.) /// MADT Revision (as defined in ACPI 2.0 spec.)
/// ///
#define EFI_ACPI_2_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x01 #define EFI_ACPI_2_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x01
/// ///
/// Multiple APIC Flags /// Multiple APIC Flags
/// All other bits are reserved and must be set to 0. /// All other bits are reserved and must be set to 0.
/// ///
#define EFI_ACPI_2_0_PCAT_COMPAT BIT0 #define EFI_ACPI_2_0_PCAT_COMPAT BIT0
// //
// Multiple APIC Description Table APIC structure types // Multiple APIC Description Table APIC structure types
@ -287,127 +287,127 @@ typedef struct {
/// Processor Local APIC Structure Definition /// Processor Local APIC Structure Definition
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT8 AcpiProcessorId; UINT8 AcpiProcessorId;
UINT8 ApicId; UINT8 ApicId;
UINT32 Flags; UINT32 Flags;
} EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE; } EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE;
/// ///
/// Local APIC Flags. All other bits are reserved and must be 0. /// Local APIC Flags. All other bits are reserved and must be 0.
/// ///
#define EFI_ACPI_2_0_LOCAL_APIC_ENABLED BIT0 #define EFI_ACPI_2_0_LOCAL_APIC_ENABLED BIT0
/// ///
/// IO APIC Structure /// IO APIC Structure
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT8 IoApicId; UINT8 IoApicId;
UINT8 Reserved; UINT8 Reserved;
UINT32 IoApicAddress; UINT32 IoApicAddress;
UINT32 GlobalSystemInterruptBase; UINT32 GlobalSystemInterruptBase;
} EFI_ACPI_2_0_IO_APIC_STRUCTURE; } EFI_ACPI_2_0_IO_APIC_STRUCTURE;
/// ///
/// Interrupt Source Override Structure /// Interrupt Source Override Structure
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT8 Bus; UINT8 Bus;
UINT8 Source; UINT8 Source;
UINT32 GlobalSystemInterrupt; UINT32 GlobalSystemInterrupt;
UINT16 Flags; UINT16 Flags;
} EFI_ACPI_2_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE; } EFI_ACPI_2_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE;
/// ///
/// Non-Maskable Interrupt Source Structure /// Non-Maskable Interrupt Source Structure
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT16 Flags; UINT16 Flags;
UINT32 GlobalSystemInterrupt; UINT32 GlobalSystemInterrupt;
} EFI_ACPI_2_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE; } EFI_ACPI_2_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE;
/// ///
/// Local APIC NMI Structure /// Local APIC NMI Structure
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT8 AcpiProcessorId; UINT8 AcpiProcessorId;
UINT16 Flags; UINT16 Flags;
UINT8 LocalApicLint; UINT8 LocalApicLint;
} EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE; } EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE;
/// ///
/// Local APIC Address Override Structure /// Local APIC Address Override Structure
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT16 Reserved; UINT16 Reserved;
UINT64 LocalApicAddress; UINT64 LocalApicAddress;
} EFI_ACPI_2_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE; } EFI_ACPI_2_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE;
/// ///
/// IO SAPIC Structure /// IO SAPIC Structure
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT8 IoApicId; UINT8 IoApicId;
UINT8 Reserved; UINT8 Reserved;
UINT32 GlobalSystemInterruptBase; UINT32 GlobalSystemInterruptBase;
UINT64 IoSapicAddress; UINT64 IoSapicAddress;
} EFI_ACPI_2_0_IO_SAPIC_STRUCTURE; } EFI_ACPI_2_0_IO_SAPIC_STRUCTURE;
/// ///
/// Local SAPIC Structure /// Local SAPIC Structure
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT8 AcpiProcessorId; UINT8 AcpiProcessorId;
UINT8 LocalSapicId; UINT8 LocalSapicId;
UINT8 LocalSapicEid; UINT8 LocalSapicEid;
UINT8 Reserved[3]; UINT8 Reserved[3];
UINT32 Flags; UINT32 Flags;
} EFI_ACPI_2_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE; } EFI_ACPI_2_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE;
/// ///
/// Platform Interrupt Sources Structure /// Platform Interrupt Sources Structure
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT16 Flags; UINT16 Flags;
UINT8 InterruptType; UINT8 InterruptType;
UINT8 ProcessorId; UINT8 ProcessorId;
UINT8 ProcessorEid; UINT8 ProcessorEid;
UINT8 IoSapicVector; UINT8 IoSapicVector;
UINT32 GlobalSystemInterrupt; UINT32 GlobalSystemInterrupt;
UINT32 Reserved; UINT32 Reserved;
} EFI_ACPI_2_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE; } EFI_ACPI_2_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE;
/// ///
/// Smart Battery Description Table (SBST) /// Smart Battery Description Table (SBST)
/// ///
typedef struct { typedef struct {
EFI_ACPI_DESCRIPTION_HEADER Header; EFI_ACPI_DESCRIPTION_HEADER Header;
UINT32 WarningEnergyLevel; UINT32 WarningEnergyLevel;
UINT32 LowEnergyLevel; UINT32 LowEnergyLevel;
UINT32 CriticalEnergyLevel; UINT32 CriticalEnergyLevel;
} EFI_ACPI_2_0_SMART_BATTERY_DESCRIPTION_TABLE; } EFI_ACPI_2_0_SMART_BATTERY_DESCRIPTION_TABLE;
/// ///
/// SBST Version (as defined in ACPI 2.0 spec.) /// SBST Version (as defined in ACPI 2.0 spec.)
/// ///
#define EFI_ACPI_2_0_SMART_BATTERY_DESCRIPTION_TABLE_REVISION 0x01 #define EFI_ACPI_2_0_SMART_BATTERY_DESCRIPTION_TABLE_REVISION 0x01
/// ///
/// Embedded Controller Boot Resources Table (ECDT) /// Embedded Controller Boot Resources Table (ECDT)
@ -415,11 +415,11 @@ typedef struct {
/// a fully qualified reference to the name space object. /// a fully qualified reference to the name space object.
/// ///
typedef struct { typedef struct {
EFI_ACPI_DESCRIPTION_HEADER Header; EFI_ACPI_DESCRIPTION_HEADER Header;
EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE EcControl; EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE EcControl;
EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE EcData; EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE EcData;
UINT32 Uid; UINT32 Uid;
UINT8 GpeBit; UINT8 GpeBit;
} EFI_ACPI_2_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE; } EFI_ACPI_2_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE;
/// ///

View File

@ -13,9 +13,9 @@
// //
// Define for Descriptor // Define for Descriptor
// //
#define ACPI_LARGE_EXTENDED_ADDRESS_SPACE_DESCRIPTOR_NAME 0x0B #define ACPI_LARGE_EXTENDED_ADDRESS_SPACE_DESCRIPTOR_NAME 0x0B
#define ACPI_EXTENDED_ADDRESS_SPACE_DESCRIPTOR 0x8B #define ACPI_EXTENDED_ADDRESS_SPACE_DESCRIPTOR 0x8B
// //
// Ensure proper structure formats // Ensure proper structure formats
@ -45,12 +45,12 @@ typedef PACKED struct {
// //
// Memory Type Specific Flags // Memory Type Specific Flags
// //
#define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_UC 0x0000000000000001 #define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_UC 0x0000000000000001
#define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_WC 0x0000000000000002 #define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_WC 0x0000000000000002
#define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_WT 0x0000000000000004 #define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_WT 0x0000000000000004
#define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_WB 0x0000000000000008 #define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_WB 0x0000000000000008
#define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_UCE 0x0000000000000010 #define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_UCE 0x0000000000000010
#define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_NV 0x0000000000008000 #define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_NV 0x0000000000008000
// //
// Ensure proper structure formats // Ensure proper structure formats
@ -61,11 +61,11 @@ typedef PACKED struct {
/// ACPI 3.0 Generic Address Space definition /// ACPI 3.0 Generic Address Space definition
/// ///
typedef struct { typedef struct {
UINT8 AddressSpaceId; UINT8 AddressSpaceId;
UINT8 RegisterBitWidth; UINT8 RegisterBitWidth;
UINT8 RegisterBitOffset; UINT8 RegisterBitOffset;
UINT8 AccessSize; UINT8 AccessSize;
UINT64 Address; UINT64 Address;
} EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE; } EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE;
// //
@ -95,29 +95,29 @@ typedef struct {
/// Root System Description Pointer Structure /// Root System Description Pointer Structure
/// ///
typedef struct { typedef struct {
UINT64 Signature; UINT64 Signature;
UINT8 Checksum; UINT8 Checksum;
UINT8 OemId[6]; UINT8 OemId[6];
UINT8 Revision; UINT8 Revision;
UINT32 RsdtAddress; UINT32 RsdtAddress;
UINT32 Length; UINT32 Length;
UINT64 XsdtAddress; UINT64 XsdtAddress;
UINT8 ExtendedChecksum; UINT8 ExtendedChecksum;
UINT8 Reserved[3]; UINT8 Reserved[3];
} EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER; } EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER;
/// ///
/// RSD_PTR Revision (as defined in ACPI 3.0b spec.) /// RSD_PTR Revision (as defined in ACPI 3.0b spec.)
/// ///
#define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02 ///< ACPISpec (Revision 3.0b) says current value is 2 #define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02 ///< ACPISpec (Revision 3.0b) says current value is 2
/// ///
/// Common table header, this prefaces all ACPI tables, including FACS, but /// Common table header, this prefaces all ACPI tables, including FACS, but
/// excluding the RSD PTR structure /// excluding the RSD PTR structure
/// ///
typedef struct { typedef struct {
UINT32 Signature; UINT32 Signature;
UINT32 Length; UINT32 Length;
} EFI_ACPI_3_0_COMMON_HEADER; } EFI_ACPI_3_0_COMMON_HEADER;
// //
@ -129,7 +129,7 @@ typedef struct {
/// ///
/// RSDT Revision (as defined in ACPI 3.0 spec.) /// RSDT Revision (as defined in ACPI 3.0 spec.)
/// ///
#define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01 #define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
// //
// Extended System Description Table // Extended System Description Table
@ -140,64 +140,64 @@ typedef struct {
/// ///
/// XSDT Revision (as defined in ACPI 3.0 spec.) /// XSDT Revision (as defined in ACPI 3.0 spec.)
/// ///
#define EFI_ACPI_3_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01 #define EFI_ACPI_3_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
/// ///
/// Fixed ACPI Description Table Structure (FADT) /// Fixed ACPI Description Table Structure (FADT)
/// ///
typedef struct { typedef struct {
EFI_ACPI_DESCRIPTION_HEADER Header; EFI_ACPI_DESCRIPTION_HEADER Header;
UINT32 FirmwareCtrl; UINT32 FirmwareCtrl;
UINT32 Dsdt; UINT32 Dsdt;
UINT8 Reserved0; UINT8 Reserved0;
UINT8 PreferredPmProfile; UINT8 PreferredPmProfile;
UINT16 SciInt; UINT16 SciInt;
UINT32 SmiCmd; UINT32 SmiCmd;
UINT8 AcpiEnable; UINT8 AcpiEnable;
UINT8 AcpiDisable; UINT8 AcpiDisable;
UINT8 S4BiosReq; UINT8 S4BiosReq;
UINT8 PstateCnt; UINT8 PstateCnt;
UINT32 Pm1aEvtBlk; UINT32 Pm1aEvtBlk;
UINT32 Pm1bEvtBlk; UINT32 Pm1bEvtBlk;
UINT32 Pm1aCntBlk; UINT32 Pm1aCntBlk;
UINT32 Pm1bCntBlk; UINT32 Pm1bCntBlk;
UINT32 Pm2CntBlk; UINT32 Pm2CntBlk;
UINT32 PmTmrBlk; UINT32 PmTmrBlk;
UINT32 Gpe0Blk; UINT32 Gpe0Blk;
UINT32 Gpe1Blk; UINT32 Gpe1Blk;
UINT8 Pm1EvtLen; UINT8 Pm1EvtLen;
UINT8 Pm1CntLen; UINT8 Pm1CntLen;
UINT8 Pm2CntLen; UINT8 Pm2CntLen;
UINT8 PmTmrLen; UINT8 PmTmrLen;
UINT8 Gpe0BlkLen; UINT8 Gpe0BlkLen;
UINT8 Gpe1BlkLen; UINT8 Gpe1BlkLen;
UINT8 Gpe1Base; UINT8 Gpe1Base;
UINT8 CstCnt; UINT8 CstCnt;
UINT16 PLvl2Lat; UINT16 PLvl2Lat;
UINT16 PLvl3Lat; UINT16 PLvl3Lat;
UINT16 FlushSize; UINT16 FlushSize;
UINT16 FlushStride; UINT16 FlushStride;
UINT8 DutyOffset; UINT8 DutyOffset;
UINT8 DutyWidth; UINT8 DutyWidth;
UINT8 DayAlrm; UINT8 DayAlrm;
UINT8 MonAlrm; UINT8 MonAlrm;
UINT8 Century; UINT8 Century;
UINT16 IaPcBootArch; UINT16 IaPcBootArch;
UINT8 Reserved1; UINT8 Reserved1;
UINT32 Flags; UINT32 Flags;
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE ResetReg; EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE ResetReg;
UINT8 ResetValue; UINT8 ResetValue;
UINT8 Reserved2[3]; UINT8 Reserved2[3];
UINT64 XFirmwareCtrl; UINT64 XFirmwareCtrl;
UINT64 XDsdt; UINT64 XDsdt;
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk; EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk;
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk; EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk;
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk; EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk;
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk; EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk;
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk; EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk;
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk; EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk;
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk; EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk;
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk; EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk;
} EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE; } EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE;
/// ///
@ -221,50 +221,50 @@ typedef struct {
// Fixed ACPI Description Table Boot Architecture Flags // Fixed ACPI Description Table Boot Architecture Flags
// All other bits are reserved and must be set to 0. // All other bits are reserved and must be set to 0.
// //
#define EFI_ACPI_3_0_LEGACY_DEVICES BIT0 #define EFI_ACPI_3_0_LEGACY_DEVICES BIT0
#define EFI_ACPI_3_0_8042 BIT1 #define EFI_ACPI_3_0_8042 BIT1
#define EFI_ACPI_3_0_VGA_NOT_PRESENT BIT2 #define EFI_ACPI_3_0_VGA_NOT_PRESENT BIT2
#define EFI_ACPI_3_0_MSI_NOT_SUPPORTED BIT3 #define EFI_ACPI_3_0_MSI_NOT_SUPPORTED BIT3
#define EFI_ACPI_3_0_PCIE_ASPM_CONTROLS BIT4 #define EFI_ACPI_3_0_PCIE_ASPM_CONTROLS BIT4
// //
// Fixed ACPI Description Table Fixed Feature Flags // Fixed ACPI Description Table Fixed Feature Flags
// All other bits are reserved and must be set to 0. // All other bits are reserved and must be set to 0.
// //
#define EFI_ACPI_3_0_WBINVD BIT0 #define EFI_ACPI_3_0_WBINVD BIT0
#define EFI_ACPI_3_0_WBINVD_FLUSH BIT1 #define EFI_ACPI_3_0_WBINVD_FLUSH BIT1
#define EFI_ACPI_3_0_PROC_C1 BIT2 #define EFI_ACPI_3_0_PROC_C1 BIT2
#define EFI_ACPI_3_0_P_LVL2_UP BIT3 #define EFI_ACPI_3_0_P_LVL2_UP BIT3
#define EFI_ACPI_3_0_PWR_BUTTON BIT4 #define EFI_ACPI_3_0_PWR_BUTTON BIT4
#define EFI_ACPI_3_0_SLP_BUTTON BIT5 #define EFI_ACPI_3_0_SLP_BUTTON BIT5
#define EFI_ACPI_3_0_FIX_RTC BIT6 #define EFI_ACPI_3_0_FIX_RTC BIT6
#define EFI_ACPI_3_0_RTC_S4 BIT7 #define EFI_ACPI_3_0_RTC_S4 BIT7
#define EFI_ACPI_3_0_TMR_VAL_EXT BIT8 #define EFI_ACPI_3_0_TMR_VAL_EXT BIT8
#define EFI_ACPI_3_0_DCK_CAP BIT9 #define EFI_ACPI_3_0_DCK_CAP BIT9
#define EFI_ACPI_3_0_RESET_REG_SUP BIT10 #define EFI_ACPI_3_0_RESET_REG_SUP BIT10
#define EFI_ACPI_3_0_SEALED_CASE BIT11 #define EFI_ACPI_3_0_SEALED_CASE BIT11
#define EFI_ACPI_3_0_HEADLESS BIT12 #define EFI_ACPI_3_0_HEADLESS BIT12
#define EFI_ACPI_3_0_CPU_SW_SLP BIT13 #define EFI_ACPI_3_0_CPU_SW_SLP BIT13
#define EFI_ACPI_3_0_PCI_EXP_WAK BIT14 #define EFI_ACPI_3_0_PCI_EXP_WAK BIT14
#define EFI_ACPI_3_0_USE_PLATFORM_CLOCK BIT15 #define EFI_ACPI_3_0_USE_PLATFORM_CLOCK BIT15
#define EFI_ACPI_3_0_S4_RTC_STS_VALID BIT16 #define EFI_ACPI_3_0_S4_RTC_STS_VALID BIT16
#define EFI_ACPI_3_0_REMOTE_POWER_ON_CAPABLE BIT17 #define EFI_ACPI_3_0_REMOTE_POWER_ON_CAPABLE BIT17
#define EFI_ACPI_3_0_FORCE_APIC_CLUSTER_MODEL BIT18 #define EFI_ACPI_3_0_FORCE_APIC_CLUSTER_MODEL BIT18
#define EFI_ACPI_3_0_FORCE_APIC_PHYSICAL_DESTINATION_MODE BIT19 #define EFI_ACPI_3_0_FORCE_APIC_PHYSICAL_DESTINATION_MODE BIT19
/// ///
/// Firmware ACPI Control Structure /// Firmware ACPI Control Structure
/// ///
typedef struct { typedef struct {
UINT32 Signature; UINT32 Signature;
UINT32 Length; UINT32 Length;
UINT32 HardwareSignature; UINT32 HardwareSignature;
UINT32 FirmwareWakingVector; UINT32 FirmwareWakingVector;
UINT32 GlobalLock; UINT32 GlobalLock;
UINT32 Flags; UINT32 Flags;
UINT64 XFirmwareWakingVector; UINT64 XFirmwareWakingVector;
UINT8 Version; UINT8 Version;
UINT8 Reserved[31]; UINT8 Reserved[31];
} EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE; } EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE;
/// ///
@ -276,7 +276,7 @@ typedef struct {
/// Firmware Control Structure Feature Flags /// Firmware Control Structure Feature Flags
/// All other bits are reserved and must be set to 0. /// All other bits are reserved and must be set to 0.
/// ///
#define EFI_ACPI_3_0_S4BIOS_F BIT0 #define EFI_ACPI_3_0_S4BIOS_F BIT0
// //
// Differentiated System Description Table, // Differentiated System Description Table,
@ -285,29 +285,29 @@ typedef struct {
// no definition needed as they are common description table header, the same with // no definition needed as they are common description table header, the same with
// EFI_ACPI_DESCRIPTION_HEADER, followed by a definition block. // EFI_ACPI_DESCRIPTION_HEADER, followed by a definition block.
// //
#define EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02 #define EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02
#define EFI_ACPI_3_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02 #define EFI_ACPI_3_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02
/// ///
/// Multiple APIC Description Table header definition. The rest of the table /// Multiple APIC Description Table header definition. The rest of the table
/// must be defined in a platform specific manner. /// must be defined in a platform specific manner.
/// ///
typedef struct { typedef struct {
EFI_ACPI_DESCRIPTION_HEADER Header; EFI_ACPI_DESCRIPTION_HEADER Header;
UINT32 LocalApicAddress; UINT32 LocalApicAddress;
UINT32 Flags; UINT32 Flags;
} EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER; } EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER;
/// ///
/// MADT Revision (as defined in ACPI 3.0 spec.) /// MADT Revision (as defined in ACPI 3.0 spec.)
/// ///
#define EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x02 #define EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x02
/// ///
/// Multiple APIC Flags /// Multiple APIC Flags
/// All other bits are reserved and must be set to 0. /// All other bits are reserved and must be set to 0.
/// ///
#define EFI_ACPI_3_0_PCAT_COMPAT BIT0 #define EFI_ACPI_3_0_PCAT_COMPAT BIT0
// //
// Multiple APIC Description Table APIC structure types // Multiple APIC Description Table APIC structure types
@ -332,57 +332,57 @@ typedef struct {
/// Processor Local APIC Structure Definition /// Processor Local APIC Structure Definition
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT8 AcpiProcessorId; UINT8 AcpiProcessorId;
UINT8 ApicId; UINT8 ApicId;
UINT32 Flags; UINT32 Flags;
} EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_STRUCTURE; } EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_STRUCTURE;
/// ///
/// Local APIC Flags. All other bits are reserved and must be 0. /// Local APIC Flags. All other bits are reserved and must be 0.
/// ///
#define EFI_ACPI_3_0_LOCAL_APIC_ENABLED BIT0 #define EFI_ACPI_3_0_LOCAL_APIC_ENABLED BIT0
/// ///
/// IO APIC Structure /// IO APIC Structure
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT8 IoApicId; UINT8 IoApicId;
UINT8 Reserved; UINT8 Reserved;
UINT32 IoApicAddress; UINT32 IoApicAddress;
UINT32 GlobalSystemInterruptBase; UINT32 GlobalSystemInterruptBase;
} EFI_ACPI_3_0_IO_APIC_STRUCTURE; } EFI_ACPI_3_0_IO_APIC_STRUCTURE;
/// ///
/// Interrupt Source Override Structure /// Interrupt Source Override Structure
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT8 Bus; UINT8 Bus;
UINT8 Source; UINT8 Source;
UINT32 GlobalSystemInterrupt; UINT32 GlobalSystemInterrupt;
UINT16 Flags; UINT16 Flags;
} EFI_ACPI_3_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE; } EFI_ACPI_3_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE;
/// ///
/// Platform Interrupt Sources Structure Definition /// Platform Interrupt Sources Structure Definition
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT16 Flags; UINT16 Flags;
UINT8 InterruptType; UINT8 InterruptType;
UINT8 ProcessorId; UINT8 ProcessorId;
UINT8 ProcessorEid; UINT8 ProcessorEid;
UINT8 IoSapicVector; UINT8 IoSapicVector;
UINT32 GlobalSystemInterrupt; UINT32 GlobalSystemInterrupt;
UINT32 PlatformInterruptSourceFlags; UINT32 PlatformInterruptSourceFlags;
UINT8 CpeiProcessorOverride; UINT8 CpeiProcessorOverride;
UINT8 Reserved[31]; UINT8 Reserved[31];
} EFI_ACPI_3_0_PLATFORM_INTERRUPT_APIC_STRUCTURE; } EFI_ACPI_3_0_PLATFORM_INTERRUPT_APIC_STRUCTURE;
// //
@ -396,43 +396,43 @@ typedef struct {
/// Non-Maskable Interrupt Source Structure /// Non-Maskable Interrupt Source Structure
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT16 Flags; UINT16 Flags;
UINT32 GlobalSystemInterrupt; UINT32 GlobalSystemInterrupt;
} EFI_ACPI_3_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE; } EFI_ACPI_3_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE;
/// ///
/// Local APIC NMI Structure /// Local APIC NMI Structure
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT8 AcpiProcessorId; UINT8 AcpiProcessorId;
UINT16 Flags; UINT16 Flags;
UINT8 LocalApicLint; UINT8 LocalApicLint;
} EFI_ACPI_3_0_LOCAL_APIC_NMI_STRUCTURE; } EFI_ACPI_3_0_LOCAL_APIC_NMI_STRUCTURE;
/// ///
/// Local APIC Address Override Structure /// Local APIC Address Override Structure
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT16 Reserved; UINT16 Reserved;
UINT64 LocalApicAddress; UINT64 LocalApicAddress;
} EFI_ACPI_3_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE; } EFI_ACPI_3_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE;
/// ///
/// IO SAPIC Structure /// IO SAPIC Structure
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT8 IoApicId; UINT8 IoApicId;
UINT8 Reserved; UINT8 Reserved;
UINT32 GlobalSystemInterruptBase; UINT32 GlobalSystemInterruptBase;
UINT64 IoSapicAddress; UINT64 IoSapicAddress;
} EFI_ACPI_3_0_IO_SAPIC_STRUCTURE; } EFI_ACPI_3_0_IO_SAPIC_STRUCTURE;
/// ///
@ -440,51 +440,51 @@ typedef struct {
/// This struct followed by a null-terminated ASCII string - ACPI Processor UID String /// This struct followed by a null-terminated ASCII string - ACPI Processor UID String
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT8 AcpiProcessorId; UINT8 AcpiProcessorId;
UINT8 LocalSapicId; UINT8 LocalSapicId;
UINT8 LocalSapicEid; UINT8 LocalSapicEid;
UINT8 Reserved[3]; UINT8 Reserved[3];
UINT32 Flags; UINT32 Flags;
UINT32 ACPIProcessorUIDValue; UINT32 ACPIProcessorUIDValue;
} EFI_ACPI_3_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE; } EFI_ACPI_3_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE;
/// ///
/// Platform Interrupt Sources Structure /// Platform Interrupt Sources Structure
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT16 Flags; UINT16 Flags;
UINT8 InterruptType; UINT8 InterruptType;
UINT8 ProcessorId; UINT8 ProcessorId;
UINT8 ProcessorEid; UINT8 ProcessorEid;
UINT8 IoSapicVector; UINT8 IoSapicVector;
UINT32 GlobalSystemInterrupt; UINT32 GlobalSystemInterrupt;
UINT32 PlatformInterruptSourceFlags; UINT32 PlatformInterruptSourceFlags;
} EFI_ACPI_3_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE; } EFI_ACPI_3_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE;
/// ///
/// Platform Interrupt Source Flags. /// Platform Interrupt Source Flags.
/// All other bits are reserved and must be set to 0. /// All other bits are reserved and must be set to 0.
/// ///
#define EFI_ACPI_3_0_CPEI_PROCESSOR_OVERRIDE BIT0 #define EFI_ACPI_3_0_CPEI_PROCESSOR_OVERRIDE BIT0
/// ///
/// Smart Battery Description Table (SBST) /// Smart Battery Description Table (SBST)
/// ///
typedef struct { typedef struct {
EFI_ACPI_DESCRIPTION_HEADER Header; EFI_ACPI_DESCRIPTION_HEADER Header;
UINT32 WarningEnergyLevel; UINT32 WarningEnergyLevel;
UINT32 LowEnergyLevel; UINT32 LowEnergyLevel;
UINT32 CriticalEnergyLevel; UINT32 CriticalEnergyLevel;
} EFI_ACPI_3_0_SMART_BATTERY_DESCRIPTION_TABLE; } EFI_ACPI_3_0_SMART_BATTERY_DESCRIPTION_TABLE;
/// ///
/// SBST Version (as defined in ACPI 3.0 spec.) /// SBST Version (as defined in ACPI 3.0 spec.)
/// ///
#define EFI_ACPI_3_0_SMART_BATTERY_DESCRIPTION_TABLE_REVISION 0x01 #define EFI_ACPI_3_0_SMART_BATTERY_DESCRIPTION_TABLE_REVISION 0x01
/// ///
/// Embedded Controller Boot Resources Table (ECDT) /// Embedded Controller Boot Resources Table (ECDT)
@ -492,11 +492,11 @@ typedef struct {
/// a fully qualified reference to the name space object. /// a fully qualified reference to the name space object.
/// ///
typedef struct { typedef struct {
EFI_ACPI_DESCRIPTION_HEADER Header; EFI_ACPI_DESCRIPTION_HEADER Header;
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE EcControl; EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE EcControl;
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE EcData; EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE EcData;
UINT32 Uid; UINT32 Uid;
UINT8 GpeBit; UINT8 GpeBit;
} EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE; } EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE;
/// ///
@ -509,9 +509,9 @@ typedef struct {
/// must be defined in a platform specific manner. /// must be defined in a platform specific manner.
/// ///
typedef struct { typedef struct {
EFI_ACPI_DESCRIPTION_HEADER Header; EFI_ACPI_DESCRIPTION_HEADER Header;
UINT32 Reserved1; ///< Must be set to 1 UINT32 Reserved1; ///< Must be set to 1
UINT64 Reserved2; UINT64 Reserved2;
} EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER; } EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER;
/// ///
@ -531,52 +531,52 @@ typedef struct {
/// Processor Local APIC/SAPIC Affinity Structure Definition /// Processor Local APIC/SAPIC Affinity Structure Definition
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT8 ProximityDomain7To0; UINT8 ProximityDomain7To0;
UINT8 ApicId; UINT8 ApicId;
UINT32 Flags; UINT32 Flags;
UINT8 LocalSapicEid; UINT8 LocalSapicEid;
UINT8 ProximityDomain31To8[3]; UINT8 ProximityDomain31To8[3];
UINT8 Reserved[4]; UINT8 Reserved[4];
} EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY_STRUCTURE; } EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY_STRUCTURE;
/// ///
/// Local APIC/SAPIC Flags. All other bits are reserved and must be 0. /// Local APIC/SAPIC Flags. All other bits are reserved and must be 0.
/// ///
#define EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_ENABLED (1 << 0) #define EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_ENABLED (1 << 0)
/// ///
/// Memory Affinity Structure Definition /// Memory Affinity Structure Definition
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT32 ProximityDomain; UINT32 ProximityDomain;
UINT16 Reserved1; UINT16 Reserved1;
UINT32 AddressBaseLow; UINT32 AddressBaseLow;
UINT32 AddressBaseHigh; UINT32 AddressBaseHigh;
UINT32 LengthLow; UINT32 LengthLow;
UINT32 LengthHigh; UINT32 LengthHigh;
UINT32 Reserved2; UINT32 Reserved2;
UINT32 Flags; UINT32 Flags;
UINT64 Reserved3; UINT64 Reserved3;
} EFI_ACPI_3_0_MEMORY_AFFINITY_STRUCTURE; } EFI_ACPI_3_0_MEMORY_AFFINITY_STRUCTURE;
// //
// Memory Flags. All other bits are reserved and must be 0. // Memory Flags. All other bits are reserved and must be 0.
// //
#define EFI_ACPI_3_0_MEMORY_ENABLED (1 << 0) #define EFI_ACPI_3_0_MEMORY_ENABLED (1 << 0)
#define EFI_ACPI_3_0_MEMORY_HOT_PLUGGABLE (1 << 1) #define EFI_ACPI_3_0_MEMORY_HOT_PLUGGABLE (1 << 1)
#define EFI_ACPI_3_0_MEMORY_NONVOLATILE (1 << 2) #define EFI_ACPI_3_0_MEMORY_NONVOLATILE (1 << 2)
/// ///
/// System Locality Distance Information Table (SLIT). /// System Locality Distance Information Table (SLIT).
/// The rest of the table is a matrix. /// The rest of the table is a matrix.
/// ///
typedef struct { typedef struct {
EFI_ACPI_DESCRIPTION_HEADER Header; EFI_ACPI_DESCRIPTION_HEADER Header;
UINT64 NumberOfSystemLocalities; UINT64 NumberOfSystemLocalities;
} EFI_ACPI_3_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_HEADER; } EFI_ACPI_3_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_HEADER;
/// ///

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -17,168 +17,168 @@
// //
// Primary OpCode // Primary OpCode
// //
#define AML_ZERO_OP 0x00 #define AML_ZERO_OP 0x00
#define AML_ONE_OP 0x01 #define AML_ONE_OP 0x01
#define AML_ALIAS_OP 0x06 #define AML_ALIAS_OP 0x06
#define AML_NAME_OP 0x08 #define AML_NAME_OP 0x08
#define AML_BYTE_PREFIX 0x0a #define AML_BYTE_PREFIX 0x0a
#define AML_WORD_PREFIX 0x0b #define AML_WORD_PREFIX 0x0b
#define AML_DWORD_PREFIX 0x0c #define AML_DWORD_PREFIX 0x0c
#define AML_STRING_PREFIX 0x0d #define AML_STRING_PREFIX 0x0d
#define AML_QWORD_PREFIX 0x0e #define AML_QWORD_PREFIX 0x0e
#define AML_SCOPE_OP 0x10 #define AML_SCOPE_OP 0x10
#define AML_BUFFER_OP 0x11 #define AML_BUFFER_OP 0x11
#define AML_PACKAGE_OP 0x12 #define AML_PACKAGE_OP 0x12
#define AML_VAR_PACKAGE_OP 0x13 #define AML_VAR_PACKAGE_OP 0x13
#define AML_METHOD_OP 0x14 #define AML_METHOD_OP 0x14
#define AML_EXTERNAL_OP 0x15 #define AML_EXTERNAL_OP 0x15
#define AML_DUAL_NAME_PREFIX 0x2e #define AML_DUAL_NAME_PREFIX 0x2e
#define AML_MULTI_NAME_PREFIX 0x2f #define AML_MULTI_NAME_PREFIX 0x2f
#define AML_NAME_CHAR_A 0x41 #define AML_NAME_CHAR_A 0x41
#define AML_NAME_CHAR_B 0x42 #define AML_NAME_CHAR_B 0x42
#define AML_NAME_CHAR_C 0x43 #define AML_NAME_CHAR_C 0x43
#define AML_NAME_CHAR_D 0x44 #define AML_NAME_CHAR_D 0x44
#define AML_NAME_CHAR_E 0x45 #define AML_NAME_CHAR_E 0x45
#define AML_NAME_CHAR_F 0x46 #define AML_NAME_CHAR_F 0x46
#define AML_NAME_CHAR_G 0x47 #define AML_NAME_CHAR_G 0x47
#define AML_NAME_CHAR_H 0x48 #define AML_NAME_CHAR_H 0x48
#define AML_NAME_CHAR_I 0x49 #define AML_NAME_CHAR_I 0x49
#define AML_NAME_CHAR_J 0x4a #define AML_NAME_CHAR_J 0x4a
#define AML_NAME_CHAR_K 0x4b #define AML_NAME_CHAR_K 0x4b
#define AML_NAME_CHAR_L 0x4c #define AML_NAME_CHAR_L 0x4c
#define AML_NAME_CHAR_M 0x4d #define AML_NAME_CHAR_M 0x4d
#define AML_NAME_CHAR_N 0x4e #define AML_NAME_CHAR_N 0x4e
#define AML_NAME_CHAR_O 0x4f #define AML_NAME_CHAR_O 0x4f
#define AML_NAME_CHAR_P 0x50 #define AML_NAME_CHAR_P 0x50
#define AML_NAME_CHAR_Q 0x51 #define AML_NAME_CHAR_Q 0x51
#define AML_NAME_CHAR_R 0x52 #define AML_NAME_CHAR_R 0x52
#define AML_NAME_CHAR_S 0x53 #define AML_NAME_CHAR_S 0x53
#define AML_NAME_CHAR_T 0x54 #define AML_NAME_CHAR_T 0x54
#define AML_NAME_CHAR_U 0x55 #define AML_NAME_CHAR_U 0x55
#define AML_NAME_CHAR_V 0x56 #define AML_NAME_CHAR_V 0x56
#define AML_NAME_CHAR_W 0x57 #define AML_NAME_CHAR_W 0x57
#define AML_NAME_CHAR_X 0x58 #define AML_NAME_CHAR_X 0x58
#define AML_NAME_CHAR_Y 0x59 #define AML_NAME_CHAR_Y 0x59
#define AML_NAME_CHAR_Z 0x5a #define AML_NAME_CHAR_Z 0x5a
#define AML_ROOT_CHAR 0x5c #define AML_ROOT_CHAR 0x5c
#define AML_PARENT_PREFIX_CHAR 0x5e #define AML_PARENT_PREFIX_CHAR 0x5e
#define AML_NAME_CHAR__ 0x5f #define AML_NAME_CHAR__ 0x5f
#define AML_LOCAL0 0x60 #define AML_LOCAL0 0x60
#define AML_LOCAL1 0x61 #define AML_LOCAL1 0x61
#define AML_LOCAL2 0x62 #define AML_LOCAL2 0x62
#define AML_LOCAL3 0x63 #define AML_LOCAL3 0x63
#define AML_LOCAL4 0x64 #define AML_LOCAL4 0x64
#define AML_LOCAL5 0x65 #define AML_LOCAL5 0x65
#define AML_LOCAL6 0x66 #define AML_LOCAL6 0x66
#define AML_LOCAL7 0x67 #define AML_LOCAL7 0x67
#define AML_ARG0 0x68 #define AML_ARG0 0x68
#define AML_ARG1 0x69 #define AML_ARG1 0x69
#define AML_ARG2 0x6a #define AML_ARG2 0x6a
#define AML_ARG3 0x6b #define AML_ARG3 0x6b
#define AML_ARG4 0x6c #define AML_ARG4 0x6c
#define AML_ARG5 0x6d #define AML_ARG5 0x6d
#define AML_ARG6 0x6e #define AML_ARG6 0x6e
#define AML_STORE_OP 0x70 #define AML_STORE_OP 0x70
#define AML_REF_OF_OP 0x71 #define AML_REF_OF_OP 0x71
#define AML_ADD_OP 0x72 #define AML_ADD_OP 0x72
#define AML_CONCAT_OP 0x73 #define AML_CONCAT_OP 0x73
#define AML_SUBTRACT_OP 0x74 #define AML_SUBTRACT_OP 0x74
#define AML_INCREMENT_OP 0x75 #define AML_INCREMENT_OP 0x75
#define AML_DECREMENT_OP 0x76 #define AML_DECREMENT_OP 0x76
#define AML_MULTIPLY_OP 0x77 #define AML_MULTIPLY_OP 0x77
#define AML_DIVIDE_OP 0x78 #define AML_DIVIDE_OP 0x78
#define AML_SHIFT_LEFT_OP 0x79 #define AML_SHIFT_LEFT_OP 0x79
#define AML_SHIFT_RIGHT_OP 0x7a #define AML_SHIFT_RIGHT_OP 0x7a
#define AML_AND_OP 0x7b #define AML_AND_OP 0x7b
#define AML_NAND_OP 0x7c #define AML_NAND_OP 0x7c
#define AML_OR_OP 0x7d #define AML_OR_OP 0x7d
#define AML_NOR_OP 0x7e #define AML_NOR_OP 0x7e
#define AML_XOR_OP 0x7f #define AML_XOR_OP 0x7f
#define AML_NOT_OP 0x80 #define AML_NOT_OP 0x80
#define AML_FIND_SET_LEFT_BIT_OP 0x81 #define AML_FIND_SET_LEFT_BIT_OP 0x81
#define AML_FIND_SET_RIGHT_BIT_OP 0x82 #define AML_FIND_SET_RIGHT_BIT_OP 0x82
#define AML_DEREF_OF_OP 0x83 #define AML_DEREF_OF_OP 0x83
#define AML_CONCAT_RES_OP 0x84 #define AML_CONCAT_RES_OP 0x84
#define AML_MOD_OP 0x85 #define AML_MOD_OP 0x85
#define AML_NOTIFY_OP 0x86 #define AML_NOTIFY_OP 0x86
#define AML_SIZE_OF_OP 0x87 #define AML_SIZE_OF_OP 0x87
#define AML_INDEX_OP 0x88 #define AML_INDEX_OP 0x88
#define AML_MATCH_OP 0x89 #define AML_MATCH_OP 0x89
#define AML_CREATE_DWORD_FIELD_OP 0x8a #define AML_CREATE_DWORD_FIELD_OP 0x8a
#define AML_CREATE_WORD_FIELD_OP 0x8b #define AML_CREATE_WORD_FIELD_OP 0x8b
#define AML_CREATE_BYTE_FIELD_OP 0x8c #define AML_CREATE_BYTE_FIELD_OP 0x8c
#define AML_CREATE_BIT_FIELD_OP 0x8d #define AML_CREATE_BIT_FIELD_OP 0x8d
#define AML_OBJECT_TYPE_OP 0x8e #define AML_OBJECT_TYPE_OP 0x8e
#define AML_CREATE_QWORD_FIELD_OP 0x8f #define AML_CREATE_QWORD_FIELD_OP 0x8f
#define AML_LAND_OP 0x90 #define AML_LAND_OP 0x90
#define AML_LOR_OP 0x91 #define AML_LOR_OP 0x91
#define AML_LNOT_OP 0x92 #define AML_LNOT_OP 0x92
#define AML_LEQUAL_OP 0x93 #define AML_LEQUAL_OP 0x93
#define AML_LGREATER_OP 0x94 #define AML_LGREATER_OP 0x94
#define AML_LLESS_OP 0x95 #define AML_LLESS_OP 0x95
#define AML_TO_BUFFER_OP 0x96 #define AML_TO_BUFFER_OP 0x96
#define AML_TO_DEC_STRING_OP 0x97 #define AML_TO_DEC_STRING_OP 0x97
#define AML_TO_HEX_STRING_OP 0x98 #define AML_TO_HEX_STRING_OP 0x98
#define AML_TO_INTEGER_OP 0x99 #define AML_TO_INTEGER_OP 0x99
#define AML_TO_STRING_OP 0x9c #define AML_TO_STRING_OP 0x9c
#define AML_COPY_OBJECT_OP 0x9d #define AML_COPY_OBJECT_OP 0x9d
#define AML_MID_OP 0x9e #define AML_MID_OP 0x9e
#define AML_CONTINUE_OP 0x9f #define AML_CONTINUE_OP 0x9f
#define AML_IF_OP 0xa0 #define AML_IF_OP 0xa0
#define AML_ELSE_OP 0xa1 #define AML_ELSE_OP 0xa1
#define AML_WHILE_OP 0xa2 #define AML_WHILE_OP 0xa2
#define AML_NOOP_OP 0xa3 #define AML_NOOP_OP 0xa3
#define AML_RETURN_OP 0xa4 #define AML_RETURN_OP 0xa4
#define AML_BREAK_OP 0xa5 #define AML_BREAK_OP 0xa5
#define AML_BREAK_POINT_OP 0xcc #define AML_BREAK_POINT_OP 0xcc
#define AML_ONES_OP 0xff #define AML_ONES_OP 0xff
// //
// Extended OpCode // Extended OpCode
// //
#define AML_EXT_OP 0x5b #define AML_EXT_OP 0x5b
#define AML_EXT_MUTEX_OP 0x01 #define AML_EXT_MUTEX_OP 0x01
#define AML_EXT_EVENT_OP 0x02 #define AML_EXT_EVENT_OP 0x02
#define AML_EXT_COND_REF_OF_OP 0x12 #define AML_EXT_COND_REF_OF_OP 0x12
#define AML_EXT_CREATE_FIELD_OP 0x13 #define AML_EXT_CREATE_FIELD_OP 0x13
#define AML_EXT_LOAD_TABLE_OP 0x1f #define AML_EXT_LOAD_TABLE_OP 0x1f
#define AML_EXT_LOAD_OP 0x20 #define AML_EXT_LOAD_OP 0x20
#define AML_EXT_STALL_OP 0x21 #define AML_EXT_STALL_OP 0x21
#define AML_EXT_SLEEP_OP 0x22 #define AML_EXT_SLEEP_OP 0x22
#define AML_EXT_ACQUIRE_OP 0x23 #define AML_EXT_ACQUIRE_OP 0x23
#define AML_EXT_SIGNAL_OP 0x24 #define AML_EXT_SIGNAL_OP 0x24
#define AML_EXT_WAIT_OP 0x25 #define AML_EXT_WAIT_OP 0x25
#define AML_EXT_RESET_OP 0x26 #define AML_EXT_RESET_OP 0x26
#define AML_EXT_RELEASE_OP 0x27 #define AML_EXT_RELEASE_OP 0x27
#define AML_EXT_FROM_BCD_OP 0x28 #define AML_EXT_FROM_BCD_OP 0x28
#define AML_EXT_TO_BCD_OP 0x29 #define AML_EXT_TO_BCD_OP 0x29
#define AML_EXT_UNLOAD_OP 0x2a #define AML_EXT_UNLOAD_OP 0x2a
#define AML_EXT_REVISION_OP 0x30 #define AML_EXT_REVISION_OP 0x30
#define AML_EXT_DEBUG_OP 0x31 #define AML_EXT_DEBUG_OP 0x31
#define AML_EXT_FATAL_OP 0x32 #define AML_EXT_FATAL_OP 0x32
#define AML_EXT_TIMER_OP 0x33 #define AML_EXT_TIMER_OP 0x33
#define AML_EXT_REGION_OP 0x80 #define AML_EXT_REGION_OP 0x80
#define AML_EXT_FIELD_OP 0x81 #define AML_EXT_FIELD_OP 0x81
#define AML_EXT_DEVICE_OP 0x82 #define AML_EXT_DEVICE_OP 0x82
#define AML_EXT_PROCESSOR_OP 0x83 #define AML_EXT_PROCESSOR_OP 0x83
#define AML_EXT_POWER_RES_OP 0x84 #define AML_EXT_POWER_RES_OP 0x84
#define AML_EXT_THERMAL_ZONE_OP 0x85 #define AML_EXT_THERMAL_ZONE_OP 0x85
#define AML_EXT_INDEX_FIELD_OP 0x86 #define AML_EXT_INDEX_FIELD_OP 0x86
#define AML_EXT_BANK_FIELD_OP 0x87 #define AML_EXT_BANK_FIELD_OP 0x87
#define AML_EXT_DATA_REGION_OP 0x88 #define AML_EXT_DATA_REGION_OP 0x88
// //
// FieldElement OpCode // FieldElement OpCode
// //
#define AML_FIELD_RESERVED_OP 0x00 #define AML_FIELD_RESERVED_OP 0x00
#define AML_FIELD_ACCESS_OP 0x01 #define AML_FIELD_ACCESS_OP 0x01
#define AML_FIELD_CONNECTION_OP 0x02 #define AML_FIELD_CONNECTION_OP 0x02
#define AML_FIELD_EXT_ACCESS_OP 0x03 #define AML_FIELD_EXT_ACCESS_OP 0x03
// //
// AML Name segment definitions // AML Name segment definitions
// //
#define AML_NAME_SEG_SIZE 4 #define AML_NAME_SEG_SIZE 4
#endif #endif

View File

@ -19,9 +19,9 @@
/// Information Record header that appears at the beginning of each record /// Information Record header that appears at the beginning of each record
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Reserved; UINT8 Reserved;
UINT16 RecordLength; UINT16 RecordLength;
} EFI_ACPI_ASF_RECORD_HEADER; } EFI_ACPI_ASF_RECORD_HEADER;
/// ///
@ -29,42 +29,42 @@ typedef struct {
/// and configuration /// and configuration
/// ///
typedef struct { typedef struct {
EFI_ACPI_ASF_RECORD_HEADER RecordHeader; EFI_ACPI_ASF_RECORD_HEADER RecordHeader;
UINT8 MinWatchDogResetValue; UINT8 MinWatchDogResetValue;
UINT8 MinPollingInterval; UINT8 MinPollingInterval;
UINT16 SystemID; UINT16 SystemID;
UINT32 IANAManufactureID; UINT32 IANAManufactureID;
UINT8 FeatureFlags; UINT8 FeatureFlags;
UINT8 Reserved[3]; UINT8 Reserved[3];
} EFI_ACPI_ASF_INFO; } EFI_ACPI_ASF_INFO;
/// ///
/// ASF Alert Data /// ASF Alert Data
/// ///
typedef struct { typedef struct {
UINT8 DeviceAddress; UINT8 DeviceAddress;
UINT8 Command; UINT8 Command;
UINT8 DataMask; UINT8 DataMask;
UINT8 CompareValue; UINT8 CompareValue;
UINT8 EventSenseType; UINT8 EventSenseType;
UINT8 EventType; UINT8 EventType;
UINT8 EventOffset; UINT8 EventOffset;
UINT8 EventSourceType; UINT8 EventSourceType;
UINT8 EventSeverity; UINT8 EventSeverity;
UINT8 SensorNumber; UINT8 SensorNumber;
UINT8 Entity; UINT8 Entity;
UINT8 EntityInstance; UINT8 EntityInstance;
} EFI_ACPI_ASF_ALERTDATA; } EFI_ACPI_ASF_ALERTDATA;
/// ///
/// Alert sensors definition /// Alert sensors definition
/// ///
typedef struct { typedef struct {
EFI_ACPI_ASF_RECORD_HEADER RecordHeader; EFI_ACPI_ASF_RECORD_HEADER RecordHeader;
UINT8 AssertionEventBitMask; UINT8 AssertionEventBitMask;
UINT8 DeassertionEventBitMask; UINT8 DeassertionEventBitMask;
UINT8 NumberOfAlerts; UINT8 NumberOfAlerts;
UINT8 ArrayElementLength; ///< For ASF version 1.0 and later, this filed is set to 0x0C UINT8 ArrayElementLength; ///< For ASF version 1.0 and later, this filed is set to 0x0C
/// ///
/// EFI_ACPI_ASF_ALERTDATA DeviceArray[ANYSIZE_ARRAY]; /// EFI_ACPI_ASF_ALERTDATA DeviceArray[ANYSIZE_ARRAY];
/// ///
@ -74,47 +74,46 @@ typedef struct {
/// Alert Control Data /// Alert Control Data
/// ///
typedef struct { typedef struct {
UINT8 Function; UINT8 Function;
UINT8 DeviceAddress; UINT8 DeviceAddress;
UINT8 Command; UINT8 Command;
UINT8 DataValue; UINT8 DataValue;
} EFI_ACPI_ASF_CONTROLDATA; } EFI_ACPI_ASF_CONTROLDATA;
/// ///
/// Alert Remote Control System Actions /// Alert Remote Control System Actions
/// ///
typedef struct { typedef struct {
EFI_ACPI_ASF_RECORD_HEADER RecordHeader; EFI_ACPI_ASF_RECORD_HEADER RecordHeader;
UINT8 NumberOfControls; UINT8 NumberOfControls;
UINT8 ArrayElementLength; ///< For ASF version 1.0 and later, this filed is set to 0x4 UINT8 ArrayElementLength; ///< For ASF version 1.0 and later, this filed is set to 0x4
UINT16 RctlReserved; UINT16 RctlReserved;
/// ///
/// EFI_ACPI_ASF_CONTROLDATA; DeviceArray[ANYSIZE_ARRAY]; /// EFI_ACPI_ASF_CONTROLDATA; DeviceArray[ANYSIZE_ARRAY];
/// ///
} EFI_ACPI_ASF_RCTL; } EFI_ACPI_ASF_RCTL;
/// ///
/// Remote Control Capabilities /// Remote Control Capabilities
/// ///
typedef struct { typedef struct {
EFI_ACPI_ASF_RECORD_HEADER RecordHeader; EFI_ACPI_ASF_RECORD_HEADER RecordHeader;
UINT8 RemoteControlCapabilities[7]; UINT8 RemoteControlCapabilities[7];
UINT8 RMCPCompletionCode; UINT8 RMCPCompletionCode;
UINT32 RMCPIANA; UINT32 RMCPIANA;
UINT8 RMCPSpecialCommand; UINT8 RMCPSpecialCommand;
UINT8 RMCPSpecialCommandParameter[2]; UINT8 RMCPSpecialCommandParameter[2];
UINT8 RMCPBootOptions[2]; UINT8 RMCPBootOptions[2];
UINT8 RMCPOEMParameters[2]; UINT8 RMCPOEMParameters[2];
} EFI_ACPI_ASF_RMCP; } EFI_ACPI_ASF_RMCP;
/// ///
/// SMBus Devices with fixed addresses /// SMBus Devices with fixed addresses
/// ///
typedef struct { typedef struct {
EFI_ACPI_ASF_RECORD_HEADER RecordHeader; EFI_ACPI_ASF_RECORD_HEADER RecordHeader;
UINT8 SEEPROMAddress; UINT8 SEEPROMAddress;
UINT8 NumberOfDevices; UINT8 NumberOfDevices;
/// ///
/// UINT8 FixedSmbusAddresses[ANYSIZE_ARRAY]; /// UINT8 FixedSmbusAddresses[ANYSIZE_ARRAY];
/// ///
@ -128,7 +127,7 @@ typedef EFI_ACPI_DESCRIPTION_HEADER EFI_ACPI_ASF_DESCRIPTION_HEADER;
/// ///
/// The revision stored in ASF! DESCRIPTION TABLE as BCD value /// The revision stored in ASF! DESCRIPTION TABLE as BCD value
/// ///
#define EFI_ACPI_2_0_ASF_DESCRIPTION_TABLE_REVISION 0x20 #define EFI_ACPI_2_0_ASF_DESCRIPTION_TABLE_REVISION 0x20
/// ///
/// "ASF!" ASF Description Table Signature /// "ASF!" ASF Description Table Signature

View File

@ -31,7 +31,7 @@
/// Arm Error Source Table definition. /// Arm Error Source Table definition.
/// ///
typedef struct { typedef struct {
EFI_ACPI_DESCRIPTION_HEADER Header; EFI_ACPI_DESCRIPTION_HEADER Header;
} EFI_ACPI_ARM_ERROR_SOURCE_TABLE; } EFI_ACPI_ARM_ERROR_SOURCE_TABLE;
/// ///
@ -44,36 +44,36 @@ typedef struct {
/// 0x02 - SMMU error node /// 0x02 - SMMU error node
/// 0x03 - Vendor-defined error node /// 0x03 - Vendor-defined error node
/// 0x04 - GIC error node /// 0x04 - GIC error node
UINT8 Type; UINT8 Type;
/// Length of structure in bytes. /// Length of structure in bytes.
UINT16 Length; UINT16 Length;
/// Reserved - Must be zero. /// Reserved - Must be zero.
UINT8 Reserved; UINT8 Reserved;
/// Offset from the start of the node to node-specific data. /// Offset from the start of the node to node-specific data.
UINT32 DataOffset; UINT32 DataOffset;
/// Offset from the start of the node to the node interface structure. /// Offset from the start of the node to the node interface structure.
UINT32 InterfaceOffset; UINT32 InterfaceOffset;
/// Offset from the start of the node to node interrupt array. /// Offset from the start of the node to node interrupt array.
UINT32 InterruptArrayOffset; UINT32 InterruptArrayOffset;
/// Number of entries in the interrupt array. /// Number of entries in the interrupt array.
UINT32 InterruptArrayCount; UINT32 InterruptArrayCount;
// Generic node data // Generic node data
/// The timestamp frequency of the counter in Hz. /// The timestamp frequency of the counter in Hz.
UINT64 TimestampRate; UINT64 TimestampRate;
/// Reserved - Must be zero. /// Reserved - Must be zero.
UINT64 Reserved1; UINT64 Reserved1;
/// The rate in Hz at which the Error Generation Counter decrements. /// The rate in Hz at which the Error Generation Counter decrements.
UINT64 ErrorInjectionCountdownRate; UINT64 ErrorInjectionCountdownRate;
} EFI_ACPI_AEST_NODE_STRUCT; } EFI_ACPI_AEST_NODE_STRUCT;
// AEST Node type definitions // AEST Node type definitions
@ -90,46 +90,46 @@ typedef struct {
/// Interface type: /// Interface type:
/// 0x0 - System register (SR) /// 0x0 - System register (SR)
/// 0x1 - Memory mapped (MMIO) /// 0x1 - Memory mapped (MMIO)
UINT8 Type; UINT8 Type;
/// Reserved - Must be zero. /// Reserved - Must be zero.
UINT8 Reserved[3]; UINT8 Reserved[3];
/// AEST node interface flags. /// AEST node interface flags.
UINT32 Flags; UINT32 Flags;
/// Base address of error group that contains the error node. /// Base address of error group that contains the error node.
UINT64 BaseAddress; UINT64 BaseAddress;
/// Zero-based index of the first standard error record that /// Zero-based index of the first standard error record that
/// belongs to this node. /// belongs to this node.
UINT32 StartErrorRecordIndex; UINT32 StartErrorRecordIndex;
/// Number of error records in this node including both /// Number of error records in this node including both
/// implemented and unimplemented records. /// implemented and unimplemented records.
UINT32 NumberErrorRecords; UINT32 NumberErrorRecords;
/// A bitmap indicating the error records within this /// A bitmap indicating the error records within this
/// node that are implemented in the current system. /// node that are implemented in the current system.
UINT64 ErrorRecordImplemented; UINT64 ErrorRecordImplemented;
/// A bitmap indicating the error records within this node that /// A bitmap indicating the error records within this node that
/// support error status reporting through the ERRGSR register. /// support error status reporting through the ERRGSR register.
UINT64 ErrorRecordStatusReportingSupported; UINT64 ErrorRecordStatusReportingSupported;
/// A bitmap indicating the addressing mode used by each error /// A bitmap indicating the addressing mode used by each error
/// record within this node to populate the ERR<n>_ADDR register. /// record within this node to populate the ERR<n>_ADDR register.
UINT64 AddressingMode; UINT64 AddressingMode;
} EFI_ACPI_AEST_INTERFACE_STRUCT; } EFI_ACPI_AEST_INTERFACE_STRUCT;
// AEST Interface node type definitions. // AEST Interface node type definitions.
#define EFI_ACPI_AEST_INTERFACE_TYPE_SR 0x0 #define EFI_ACPI_AEST_INTERFACE_TYPE_SR 0x0
#define EFI_ACPI_AEST_INTERFACE_TYPE_MMIO 0x1 #define EFI_ACPI_AEST_INTERFACE_TYPE_MMIO 0x1
// AEST node interface flag definitions. // AEST node interface flag definitions.
#define EFI_ACPI_AEST_INTERFACE_FLAG_PRIVATE 0 #define EFI_ACPI_AEST_INTERFACE_FLAG_PRIVATE 0
#define EFI_ACPI_AEST_INTERFACE_FLAG_SHARED BIT0 #define EFI_ACPI_AEST_INTERFACE_FLAG_SHARED BIT0
#define EFI_ACPI_AEST_INTERFACE_FLAG_CLEAR_MISCX BIT1 #define EFI_ACPI_AEST_INTERFACE_FLAG_CLEAR_MISCX BIT1
/// ///
/// AEST Node Interrupt structure. /// AEST Node Interrupt structure.
@ -138,46 +138,46 @@ typedef struct {
/// Interrupt type: /// Interrupt type:
/// 0x0 - Fault Handling Interrupt /// 0x0 - Fault Handling Interrupt
/// 0x1 - Error Recovery Interrupt /// 0x1 - Error Recovery Interrupt
UINT8 InterruptType; UINT8 InterruptType;
/// Reserved - Must be zero. /// Reserved - Must be zero.
UINT8 Reserved[2]; UINT8 Reserved[2];
/// Interrupt flags /// Interrupt flags
/// Bits [31:1]: Must be zero. /// Bits [31:1]: Must be zero.
/// Bit 0: /// Bit 0:
/// 0b - Interrupt is edge-triggered /// 0b - Interrupt is edge-triggered
/// 1b - Interrupt is level-triggered /// 1b - Interrupt is level-triggered
UINT8 InterruptFlags; UINT8 InterruptFlags;
/// GSIV of interrupt, if interrupt is an SPI or a PPI. /// GSIV of interrupt, if interrupt is an SPI or a PPI.
UINT32 InterruptGsiv; UINT32 InterruptGsiv;
/// If MSI is supported, then this field must be set to the /// If MSI is supported, then this field must be set to the
/// Identifier field of the IORT ITS Group node. /// Identifier field of the IORT ITS Group node.
UINT8 ItsGroupRefId; UINT8 ItsGroupRefId;
/// Reserved - must be zero. /// Reserved - must be zero.
UINT8 Reserved1[3]; UINT8 Reserved1[3];
} EFI_ACPI_AEST_INTERRUPT_STRUCT; } EFI_ACPI_AEST_INTERRUPT_STRUCT;
// AEST Interrupt node - interrupt type defintions. // AEST Interrupt node - interrupt type defintions.
#define EFI_ACPI_AEST_INTERRUPT_TYPE_FAULT_HANDLING 0x0 #define EFI_ACPI_AEST_INTERRUPT_TYPE_FAULT_HANDLING 0x0
#define EFI_ACPI_AEST_INTERRUPT_TYPE_ERROR_RECOVERY 0x1 #define EFI_ACPI_AEST_INTERRUPT_TYPE_ERROR_RECOVERY 0x1
// AEST Interrupt node - interrupt flag defintions. // AEST Interrupt node - interrupt flag defintions.
#define EFI_ACPI_AEST_INTERRUPT_FLAG_TRIGGER_TYPE_EDGE 0 #define EFI_ACPI_AEST_INTERRUPT_FLAG_TRIGGER_TYPE_EDGE 0
#define EFI_ACPI_AEST_INTERRUPT_FLAG_TRIGGER_TYPE_LEVEL BIT0 #define EFI_ACPI_AEST_INTERRUPT_FLAG_TRIGGER_TYPE_LEVEL BIT0
/// ///
/// Cache Processor Resource structure. /// Cache Processor Resource structure.
/// ///
typedef struct { typedef struct {
/// Reference to the cache structure in the PPTT table. /// Reference to the cache structure in the PPTT table.
UINT32 CacheRefId; UINT32 CacheRefId;
/// Reserved /// Reserved
UINT32 Reserved; UINT32 Reserved;
} EFI_ACPI_AEST_PROCESSOR_CACHE_RESOURCE_STRUCT; } EFI_ACPI_AEST_PROCESSOR_CACHE_RESOURCE_STRUCT;
/// ///
@ -185,10 +185,10 @@ typedef struct {
/// ///
typedef struct { typedef struct {
/// TLB level from perspective of current processor. /// TLB level from perspective of current processor.
UINT32 TlbRefId; UINT32 TlbRefId;
/// Reserved /// Reserved
UINT32 Reserved; UINT32 Reserved;
} EFI_ACPI_AEST_PROCESSOR_TLB_RESOURCE_STRUCT; } EFI_ACPI_AEST_PROCESSOR_TLB_RESOURCE_STRUCT;
/// ///
@ -196,7 +196,7 @@ typedef struct {
/// ///
typedef struct { typedef struct {
/// Vendor-defined supplementary data. /// Vendor-defined supplementary data.
UINT32 Data; UINT32 Data;
} EFI_ACPI_AEST_PROCESSOR_GENERIC_RESOURCE_STRUCT; } EFI_ACPI_AEST_PROCESSOR_GENERIC_RESOURCE_STRUCT;
/// ///
@ -204,13 +204,13 @@ typedef struct {
/// ///
typedef union { typedef union {
/// Processor Cache resource. /// Processor Cache resource.
EFI_ACPI_AEST_PROCESSOR_CACHE_RESOURCE_STRUCT Cache; EFI_ACPI_AEST_PROCESSOR_CACHE_RESOURCE_STRUCT Cache;
/// Processor TLB resource. /// Processor TLB resource.
EFI_ACPI_AEST_PROCESSOR_TLB_RESOURCE_STRUCT Tlb; EFI_ACPI_AEST_PROCESSOR_TLB_RESOURCE_STRUCT Tlb;
/// Processor Generic resource. /// Processor Generic resource.
EFI_ACPI_AEST_PROCESSOR_GENERIC_RESOURCE_STRUCT Generic; EFI_ACPI_AEST_PROCESSOR_GENERIC_RESOURCE_STRUCT Generic;
} EFI_ACPI_AEST_PROCESSOR_RESOURCE; } EFI_ACPI_AEST_PROCESSOR_RESOURCE;
/// ///
@ -218,32 +218,32 @@ typedef union {
/// ///
typedef struct { typedef struct {
/// AEST Node header /// AEST Node header
EFI_ACPI_AEST_NODE_STRUCT NodeHeader; EFI_ACPI_AEST_NODE_STRUCT NodeHeader;
/// Processor ID of node. /// Processor ID of node.
UINT32 AcpiProcessorId; UINT32 AcpiProcessorId;
/// Resource type of the processor node. /// Resource type of the processor node.
/// 0x0 - Cache /// 0x0 - Cache
/// 0x1 - TLB /// 0x1 - TLB
/// 0x2 - Generic /// 0x2 - Generic
UINT8 ResourceType; UINT8 ResourceType;
/// Reserved - must be zero. /// Reserved - must be zero.
UINT8 Reserved; UINT8 Reserved;
/// Processor structure flags. /// Processor structure flags.
UINT8 Flags; UINT8 Flags;
/// Processor structure revision. /// Processor structure revision.
UINT8 Revision; UINT8 Revision;
/// Processor affinity descriptor for the resource that this /// Processor affinity descriptor for the resource that this
/// error node pertains to. /// error node pertains to.
UINT64 ProcessorAffinityLevelIndicator; UINT64 ProcessorAffinityLevelIndicator;
/// Processor resource /// Processor resource
EFI_ACPI_AEST_PROCESSOR_RESOURCE Resource; EFI_ACPI_AEST_PROCESSOR_RESOURCE Resource;
// Node Interface // Node Interface
// EFI_ACPI_AEST_INTERFACE_STRUCT NodeInterface; // EFI_ACPI_AEST_INTERFACE_STRUCT NodeInterface;
@ -253,23 +253,23 @@ typedef struct {
} EFI_ACPI_AEST_PROCESSOR_STRUCT; } EFI_ACPI_AEST_PROCESSOR_STRUCT;
// AEST Processor resource type definitions. // AEST Processor resource type definitions.
#define EFI_ACPI_AEST_PROCESSOR_RESOURCE_TYPE_CACHE 0x0 #define EFI_ACPI_AEST_PROCESSOR_RESOURCE_TYPE_CACHE 0x0
#define EFI_ACPI_AEST_PROCESSOR_RESOURCE_TYPE_TLB 0x1 #define EFI_ACPI_AEST_PROCESSOR_RESOURCE_TYPE_TLB 0x1
#define EFI_ACPI_AEST_PROCESSOR_RESOURCE_TYPE_GENERIC 0x2 #define EFI_ACPI_AEST_PROCESSOR_RESOURCE_TYPE_GENERIC 0x2
// AEST Processor flag definitions. // AEST Processor flag definitions.
#define EFI_ACPI_AEST_PROCESSOR_FLAG_GLOBAL BIT0 #define EFI_ACPI_AEST_PROCESSOR_FLAG_GLOBAL BIT0
#define EFI_ACPI_AEST_PROCESSOR_FLAG_SHARED BIT1 #define EFI_ACPI_AEST_PROCESSOR_FLAG_SHARED BIT1
/// ///
/// Memory Controller structure. /// Memory Controller structure.
/// ///
typedef struct { typedef struct {
/// AEST Node header /// AEST Node header
EFI_ACPI_AEST_NODE_STRUCT NodeHeader; EFI_ACPI_AEST_NODE_STRUCT NodeHeader;
/// SRAT proximity domain. /// SRAT proximity domain.
UINT32 ProximityDomain; UINT32 ProximityDomain;
// Node Interface // Node Interface
// EFI_ACPI_AEST_INTERFACE_STRUCT NodeInterface; // EFI_ACPI_AEST_INTERFACE_STRUCT NodeInterface;
@ -283,14 +283,14 @@ typedef struct {
/// ///
typedef struct { typedef struct {
/// AEST Node header /// AEST Node header
EFI_ACPI_AEST_NODE_STRUCT NodeHeader; EFI_ACPI_AEST_NODE_STRUCT NodeHeader;
/// Reference to the IORT table node that describes this SMMU. /// Reference to the IORT table node that describes this SMMU.
UINT32 SmmuRefId; UINT32 SmmuRefId;
/// Reference to the IORT table node that is associated with the /// Reference to the IORT table node that is associated with the
/// sub-component within this SMMU. /// sub-component within this SMMU.
UINT32 SubComponentRefId; UINT32 SubComponentRefId;
// Node Interface // Node Interface
// EFI_ACPI_AEST_INTERFACE_STRUCT NodeInterface; // EFI_ACPI_AEST_INTERFACE_STRUCT NodeInterface;
@ -304,16 +304,16 @@ typedef struct {
/// ///
typedef struct { typedef struct {
/// AEST Node header /// AEST Node header
EFI_ACPI_AEST_NODE_STRUCT NodeHeader; EFI_ACPI_AEST_NODE_STRUCT NodeHeader;
/// ACPI HID of the component. /// ACPI HID of the component.
UINT32 HardwareId; UINT32 HardwareId;
/// The ACPI Unique identifier of the component. /// The ACPI Unique identifier of the component.
UINT32 UniqueId; UINT32 UniqueId;
/// Vendor-specific data, for example to identify this error source. /// Vendor-specific data, for example to identify this error source.
UINT8 VendorData[16]; UINT8 VendorData[16];
// Node Interface // Node Interface
// EFI_ACPI_AEST_INTERFACE_STRUCT NodeInterface; // EFI_ACPI_AEST_INTERFACE_STRUCT NodeInterface;
@ -327,17 +327,17 @@ typedef struct {
/// ///
typedef struct { typedef struct {
/// AEST Node header /// AEST Node header
EFI_ACPI_AEST_NODE_STRUCT NodeHeader; EFI_ACPI_AEST_NODE_STRUCT NodeHeader;
/// Type of GIC interface that is associated with this error node. /// Type of GIC interface that is associated with this error node.
/// 0x0 - GIC CPU (GICC) /// 0x0 - GIC CPU (GICC)
/// 0x1 - GIC Distributor (GICD) /// 0x1 - GIC Distributor (GICD)
/// 0x2 - GIC Resistributor (GICR) /// 0x2 - GIC Resistributor (GICR)
/// 0x3 - GIC ITS (GITS) /// 0x3 - GIC ITS (GITS)
UINT32 InterfaceType; UINT32 InterfaceType;
/// Identifier for the interface instance. /// Identifier for the interface instance.
UINT32 GicInterfaceRefId; UINT32 GicInterfaceRefId;
// Node Interface // Node Interface
// EFI_ACPI_AEST_INTERFACE_STRUCT NodeInterface; // EFI_ACPI_AEST_INTERFACE_STRUCT NodeInterface;
@ -347,10 +347,10 @@ typedef struct {
} EFI_ACPI_AEST_GIC_STRUCT; } EFI_ACPI_AEST_GIC_STRUCT;
// AEST GIC interface type definitions. // AEST GIC interface type definitions.
#define EFI_ACPI_AEST_GIC_INTERFACE_TYPE_GICC 0x0 #define EFI_ACPI_AEST_GIC_INTERFACE_TYPE_GICC 0x0
#define EFI_ACPI_AEST_GIC_INTERFACE_TYPE_GICD 0x1 #define EFI_ACPI_AEST_GIC_INTERFACE_TYPE_GICD 0x1
#define EFI_ACPI_AEST_GIC_INTERFACE_TYPE_GICR 0x2 #define EFI_ACPI_AEST_GIC_INTERFACE_TYPE_GICR 0x2
#define EFI_ACPI_AEST_GIC_INTERFACE_TYPE_GITS 0x3 #define EFI_ACPI_AEST_GIC_INTERFACE_TYPE_GITS 0x3
#pragma pack() #pragma pack()

File diff suppressed because it is too large Load Diff

View File

@ -19,17 +19,17 @@ typedef struct {
/// ///
/// 48bit Bluetooth device address. /// 48bit Bluetooth device address.
/// ///
UINT8 Address[6]; UINT8 Address[6];
} BLUETOOTH_ADDRESS; } BLUETOOTH_ADDRESS;
/// ///
/// BLUETOOTH_CLASS_OF_DEVICE. See Bluetooth specification for detail. /// BLUETOOTH_CLASS_OF_DEVICE. See Bluetooth specification for detail.
/// ///
typedef struct { typedef struct {
UINT8 FormatType:2; UINT8 FormatType : 2;
UINT8 MinorDeviceClass: 6; UINT8 MinorDeviceClass : 6;
UINT16 MajorDeviceClass: 5; UINT16 MajorDeviceClass : 5;
UINT16 MajorServiceClass:11; UINT16 MajorServiceClass : 11;
} BLUETOOTH_CLASS_OF_DEVICE; } BLUETOOTH_CLASS_OF_DEVICE;
/// ///
@ -39,18 +39,18 @@ typedef struct {
/// ///
/// 48-bit Bluetooth device address /// 48-bit Bluetooth device address
/// ///
UINT8 Address[6]; UINT8 Address[6];
/// ///
/// 0x00 - Public Device Address /// 0x00 - Public Device Address
/// 0x01 - Random Device Address /// 0x01 - Random Device Address
/// ///
UINT8 Type; UINT8 Type;
} BLUETOOTH_LE_ADDRESS; } BLUETOOTH_LE_ADDRESS;
#pragma pack() #pragma pack()
#define BLUETOOTH_HCI_COMMAND_LOCAL_READABLE_NAME_MAX_SIZE 248 #define BLUETOOTH_HCI_COMMAND_LOCAL_READABLE_NAME_MAX_SIZE 248
#define BLUETOOTH_HCI_LINK_KEY_SIZE 16 #define BLUETOOTH_HCI_LINK_KEY_SIZE 16
#endif #endif

View File

@ -12,29 +12,29 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#pragma pack(1) #pragma pack(1)
typedef struct { typedef struct {
UINT8 Blue; UINT8 Blue;
UINT8 Green; UINT8 Green;
UINT8 Red; UINT8 Red;
UINT8 Reserved; UINT8 Reserved;
} BMP_COLOR_MAP; } BMP_COLOR_MAP;
typedef struct { typedef struct {
CHAR8 CharB; CHAR8 CharB;
CHAR8 CharM; CHAR8 CharM;
UINT32 Size; UINT32 Size;
UINT16 Reserved[2]; UINT16 Reserved[2];
UINT32 ImageOffset; UINT32 ImageOffset;
UINT32 HeaderSize; UINT32 HeaderSize;
UINT32 PixelWidth; UINT32 PixelWidth;
UINT32 PixelHeight; UINT32 PixelHeight;
UINT16 Planes; ///< Must be 1 UINT16 Planes; ///< Must be 1
UINT16 BitPerPixel; ///< 1, 4, 8, or 24 UINT16 BitPerPixel; ///< 1, 4, 8, or 24
UINT32 CompressionType; UINT32 CompressionType;
UINT32 ImageSize; ///< Compressed image size in bytes UINT32 ImageSize; ///< Compressed image size in bytes
UINT32 XPixelsPerMeter; UINT32 XPixelsPerMeter;
UINT32 YPixelsPerMeter; UINT32 YPixelsPerMeter;
UINT32 NumberOfColors; UINT32 NumberOfColors;
UINT32 ImportantColors; UINT32 ImportantColors;
} BMP_IMAGE_HEADER; } BMP_IMAGE_HEADER;
#pragma pack() #pragma pack()

View File

@ -16,7 +16,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
// //
// CXL assigned new Vendor ID // CXL assigned new Vendor ID
// //
#define CXL_DVSEC_VENDOR_ID 0x1E98 #define CXL_DVSEC_VENDOR_ID 0x1E98
#endif #endif

View File

@ -18,14 +18,14 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
// Compute Express Link Specification Revision: 1.1 - Chapter 7.1.1 - Table 58 // Compute Express Link Specification Revision: 1.1 - Chapter 7.1.1 - Table 58
// (subject to change as per CXL assigned Vendor ID) // (subject to change as per CXL assigned Vendor ID)
// //
#define INTEL_CXL_DVSEC_VENDOR_ID 0x8086 #define INTEL_CXL_DVSEC_VENDOR_ID 0x8086
// //
// CXL Flex Bus Device default device and function number // CXL Flex Bus Device default device and function number
// Compute Express Link Specification Revision: 1.1 - Chapter 7.1.1 // Compute Express Link Specification Revision: 1.1 - Chapter 7.1.1
// //
#define CXL_DEV_DEV 0 #define CXL_DEV_DEV 0
#define CXL_DEV_FUNC 0 #define CXL_DEV_FUNC 0
// //
// Ensure proper structure formats // Ensure proper structure formats
@ -71,189 +71,188 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
///@{ ///@{
typedef union { typedef union {
struct { struct {
UINT16 CacheCapable : 1; // bit 0 UINT16 CacheCapable : 1; // bit 0
UINT16 IoCapable : 1; // bit 1 UINT16 IoCapable : 1; // bit 1
UINT16 MemCapable : 1; // bit 2 UINT16 MemCapable : 1; // bit 2
UINT16 MemHwInitMode : 1; // bit 3 UINT16 MemHwInitMode : 1; // bit 3
UINT16 HdmCount : 2; // bit 4..5 UINT16 HdmCount : 2; // bit 4..5
UINT16 Reserved1 : 8; // bit 6..13 UINT16 Reserved1 : 8; // bit 6..13
UINT16 ViralCapable : 1; // bit 14 UINT16 ViralCapable : 1; // bit 14
UINT16 Reserved2 : 1; // bit 15 UINT16 Reserved2 : 1; // bit 15
} Bits; } Bits;
UINT16 Uint16; UINT16 Uint16;
} CXL_DVSEC_FLEX_BUS_DEVICE_CAPABILITY; } CXL_DVSEC_FLEX_BUS_DEVICE_CAPABILITY;
typedef union { typedef union {
struct { struct {
UINT16 CacheEnable : 1; // bit 0 UINT16 CacheEnable : 1; // bit 0
UINT16 IoEnable : 1; // bit 1 UINT16 IoEnable : 1; // bit 1
UINT16 MemEnable : 1; // bit 2 UINT16 MemEnable : 1; // bit 2
UINT16 CacheSfCoverage : 5; // bit 3..7 UINT16 CacheSfCoverage : 5; // bit 3..7
UINT16 CacheSfGranularity : 3; // bit 8..10 UINT16 CacheSfGranularity : 3; // bit 8..10
UINT16 CacheCleanEviction : 1; // bit 11 UINT16 CacheCleanEviction : 1; // bit 11
UINT16 Reserved1 : 2; // bit 12..13 UINT16 Reserved1 : 2; // bit 12..13
UINT16 ViralEnable : 1; // bit 14 UINT16 ViralEnable : 1; // bit 14
UINT16 Reserved2 : 1; // bit 15 UINT16 Reserved2 : 1; // bit 15
} Bits; } Bits;
UINT16 Uint16; UINT16 Uint16;
} CXL_DVSEC_FLEX_BUS_DEVICE_CONTROL; } CXL_DVSEC_FLEX_BUS_DEVICE_CONTROL;
typedef union { typedef union {
struct { struct {
UINT16 Reserved1 : 14; // bit 0..13 UINT16 Reserved1 : 14; // bit 0..13
UINT16 ViralStatus : 1; // bit 14 UINT16 ViralStatus : 1; // bit 14
UINT16 Reserved2 : 1; // bit 15 UINT16 Reserved2 : 1; // bit 15
} Bits; } Bits;
UINT16 Uint16; UINT16 Uint16;
} CXL_DVSEC_FLEX_BUS_DEVICE_STATUS; } CXL_DVSEC_FLEX_BUS_DEVICE_STATUS;
typedef union { typedef union {
struct { struct {
UINT16 Reserved1 : 1; // bit 0 UINT16 Reserved1 : 1; // bit 0
UINT16 Reserved2 : 1; // bit 1 UINT16 Reserved2 : 1; // bit 1
UINT16 Reserved3 : 1; // bit 2 UINT16 Reserved3 : 1; // bit 2
UINT16 Reserved4 : 13; // bit 3..15 UINT16 Reserved4 : 13; // bit 3..15
} Bits; } Bits;
UINT16 Uint16; UINT16 Uint16;
} CXL_1_1_DVSEC_FLEX_BUS_DEVICE_CONTROL2; } CXL_1_1_DVSEC_FLEX_BUS_DEVICE_CONTROL2;
typedef union { typedef union {
struct { struct {
UINT16 Reserved1 : 1; // bit 0 UINT16 Reserved1 : 1; // bit 0
UINT16 Reserved2 : 1; // bit 1 UINT16 Reserved2 : 1; // bit 1
UINT16 Reserved3 : 14; // bit 2..15 UINT16 Reserved3 : 14; // bit 2..15
} Bits; } Bits;
UINT16 Uint16; UINT16 Uint16;
} CXL_1_1_DVSEC_FLEX_BUS_DEVICE_STATUS2; } CXL_1_1_DVSEC_FLEX_BUS_DEVICE_STATUS2;
typedef union { typedef union {
struct { struct {
UINT16 ConfigLock : 1; // bit 0 UINT16 ConfigLock : 1; // bit 0
UINT16 Reserved1 : 15; // bit 1..15 UINT16 Reserved1 : 15; // bit 1..15
} Bits; } Bits;
UINT16 Uint16; UINT16 Uint16;
} CXL_DVSEC_FLEX_BUS_DEVICE_LOCK; } CXL_DVSEC_FLEX_BUS_DEVICE_LOCK;
typedef union { typedef union {
struct { struct {
UINT32 MemorySizeHigh : 32; // bit 0..31 UINT32 MemorySizeHigh : 32; // bit 0..31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} CXL_DVSEC_FLEX_BUS_DEVICE_RANGE1_SIZE_HIGH; } CXL_DVSEC_FLEX_BUS_DEVICE_RANGE1_SIZE_HIGH;
typedef union { typedef union {
struct { struct {
UINT32 MemoryInfoValid : 1; // bit 0 UINT32 MemoryInfoValid : 1; // bit 0
UINT32 MemoryActive : 1; // bit 1 UINT32 MemoryActive : 1; // bit 1
UINT32 MediaType : 3; // bit 2..4 UINT32 MediaType : 3; // bit 2..4
UINT32 MemoryClass : 3; // bit 5..7 UINT32 MemoryClass : 3; // bit 5..7
UINT32 DesiredInterleave : 3; // bit 8..10 UINT32 DesiredInterleave : 3; // bit 8..10
UINT32 Reserved : 17; // bit 11..27 UINT32 Reserved : 17; // bit 11..27
UINT32 MemorySizeLow : 4; // bit 28..31 UINT32 MemorySizeLow : 4; // bit 28..31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} CXL_DVSEC_FLEX_BUS_DEVICE_RANGE1_SIZE_LOW; } CXL_DVSEC_FLEX_BUS_DEVICE_RANGE1_SIZE_LOW;
typedef union { typedef union {
struct { struct {
UINT32 MemoryBaseHigh : 32; // bit 0..31 UINT32 MemoryBaseHigh : 32; // bit 0..31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} CXL_DVSEC_FLEX_BUS_DEVICE_RANGE1_BASE_HIGH; } CXL_DVSEC_FLEX_BUS_DEVICE_RANGE1_BASE_HIGH;
typedef union { typedef union {
struct { struct {
UINT32 Reserved : 28; // bit 0..27 UINT32 Reserved : 28; // bit 0..27
UINT32 MemoryBaseLow : 4; // bit 28..31 UINT32 MemoryBaseLow : 4; // bit 28..31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} CXL_DVSEC_FLEX_BUS_DEVICE_RANGE1_BASE_LOW; } CXL_DVSEC_FLEX_BUS_DEVICE_RANGE1_BASE_LOW;
typedef union { typedef union {
struct { struct {
UINT32 MemorySizeHigh : 32; // bit 0..31 UINT32 MemorySizeHigh : 32; // bit 0..31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} CXL_DVSEC_FLEX_BUS_DEVICE_RANGE2_SIZE_HIGH; } CXL_DVSEC_FLEX_BUS_DEVICE_RANGE2_SIZE_HIGH;
typedef union { typedef union {
struct { struct {
UINT32 MemoryInfoValid : 1; // bit 0 UINT32 MemoryInfoValid : 1; // bit 0
UINT32 MemoryActive : 1; // bit 1 UINT32 MemoryActive : 1; // bit 1
UINT32 MediaType : 3; // bit 2..4 UINT32 MediaType : 3; // bit 2..4
UINT32 MemoryClass : 3; // bit 5..7 UINT32 MemoryClass : 3; // bit 5..7
UINT32 DesiredInterleave : 3; // bit 8..10 UINT32 DesiredInterleave : 3; // bit 8..10
UINT32 Reserved : 17; // bit 11..27 UINT32 Reserved : 17; // bit 11..27
UINT32 MemorySizeLow : 4; // bit 28..31 UINT32 MemorySizeLow : 4; // bit 28..31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} CXL_DVSEC_FLEX_BUS_DEVICE_RANGE2_SIZE_LOW; } CXL_DVSEC_FLEX_BUS_DEVICE_RANGE2_SIZE_LOW;
typedef union { typedef union {
struct { struct {
UINT32 MemoryBaseHigh : 32; // bit 0..31 UINT32 MemoryBaseHigh : 32; // bit 0..31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} CXL_DVSEC_FLEX_BUS_DEVICE_RANGE2_BASE_HIGH; } CXL_DVSEC_FLEX_BUS_DEVICE_RANGE2_BASE_HIGH;
typedef union { typedef union {
struct { struct {
UINT32 Reserved : 28; // bit 0..27 UINT32 Reserved : 28; // bit 0..27
UINT32 MemoryBaseLow : 4; // bit 28..31 UINT32 MemoryBaseLow : 4; // bit 28..31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} CXL_DVSEC_FLEX_BUS_DEVICE_RANGE2_BASE_LOW; } CXL_DVSEC_FLEX_BUS_DEVICE_RANGE2_BASE_LOW;
// //
// Flex Bus Device DVSEC ID // Flex Bus Device DVSEC ID
// Compute Express Link Specification Revision: 1.1 - Chapter 7.1.1, Table 58 // Compute Express Link Specification Revision: 1.1 - Chapter 7.1.1, Table 58
// //
#define FLEX_BUS_DEVICE_DVSEC_ID 0 #define FLEX_BUS_DEVICE_DVSEC_ID 0
// //
// PCIe DVSEC for Flex Bus Device // PCIe DVSEC for Flex Bus Device
// Compute Express Link Specification Revision: 1.1 - Chapter 7.1.1, Figure 95 // Compute Express Link Specification Revision: 1.1 - Chapter 7.1.1, Figure 95
// //
typedef struct { typedef struct {
PCI_EXPRESS_EXTENDED_CAPABILITIES_HEADER Header; // offset 0 PCI_EXPRESS_EXTENDED_CAPABILITIES_HEADER Header; // offset 0
PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_1 DesignatedVendorSpecificHeader1; // offset 4 PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_1 DesignatedVendorSpecificHeader1; // offset 4
PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_2 DesignatedVendorSpecificHeader2; // offset 8 PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_2 DesignatedVendorSpecificHeader2; // offset 8
CXL_DVSEC_FLEX_BUS_DEVICE_CAPABILITY DeviceCapability; // offset 10 CXL_DVSEC_FLEX_BUS_DEVICE_CAPABILITY DeviceCapability; // offset 10
CXL_DVSEC_FLEX_BUS_DEVICE_CONTROL DeviceControl; // offset 12 CXL_DVSEC_FLEX_BUS_DEVICE_CONTROL DeviceControl; // offset 12
CXL_DVSEC_FLEX_BUS_DEVICE_STATUS DeviceStatus; // offset 14 CXL_DVSEC_FLEX_BUS_DEVICE_STATUS DeviceStatus; // offset 14
CXL_1_1_DVSEC_FLEX_BUS_DEVICE_CONTROL2 DeviceControl2; // offset 16 CXL_1_1_DVSEC_FLEX_BUS_DEVICE_CONTROL2 DeviceControl2; // offset 16
CXL_1_1_DVSEC_FLEX_BUS_DEVICE_STATUS2 DeviceStatus2; // offset 18 CXL_1_1_DVSEC_FLEX_BUS_DEVICE_STATUS2 DeviceStatus2; // offset 18
CXL_DVSEC_FLEX_BUS_DEVICE_LOCK DeviceLock; // offset 20 CXL_DVSEC_FLEX_BUS_DEVICE_LOCK DeviceLock; // offset 20
UINT16 Reserved; // offset 22 UINT16 Reserved; // offset 22
CXL_DVSEC_FLEX_BUS_DEVICE_RANGE1_SIZE_HIGH DeviceRange1SizeHigh; // offset 24 CXL_DVSEC_FLEX_BUS_DEVICE_RANGE1_SIZE_HIGH DeviceRange1SizeHigh; // offset 24
CXL_DVSEC_FLEX_BUS_DEVICE_RANGE1_SIZE_LOW DeviceRange1SizeLow; // offset 28 CXL_DVSEC_FLEX_BUS_DEVICE_RANGE1_SIZE_LOW DeviceRange1SizeLow; // offset 28
CXL_DVSEC_FLEX_BUS_DEVICE_RANGE1_BASE_HIGH DeviceRange1BaseHigh; // offset 32 CXL_DVSEC_FLEX_BUS_DEVICE_RANGE1_BASE_HIGH DeviceRange1BaseHigh; // offset 32
CXL_DVSEC_FLEX_BUS_DEVICE_RANGE1_BASE_LOW DeviceRange1BaseLow; // offset 36 CXL_DVSEC_FLEX_BUS_DEVICE_RANGE1_BASE_LOW DeviceRange1BaseLow; // offset 36
CXL_DVSEC_FLEX_BUS_DEVICE_RANGE2_SIZE_HIGH DeviceRange2SizeHigh; // offset 40 CXL_DVSEC_FLEX_BUS_DEVICE_RANGE2_SIZE_HIGH DeviceRange2SizeHigh; // offset 40
CXL_DVSEC_FLEX_BUS_DEVICE_RANGE2_SIZE_LOW DeviceRange2SizeLow; // offset 44 CXL_DVSEC_FLEX_BUS_DEVICE_RANGE2_SIZE_LOW DeviceRange2SizeLow; // offset 44
CXL_DVSEC_FLEX_BUS_DEVICE_RANGE2_BASE_HIGH DeviceRange2BaseHigh; // offset 48 CXL_DVSEC_FLEX_BUS_DEVICE_RANGE2_BASE_HIGH DeviceRange2BaseHigh; // offset 48
CXL_DVSEC_FLEX_BUS_DEVICE_RANGE2_BASE_LOW DeviceRange2BaseLow; // offset 52 CXL_DVSEC_FLEX_BUS_DEVICE_RANGE2_BASE_LOW DeviceRange2BaseLow; // offset 52
} CXL_1_1_DVSEC_FLEX_BUS_DEVICE; } CXL_1_1_DVSEC_FLEX_BUS_DEVICE;
CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, Header , 0x00); CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, Header, 0x00);
CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DesignatedVendorSpecificHeader1, 0x04); CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DesignatedVendorSpecificHeader1, 0x04);
CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DesignatedVendorSpecificHeader2, 0x08); CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DesignatedVendorSpecificHeader2, 0x08);
CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceCapability , 0x0A); CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceCapability, 0x0A);
CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceControl , 0x0C); CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceControl, 0x0C);
CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceStatus , 0x0E); CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceStatus, 0x0E);
CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceControl2 , 0x10); CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceControl2, 0x10);
CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceStatus2 , 0x12); CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceStatus2, 0x12);
CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceLock , 0x14); CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceLock, 0x14);
CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceRange1SizeHigh , 0x18); CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceRange1SizeHigh, 0x18);
CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceRange1SizeLow , 0x1C); CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceRange1SizeLow, 0x1C);
CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceRange1BaseHigh , 0x20); CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceRange1BaseHigh, 0x20);
CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceRange1BaseLow , 0x24); CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceRange1BaseLow, 0x24);
CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceRange2SizeHigh , 0x28); CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceRange2SizeHigh, 0x28);
CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceRange2SizeLow , 0x2C); CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceRange2SizeLow, 0x2C);
CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceRange2BaseHigh , 0x30); CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceRange2BaseHigh, 0x30);
CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceRange2BaseLow , 0x34); CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, DeviceRange2BaseLow, 0x34);
CXL_11_SIZE_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE , 0x38); CXL_11_SIZE_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE, 0x38);
///@} ///@}
/// ///
@ -261,71 +260,71 @@ CXL_11_SIZE_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_DEVICE
///@{ ///@{
typedef union { typedef union {
struct { struct {
UINT16 CacheCapable : 1; // bit 0 UINT16 CacheCapable : 1; // bit 0
UINT16 IoCapable : 1; // bit 1 UINT16 IoCapable : 1; // bit 1
UINT16 MemCapable : 1; // bit 2 UINT16 MemCapable : 1; // bit 2
UINT16 Reserved : 13; // bit 3..15 UINT16 Reserved : 13; // bit 3..15
} Bits; } Bits;
UINT16 Uint16; UINT16 Uint16;
} CXL_1_1_DVSEC_FLEX_BUS_PORT_CAPABILITY; } CXL_1_1_DVSEC_FLEX_BUS_PORT_CAPABILITY;
typedef union { typedef union {
struct { struct {
UINT16 CacheEnable : 1; // bit 0 UINT16 CacheEnable : 1; // bit 0
UINT16 IoEnable : 1; // bit 1 UINT16 IoEnable : 1; // bit 1
UINT16 MemEnable : 1; // bit 2 UINT16 MemEnable : 1; // bit 2
UINT16 CxlSyncBypassEnable : 1; // bit 3 UINT16 CxlSyncBypassEnable : 1; // bit 3
UINT16 DriftBufferEnable : 1; // bit 4 UINT16 DriftBufferEnable : 1; // bit 4
UINT16 Reserved : 3; // bit 5..7 UINT16 Reserved : 3; // bit 5..7
UINT16 Retimer1Present : 1; // bit 8 UINT16 Retimer1Present : 1; // bit 8
UINT16 Retimer2Present : 1; // bit 9 UINT16 Retimer2Present : 1; // bit 9
UINT16 Reserved2 : 6; // bit 10..15 UINT16 Reserved2 : 6; // bit 10..15
} Bits; } Bits;
UINT16 Uint16; UINT16 Uint16;
} CXL_1_1_DVSEC_FLEX_BUS_PORT_CONTROL; } CXL_1_1_DVSEC_FLEX_BUS_PORT_CONTROL;
typedef union { typedef union {
struct { struct {
UINT16 CacheEnable : 1; // bit 0 UINT16 CacheEnable : 1; // bit 0
UINT16 IoEnable : 1; // bit 1 UINT16 IoEnable : 1; // bit 1
UINT16 MemEnable : 1; // bit 2 UINT16 MemEnable : 1; // bit 2
UINT16 CxlSyncBypassEnable : 1; // bit 3 UINT16 CxlSyncBypassEnable : 1; // bit 3
UINT16 DriftBufferEnable : 1; // bit 4 UINT16 DriftBufferEnable : 1; // bit 4
UINT16 Reserved : 3; // bit 5..7 UINT16 Reserved : 3; // bit 5..7
UINT16 CxlCorrectableProtocolIdFramingError : 1; // bit 8 UINT16 CxlCorrectableProtocolIdFramingError : 1; // bit 8
UINT16 CxlUncorrectableProtocolIdFramingError : 1; // bit 9 UINT16 CxlUncorrectableProtocolIdFramingError : 1; // bit 9
UINT16 CxlUnexpectedProtocolIdDropped : 1; // bit 10 UINT16 CxlUnexpectedProtocolIdDropped : 1; // bit 10
UINT16 Reserved2 : 5; // bit 11..15 UINT16 Reserved2 : 5; // bit 11..15
} Bits; } Bits;
UINT16 Uint16; UINT16 Uint16;
} CXL_1_1_DVSEC_FLEX_BUS_PORT_STATUS; } CXL_1_1_DVSEC_FLEX_BUS_PORT_STATUS;
// //
// Flex Bus Port DVSEC ID // Flex Bus Port DVSEC ID
// Compute Express Link Specification Revision: 1.1 - Chapter 7.2.1.3, Table 62 // Compute Express Link Specification Revision: 1.1 - Chapter 7.2.1.3, Table 62
// //
#define FLEX_BUS_PORT_DVSEC_ID 7 #define FLEX_BUS_PORT_DVSEC_ID 7
// //
// PCIe DVSEC for Flex Bus Port // PCIe DVSEC for Flex Bus Port
// Compute Express Link Specification Revision: 1.1 - Chapter 7.2.1.3, Figure 99 // Compute Express Link Specification Revision: 1.1 - Chapter 7.2.1.3, Figure 99
// //
typedef struct { typedef struct {
PCI_EXPRESS_EXTENDED_CAPABILITIES_HEADER Header; // offset 0 PCI_EXPRESS_EXTENDED_CAPABILITIES_HEADER Header; // offset 0
PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_1 DesignatedVendorSpecificHeader1; // offset 4 PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_1 DesignatedVendorSpecificHeader1; // offset 4
PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_2 DesignatedVendorSpecificHeader2; // offset 8 PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_2 DesignatedVendorSpecificHeader2; // offset 8
CXL_1_1_DVSEC_FLEX_BUS_PORT_CAPABILITY PortCapability; // offset 10 CXL_1_1_DVSEC_FLEX_BUS_PORT_CAPABILITY PortCapability; // offset 10
CXL_1_1_DVSEC_FLEX_BUS_PORT_CONTROL PortControl; // offset 12 CXL_1_1_DVSEC_FLEX_BUS_PORT_CONTROL PortControl; // offset 12
CXL_1_1_DVSEC_FLEX_BUS_PORT_STATUS PortStatus; // offset 14 CXL_1_1_DVSEC_FLEX_BUS_PORT_STATUS PortStatus; // offset 14
} CXL_1_1_DVSEC_FLEX_BUS_PORT; } CXL_1_1_DVSEC_FLEX_BUS_PORT;
CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_PORT, Header , 0x00); CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_PORT, Header, 0x00);
CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_PORT, DesignatedVendorSpecificHeader1, 0x04); CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_PORT, DesignatedVendorSpecificHeader1, 0x04);
CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_PORT, DesignatedVendorSpecificHeader2, 0x08); CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_PORT, DesignatedVendorSpecificHeader2, 0x08);
CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_PORT, PortCapability , 0x0A); CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_PORT, PortCapability, 0x0A);
CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_PORT, PortControl , 0x0C); CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_PORT, PortControl, 0x0C);
CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_PORT, PortStatus , 0x0E); CXL_11_OFFSET_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_PORT, PortStatus, 0x0E);
CXL_11_SIZE_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_PORT , 0x10); CXL_11_SIZE_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_PORT, 0x10);
///@} ///@}
/// ///
@ -336,294 +335,294 @@ CXL_11_SIZE_ASSERT (CXL_1_1_DVSEC_FLEX_BUS_PORT
/// Based on chapter 7.2.2 of Compute Express Link Specification Revision: 1.1 /// Based on chapter 7.2.2 of Compute Express Link Specification Revision: 1.1
///@{ ///@{
#define CXL_CAPABILITY_HEADER_OFFSET 0 #define CXL_CAPABILITY_HEADER_OFFSET 0
typedef union { typedef union {
struct { struct {
UINT32 CxlCapabilityId : 16; // bit 0..15 UINT32 CxlCapabilityId : 16; // bit 0..15
UINT32 CxlCapabilityVersion : 4; // bit 16..19 UINT32 CxlCapabilityVersion : 4; // bit 16..19
UINT32 CxlCacheMemVersion : 4; // bit 20..23 UINT32 CxlCacheMemVersion : 4; // bit 20..23
UINT32 ArraySize : 8; // bit 24..31 UINT32 ArraySize : 8; // bit 24..31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} CXL_CAPABILITY_HEADER; } CXL_CAPABILITY_HEADER;
#define CXL_RAS_CAPABILITY_HEADER_OFFSET 4 #define CXL_RAS_CAPABILITY_HEADER_OFFSET 4
typedef union { typedef union {
struct { struct {
UINT32 CxlCapabilityId : 16; // bit 0..15 UINT32 CxlCapabilityId : 16; // bit 0..15
UINT32 CxlCapabilityVersion : 4; // bit 16..19 UINT32 CxlCapabilityVersion : 4; // bit 16..19
UINT32 CxlRasCapabilityPointer : 12; // bit 20..31 UINT32 CxlRasCapabilityPointer : 12; // bit 20..31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} CXL_RAS_CAPABILITY_HEADER; } CXL_RAS_CAPABILITY_HEADER;
#define CXL_SECURITY_CAPABILITY_HEADER_OFFSET 8 #define CXL_SECURITY_CAPABILITY_HEADER_OFFSET 8
typedef union { typedef union {
struct { struct {
UINT32 CxlCapabilityId : 16; // bit 0..15 UINT32 CxlCapabilityId : 16; // bit 0..15
UINT32 CxlCapabilityVersion : 4; // bit 16..19 UINT32 CxlCapabilityVersion : 4; // bit 16..19
UINT32 CxlSecurityCapabilityPointer : 12; // bit 20..31 UINT32 CxlSecurityCapabilityPointer : 12; // bit 20..31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} CXL_SECURITY_CAPABILITY_HEADER; } CXL_SECURITY_CAPABILITY_HEADER;
#define CXL_LINK_CAPABILITY_HEADER_OFFSET 0xC #define CXL_LINK_CAPABILITY_HEADER_OFFSET 0xC
typedef union { typedef union {
struct { struct {
UINT32 CxlCapabilityId : 16; // bit 0..15 UINT32 CxlCapabilityId : 16; // bit 0..15
UINT32 CxlCapabilityVersion : 4; // bit 16..19 UINT32 CxlCapabilityVersion : 4; // bit 16..19
UINT32 CxlLinkCapabilityPointer : 12; // bit 20..31 UINT32 CxlLinkCapabilityPointer : 12; // bit 20..31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} CXL_LINK_CAPABILITY_HEADER; } CXL_LINK_CAPABILITY_HEADER;
typedef union { typedef union {
struct { struct {
UINT32 CacheDataParity : 1; // bit 0..0 UINT32 CacheDataParity : 1; // bit 0..0
UINT32 CacheAddressParity : 1; // bit 1..1 UINT32 CacheAddressParity : 1; // bit 1..1
UINT32 CacheByteEnableParity : 1; // bit 2..2 UINT32 CacheByteEnableParity : 1; // bit 2..2
UINT32 CacheDataEcc : 1; // bit 3..3 UINT32 CacheDataEcc : 1; // bit 3..3
UINT32 MemDataParity : 1; // bit 4..4 UINT32 MemDataParity : 1; // bit 4..4
UINT32 MemAddressParity : 1; // bit 5..5 UINT32 MemAddressParity : 1; // bit 5..5
UINT32 MemByteEnableParity : 1; // bit 6..6 UINT32 MemByteEnableParity : 1; // bit 6..6
UINT32 MemDataEcc : 1; // bit 7..7 UINT32 MemDataEcc : 1; // bit 7..7
UINT32 ReInitThreshold : 1; // bit 8..8 UINT32 ReInitThreshold : 1; // bit 8..8
UINT32 RsvdEncodingViolation : 1; // bit 9..9 UINT32 RsvdEncodingViolation : 1; // bit 9..9
UINT32 PoisonReceived : 1; // bit 10..10 UINT32 PoisonReceived : 1; // bit 10..10
UINT32 ReceiverOverflow : 1; // bit 11..11 UINT32 ReceiverOverflow : 1; // bit 11..11
UINT32 Reserved : 20; // bit 12..31 UINT32 Reserved : 20; // bit 12..31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} CXL_1_1_UNCORRECTABLE_ERROR_STATUS; } CXL_1_1_UNCORRECTABLE_ERROR_STATUS;
typedef union { typedef union {
struct { struct {
UINT32 CacheDataParityMask : 1; // bit 0..0 UINT32 CacheDataParityMask : 1; // bit 0..0
UINT32 CacheAddressParityMask : 1; // bit 1..1 UINT32 CacheAddressParityMask : 1; // bit 1..1
UINT32 CacheByteEnableParityMask : 1; // bit 2..2 UINT32 CacheByteEnableParityMask : 1; // bit 2..2
UINT32 CacheDataEccMask : 1; // bit 3..3 UINT32 CacheDataEccMask : 1; // bit 3..3
UINT32 MemDataParityMask : 1; // bit 4..4 UINT32 MemDataParityMask : 1; // bit 4..4
UINT32 MemAddressParityMask : 1; // bit 5..5 UINT32 MemAddressParityMask : 1; // bit 5..5
UINT32 MemByteEnableParityMask : 1; // bit 6..6 UINT32 MemByteEnableParityMask : 1; // bit 6..6
UINT32 MemDataEccMask : 1; // bit 7..7 UINT32 MemDataEccMask : 1; // bit 7..7
UINT32 ReInitThresholdMask : 1; // bit 8..8 UINT32 ReInitThresholdMask : 1; // bit 8..8
UINT32 RsvdEncodingViolationMask : 1; // bit 9..9 UINT32 RsvdEncodingViolationMask : 1; // bit 9..9
UINT32 PoisonReceivedMask : 1; // bit 10..10 UINT32 PoisonReceivedMask : 1; // bit 10..10
UINT32 ReceiverOverflowMask : 1; // bit 11..11 UINT32 ReceiverOverflowMask : 1; // bit 11..11
UINT32 Reserved : 20; // bit 12..31 UINT32 Reserved : 20; // bit 12..31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} CXL_1_1_UNCORRECTABLE_ERROR_MASK; } CXL_1_1_UNCORRECTABLE_ERROR_MASK;
typedef union { typedef union {
struct { struct {
UINT32 CacheDataParitySeverity : 1; // bit 0..0 UINT32 CacheDataParitySeverity : 1; // bit 0..0
UINT32 CacheAddressParitySeverity : 1; // bit 1..1 UINT32 CacheAddressParitySeverity : 1; // bit 1..1
UINT32 CacheByteEnableParitySeverity : 1; // bit 2..2 UINT32 CacheByteEnableParitySeverity : 1; // bit 2..2
UINT32 CacheDataEccSeverity : 1; // bit 3..3 UINT32 CacheDataEccSeverity : 1; // bit 3..3
UINT32 MemDataParitySeverity : 1; // bit 4..4 UINT32 MemDataParitySeverity : 1; // bit 4..4
UINT32 MemAddressParitySeverity : 1; // bit 5..5 UINT32 MemAddressParitySeverity : 1; // bit 5..5
UINT32 MemByteEnableParitySeverity : 1; // bit 6..6 UINT32 MemByteEnableParitySeverity : 1; // bit 6..6
UINT32 MemDataEccSeverity : 1; // bit 7..7 UINT32 MemDataEccSeverity : 1; // bit 7..7
UINT32 ReInitThresholdSeverity : 1; // bit 8..8 UINT32 ReInitThresholdSeverity : 1; // bit 8..8
UINT32 RsvdEncodingViolationSeverity : 1; // bit 9..9 UINT32 RsvdEncodingViolationSeverity : 1; // bit 9..9
UINT32 PoisonReceivedSeverity : 1; // bit 10..10 UINT32 PoisonReceivedSeverity : 1; // bit 10..10
UINT32 ReceiverOverflowSeverity : 1; // bit 11..11 UINT32 ReceiverOverflowSeverity : 1; // bit 11..11
UINT32 Reserved : 20; // bit 12..31 UINT32 Reserved : 20; // bit 12..31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} CXL_1_1_UNCORRECTABLE_ERROR_SEVERITY; } CXL_1_1_UNCORRECTABLE_ERROR_SEVERITY;
typedef union { typedef union {
struct { struct {
UINT32 CacheDataEcc : 1; // bit 0..0 UINT32 CacheDataEcc : 1; // bit 0..0
UINT32 MemoryDataEcc : 1; // bit 1..1 UINT32 MemoryDataEcc : 1; // bit 1..1
UINT32 CrcThreshold : 1; // bit 2..2 UINT32 CrcThreshold : 1; // bit 2..2
UINT32 RetryThreshold : 1; // bit 3..3 UINT32 RetryThreshold : 1; // bit 3..3
UINT32 CachePoisonReceived : 1; // bit 4..4 UINT32 CachePoisonReceived : 1; // bit 4..4
UINT32 MemoryPoisonReceived : 1; // bit 5..5 UINT32 MemoryPoisonReceived : 1; // bit 5..5
UINT32 PhysicalLayerError : 1; // bit 6..6 UINT32 PhysicalLayerError : 1; // bit 6..6
UINT32 Reserved : 25; // bit 7..31 UINT32 Reserved : 25; // bit 7..31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} CXL_CORRECTABLE_ERROR_STATUS; } CXL_CORRECTABLE_ERROR_STATUS;
typedef union { typedef union {
struct { struct {
UINT32 CacheDataEccMask : 1; // bit 0..0 UINT32 CacheDataEccMask : 1; // bit 0..0
UINT32 MemoryDataEccMask : 1; // bit 1..1 UINT32 MemoryDataEccMask : 1; // bit 1..1
UINT32 CrcThresholdMask : 1; // bit 2..2 UINT32 CrcThresholdMask : 1; // bit 2..2
UINT32 RetryThresholdMask : 1; // bit 3..3 UINT32 RetryThresholdMask : 1; // bit 3..3
UINT32 CachePoisonReceivedMask : 1; // bit 4..4 UINT32 CachePoisonReceivedMask : 1; // bit 4..4
UINT32 MemoryPoisonReceivedMask : 1; // bit 5..5 UINT32 MemoryPoisonReceivedMask : 1; // bit 5..5
UINT32 PhysicalLayerErrorMask : 1; // bit 6..6 UINT32 PhysicalLayerErrorMask : 1; // bit 6..6
UINT32 Reserved : 25; // bit 7..31 UINT32 Reserved : 25; // bit 7..31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} CXL_CORRECTABLE_ERROR_MASK; } CXL_CORRECTABLE_ERROR_MASK;
typedef union { typedef union {
struct { struct {
UINT32 FirstErrorPointer : 4; // bit 0..3 UINT32 FirstErrorPointer : 4; // bit 0..3
UINT32 Reserved1 : 5; // bit 4..8 UINT32 Reserved1 : 5; // bit 4..8
UINT32 MultipleHeaderRecordingCapability : 1; // bit 9..9 UINT32 MultipleHeaderRecordingCapability : 1; // bit 9..9
UINT32 Reserved2 : 3; // bit 10..12 UINT32 Reserved2 : 3; // bit 10..12
UINT32 PoisonEnabled : 1; // bit 13..13 UINT32 PoisonEnabled : 1; // bit 13..13
UINT32 Reserved3 : 18; // bit 14..31 UINT32 Reserved3 : 18; // bit 14..31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} CXL_ERROR_CAPABILITIES_AND_CONTROL; } CXL_ERROR_CAPABILITIES_AND_CONTROL;
typedef struct { typedef struct {
CXL_1_1_UNCORRECTABLE_ERROR_STATUS UncorrectableErrorStatus; CXL_1_1_UNCORRECTABLE_ERROR_STATUS UncorrectableErrorStatus;
CXL_1_1_UNCORRECTABLE_ERROR_MASK UncorrectableErrorMask; CXL_1_1_UNCORRECTABLE_ERROR_MASK UncorrectableErrorMask;
CXL_1_1_UNCORRECTABLE_ERROR_SEVERITY UncorrectableErrorSeverity; CXL_1_1_UNCORRECTABLE_ERROR_SEVERITY UncorrectableErrorSeverity;
CXL_CORRECTABLE_ERROR_STATUS CorrectableErrorStatus; CXL_CORRECTABLE_ERROR_STATUS CorrectableErrorStatus;
CXL_CORRECTABLE_ERROR_MASK CorrectableErrorMask; CXL_CORRECTABLE_ERROR_MASK CorrectableErrorMask;
CXL_ERROR_CAPABILITIES_AND_CONTROL ErrorCapabilitiesAndControl; CXL_ERROR_CAPABILITIES_AND_CONTROL ErrorCapabilitiesAndControl;
UINT32 HeaderLog[16]; UINT32 HeaderLog[16];
} CXL_1_1_RAS_CAPABILITY_STRUCTURE; } CXL_1_1_RAS_CAPABILITY_STRUCTURE;
CXL_11_OFFSET_ASSERT (CXL_1_1_RAS_CAPABILITY_STRUCTURE, UncorrectableErrorStatus , 0x00); CXL_11_OFFSET_ASSERT (CXL_1_1_RAS_CAPABILITY_STRUCTURE, UncorrectableErrorStatus, 0x00);
CXL_11_OFFSET_ASSERT (CXL_1_1_RAS_CAPABILITY_STRUCTURE, UncorrectableErrorMask , 0x04); CXL_11_OFFSET_ASSERT (CXL_1_1_RAS_CAPABILITY_STRUCTURE, UncorrectableErrorMask, 0x04);
CXL_11_OFFSET_ASSERT (CXL_1_1_RAS_CAPABILITY_STRUCTURE, UncorrectableErrorSeverity , 0x08); CXL_11_OFFSET_ASSERT (CXL_1_1_RAS_CAPABILITY_STRUCTURE, UncorrectableErrorSeverity, 0x08);
CXL_11_OFFSET_ASSERT (CXL_1_1_RAS_CAPABILITY_STRUCTURE, CorrectableErrorStatus , 0x0C); CXL_11_OFFSET_ASSERT (CXL_1_1_RAS_CAPABILITY_STRUCTURE, CorrectableErrorStatus, 0x0C);
CXL_11_OFFSET_ASSERT (CXL_1_1_RAS_CAPABILITY_STRUCTURE, CorrectableErrorMask , 0x10); CXL_11_OFFSET_ASSERT (CXL_1_1_RAS_CAPABILITY_STRUCTURE, CorrectableErrorMask, 0x10);
CXL_11_OFFSET_ASSERT (CXL_1_1_RAS_CAPABILITY_STRUCTURE, ErrorCapabilitiesAndControl, 0x14); CXL_11_OFFSET_ASSERT (CXL_1_1_RAS_CAPABILITY_STRUCTURE, ErrorCapabilitiesAndControl, 0x14);
CXL_11_OFFSET_ASSERT (CXL_1_1_RAS_CAPABILITY_STRUCTURE, HeaderLog , 0x18); CXL_11_OFFSET_ASSERT (CXL_1_1_RAS_CAPABILITY_STRUCTURE, HeaderLog, 0x18);
CXL_11_SIZE_ASSERT (CXL_1_1_RAS_CAPABILITY_STRUCTURE , 0x58); CXL_11_SIZE_ASSERT (CXL_1_1_RAS_CAPABILITY_STRUCTURE, 0x58);
typedef union { typedef union {
struct { struct {
UINT32 DeviceTrustLevel : 2; // bit 0..1 UINT32 DeviceTrustLevel : 2; // bit 0..1
UINT32 Reserved : 30; // bit 2..31 UINT32 Reserved : 30; // bit 2..31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} CXL_1_1_SECURITY_POLICY; } CXL_1_1_SECURITY_POLICY;
typedef struct { typedef struct {
CXL_1_1_SECURITY_POLICY SecurityPolicy; CXL_1_1_SECURITY_POLICY SecurityPolicy;
} CXL_1_1_SECURITY_CAPABILITY_STRUCTURE; } CXL_1_1_SECURITY_CAPABILITY_STRUCTURE;
CXL_11_OFFSET_ASSERT (CXL_1_1_SECURITY_CAPABILITY_STRUCTURE, SecurityPolicy, 0x0); CXL_11_OFFSET_ASSERT (CXL_1_1_SECURITY_CAPABILITY_STRUCTURE, SecurityPolicy, 0x0);
CXL_11_SIZE_ASSERT (CXL_1_1_SECURITY_CAPABILITY_STRUCTURE, 0x4); CXL_11_SIZE_ASSERT (CXL_1_1_SECURITY_CAPABILITY_STRUCTURE, 0x4);
typedef union { typedef union {
struct { struct {
UINT64 CxlLinkVersionSupported : 4; // bit 0..3 UINT64 CxlLinkVersionSupported : 4; // bit 0..3
UINT64 CxlLinkVersionReceived : 4; // bit 4..7 UINT64 CxlLinkVersionReceived : 4; // bit 4..7
UINT64 LlrWrapValueSupported : 8; // bit 8..15 UINT64 LlrWrapValueSupported : 8; // bit 8..15
UINT64 LlrWrapValueReceived : 8; // bit 16..23 UINT64 LlrWrapValueReceived : 8; // bit 16..23
UINT64 NumRetryReceived : 5; // bit 24..28 UINT64 NumRetryReceived : 5; // bit 24..28
UINT64 NumPhyReinitReceived : 5; // bit 29..33 UINT64 NumPhyReinitReceived : 5; // bit 29..33
UINT64 WrPtrReceived : 8; // bit 34..41 UINT64 WrPtrReceived : 8; // bit 34..41
UINT64 EchoEseqReceived : 8; // bit 42..49 UINT64 EchoEseqReceived : 8; // bit 42..49
UINT64 NumFreeBufReceived : 8; // bit 50..57 UINT64 NumFreeBufReceived : 8; // bit 50..57
UINT64 Reserved : 6; // bit 58..63 UINT64 Reserved : 6; // bit 58..63
} Bits; } Bits;
UINT64 Uint64; UINT64 Uint64;
} CXL_LINK_LAYER_CAPABILITY; } CXL_LINK_LAYER_CAPABILITY;
typedef union { typedef union {
struct { struct {
UINT16 LlReset : 1; // bit 0..0 UINT16 LlReset : 1; // bit 0..0
UINT16 LlInitStall : 1; // bit 1..1 UINT16 LlInitStall : 1; // bit 1..1
UINT16 LlCrdStall : 1; // bit 2..2 UINT16 LlCrdStall : 1; // bit 2..2
UINT16 InitState : 2; // bit 3..4 UINT16 InitState : 2; // bit 3..4
UINT16 LlRetryBufferConsumed : 8; // bit 5..12 UINT16 LlRetryBufferConsumed : 8; // bit 5..12
UINT16 Reserved : 3; // bit 13..15 UINT16 Reserved : 3; // bit 13..15
} Bits; } Bits;
UINT64 Uint64; UINT64 Uint64;
} CXL_LINK_LAYER_CONTROL_AND_STATUS; } CXL_LINK_LAYER_CONTROL_AND_STATUS;
typedef union { typedef union {
struct { struct {
UINT64 CacheReqCredits : 10; // bit 0..9 UINT64 CacheReqCredits : 10; // bit 0..9
UINT64 CacheRspCredits : 10; // bit 10..19 UINT64 CacheRspCredits : 10; // bit 10..19
UINT64 CacheDataCredits : 10; // bit 20..29 UINT64 CacheDataCredits : 10; // bit 20..29
UINT64 MemReqRspCredits : 10; // bit 30..39 UINT64 MemReqRspCredits : 10; // bit 30..39
UINT64 MemDataCredits : 10; // bit 40..49 UINT64 MemDataCredits : 10; // bit 40..49
} Bits; } Bits;
UINT64 Uint64; UINT64 Uint64;
} CXL_LINK_LAYER_RX_CREDIT_CONTROL; } CXL_LINK_LAYER_RX_CREDIT_CONTROL;
typedef union { typedef union {
struct { struct {
UINT64 CacheReqCredits : 10; // bit 0..9 UINT64 CacheReqCredits : 10; // bit 0..9
UINT64 CacheRspCredits : 10; // bit 10..19 UINT64 CacheRspCredits : 10; // bit 10..19
UINT64 CacheDataCredits : 10; // bit 20..29 UINT64 CacheDataCredits : 10; // bit 20..29
UINT64 MemReqRspCredits : 10; // bit 30..39 UINT64 MemReqRspCredits : 10; // bit 30..39
UINT64 MemDataCredits : 10; // bit 40..49 UINT64 MemDataCredits : 10; // bit 40..49
} Bits; } Bits;
UINT64 Uint64; UINT64 Uint64;
} CXL_LINK_LAYER_RX_CREDIT_RETURN_STATUS; } CXL_LINK_LAYER_RX_CREDIT_RETURN_STATUS;
typedef union { typedef union {
struct { struct {
UINT64 CacheReqCredits : 10; // bit 0..9 UINT64 CacheReqCredits : 10; // bit 0..9
UINT64 CacheRspCredits : 10; // bit 10..19 UINT64 CacheRspCredits : 10; // bit 10..19
UINT64 CacheDataCredits : 10; // bit 20..29 UINT64 CacheDataCredits : 10; // bit 20..29
UINT64 MemReqRspCredits : 10; // bit 30..39 UINT64 MemReqRspCredits : 10; // bit 30..39
UINT64 MemDataCredits : 10; // bit 40..49 UINT64 MemDataCredits : 10; // bit 40..49
} Bits; } Bits;
UINT64 Uint64; UINT64 Uint64;
} CXL_LINK_LAYER_TX_CREDIT_STATUS; } CXL_LINK_LAYER_TX_CREDIT_STATUS;
typedef union { typedef union {
struct { struct {
UINT32 AckForceThreshold : 8; // bit 0..7 UINT32 AckForceThreshold : 8; // bit 0..7
UINT32 AckFLushRetimer : 10; // bit 8..17 UINT32 AckFLushRetimer : 10; // bit 8..17
} Bits; } Bits;
UINT64 Uint64; UINT64 Uint64;
} CXL_LINK_LAYER_ACK_TIMER_CONTROL; } CXL_LINK_LAYER_ACK_TIMER_CONTROL;
typedef union { typedef union {
struct { struct {
UINT32 MdhDisable : 1; // bit 0..0 UINT32 MdhDisable : 1; // bit 0..0
UINT32 Reserved : 31; // bit 1..31 UINT32 Reserved : 31; // bit 1..31
} Bits; } Bits;
UINT64 Uint64; UINT64 Uint64;
} CXL_LINK_LAYER_DEFEATURE; } CXL_LINK_LAYER_DEFEATURE;
typedef struct { typedef struct {
CXL_LINK_LAYER_CAPABILITY LinkLayerCapability; CXL_LINK_LAYER_CAPABILITY LinkLayerCapability;
CXL_LINK_LAYER_CONTROL_AND_STATUS LinkLayerControlStatus; CXL_LINK_LAYER_CONTROL_AND_STATUS LinkLayerControlStatus;
CXL_LINK_LAYER_RX_CREDIT_CONTROL LinkLayerRxCreditControl; CXL_LINK_LAYER_RX_CREDIT_CONTROL LinkLayerRxCreditControl;
CXL_LINK_LAYER_RX_CREDIT_RETURN_STATUS LinkLayerRxCreditReturnStatus; CXL_LINK_LAYER_RX_CREDIT_RETURN_STATUS LinkLayerRxCreditReturnStatus;
CXL_LINK_LAYER_TX_CREDIT_STATUS LinkLayerTxCreditStatus; CXL_LINK_LAYER_TX_CREDIT_STATUS LinkLayerTxCreditStatus;
CXL_LINK_LAYER_ACK_TIMER_CONTROL LinkLayerAckTimerControl; CXL_LINK_LAYER_ACK_TIMER_CONTROL LinkLayerAckTimerControl;
CXL_LINK_LAYER_DEFEATURE LinkLayerDefeature; CXL_LINK_LAYER_DEFEATURE LinkLayerDefeature;
} CXL_1_1_LINK_CAPABILITY_STRUCTURE; } CXL_1_1_LINK_CAPABILITY_STRUCTURE;
CXL_11_OFFSET_ASSERT (CXL_1_1_LINK_CAPABILITY_STRUCTURE, LinkLayerCapability , 0x00); CXL_11_OFFSET_ASSERT (CXL_1_1_LINK_CAPABILITY_STRUCTURE, LinkLayerCapability, 0x00);
CXL_11_OFFSET_ASSERT (CXL_1_1_LINK_CAPABILITY_STRUCTURE, LinkLayerControlStatus , 0x08); CXL_11_OFFSET_ASSERT (CXL_1_1_LINK_CAPABILITY_STRUCTURE, LinkLayerControlStatus, 0x08);
CXL_11_OFFSET_ASSERT (CXL_1_1_LINK_CAPABILITY_STRUCTURE, LinkLayerRxCreditControl , 0x10); CXL_11_OFFSET_ASSERT (CXL_1_1_LINK_CAPABILITY_STRUCTURE, LinkLayerRxCreditControl, 0x10);
CXL_11_OFFSET_ASSERT (CXL_1_1_LINK_CAPABILITY_STRUCTURE, LinkLayerRxCreditReturnStatus, 0x18); CXL_11_OFFSET_ASSERT (CXL_1_1_LINK_CAPABILITY_STRUCTURE, LinkLayerRxCreditReturnStatus, 0x18);
CXL_11_OFFSET_ASSERT (CXL_1_1_LINK_CAPABILITY_STRUCTURE, LinkLayerTxCreditStatus , 0x20); CXL_11_OFFSET_ASSERT (CXL_1_1_LINK_CAPABILITY_STRUCTURE, LinkLayerTxCreditStatus, 0x20);
CXL_11_OFFSET_ASSERT (CXL_1_1_LINK_CAPABILITY_STRUCTURE, LinkLayerAckTimerControl , 0x28); CXL_11_OFFSET_ASSERT (CXL_1_1_LINK_CAPABILITY_STRUCTURE, LinkLayerAckTimerControl, 0x28);
CXL_11_OFFSET_ASSERT (CXL_1_1_LINK_CAPABILITY_STRUCTURE, LinkLayerDefeature , 0x30); CXL_11_OFFSET_ASSERT (CXL_1_1_LINK_CAPABILITY_STRUCTURE, LinkLayerDefeature, 0x30);
CXL_11_SIZE_ASSERT (CXL_1_1_LINK_CAPABILITY_STRUCTURE , 0x38); CXL_11_SIZE_ASSERT (CXL_1_1_LINK_CAPABILITY_STRUCTURE, 0x38);
#define CXL_IO_ARBITRATION_CONTROL_OFFSET 0x180 #define CXL_IO_ARBITRATION_CONTROL_OFFSET 0x180
typedef union { typedef union {
struct { struct {
UINT32 Reserved1 : 4; // bit 0..3 UINT32 Reserved1 : 4; // bit 0..3
UINT32 WeightedRoundRobinArbitrationWeight : 4; // bit 4..7 UINT32 WeightedRoundRobinArbitrationWeight : 4; // bit 4..7
UINT32 Reserved2 : 24; // bit 8..31 UINT32 Reserved2 : 24; // bit 8..31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} CXL_IO_ARBITRATION_CONTROL; } CXL_IO_ARBITRATION_CONTROL;
CXL_11_SIZE_ASSERT (CXL_IO_ARBITRATION_CONTROL, 0x4); CXL_11_SIZE_ASSERT (CXL_IO_ARBITRATION_CONTROL, 0x4);
#define CXL_CACHE_MEMORY_ARBITRATION_CONTROL_OFFSET 0x1C0 #define CXL_CACHE_MEMORY_ARBITRATION_CONTROL_OFFSET 0x1C0
typedef union { typedef union {
struct { struct {
UINT32 Reserved1 : 4; // bit 0..3 UINT32 Reserved1 : 4; // bit 0..3
UINT32 WeightedRoundRobinArbitrationWeight : 4; // bit 4..7 UINT32 WeightedRoundRobinArbitrationWeight : 4; // bit 4..7
UINT32 Reserved2 : 24; // bit 8..31 UINT32 Reserved2 : 24; // bit 8..31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} CXL_CACHE_MEMORY_ARBITRATION_CONTROL; } CXL_CACHE_MEMORY_ARBITRATION_CONTROL;
CXL_11_SIZE_ASSERT (CXL_CACHE_MEMORY_ARBITRATION_CONTROL, 0x4); CXL_11_SIZE_ASSERT (CXL_CACHE_MEMORY_ARBITRATION_CONTROL, 0x4);
@ -635,11 +634,11 @@ CXL_11_SIZE_ASSERT (CXL_CACHE_MEMORY_ARBITRATION_CONTROL, 0x4);
///@{ ///@{
typedef union { typedef union {
struct { struct {
UINT64 RcrbEnable : 1; // bit 0..0 UINT64 RcrbEnable : 1; // bit 0..0
UINT64 Reserved : 12; // bit 1..12 UINT64 Reserved : 12; // bit 1..12
UINT64 RcrbBaseAddress : 51; // bit 13..63 UINT64 RcrbBaseAddress : 51; // bit 13..63
} Bits; } Bits;
UINT64 Uint64; UINT64 Uint64;
} CXL_RCRB_BASE; } CXL_RCRB_BASE;
CXL_11_SIZE_ASSERT (CXL_RCRB_BASE, 0x8); CXL_11_SIZE_ASSERT (CXL_RCRB_BASE, 0x8);
@ -652,8 +651,8 @@ CXL_11_SIZE_ASSERT (CXL_RCRB_BASE, 0x8);
// CXL Downstream / Upstream Port RCRB space register offsets // CXL Downstream / Upstream Port RCRB space register offsets
// Compute Express Link Specification Revision: 1.1 - Chapter 7.2.1.1 - Figure 97 // Compute Express Link Specification Revision: 1.1 - Chapter 7.2.1.1 - Figure 97
// //
#define CXL_PORT_RCRB_MEMBAR0_LOW_OFFSET 0x010 #define CXL_PORT_RCRB_MEMBAR0_LOW_OFFSET 0x010
#define CXL_PORT_RCRB_MEMBAR0_HIGH_OFFSET 0x014 #define CXL_PORT_RCRB_MEMBAR0_HIGH_OFFSET 0x014
#define CXL_PORT_RCRB_EXTENDED_CAPABILITY_BASE_OFFSET 0x100 #define CXL_PORT_RCRB_EXTENDED_CAPABILITY_BASE_OFFSET 0x100
#endif #endif

View File

@ -8,7 +8,6 @@
**/ **/
#ifndef _DEBUG_PORT_2_TABLE_H_ #ifndef _DEBUG_PORT_2_TABLE_H_
#define _DEBUG_PORT_2_TABLE_H_ #define _DEBUG_PORT_2_TABLE_H_
@ -23,21 +22,21 @@
// Debug Device Information structure. // Debug Device Information structure.
// //
typedef struct { typedef struct {
UINT8 Revision; UINT8 Revision;
UINT16 Length; UINT16 Length;
UINT8 NumberofGenericAddressRegisters; UINT8 NumberofGenericAddressRegisters;
UINT16 NameSpaceStringLength; UINT16 NameSpaceStringLength;
UINT16 NameSpaceStringOffset; UINT16 NameSpaceStringOffset;
UINT16 OemDataLength; UINT16 OemDataLength;
UINT16 OemDataOffset; UINT16 OemDataOffset;
UINT16 PortType; UINT16 PortType;
UINT16 PortSubtype; UINT16 PortSubtype;
UINT8 Reserved[2]; UINT8 Reserved[2];
UINT16 BaseAddressRegisterOffset; UINT16 BaseAddressRegisterOffset;
UINT16 AddressSizeOffset; UINT16 AddressSizeOffset;
} EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT; } EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT;
#define EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT_REVISION 0x00 #define EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT_REVISION 0x00
#define EFI_ACPI_DBG2_PORT_TYPE_SERIAL 0x8000 #define EFI_ACPI_DBG2_PORT_TYPE_SERIAL 0x8000
#define EFI_ACPI_DBG2_PORT_SUBTYPE_SERIAL_FULL_16550 0x0000 #define EFI_ACPI_DBG2_PORT_SUBTYPE_SERIAL_FULL_16550 0x0000
@ -60,9 +59,9 @@ typedef struct {
// Debug Port 2 Table definition. // Debug Port 2 Table definition.
// //
typedef struct { typedef struct {
EFI_ACPI_DESCRIPTION_HEADER Header; EFI_ACPI_DESCRIPTION_HEADER Header;
UINT32 OffsetDbgDeviceInfo; UINT32 OffsetDbgDeviceInfo;
UINT32 NumberDbgDeviceInfo; UINT32 NumberDbgDeviceInfo;
} EFI_ACPI_DEBUG_PORT_2_DESCRIPTION_TABLE; } EFI_ACPI_DEBUG_PORT_2_DESCRIPTION_TABLE;
#pragma pack() #pragma pack()
@ -70,6 +69,6 @@ typedef struct {
// //
// DBG2 Revision (defined in spec) // DBG2 Revision (defined in spec)
// //
#define EFI_ACPI_DEBUG_PORT_2_TABLE_REVISION 0x00 #define EFI_ACPI_DEBUG_PORT_2_TABLE_REVISION 0x00
#endif #endif

View File

@ -7,7 +7,6 @@
**/ **/
#ifndef _DEBUG_PORT_TABLE_H_ #ifndef _DEBUG_PORT_TABLE_H_
#define _DEBUG_PORT_TABLE_H_ #define _DEBUG_PORT_TABLE_H_
@ -33,7 +32,7 @@ typedef struct {
// //
// DBGP Revision (defined in spec) // DBGP Revision (defined in spec)
// //
#define EFI_ACPI_DEBUG_PORT_TABLE_REVISION 0x01 #define EFI_ACPI_DEBUG_PORT_TABLE_REVISION 0x01
// //
// Interface Type // Interface Type

View File

@ -15,88 +15,87 @@
/// ///
/// Dhcpv4 Options, definitions from RFC 2132 /// Dhcpv4 Options, definitions from RFC 2132
/// ///
#define DHCP4_TAG_PAD 0 /// Pad Option #define DHCP4_TAG_PAD 0 /// Pad Option
#define DHCP4_TAG_EOP 255 /// End Option #define DHCP4_TAG_EOP 255 /// End Option
#define DHCP4_TAG_NETMASK 1 /// Subnet Mask #define DHCP4_TAG_NETMASK 1 /// Subnet Mask
#define DHCP4_TAG_TIME_OFFSET 2 /// Time Offset from UTC #define DHCP4_TAG_TIME_OFFSET 2 /// Time Offset from UTC
#define DHCP4_TAG_ROUTER 3 /// Router option, #define DHCP4_TAG_ROUTER 3 /// Router option,
#define DHCP4_TAG_TIME_SERVER 4 /// Time Server #define DHCP4_TAG_TIME_SERVER 4 /// Time Server
#define DHCP4_TAG_NAME_SERVER 5 /// Name Server #define DHCP4_TAG_NAME_SERVER 5 /// Name Server
#define DHCP4_TAG_DNS_SERVER 6 /// Domain Name Server #define DHCP4_TAG_DNS_SERVER 6 /// Domain Name Server
#define DHCP4_TAG_LOG_SERVER 7 /// Log Server #define DHCP4_TAG_LOG_SERVER 7 /// Log Server
#define DHCP4_TAG_COOKIE_SERVER 8 /// Cookie Server #define DHCP4_TAG_COOKIE_SERVER 8 /// Cookie Server
#define DHCP4_TAG_LPR_SERVER 9 /// LPR Print Server #define DHCP4_TAG_LPR_SERVER 9 /// LPR Print Server
#define DHCP4_TAG_IMPRESS_SERVER 10 /// Impress Server #define DHCP4_TAG_IMPRESS_SERVER 10 /// Impress Server
#define DHCP4_TAG_RL_SERVER 11 /// Resource Location Server #define DHCP4_TAG_RL_SERVER 11 /// Resource Location Server
#define DHCP4_TAG_HOSTNAME 12 /// Host Name #define DHCP4_TAG_HOSTNAME 12 /// Host Name
#define DHCP4_TAG_BOOTFILE_LEN 13 /// Boot File Size #define DHCP4_TAG_BOOTFILE_LEN 13 /// Boot File Size
#define DHCP4_TAG_DUMP 14 /// Merit Dump File #define DHCP4_TAG_DUMP 14 /// Merit Dump File
#define DHCP4_TAG_DOMAINNAME 15 /// Domain Name #define DHCP4_TAG_DOMAINNAME 15 /// Domain Name
#define DHCP4_TAG_SWAP_SERVER 16 /// Swap Server #define DHCP4_TAG_SWAP_SERVER 16 /// Swap Server
#define DHCP4_TAG_ROOTPATH 17 /// Root path #define DHCP4_TAG_ROOTPATH 17 /// Root path
#define DHCP4_TAG_EXTEND_PATH 18 /// Extensions Path #define DHCP4_TAG_EXTEND_PATH 18 /// Extensions Path
#define DHCP4_TAG_IPFORWARD 19 /// IP Forwarding Enable/Disable #define DHCP4_TAG_IPFORWARD 19 /// IP Forwarding Enable/Disable
#define DHCP4_TAG_NONLOCAL_SRR 20 /// on-Local Source Routing Enable/Disable #define DHCP4_TAG_NONLOCAL_SRR 20 /// on-Local Source Routing Enable/Disable
#define DHCP4_TAG_POLICY_SRR 21 /// Policy Filter #define DHCP4_TAG_POLICY_SRR 21 /// Policy Filter
#define DHCP4_TAG_EMTU 22 /// Maximum Datagram Reassembly Size #define DHCP4_TAG_EMTU 22 /// Maximum Datagram Reassembly Size
#define DHCP4_TAG_TTL 23 /// Default IP Time-to-live #define DHCP4_TAG_TTL 23 /// Default IP Time-to-live
#define DHCP4_TAG_PATHMTU_AGE 24 /// Path MTU Aging Timeout #define DHCP4_TAG_PATHMTU_AGE 24 /// Path MTU Aging Timeout
#define DHCP4_TAG_PATHMTU_PLATEAU 25 /// Path MTU Plateau Table #define DHCP4_TAG_PATHMTU_PLATEAU 25 /// Path MTU Plateau Table
#define DHCP4_TAG_IFMTU 26 /// Interface MTU #define DHCP4_TAG_IFMTU 26 /// Interface MTU
#define DHCP4_TAG_SUBNET_LOCAL 27 /// All Subnets are Local #define DHCP4_TAG_SUBNET_LOCAL 27 /// All Subnets are Local
#define DHCP4_TAG_BROADCAST 28 /// Broadcast Address #define DHCP4_TAG_BROADCAST 28 /// Broadcast Address
#define DHCP4_TAG_DISCOVER_MASK 29 /// Perform Mask Discovery #define DHCP4_TAG_DISCOVER_MASK 29 /// Perform Mask Discovery
#define DHCP4_TAG_SUPPLY_MASK 30 /// Mask Supplier #define DHCP4_TAG_SUPPLY_MASK 30 /// Mask Supplier
#define DHCP4_TAG_DISCOVER_ROUTE 31 /// Perform Router Discovery #define DHCP4_TAG_DISCOVER_ROUTE 31 /// Perform Router Discovery
#define DHCP4_TAG_ROUTER_SOLICIT 32 /// Router Solicitation Address #define DHCP4_TAG_ROUTER_SOLICIT 32 /// Router Solicitation Address
#define DHCP4_TAG_STATIC_ROUTE 33 /// Static Route #define DHCP4_TAG_STATIC_ROUTE 33 /// Static Route
#define DHCP4_TAG_TRAILER 34 /// Trailer Encapsulation #define DHCP4_TAG_TRAILER 34 /// Trailer Encapsulation
#define DHCP4_TAG_ARPAGE 35 /// ARP Cache Timeout #define DHCP4_TAG_ARPAGE 35 /// ARP Cache Timeout
#define DHCP4_TAG_ETHER_ENCAP 36 /// Ethernet Encapsulation #define DHCP4_TAG_ETHER_ENCAP 36 /// Ethernet Encapsulation
#define DHCP4_TAG_TCP_TTL 37 /// TCP Default TTL #define DHCP4_TAG_TCP_TTL 37 /// TCP Default TTL
#define DHCP4_TAG_KEEP_INTERVAL 38 /// TCP Keepalive Interval #define DHCP4_TAG_KEEP_INTERVAL 38 /// TCP Keepalive Interval
#define DHCP4_TAG_KEEP_GARBAGE 39 /// TCP Keepalive Garbage #define DHCP4_TAG_KEEP_GARBAGE 39 /// TCP Keepalive Garbage
#define DHCP4_TAG_NIS_DOMAIN 40 /// Network Information Service Domain #define DHCP4_TAG_NIS_DOMAIN 40 /// Network Information Service Domain
#define DHCP4_TAG_NIS_SERVER 41 /// Network Information Servers #define DHCP4_TAG_NIS_SERVER 41 /// Network Information Servers
#define DHCP4_TAG_NTP_SERVER 42 /// Network Time Protocol Servers #define DHCP4_TAG_NTP_SERVER 42 /// Network Time Protocol Servers
#define DHCP4_TAG_VENDOR 43 /// Vendor Specific Information #define DHCP4_TAG_VENDOR 43 /// Vendor Specific Information
#define DHCP4_TAG_NBNS 44 /// NetBIOS over TCP/IP Name Server #define DHCP4_TAG_NBNS 44 /// NetBIOS over TCP/IP Name Server
#define DHCP4_TAG_NBDD 45 /// NetBIOS Datagram Distribution Server #define DHCP4_TAG_NBDD 45 /// NetBIOS Datagram Distribution Server
#define DHCP4_TAG_NBTYPE 46 /// NetBIOS over TCP/IP Node Type #define DHCP4_TAG_NBTYPE 46 /// NetBIOS over TCP/IP Node Type
#define DHCP4_TAG_NBSCOPE 47 /// NetBIOS over TCP/IP Scope #define DHCP4_TAG_NBSCOPE 47 /// NetBIOS over TCP/IP Scope
#define DHCP4_TAG_XFONT 48 /// X Window System Font Server #define DHCP4_TAG_XFONT 48 /// X Window System Font Server
#define DHCP4_TAG_XDM 49 /// X Window System Display Manager #define DHCP4_TAG_XDM 49 /// X Window System Display Manager
#define DHCP4_TAG_REQUEST_IP 50 /// Requested IP Address #define DHCP4_TAG_REQUEST_IP 50 /// Requested IP Address
#define DHCP4_TAG_LEASE 51 /// IP Address Lease Time #define DHCP4_TAG_LEASE 51 /// IP Address Lease Time
#define DHCP4_TAG_OVERLOAD 52 /// Option Overload #define DHCP4_TAG_OVERLOAD 52 /// Option Overload
#define DHCP4_TAG_MSG_TYPE 53 /// DHCP Message Type #define DHCP4_TAG_MSG_TYPE 53 /// DHCP Message Type
#define DHCP4_TAG_SERVER_ID 54 /// Server Identifier #define DHCP4_TAG_SERVER_ID 54 /// Server Identifier
#define DHCP4_TAG_PARA_LIST 55 /// Parameter Request List #define DHCP4_TAG_PARA_LIST 55 /// Parameter Request List
#define DHCP4_TAG_MESSAGE 56 /// Message #define DHCP4_TAG_MESSAGE 56 /// Message
#define DHCP4_TAG_MAXMSG 57 /// Maximum DHCP Message Size #define DHCP4_TAG_MAXMSG 57 /// Maximum DHCP Message Size
#define DHCP4_TAG_T1 58 /// Renewal (T1) Time Value #define DHCP4_TAG_T1 58 /// Renewal (T1) Time Value
#define DHCP4_TAG_T2 59 /// Rebinding (T2) Time Value #define DHCP4_TAG_T2 59 /// Rebinding (T2) Time Value
#define DHCP4_TAG_VENDOR_CLASS_ID 60 /// Vendor class identifier #define DHCP4_TAG_VENDOR_CLASS_ID 60 /// Vendor class identifier
#define DHCP4_TAG_CLIENT_ID 61 /// Client-identifier #define DHCP4_TAG_CLIENT_ID 61 /// Client-identifier
#define DHCP4_TAG_NISPLUS 64 /// Network Information Service+ Domain #define DHCP4_TAG_NISPLUS 64 /// Network Information Service+ Domain
#define DHCP4_TAG_NISPLUS_SERVER 65 /// Network Information Service+ Servers #define DHCP4_TAG_NISPLUS_SERVER 65 /// Network Information Service+ Servers
#define DHCP4_TAG_TFTP 66 /// TFTP server name #define DHCP4_TAG_TFTP 66 /// TFTP server name
#define DHCP4_TAG_BOOTFILE 67 /// Bootfile name #define DHCP4_TAG_BOOTFILE 67 /// Bootfile name
#define DHCP4_TAG_MOBILEIP 68 /// Mobile IP Home Agent #define DHCP4_TAG_MOBILEIP 68 /// Mobile IP Home Agent
#define DHCP4_TAG_SMTP 69 /// Simple Mail Transport Protocol Server #define DHCP4_TAG_SMTP 69 /// Simple Mail Transport Protocol Server
#define DHCP4_TAG_POP3 70 /// Post Office Protocol (POP3) Server #define DHCP4_TAG_POP3 70 /// Post Office Protocol (POP3) Server
#define DHCP4_TAG_NNTP 71 /// Network News Transport Protocol Server #define DHCP4_TAG_NNTP 71 /// Network News Transport Protocol Server
#define DHCP4_TAG_WWW 72 /// Default World Wide Web (WWW) Server #define DHCP4_TAG_WWW 72 /// Default World Wide Web (WWW) Server
#define DHCP4_TAG_FINGER 73 /// Default Finger Server #define DHCP4_TAG_FINGER 73 /// Default Finger Server
#define DHCP4_TAG_IRC 74 /// Default Internet Relay Chat (IRC) Server #define DHCP4_TAG_IRC 74 /// Default Internet Relay Chat (IRC) Server
#define DHCP4_TAG_STTALK 75 /// StreetTalk Server #define DHCP4_TAG_STTALK 75 /// StreetTalk Server
#define DHCP4_TAG_STDA 76 /// StreetTalk Directory Assistance Server #define DHCP4_TAG_STDA 76 /// StreetTalk Directory Assistance Server
#define DHCP4_TAG_USER_CLASS_ID 77 /// User class identifier #define DHCP4_TAG_USER_CLASS_ID 77 /// User class identifier
#define DHCP4_TAG_ARCH 93 /// Client System Architecture Type, RFC 4578 #define DHCP4_TAG_ARCH 93 /// Client System Architecture Type, RFC 4578
#define DHCP4_TAG_UNDI 94 /// Client Network Interface Identifier, RFC 4578 #define DHCP4_TAG_UNDI 94 /// Client Network Interface Identifier, RFC 4578
#define DHCP4_TAG_UUID 97 /// Client Machine Identifier, RFC 4578 #define DHCP4_TAG_UUID 97 /// Client Machine Identifier, RFC 4578
#define DHCP4_TAG_CLASSLESS_ROUTE 121 /// Classless Route #define DHCP4_TAG_CLASSLESS_ROUTE 121 /// Classless Route
/// ///
/// Dynamic Host Configuration Protocol for IPv6 (DHCPv6) /// Dynamic Host Configuration Protocol for IPv6 (DHCPv6)
@ -104,64 +103,64 @@
/// Enumeration of Dhcp6 message type, refers to section-5.3 of rfc-3315. /// Enumeration of Dhcp6 message type, refers to section-5.3 of rfc-3315.
/// ///
typedef enum { typedef enum {
Dhcp6MsgSolicit = 1, Dhcp6MsgSolicit = 1,
Dhcp6MsgAdvertise = 2, Dhcp6MsgAdvertise = 2,
Dhcp6MsgRequest = 3, Dhcp6MsgRequest = 3,
Dhcp6MsgConfirm = 4, Dhcp6MsgConfirm = 4,
Dhcp6MsgRenew = 5, Dhcp6MsgRenew = 5,
Dhcp6MsgRebind = 6, Dhcp6MsgRebind = 6,
Dhcp6MsgReply = 7, Dhcp6MsgReply = 7,
Dhcp6MsgRelease = 8, Dhcp6MsgRelease = 8,
Dhcp6MsgDecline = 9, Dhcp6MsgDecline = 9,
Dhcp6MsgReconfigure = 10, Dhcp6MsgReconfigure = 10,
Dhcp6MsgInfoRequest = 11 Dhcp6MsgInfoRequest = 11
} DHCP6_MSG_TYPE; } DHCP6_MSG_TYPE;
/// ///
/// Enumeration of option code in Dhcp6 packet, refers to section-24.3 of rfc-3315. /// Enumeration of option code in Dhcp6 packet, refers to section-24.3 of rfc-3315.
/// ///
typedef enum { typedef enum {
Dhcp6OptClientId = 1, Dhcp6OptClientId = 1,
Dhcp6OptServerId = 2, Dhcp6OptServerId = 2,
Dhcp6OptIana = 3, Dhcp6OptIana = 3,
Dhcp6OptIata = 4, Dhcp6OptIata = 4,
Dhcp6OptIaAddr = 5, Dhcp6OptIaAddr = 5,
Dhcp6OptRequestOption = 6, Dhcp6OptRequestOption = 6,
Dhcp6OptPreference = 7, Dhcp6OptPreference = 7,
Dhcp6OptElapsedTime = 8, Dhcp6OptElapsedTime = 8,
Dhcp6OptReplayMessage = 9, Dhcp6OptReplayMessage = 9,
Dhcp6OptAuthentication = 11, Dhcp6OptAuthentication = 11,
Dhcp6OptServerUnicast = 12, Dhcp6OptServerUnicast = 12,
Dhcp6OptStatusCode = 13, Dhcp6OptStatusCode = 13,
Dhcp6OptRapidCommit = 14, Dhcp6OptRapidCommit = 14,
Dhcp6OptUserClass = 15, Dhcp6OptUserClass = 15,
Dhcp6OptVendorClass = 16, Dhcp6OptVendorClass = 16,
Dhcp6OptVendorInfo = 17, Dhcp6OptVendorInfo = 17,
Dhcp6OptInterfaceId = 18, Dhcp6OptInterfaceId = 18,
Dhcp6OptReconfigMessage = 19, Dhcp6OptReconfigMessage = 19,
Dhcp6OptReconfigureAccept = 20 Dhcp6OptReconfigureAccept = 20
} DHCP6_OPT_CODE; } DHCP6_OPT_CODE;
/// ///
/// Enumeration of status code recorded by IANA, refers to section-24.4 of rfc-3315. /// Enumeration of status code recorded by IANA, refers to section-24.4 of rfc-3315.
/// ///
typedef enum { typedef enum {
Dhcp6StsSuccess = 0, Dhcp6StsSuccess = 0,
Dhcp6StsUnspecFail = 1, Dhcp6StsUnspecFail = 1,
Dhcp6StsNoAddrsAvail = 2, Dhcp6StsNoAddrsAvail = 2,
Dhcp6StsNoBinding = 3, Dhcp6StsNoBinding = 3,
Dhcp6StsNotOnLink = 4, Dhcp6StsNotOnLink = 4,
Dhcp6StsUseMulticast = 5 Dhcp6StsUseMulticast = 5
} DHCP6_STS_CODE; } DHCP6_STS_CODE;
/// ///
/// Enumeration of Duid type recorded by IANA, refers to section-24.5 of rfc-3315. /// Enumeration of Duid type recorded by IANA, refers to section-24.5 of rfc-3315.
/// ///
typedef enum { typedef enum {
Dhcp6DuidTypeLlt = 1, Dhcp6DuidTypeLlt = 1,
Dhcp6DuidTypeEn = 2, Dhcp6DuidTypeEn = 2,
Dhcp6DuidTypeLl = 3, Dhcp6DuidTypeLl = 3,
Dhcp6DuidTypeUuid = 4 Dhcp6DuidTypeUuid = 4
} DHCP6_DUID_TYPE; } DHCP6_DUID_TYPE;
/// Transmission and Retransmission Parameters /// Transmission and Retransmission Parameters
@ -170,114 +169,114 @@ typedef enum {
/// ///
/// Transmit parameters of solicit message, refers to section-5.5 of rfc-3315. /// Transmit parameters of solicit message, refers to section-5.5 of rfc-3315.
/// ///
#define DHCP6_SOL_MAX_DELAY 1 #define DHCP6_SOL_MAX_DELAY 1
#define DHCP6_SOL_IRT 1 #define DHCP6_SOL_IRT 1
#define DHCP6_SOL_MRC 0 #define DHCP6_SOL_MRC 0
#define DHCP6_SOL_MRT 120 #define DHCP6_SOL_MRT 120
#define DHCP6_SOL_MRD 0 #define DHCP6_SOL_MRD 0
/// ///
/// Transmit parameters of request message, refers to section-5.5 of rfc-3315. /// Transmit parameters of request message, refers to section-5.5 of rfc-3315.
/// ///
#define DHCP6_REQ_IRT 1 #define DHCP6_REQ_IRT 1
#define DHCP6_REQ_MRC 10 #define DHCP6_REQ_MRC 10
#define DHCP6_REQ_MRT 30 #define DHCP6_REQ_MRT 30
#define DHCP6_REQ_MRD 0 #define DHCP6_REQ_MRD 0
/// ///
/// Transmit parameters of confirm message, refers to section-5.5 of rfc-3315. /// Transmit parameters of confirm message, refers to section-5.5 of rfc-3315.
/// ///
#define DHCP6_CNF_MAX_DELAY 1 #define DHCP6_CNF_MAX_DELAY 1
#define DHCP6_CNF_IRT 1 #define DHCP6_CNF_IRT 1
#define DHCP6_CNF_MRC 0 #define DHCP6_CNF_MRC 0
#define DHCP6_CNF_MRT 4 #define DHCP6_CNF_MRT 4
#define DHCP6_CNF_MRD 10 #define DHCP6_CNF_MRD 10
/// ///
/// Transmit parameters of renew message, refers to section-5.5 of rfc-3315. /// Transmit parameters of renew message, refers to section-5.5 of rfc-3315.
/// ///
#define DHCP6_REN_IRT 10 #define DHCP6_REN_IRT 10
#define DHCP6_REN_MRC 0 #define DHCP6_REN_MRC 0
#define DHCP6_REN_MRT 600 #define DHCP6_REN_MRT 600
#define DHCP6_REN_MRD 0 #define DHCP6_REN_MRD 0
/// ///
/// Transmit parameters of rebind message, refers to section-5.5 of rfc-3315. /// Transmit parameters of rebind message, refers to section-5.5 of rfc-3315.
/// ///
#define DHCP6_REB_IRT 10 #define DHCP6_REB_IRT 10
#define DHCP6_REB_MRC 0 #define DHCP6_REB_MRC 0
#define DHCP6_REB_MRT 600 #define DHCP6_REB_MRT 600
#define DHCP6_REB_MRD 0 #define DHCP6_REB_MRD 0
/// ///
/// Transmit parameters of information request message, refers to section-5.5 of rfc-3315. /// Transmit parameters of information request message, refers to section-5.5 of rfc-3315.
/// ///
#define DHCP6_INF_MAX_DELAY 1 #define DHCP6_INF_MAX_DELAY 1
#define DHCP6_INF_IRT 1 #define DHCP6_INF_IRT 1
#define DHCP6_INF_MRC 0 #define DHCP6_INF_MRC 0
#define DHCP6_INF_MRT 120 #define DHCP6_INF_MRT 120
#define DHCP6_INF_MRD 0 #define DHCP6_INF_MRD 0
/// ///
/// Transmit parameters of release message, refers to section-5.5 of rfc-3315. /// Transmit parameters of release message, refers to section-5.5 of rfc-3315.
/// ///
#define DHCP6_REL_IRT 1 #define DHCP6_REL_IRT 1
#define DHCP6_REL_MRC 5 #define DHCP6_REL_MRC 5
#define DHCP6_REL_MRT 0 #define DHCP6_REL_MRT 0
#define DHCP6_REL_MRD 0 #define DHCP6_REL_MRD 0
/// ///
/// Transmit parameters of decline message, refers to section-5.5 of rfc-3315. /// Transmit parameters of decline message, refers to section-5.5 of rfc-3315.
/// ///
#define DHCP6_DEC_IRT 1 #define DHCP6_DEC_IRT 1
#define DHCP6_DEC_MRC 5 #define DHCP6_DEC_MRC 5
#define DHCP6_DEC_MRT 0 #define DHCP6_DEC_MRT 0
#define DHCP6_DEC_MRD 0 #define DHCP6_DEC_MRD 0
//// ////
//// DHCPv6 Options, definitions from RFC 3315,RFC 5970 and RFC 3646. //// DHCPv6 Options, definitions from RFC 3315,RFC 5970 and RFC 3646.
//// ////
#define DHCP6_OPT_CLIENT_ID 1 /// Client Identifier Option #define DHCP6_OPT_CLIENT_ID 1 /// Client Identifier Option
#define DHCP6_OPT_SERVER_ID 2 /// Server Identifier Option #define DHCP6_OPT_SERVER_ID 2 /// Server Identifier Option
#define DHCP6_OPT_IA_NA 3 /// The Identity Association for Non-temporary Addresses option #define DHCP6_OPT_IA_NA 3 /// The Identity Association for Non-temporary Addresses option
#define DHCP6_OPT_IA_TA 4 /// The Identity Association for the Temporary Addresses #define DHCP6_OPT_IA_TA 4 /// The Identity Association for the Temporary Addresses
#define DHCP6_OPT_IAADDR 5 /// IA Address option #define DHCP6_OPT_IAADDR 5 /// IA Address option
#define DHCP6_OPT_ORO 6 /// Request option #define DHCP6_OPT_ORO 6 /// Request option
#define DHCP6_OPT_PREFERENCE 7 /// Preference option #define DHCP6_OPT_PREFERENCE 7 /// Preference option
#define DHCP6_OPT_ELAPSED_TIME 8 /// Elapsed Time Option #define DHCP6_OPT_ELAPSED_TIME 8 /// Elapsed Time Option
#define DHCP6_OPT_REPLAY_MSG 9 /// Relay Message option #define DHCP6_OPT_REPLAY_MSG 9 /// Relay Message option
#define DHCP6_OPT_AUTH 11 /// Authentication option #define DHCP6_OPT_AUTH 11 /// Authentication option
#define DHCP6_OPT_UNICAST 12 /// Server Unicast Option #define DHCP6_OPT_UNICAST 12 /// Server Unicast Option
#define DHCP6_OPT_STATUS_CODE 13 /// Status Code Option #define DHCP6_OPT_STATUS_CODE 13 /// Status Code Option
#define DHCP6_OPT_RAPID_COMMIT 14 /// Rapid Commit option #define DHCP6_OPT_RAPID_COMMIT 14 /// Rapid Commit option
#define DHCP6_OPT_USER_CLASS 15 /// User Class option #define DHCP6_OPT_USER_CLASS 15 /// User Class option
#define DHCP6_OPT_VENDOR_CLASS 16 /// Vendor Class Option #define DHCP6_OPT_VENDOR_CLASS 16 /// Vendor Class Option
#define DHCP6_OPT_VENDOR_OPTS 17 /// Vendor-specific Information Option #define DHCP6_OPT_VENDOR_OPTS 17 /// Vendor-specific Information Option
#define DHCP6_OPT_INTERFACE_ID 18 /// Interface-Id Option #define DHCP6_OPT_INTERFACE_ID 18 /// Interface-Id Option
#define DHCP6_OPT_RECONFIG_MSG 19 /// Reconfigure Message Option #define DHCP6_OPT_RECONFIG_MSG 19 /// Reconfigure Message Option
#define DHCP6_OPT_RECONFIG_ACCEPT 20 /// Reconfigure Accept Option #define DHCP6_OPT_RECONFIG_ACCEPT 20 /// Reconfigure Accept Option
#define DHCP6_OPT_DNS_SERVERS 23 /// DNS Configuration options, RFC 3646 #define DHCP6_OPT_DNS_SERVERS 23 /// DNS Configuration options, RFC 3646
#define DHCP6_OPT_BOOT_FILE_URL 59 /// Assigned by IANA, RFC 5970 #define DHCP6_OPT_BOOT_FILE_URL 59 /// Assigned by IANA, RFC 5970
#define DHCP6_OPT_BOOT_FILE_PARAM 60 /// Assigned by IANA, RFC 5970 #define DHCP6_OPT_BOOT_FILE_PARAM 60 /// Assigned by IANA, RFC 5970
#define DHCP6_OPT_ARCH 61 /// Assigned by IANA, RFC 5970 #define DHCP6_OPT_ARCH 61 /// Assigned by IANA, RFC 5970
#define DHCP6_OPT_UNDI 62 /// Assigned by IANA, RFC 5970 #define DHCP6_OPT_UNDI 62 /// Assigned by IANA, RFC 5970
/// ///
/// Processor Architecture Types /// Processor Architecture Types
/// These identifiers are defined by IETF: /// These identifiers are defined by IETF:
/// http://www.ietf.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xml /// http://www.ietf.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xml
/// ///
#define PXE_CLIENT_ARCH_X86_BIOS 0x0000 /// x86 BIOS for PXE #define PXE_CLIENT_ARCH_X86_BIOS 0x0000 /// x86 BIOS for PXE
#define PXE_CLIENT_ARCH_IPF 0x0002 /// Itanium for PXE #define PXE_CLIENT_ARCH_IPF 0x0002 /// Itanium for PXE
#define PXE_CLIENT_ARCH_IA32 0x0006 /// x86 uefi for PXE #define PXE_CLIENT_ARCH_IA32 0x0006 /// x86 uefi for PXE
#define PXE_CLIENT_ARCH_X64 0x0007 /// x64 uefi for PXE #define PXE_CLIENT_ARCH_X64 0x0007 /// x64 uefi for PXE
#define PXE_CLIENT_ARCH_EBC 0x0009 /// EBC for PXE #define PXE_CLIENT_ARCH_EBC 0x0009 /// EBC for PXE
#define PXE_CLIENT_ARCH_ARM 0x000A /// Arm uefi 32 for PXE #define PXE_CLIENT_ARCH_ARM 0x000A /// Arm uefi 32 for PXE
#define PXE_CLIENT_ARCH_AARCH64 0x000B /// Arm uefi 64 for PXE #define PXE_CLIENT_ARCH_AARCH64 0x000B /// Arm uefi 64 for PXE
#define PXE_CLIENT_ARCH_RISCV32 0x0019 /// RISC-V uefi 32 for PXE #define PXE_CLIENT_ARCH_RISCV32 0x0019 /// RISC-V uefi 32 for PXE
#define PXE_CLIENT_ARCH_RISCV64 0x001B /// RISC-V uefi 64 for PXE #define PXE_CLIENT_ARCH_RISCV64 0x001B /// RISC-V uefi 64 for PXE
#define PXE_CLIENT_ARCH_RISCV128 0x001D /// RISC-V uefi 128 for PXE #define PXE_CLIENT_ARCH_RISCV128 0x001D /// RISC-V uefi 128 for PXE
#define HTTP_CLIENT_ARCH_IA32 0x000F /// x86 uefi boot from http #define HTTP_CLIENT_ARCH_IA32 0x000F /// x86 uefi boot from http
#define HTTP_CLIENT_ARCH_X64 0x0010 /// x64 uefi boot from http #define HTTP_CLIENT_ARCH_X64 0x0010 /// x64 uefi boot from http
#define HTTP_CLIENT_ARCH_EBC 0x0011 /// EBC boot from http #define HTTP_CLIENT_ARCH_EBC 0x0011 /// EBC boot from http
#define HTTP_CLIENT_ARCH_ARM 0x0012 /// Arm uefi 32 boot from http #define HTTP_CLIENT_ARCH_ARM 0x0012 /// Arm uefi 32 boot from http
#define HTTP_CLIENT_ARCH_AARCH64 0x0013 /// Arm uefi 64 boot from http #define HTTP_CLIENT_ARCH_AARCH64 0x0013 /// Arm uefi 64 boot from http
#define HTTP_CLIENT_ARCH_RISCV32 0x001A /// RISC-V uefi 32 boot from http #define HTTP_CLIENT_ARCH_RISCV32 0x001A /// RISC-V uefi 32 boot from http
#define HTTP_CLIENT_ARCH_RISCV64 0x001C /// RISC-V uefi 64 boot from http #define HTTP_CLIENT_ARCH_RISCV64 0x001C /// RISC-V uefi 64 boot from http
#define HTTP_CLIENT_ARCH_RISCV128 0x001E /// RISC-V uefi 128 boot from http #define HTTP_CLIENT_ARCH_RISCV128 0x001E /// RISC-V uefi 128 boot from http
#endif #endif

View File

@ -14,6 +14,7 @@
- HPET - High Precision Event Timer - HPET - High Precision Event Timer
- NUMA - Non-uniform Memory Access - NUMA - Non-uniform Memory Access
**/ **/
#ifndef _DMA_REMAPPING_REPORTING_TABLE_H_ #ifndef _DMA_REMAPPING_REPORTING_TABLE_H_
#define _DMA_REMAPPING_REPORTING_TABLE_H_ #define _DMA_REMAPPING_REPORTING_TABLE_H_
@ -24,7 +25,7 @@
/// ///
/// DMA-Remapping Reporting Structure definitions from section 8.1 /// DMA-Remapping Reporting Structure definitions from section 8.1
///@{ ///@{
#define EFI_ACPI_DMAR_REVISION 0x01 #define EFI_ACPI_DMAR_REVISION 0x01
#define EFI_ACPI_DMAR_FLAGS_INTR_REMAP BIT0 #define EFI_ACPI_DMAR_FLAGS_INTR_REMAP BIT0
#define EFI_ACPI_DMAR_FLAGS_X2APIC_OPT_OUT BIT1 #define EFI_ACPI_DMAR_FLAGS_X2APIC_OPT_OUT BIT1
@ -34,12 +35,12 @@
/// ///
/// Remapping Structure Types definitions from section 8.2 /// Remapping Structure Types definitions from section 8.2
///@{ ///@{
#define EFI_ACPI_DMAR_TYPE_DRHD 0x00 #define EFI_ACPI_DMAR_TYPE_DRHD 0x00
#define EFI_ACPI_DMAR_TYPE_RMRR 0x01 #define EFI_ACPI_DMAR_TYPE_RMRR 0x01
#define EFI_ACPI_DMAR_TYPE_ATSR 0x02 #define EFI_ACPI_DMAR_TYPE_ATSR 0x02
#define EFI_ACPI_DMAR_TYPE_RHSA 0x03 #define EFI_ACPI_DMAR_TYPE_RHSA 0x03
#define EFI_ACPI_DMAR_TYPE_ANDD 0x04 #define EFI_ACPI_DMAR_TYPE_ANDD 0x04
#define EFI_ACPI_DMAR_TYPE_SATC 0x05 #define EFI_ACPI_DMAR_TYPE_SATC 0x05
///@} ///@}
/// ///
@ -60,33 +61,33 @@
/// ///
/// Root Port ATS Capability Reporting Structure definitions from section 8.5 /// Root Port ATS Capability Reporting Structure definitions from section 8.5
/// ///
#define EFI_ACPI_DMAR_ATSR_FLAGS_ALL_PORTS BIT0 #define EFI_ACPI_DMAR_ATSR_FLAGS_ALL_PORTS BIT0
/// ///
/// Definition for DMA Remapping Structure Header /// Definition for DMA Remapping Structure Header
/// ///
typedef struct { typedef struct {
UINT16 Type; UINT16 Type;
UINT16 Length; UINT16 Length;
} EFI_ACPI_DMAR_STRUCTURE_HEADER; } EFI_ACPI_DMAR_STRUCTURE_HEADER;
/// ///
/// Definition for DMA-Remapping PCI Path /// Definition for DMA-Remapping PCI Path
/// ///
typedef struct { typedef struct {
UINT8 Device; UINT8 Device;
UINT8 Function; UINT8 Function;
} EFI_ACPI_DMAR_PCI_PATH; } EFI_ACPI_DMAR_PCI_PATH;
/// ///
/// Device Scope Structure is defined in section 8.3.1 /// Device Scope Structure is defined in section 8.3.1
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT16 Reserved2; UINT16 Reserved2;
UINT8 EnumerationId; UINT8 EnumerationId;
UINT8 StartBusNumber; UINT8 StartBusNumber;
} EFI_ACPI_DMAR_DEVICE_SCOPE_STRUCTURE_HEADER; } EFI_ACPI_DMAR_DEVICE_SCOPE_STRUCTURE_HEADER;
/** /**
@ -96,7 +97,8 @@ typedef struct {
for each PCI segment in the platform. for each PCI segment in the platform.
**/ **/
typedef struct { typedef struct {
EFI_ACPI_DMAR_STRUCTURE_HEADER Header; EFI_ACPI_DMAR_STRUCTURE_HEADER Header;
/** /**
- Bit[0]: INCLUDE_PCI_ALL - Bit[0]: INCLUDE_PCI_ALL
- If Set, this remapping hardware unit has under its scope all - If Set, this remapping hardware unit has under its scope all
@ -108,16 +110,16 @@ typedef struct {
through the DeviceScope field. through the DeviceScope field.
- Bits[7:1] Reserved. - Bits[7:1] Reserved.
**/ **/
UINT8 Flags; UINT8 Flags;
UINT8 Reserved; UINT8 Reserved;
/// ///
/// The PCI Segment associated with this unit. /// The PCI Segment associated with this unit.
/// ///
UINT16 SegmentNumber; UINT16 SegmentNumber;
/// ///
/// Base address of remapping hardware register-set for this unit. /// Base address of remapping hardware register-set for this unit.
/// ///
UINT64 RegisterBaseAddress; UINT64 RegisterBaseAddress;
} EFI_ACPI_DMAR_DRHD_HEADER; } EFI_ACPI_DMAR_DRHD_HEADER;
/** /**
@ -127,24 +129,25 @@ typedef struct {
reserved memory region. reserved memory region.
**/ **/
typedef struct { typedef struct {
EFI_ACPI_DMAR_STRUCTURE_HEADER Header; EFI_ACPI_DMAR_STRUCTURE_HEADER Header;
UINT8 Reserved[2]; UINT8 Reserved[2];
/// ///
/// PCI Segment Number associated with devices identified through /// PCI Segment Number associated with devices identified through
/// the Device Scope field. /// the Device Scope field.
/// ///
UINT16 SegmentNumber; UINT16 SegmentNumber;
/// ///
/// Base address of 4KB-aligned reserved memory region /// Base address of 4KB-aligned reserved memory region
/// ///
UINT64 ReservedMemoryRegionBaseAddress; UINT64 ReservedMemoryRegionBaseAddress;
/** /**
Last address of the reserved memory region. Value in this field must be Last address of the reserved memory region. Value in this field must be
greater than the value in Reserved Memory Region Base Address field. greater than the value in Reserved Memory Region Base Address field.
The reserved memory region size (Limit - Base + 1) must be an integer The reserved memory region size (Limit - Base + 1) must be an integer
multiple of 4KB. multiple of 4KB.
**/ **/
UINT64 ReservedMemoryRegionLimitAddress; UINT64 ReservedMemoryRegionLimitAddress;
} EFI_ACPI_DMAR_RMRR_HEADER; } EFI_ACPI_DMAR_RMRR_HEADER;
/** /**
@ -158,7 +161,8 @@ typedef struct {
ATS transactions. ATS transactions.
**/ **/
typedef struct { typedef struct {
EFI_ACPI_DMAR_STRUCTURE_HEADER Header; EFI_ACPI_DMAR_STRUCTURE_HEADER Header;
/** /**
- Bit[0]: ALL_PORTS: - Bit[0]: ALL_PORTS:
- If Set, indicates all PCI Express Root Ports in the specified - If Set, indicates all PCI Express Root Ports in the specified
@ -167,12 +171,12 @@ typedef struct {
Root Ports identified through the Device Scope field. Root Ports identified through the Device Scope field.
- Bits[7:1] Reserved. - Bits[7:1] Reserved.
**/ **/
UINT8 Flags; UINT8 Flags;
UINT8 Reserved; UINT8 Reserved;
/// ///
/// The PCI Segment associated with this ATSR structure /// The PCI Segment associated with this ATSR structure
/// ///
UINT16 SegmentNumber; UINT16 SegmentNumber;
} EFI_ACPI_DMAR_ATSR_HEADER; } EFI_ACPI_DMAR_ATSR_HEADER;
/** /**
@ -183,18 +187,18 @@ typedef struct {
reported through DRHD structure. reported through DRHD structure.
**/ **/
typedef struct { typedef struct {
EFI_ACPI_DMAR_STRUCTURE_HEADER Header; EFI_ACPI_DMAR_STRUCTURE_HEADER Header;
UINT8 Reserved[4]; UINT8 Reserved[4];
/// ///
/// Register Base Address of this Remap hardware unit reported in the /// Register Base Address of this Remap hardware unit reported in the
/// corresponding DRHD structure. /// corresponding DRHD structure.
/// ///
UINT64 RegisterBaseAddress; UINT64 RegisterBaseAddress;
/// ///
/// Proximity Domain to which the Remap hardware unit identified by the /// Proximity Domain to which the Remap hardware unit identified by the
/// Register Base Address field belongs. /// Register Base Address field belongs.
/// ///
UINT32 ProximityDomain; UINT32 ProximityDomain;
} EFI_ACPI_DMAR_RHSA_HEADER; } EFI_ACPI_DMAR_RHSA_HEADER;
/** /**
@ -204,8 +208,9 @@ typedef struct {
with Device-Scope entries of type ACPI_NAMESPACE_DEVICE. with Device-Scope entries of type ACPI_NAMESPACE_DEVICE.
**/ **/
typedef struct { typedef struct {
EFI_ACPI_DMAR_STRUCTURE_HEADER Header; EFI_ACPI_DMAR_STRUCTURE_HEADER Header;
UINT8 Reserved[3]; UINT8 Reserved[3];
/** /**
Each ACPI device enumerated through an ANDD structure must have a unique Each ACPI device enumerated through an ANDD structure must have a unique
value for this field. To report an ACPI device with ACPI Device Number value for this field. To report an ACPI device with ACPI Device Number
@ -214,7 +219,7 @@ typedef struct {
The Start Bus Number and Path fields in the Device-Scope together The Start Bus Number and Path fields in the Device-Scope together
provides the 16-bit source-id allocated by platform for the ACPI device. provides the 16-bit source-id allocated by platform for the ACPI device.
**/ **/
UINT8 AcpiDeviceNumber; UINT8 AcpiDeviceNumber;
} EFI_ACPI_DMAR_ANDD_HEADER; } EFI_ACPI_DMAR_ANDD_HEADER;
/** /**
@ -222,7 +227,8 @@ typedef struct {
defined in section 8.8. defined in section 8.8.
**/ **/
typedef struct { typedef struct {
EFI_ACPI_DMAR_STRUCTURE_HEADER Header; EFI_ACPI_DMAR_STRUCTURE_HEADER Header;
/** /**
- Bit[0]: ATC_REQUIRED: - Bit[0]: ATC_REQUIRED:
- If Set, indicates that every SoC integrated device enumerated - If Set, indicates that every SoC integrated device enumerated
@ -233,14 +239,14 @@ typedef struct {
performance or functionality). performance or functionality).
- Bits[7:1] Reserved. - Bits[7:1] Reserved.
**/ **/
UINT8 Flags; UINT8 Flags;
UINT8 Reserved; UINT8 Reserved;
/// ///
/// The PCI Segment associated with this SATC structure. All SoC integrated /// The PCI Segment associated with this SATC structure. All SoC integrated
/// devices within a PCI segment with same value for Flags field must be /// devices within a PCI segment with same value for Flags field must be
/// enumerated in the same SATC structure. /// enumerated in the same SATC structure.
/// ///
UINT16 SegmentNumber; UINT16 SegmentNumber;
} EFI_ACPI_DMAR_SATC_HEADER; } EFI_ACPI_DMAR_SATC_HEADER;
/** /**
@ -257,7 +263,8 @@ typedef struct {
structures of type 1 (RMRR), and so forth. structures of type 1 (RMRR), and so forth.
**/ **/
typedef struct { typedef struct {
EFI_ACPI_DESCRIPTION_HEADER Header; EFI_ACPI_DESCRIPTION_HEADER Header;
/** /**
This field indicates the maximum DMA physical addressability supported by This field indicates the maximum DMA physical addressability supported by
this platform. The system address map reported by the BIOS indicates what this platform. The system address map reported by the BIOS indicates what
@ -267,7 +274,8 @@ typedef struct {
For example, for a platform supporting 40 bits of physical addressability, For example, for a platform supporting 40 bits of physical addressability,
the value of 100111b is reported in this field. the value of 100111b is reported in this field.
**/ **/
UINT8 HostAddressWidth; UINT8 HostAddressWidth;
/** /**
- Bit[0]: INTR_REMAP - If Clear, the platform does not support interrupt - Bit[0]: INTR_REMAP - If Clear, the platform does not support interrupt
remapping. If Set, the platform supports interrupt remapping. remapping. If Set, the platform supports interrupt remapping.
@ -282,8 +290,8 @@ typedef struct {
such as on ExitBootServices(). such as on ExitBootServices().
- Bits[7:3] Reserved. - Bits[7:3] Reserved.
**/ **/
UINT8 Flags; UINT8 Flags;
UINT8 Reserved[10]; UINT8 Reserved[10];
} EFI_ACPI_DMAR_HEADER; } EFI_ACPI_DMAR_HEADER;
#pragma pack() #pragma pack()

View File

@ -16,9 +16,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
// //
// CDROM_VOLUME_DESCRIPTOR.Types, defined in ISO 9660 // CDROM_VOLUME_DESCRIPTOR.Types, defined in ISO 9660
// //
#define CDVOL_TYPE_STANDARD 0x0 #define CDVOL_TYPE_STANDARD 0x0
#define CDVOL_TYPE_CODED 0x1 #define CDVOL_TYPE_CODED 0x1
#define CDVOL_TYPE_END 0xFF #define CDVOL_TYPE_END 0xFF
/// ///
/// CDROM_VOLUME_DESCRIPTOR.Id /// CDROM_VOLUME_DESCRIPTOR.Id
@ -28,7 +28,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
/// ///
/// CDROM_VOLUME_DESCRIPTOR.SystemId /// CDROM_VOLUME_DESCRIPTOR.SystemId
/// ///
#define CDVOL_ELTORITO_ID "EL TORITO SPECIFICATION" #define CDVOL_ELTORITO_ID "EL TORITO SPECIFICATION"
// //
// Indicator types // Indicator types
@ -42,12 +42,11 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
// //
// ELTORITO_CATALOG.Boot.MediaTypes // ELTORITO_CATALOG.Boot.MediaTypes
// //
#define ELTORITO_NO_EMULATION 0x00 #define ELTORITO_NO_EMULATION 0x00
#define ELTORITO_12_DISKETTE 0x01 #define ELTORITO_12_DISKETTE 0x01
#define ELTORITO_14_DISKETTE 0x02 #define ELTORITO_14_DISKETTE 0x02
#define ELTORITO_28_DISKETTE 0x03 #define ELTORITO_28_DISKETTE 0x03
#define ELTORITO_HARD_DISK 0x04 #define ELTORITO_HARD_DISK 0x04
#pragma pack(1) #pragma pack(1)
@ -56,38 +55,37 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
/// ///
typedef union { typedef union {
struct { struct {
UINT8 Type; UINT8 Type;
CHAR8 Id[5]; ///< "CD001" CHAR8 Id[5]; ///< "CD001"
CHAR8 Reserved[82]; CHAR8 Reserved[82];
} Unknown; } Unknown;
/// ///
/// Boot Record Volume Descriptor, defined in "El Torito" Specification. /// Boot Record Volume Descriptor, defined in "El Torito" Specification.
/// ///
struct { struct {
UINT8 Type; ///< Must be 0 UINT8 Type; ///< Must be 0
CHAR8 Id[5]; ///< "CD001" CHAR8 Id[5]; ///< "CD001"
UINT8 Version; ///< Must be 1 UINT8 Version; ///< Must be 1
CHAR8 SystemId[32]; ///< "EL TORITO SPECIFICATION" CHAR8 SystemId[32]; ///< "EL TORITO SPECIFICATION"
CHAR8 Unused[32]; ///< Must be 0 CHAR8 Unused[32]; ///< Must be 0
UINT8 EltCatalog[4]; ///< Absolute pointer to first sector of Boot Catalog UINT8 EltCatalog[4]; ///< Absolute pointer to first sector of Boot Catalog
CHAR8 Unused2[13]; ///< Must be 0 CHAR8 Unused2[13]; ///< Must be 0
} BootRecordVolume; } BootRecordVolume;
/// ///
/// Primary Volume Descriptor, defined in ISO 9660. /// Primary Volume Descriptor, defined in ISO 9660.
/// ///
struct { struct {
UINT8 Type; UINT8 Type;
CHAR8 Id[5]; ///< "CD001" CHAR8 Id[5]; ///< "CD001"
UINT8 Version; UINT8 Version;
UINT8 Unused; ///< Must be 0 UINT8 Unused; ///< Must be 0
CHAR8 SystemId[32]; CHAR8 SystemId[32];
CHAR8 VolumeId[32]; CHAR8 VolumeId[32];
UINT8 Unused2[8]; ///< Must be 0 UINT8 Unused2[8]; ///< Must be 0
UINT32 VolSpaceSize[2]; ///< the number of Logical Blocks UINT32 VolSpaceSize[2]; ///< the number of Logical Blocks
} PrimaryVolume; } PrimaryVolume;
} CDROM_VOLUME_DESCRIPTOR; } CDROM_VOLUME_DESCRIPTOR;
/// ///
@ -95,45 +93,44 @@ typedef union {
/// ///
typedef union { typedef union {
struct { struct {
CHAR8 Reserved[0x20]; CHAR8 Reserved[0x20];
} Unknown; } Unknown;
/// ///
/// Catalog validation entry (Catalog header) /// Catalog validation entry (Catalog header)
/// ///
struct { struct {
UINT8 Indicator; ///< Must be 01 UINT8 Indicator; ///< Must be 01
UINT8 PlatformId; UINT8 PlatformId;
UINT16 Reserved; UINT16 Reserved;
CHAR8 ManufacId[24]; CHAR8 ManufacId[24];
UINT16 Checksum; UINT16 Checksum;
UINT16 Id55AA; UINT16 Id55AA;
} Catalog; } Catalog;
/// ///
/// Initial/Default Entry or Section Entry /// Initial/Default Entry or Section Entry
/// ///
struct { struct {
UINT8 Indicator; ///< 88 = Bootable, 00 = Not Bootable UINT8 Indicator; ///< 88 = Bootable, 00 = Not Bootable
UINT8 MediaType : 4; UINT8 MediaType : 4;
UINT8 Reserved1 : 4; ///< Must be 0 UINT8 Reserved1 : 4; ///< Must be 0
UINT16 LoadSegment; UINT16 LoadSegment;
UINT8 SystemType; UINT8 SystemType;
UINT8 Reserved2; ///< Must be 0 UINT8 Reserved2; ///< Must be 0
UINT16 SectorCount; UINT16 SectorCount;
UINT32 Lba; UINT32 Lba;
} Boot; } Boot;
/// ///
/// Section Header Entry /// Section Header Entry
/// ///
struct { struct {
UINT8 Indicator; ///< 90 - Header, more header follw, 91 - Final Header UINT8 Indicator; ///< 90 - Header, more header follw, 91 - Final Header
UINT8 PlatformId; UINT8 PlatformId;
UINT16 SectionEntries; ///< Number of section entries following this header UINT16 SectionEntries; ///< Number of section entries following this header
CHAR8 Id[28]; CHAR8 Id[28];
} Section; } Section;
} ELTORITO_CATALOG; } ELTORITO_CATALOG;
#pragma pack() #pragma pack()

View File

@ -14,276 +14,276 @@
// //
// EMMC command index // EMMC command index
// //
#define EMMC_GO_IDLE_STATE 0 #define EMMC_GO_IDLE_STATE 0
#define EMMC_SEND_OP_COND 1 #define EMMC_SEND_OP_COND 1
#define EMMC_ALL_SEND_CID 2 #define EMMC_ALL_SEND_CID 2
#define EMMC_SET_RELATIVE_ADDR 3 #define EMMC_SET_RELATIVE_ADDR 3
#define EMMC_SET_DSR 4 #define EMMC_SET_DSR 4
#define EMMC_SLEEP_AWAKE 5 #define EMMC_SLEEP_AWAKE 5
#define EMMC_SWITCH 6 #define EMMC_SWITCH 6
#define EMMC_SELECT_DESELECT_CARD 7 #define EMMC_SELECT_DESELECT_CARD 7
#define EMMC_SEND_EXT_CSD 8 #define EMMC_SEND_EXT_CSD 8
#define EMMC_SEND_CSD 9 #define EMMC_SEND_CSD 9
#define EMMC_SEND_CID 10 #define EMMC_SEND_CID 10
#define EMMC_STOP_TRANSMISSION 12 #define EMMC_STOP_TRANSMISSION 12
#define EMMC_SEND_STATUS 13 #define EMMC_SEND_STATUS 13
#define EMMC_BUSTEST_R 14 #define EMMC_BUSTEST_R 14
#define EMMC_GO_INACTIVE_STATE 15 #define EMMC_GO_INACTIVE_STATE 15
#define EMMC_SET_BLOCKLEN 16 #define EMMC_SET_BLOCKLEN 16
#define EMMC_READ_SINGLE_BLOCK 17 #define EMMC_READ_SINGLE_BLOCK 17
#define EMMC_READ_MULTIPLE_BLOCK 18 #define EMMC_READ_MULTIPLE_BLOCK 18
#define EMMC_BUSTEST_W 19 #define EMMC_BUSTEST_W 19
#define EMMC_SEND_TUNING_BLOCK 21 #define EMMC_SEND_TUNING_BLOCK 21
#define EMMC_SET_BLOCK_COUNT 23 #define EMMC_SET_BLOCK_COUNT 23
#define EMMC_WRITE_BLOCK 24 #define EMMC_WRITE_BLOCK 24
#define EMMC_WRITE_MULTIPLE_BLOCK 25 #define EMMC_WRITE_MULTIPLE_BLOCK 25
#define EMMC_PROGRAM_CID 26 #define EMMC_PROGRAM_CID 26
#define EMMC_PROGRAM_CSD 27 #define EMMC_PROGRAM_CSD 27
#define EMMC_SET_WRITE_PROT 28 #define EMMC_SET_WRITE_PROT 28
#define EMMC_CLR_WRITE_PROT 29 #define EMMC_CLR_WRITE_PROT 29
#define EMMC_SEND_WRITE_PROT 30 #define EMMC_SEND_WRITE_PROT 30
#define EMMC_SEND_WRITE_PROT_TYPE 31 #define EMMC_SEND_WRITE_PROT_TYPE 31
#define EMMC_ERASE_GROUP_START 35 #define EMMC_ERASE_GROUP_START 35
#define EMMC_ERASE_GROUP_END 36 #define EMMC_ERASE_GROUP_END 36
#define EMMC_ERASE 38 #define EMMC_ERASE 38
#define EMMC_FAST_IO 39 #define EMMC_FAST_IO 39
#define EMMC_GO_IRQ_STATE 40 #define EMMC_GO_IRQ_STATE 40
#define EMMC_LOCK_UNLOCK 42 #define EMMC_LOCK_UNLOCK 42
#define EMMC_SET_TIME 49 #define EMMC_SET_TIME 49
#define EMMC_PROTOCOL_RD 53 #define EMMC_PROTOCOL_RD 53
#define EMMC_PROTOCOL_WR 54 #define EMMC_PROTOCOL_WR 54
#define EMMC_APP_CMD 55 #define EMMC_APP_CMD 55
#define EMMC_GEN_CMD 56 #define EMMC_GEN_CMD 56
typedef enum { typedef enum {
EmmcPartitionUserData = 0, EmmcPartitionUserData = 0,
EmmcPartitionBoot1 = 1, EmmcPartitionBoot1 = 1,
EmmcPartitionBoot2 = 2, EmmcPartitionBoot2 = 2,
EmmcPartitionRPMB = 3, EmmcPartitionRPMB = 3,
EmmcPartitionGP1 = 4, EmmcPartitionGP1 = 4,
EmmcPartitionGP2 = 5, EmmcPartitionGP2 = 5,
EmmcPartitionGP3 = 6, EmmcPartitionGP3 = 6,
EmmcPartitionGP4 = 7, EmmcPartitionGP4 = 7,
EmmcPartitionUnknown EmmcPartitionUnknown
} EMMC_PARTITION_TYPE; } EMMC_PARTITION_TYPE;
#pragma pack(1) #pragma pack(1)
typedef struct { typedef struct {
UINT8 NotUsed:1; // Not used [0:0] UINT8 NotUsed : 1; // Not used [0:0]
UINT8 Crc:7; // CRC [7:1] UINT8 Crc : 7; // CRC [7:1]
UINT8 ManufacturingDate; // Manufacturing date [15:8] UINT8 ManufacturingDate; // Manufacturing date [15:8]
UINT8 ProductSerialNumber[4]; // Product serial number [47:16] UINT8 ProductSerialNumber[4]; // Product serial number [47:16]
UINT8 ProductRevision; // Product revision [55:48] UINT8 ProductRevision; // Product revision [55:48]
UINT8 ProductName[6]; // Product name [103:56] UINT8 ProductName[6]; // Product name [103:56]
UINT8 OemId; // OEM/Application ID [111:104] UINT8 OemId; // OEM/Application ID [111:104]
UINT8 DeviceType:2; // Device/BGA [113:112] UINT8 DeviceType : 2; // Device/BGA [113:112]
UINT8 Reserved:6; // Reserved [119:114] UINT8 Reserved : 6; // Reserved [119:114]
UINT8 ManufacturerId; // Manufacturer ID [127:120] UINT8 ManufacturerId; // Manufacturer ID [127:120]
} EMMC_CID; } EMMC_CID;
typedef struct { typedef struct {
UINT32 NotUsed:1; // Not used [0:0] UINT32 NotUsed : 1; // Not used [0:0]
UINT32 Crc:7; // CRC [7:1] UINT32 Crc : 7; // CRC [7:1]
UINT32 Ecc:2; // ECC code [9:8] UINT32 Ecc : 2; // ECC code [9:8]
UINT32 FileFormat:2; // File format [11:10] UINT32 FileFormat : 2; // File format [11:10]
UINT32 TmpWriteProtect:1; // Temporary write protection [12:12] UINT32 TmpWriteProtect : 1; // Temporary write protection [12:12]
UINT32 PermWriteProtect:1; // Permanent write protection [13:13] UINT32 PermWriteProtect : 1; // Permanent write protection [13:13]
UINT32 Copy:1; // Copy flag (OTP) [14:14] UINT32 Copy : 1; // Copy flag (OTP) [14:14]
UINT32 FileFormatGrp:1; // File format group [15:15] UINT32 FileFormatGrp : 1; // File format group [15:15]
UINT32 ContentProtApp:1; // Content protection application [16:16] UINT32 ContentProtApp : 1; // Content protection application [16:16]
UINT32 Reserved:4; // Reserved [20:17] UINT32 Reserved : 4; // Reserved [20:17]
UINT32 WriteBlPartial:1; // Partial blocks for write allowed [21:21] UINT32 WriteBlPartial : 1; // Partial blocks for write allowed [21:21]
UINT32 WriteBlLen:4; // Max. write data block length [25:22] UINT32 WriteBlLen : 4; // Max. write data block length [25:22]
UINT32 R2WFactor:3; // Write speed factor [28:26] UINT32 R2WFactor : 3; // Write speed factor [28:26]
UINT32 DefaultEcc:2; // Manufacturer default ECC [30:29] UINT32 DefaultEcc : 2; // Manufacturer default ECC [30:29]
UINT32 WpGrpEnable:1; // Write protect group enable [31:31] UINT32 WpGrpEnable : 1; // Write protect group enable [31:31]
UINT32 WpGrpSize:5; // Write protect group size [36:32] UINT32 WpGrpSize : 5; // Write protect group size [36:32]
UINT32 EraseGrpMult:5; // Erase group size multiplier [41:37] UINT32 EraseGrpMult : 5; // Erase group size multiplier [41:37]
UINT32 EraseGrpSize:5; // Erase group size [46:42] UINT32 EraseGrpSize : 5; // Erase group size [46:42]
UINT32 CSizeMult:3; // Device size multiplier [49:47] UINT32 CSizeMult : 3; // Device size multiplier [49:47]
UINT32 VddWCurrMax:3; // Max. write current @ VDD max [52:50] UINT32 VddWCurrMax : 3; // Max. write current @ VDD max [52:50]
UINT32 VddWCurrMin:3; // Max. write current @ VDD min [55:53] UINT32 VddWCurrMin : 3; // Max. write current @ VDD min [55:53]
UINT32 VddRCurrMax:3; // Max. read current @ VDD max [58:56] UINT32 VddRCurrMax : 3; // Max. read current @ VDD max [58:56]
UINT32 VddRCurrMin:3; // Max. read current @ VDD min [61:59] UINT32 VddRCurrMin : 3; // Max. read current @ VDD min [61:59]
UINT32 CSizeLow:2; // Device size low two bits [63:62] UINT32 CSizeLow : 2; // Device size low two bits [63:62]
UINT32 CSizeHigh:10; // Device size high eight bits [73:64] UINT32 CSizeHigh : 10; // Device size high eight bits [73:64]
UINT32 Reserved1:2; // Reserved [75:74] UINT32 Reserved1 : 2; // Reserved [75:74]
UINT32 DsrImp:1; // DSR implemented [76:76] UINT32 DsrImp : 1; // DSR implemented [76:76]
UINT32 ReadBlkMisalign:1; // Read block misalignment [77:77] UINT32 ReadBlkMisalign : 1; // Read block misalignment [77:77]
UINT32 WriteBlkMisalign:1; // Write block misalignment [78:78] UINT32 WriteBlkMisalign : 1; // Write block misalignment [78:78]
UINT32 ReadBlPartial:1; // Partial blocks for read allowed [79:79] UINT32 ReadBlPartial : 1; // Partial blocks for read allowed [79:79]
UINT32 ReadBlLen:4; // Max. read data block length [83:80] UINT32 ReadBlLen : 4; // Max. read data block length [83:80]
UINT32 Ccc:12; // Device command classes [95:84] UINT32 Ccc : 12; // Device command classes [95:84]
UINT32 TranSpeed:8; // Max. bus clock frequency [103:96] UINT32 TranSpeed : 8; // Max. bus clock frequency [103:96]
UINT32 Nsac:8; // Data read access-time 2 in CLK cycles (NSAC*100) [111:104] UINT32 Nsac : 8; // Data read access-time 2 in CLK cycles (NSAC*100) [111:104]
UINT32 Taac:8; // Data read access-time 1 [119:112] UINT32 Taac : 8; // Data read access-time 1 [119:112]
UINT32 Reserved2:2; // Reserved [121:120] UINT32 Reserved2 : 2; // Reserved [121:120]
UINT32 SpecVers:4; // System specification version [125:122] UINT32 SpecVers : 4; // System specification version [125:122]
UINT32 CsdStructure:2; // CSD structure [127:126] UINT32 CsdStructure : 2; // CSD structure [127:126]
} EMMC_CSD; } EMMC_CSD;
typedef struct { typedef struct {
// //
// Modes Segment // Modes Segment
// //
UINT8 Reserved[16]; // Reserved [15:0] UINT8 Reserved[16]; // Reserved [15:0]
UINT8 SecureRemovalType; // Secure Removal Type R/W & R [16] UINT8 SecureRemovalType; // Secure Removal Type R/W & R [16]
UINT8 ProductStateAwarenessEnablement; // Product state awareness enablement R/W/E & R [17] UINT8 ProductStateAwarenessEnablement; // Product state awareness enablement R/W/E & R [17]
UINT8 MaxPreLoadingDataSize[4]; // Max pre loading data size R [21:18] UINT8 MaxPreLoadingDataSize[4]; // Max pre loading data size R [21:18]
UINT8 PreLoadingDataSize[4]; // Pre loading data size R/W/EP [25:22] UINT8 PreLoadingDataSize[4]; // Pre loading data size R/W/EP [25:22]
UINT8 FfuStatus; // FFU status R [26] UINT8 FfuStatus; // FFU status R [26]
UINT8 Reserved1[2]; // Reserved [28:27] UINT8 Reserved1[2]; // Reserved [28:27]
UINT8 ModeOperationCodes; // Mode operation codes W/EP [29] UINT8 ModeOperationCodes; // Mode operation codes W/EP [29]
UINT8 ModeConfig; // Mode config R/W/EP [30] UINT8 ModeConfig; // Mode config R/W/EP [30]
UINT8 Reserved2; // Reserved [31] UINT8 Reserved2; // Reserved [31]
UINT8 FlushCache; // Flushing of the cache W/EP [32] UINT8 FlushCache; // Flushing of the cache W/EP [32]
UINT8 CacheCtrl; // Control to turn the Cache ON/OFF R/W/EP [33] UINT8 CacheCtrl; // Control to turn the Cache ON/OFF R/W/EP [33]
UINT8 PowerOffNotification; // Power Off Notification R/W/EP [34] UINT8 PowerOffNotification; // Power Off Notification R/W/EP [34]
UINT8 PackedFailureIndex; // Packed command failure index R [35] UINT8 PackedFailureIndex; // Packed command failure index R [35]
UINT8 PackedCommandStatus; // Packed command status R [36] UINT8 PackedCommandStatus; // Packed command status R [36]
UINT8 ContextConf[15]; // Context configuration R/W/EP [51:37] UINT8 ContextConf[15]; // Context configuration R/W/EP [51:37]
UINT8 ExtPartitionsAttribute[2]; // Extended Partitions Attribute R/W [53:52] UINT8 ExtPartitionsAttribute[2]; // Extended Partitions Attribute R/W [53:52]
UINT8 ExceptionEventsStatus[2]; // Exception events status R [55:54] UINT8 ExceptionEventsStatus[2]; // Exception events status R [55:54]
UINT8 ExceptionEventsCtrl[2]; // Exception events control R/W/EP [57:56] UINT8 ExceptionEventsCtrl[2]; // Exception events control R/W/EP [57:56]
UINT8 DyncapNeeded; // Number of addressed group to be Released R [58] UINT8 DyncapNeeded; // Number of addressed group to be Released R [58]
UINT8 Class6Ctrl; // Class 6 commands control R/W/EP [59] UINT8 Class6Ctrl; // Class 6 commands control R/W/EP [59]
UINT8 IniTimeoutEmu; // 1st initialization after disabling sector size emulation R [60] UINT8 IniTimeoutEmu; // 1st initialization after disabling sector size emulation R [60]
UINT8 DataSectorSize; // Sector size R [61] UINT8 DataSectorSize; // Sector size R [61]
UINT8 UseNativeSector; // Sector size emulation R/W [62] UINT8 UseNativeSector; // Sector size emulation R/W [62]
UINT8 NativeSectorSize; // Native sector size R [63] UINT8 NativeSectorSize; // Native sector size R [63]
UINT8 VendorSpecificField[64]; // Vendor Specific Fields <vendor specific> [127:64] UINT8 VendorSpecificField[64]; // Vendor Specific Fields <vendor specific> [127:64]
UINT8 Reserved3[2]; // Reserved [129:128] UINT8 Reserved3[2]; // Reserved [129:128]
UINT8 ProgramCidCsdDdrSupport; // Program CID/CSD in DDR mode support R [130] UINT8 ProgramCidCsdDdrSupport; // Program CID/CSD in DDR mode support R [130]
UINT8 PeriodicWakeup; // Periodic Wake-up R/W/E [131] UINT8 PeriodicWakeup; // Periodic Wake-up R/W/E [131]
UINT8 TcaseSupport; // Package Case Temperature is controlled W/EP [132] UINT8 TcaseSupport; // Package Case Temperature is controlled W/EP [132]
UINT8 ProductionStateAwareness; // Production state awareness R/W/E [133] UINT8 ProductionStateAwareness; // Production state awareness R/W/E [133]
UINT8 SecBadBlkMgmnt; // Bad Block Management mode R/W [134] UINT8 SecBadBlkMgmnt; // Bad Block Management mode R/W [134]
UINT8 Reserved4; // Reserved [135] UINT8 Reserved4; // Reserved [135]
UINT8 EnhStartAddr[4]; // Enhanced User Data Start Address R/W [139:136] UINT8 EnhStartAddr[4]; // Enhanced User Data Start Address R/W [139:136]
UINT8 EnhSizeMult[3]; // Enhanced User Data Area Size R/W [142:140] UINT8 EnhSizeMult[3]; // Enhanced User Data Area Size R/W [142:140]
UINT8 GpSizeMult[12]; // General Purpose Partition Size R/W [154:143] UINT8 GpSizeMult[12]; // General Purpose Partition Size R/W [154:143]
UINT8 PartitionSettingCompleted; // Partitioning Setting R/W [155] UINT8 PartitionSettingCompleted; // Partitioning Setting R/W [155]
UINT8 PartitionsAttribute; // Partitions attribute R/W [156] UINT8 PartitionsAttribute; // Partitions attribute R/W [156]
UINT8 MaxEnhSizeMult[3]; // Max Enhanced Area Size R [159:157] UINT8 MaxEnhSizeMult[3]; // Max Enhanced Area Size R [159:157]
UINT8 PartitioningSupport; // Partitioning Support R [160] UINT8 PartitioningSupport; // Partitioning Support R [160]
UINT8 HpiMgmt; // HPI management R/W/EP [161] UINT8 HpiMgmt; // HPI management R/W/EP [161]
UINT8 RstFunction; // H/W reset function R/W [162] UINT8 RstFunction; // H/W reset function R/W [162]
UINT8 BkopsEn; // Enable background operations handshake R/W [163] UINT8 BkopsEn; // Enable background operations handshake R/W [163]
UINT8 BkopsStart; // Manually start background operations W/EP [164] UINT8 BkopsStart; // Manually start background operations W/EP [164]
UINT8 SanitizeStart; // Start Sanitize operation W/EP [165] UINT8 SanitizeStart; // Start Sanitize operation W/EP [165]
UINT8 WrRelParam; // Write reliability parameter register R [166] UINT8 WrRelParam; // Write reliability parameter register R [166]
UINT8 WrRelSet; // Write reliability setting register R/W [167] UINT8 WrRelSet; // Write reliability setting register R/W [167]
UINT8 RpmbSizeMult; // RPMB Size R [168] UINT8 RpmbSizeMult; // RPMB Size R [168]
UINT8 FwConfig; // FW configuration R/W [169] UINT8 FwConfig; // FW configuration R/W [169]
UINT8 Reserved5; // Reserved [170] UINT8 Reserved5; // Reserved [170]
UINT8 UserWp; // User area write protection register R/W,R/W/CP&R/W/EP [171] UINT8 UserWp; // User area write protection register R/W,R/W/CP&R/W/EP [171]
UINT8 Reserved6; // Reserved [172] UINT8 Reserved6; // Reserved [172]
UINT8 BootWp; // Boot area write protection register R/W&R/W/CP[173] UINT8 BootWp; // Boot area write protection register R/W&R/W/CP[173]
UINT8 BootWpStatus; // Boot write protection status registers R [174] UINT8 BootWpStatus; // Boot write protection status registers R [174]
UINT8 EraseGroupDef; // High-density erase group definition R/W/EP [175] UINT8 EraseGroupDef; // High-density erase group definition R/W/EP [175]
UINT8 Reserved7; // Reserved [176] UINT8 Reserved7; // Reserved [176]
UINT8 BootBusConditions; // Boot bus Conditions R/W/E [177] UINT8 BootBusConditions; // Boot bus Conditions R/W/E [177]
UINT8 BootConfigProt; // Boot config protection R/W&R/W/CP[178] UINT8 BootConfigProt; // Boot config protection R/W&R/W/CP[178]
UINT8 PartitionConfig; // Partition configuration R/W/E&R/W/EP[179] UINT8 PartitionConfig; // Partition configuration R/W/E&R/W/EP[179]
UINT8 Reserved8; // Reserved [180] UINT8 Reserved8; // Reserved [180]
UINT8 ErasedMemCont; // Erased memory content R [181] UINT8 ErasedMemCont; // Erased memory content R [181]
UINT8 Reserved9; // Reserved [182] UINT8 Reserved9; // Reserved [182]
UINT8 BusWidth; // Bus width mode W/EP [183] UINT8 BusWidth; // Bus width mode W/EP [183]
UINT8 Reserved10; // Reserved [184] UINT8 Reserved10; // Reserved [184]
UINT8 HsTiming; // High-speed interface timing R/W/EP [185] UINT8 HsTiming; // High-speed interface timing R/W/EP [185]
UINT8 Reserved11; // Reserved [186] UINT8 Reserved11; // Reserved [186]
UINT8 PowerClass; // Power class R/W/EP [187] UINT8 PowerClass; // Power class R/W/EP [187]
UINT8 Reserved12; // Reserved [188] UINT8 Reserved12; // Reserved [188]
UINT8 CmdSetRev; // Command set revision R [189] UINT8 CmdSetRev; // Command set revision R [189]
UINT8 Reserved13; // Reserved [190] UINT8 Reserved13; // Reserved [190]
UINT8 CmdSet; // Command set R/W/EP [191] UINT8 CmdSet; // Command set R/W/EP [191]
// //
// Properties Segment // Properties Segment
// //
UINT8 ExtCsdRev; // Extended CSD revision [192] UINT8 ExtCsdRev; // Extended CSD revision [192]
UINT8 Reserved14; // Reserved [193] UINT8 Reserved14; // Reserved [193]
UINT8 CsdStructure; // CSD STRUCTURE [194] UINT8 CsdStructure; // CSD STRUCTURE [194]
UINT8 Reserved15; // Reserved [195] UINT8 Reserved15; // Reserved [195]
UINT8 DeviceType; // Device type [196] UINT8 DeviceType; // Device type [196]
UINT8 DriverStrength; // I/O Driver Strength [197] UINT8 DriverStrength; // I/O Driver Strength [197]
UINT8 OutOfInterruptTime; // Out-of-interrupt busy timing[198] UINT8 OutOfInterruptTime; // Out-of-interrupt busy timing[198]
UINT8 PartitionSwitchTime; // Partition switching timing [199] UINT8 PartitionSwitchTime; // Partition switching timing [199]
UINT8 PwrCl52M195V; // Power class for 52MHz at 1.95V [200] UINT8 PwrCl52M195V; // Power class for 52MHz at 1.95V [200]
UINT8 PwrCl26M195V; // Power class for 26MHz at 1.95V [201] UINT8 PwrCl26M195V; // Power class for 26MHz at 1.95V [201]
UINT8 PwrCl52M360V; // Power class for 52MHz at 3.6V [202] UINT8 PwrCl52M360V; // Power class for 52MHz at 3.6V [202]
UINT8 PwrCl26M360V; // Power class for 26MHz at 3.6V [203] UINT8 PwrCl26M360V; // Power class for 26MHz at 3.6V [203]
UINT8 Reserved16; // Reserved [204] UINT8 Reserved16; // Reserved [204]
UINT8 MinPerfR4B26M; // Minimum Read Performance for 4bit at 26MHz [205] UINT8 MinPerfR4B26M; // Minimum Read Performance for 4bit at 26MHz [205]
UINT8 MinPerfW4B26M; // Minimum Write Performance for 4bit at 26MHz [206] UINT8 MinPerfW4B26M; // Minimum Write Performance for 4bit at 26MHz [206]
UINT8 MinPerfR8B26M4B52M; // Minimum Read Performance for 8bit at 26MHz, for 4bit at 52MHz [207] UINT8 MinPerfR8B26M4B52M; // Minimum Read Performance for 8bit at 26MHz, for 4bit at 52MHz [207]
UINT8 MinPerfW8B26M4B52M; // Minimum Write Performance for 8bit at 26MHz, for 4bit at 52MHz [208] UINT8 MinPerfW8B26M4B52M; // Minimum Write Performance for 8bit at 26MHz, for 4bit at 52MHz [208]
UINT8 MinPerfR8B52M; // Minimum Read Performance for 8bit at 52MHz [209] UINT8 MinPerfR8B52M; // Minimum Read Performance for 8bit at 52MHz [209]
UINT8 MinPerfW8B52M; // Minimum Write Performance for 8bit at 52MHz [210] UINT8 MinPerfW8B52M; // Minimum Write Performance for 8bit at 52MHz [210]
UINT8 Reserved17; // Reserved [211] UINT8 Reserved17; // Reserved [211]
UINT8 SecCount[4]; // Sector Count [215:212] UINT8 SecCount[4]; // Sector Count [215:212]
UINT8 SleepNotificationTime; // Sleep Notification Timeout [216] UINT8 SleepNotificationTime; // Sleep Notification Timeout [216]
UINT8 SATimeout; // Sleep/awake timeout [217] UINT8 SATimeout; // Sleep/awake timeout [217]
UINT8 ProductionStateAwarenessTimeout; // Production state awareness timeout [218] UINT8 ProductionStateAwarenessTimeout; // Production state awareness timeout [218]
UINT8 SCVccq; // Sleep current (VCCQ) [219] UINT8 SCVccq; // Sleep current (VCCQ) [219]
UINT8 SCVcc; // Sleep current (VCC) [220] UINT8 SCVcc; // Sleep current (VCC) [220]
UINT8 HcWpGrpSize; // High-capacity write protect group size [221] UINT8 HcWpGrpSize; // High-capacity write protect group size [221]
UINT8 RelWrSecC; // Reliable write sector count [222] UINT8 RelWrSecC; // Reliable write sector count [222]
UINT8 EraseTimeoutMult; // High-capacity erase timeout [223] UINT8 EraseTimeoutMult; // High-capacity erase timeout [223]
UINT8 HcEraseGrpSize; // High-capacity erase unit size [224] UINT8 HcEraseGrpSize; // High-capacity erase unit size [224]
UINT8 AccSize; // Access size [225] UINT8 AccSize; // Access size [225]
UINT8 BootSizeMult; // Boot partition size [226] UINT8 BootSizeMult; // Boot partition size [226]
UINT8 Reserved18; // Reserved [227] UINT8 Reserved18; // Reserved [227]
UINT8 BootInfo; // Boot information [228] UINT8 BootInfo; // Boot information [228]
UINT8 SecTrimMult; // Secure TRIM Multiplier [229] UINT8 SecTrimMult; // Secure TRIM Multiplier [229]
UINT8 SecEraseMult; // Secure Erase Multiplier [230] UINT8 SecEraseMult; // Secure Erase Multiplier [230]
UINT8 SecFeatureSupport; // Secure Feature support [231] UINT8 SecFeatureSupport; // Secure Feature support [231]
UINT8 TrimMult; // TRIM Multiplier [232] UINT8 TrimMult; // TRIM Multiplier [232]
UINT8 Reserved19; // Reserved [233] UINT8 Reserved19; // Reserved [233]
UINT8 MinPerfDdrR8b52M; // Minimum Read Performance for 8bit at 52MHz in DDR mode [234] UINT8 MinPerfDdrR8b52M; // Minimum Read Performance for 8bit at 52MHz in DDR mode [234]
UINT8 MinPerfDdrW8b52M; // Minimum Write Performance for 8bit at 52MHz in DDR mode [235] UINT8 MinPerfDdrW8b52M; // Minimum Write Performance for 8bit at 52MHz in DDR mode [235]
UINT8 PwrCl200M130V; // Power class for 200MHz, at VCCQ=1.3V, VCC = 3.6V [236] UINT8 PwrCl200M130V; // Power class for 200MHz, at VCCQ=1.3V, VCC = 3.6V [236]
UINT8 PwrCl200M195V; // Power class for 200MHz at VCCQ=1.95V, VCC = 3.6V [237] UINT8 PwrCl200M195V; // Power class for 200MHz at VCCQ=1.95V, VCC = 3.6V [237]
UINT8 PwrClDdr52M195V; // Power class for 52MHz, DDR at VCC= 1.95V [238] UINT8 PwrClDdr52M195V; // Power class for 52MHz, DDR at VCC= 1.95V [238]
UINT8 PwrClDdr52M360V; // Power class for 52MHz, DDR at VCC= 3.6V [239] UINT8 PwrClDdr52M360V; // Power class for 52MHz, DDR at VCC= 3.6V [239]
UINT8 Reserved20; // Reserved [240] UINT8 Reserved20; // Reserved [240]
UINT8 IniTimeoutAp; // 1st initialization time after partitioning [241] UINT8 IniTimeoutAp; // 1st initialization time after partitioning [241]
UINT8 CorrectlyPrgSectorsNum[4]; // Number of correctly programmed sectors [245:242] UINT8 CorrectlyPrgSectorsNum[4]; // Number of correctly programmed sectors [245:242]
UINT8 BkopsStatus; // Background operations status [246] UINT8 BkopsStatus; // Background operations status [246]
UINT8 PowerOffLongTime; // Power off notification(long) timeout [247] UINT8 PowerOffLongTime; // Power off notification(long) timeout [247]
UINT8 GenericCmd6Time; // Generic CMD6 timeout [248] UINT8 GenericCmd6Time; // Generic CMD6 timeout [248]
UINT8 CacheSize[4]; // Cache size [252:249] UINT8 CacheSize[4]; // Cache size [252:249]
UINT8 PwrClDdr200M360V; // Power class for 200MHz, DDR at VCC= 3.6V [253] UINT8 PwrClDdr200M360V; // Power class for 200MHz, DDR at VCC= 3.6V [253]
UINT8 FirmwareVersion[8]; // Firmware version [261:254] UINT8 FirmwareVersion[8]; // Firmware version [261:254]
UINT8 DeviceVersion[2]; // Device version [263:262] UINT8 DeviceVersion[2]; // Device version [263:262]
UINT8 OptimalTrimUnitSize; // Optimal trim unit size[264] UINT8 OptimalTrimUnitSize; // Optimal trim unit size[264]
UINT8 OptimalWriteSize; // Optimal write size [265] UINT8 OptimalWriteSize; // Optimal write size [265]
UINT8 OptimalReadSize; // Optimal read size [266] UINT8 OptimalReadSize; // Optimal read size [266]
UINT8 PreEolInfo; // Pre EOL information [267] UINT8 PreEolInfo; // Pre EOL information [267]
UINT8 DeviceLifeTimeEstTypA; // Device life time estimation type A [268] UINT8 DeviceLifeTimeEstTypA; // Device life time estimation type A [268]
UINT8 DeviceLifeTimeEstTypB; // Device life time estimation type B [269] UINT8 DeviceLifeTimeEstTypB; // Device life time estimation type B [269]
UINT8 VendorProprietaryHealthReport[32]; // Vendor proprietary health report [301:270] UINT8 VendorProprietaryHealthReport[32]; // Vendor proprietary health report [301:270]
UINT8 NumOfFwSectorsProgrammed[4]; // Number of FW sectors correctly programmed [305:302] UINT8 NumOfFwSectorsProgrammed[4]; // Number of FW sectors correctly programmed [305:302]
UINT8 Reserved21[181]; // Reserved [486:306] UINT8 Reserved21[181]; // Reserved [486:306]
UINT8 FfuArg[4]; // FFU Argument [490:487] UINT8 FfuArg[4]; // FFU Argument [490:487]
UINT8 OperationCodeTimeout; // Operation codes timeout [491] UINT8 OperationCodeTimeout; // Operation codes timeout [491]
UINT8 FfuFeatures; // FFU features [492] UINT8 FfuFeatures; // FFU features [492]
UINT8 SupportedModes; // Supported modes [493] UINT8 SupportedModes; // Supported modes [493]
UINT8 ExtSupport; // Extended partitions attribute support [494] UINT8 ExtSupport; // Extended partitions attribute support [494]
UINT8 LargeUnitSizeM1; // Large Unit size [495] UINT8 LargeUnitSizeM1; // Large Unit size [495]
UINT8 ContextCapabilities; // Context management capabilities [496] UINT8 ContextCapabilities; // Context management capabilities [496]
UINT8 TagResSize; // Tag Resources Size [497] UINT8 TagResSize; // Tag Resources Size [497]
UINT8 TagUnitSize; // Tag Unit Size [498] UINT8 TagUnitSize; // Tag Unit Size [498]
UINT8 DataTagSupport; // Data Tag Support [499] UINT8 DataTagSupport; // Data Tag Support [499]
UINT8 MaxPackedWrites; // Max packed write commands [500] UINT8 MaxPackedWrites; // Max packed write commands [500]
UINT8 MaxPackedReads; // Max packed read commands[501] UINT8 MaxPackedReads; // Max packed read commands[501]
UINT8 BkOpsSupport; // Background operations support [502] UINT8 BkOpsSupport; // Background operations support [502]
UINT8 HpiFeatures; // HPI features [503] UINT8 HpiFeatures; // HPI features [503]
UINT8 SupportedCmdSet; // Supported Command Sets [504] UINT8 SupportedCmdSet; // Supported Command Sets [504]
UINT8 ExtSecurityErr; // Extended Security Commands Error [505] UINT8 ExtSecurityErr; // Extended Security Commands Error [505]
UINT8 Reserved22[6]; // Reserved [511:506] UINT8 Reserved22[6]; // Reserved [511:506]
} EMMC_EXT_CSD; } EMMC_EXT_CSD;
#pragma pack() #pragma pack()

View File

@ -21,27 +21,26 @@
/// ///
typedef union { typedef union {
struct { struct {
UINT32 Revision : 8; UINT32 Revision : 8;
UINT32 NumberOfTimers : 5; UINT32 NumberOfTimers : 5;
UINT32 CounterSize : 1; UINT32 CounterSize : 1;
UINT32 Reserved : 1; UINT32 Reserved : 1;
UINT32 LegacyRoute : 1; UINT32 LegacyRoute : 1;
UINT32 VendorId : 16; UINT32 VendorId : 16;
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_BLOCK_ID; } EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_BLOCK_ID;
/// ///
/// High Precision Event Timer Table header definition. /// High Precision Event Timer Table header definition.
/// ///
typedef struct { typedef struct {
EFI_ACPI_DESCRIPTION_HEADER Header; EFI_ACPI_DESCRIPTION_HEADER Header;
UINT32 EventTimerBlockId; UINT32 EventTimerBlockId;
EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE BaseAddressLower32Bit; EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE BaseAddressLower32Bit;
UINT8 HpetNumber; UINT8 HpetNumber;
UINT16 MainCounterMinimumClockTickInPeriodicMode; UINT16 MainCounterMinimumClockTickInPeriodicMode;
UINT8 PageProtectionAndOemAttribute; UINT8 PageProtectionAndOemAttribute;
} EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_TABLE_HEADER; } EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_TABLE_HEADER;
/// ///
@ -53,9 +52,9 @@ typedef struct {
// Page protection setting // Page protection setting
// Values 3 through 15 are reserved for use by the specification // Values 3 through 15 are reserved for use by the specification
// //
#define EFI_ACPI_NO_PAGE_PROTECTION 0 #define EFI_ACPI_NO_PAGE_PROTECTION 0
#define EFI_ACPI_4KB_PAGE_PROTECTION 1 #define EFI_ACPI_4KB_PAGE_PROTECTION 1
#define EFI_ACPI_64KB_PAGE_PROTECTION 2 #define EFI_ACPI_64KB_PAGE_PROTECTION 2
#pragma pack() #pragma pack()

View File

@ -15,18 +15,18 @@
#define ADAPTER_INFO_PLATFORM_SECURITY_GUID \ #define ADAPTER_INFO_PLATFORM_SECURITY_GUID \
{0x6be272c7, 0x1320, 0x4ccd, { 0x90, 0x17, 0xd4, 0x61, 0x2c, 0x01, 0x2b, 0x25 }} {0x6be272c7, 0x1320, 0x4ccd, { 0x90, 0x17, 0xd4, 0x61, 0x2c, 0x01, 0x2b, 0x25 }}
#define PLATFORM_SECURITY_VERSION_VNEXTCS 0x00000003 #define PLATFORM_SECURITY_VERSION_VNEXTCS 0x00000003
#define PLATFORM_SECURITY_ROLE_PLATFORM_REFERENCE 0x00000001 // IHV #define PLATFORM_SECURITY_ROLE_PLATFORM_REFERENCE 0x00000001 // IHV
#define PLATFORM_SECURITY_ROLE_PLATFORM_IBV 0x00000002 #define PLATFORM_SECURITY_ROLE_PLATFORM_IBV 0x00000002
#define PLATFORM_SECURITY_ROLE_IMPLEMENTOR_OEM 0x00000003 #define PLATFORM_SECURITY_ROLE_IMPLEMENTOR_OEM 0x00000003
#define PLATFORM_SECURITY_ROLE_IMPLEMENTOR_ODM 0x00000004 #define PLATFORM_SECURITY_ROLE_IMPLEMENTOR_ODM 0x00000004
typedef struct { typedef struct {
// //
// Return PLATFORM_SECURITY_VERSION_VNEXTCS // Return PLATFORM_SECURITY_VERSION_VNEXTCS
// //
UINT32 Version; UINT32 Version;
// //
// The role of the publisher of this interface. Reference platform designers // The role of the publisher of this interface. Reference platform designers
// such as IHVs and IBVs are expected to return PLATFORM_SECURITY_ROLE_PLATFORM_REFERENCE // such as IHVs and IBVs are expected to return PLATFORM_SECURITY_ROLE_PLATFORM_REFERENCE
@ -35,42 +35,42 @@ typedef struct {
// security features, then the platform implementers, OEMs and ODMs, will // security features, then the platform implementers, OEMs and ODMs, will
// need to publish this interface with a role of Implementer. // need to publish this interface with a role of Implementer.
// //
UINT32 Role; UINT32 Role;
// //
// Human readable vendor, model, & version of this implementation. // Human readable vendor, model, & version of this implementation.
// //
CHAR16 ImplementationID[256]; CHAR16 ImplementationID[256];
// //
// The size in bytes of the SecurityFeaturesRequired and SecurityFeaturesEnabled arrays. // The size in bytes of the SecurityFeaturesRequired and SecurityFeaturesEnabled arrays.
// The arrays must be the same size. // The arrays must be the same size.
// //
UINT32 SecurityFeaturesSize; UINT32 SecurityFeaturesSize;
// //
// IHV-defined bitfield corresponding to all security features which must be // IHV-defined bitfield corresponding to all security features which must be
// implemented to meet the security requirements defined by PLATFORM_SECURITY_VERSION Version. // implemented to meet the security requirements defined by PLATFORM_SECURITY_VERSION Version.
// //
//UINT8 SecurityFeaturesRequired[]; //Ignored for non-IHV // UINT8 SecurityFeaturesRequired[]; //Ignored for non-IHV
// //
// Publisher-defined bitfield corresponding to all security features which // Publisher-defined bitfield corresponding to all security features which
// have implemented programmatic tests in this module. // have implemented programmatic tests in this module.
// //
//UINT8 SecurityFeaturesImplemented[]; // UINT8 SecurityFeaturesImplemented[];
// //
// Publisher-defined bitfield corresponding to all security features which // Publisher-defined bitfield corresponding to all security features which
// have been verified implemented by this implementation. // have been verified implemented by this implementation.
// //
//UINT8 SecurityFeaturesVerified[]; // UINT8 SecurityFeaturesVerified[];
// //
// A Null-terminated string, one failure per line (CR/LF terminated), with a // A Null-terminated string, one failure per line (CR/LF terminated), with a
// unique identifier that the OEM/ODM can use to locate the documentation // unique identifier that the OEM/ODM can use to locate the documentation
// which will describe the steps to remediate the failure - a URL to the // which will describe the steps to remediate the failure - a URL to the
// documentation is recommended. // documentation is recommended.
// //
//CHAR16 ErrorString[]; // CHAR16 ErrorString[];
} ADAPTER_INFO_PLATFORM_SECURITY; } ADAPTER_INFO_PLATFORM_SECURITY;
#pragma pack() #pragma pack()
extern EFI_GUID gAdapterInfoPlatformSecurityGuid; extern EFI_GUID gAdapterInfoPlatformSecurityGuid;
#endif #endif

View File

@ -18,7 +18,7 @@
/// The version of an HTTP message is indicated by an HTTP-Version field /// The version of an HTTP message is indicated by an HTTP-Version field
/// in the first line of the message. /// in the first line of the message.
/// ///
#define HTTP_VERSION "HTTP/1.1" #define HTTP_VERSION "HTTP/1.1"
/// ///
/// HTTP Request Method definitions /// HTTP Request Method definitions
@ -26,15 +26,15 @@
/// The Method token indicates the method to be performed on the /// The Method token indicates the method to be performed on the
/// resource identified by the Request-URI. The method is case-sensitive. /// resource identified by the Request-URI. The method is case-sensitive.
/// ///
#define HTTP_METHOD_OPTIONS "OPTIONS" #define HTTP_METHOD_OPTIONS "OPTIONS"
#define HTTP_METHOD_GET "GET" #define HTTP_METHOD_GET "GET"
#define HTTP_METHOD_HEAD "HEAD" #define HTTP_METHOD_HEAD "HEAD"
#define HTTP_METHOD_POST "POST" #define HTTP_METHOD_POST "POST"
#define HTTP_METHOD_PUT "PUT" #define HTTP_METHOD_PUT "PUT"
#define HTTP_METHOD_DELETE "DELETE" #define HTTP_METHOD_DELETE "DELETE"
#define HTTP_METHOD_TRACE "TRACE" #define HTTP_METHOD_TRACE "TRACE"
#define HTTP_METHOD_CONNECT "CONNECT" #define HTTP_METHOD_CONNECT "CONNECT"
#define HTTP_METHOD_PATCH "PATCH" #define HTTP_METHOD_PATCH "PATCH"
/// ///
/// Connect method has maximum length according to EFI_HTTP_METHOD defined in /// Connect method has maximum length according to EFI_HTTP_METHOD defined in
@ -49,8 +49,7 @@
/// is specifically limited to a small set of desired types, as in the case of a request /// is specifically limited to a small set of desired types, as in the case of a request
/// for an in-line image. /// for an in-line image.
/// ///
#define HTTP_HEADER_ACCEPT "Accept" #define HTTP_HEADER_ACCEPT "Accept"
/// ///
/// Accept-Charset Request Header /// Accept-Charset Request Header
@ -59,7 +58,7 @@
/// more comprehensive or special-purpose character sets to signal that capability to a /// more comprehensive or special-purpose character sets to signal that capability to a
/// server which is capable of representing documents in those character sets. /// server which is capable of representing documents in those character sets.
/// ///
#define HTTP_HEADER_ACCEPT_CHARSET "Accept-Charset" #define HTTP_HEADER_ACCEPT_CHARSET "Accept-Charset"
/// ///
/// Accept-Language Request Header /// Accept-Language Request Header
@ -67,22 +66,21 @@
/// but restricts the set of natural languages that are preferred /// but restricts the set of natural languages that are preferred
/// as a response to the request. /// as a response to the request.
/// ///
#define HTTP_HEADER_ACCEPT_LANGUAGE "Accept-Language" #define HTTP_HEADER_ACCEPT_LANGUAGE "Accept-Language"
/// ///
/// Accept-Ranges Request Header /// Accept-Ranges Request Header
/// The Accept-Ranges response-header field allows the server to /// The Accept-Ranges response-header field allows the server to
/// indicate its acceptance of range requests for a resource: /// indicate its acceptance of range requests for a resource:
/// ///
#define HTTP_HEADER_ACCEPT_RANGES "Accept-Ranges" #define HTTP_HEADER_ACCEPT_RANGES "Accept-Ranges"
/// ///
/// Accept-Encoding Request Header /// Accept-Encoding Request Header
/// The Accept-Encoding request-header field is similar to Accept, /// The Accept-Encoding request-header field is similar to Accept,
/// but restricts the content-codings that are acceptable in the response. /// but restricts the content-codings that are acceptable in the response.
/// ///
#define HTTP_HEADER_ACCEPT_ENCODING "Accept-Encoding" #define HTTP_HEADER_ACCEPT_ENCODING "Accept-Encoding"
/// ///
/// Content-Encoding Header /// Content-Encoding Header
@ -93,42 +91,40 @@
/// is primarily used to allow a document to be compressed without losing the identity /// is primarily used to allow a document to be compressed without losing the identity
/// of its underlying media type. /// of its underlying media type.
/// ///
#define HTTP_HEADER_CONTENT_ENCODING "Content-Encoding" #define HTTP_HEADER_CONTENT_ENCODING "Content-Encoding"
/// ///
/// HTTP Content-Encoding Compression types /// HTTP Content-Encoding Compression types
/// ///
#define HTTP_CONTENT_ENCODING_IDENTITY "identity" /// No transformation is used. This is the default value for content coding. #define HTTP_CONTENT_ENCODING_IDENTITY "identity" /// No transformation is used. This is the default value for content coding.
#define HTTP_CONTENT_ENCODING_GZIP "gzip" /// Content-Encoding: GNU zip format (described in RFC 1952). #define HTTP_CONTENT_ENCODING_GZIP "gzip" /// Content-Encoding: GNU zip format (described in RFC 1952).
#define HTTP_CONTENT_ENCODING_COMPRESS "compress" /// encoding format produced by the common UNIX file compression program "compress". #define HTTP_CONTENT_ENCODING_COMPRESS "compress" /// encoding format produced by the common UNIX file compression program "compress".
#define HTTP_CONTENT_ENCODING_DEFLATE "deflate" /// The "zlib" format defined in RFC 1950 in combination with the "deflate" #define HTTP_CONTENT_ENCODING_DEFLATE "deflate" /// The "zlib" format defined in RFC 1950 in combination with the "deflate"
/// compression mechanism described in RFC 1951. /// compression mechanism described in RFC 1951.
/// ///
/// Content-Type Header /// Content-Type Header
/// The Content-Type entity-header field indicates the media type of the entity-body sent to /// The Content-Type entity-header field indicates the media type of the entity-body sent to
/// the recipient or, in the case of the HEAD method, the media type that would have been sent /// the recipient or, in the case of the HEAD method, the media type that would have been sent
/// had the request been a GET. /// had the request been a GET.
/// ///
#define HTTP_HEADER_CONTENT_TYPE "Content-Type" #define HTTP_HEADER_CONTENT_TYPE "Content-Type"
// //
// Common Media Types defined in http://www.iana.org/assignments/media-types/media-types.xhtml // Common Media Types defined in http://www.iana.org/assignments/media-types/media-types.xhtml
// //
#define HTTP_CONTENT_TYPE_APP_JSON "application/json" #define HTTP_CONTENT_TYPE_APP_JSON "application/json"
#define HTTP_CONTENT_TYPE_APP_OCTET_STREAM "application/octet-stream" #define HTTP_CONTENT_TYPE_APP_OCTET_STREAM "application/octet-stream"
#define HTTP_CONTENT_TYPE_TEXT_HTML "text/html" #define HTTP_CONTENT_TYPE_TEXT_HTML "text/html"
#define HTTP_CONTENT_TYPE_TEXT_PLAIN "text/plain" #define HTTP_CONTENT_TYPE_TEXT_PLAIN "text/plain"
#define HTTP_CONTENT_TYPE_TEXT_CSS "text/css" #define HTTP_CONTENT_TYPE_TEXT_CSS "text/css"
#define HTTP_CONTENT_TYPE_TEXT_XML "text/xml" #define HTTP_CONTENT_TYPE_TEXT_XML "text/xml"
#define HTTP_CONTENT_TYPE_IMAGE_GIF "image/gif"
#define HTTP_CONTENT_TYPE_IMAGE_JPEG "image/jpeg"
#define HTTP_CONTENT_TYPE_IMAGE_PNG "image/png"
#define HTTP_CONTENT_TYPE_IMAGE_SVG_XML "image/svg+xml"
#define HTTP_CONTENT_TYPE_IMAGE_GIF "image/gif"
#define HTTP_CONTENT_TYPE_IMAGE_JPEG "image/jpeg"
#define HTTP_CONTENT_TYPE_IMAGE_PNG "image/png"
#define HTTP_CONTENT_TYPE_IMAGE_SVG_XML "image/svg+xml"
/// ///
/// Content-Length Header /// Content-Length Header
@ -136,7 +132,7 @@
/// in decimal number of OCTETs, sent to the recipient or, in the case of the HEAD /// in decimal number of OCTETs, sent to the recipient or, in the case of the HEAD
/// method, the size of the entity-body that would have been sent had the request been a GET. /// method, the size of the entity-body that would have been sent had the request been a GET.
/// ///
#define HTTP_HEADER_CONTENT_LENGTH "Content-Length" #define HTTP_HEADER_CONTENT_LENGTH "Content-Length"
/// ///
/// Transfer-Encoding Header /// Transfer-Encoding Header
@ -145,12 +141,12 @@
/// and the recipient. This differs from the content-coding in that the transfer-coding /// and the recipient. This differs from the content-coding in that the transfer-coding
/// is a property of the message, not of the entity. /// is a property of the message, not of the entity.
/// ///
#define HTTP_HEADER_TRANSFER_ENCODING "Transfer-Encoding" #define HTTP_HEADER_TRANSFER_ENCODING "Transfer-Encoding"
#define HTTP_HEADER_TRANSFER_ENCODING_CHUNKED "chunked" #define HTTP_HEADER_TRANSFER_ENCODING_CHUNKED "chunked"
#define CHUNKED_TRANSFER_CODING_CR '\r' #define CHUNKED_TRANSFER_CODING_CR '\r'
#define CHUNKED_TRANSFER_CODING_LF '\n' #define CHUNKED_TRANSFER_CODING_LF '\n'
#define CHUNKED_TRANSFER_CODING_LAST_CHUNK '0' #define CHUNKED_TRANSFER_CODING_LAST_CHUNK '0'
#define CHUNKED_TRANSFER_CODING_EXTENSION_SEPARATOR ';' #define CHUNKED_TRANSFER_CODING_EXTENSION_SEPARATOR ';'
/// ///
/// User Agent Request Header /// User Agent Request Header
@ -164,7 +160,7 @@
/// By convention, the product tokens are listed in order of their significance for /// By convention, the product tokens are listed in order of their significance for
/// identifying the application. /// identifying the application.
/// ///
#define HTTP_HEADER_USER_AGENT "User-Agent" #define HTTP_HEADER_USER_AGENT "User-Agent"
/// ///
/// Host Request Header /// Host Request Header
@ -172,7 +168,7 @@
/// The Host request-header field specifies the Internet host and port number of the resource /// The Host request-header field specifies the Internet host and port number of the resource
/// being requested, as obtained from the original URI given by the user or referring resource /// being requested, as obtained from the original URI given by the user or referring resource
/// ///
#define HTTP_HEADER_HOST "Host" #define HTTP_HEADER_HOST "Host"
/// ///
/// Location Response Header /// Location Response Header
@ -183,7 +179,7 @@
/// the request. For 3xx responses, the location SHOULD indicate the server's preferred URI for /// the request. For 3xx responses, the location SHOULD indicate the server's preferred URI for
/// automatic redirection to the resource. The field value consists of a single absolute URI. /// automatic redirection to the resource. The field value consists of a single absolute URI.
/// ///
#define HTTP_HEADER_LOCATION "Location" #define HTTP_HEADER_LOCATION "Location"
/// ///
/// The If-Match request-header field is used with a method to make it conditional. /// The If-Match request-header field is used with a method to make it conditional.
@ -195,8 +191,7 @@
/// to prevent inadvertent modification of the wrong version of a resource. /// to prevent inadvertent modification of the wrong version of a resource.
/// As a special case, the value "*" matches any current entity of the resource. /// As a special case, the value "*" matches any current entity of the resource.
/// ///
#define HTTP_HEADER_IF_MATCH "If-Match" #define HTTP_HEADER_IF_MATCH "If-Match"
/// ///
/// The If-None-Match request-header field is used with a method to make it conditional. /// The If-None-Match request-header field is used with a method to make it conditional.
@ -207,9 +202,7 @@
/// to prevent a method (e.g. PUT) from inadvertently modifying an existing resource when the /// to prevent a method (e.g. PUT) from inadvertently modifying an existing resource when the
/// client believes that the resource does not exist. /// client believes that the resource does not exist.
/// ///
#define HTTP_HEADER_IF_NONE_MATCH "If-None-Match" #define HTTP_HEADER_IF_NONE_MATCH "If-None-Match"
/// ///
/// Authorization Request Header /// Authorization Request Header
@ -217,21 +210,21 @@
/// containing the authentication information of the user agent for /// containing the authentication information of the user agent for
/// the realm of the resource being requested. /// the realm of the resource being requested.
/// ///
#define HTTP_HEADER_AUTHORIZATION "Authorization" #define HTTP_HEADER_AUTHORIZATION "Authorization"
/// ///
/// ETAG Response Header /// ETAG Response Header
/// The ETag response-header field provides the current value of the entity tag /// The ETag response-header field provides the current value of the entity tag
/// for the requested variant. /// for the requested variant.
/// ///
#define HTTP_HEADER_ETAG "ETag" #define HTTP_HEADER_ETAG "ETag"
/// ///
/// Custom header field checked by the iLO web server to /// Custom header field checked by the iLO web server to
/// specify a client session key. /// specify a client session key.
/// Example: X-Auth-Token: 24de6b1f8fa147ad59f6452def628798 /// Example: X-Auth-Token: 24de6b1f8fa147ad59f6452def628798
/// ///
#define HTTP_HEADER_X_AUTH_TOKEN "X-Auth-Token" #define HTTP_HEADER_X_AUTH_TOKEN "X-Auth-Token"
/// ///
/// Expect Header /// Expect Header
@ -240,12 +233,12 @@
/// order to properly handle this request. The only such expectation /// order to properly handle this request. The only such expectation
/// defined by this specification is 100-continue. /// defined by this specification is 100-continue.
/// ///
#define HTTP_HEADER_EXPECT "Expect" #define HTTP_HEADER_EXPECT "Expect"
/// ///
/// Expect Header Value /// Expect Header Value
/// ///
#define HTTP_EXPECT_100_CONTINUE "100-continue" #define HTTP_EXPECT_100_CONTINUE "100-continue"
#pragma pack() #pragma pack()

View File

@ -10,18 +10,18 @@
#ifndef _ISCSI_BOOT_FIRMWARE_TABLE_H_ #ifndef _ISCSI_BOOT_FIRMWARE_TABLE_H_
#define _ISCSI_BOOT_FIRMWARE_TABLE_H_ #define _ISCSI_BOOT_FIRMWARE_TABLE_H_
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_REVISION 0x01 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_REVISION 0x01
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_ALIGNMENT 8 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_ALIGNMENT 8
/// ///
/// Structure Type/ID /// Structure Type/ID
/// ///
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_RESERVED_STRUCTURE_ID 0 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_RESERVED_STRUCTURE_ID 0
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE_ID 1 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE_ID 1
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_ID 2 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_ID 2
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_ID 3 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_ID 3
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_ID 4 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_ID 4
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_EXTERNSIONS_STRUCTURE_ID 5 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_EXTERNSIONS_STRUCTURE_ID 5
/// ///
/// from the definition of IP_PREFIX_ORIGIN Enumeration in MSDN, /// from the definition of IP_PREFIX_ORIGIN Enumeration in MSDN,
@ -42,57 +42,57 @@ typedef enum {
/// iBF Table Header /// iBF Table Header
/// ///
typedef struct { typedef struct {
UINT32 Signature; UINT32 Signature;
UINT32 Length; UINT32 Length;
UINT8 Revision; UINT8 Revision;
UINT8 Checksum; UINT8 Checksum;
UINT8 OemId[6]; UINT8 OemId[6];
UINT64 OemTableId; UINT64 OemTableId;
UINT8 Reserved[24]; UINT8 Reserved[24];
} EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_HEADER; } EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_HEADER;
/// ///
/// Common Header of Boot Firmware Table Structure /// Common Header of Boot Firmware Table Structure
/// ///
typedef struct { typedef struct {
UINT8 StructureId; UINT8 StructureId;
UINT8 Version; UINT8 Version;
UINT16 Length; UINT16 Length;
UINT8 Index; UINT8 Index;
UINT8 Flags; UINT8 Flags;
} EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER; } EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER;
/// ///
/// Control Structure /// Control Structure
/// ///
typedef struct { typedef struct {
EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER Header; EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER Header;
UINT16 Extensions; UINT16 Extensions;
UINT16 InitiatorOffset; UINT16 InitiatorOffset;
UINT16 NIC0Offset; UINT16 NIC0Offset;
UINT16 Target0Offset; UINT16 Target0Offset;
UINT16 NIC1Offset; UINT16 NIC1Offset;
UINT16 Target1Offset; UINT16 Target1Offset;
} EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE; } EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE;
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE_VERSION 0x1 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE_VERSION 0x1
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE_FLAG_BOOT_FAILOVER BIT0 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE_FLAG_BOOT_FAILOVER BIT0
/// ///
/// Initiator Structure /// Initiator Structure
/// ///
typedef struct { typedef struct {
EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER Header; EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER Header;
EFI_IPv6_ADDRESS ISnsServer; EFI_IPv6_ADDRESS ISnsServer;
EFI_IPv6_ADDRESS SlpServer; EFI_IPv6_ADDRESS SlpServer;
EFI_IPv6_ADDRESS PrimaryRadiusServer; EFI_IPv6_ADDRESS PrimaryRadiusServer;
EFI_IPv6_ADDRESS SecondaryRadiusServer; EFI_IPv6_ADDRESS SecondaryRadiusServer;
UINT16 IScsiNameLength; UINT16 IScsiNameLength;
UINT16 IScsiNameOffset; UINT16 IScsiNameOffset;
} EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE; } EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE;
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_VERSION 0x1 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_VERSION 0x1
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_FLAG_BLOCK_VALID BIT0 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_FLAG_BLOCK_VALID BIT0
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_FLAG_BOOT_SELECTED BIT1 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_FLAG_BOOT_SELECTED BIT1
@ -101,61 +101,60 @@ typedef struct {
/// NIC Structure /// NIC Structure
/// ///
typedef struct { typedef struct {
EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER Header; EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER Header;
EFI_IPv6_ADDRESS Ip; EFI_IPv6_ADDRESS Ip;
UINT8 SubnetMaskPrefixLength; UINT8 SubnetMaskPrefixLength;
UINT8 Origin; UINT8 Origin;
EFI_IPv6_ADDRESS Gateway; EFI_IPv6_ADDRESS Gateway;
EFI_IPv6_ADDRESS PrimaryDns; EFI_IPv6_ADDRESS PrimaryDns;
EFI_IPv6_ADDRESS SecondaryDns; EFI_IPv6_ADDRESS SecondaryDns;
EFI_IPv6_ADDRESS DhcpServer; EFI_IPv6_ADDRESS DhcpServer;
UINT16 VLanTag; UINT16 VLanTag;
UINT8 Mac[6]; UINT8 Mac[6];
UINT16 PciLocation; UINT16 PciLocation;
UINT16 HostNameLength; UINT16 HostNameLength;
UINT16 HostNameOffset; UINT16 HostNameOffset;
} EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE; } EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE;
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_VERSION 0x1 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_VERSION 0x1
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_FLAG_BLOCK_VALID BIT0 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_FLAG_BLOCK_VALID BIT0
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_FLAG_BOOT_SELECTED BIT1 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_FLAG_BOOT_SELECTED BIT1
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_FLAG_GLOBAL BIT2 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_FLAG_GLOBAL BIT2
/// ///
/// Target Structure /// Target Structure
/// ///
typedef struct { typedef struct {
EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER Header; EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER Header;
EFI_IPv6_ADDRESS Ip; EFI_IPv6_ADDRESS Ip;
UINT16 Port; UINT16 Port;
UINT8 BootLun[8]; UINT8 BootLun[8];
UINT8 CHAPType; UINT8 CHAPType;
UINT8 NicIndex; UINT8 NicIndex;
UINT16 IScsiNameLength; UINT16 IScsiNameLength;
UINT16 IScsiNameOffset; UINT16 IScsiNameOffset;
UINT16 CHAPNameLength; UINT16 CHAPNameLength;
UINT16 CHAPNameOffset; UINT16 CHAPNameOffset;
UINT16 CHAPSecretLength; UINT16 CHAPSecretLength;
UINT16 CHAPSecretOffset; UINT16 CHAPSecretOffset;
UINT16 ReverseCHAPNameLength; UINT16 ReverseCHAPNameLength;
UINT16 ReverseCHAPNameOffset; UINT16 ReverseCHAPNameOffset;
UINT16 ReverseCHAPSecretLength; UINT16 ReverseCHAPSecretLength;
UINT16 ReverseCHAPSecretOffset; UINT16 ReverseCHAPSecretOffset;
} EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE; } EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE;
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_VERSION 0x1 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_VERSION 0x1
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_FLAG_BLOCK_VALID BIT0 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_FLAG_BLOCK_VALID BIT0
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_FLAG_BOOT_SELECTED BIT1 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_FLAG_BOOT_SELECTED BIT1
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_FLAG_RADIUS_CHAP BIT2 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_FLAG_RADIUS_CHAP BIT2
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_FLAG_RADIUS_RCHAP BIT3 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_FLAG_RADIUS_RCHAP BIT3
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_CHAP_TYPE_NO_CHAP 0 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_CHAP_TYPE_NO_CHAP 0
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_CHAP_TYPE_CHAP 1 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_CHAP_TYPE_CHAP 1
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_CHAP_TYPE_MUTUAL_CHAP 2 #define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_CHAP_TYPE_MUTUAL_CHAP 2
#pragma pack() #pragma pack()
#endif #endif

View File

@ -14,24 +14,24 @@
#include <IndustryStandard/Acpi.h> #include <IndustryStandard/Acpi.h>
#define EFI_ACPI_IO_REMAPPING_TABLE_REVISION 0x0 #define EFI_ACPI_IO_REMAPPING_TABLE_REVISION 0x0
#define EFI_ACPI_IORT_TYPE_ITS_GROUP 0x0 #define EFI_ACPI_IORT_TYPE_ITS_GROUP 0x0
#define EFI_ACPI_IORT_TYPE_NAMED_COMP 0x1 #define EFI_ACPI_IORT_TYPE_NAMED_COMP 0x1
#define EFI_ACPI_IORT_TYPE_ROOT_COMPLEX 0x2 #define EFI_ACPI_IORT_TYPE_ROOT_COMPLEX 0x2
#define EFI_ACPI_IORT_TYPE_SMMUv1v2 0x3 #define EFI_ACPI_IORT_TYPE_SMMUv1v2 0x3
#define EFI_ACPI_IORT_TYPE_SMMUv3 0x4 #define EFI_ACPI_IORT_TYPE_SMMUv3 0x4
#define EFI_ACPI_IORT_TYPE_PMCG 0x5 #define EFI_ACPI_IORT_TYPE_PMCG 0x5
#define EFI_ACPI_IORT_MEM_ACCESS_PROP_CCA BIT0 #define EFI_ACPI_IORT_MEM_ACCESS_PROP_CCA BIT0
#define EFI_ACPI_IORT_MEM_ACCESS_PROP_AH_TR BIT0 #define EFI_ACPI_IORT_MEM_ACCESS_PROP_AH_TR BIT0
#define EFI_ACPI_IORT_MEM_ACCESS_PROP_AH_WA BIT1 #define EFI_ACPI_IORT_MEM_ACCESS_PROP_AH_WA BIT1
#define EFI_ACPI_IORT_MEM_ACCESS_PROP_AH_RA BIT2 #define EFI_ACPI_IORT_MEM_ACCESS_PROP_AH_RA BIT2
#define EFI_ACPI_IORT_MEM_ACCESS_PROP_AH_AHO BIT3 #define EFI_ACPI_IORT_MEM_ACCESS_PROP_AH_AHO BIT3
#define EFI_ACPI_IORT_MEM_ACCESS_FLAGS_CPM BIT0 #define EFI_ACPI_IORT_MEM_ACCESS_FLAGS_CPM BIT0
#define EFI_ACPI_IORT_MEM_ACCESS_FLAGS_DACS BIT1 #define EFI_ACPI_IORT_MEM_ACCESS_FLAGS_DACS BIT1
#define EFI_ACPI_IORT_SMMUv1v2_MODEL_v1 0x0 #define EFI_ACPI_IORT_SMMUv1v2_MODEL_v1 0x0
#define EFI_ACPI_IORT_SMMUv1v2_MODEL_v2 0x1 #define EFI_ACPI_IORT_SMMUv1v2_MODEL_v2 0x1
@ -40,24 +40,24 @@
#define EFI_ACPI_IORT_SMMUv1v2_MODEL_MMU401 0x4 #define EFI_ACPI_IORT_SMMUv1v2_MODEL_MMU401 0x4
#define EFI_ACPI_IORT_SMMUv1v2_MODEL_CAVIUM_THX_v2 0x5 #define EFI_ACPI_IORT_SMMUv1v2_MODEL_CAVIUM_THX_v2 0x5
#define EFI_ACPI_IORT_SMMUv1v2_FLAG_DVM BIT0 #define EFI_ACPI_IORT_SMMUv1v2_FLAG_DVM BIT0
#define EFI_ACPI_IORT_SMMUv1v2_FLAG_COH_WALK BIT1 #define EFI_ACPI_IORT_SMMUv1v2_FLAG_COH_WALK BIT1
#define EFI_ACPI_IORT_SMMUv1v2_INT_FLAG_LEVEL 0x0 #define EFI_ACPI_IORT_SMMUv1v2_INT_FLAG_LEVEL 0x0
#define EFI_ACPI_IORT_SMMUv1v2_INT_FLAG_EDGE 0x1 #define EFI_ACPI_IORT_SMMUv1v2_INT_FLAG_EDGE 0x1
#define EFI_ACPI_IORT_SMMUv3_FLAG_COHAC_OVERRIDE BIT0 #define EFI_ACPI_IORT_SMMUv3_FLAG_COHAC_OVERRIDE BIT0
#define EFI_ACPI_IORT_SMMUv3_FLAG_HTTU_OVERRIDE BIT1 #define EFI_ACPI_IORT_SMMUv3_FLAG_HTTU_OVERRIDE BIT1
#define EFI_ACPI_IORT_SMMUv3_FLAG_PROXIMITY_DOMAIN BIT3 #define EFI_ACPI_IORT_SMMUv3_FLAG_PROXIMITY_DOMAIN BIT3
#define EFI_ACPI_IORT_SMMUv3_MODEL_GENERIC 0x0 #define EFI_ACPI_IORT_SMMUv3_MODEL_GENERIC 0x0
#define EFI_ACPI_IORT_SMMUv3_MODEL_HISILICON_HI161X 0x1 #define EFI_ACPI_IORT_SMMUv3_MODEL_HISILICON_HI161X 0x1
#define EFI_ACPI_IORT_SMMUv3_MODEL_CAVIUM_CN99XX 0x2 #define EFI_ACPI_IORT_SMMUv3_MODEL_CAVIUM_CN99XX 0x2
#define EFI_ACPI_IORT_ROOT_COMPLEX_ATS_UNSUPPORTED 0x0 #define EFI_ACPI_IORT_ROOT_COMPLEX_ATS_UNSUPPORTED 0x0
#define EFI_ACPI_IORT_ROOT_COMPLEX_ATS_SUPPORTED 0x1 #define EFI_ACPI_IORT_ROOT_COMPLEX_ATS_SUPPORTED 0x1
#define EFI_ACPI_IORT_ID_MAPPING_FLAGS_SINGLE BIT0 #define EFI_ACPI_IORT_ID_MAPPING_FLAGS_SINGLE BIT0
#pragma pack(1) #pragma pack(1)
@ -65,137 +65,137 @@
/// Table header /// Table header
/// ///
typedef struct { typedef struct {
EFI_ACPI_DESCRIPTION_HEADER Header; EFI_ACPI_DESCRIPTION_HEADER Header;
UINT32 NumNodes; UINT32 NumNodes;
UINT32 NodeOffset; UINT32 NodeOffset;
UINT32 Reserved; UINT32 Reserved;
} EFI_ACPI_6_0_IO_REMAPPING_TABLE; } EFI_ACPI_6_0_IO_REMAPPING_TABLE;
/// ///
/// Definition for ID mapping table shared by all node types /// Definition for ID mapping table shared by all node types
/// ///
typedef struct { typedef struct {
UINT32 InputBase; UINT32 InputBase;
UINT32 NumIds; UINT32 NumIds;
UINT32 OutputBase; UINT32 OutputBase;
UINT32 OutputReference; UINT32 OutputReference;
UINT32 Flags; UINT32 Flags;
} EFI_ACPI_6_0_IO_REMAPPING_ID_TABLE; } EFI_ACPI_6_0_IO_REMAPPING_ID_TABLE;
/// ///
/// Node header definition shared by all node types /// Node header definition shared by all node types
/// ///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT16 Length; UINT16 Length;
UINT8 Revision; UINT8 Revision;
UINT32 Reserved; UINT32 Reserved;
UINT32 NumIdMappings; UINT32 NumIdMappings;
UINT32 IdReference; UINT32 IdReference;
} EFI_ACPI_6_0_IO_REMAPPING_NODE; } EFI_ACPI_6_0_IO_REMAPPING_NODE;
/// ///
/// Node type 0: ITS node /// Node type 0: ITS node
/// ///
typedef struct { typedef struct {
EFI_ACPI_6_0_IO_REMAPPING_NODE Node; EFI_ACPI_6_0_IO_REMAPPING_NODE Node;
UINT32 NumItsIdentifiers; UINT32 NumItsIdentifiers;
//UINT32 ItsIdentifiers[NumItsIdentifiers]; // UINT32 ItsIdentifiers[NumItsIdentifiers];
} EFI_ACPI_6_0_IO_REMAPPING_ITS_NODE; } EFI_ACPI_6_0_IO_REMAPPING_ITS_NODE;
/// ///
/// Node type 1: root complex node /// Node type 1: root complex node
/// ///
typedef struct { typedef struct {
EFI_ACPI_6_0_IO_REMAPPING_NODE Node; EFI_ACPI_6_0_IO_REMAPPING_NODE Node;
UINT32 CacheCoherent; UINT32 CacheCoherent;
UINT8 AllocationHints; UINT8 AllocationHints;
UINT16 Reserved; UINT16 Reserved;
UINT8 MemoryAccessFlags; UINT8 MemoryAccessFlags;
UINT32 AtsAttribute; UINT32 AtsAttribute;
UINT32 PciSegmentNumber; UINT32 PciSegmentNumber;
UINT8 MemoryAddressSize; UINT8 MemoryAddressSize;
UINT8 Reserved1[3]; UINT8 Reserved1[3];
} EFI_ACPI_6_0_IO_REMAPPING_RC_NODE; } EFI_ACPI_6_0_IO_REMAPPING_RC_NODE;
/// ///
/// Node type 2: named component node /// Node type 2: named component node
/// ///
typedef struct { typedef struct {
EFI_ACPI_6_0_IO_REMAPPING_NODE Node; EFI_ACPI_6_0_IO_REMAPPING_NODE Node;
UINT32 Flags; UINT32 Flags;
UINT32 CacheCoherent; UINT32 CacheCoherent;
UINT8 AllocationHints; UINT8 AllocationHints;
UINT16 Reserved; UINT16 Reserved;
UINT8 MemoryAccessFlags; UINT8 MemoryAccessFlags;
UINT8 AddressSizeLimit; UINT8 AddressSizeLimit;
//UINT8 ObjectName[]; // UINT8 ObjectName[];
} EFI_ACPI_6_0_IO_REMAPPING_NAMED_COMP_NODE; } EFI_ACPI_6_0_IO_REMAPPING_NAMED_COMP_NODE;
/// ///
/// Node type 3: SMMUv1 or SMMUv2 node /// Node type 3: SMMUv1 or SMMUv2 node
/// ///
typedef struct { typedef struct {
UINT32 Interrupt; UINT32 Interrupt;
UINT32 InterruptFlags; UINT32 InterruptFlags;
} EFI_ACPI_6_0_IO_REMAPPING_SMMU_INT; } EFI_ACPI_6_0_IO_REMAPPING_SMMU_INT;
typedef struct { typedef struct {
EFI_ACPI_6_0_IO_REMAPPING_NODE Node; EFI_ACPI_6_0_IO_REMAPPING_NODE Node;
UINT64 Base; UINT64 Base;
UINT64 Span; UINT64 Span;
UINT32 Model; UINT32 Model;
UINT32 Flags; UINT32 Flags;
UINT32 GlobalInterruptArrayRef; UINT32 GlobalInterruptArrayRef;
UINT32 NumContextInterrupts; UINT32 NumContextInterrupts;
UINT32 ContextInterruptArrayRef; UINT32 ContextInterruptArrayRef;
UINT32 NumPmuInterrupts; UINT32 NumPmuInterrupts;
UINT32 PmuInterruptArrayRef; UINT32 PmuInterruptArrayRef;
UINT32 SMMU_NSgIrpt; UINT32 SMMU_NSgIrpt;
UINT32 SMMU_NSgIrptFlags; UINT32 SMMU_NSgIrptFlags;
UINT32 SMMU_NSgCfgIrpt; UINT32 SMMU_NSgCfgIrpt;
UINT32 SMMU_NSgCfgIrptFlags; UINT32 SMMU_NSgCfgIrptFlags;
//EFI_ACPI_6_0_IO_REMAPPING_SMMU_CTX_INT ContextInterrupt[NumContextInterrupts]; // EFI_ACPI_6_0_IO_REMAPPING_SMMU_CTX_INT ContextInterrupt[NumContextInterrupts];
//EFI_ACPI_6_0_IO_REMAPPING_SMMU_CTX_INT PmuInterrupt[NumPmuInterrupts]; // EFI_ACPI_6_0_IO_REMAPPING_SMMU_CTX_INT PmuInterrupt[NumPmuInterrupts];
} EFI_ACPI_6_0_IO_REMAPPING_SMMU_NODE; } EFI_ACPI_6_0_IO_REMAPPING_SMMU_NODE;
/// ///
/// Node type 4: SMMUv3 node /// Node type 4: SMMUv3 node
/// ///
typedef struct { typedef struct {
EFI_ACPI_6_0_IO_REMAPPING_NODE Node; EFI_ACPI_6_0_IO_REMAPPING_NODE Node;
UINT64 Base; UINT64 Base;
UINT32 Flags; UINT32 Flags;
UINT32 Reserved; UINT32 Reserved;
UINT64 VatosAddress; UINT64 VatosAddress;
UINT32 Model; UINT32 Model;
UINT32 Event; UINT32 Event;
UINT32 Pri; UINT32 Pri;
UINT32 Gerr; UINT32 Gerr;
UINT32 Sync; UINT32 Sync;
UINT32 ProximityDomain; UINT32 ProximityDomain;
UINT32 DeviceIdMappingIndex; UINT32 DeviceIdMappingIndex;
} EFI_ACPI_6_0_IO_REMAPPING_SMMU3_NODE; } EFI_ACPI_6_0_IO_REMAPPING_SMMU3_NODE;
/// ///
/// Node type 5: PMCG node /// Node type 5: PMCG node
/// ///
typedef struct { typedef struct {
EFI_ACPI_6_0_IO_REMAPPING_NODE Node; EFI_ACPI_6_0_IO_REMAPPING_NODE Node;
UINT64 Base; UINT64 Base;
UINT32 OverflowInterruptGsiv; UINT32 OverflowInterruptGsiv;
UINT32 NodeReference; UINT32 NodeReference;
UINT64 Page1Base; UINT64 Page1Base;
//EFI_ACPI_6_0_IO_REMAPPING_ID_TABLE OverflowInterruptMsiMapping[1]; // EFI_ACPI_6_0_IO_REMAPPING_ID_TABLE OverflowInterruptMsiMapping[1];
} EFI_ACPI_6_0_IO_REMAPPING_PMCG_NODE; } EFI_ACPI_6_0_IO_REMAPPING_PMCG_NODE;
#pragma pack() #pragma pack()

View File

@ -27,24 +27,24 @@ typedef union {
/// Individual bit fields /// Individual bit fields
/// ///
struct { struct {
UINT8 FormatVersionNumber:4; UINT8 FormatVersionNumber : 4;
UINT8 Reserved:4; UINT8 Reserved : 4;
} Bits; } Bits;
/// ///
/// All bit fields as a 8-bit value /// All bit fields as a 8-bit value
/// ///
UINT8 Uint8; UINT8 Uint8;
} IPMI_FRU_COMMON_HEADER_FORMAT_VERSION; } IPMI_FRU_COMMON_HEADER_FORMAT_VERSION;
typedef struct { typedef struct {
IPMI_FRU_COMMON_HEADER_FORMAT_VERSION FormatVersion; IPMI_FRU_COMMON_HEADER_FORMAT_VERSION FormatVersion;
UINT8 InternalUseStartingOffset; UINT8 InternalUseStartingOffset;
UINT8 ChassisInfoStartingOffset; UINT8 ChassisInfoStartingOffset;
UINT8 BoardAreaStartingOffset; UINT8 BoardAreaStartingOffset;
UINT8 ProductInfoStartingOffset; UINT8 ProductInfoStartingOffset;
UINT8 MultiRecInfoStartingOffset; UINT8 MultiRecInfoStartingOffset;
UINT8 Pad; UINT8 Pad;
UINT8 Checksum; UINT8 Checksum;
} IPMI_FRU_COMMON_HEADER; } IPMI_FRU_COMMON_HEADER;
// //
@ -55,22 +55,22 @@ typedef union {
/// Individual bit fields /// Individual bit fields
/// ///
struct { struct {
UINT8 RecordFormatVersion:4; UINT8 RecordFormatVersion : 4;
UINT8 Reserved:3; UINT8 Reserved : 3;
UINT8 EndofList:1; UINT8 EndofList : 1;
} Bits; } Bits;
/// ///
/// All bit fields as a 8-bit value /// All bit fields as a 8-bit value
/// ///
UINT8 Uint8; UINT8 Uint8;
} IPMI_FRU_MULTI_RECORD_HEADER_FORMAT_VERSION; } IPMI_FRU_MULTI_RECORD_HEADER_FORMAT_VERSION;
typedef struct { typedef struct {
UINT8 RecordTypeId; UINT8 RecordTypeId;
IPMI_FRU_MULTI_RECORD_HEADER_FORMAT_VERSION FormatVersion; IPMI_FRU_MULTI_RECORD_HEADER_FORMAT_VERSION FormatVersion;
UINT8 RecordLength; UINT8 RecordLength;
UINT8 RecordChecksum; UINT8 RecordChecksum;
UINT8 HeaderChecksum; UINT8 HeaderChecksum;
} IPMI_FRU_MULTI_RECORD_HEADER; } IPMI_FRU_MULTI_RECORD_HEADER;
// //

View File

@ -31,56 +31,55 @@
// //
// Definitions for Get Device ID command // Definitions for Get Device ID command
// //
#define IPMI_APP_GET_DEVICE_ID 0x1 #define IPMI_APP_GET_DEVICE_ID 0x1
// //
// Constants and Structure definitions for "Get Device ID" command to follow here // Constants and Structure definitions for "Get Device ID" command to follow here
// //
typedef union { typedef union {
struct { struct {
UINT8 DeviceRevision : 4; UINT8 DeviceRevision : 4;
UINT8 Reserved : 3; UINT8 Reserved : 3;
UINT8 DeviceSdr : 1; UINT8 DeviceSdr : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_GET_DEVICE_ID_DEVICE_REV; } IPMI_GET_DEVICE_ID_DEVICE_REV;
typedef union { typedef union {
struct { struct {
UINT8 MajorFirmwareRev : 7; UINT8 MajorFirmwareRev : 7;
UINT8 UpdateMode : 1; UINT8 UpdateMode : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_GET_DEVICE_ID_FIRMWARE_REV_1; } IPMI_GET_DEVICE_ID_FIRMWARE_REV_1;
typedef union { typedef union {
struct { struct {
UINT8 SensorDeviceSupport : 1; UINT8 SensorDeviceSupport : 1;
UINT8 SdrRepositorySupport : 1; UINT8 SdrRepositorySupport : 1;
UINT8 SelDeviceSupport : 1; UINT8 SelDeviceSupport : 1;
UINT8 FruInventorySupport : 1; UINT8 FruInventorySupport : 1;
UINT8 IpmbMessageReceiver : 1; UINT8 IpmbMessageReceiver : 1;
UINT8 IpmbMessageGenerator : 1; UINT8 IpmbMessageGenerator : 1;
UINT8 BridgeSupport : 1; UINT8 BridgeSupport : 1;
UINT8 ChassisSupport : 1; UINT8 ChassisSupport : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_GET_DEVICE_ID_DEVICE_SUPPORT; } IPMI_GET_DEVICE_ID_DEVICE_SUPPORT;
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
UINT8 DeviceId; UINT8 DeviceId;
IPMI_GET_DEVICE_ID_DEVICE_REV DeviceRevision; IPMI_GET_DEVICE_ID_DEVICE_REV DeviceRevision;
IPMI_GET_DEVICE_ID_FIRMWARE_REV_1 FirmwareRev1; IPMI_GET_DEVICE_ID_FIRMWARE_REV_1 FirmwareRev1;
UINT8 MinorFirmwareRev; UINT8 MinorFirmwareRev;
UINT8 SpecificationVersion; UINT8 SpecificationVersion;
IPMI_GET_DEVICE_ID_DEVICE_SUPPORT DeviceSupport; IPMI_GET_DEVICE_ID_DEVICE_SUPPORT DeviceSupport;
UINT8 ManufacturerId[3]; UINT8 ManufacturerId[3];
UINT16 ProductId; UINT16 ProductId;
UINT32 AuxFirmwareRevInfo; UINT32 AuxFirmwareRevInfo;
} IPMI_GET_DEVICE_ID_RESPONSE; } IPMI_GET_DEVICE_ID_RESPONSE;
// //
// Definitions for Cold Reset command // Definitions for Cold Reset command
// //
@ -108,28 +107,28 @@ typedef struct {
// Constants and Structure definitions for "Get Self Test Results" command to follow here // Constants and Structure definitions for "Get Self Test Results" command to follow here
// //
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
UINT8 Result; UINT8 Result;
UINT8 Param; UINT8 Param;
} IPMI_SELF_TEST_RESULT_RESPONSE; } IPMI_SELF_TEST_RESULT_RESPONSE;
#define IPMI_APP_SELFTEST_NO_ERROR 0x55 #define IPMI_APP_SELFTEST_NO_ERROR 0x55
#define IPMI_APP_SELFTEST_NOT_IMPLEMENTED 0x56 #define IPMI_APP_SELFTEST_NOT_IMPLEMENTED 0x56
#define IPMI_APP_SELFTEST_ERROR 0x57 #define IPMI_APP_SELFTEST_ERROR 0x57
#define IPMI_APP_SELFTEST_FATAL_HW_ERROR 0x58 #define IPMI_APP_SELFTEST_FATAL_HW_ERROR 0x58
#define IPMI_APP_SELFTEST_INACCESSIBLE_SEL 0x80 #define IPMI_APP_SELFTEST_INACCESSIBLE_SEL 0x80
#define IPMI_APP_SELFTEST_INACCESSIBLE_SDR 0x40 #define IPMI_APP_SELFTEST_INACCESSIBLE_SDR 0x40
#define IPMI_APP_SELFTEST_INACCESSIBLE_FRU 0x20 #define IPMI_APP_SELFTEST_INACCESSIBLE_FRU 0x20
#define IPMI_APP_SELFTEST_IPMB_SIGNAL_FAIL 0x10 #define IPMI_APP_SELFTEST_IPMB_SIGNAL_FAIL 0x10
#define IPMI_APP_SELFTEST_SDR_REPOSITORY_EMPTY 0x08 #define IPMI_APP_SELFTEST_SDR_REPOSITORY_EMPTY 0x08
#define IPMI_APP_SELFTEST_FRU_CORRUPT 0x04 #define IPMI_APP_SELFTEST_FRU_CORRUPT 0x04
#define IPMI_APP_SELFTEST_FW_BOOTBLOCK_CORRUPT 0x02 #define IPMI_APP_SELFTEST_FW_BOOTBLOCK_CORRUPT 0x02
#define IPMI_APP_SELFTEST_FW_CORRUPT 0x01 #define IPMI_APP_SELFTEST_FW_CORRUPT 0x01
// //
// Definitions for Manufacturing Test ON command // Definitions for Manufacturing Test ON command
// //
#define IPMI_APP_MANUFACTURING_TEST_ON 0x5 #define IPMI_APP_MANUFACTURING_TEST_ON 0x5
// //
// Constants and Structure definitions for "Manufacturing Test ON" command to follow here // Constants and Structure definitions for "Manufacturing Test ON" command to follow here
@ -138,7 +137,7 @@ typedef struct {
// //
// Definitions for Set ACPI Power State command // Definitions for Set ACPI Power State command
// //
#define IPMI_APP_SET_ACPI_POWERSTATE 0x6 #define IPMI_APP_SET_ACPI_POWERSTATE 0x6
// //
// Constants and Structure definitions for "Set ACPI Power State" command to follow here // Constants and Structure definitions for "Set ACPI Power State" command to follow here
@ -148,55 +147,55 @@ typedef struct {
// Definitions for System Power State // Definitions for System Power State
// //
// Working // Working
#define IPMI_SYSTEM_POWER_STATE_S0_G0 0x0 #define IPMI_SYSTEM_POWER_STATE_S0_G0 0x0
#define IPMI_SYSTEM_POWER_STATE_S1 0x1 #define IPMI_SYSTEM_POWER_STATE_S1 0x1
#define IPMI_SYSTEM_POWER_STATE_S2 0x2 #define IPMI_SYSTEM_POWER_STATE_S2 0x2
#define IPMI_SYSTEM_POWER_STATE_S3 0x3 #define IPMI_SYSTEM_POWER_STATE_S3 0x3
#define IPMI_SYSTEM_POWER_STATE_S4 0x4 #define IPMI_SYSTEM_POWER_STATE_S4 0x4
// Soft off // Soft off
#define IPMI_SYSTEM_POWER_STATE_S5_G2 0x5 #define IPMI_SYSTEM_POWER_STATE_S5_G2 0x5
// Sent when message source cannot differentiate between S4 and S5 // Sent when message source cannot differentiate between S4 and S5
#define IPMI_SYSTEM_POWER_STATE_S4_S5 0x6 #define IPMI_SYSTEM_POWER_STATE_S4_S5 0x6
// Mechanical off // Mechanical off
#define IPMI_SYSTEM_POWER_STATE_G3 0x7 #define IPMI_SYSTEM_POWER_STATE_G3 0x7
// Sleeping - cannot differentiate between S1-S3 // Sleeping - cannot differentiate between S1-S3
#define IPMI_SYSTEM_POWER_STATE_SLEEPING 0x8 #define IPMI_SYSTEM_POWER_STATE_SLEEPING 0x8
// Sleeping - cannot differentiate between S1-S4 // Sleeping - cannot differentiate between S1-S4
#define IPMI_SYSTEM_POWER_STATE_G1_SLEEPING 0x9 #define IPMI_SYSTEM_POWER_STATE_G1_SLEEPING 0x9
// S5 entered by override // S5 entered by override
#define IPMI_SYSTEM_POWER_STATE_OVERRIDE 0xA #define IPMI_SYSTEM_POWER_STATE_OVERRIDE 0xA
#define IPMI_SYSTEM_POWER_STATE_LEGACY_ON 0x20 #define IPMI_SYSTEM_POWER_STATE_LEGACY_ON 0x20
#define IPMI_SYSTEM_POWER_STATE_LEGACY_OFF 0x21 #define IPMI_SYSTEM_POWER_STATE_LEGACY_OFF 0x21
#define IPMI_SYSTEM_POWER_STATE_UNKNOWN 0x2A #define IPMI_SYSTEM_POWER_STATE_UNKNOWN 0x2A
#define IPMI_SYSTEM_POWER_STATE_NO_CHANGE 0x7F #define IPMI_SYSTEM_POWER_STATE_NO_CHANGE 0x7F
// //
// Definitions for Device Power State // Definitions for Device Power State
// //
#define IPMI_DEVICE_POWER_STATE_D0 0x0 #define IPMI_DEVICE_POWER_STATE_D0 0x0
#define IPMI_DEVICE_POWER_STATE_D1 0x1 #define IPMI_DEVICE_POWER_STATE_D1 0x1
#define IPMI_DEVICE_POWER_STATE_D2 0x2 #define IPMI_DEVICE_POWER_STATE_D2 0x2
#define IPMI_DEVICE_POWER_STATE_D3 0x3 #define IPMI_DEVICE_POWER_STATE_D3 0x3
#define IPMI_DEVICE_POWER_STATE_UNKNOWN 0x2A #define IPMI_DEVICE_POWER_STATE_UNKNOWN 0x2A
#define IPMI_DEVICE_POWER_STATE_NO_CHANGE 0x7F #define IPMI_DEVICE_POWER_STATE_NO_CHANGE 0x7F
typedef union { typedef union {
struct { struct {
UINT8 PowerState : 7; UINT8 PowerState : 7;
UINT8 StateChange : 1; UINT8 StateChange : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_ACPI_POWER_STATE; } IPMI_ACPI_POWER_STATE;
typedef struct { typedef struct {
IPMI_ACPI_POWER_STATE SystemPowerState; IPMI_ACPI_POWER_STATE SystemPowerState;
IPMI_ACPI_POWER_STATE DevicePowerState; IPMI_ACPI_POWER_STATE DevicePowerState;
} IPMI_SET_ACPI_POWER_STATE_REQUEST; } IPMI_SET_ACPI_POWER_STATE_REQUEST;
// //
// Definitions for Get ACPI Power State command // Definitions for Get ACPI Power State command
// //
#define IPMI_APP_GET_ACPI_POWERSTATE 0x7 #define IPMI_APP_GET_ACPI_POWERSTATE 0x7
// //
// Constants and Structure definitions for "Get ACPI Power State" command to follow here // Constants and Structure definitions for "Get ACPI Power State" command to follow here
@ -205,7 +204,7 @@ typedef struct {
// //
// Definitions for Get Device GUID command // Definitions for Get Device GUID command
// //
#define IPMI_APP_GET_DEVICE_GUID 0x8 #define IPMI_APP_GET_DEVICE_GUID 0x8
// //
// Constants and Structure definitions for "Get Device GUID" command to follow here // Constants and Structure definitions for "Get Device GUID" command to follow here
@ -214,8 +213,8 @@ typedef struct {
// Message structure definition for "Get Device Guid" IPMI command // Message structure definition for "Get Device Guid" IPMI command
// //
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
UINT8 Guid[16]; UINT8 Guid[16];
} IPMI_GET_DEVICE_GUID_RESPONSE; } IPMI_GET_DEVICE_GUID_RESPONSE;
// //
@ -250,12 +249,12 @@ typedef struct {
// //
typedef union { typedef union {
struct { struct {
UINT8 TimerUse : 3; UINT8 TimerUse : 3;
UINT8 Reserved : 3; UINT8 Reserved : 3;
UINT8 TimerRunning : 1; UINT8 TimerRunning : 1;
UINT8 TimerUseExpirationFlagLog : 1; UINT8 TimerUseExpirationFlagLog : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_WATCHDOG_TIMER_USE; } IPMI_WATCHDOG_TIMER_USE;
// //
@ -279,12 +278,12 @@ typedef union {
// //
typedef union { typedef union {
struct { struct {
UINT8 TimeoutAction : 3; UINT8 TimeoutAction : 3;
UINT8 Reserved1 : 1; UINT8 Reserved1 : 1;
UINT8 PreTimeoutInterrupt : 3; UINT8 PreTimeoutInterrupt : 3;
UINT8 Reserved2 : 1; UINT8 Reserved2 : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_WATCHDOG_TIMER_ACTIONS; } IPMI_WATCHDOG_TIMER_ACTIONS;
// //
@ -297,11 +296,11 @@ typedef union {
#define IPMI_WATCHDOG_TIMER_EXPIRATION_FLAG_OEM BIT5 #define IPMI_WATCHDOG_TIMER_EXPIRATION_FLAG_OEM BIT5
typedef struct { typedef struct {
IPMI_WATCHDOG_TIMER_USE TimerUse; IPMI_WATCHDOG_TIMER_USE TimerUse;
IPMI_WATCHDOG_TIMER_ACTIONS TimerActions; IPMI_WATCHDOG_TIMER_ACTIONS TimerActions;
UINT8 PretimeoutInterval; UINT8 PretimeoutInterval;
UINT8 TimerUseExpirationFlagsClear; UINT8 TimerUseExpirationFlagsClear;
UINT16 InitialCountdownValue; UINT16 InitialCountdownValue;
} IPMI_SET_WATCHDOG_TIMER_REQUEST; } IPMI_SET_WATCHDOG_TIMER_REQUEST;
// //
@ -313,13 +312,13 @@ typedef struct {
// Constants and Structure definitions for "Get WatchDog Timer" command to follow here // Constants and Structure definitions for "Get WatchDog Timer" command to follow here
// //
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
IPMI_WATCHDOG_TIMER_USE TimerUse; IPMI_WATCHDOG_TIMER_USE TimerUse;
IPMI_WATCHDOG_TIMER_ACTIONS TimerActions; IPMI_WATCHDOG_TIMER_ACTIONS TimerActions;
UINT8 PretimeoutInterval; UINT8 PretimeoutInterval;
UINT8 TimerUseExpirationFlagsClear; UINT8 TimerUseExpirationFlagsClear;
UINT16 InitialCountdownValue; UINT16 InitialCountdownValue;
UINT16 PresentCountdownValue; UINT16 PresentCountdownValue;
} IPMI_GET_WATCHDOG_TIMER_RESPONSE; } IPMI_GET_WATCHDOG_TIMER_RESPONSE;
// //
@ -336,20 +335,20 @@ typedef struct {
// //
typedef union { typedef union {
struct { struct {
UINT8 ReceiveMessageQueueInterrupt : 1; UINT8 ReceiveMessageQueueInterrupt : 1;
UINT8 EventMessageBufferFullInterrupt : 1; UINT8 EventMessageBufferFullInterrupt : 1;
UINT8 EventMessageBuffer : 1; UINT8 EventMessageBuffer : 1;
UINT8 SystemEventLogging : 1; UINT8 SystemEventLogging : 1;
UINT8 Reserved : 1; UINT8 Reserved : 1;
UINT8 Oem0Enable : 1; UINT8 Oem0Enable : 1;
UINT8 Oem1Enable : 1; UINT8 Oem1Enable : 1;
UINT8 Oem2Enable : 1; UINT8 Oem2Enable : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_BMC_GLOBAL_ENABLES; } IPMI_BMC_GLOBAL_ENABLES;
typedef struct { typedef struct {
IPMI_BMC_GLOBAL_ENABLES SetEnables; IPMI_BMC_GLOBAL_ENABLES SetEnables;
} IPMI_SET_BMC_GLOBAL_ENABLES_REQUEST; } IPMI_SET_BMC_GLOBAL_ENABLES_REQUEST;
// //
@ -361,47 +360,47 @@ typedef struct {
// Constants and Structure definitions for "Get BMC Global Enables " command to follow here // Constants and Structure definitions for "Get BMC Global Enables " command to follow here
// //
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
IPMI_BMC_GLOBAL_ENABLES GetEnables; IPMI_BMC_GLOBAL_ENABLES GetEnables;
} IPMI_GET_BMC_GLOBAL_ENABLES_RESPONSE; } IPMI_GET_BMC_GLOBAL_ENABLES_RESPONSE;
// //
// Definitions for Clear Message Flags command // Definitions for Clear Message Flags command
// //
#define IPMI_APP_CLEAR_MESSAGE_FLAGS 0x30 #define IPMI_APP_CLEAR_MESSAGE_FLAGS 0x30
// //
// Constants and Structure definitions for "Clear Message Flags" command to follow here // Constants and Structure definitions for "Clear Message Flags" command to follow here
// //
typedef union { typedef union {
struct { struct {
UINT8 ReceiveMessageQueue : 1; UINT8 ReceiveMessageQueue : 1;
UINT8 EventMessageBuffer : 1; UINT8 EventMessageBuffer : 1;
UINT8 Reserved1 : 1; UINT8 Reserved1 : 1;
UINT8 WatchdogPerTimeoutInterrupt : 1; UINT8 WatchdogPerTimeoutInterrupt : 1;
UINT8 Reserved2 : 1; UINT8 Reserved2 : 1;
UINT8 Oem0 : 1; UINT8 Oem0 : 1;
UINT8 Oem1 : 1; UINT8 Oem1 : 1;
UINT8 Oem2 : 1; UINT8 Oem2 : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_MESSAGE_FLAGS; } IPMI_MESSAGE_FLAGS;
typedef struct { typedef struct {
IPMI_MESSAGE_FLAGS ClearFlags; IPMI_MESSAGE_FLAGS ClearFlags;
} IPMI_CLEAR_MESSAGE_FLAGS_REQUEST; } IPMI_CLEAR_MESSAGE_FLAGS_REQUEST;
// //
// Definitions for Get Message Flags command // Definitions for Get Message Flags command
// //
#define IPMI_APP_GET_MESSAGE_FLAGS 0x31 #define IPMI_APP_GET_MESSAGE_FLAGS 0x31
// //
// Constants and Structure definitions for "Get Message Flags" command to follow here // Constants and Structure definitions for "Get Message Flags" command to follow here
// //
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
IPMI_MESSAGE_FLAGS GetFlags; IPMI_MESSAGE_FLAGS GetFlags;
} IPMI_GET_MESSAGE_FLAGS_RESPONSE; } IPMI_GET_MESSAGE_FLAGS_RESPONSE;
// //
@ -416,23 +415,23 @@ typedef struct {
// //
// Definitions for Get Message command // Definitions for Get Message command
// //
#define IPMI_APP_GET_MESSAGE 0x33 #define IPMI_APP_GET_MESSAGE 0x33
// //
// Constants and Structure definitions for "Get Message" command to follow here // Constants and Structure definitions for "Get Message" command to follow here
// //
typedef union { typedef union {
struct { struct {
UINT8 ChannelNumber : 4; UINT8 ChannelNumber : 4;
UINT8 InferredPrivilegeLevel : 4; UINT8 InferredPrivilegeLevel : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_GET_MESSAGE_CHANNEL_NUMBER; } IPMI_GET_MESSAGE_CHANNEL_NUMBER;
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
IPMI_GET_MESSAGE_CHANNEL_NUMBER ChannelNumber; IPMI_GET_MESSAGE_CHANNEL_NUMBER ChannelNumber;
UINT8 MessageData[0]; UINT8 MessageData[0];
} IPMI_GET_MESSAGE_RESPONSE; } IPMI_GET_MESSAGE_RESPONSE;
// //
@ -445,29 +444,29 @@ typedef struct {
// //
typedef union { typedef union {
struct { struct {
UINT8 ChannelNumber : 4; UINT8 ChannelNumber : 4;
UINT8 Authentication : 1; UINT8 Authentication : 1;
UINT8 Encryption : 1; UINT8 Encryption : 1;
UINT8 Tracking : 2; UINT8 Tracking : 2;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_SEND_MESSAGE_CHANNEL_NUMBER; } IPMI_SEND_MESSAGE_CHANNEL_NUMBER;
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
IPMI_SEND_MESSAGE_CHANNEL_NUMBER ChannelNumber; IPMI_SEND_MESSAGE_CHANNEL_NUMBER ChannelNumber;
UINT8 MessageData[0]; UINT8 MessageData[0];
} IPMI_SEND_MESSAGE_REQUEST; } IPMI_SEND_MESSAGE_REQUEST;
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
UINT8 ResponseData[0]; UINT8 ResponseData[0];
} IPMI_SEND_MESSAGE_RESPONSE; } IPMI_SEND_MESSAGE_RESPONSE;
// //
// Definitions for Read Event Message Buffer command // Definitions for Read Event Message Buffer command
// //
#define IPMI_APP_READ_EVENT_MSG_BUFFER 0x35 #define IPMI_APP_READ_EVENT_MSG_BUFFER 0x35
// //
// Constants and Structure definitions for "Read Event Message Buffer" command to follow here // Constants and Structure definitions for "Read Event Message Buffer" command to follow here
@ -476,7 +475,7 @@ typedef struct {
// //
// Definitions for Get BT Interface Capabilities command // Definitions for Get BT Interface Capabilities command
// //
#define IPMI_APP_GET_BT_INTERFACE_CAPABILITY 0x36 #define IPMI_APP_GET_BT_INTERFACE_CAPABILITY 0x36
// //
// Constants and Structure definitions for "Get BT Interface Capabilities" command to follow here // Constants and Structure definitions for "Get BT Interface Capabilities" command to follow here
@ -485,7 +484,7 @@ typedef struct {
// //
// Definitions for Get System GUID command // Definitions for Get System GUID command
// //
#define IPMI_APP_GET_SYSTEM_GUID 0x37 #define IPMI_APP_GET_SYSTEM_GUID 0x37
// //
// Constants and Structure definitions for "Get System GUID" command to follow here // Constants and Structure definitions for "Get System GUID" command to follow here
@ -494,7 +493,7 @@ typedef struct {
// //
// Definitions for Get Channel Authentication Capabilities command // Definitions for Get Channel Authentication Capabilities command
// //
#define IPMI_APP_GET_CHANNEL_AUTHENTICATION_CAPABILITIES 0x38 #define IPMI_APP_GET_CHANNEL_AUTHENTICATION_CAPABILITIES 0x38
// //
// Constants and Structure definitions for "Get Channel Authentication Capabilities" command to follow here // Constants and Structure definitions for "Get Channel Authentication Capabilities" command to follow here
@ -503,7 +502,7 @@ typedef struct {
// //
// Definitions for Get Session Challenge command // Definitions for Get Session Challenge command
// //
#define IPMI_APP_GET_SESSION_CHALLENGE 0x39 #define IPMI_APP_GET_SESSION_CHALLENGE 0x39
// //
// Constants and Structure definitions for "Get Session Challenge" command to follow here // Constants and Structure definitions for "Get Session Challenge" command to follow here
@ -521,7 +520,7 @@ typedef struct {
// //
// Definitions for Set Session Privelege Level command // Definitions for Set Session Privelege Level command
// //
#define IPMI_APP_SET_SESSION_PRIVELEGE_LEVEL 0x3B #define IPMI_APP_SET_SESSION_PRIVELEGE_LEVEL 0x3B
// //
// Constants and Structure definitions for "Set Session Privelege Level" command to follow here // Constants and Structure definitions for "Set Session Privelege Level" command to follow here
@ -530,7 +529,7 @@ typedef struct {
// //
// Definitions for Close Session command // Definitions for Close Session command
// //
#define IPMI_APP_CLOSE_SESSION 0x3C #define IPMI_APP_CLOSE_SESSION 0x3C
// //
// Constants and Structure definitions for "Close Session" command to follow here // Constants and Structure definitions for "Close Session" command to follow here
@ -588,48 +587,48 @@ typedef struct {
typedef union { typedef union {
struct { struct {
UINT8 ChannelNo : 4; UINT8 ChannelNo : 4;
UINT8 Reserved : 4; UINT8 Reserved : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_GET_CHANNEL_ACCESS_CHANNEL_NUMBER; } IPMI_GET_CHANNEL_ACCESS_CHANNEL_NUMBER;
typedef union { typedef union {
struct { struct {
UINT8 Reserved : 6; UINT8 Reserved : 6;
UINT8 MemoryType : 2; UINT8 MemoryType : 2;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_GET_CHANNEL_ACCESS_TYPE; } IPMI_GET_CHANNEL_ACCESS_TYPE;
typedef struct { typedef struct {
IPMI_GET_CHANNEL_ACCESS_CHANNEL_NUMBER ChannelNumber; IPMI_GET_CHANNEL_ACCESS_CHANNEL_NUMBER ChannelNumber;
IPMI_GET_CHANNEL_ACCESS_TYPE AccessType; IPMI_GET_CHANNEL_ACCESS_TYPE AccessType;
} IPMI_GET_CHANNEL_ACCESS_REQUEST; } IPMI_GET_CHANNEL_ACCESS_REQUEST;
typedef union { typedef union {
struct { struct {
UINT8 AccessMode : 3; UINT8 AccessMode : 3;
UINT8 UserLevelAuthEnabled : 1; UINT8 UserLevelAuthEnabled : 1;
UINT8 MessageAuthEnable : 1; UINT8 MessageAuthEnable : 1;
UINT8 Alert : 1; UINT8 Alert : 1;
UINT8 Reserved : 2; UINT8 Reserved : 2;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_GET_CHANNEL_ACCESS_CHANNEL_ACCESS; } IPMI_GET_CHANNEL_ACCESS_CHANNEL_ACCESS;
typedef union { typedef union {
struct { struct {
UINT8 ChannelPriviledgeLimit : 4; UINT8 ChannelPriviledgeLimit : 4;
UINT8 Reserved : 4; UINT8 Reserved : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_GET_CHANNEL_ACCESS_PRIVILEGE_LIMIT; } IPMI_GET_CHANNEL_ACCESS_PRIVILEGE_LIMIT;
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
IPMI_GET_CHANNEL_ACCESS_CHANNEL_ACCESS ChannelAccess; IPMI_GET_CHANNEL_ACCESS_CHANNEL_ACCESS ChannelAccess;
IPMI_GET_CHANNEL_ACCESS_PRIVILEGE_LIMIT PrivilegeLimit; IPMI_GET_CHANNEL_ACCESS_PRIVILEGE_LIMIT PrivilegeLimit;
} IPMI_GET_CHANNEL_ACCESS_RESPONSE; } IPMI_GET_CHANNEL_ACCESS_RESPONSE;
// //
@ -645,73 +644,73 @@ typedef struct {
// Definitions for channel media type // Definitions for channel media type
// //
// IPMB (I2C) // IPMB (I2C)
#define IPMI_CHANNEL_MEDIA_TYPE_IPMB 0x1 #define IPMI_CHANNEL_MEDIA_TYPE_IPMB 0x1
// ICMB v1.0 // ICMB v1.0
#define IPMI_CHANNEL_MEDIA_TYPE_ICMB_1_0 0x2 #define IPMI_CHANNEL_MEDIA_TYPE_ICMB_1_0 0x2
// ICMB v0.9 // ICMB v0.9
#define IPMI_CHANNEL_MEDIA_TYPE_ICMB_0_9 0x3 #define IPMI_CHANNEL_MEDIA_TYPE_ICMB_0_9 0x3
// 802.3 LAN // 802.3 LAN
#define IPMI_CHANNEL_MEDIA_TYPE_802_3_LAN 0x4 #define IPMI_CHANNEL_MEDIA_TYPE_802_3_LAN 0x4
// Asynch. Serial/Modem (RS-232) // Asynch. Serial/Modem (RS-232)
#define IPMI_CHANNEL_MEDIA_TYPE_RS_232 0x5 #define IPMI_CHANNEL_MEDIA_TYPE_RS_232 0x5
// Other LAN // Other LAN
#define IPMI_CHANNEL_MEDIA_TYPE_OTHER_LAN 0x6 #define IPMI_CHANNEL_MEDIA_TYPE_OTHER_LAN 0x6
// PCI SMBus // PCI SMBus
#define IPMI_CHANNEL_MEDIA_TYPE_PCI_SM_BUS 0x7 #define IPMI_CHANNEL_MEDIA_TYPE_PCI_SM_BUS 0x7
// SMBus v1.0/1.1 // SMBus v1.0/1.1
#define IPMI_CHANNEL_MEDIA_TYPE_SM_BUS_V1 0x8 #define IPMI_CHANNEL_MEDIA_TYPE_SM_BUS_V1 0x8
// SMBus v2.0 // SMBus v2.0
#define IPMI_CHANNEL_MEDIA_TYPE_SM_BUS_V2 0x9 #define IPMI_CHANNEL_MEDIA_TYPE_SM_BUS_V2 0x9
// USB 1.x // USB 1.x
#define IPMI_CHANNEL_MEDIA_TYPE_USB1 0xA #define IPMI_CHANNEL_MEDIA_TYPE_USB1 0xA
// USB 2.x // USB 2.x
#define IPMI_CHANNEL_MEDIA_TYPE_USB2 0xB #define IPMI_CHANNEL_MEDIA_TYPE_USB2 0xB
// System Interface (KCS, SMIC, or BT) // System Interface (KCS, SMIC, or BT)
#define IPMI_CHANNEL_MEDIA_TYPE_SYSTEM_INTERFACE 0xC #define IPMI_CHANNEL_MEDIA_TYPE_SYSTEM_INTERFACE 0xC
// OEM // OEM
#define IPMI_CHANNEL_MEDIA_TYPE_OEM_START 0x60 #define IPMI_CHANNEL_MEDIA_TYPE_OEM_START 0x60
#define IPMI_CHANNEL_MEDIA_TYPE_OEM_END 0x7F #define IPMI_CHANNEL_MEDIA_TYPE_OEM_END 0x7F
typedef union { typedef union {
struct { struct {
UINT8 ChannelNo : 4; UINT8 ChannelNo : 4;
UINT8 Reserved : 4; UINT8 Reserved : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_CHANNEL_INFO_CHANNEL_NUMBER; } IPMI_CHANNEL_INFO_CHANNEL_NUMBER;
typedef union { typedef union {
struct { struct {
UINT8 ChannelMediumType : 7; UINT8 ChannelMediumType : 7;
UINT8 Reserved : 1; UINT8 Reserved : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_CHANNEL_INFO_MEDIUM_TYPE; } IPMI_CHANNEL_INFO_MEDIUM_TYPE;
typedef union { typedef union {
struct { struct {
UINT8 ChannelProtocolType : 5; UINT8 ChannelProtocolType : 5;
UINT8 Reserved : 3; UINT8 Reserved : 3;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_CHANNEL_INFO_PROTOCOL_TYPE; } IPMI_CHANNEL_INFO_PROTOCOL_TYPE;
typedef union { typedef union {
struct { struct {
UINT8 ActiveSessionCount : 6; UINT8 ActiveSessionCount : 6;
UINT8 SessionSupport : 2; UINT8 SessionSupport : 2;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_CHANNEL_INFO_SESSION_SUPPORT; } IPMI_CHANNEL_INFO_SESSION_SUPPORT;
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
IPMI_CHANNEL_INFO_CHANNEL_NUMBER ChannelNumber; IPMI_CHANNEL_INFO_CHANNEL_NUMBER ChannelNumber;
IPMI_CHANNEL_INFO_MEDIUM_TYPE MediumType; IPMI_CHANNEL_INFO_MEDIUM_TYPE MediumType;
IPMI_CHANNEL_INFO_PROTOCOL_TYPE ProtocolType; IPMI_CHANNEL_INFO_PROTOCOL_TYPE ProtocolType;
IPMI_CHANNEL_INFO_SESSION_SUPPORT SessionSupport; IPMI_CHANNEL_INFO_SESSION_SUPPORT SessionSupport;
UINT8 VendorId[3]; UINT8 VendorId[3];
UINT16 AuxChannelInfo; UINT16 AuxChannelInfo;
} IPMI_GET_CHANNEL_INFO_RESPONSE; } IPMI_GET_CHANNEL_INFO_RESPONSE;
// //
@ -726,7 +725,7 @@ typedef struct {
// //
// Definitions for Set User Access command // Definitions for Set User Access command
// //
#define IPMI_APP_SET_USER_ACCESS 0x43 #define IPMI_APP_SET_USER_ACCESS 0x43
// //
// Constants and Structure definitions for "Set User Access" command to follow here // Constants and Structure definitions for "Set User Access" command to follow here
@ -735,109 +734,109 @@ typedef struct {
// //
// Definitions for Get User Access command // Definitions for Get User Access command
// //
#define IPMI_APP_GET_USER_ACCESS 0x44 #define IPMI_APP_GET_USER_ACCESS 0x44
// //
// Constants and Structure definitions for "Get User Access" command to follow here // Constants and Structure definitions for "Get User Access" command to follow here
// //
typedef union { typedef union {
struct { struct {
UINT8 ChannelNo : 4; UINT8 ChannelNo : 4;
UINT8 Reserved : 4; UINT8 Reserved : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_GET_USER_ACCESS_CHANNEL_NUMBER; } IPMI_GET_USER_ACCESS_CHANNEL_NUMBER;
typedef union { typedef union {
struct { struct {
UINT8 UserId : 6; UINT8 UserId : 6;
UINT8 Reserved : 2; UINT8 Reserved : 2;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_USER_ID; } IPMI_USER_ID;
typedef struct { typedef struct {
IPMI_GET_USER_ACCESS_CHANNEL_NUMBER ChannelNumber; IPMI_GET_USER_ACCESS_CHANNEL_NUMBER ChannelNumber;
IPMI_USER_ID UserId; IPMI_USER_ID UserId;
} IPMI_GET_USER_ACCESS_REQUEST; } IPMI_GET_USER_ACCESS_REQUEST;
typedef union { typedef union {
struct { struct {
UINT8 MaxUserId : 6; UINT8 MaxUserId : 6;
UINT8 Reserved : 2; UINT8 Reserved : 2;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_GET_USER_ACCESS_MAX_USER_ID; } IPMI_GET_USER_ACCESS_MAX_USER_ID;
typedef union { typedef union {
struct { struct {
UINT8 CurrentUserId : 6; UINT8 CurrentUserId : 6;
UINT8 UserIdEnableStatus : 2; UINT8 UserIdEnableStatus : 2;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_GET_USER_ACCESS_CURRENT_USER; } IPMI_GET_USER_ACCESS_CURRENT_USER;
typedef union { typedef union {
struct { struct {
UINT8 FixedUserId : 6; UINT8 FixedUserId : 6;
UINT8 Reserved : 2; UINT8 Reserved : 2;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_GET_USER_ACCESS_FIXED_NAME_USER; } IPMI_GET_USER_ACCESS_FIXED_NAME_USER;
typedef union { typedef union {
struct { struct {
UINT8 UserPrivilegeLimit : 4; UINT8 UserPrivilegeLimit : 4;
UINT8 EnableIpmiMessaging : 1; UINT8 EnableIpmiMessaging : 1;
UINT8 EnableUserLinkAuthetication : 1; UINT8 EnableUserLinkAuthetication : 1;
UINT8 UserAccessAvailable : 1; UINT8 UserAccessAvailable : 1;
UINT8 Reserved : 1; UINT8 Reserved : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_GET_USER_ACCESS_CHANNEL_ACCESS; } IPMI_GET_USER_ACCESS_CHANNEL_ACCESS;
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
IPMI_GET_USER_ACCESS_MAX_USER_ID MaxUserId; IPMI_GET_USER_ACCESS_MAX_USER_ID MaxUserId;
IPMI_GET_USER_ACCESS_CURRENT_USER CurrentUser; IPMI_GET_USER_ACCESS_CURRENT_USER CurrentUser;
IPMI_GET_USER_ACCESS_FIXED_NAME_USER FixedNameUser; IPMI_GET_USER_ACCESS_FIXED_NAME_USER FixedNameUser;
IPMI_GET_USER_ACCESS_CHANNEL_ACCESS ChannelAccess; IPMI_GET_USER_ACCESS_CHANNEL_ACCESS ChannelAccess;
} IPMI_GET_USER_ACCESS_RESPONSE; } IPMI_GET_USER_ACCESS_RESPONSE;
// //
// Definitions for Set User Name command // Definitions for Set User Name command
// //
#define IPMI_APP_SET_USER_NAME 0x45 #define IPMI_APP_SET_USER_NAME 0x45
// //
// Constants and Structure definitions for "Set User Name" command to follow here // Constants and Structure definitions for "Set User Name" command to follow here
// //
typedef struct { typedef struct {
IPMI_USER_ID UserId; IPMI_USER_ID UserId;
UINT8 UserName[16]; UINT8 UserName[16];
} IPMI_SET_USER_NAME_REQUEST; } IPMI_SET_USER_NAME_REQUEST;
// //
// Definitions for Get User Name command // Definitions for Get User Name command
// //
#define IPMI_APP_GET_USER_NAME 0x46 #define IPMI_APP_GET_USER_NAME 0x46
// //
// Constants and Structure definitions for "Get User Name" command to follow here // Constants and Structure definitions for "Get User Name" command to follow here
// //
typedef struct { typedef struct {
IPMI_USER_ID UserId; IPMI_USER_ID UserId;
} IPMI_GET_USER_NAME_REQUEST; } IPMI_GET_USER_NAME_REQUEST;
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
UINT8 UserName[16]; UINT8 UserName[16];
} IPMI_GET_USER_NAME_RESPONSE; } IPMI_GET_USER_NAME_RESPONSE;
// //
// Definitions for Set User Password command // Definitions for Set User Password command
// //
#define IPMI_APP_SET_USER_PASSWORD 0x47 #define IPMI_APP_SET_USER_PASSWORD 0x47
// //
// Constants and Structure definitions for "Set User Password" command to follow here // Constants and Structure definitions for "Set User Password" command to follow here
@ -859,25 +858,25 @@ typedef struct {
typedef union { typedef union {
struct { struct {
UINT8 UserId : 6; UINT8 UserId : 6;
UINT8 Reserved : 1; UINT8 Reserved : 1;
UINT8 PasswordSize : 1; UINT8 PasswordSize : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_SET_USER_PASSWORD_USER_ID; } IPMI_SET_USER_PASSWORD_USER_ID;
typedef union { typedef union {
struct { struct {
UINT8 Operation : 2; UINT8 Operation : 2;
UINT8 Reserved : 6; UINT8 Reserved : 6;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_SET_USER_PASSWORD_OPERATION; } IPMI_SET_USER_PASSWORD_OPERATION;
typedef struct { typedef struct {
IPMI_SET_USER_PASSWORD_USER_ID UserId; IPMI_SET_USER_PASSWORD_USER_ID UserId;
IPMI_SET_USER_PASSWORD_OPERATION Operation; IPMI_SET_USER_PASSWORD_OPERATION Operation;
UINT8 PasswordData[0]; // 16 or 20 bytes, depending on the 'PasswordSize' field UINT8 PasswordData[0]; // 16 or 20 bytes, depending on the 'PasswordSize' field
} IPMI_SET_USER_PASSWORD_REQUEST; } IPMI_SET_USER_PASSWORD_REQUEST;
// //
@ -905,7 +904,7 @@ typedef struct {
// //
// Definitions for Get Payload activation Status command // Definitions for Get Payload activation Status command
// //
#define IPMI_APP_GET_PAYLOAD_ACTIVATION_STATUS 0x4a #define IPMI_APP_GET_PAYLOAD_ACTIVATION_STATUS 0x4a
// //
// Constants and Structure definitions for "Get Payload activation Status" command to follow here // Constants and Structure definitions for "Get Payload activation Status" command to follow here
@ -914,7 +913,7 @@ typedef struct {
// //
// Definitions for Get Payload Instance Info command // Definitions for Get Payload Instance Info command
// //
#define IPMI_APP_GET_PAYLOAD_INSTANCE_INFO 0x4b #define IPMI_APP_GET_PAYLOAD_INSTANCE_INFO 0x4b
// //
// Constants and Structure definitions for "Get Payload Instance Info" command to follow here // Constants and Structure definitions for "Get Payload Instance Info" command to follow here
@ -923,7 +922,7 @@ typedef struct {
// //
// Definitions for Set User Payload Access command // Definitions for Set User Payload Access command
// //
#define IPMI_APP_SET_USER_PAYLOAD_ACCESS 0x4C #define IPMI_APP_SET_USER_PAYLOAD_ACCESS 0x4C
// //
// Constants and Structure definitions for "Set User Payload Access" command to follow here // Constants and Structure definitions for "Set User Payload Access" command to follow here
@ -932,7 +931,7 @@ typedef struct {
// //
// Definitions for Get User Payload Access command // Definitions for Get User Payload Access command
// //
#define IPMI_APP_GET_USER_PAYLOAD_ACCESS 0x4D #define IPMI_APP_GET_USER_PAYLOAD_ACCESS 0x4D
// //
// Constants and Structure definitions for "Get User Payload Access" command to follow here // Constants and Structure definitions for "Get User Payload Access" command to follow here
@ -941,7 +940,7 @@ typedef struct {
// //
// Definitions for Get Channel Payload Support command // Definitions for Get Channel Payload Support command
// //
#define IPMI_APP_GET_CHANNEL_PAYLOAD_SUPPORT 0x4E #define IPMI_APP_GET_CHANNEL_PAYLOAD_SUPPORT 0x4E
// //
// Constants and Structure definitions for "Get Channel Payload Support" command to follow here // Constants and Structure definitions for "Get Channel Payload Support" command to follow here
@ -950,7 +949,7 @@ typedef struct {
// //
// Definitions for Get Channel Payload Version command // Definitions for Get Channel Payload Version command
// //
#define IPMI_APP_GET_CHANNEL_PAYLOAD_VERSION 0x4F #define IPMI_APP_GET_CHANNEL_PAYLOAD_VERSION 0x4F
// //
// Constants and Structure definitions for "Get Channel Payload Version" command to follow here // Constants and Structure definitions for "Get Channel Payload Version" command to follow here
@ -968,7 +967,7 @@ typedef struct {
// //
// Definitions for Master Write-Read command // Definitions for Master Write-Read command
// //
#define IPMI_APP_MASTER_WRITE_READ 0x52 #define IPMI_APP_MASTER_WRITE_READ 0x52
// //
// Constants and Structure definitions for "Master Write Read" command to follow here // Constants and Structure definitions for "Master Write Read" command to follow here
@ -977,7 +976,7 @@ typedef struct {
// //
// Definitions for Get Channel Cipher Suites command // Definitions for Get Channel Cipher Suites command
// //
#define IPMI_APP_GET_CHANNEL_CIPHER_SUITES 0x54 #define IPMI_APP_GET_CHANNEL_CIPHER_SUITES 0x54
// //
// Constants and Structure definitions for "Get Channel Cipher Suites" command to follow here // Constants and Structure definitions for "Get Channel Cipher Suites" command to follow here
@ -990,7 +989,7 @@ typedef struct {
// //
// Definitions for Suspend-Resume Payload Encryption command // Definitions for Suspend-Resume Payload Encryption command
// //
#define IPMI_APP_SUSPEND_RESUME_PAYLOAD_ENCRYPTION 0x55 #define IPMI_APP_SUSPEND_RESUME_PAYLOAD_ENCRYPTION 0x55
// //
// Constants and Structure definitions for "Suspend-Resume Payload Encryption" command to follow here // Constants and Structure definitions for "Suspend-Resume Payload Encryption" command to follow here
@ -1003,7 +1002,7 @@ typedef struct {
// //
// Definitions for Set Channel Security Keys command // Definitions for Set Channel Security Keys command
// //
#define IPMI_APP_SET_CHANNEL_SECURITY_KEYS 0x56 #define IPMI_APP_SET_CHANNEL_SECURITY_KEYS 0x56
// //
// Constants and Structure definitions for "Set Channel Security Keys" command to follow here // Constants and Structure definitions for "Set Channel Security Keys" command to follow here
@ -1012,7 +1011,7 @@ typedef struct {
// //
// Definitions for Get System Interface Capabilities command // Definitions for Get System Interface Capabilities command
// //
#define IPMI_APP_GET_SYSTEM_INTERFACE_CAPABILITIES 0x57 #define IPMI_APP_GET_SYSTEM_INTERFACE_CAPABILITIES 0x57
// //
// Constants and Structure definitions for "Get System Interface Capabilities" command to follow here // Constants and Structure definitions for "Get System Interface Capabilities" command to follow here

View File

@ -16,7 +16,7 @@
// //
// Net function definition for Bridge command // Net function definition for Bridge command
// //
#define IPMI_NETFN_BRIDGE 0x02 #define IPMI_NETFN_BRIDGE 0x02
// //
// Definitions for Get Bridge State command // Definitions for Get Bridge State command
@ -39,7 +39,7 @@
// //
// Definitions for Get ICMB Address command // Definitions for Get ICMB Address command
// //
#define IPMI_BRIDGE_GET_ICMB_ADDRESS 0x02 #define IPMI_BRIDGE_GET_ICMB_ADDRESS 0x02
// //
// Constants and Structure definitions for "Get ICMB Address" command to follow here // Constants and Structure definitions for "Get ICMB Address" command to follow here
@ -48,7 +48,7 @@
// //
// Definitions for Set ICMB Address command // Definitions for Set ICMB Address command
// //
#define IPMI_BRIDGE_SET_ICMB_ADDRESS 0x03 #define IPMI_BRIDGE_SET_ICMB_ADDRESS 0x03
// //
// Constants and Structure definitions for "Set ICMB Address" command to follow here // Constants and Structure definitions for "Set ICMB Address" command to follow here
@ -84,7 +84,7 @@
// //
// Definitions for Clear Bridge Statistics command // Definitions for Clear Bridge Statistics command
// //
#define IPMI_BRIDGE_CLEAR_STATISTICS 0x08 #define IPMI_BRIDGE_CLEAR_STATISTICS 0x08
// //
// Constants and Structure definitions for "Clear Bridge Statistics" command to follow here // Constants and Structure definitions for "Clear Bridge Statistics" command to follow here
@ -111,7 +111,7 @@
// //
// Definitions for Get ICMB Connection ID command // Definitions for Get ICMB Connection ID command
// //
#define IPMI_BRIDGE_GET_ICMB_CONNECTION_ID 0x0B #define IPMI_BRIDGE_GET_ICMB_CONNECTION_ID 0x0B
// //
// Constants and Structure definitions for "Get ICMB Connection ID" command to follow here // Constants and Structure definitions for "Get ICMB Connection ID" command to follow here
@ -147,7 +147,7 @@
// //
// Definitions for Set Discovered command // Definitions for Set Discovered command
// //
#define IPMI_BRIDGE_SET_DISCOVERED 0x12 #define IPMI_BRIDGE_SET_DISCOVERED 0x12
// //
// Constants and Structure definitions for "Set Discovered" command to follow here // Constants and Structure definitions for "Set Discovered" command to follow here
@ -156,7 +156,7 @@
// //
// Definitions for Get Chassis Device ID command // Definitions for Get Chassis Device ID command
// //
#define IPMI_BRIDGE_GET_CHASSIS_DEVICEID 0x13 #define IPMI_BRIDGE_GET_CHASSIS_DEVICEID 0x13
// //
// Constants and Structure definitions for "Get Chassis Device ID" command to follow here // Constants and Structure definitions for "Get Chassis Device ID" command to follow here
@ -165,7 +165,7 @@
// //
// Definitions for Set Chassis Device ID command // Definitions for Set Chassis Device ID command
// //
#define IPMI_BRIDGE_SET_CHASSIS_DEVICEID 0x14 #define IPMI_BRIDGE_SET_CHASSIS_DEVICEID 0x14
// //
// Constants and Structure definitions for "Set Chassis Device ID" command to follow here // Constants and Structure definitions for "Set Chassis Device ID" command to follow here

View File

@ -33,13 +33,13 @@
// Constants and Structure definitions for "Get Chassis Capabilities" command to follow here // Constants and Structure definitions for "Get Chassis Capabilities" command to follow here
// //
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
UINT8 CapabilitiesFlags; UINT8 CapabilitiesFlags;
UINT8 ChassisFruInfoDeviceAddress; UINT8 ChassisFruInfoDeviceAddress;
UINT8 ChassisSDRDeviceAddress; UINT8 ChassisSDRDeviceAddress;
UINT8 ChassisSELDeviceAddress; UINT8 ChassisSELDeviceAddress;
UINT8 ChassisSystemManagementDeviceAddress; UINT8 ChassisSystemManagementDeviceAddress;
UINT8 ChassisBridgeDeviceAddress; UINT8 ChassisBridgeDeviceAddress;
} IPMI_GET_CHASSIS_CAPABILITIES_RESPONSE; } IPMI_GET_CHASSIS_CAPABILITIES_RESPONSE;
// //
@ -51,37 +51,37 @@ typedef struct {
// Constants and Structure definitions for "Get Chassis Status" command to follow here // Constants and Structure definitions for "Get Chassis Status" command to follow here
// //
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
UINT8 CurrentPowerState; UINT8 CurrentPowerState;
UINT8 LastPowerEvent; UINT8 LastPowerEvent;
UINT8 MiscChassisState; UINT8 MiscChassisState;
UINT8 FrontPanelButtonCapabilities; UINT8 FrontPanelButtonCapabilities;
} IPMI_GET_CHASSIS_STATUS_RESPONSE; } IPMI_GET_CHASSIS_STATUS_RESPONSE;
// //
// Definitions for Chassis Control command // Definitions for Chassis Control command
// //
#define IPMI_CHASSIS_CONTROL 0x02 #define IPMI_CHASSIS_CONTROL 0x02
// //
// Constants and Structure definitions for "Chassis Control" command to follow here // Constants and Structure definitions for "Chassis Control" command to follow here
// //
typedef union { typedef union {
struct { struct {
UINT8 ChassisControl:4; UINT8 ChassisControl : 4;
UINT8 Reserved:4; UINT8 Reserved : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_CHASSIS_CONTROL_CHASSIS_CONTROL; } IPMI_CHASSIS_CONTROL_CHASSIS_CONTROL;
typedef struct { typedef struct {
IPMI_CHASSIS_CONTROL_CHASSIS_CONTROL ChassisControl; IPMI_CHASSIS_CONTROL_CHASSIS_CONTROL ChassisControl;
} IPMI_CHASSIS_CONTROL_REQUEST; } IPMI_CHASSIS_CONTROL_REQUEST;
// //
// Definitions for Chassis Reset command // Definitions for Chassis Reset command
// //
#define IPMI_CHASSIS_RESET 0x03 #define IPMI_CHASSIS_RESET 0x03
// //
// Constants and Structure definitions for "Chassis Reset" command to follow here // Constants and Structure definitions for "Chassis Reset" command to follow here
@ -115,19 +115,19 @@ typedef struct {
// //
typedef union { typedef union {
struct { struct {
UINT8 PowerRestorePolicy : 3; UINT8 PowerRestorePolicy : 3;
UINT8 Reserved : 5; UINT8 Reserved : 5;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_POWER_RESTORE_POLICY; } IPMI_POWER_RESTORE_POLICY;
typedef struct { typedef struct {
IPMI_POWER_RESTORE_POLICY PowerRestorePolicy; IPMI_POWER_RESTORE_POLICY PowerRestorePolicy;
} IPMI_SET_POWER_RESTORE_POLICY_REQUEST; } IPMI_SET_POWER_RESTORE_POLICY_REQUEST;
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
UINT8 PowerRestorePolicySupport; UINT8 PowerRestorePolicySupport;
} IPMI_SET_POWER_RESTORE_POLICY_RESPONSE; } IPMI_SET_POWER_RESTORE_POLICY_RESPONSE;
// //
@ -153,82 +153,82 @@ typedef struct {
typedef union { typedef union {
struct { struct {
UINT8 Cause:4; UINT8 Cause : 4;
UINT8 Reserved:4; UINT8 Reserved : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_SYSTEM_RESTART_CAUSE; } IPMI_SYSTEM_RESTART_CAUSE;
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
IPMI_SYSTEM_RESTART_CAUSE RestartCause; IPMI_SYSTEM_RESTART_CAUSE RestartCause;
UINT8 ChannelNumber; UINT8 ChannelNumber;
} IPMI_GET_SYSTEM_RESTART_CAUSE_RESPONSE; } IPMI_GET_SYSTEM_RESTART_CAUSE_RESPONSE;
// //
// Definitions for Set System BOOT options command // Definitions for Set System BOOT options command
// //
#define IPMI_CHASSIS_SET_SYSTEM_BOOT_OPTIONS 0x08 #define IPMI_CHASSIS_SET_SYSTEM_BOOT_OPTIONS 0x08
// //
// Constants and Structure definitions for "Set System boot options" command to follow here // Constants and Structure definitions for "Set System boot options" command to follow here
// //
typedef union { typedef union {
struct { struct {
UINT8 ParameterSelector:7; UINT8 ParameterSelector : 7;
UINT8 MarkParameterInvalid:1; UINT8 MarkParameterInvalid : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_SET_BOOT_OPTIONS_PARAMETER_VALID; } IPMI_SET_BOOT_OPTIONS_PARAMETER_VALID;
typedef struct { typedef struct {
IPMI_SET_BOOT_OPTIONS_PARAMETER_VALID ParameterValid; IPMI_SET_BOOT_OPTIONS_PARAMETER_VALID ParameterValid;
UINT8 ParameterData[0]; UINT8 ParameterData[0];
} IPMI_SET_BOOT_OPTIONS_REQUEST; } IPMI_SET_BOOT_OPTIONS_REQUEST;
typedef struct { typedef struct {
UINT8 CompletionCode:8; UINT8 CompletionCode : 8;
} IPMI_SET_BOOT_OPTIONS_RESPONSE; } IPMI_SET_BOOT_OPTIONS_RESPONSE;
// //
// Definitions for Get System Boot options command // Definitions for Get System Boot options command
// //
#define IPMI_CHASSIS_GET_SYSTEM_BOOT_OPTIONS 0x09 #define IPMI_CHASSIS_GET_SYSTEM_BOOT_OPTIONS 0x09
// //
// Constants and Structure definitions for "Get System boot options" command to follow here // Constants and Structure definitions for "Get System boot options" command to follow here
// //
typedef union { typedef union {
struct { struct {
UINT8 ParameterSelector:7; UINT8 ParameterSelector : 7;
UINT8 Reserved:1; UINT8 Reserved : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_GET_BOOT_OPTIONS_PARAMETER_SELECTOR; } IPMI_GET_BOOT_OPTIONS_PARAMETER_SELECTOR;
typedef struct { typedef struct {
IPMI_GET_BOOT_OPTIONS_PARAMETER_SELECTOR ParameterSelector; IPMI_GET_BOOT_OPTIONS_PARAMETER_SELECTOR ParameterSelector;
UINT8 SetSelector; UINT8 SetSelector;
UINT8 BlockSelector; UINT8 BlockSelector;
} IPMI_GET_BOOT_OPTIONS_REQUEST; } IPMI_GET_BOOT_OPTIONS_REQUEST;
typedef struct { typedef struct {
UINT8 Parameter; UINT8 Parameter;
UINT8 Valid; UINT8 Valid;
UINT8 Data1; UINT8 Data1;
UINT8 Data2; UINT8 Data2;
UINT8 Data3; UINT8 Data3;
UINT8 Data4; UINT8 Data4;
UINT8 Data5; UINT8 Data5;
} IPMI_GET_THE_SYSTEM_BOOT_OPTIONS; } IPMI_GET_THE_SYSTEM_BOOT_OPTIONS;
typedef struct { typedef struct {
UINT8 ParameterVersion; UINT8 ParameterVersion;
UINT8 ParameterValid; UINT8 ParameterValid;
UINT8 ChannelNumber; UINT8 ChannelNumber;
UINT32 SessionId; UINT32 SessionId;
UINT32 TimeStamp; UINT32 TimeStamp;
UINT8 Reserved[3]; UINT8 Reserved[3];
} IPMI_BOOT_INITIATOR; } IPMI_BOOT_INITIATOR;
// //
@ -250,36 +250,36 @@ typedef struct {
// //
typedef union { typedef union {
struct { struct {
UINT8 SetInProgress : 2; UINT8 SetInProgress : 2;
UINT8 Reserved : 6; UINT8 Reserved : 6;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_0; } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_0;
typedef struct { typedef struct {
UINT8 ServicePartitionSelector; UINT8 ServicePartitionSelector;
} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_1; } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_1;
typedef union { typedef union {
struct { struct {
UINT8 ServicePartitionDiscovered : 1; UINT8 ServicePartitionDiscovered : 1;
UINT8 ServicePartitionScanRequest : 1; UINT8 ServicePartitionScanRequest : 1;
UINT8 Reserved: 6; UINT8 Reserved : 6;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_2; } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_2;
typedef union { typedef union {
struct { struct {
UINT8 BmcBootFlagValid : 5; UINT8 BmcBootFlagValid : 5;
UINT8 Reserved : 3; UINT8 Reserved : 3;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_3; } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_3;
typedef struct { typedef struct {
UINT8 WriteMask; UINT8 WriteMask;
UINT8 BootInitiatorAcknowledgeData; UINT8 BootInitiatorAcknowledgeData;
} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_4; } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_4;
// //
@ -298,153 +298,153 @@ typedef struct {
#define IPMI_BOOT_DEVICE_SELECTOR_REMOTE_HARDDRIVE 0xB #define IPMI_BOOT_DEVICE_SELECTOR_REMOTE_HARDDRIVE 0xB
#define IPMI_BOOT_DEVICE_SELECTOR_FLOPPY 0xF #define IPMI_BOOT_DEVICE_SELECTOR_FLOPPY 0xF
#define BOOT_OPTION_HANDLED_BY_BIOS 0x01 #define BOOT_OPTION_HANDLED_BY_BIOS 0x01
// //
// Constant definitions for the 'BIOS Mux Control Override' field of Boot Option Parameters #5 // Constant definitions for the 'BIOS Mux Control Override' field of Boot Option Parameters #5
// //
#define BIOS_MUX_CONTROL_OVERRIDE_RECOMMEND_SETTING 0x00 #define BIOS_MUX_CONTROL_OVERRIDE_RECOMMEND_SETTING 0x00
#define BIOS_MUX_CONTROL_OVERRIDE_FORCE_TO_BMC 0x01 #define BIOS_MUX_CONTROL_OVERRIDE_FORCE_TO_BMC 0x01
#define BIOS_MUX_CONTROL_OVERRIDE_FORCE_TO_SYSTEM 0x02 #define BIOS_MUX_CONTROL_OVERRIDE_FORCE_TO_SYSTEM 0x02
typedef union { typedef union {
struct { struct {
UINT8 Reserved:5; UINT8 Reserved : 5;
UINT8 BiosBootType:1; UINT8 BiosBootType : 1;
UINT8 PersistentOptions:1; UINT8 PersistentOptions : 1;
UINT8 BootFlagValid:1; UINT8 BootFlagValid : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_1; } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_1;
typedef union { typedef union {
struct { struct {
UINT8 LockReset:1; UINT8 LockReset : 1;
UINT8 ScreenBlank:1; UINT8 ScreenBlank : 1;
UINT8 BootDeviceSelector:4; UINT8 BootDeviceSelector : 4;
UINT8 LockKeyboard:1; UINT8 LockKeyboard : 1;
UINT8 CmosClear:1; UINT8 CmosClear : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_2; } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_2;
typedef union { typedef union {
struct { struct {
UINT8 ConsoleRedirection:2; UINT8 ConsoleRedirection : 2;
UINT8 LockSleep:1; UINT8 LockSleep : 1;
UINT8 UserPasswordBypass:1; UINT8 UserPasswordBypass : 1;
UINT8 ForceProgressEventTrap:1; UINT8 ForceProgressEventTrap : 1;
UINT8 BiosVerbosity:2; UINT8 BiosVerbosity : 2;
UINT8 LockPower:1; UINT8 LockPower : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_3; } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_3;
typedef union { typedef union {
struct { struct {
UINT8 BiosMuxControlOverride:3; UINT8 BiosMuxControlOverride : 3;
UINT8 BiosSharedModeOverride:1; UINT8 BiosSharedModeOverride : 1;
UINT8 Reserved:4; UINT8 Reserved : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_4; } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_4;
typedef union { typedef union {
struct { struct {
UINT8 DeviceInstanceSelector:5; UINT8 DeviceInstanceSelector : 5;
UINT8 Reserved:3; UINT8 Reserved : 3;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_5; } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_5;
typedef struct { typedef struct {
IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_1 Data1; IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_1 Data1;
IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_2 Data2; IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_2 Data2;
IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_3 Data3; IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_3 Data3;
IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_4 Data4; IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_4 Data4;
IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_5 Data5; IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_5 Data5;
} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5; } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5;
typedef union { typedef union {
struct { struct {
UINT8 ChannelNumber:4; UINT8 ChannelNumber : 4;
UINT8 Reserved:4; UINT8 Reserved : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_BOOT_OPTIONS_CHANNEL_NUMBER; } IPMI_BOOT_OPTIONS_CHANNEL_NUMBER;
typedef struct { typedef struct {
IPMI_BOOT_OPTIONS_CHANNEL_NUMBER ChannelNumber; IPMI_BOOT_OPTIONS_CHANNEL_NUMBER ChannelNumber;
UINT8 SessionId[4]; UINT8 SessionId[4];
UINT8 BootInfoTimeStamp[4]; UINT8 BootInfoTimeStamp[4];
} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_6; } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_6;
typedef struct { typedef struct {
UINT8 SetSelector; UINT8 SetSelector;
UINT8 BlockData[16]; UINT8 BlockData[16];
} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_7; } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_7;
typedef union { typedef union {
IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_0 Parm0; IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_0 Parm0;
IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_1 Parm1; IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_1 Parm1;
IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_2 Parm2; IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_2 Parm2;
IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_3 Parm3; IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_3 Parm3;
IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_4 Parm4; IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_4 Parm4;
IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5 Parm5; IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5 Parm5;
IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_6 Parm6; IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_6 Parm6;
IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_7 Parm7; IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_7 Parm7;
} IPMI_BOOT_OPTIONS_PARAMETERS; } IPMI_BOOT_OPTIONS_PARAMETERS;
typedef union { typedef union {
struct { struct {
UINT8 ParameterVersion:4; UINT8 ParameterVersion : 4;
UINT8 Reserved:4; UINT8 Reserved : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_GET_BOOT_OPTIONS_PARAMETER_VERSION; } IPMI_GET_BOOT_OPTIONS_PARAMETER_VERSION;
typedef union { typedef union {
struct { struct {
UINT8 ParameterSelector:7; UINT8 ParameterSelector : 7;
UINT8 ParameterValid:1; UINT8 ParameterValid : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_GET_BOOT_OPTIONS_PARAMETER_VALID; } IPMI_GET_BOOT_OPTIONS_PARAMETER_VALID;
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
IPMI_GET_BOOT_OPTIONS_PARAMETER_VERSION ParameterVersion; IPMI_GET_BOOT_OPTIONS_PARAMETER_VERSION ParameterVersion;
IPMI_GET_BOOT_OPTIONS_PARAMETER_VALID ParameterValid; IPMI_GET_BOOT_OPTIONS_PARAMETER_VALID ParameterValid;
UINT8 ParameterData[0]; UINT8 ParameterData[0];
} IPMI_GET_BOOT_OPTIONS_RESPONSE; } IPMI_GET_BOOT_OPTIONS_RESPONSE;
// //
// Definitions for Set front panel button enables command // Definitions for Set front panel button enables command
// //
#define IPMI_CHASSIS_SET_FRONT_PANEL_BUTTON_ENABLES 0x0A #define IPMI_CHASSIS_SET_FRONT_PANEL_BUTTON_ENABLES 0x0A
// //
// Constants and Structure definitions for "Set front panel button enables" command to follow here // Constants and Structure definitions for "Set front panel button enables" command to follow here
// //
typedef union { typedef union {
struct { struct {
UINT8 DisablePoweroffButton:1; UINT8 DisablePoweroffButton : 1;
UINT8 DisableResetButton:1; UINT8 DisableResetButton : 1;
UINT8 DisableDiagnosticInterruptButton:1; UINT8 DisableDiagnosticInterruptButton : 1;
UINT8 DisableStandbyButton:1; UINT8 DisableStandbyButton : 1;
UINT8 Reserved:4; UINT8 Reserved : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_FRONT_PANEL_BUTTON_ENABLES; } IPMI_FRONT_PANEL_BUTTON_ENABLES;
typedef struct { typedef struct {
IPMI_FRONT_PANEL_BUTTON_ENABLES FrontPanelButtonEnables; IPMI_FRONT_PANEL_BUTTON_ENABLES FrontPanelButtonEnables;
} IPMI_CHASSIS_SET_FRONT_PANEL_BUTTON_ENABLES_REQUEST; } IPMI_CHASSIS_SET_FRONT_PANEL_BUTTON_ENABLES_REQUEST;
// //
// Definitions for Set Power Cycle Interval command // Definitions for Set Power Cycle Interval command
// //
#define IPMI_CHASSIS_SET_POWER_CYCLE_INTERVALS 0x0B #define IPMI_CHASSIS_SET_POWER_CYCLE_INTERVALS 0x0B
// //
// Constants and Structure definitions for "Set Power Cycle Interval" command to follow here // Constants and Structure definitions for "Set Power Cycle Interval" command to follow here
@ -453,7 +453,7 @@ typedef struct {
// //
// Definitions for Get POH Counter command // Definitions for Get POH Counter command
// //
#define IPMI_CHASSIS_GET_POH_COUNTER 0x0F #define IPMI_CHASSIS_GET_POH_COUNTER 0x0F
// //
// Constants and Structure definitions for "Get POH Counter" command to follow here // Constants and Structure definitions for "Get POH Counter" command to follow here

View File

@ -11,7 +11,7 @@
// //
// Net function definition for Firmware command // Net function definition for Firmware command
// //
#define IPMI_NETFN_FIRMWARE 0x08 #define IPMI_NETFN_FIRMWARE 0x08
// //
// All Firmware commands and their structure definitions to follow here // All Firmware commands and their structure definitions to follow here
@ -26,8 +26,8 @@
// Constants and Structure definitions for "Get Device ID" command to follow here // Constants and Structure definitions for "Get Device ID" command to follow here
// //
typedef struct { typedef struct {
UINT8 CurrentExecutionContext; UINT8 CurrentExecutionContext;
UINT8 PartitionPointer; UINT8 PartitionPointer;
} IPMI_MSG_GET_BMC_EXEC_RSP; } IPMI_MSG_GET_BMC_EXEC_RSP;
// //

View File

@ -20,7 +20,7 @@
// //
// Net function definition for Sensor command // Net function definition for Sensor command
// //
#define IPMI_NETFN_SENSOR_EVENT 0x04 #define IPMI_NETFN_SENSOR_EVENT 0x04
// //
// All Sensor commands and their structure definitions to follow here // All Sensor commands and their structure definitions to follow here
@ -29,17 +29,17 @@
// //
// Definitions for Send Platform Event Message command // Definitions for Send Platform Event Message command
// //
#define IPMI_SENSOR_PLATFORM_EVENT_MESSAGE 0x02 #define IPMI_SENSOR_PLATFORM_EVENT_MESSAGE 0x02
typedef struct { typedef struct {
UINT8 GeneratorId; UINT8 GeneratorId;
UINT8 EvMRevision; UINT8 EvMRevision;
UINT8 SensorType; UINT8 SensorType;
UINT8 SensorNumber; UINT8 SensorNumber;
UINT8 EventDirType; UINT8 EventDirType;
UINT8 OEMEvData1; UINT8 OEMEvData1;
UINT8 OEMEvData2; UINT8 OEMEvData2;
UINT8 OEMEvData3; UINT8 OEMEvData3;
} IPMI_PLATFORM_EVENT_MESSAGE_DATA_REQUEST; } IPMI_PLATFORM_EVENT_MESSAGE_DATA_REQUEST;
#pragma pack() #pragma pack()

View File

@ -40,43 +40,43 @@
// Constants and Structure definitions for "Get Fru Inventory Area Info" command to follow here // Constants and Structure definitions for "Get Fru Inventory Area Info" command to follow here
// //
typedef struct { typedef struct {
UINT8 DeviceId; UINT8 DeviceId;
} IPMI_GET_FRU_INVENTORY_AREA_INFO_REQUEST; } IPMI_GET_FRU_INVENTORY_AREA_INFO_REQUEST;
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
UINT16 InventoryAreaSize; UINT16 InventoryAreaSize;
UINT8 AccessType; UINT8 AccessType;
} IPMI_GET_FRU_INVENTORY_AREA_INFO_RESPONSE; } IPMI_GET_FRU_INVENTORY_AREA_INFO_RESPONSE;
// //
// Definitions for Read Fru Data command // Definitions for Read Fru Data command
// //
#define IPMI_STORAGE_READ_FRU_DATA 0x11 #define IPMI_STORAGE_READ_FRU_DATA 0x11
// //
// Constants and Structure definitions for "Read Fru Data" command to follow here // Constants and Structure definitions for "Read Fru Data" command to follow here
// //
typedef struct { typedef struct {
UINT8 FruDeviceId; UINT8 FruDeviceId;
UINT16 FruOffset; UINT16 FruOffset;
} IPMI_FRU_COMMON_DATA; } IPMI_FRU_COMMON_DATA;
typedef struct { typedef struct {
IPMI_FRU_COMMON_DATA Data; IPMI_FRU_COMMON_DATA Data;
UINT8 Count; UINT8 Count;
} IPMI_FRU_READ_COMMAND; } IPMI_FRU_READ_COMMAND;
typedef struct { typedef struct {
UINT8 DeviceId; UINT8 DeviceId;
UINT16 InventoryOffset; UINT16 InventoryOffset;
UINT8 CountToRead; UINT8 CountToRead;
} IPMI_READ_FRU_DATA_REQUEST; } IPMI_READ_FRU_DATA_REQUEST;
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
UINT8 CountReturned; UINT8 CountReturned;
UINT8 Data[0]; UINT8 Data[0];
} IPMI_READ_FRU_DATA_RESPONSE; } IPMI_READ_FRU_DATA_RESPONSE;
// //
@ -88,19 +88,19 @@ typedef struct {
// Constants and Structure definitions for "Write Fru Data" command to follow here // Constants and Structure definitions for "Write Fru Data" command to follow here
// //
typedef struct { typedef struct {
IPMI_FRU_COMMON_DATA Data; IPMI_FRU_COMMON_DATA Data;
UINT8 FruData[16]; UINT8 FruData[16];
} IPMI_FRU_WRITE_COMMAND; } IPMI_FRU_WRITE_COMMAND;
typedef struct { typedef struct {
UINT8 DeviceId; UINT8 DeviceId;
UINT16 InventoryOffset; UINT16 InventoryOffset;
UINT8 Data[0]; UINT8 Data[0];
} IPMI_WRITE_FRU_DATA_REQUEST; } IPMI_WRITE_FRU_DATA_REQUEST;
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
UINT8 CountWritten; UINT8 CountWritten;
} IPMI_WRITE_FRU_DATA_RESPONSE; } IPMI_WRITE_FRU_DATA_RESPONSE;
// //
@ -110,32 +110,32 @@ typedef struct {
// //
// Definitions for Get SDR Repository Info command // Definitions for Get SDR Repository Info command
// //
#define IPMI_STORAGE_GET_SDR_REPOSITORY_INFO 0x20 #define IPMI_STORAGE_GET_SDR_REPOSITORY_INFO 0x20
// //
// Constants and Structure definitions for "Get SDR Repository Info" command to follow here // Constants and Structure definitions for "Get SDR Repository Info" command to follow here
// //
typedef union { typedef union {
struct { struct {
UINT8 SdrRepAllocInfoCmd : 1; UINT8 SdrRepAllocInfoCmd : 1;
UINT8 SdrRepReserveCmd : 1; UINT8 SdrRepReserveCmd : 1;
UINT8 PartialAddSdrCmd : 1; UINT8 PartialAddSdrCmd : 1;
UINT8 DeleteSdrRepCmd : 1; UINT8 DeleteSdrRepCmd : 1;
UINT8 Reserved : 1; UINT8 Reserved : 1;
UINT8 SdrRepUpdateOp : 2; UINT8 SdrRepUpdateOp : 2;
UINT8 Overflow : 1; UINT8 Overflow : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_SDR_OPERATION_SUPPORT; } IPMI_SDR_OPERATION_SUPPORT;
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
UINT8 Version; UINT8 Version;
UINT16 RecordCount; UINT16 RecordCount;
UINT16 FreeSpace; UINT16 FreeSpace;
UINT32 RecentAdditionTimeStamp; UINT32 RecentAdditionTimeStamp;
UINT32 RecentEraseTimeStamp; UINT32 RecentEraseTimeStamp;
IPMI_SDR_OPERATION_SUPPORT OperationSupport; IPMI_SDR_OPERATION_SUPPORT OperationSupport;
} IPMI_GET_SDR_REPOSITORY_INFO_RESPONSE; } IPMI_GET_SDR_REPOSITORY_INFO_RESPONSE;
// //
@ -156,222 +156,222 @@ typedef struct {
// Constants and Structure definitions for "Reserve SDR Repository" command to follow here // Constants and Structure definitions for "Reserve SDR Repository" command to follow here
// //
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
UINT8 ReservationId[2]; // Reservation ID. LS byte first. UINT8 ReservationId[2]; // Reservation ID. LS byte first.
} IPMI_RESERVE_SDR_REPOSITORY_RESPONSE; } IPMI_RESERVE_SDR_REPOSITORY_RESPONSE;
// //
// Definitions for Get SDR command // Definitions for Get SDR command
// //
#define IPMI_STORAGE_GET_SDR 0x23 #define IPMI_STORAGE_GET_SDR 0x23
// //
// Constants and Structure definitions for "Get SDR" command to follow here // Constants and Structure definitions for "Get SDR" command to follow here
// //
typedef union { typedef union {
struct { struct {
UINT8 EventScanningEnabled : 1; UINT8 EventScanningEnabled : 1;
UINT8 EventScanningDisabled : 1; UINT8 EventScanningDisabled : 1;
UINT8 InitSensorType : 1; UINT8 InitSensorType : 1;
UINT8 InitHysteresis : 1; UINT8 InitHysteresis : 1;
UINT8 InitThresholds : 1; UINT8 InitThresholds : 1;
UINT8 InitEvent : 1; UINT8 InitEvent : 1;
UINT8 InitScanning : 1; UINT8 InitScanning : 1;
UINT8 SettableSensor : 1; UINT8 SettableSensor : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_SDR_RECORD_SENSOR_INIT; } IPMI_SDR_RECORD_SENSOR_INIT;
typedef union { typedef union {
struct { struct {
UINT8 EventMessageControl : 2; UINT8 EventMessageControl : 2;
UINT8 ThresholdAccessSupport : 2; UINT8 ThresholdAccessSupport : 2;
UINT8 HysteresisSupport : 2; UINT8 HysteresisSupport : 2;
UINT8 ReArmSupport : 1; UINT8 ReArmSupport : 1;
UINT8 IgnoreSensor : 1; UINT8 IgnoreSensor : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_SDR_RECORD_SENSOR_CAP; } IPMI_SDR_RECORD_SENSOR_CAP;
typedef union { typedef union {
struct { struct {
UINT8 Linearization : 7; UINT8 Linearization : 7;
UINT8 Reserved : 1; UINT8 Reserved : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_SDR_RECORD_LINEARIZATION; } IPMI_SDR_RECORD_LINEARIZATION;
typedef union { typedef union {
struct { struct {
UINT8 Toleremce : 6; UINT8 Toleremce : 6;
UINT8 MHi : 2; UINT8 MHi : 2;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_SDR_RECORD_M_TOLERANCE; } IPMI_SDR_RECORD_M_TOLERANCE;
typedef union { typedef union {
struct { struct {
UINT8 AccuracyLow : 6; UINT8 AccuracyLow : 6;
UINT8 BHi : 2; UINT8 BHi : 2;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_SDR_RECORD_B_ACCURACY; } IPMI_SDR_RECORD_B_ACCURACY;
typedef union { typedef union {
struct { struct {
UINT8 Reserved : 2; UINT8 Reserved : 2;
UINT8 AccuracyExp : 2; UINT8 AccuracyExp : 2;
UINT8 AccuracyHi : 4; UINT8 AccuracyHi : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_SDR_RECORD_ACCURACY_SENSOR_DIR; } IPMI_SDR_RECORD_ACCURACY_SENSOR_DIR;
typedef union { typedef union {
struct { struct {
UINT8 BExp : 4; UINT8 BExp : 4;
UINT8 RExp : 4; UINT8 RExp : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_SDR_RECORD_R_EXP_B_EXP; } IPMI_SDR_RECORD_R_EXP_B_EXP;
typedef union { typedef union {
struct { struct {
UINT8 NominalReadingSpscified : 1; UINT8 NominalReadingSpscified : 1;
UINT8 NominalMaxSpscified : 1; UINT8 NominalMaxSpscified : 1;
UINT8 NominalMinSpscified : 1; UINT8 NominalMinSpscified : 1;
UINT8 Reserved : 5; UINT8 Reserved : 5;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_SDR_RECORD_ANALOG_FLAGS; } IPMI_SDR_RECORD_ANALOG_FLAGS;
typedef struct { typedef struct {
UINT16 RecordId; // 1 UINT16 RecordId; // 1
UINT8 Version; // 3 UINT8 Version; // 3
UINT8 RecordType; // 4 UINT8 RecordType; // 4
UINT8 RecordLength; // 5 UINT8 RecordLength; // 5
UINT8 OwnerId; // 6 UINT8 OwnerId; // 6
UINT8 OwnerLun; // 7 UINT8 OwnerLun; // 7
UINT8 SensorNumber; // 8 UINT8 SensorNumber; // 8
UINT8 EntityId; // 9 UINT8 EntityId; // 9
UINT8 EntityInstance; // 10 UINT8 EntityInstance; // 10
IPMI_SDR_RECORD_SENSOR_INIT SensorInitialization; // 11 IPMI_SDR_RECORD_SENSOR_INIT SensorInitialization; // 11
IPMI_SDR_RECORD_SENSOR_CAP SensorCapabilities; // 12 IPMI_SDR_RECORD_SENSOR_CAP SensorCapabilities; // 12
UINT8 SensorType; // 13 UINT8 SensorType; // 13
UINT8 EventType; // 14 UINT8 EventType; // 14
UINT8 Reserved1[7]; // 15 UINT8 Reserved1[7]; // 15
UINT8 UnitType; // 22 UINT8 UnitType; // 22
UINT8 Reserved2; // 23 UINT8 Reserved2; // 23
IPMI_SDR_RECORD_LINEARIZATION Linearization; // 24 IPMI_SDR_RECORD_LINEARIZATION Linearization; // 24
UINT8 MLo; // 25 UINT8 MLo; // 25
IPMI_SDR_RECORD_M_TOLERANCE MHiTolerance; // 26 IPMI_SDR_RECORD_M_TOLERANCE MHiTolerance; // 26
UINT8 BLo; // 27 UINT8 BLo; // 27
IPMI_SDR_RECORD_B_ACCURACY BHiAccuracyLo; // 28 IPMI_SDR_RECORD_B_ACCURACY BHiAccuracyLo; // 28
IPMI_SDR_RECORD_ACCURACY_SENSOR_DIR AccuracySensorDirection; // 29 IPMI_SDR_RECORD_ACCURACY_SENSOR_DIR AccuracySensorDirection; // 29
IPMI_SDR_RECORD_R_EXP_B_EXP RExpBExp; // 30 IPMI_SDR_RECORD_R_EXP_B_EXP RExpBExp; // 30
IPMI_SDR_RECORD_ANALOG_FLAGS AnalogFlags; // 31 IPMI_SDR_RECORD_ANALOG_FLAGS AnalogFlags; // 31
UINT8 NominalReading; // 32 UINT8 NominalReading; // 32
UINT8 Reserved3[4]; // 33 UINT8 Reserved3[4]; // 33
UINT8 UpperNonRecoverThreshold; // 37 UINT8 UpperNonRecoverThreshold; // 37
UINT8 UpperCriticalThreshold; // 38 UINT8 UpperCriticalThreshold; // 38
UINT8 UpperNonCriticalThreshold; // 39 UINT8 UpperNonCriticalThreshold; // 39
UINT8 LowerNonRecoverThreshold; // 40 UINT8 LowerNonRecoverThreshold; // 40
UINT8 LowerCriticalThreshold; // 41 UINT8 LowerCriticalThreshold; // 41
UINT8 LowerNonCriticalThreshold; // 42 UINT8 LowerNonCriticalThreshold; // 42
UINT8 Reserved4[5]; // 43 UINT8 Reserved4[5]; // 43
UINT8 IdStringLength; // 48 UINT8 IdStringLength; // 48
UINT8 AsciiIdString[16]; // 49 - 64 UINT8 AsciiIdString[16]; // 49 - 64
} IPMI_SDR_RECORD_STRUCT_1; } IPMI_SDR_RECORD_STRUCT_1;
typedef struct { typedef struct {
UINT16 RecordId; // 1 UINT16 RecordId; // 1
UINT8 Version; // 3 UINT8 Version; // 3
UINT8 RecordType; // 4 UINT8 RecordType; // 4
UINT8 RecordLength; // 5 UINT8 RecordLength; // 5
UINT8 OwnerId; // 6 UINT8 OwnerId; // 6
UINT8 OwnerLun; // 7 UINT8 OwnerLun; // 7
UINT8 SensorNumber; // 8 UINT8 SensorNumber; // 8
UINT8 EntityId; // 9 UINT8 EntityId; // 9
UINT8 EntityInstance; // 10 UINT8 EntityInstance; // 10
IPMI_SDR_RECORD_SENSOR_INIT SensorInitialization; // 11 IPMI_SDR_RECORD_SENSOR_INIT SensorInitialization; // 11
IPMI_SDR_RECORD_SENSOR_CAP SensorCapabilities; // 12 IPMI_SDR_RECORD_SENSOR_CAP SensorCapabilities; // 12
UINT8 SensorType; // 13 UINT8 SensorType; // 13
UINT8 EventType; // 14 UINT8 EventType; // 14
UINT8 Reserved1[7]; // 15 UINT8 Reserved1[7]; // 15
UINT8 UnitType; // 22 UINT8 UnitType; // 22
UINT8 Reserved2[9]; // 23 UINT8 Reserved2[9]; // 23
UINT8 IdStringLength; // 32 UINT8 IdStringLength; // 32
UINT8 AsciiIdString[16]; // 33 - 48 UINT8 AsciiIdString[16]; // 33 - 48
} IPMI_SDR_RECORD_STRUCT_2; } IPMI_SDR_RECORD_STRUCT_2;
typedef union { typedef union {
struct { struct {
UINT8 Reserved1 : 1; UINT8 Reserved1 : 1;
UINT8 ControllerSlaveAddress : 7; UINT8 ControllerSlaveAddress : 7;
UINT8 FruDeviceId; UINT8 FruDeviceId;
UINT8 BusId : 3; UINT8 BusId : 3;
UINT8 Lun : 2; UINT8 Lun : 2;
UINT8 Reserved2 : 2; UINT8 Reserved2 : 2;
UINT8 LogicalFruDevice : 1; UINT8 LogicalFruDevice : 1;
UINT8 Reserved3 : 4; UINT8 Reserved3 : 4;
UINT8 ChannelNumber : 4; UINT8 ChannelNumber : 4;
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} IPMI_FRU_DATA_INFO; } IPMI_FRU_DATA_INFO;
typedef union { typedef union {
struct { struct {
UINT8 Length : 4; UINT8 Length : 4;
UINT8 Reserved : 1; UINT8 Reserved : 1;
UINT8 StringType : 3; UINT8 StringType : 3;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_SDR_RECORD_DEV_ID_STR_TYPE_LENGTH; } IPMI_SDR_RECORD_DEV_ID_STR_TYPE_LENGTH;
typedef struct { typedef struct {
UINT16 RecordId; // 1 UINT16 RecordId; // 1
UINT8 Version; // 3 UINT8 Version; // 3
UINT8 RecordType; // 4 UINT8 RecordType; // 4
UINT8 RecordLength; // 5 UINT8 RecordLength; // 5
IPMI_FRU_DATA_INFO FruDeviceData; // 6 IPMI_FRU_DATA_INFO FruDeviceData; // 6
UINT8 Reserved; // 10 UINT8 Reserved; // 10
UINT8 DeviceType; // 11 UINT8 DeviceType; // 11
UINT8 DeviceTypeModifier; // 12 UINT8 DeviceTypeModifier; // 12
UINT8 FruEntityId; // 13 UINT8 FruEntityId; // 13
UINT8 FruEntityInstance; // 14 UINT8 FruEntityInstance; // 14
UINT8 OemReserved; // 15 UINT8 OemReserved; // 15
IPMI_SDR_RECORD_DEV_ID_STR_TYPE_LENGTH StringTypeLength; // 16 IPMI_SDR_RECORD_DEV_ID_STR_TYPE_LENGTH StringTypeLength; // 16
UINT8 String[16]; // 17 UINT8 String[16]; // 17
} IPMI_SDR_RECORD_STRUCT_11; } IPMI_SDR_RECORD_STRUCT_11;
typedef struct { typedef struct {
UINT16 RecordId; //1 UINT16 RecordId; // 1
UINT8 Version; //3 UINT8 Version; // 3
UINT8 RecordType; //4 UINT8 RecordType; // 4
UINT8 RecordLength; //5 UINT8 RecordLength; // 5
UINT8 ManufacturerId[3]; //6 UINT8 ManufacturerId[3]; // 6
UINT8 StringChars[20]; UINT8 StringChars[20];
} IPMI_SDR_RECORD_STRUCT_C0; } IPMI_SDR_RECORD_STRUCT_C0;
typedef struct { typedef struct {
UINT16 RecordId; //1 UINT16 RecordId; // 1
UINT8 Version; //3 UINT8 Version; // 3
UINT8 RecordType; //4 UINT8 RecordType; // 4
UINT8 RecordLength; //5 UINT8 RecordLength; // 5
} IPMI_SDR_RECORD_STRUCT_HEADER; } IPMI_SDR_RECORD_STRUCT_HEADER;
typedef union { typedef union {
IPMI_SDR_RECORD_STRUCT_1 SensorType1; IPMI_SDR_RECORD_STRUCT_1 SensorType1;
IPMI_SDR_RECORD_STRUCT_2 SensorType2; IPMI_SDR_RECORD_STRUCT_2 SensorType2;
IPMI_SDR_RECORD_STRUCT_11 SensorType11; IPMI_SDR_RECORD_STRUCT_11 SensorType11;
IPMI_SDR_RECORD_STRUCT_C0 SensorTypeC0; IPMI_SDR_RECORD_STRUCT_C0 SensorTypeC0;
IPMI_SDR_RECORD_STRUCT_HEADER SensorHeader; IPMI_SDR_RECORD_STRUCT_HEADER SensorHeader;
} IPMI_SENSOR_RECORD_STRUCT; } IPMI_SENSOR_RECORD_STRUCT;
typedef struct { typedef struct {
UINT16 ReservationId; UINT16 ReservationId;
UINT16 RecordId; UINT16 RecordId;
UINT8 RecordOffset; UINT8 RecordOffset;
UINT8 BytesToRead; UINT8 BytesToRead;
} IPMI_GET_SDR_REQUEST; } IPMI_GET_SDR_REQUEST;
typedef struct { typedef struct {
@ -383,7 +383,7 @@ typedef struct {
// //
// Definitions for Add SDR command // Definitions for Add SDR command
// //
#define IPMI_STORAGE_ADD_SDR 0x24 #define IPMI_STORAGE_ADD_SDR 0x24
// //
// Constants and Structure definitions for "Add SDR" command to follow here // Constants and Structure definitions for "Add SDR" command to follow here
@ -392,7 +392,7 @@ typedef struct {
// //
// Definitions for Partial Add SDR command // Definitions for Partial Add SDR command
// //
#define IPMI_STORAGE_PARTIAL_ADD_SDR 0x25 #define IPMI_STORAGE_PARTIAL_ADD_SDR 0x25
// //
// Constants and Structure definitions for "Partial Add SDR" command to follow here // Constants and Structure definitions for "Partial Add SDR" command to follow here
@ -410,7 +410,7 @@ typedef struct {
// //
// Definitions for Clear SDR Repository command // Definitions for Clear SDR Repository command
// //
#define IPMI_STORAGE_CLEAR_SDR 0x27 #define IPMI_STORAGE_CLEAR_SDR 0x27
// //
// Constants and Structure definitions for "Clear SDR Repository" command to follow here // Constants and Structure definitions for "Clear SDR Repository" command to follow here
@ -419,7 +419,7 @@ typedef struct {
// //
// Definitions for Get SDR Repository Time command // Definitions for Get SDR Repository Time command
// //
#define IPMI_STORAGE_GET_SDR_REPOSITORY_TIME 0x28 #define IPMI_STORAGE_GET_SDR_REPOSITORY_TIME 0x28
// //
// Constants and Structure definitions for "Get SDR Repository Time" command to follow here // Constants and Structure definitions for "Get SDR Repository Time" command to follow here
@ -428,7 +428,7 @@ typedef struct {
// //
// Definitions for Set SDR Repository Time command // Definitions for Set SDR Repository Time command
// //
#define IPMI_STORAGE_SET_SDR_REPOSITORY_TIME 0x29 #define IPMI_STORAGE_SET_SDR_REPOSITORY_TIME 0x29
// //
// Constants and Structure definitions for "Set SDR Repository Time" command to follow here // Constants and Structure definitions for "Set SDR Repository Time" command to follow here
@ -437,7 +437,7 @@ typedef struct {
// //
// Definitions for Enter SDR Repository Update Mode command // Definitions for Enter SDR Repository Update Mode command
// //
#define IPMI_STORAGE_ENTER_SDR_UPDATE_MODE 0x2A #define IPMI_STORAGE_ENTER_SDR_UPDATE_MODE 0x2A
// //
// Constants and Structure definitions for "Enter SDR Repository Update Mode" command to follow here // Constants and Structure definitions for "Enter SDR Repository Update Mode" command to follow here
@ -473,26 +473,26 @@ typedef struct {
// //
// Constants and Structure definitions for "Get SEL Info" command to follow here // Constants and Structure definitions for "Get SEL Info" command to follow here
// //
#define IPMI_GET_SEL_INFO_OPERATION_SUPPORT_GET_SEL_ALLOCATION_INFO_CMD BIT0 #define IPMI_GET_SEL_INFO_OPERATION_SUPPORT_GET_SEL_ALLOCATION_INFO_CMD BIT0
#define IPMI_GET_SEL_INFO_OPERATION_SUPPORT_RESERVE_SEL_CMD BIT1 #define IPMI_GET_SEL_INFO_OPERATION_SUPPORT_RESERVE_SEL_CMD BIT1
#define IPMI_GET_SEL_INFO_OPERATION_SUPPORT_PARTIAL_ADD_SEL_ENTRY_CMD BIT2 #define IPMI_GET_SEL_INFO_OPERATION_SUPPORT_PARTIAL_ADD_SEL_ENTRY_CMD BIT2
#define IPMI_GET_SEL_INFO_OPERATION_SUPPORT_DELETE_SEL_CMD BIT3 #define IPMI_GET_SEL_INFO_OPERATION_SUPPORT_DELETE_SEL_CMD BIT3
#define IPMI_GET_SEL_INFO_OPERATION_SUPPORT_OVERFLOW_FLAG BIT7 #define IPMI_GET_SEL_INFO_OPERATION_SUPPORT_OVERFLOW_FLAG BIT7
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
UINT8 Version; // Version of SEL UINT8 Version; // Version of SEL
UINT16 NoOfEntries; // No of Entries in the SEL UINT16 NoOfEntries; // No of Entries in the SEL
UINT16 FreeSpace; // Free space in Bytes UINT16 FreeSpace; // Free space in Bytes
UINT32 RecentAddTimeStamp; // Most Recent Addition of Time Stamp UINT32 RecentAddTimeStamp; // Most Recent Addition of Time Stamp
UINT32 RecentEraseTimeStamp; // Most Recent Erasure of Time Stamp UINT32 RecentEraseTimeStamp; // Most Recent Erasure of Time Stamp
UINT8 OperationSupport; // Operation Support UINT8 OperationSupport; // Operation Support
} IPMI_GET_SEL_INFO_RESPONSE; } IPMI_GET_SEL_INFO_RESPONSE;
// //
// Definitions for Get SEL Allocation Info command // Definitions for Get SEL Allocation Info command
// //
#define IPMI_STORAGE_GET_SEL_ALLOCATION_INFO 0x41 #define IPMI_STORAGE_GET_SEL_ALLOCATION_INFO 0x41
// //
// Constants and Structure definitions for "Get SEL Allocation Info" command to follow here // Constants and Structure definitions for "Get SEL Allocation Info" command to follow here
@ -501,20 +501,20 @@ typedef struct {
// //
// Definitions for Reserve SEL command // Definitions for Reserve SEL command
// //
#define IPMI_STORAGE_RESERVE_SEL 0x42 #define IPMI_STORAGE_RESERVE_SEL 0x42
// //
// Constants and Structure definitions for "Reserve SEL" command to follow here // Constants and Structure definitions for "Reserve SEL" command to follow here
// //
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
UINT8 ReservationId[2]; // Reservation ID. LS byte first. UINT8 ReservationId[2]; // Reservation ID. LS byte first.
} IPMI_RESERVE_SEL_RESPONSE; } IPMI_RESERVE_SEL_RESPONSE;
// //
// Definitions for Get SEL Entry command // Definitions for Get SEL Entry command
// //
#define IPMI_STORAGE_GET_SEL_ENTRY 0x43 #define IPMI_STORAGE_GET_SEL_ENTRY 0x43
// //
// Constants and Structure definitions for "Get SEL Entry" command to follow here // Constants and Structure definitions for "Get SEL Entry" command to follow here
@ -524,82 +524,82 @@ typedef struct {
// Below is Definitions for SEL Record Formats (Chapter 32) // Below is Definitions for SEL Record Formats (Chapter 32)
// //
typedef struct { typedef struct {
UINT16 RecordId; UINT16 RecordId;
UINT8 RecordType; UINT8 RecordType;
UINT32 TimeStamp; UINT32 TimeStamp;
UINT16 GeneratorId; UINT16 GeneratorId;
UINT8 EvMRevision; UINT8 EvMRevision;
UINT8 SensorType; UINT8 SensorType;
UINT8 SensorNumber; UINT8 SensorNumber;
UINT8 EventDirType; UINT8 EventDirType;
UINT8 OEMEvData1; UINT8 OEMEvData1;
UINT8 OEMEvData2; UINT8 OEMEvData2;
UINT8 OEMEvData3; UINT8 OEMEvData3;
} IPMI_SEL_EVENT_RECORD_DATA; } IPMI_SEL_EVENT_RECORD_DATA;
typedef struct { typedef struct {
UINT16 RecordId; UINT16 RecordId;
UINT8 RecordType; // C0h-DFh = OEM system event record UINT8 RecordType; // C0h-DFh = OEM system event record
UINT32 TimeStamp; UINT32 TimeStamp;
UINT8 ManufacturerId[3]; UINT8 ManufacturerId[3];
UINT8 OEMDefined[6]; UINT8 OEMDefined[6];
} IPMI_TIMESTAMPED_OEM_SEL_RECORD_DATA; } IPMI_TIMESTAMPED_OEM_SEL_RECORD_DATA;
typedef struct { typedef struct {
UINT16 RecordId; UINT16 RecordId;
UINT8 RecordType; // E0h-FFh = OEM system event record UINT8 RecordType; // E0h-FFh = OEM system event record
UINT8 OEMDefined[13]; UINT8 OEMDefined[13];
} IPMI_NON_TIMESTAMPED_OEM_SEL_RECORD_DATA; } IPMI_NON_TIMESTAMPED_OEM_SEL_RECORD_DATA;
typedef struct { typedef struct {
UINT8 ReserveId[2]; // Reservation ID, LS Byte First UINT8 ReserveId[2]; // Reservation ID, LS Byte First
UINT8 SelRecID[2]; // Sel Record ID, LS Byte First UINT8 SelRecID[2]; // Sel Record ID, LS Byte First
UINT8 Offset; // Offset Into Record UINT8 Offset; // Offset Into Record
UINT8 BytesToRead; // Bytes to be Read, 0xFF for entire record UINT8 BytesToRead; // Bytes to be Read, 0xFF for entire record
} IPMI_GET_SEL_ENTRY_REQUEST; } IPMI_GET_SEL_ENTRY_REQUEST;
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
UINT16 NextSelRecordId; // Next SEL Record ID, LS Byte first UINT16 NextSelRecordId; // Next SEL Record ID, LS Byte first
IPMI_SEL_EVENT_RECORD_DATA RecordData; IPMI_SEL_EVENT_RECORD_DATA RecordData;
} IPMI_GET_SEL_ENTRY_RESPONSE; } IPMI_GET_SEL_ENTRY_RESPONSE;
// //
// Definitions for Add SEL Entry command // Definitions for Add SEL Entry command
// //
#define IPMI_STORAGE_ADD_SEL_ENTRY 0x44 #define IPMI_STORAGE_ADD_SEL_ENTRY 0x44
// //
// Constants and Structure definitions for "Add SEL Entry" command to follow here // Constants and Structure definitions for "Add SEL Entry" command to follow here
// //
typedef struct { typedef struct {
IPMI_SEL_EVENT_RECORD_DATA RecordData; IPMI_SEL_EVENT_RECORD_DATA RecordData;
} IPMI_ADD_SEL_ENTRY_REQUEST; } IPMI_ADD_SEL_ENTRY_REQUEST;
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
UINT16 RecordId; // Record ID for added record, LS Byte first UINT16 RecordId; // Record ID for added record, LS Byte first
} IPMI_ADD_SEL_ENTRY_RESPONSE; } IPMI_ADD_SEL_ENTRY_RESPONSE;
// //
// Definitions for Partial Add SEL Entry command // Definitions for Partial Add SEL Entry command
// //
#define IPMI_STORAGE_PARTIAL_ADD_SEL_ENTRY 0x45 #define IPMI_STORAGE_PARTIAL_ADD_SEL_ENTRY 0x45
// //
// Constants and Structure definitions for "Partial Add SEL Entry" command to follow here // Constants and Structure definitions for "Partial Add SEL Entry" command to follow here
// //
typedef struct { typedef struct {
UINT16 ReservationId; UINT16 ReservationId;
UINT16 RecordId; UINT16 RecordId;
UINT8 OffsetIntoRecord; UINT8 OffsetIntoRecord;
UINT8 InProgress; UINT8 InProgress;
UINT8 RecordData[0]; UINT8 RecordData[0];
} IPMI_PARTIAL_ADD_SEL_ENTRY_REQUEST; } IPMI_PARTIAL_ADD_SEL_ENTRY_REQUEST;
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
UINT16 RecordId; UINT16 RecordId;
} IPMI_PARTIAL_ADD_SEL_ENTRY_RESPONSE; } IPMI_PARTIAL_ADD_SEL_ENTRY_RESPONSE;
// //
@ -611,46 +611,46 @@ typedef struct {
// Constants and Structure definitions for "Delete SEL Entry" command to follow here // Constants and Structure definitions for "Delete SEL Entry" command to follow here
// //
typedef struct { typedef struct {
UINT8 ReserveId[2]; // Reservation ID, LS byte first UINT8 ReserveId[2]; // Reservation ID, LS byte first
UINT8 RecordToDelete[2]; // Record to Delete, LS Byte First UINT8 RecordToDelete[2]; // Record to Delete, LS Byte First
} IPMI_DELETE_SEL_ENTRY_REQUEST; } IPMI_DELETE_SEL_ENTRY_REQUEST;
#define IPMI_DELETE_SEL_ENTRY_RESPONSE_TYPE_UNSUPPORTED 0x80 #define IPMI_DELETE_SEL_ENTRY_RESPONSE_TYPE_UNSUPPORTED 0x80
#define IPMI_DELETE_SEL_ENTRY_RESPONSE_ERASE_IN_PROGRESS 0x81 #define IPMI_DELETE_SEL_ENTRY_RESPONSE_ERASE_IN_PROGRESS 0x81
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
UINT16 RecordId; // Record ID added. LS byte first UINT16 RecordId; // Record ID added. LS byte first
} IPMI_DELETE_SEL_ENTRY_RESPONSE; } IPMI_DELETE_SEL_ENTRY_RESPONSE;
// //
// Definitions for Clear SEL command // Definitions for Clear SEL command
// //
#define IPMI_STORAGE_CLEAR_SEL 0x47 #define IPMI_STORAGE_CLEAR_SEL 0x47
// //
// Constants and Structure definitions for "Clear SEL" command to follow here // Constants and Structure definitions for "Clear SEL" command to follow here
// //
#define IPMI_CLEAR_SEL_REQUEST_C_CHAR_ASCII 0x43 #define IPMI_CLEAR_SEL_REQUEST_C_CHAR_ASCII 0x43
#define IPMI_CLEAR_SEL_REQUEST_L_CHAR_ASCII 0x4C #define IPMI_CLEAR_SEL_REQUEST_L_CHAR_ASCII 0x4C
#define IPMI_CLEAR_SEL_REQUEST_R_CHAR_ASCII 0x52 #define IPMI_CLEAR_SEL_REQUEST_R_CHAR_ASCII 0x52
#define IPMI_CLEAR_SEL_REQUEST_INITIALIZE_ERASE 0xAA #define IPMI_CLEAR_SEL_REQUEST_INITIALIZE_ERASE 0xAA
#define IPMI_CLEAR_SEL_REQUEST_GET_ERASE_STATUS 0x00 #define IPMI_CLEAR_SEL_REQUEST_GET_ERASE_STATUS 0x00
typedef struct { typedef struct {
UINT8 Reserve[2]; // Reserve ID, LSB first UINT8 Reserve[2]; // Reserve ID, LSB first
UINT8 AscC; // Ascii for 'C' (0x43) UINT8 AscC; // Ascii for 'C' (0x43)
UINT8 AscL; // Ascii for 'L' (0x4c) UINT8 AscL; // Ascii for 'L' (0x4c)
UINT8 AscR; // Ascii for 'R' (0x52) UINT8 AscR; // Ascii for 'R' (0x52)
UINT8 Erase; // 0xAA, Initiate Erase, 0x00 Get Erase Status UINT8 Erase; // 0xAA, Initiate Erase, 0x00 Get Erase Status
} IPMI_CLEAR_SEL_REQUEST; } IPMI_CLEAR_SEL_REQUEST;
#define IPMI_CLEAR_SEL_RESPONSE_ERASURE_IN_PROGRESS 0x00 #define IPMI_CLEAR_SEL_RESPONSE_ERASURE_IN_PROGRESS 0x00
#define IPMI_CLEAR_SEL_RESPONSE_ERASURE_COMPLETED 0x01 #define IPMI_CLEAR_SEL_RESPONSE_ERASURE_COMPLETED 0x01
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
UINT8 ErasureProgress; UINT8 ErasureProgress;
} IPMI_CLEAR_SEL_RESPONSE; } IPMI_CLEAR_SEL_RESPONSE;
// //
@ -662,8 +662,8 @@ typedef struct {
// Constants and Structure definitions for "Get SEL Time" command to follow here // Constants and Structure definitions for "Get SEL Time" command to follow here
// //
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
UINT32 Timestamp; // Present Timestamp clock reading. LS byte first. UINT32 Timestamp; // Present Timestamp clock reading. LS byte first.
} IPMI_GET_SEL_TIME_RESPONSE; } IPMI_GET_SEL_TIME_RESPONSE;
// //
@ -675,7 +675,7 @@ typedef struct {
// Constants and Structure definitions for "Set SEL Time" command to follow here // Constants and Structure definitions for "Set SEL Time" command to follow here
// //
typedef struct { typedef struct {
UINT32 Timestamp; UINT32 Timestamp;
} IPMI_SET_SEL_TIME_REQUEST; } IPMI_SET_SEL_TIME_REQUEST;
// //
@ -699,85 +699,85 @@ typedef struct {
// //
// Definitions for Get SEL Time UTC Offset command // Definitions for Get SEL Time UTC Offset command
// //
#define IPMI_STORAGE_GET_SEL_TIME_UTC_OFFSET 0x5C #define IPMI_STORAGE_GET_SEL_TIME_UTC_OFFSET 0x5C
// //
// Constants and Structure definitions for "Get SEL Time UTC Offset" command to follow here // Constants and Structure definitions for "Get SEL Time UTC Offset" command to follow here
// //
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
// //
// 16-bit, 2s-complement signed integer for the offset in minutes from UTC to SEL Time. // 16-bit, 2s-complement signed integer for the offset in minutes from UTC to SEL Time.
// LS-byte first. (ranges from -1440 to 1440) // LS-byte first. (ranges from -1440 to 1440)
// //
INT16 UtcOffset; INT16 UtcOffset;
} IPMI_GET_SEL_TIME_UTC_OFFSET_RESPONSE; } IPMI_GET_SEL_TIME_UTC_OFFSET_RESPONSE;
// //
// Definitions for Set SEL Time UTC Offset command // Definitions for Set SEL Time UTC Offset command
// //
#define IPMI_STORAGE_SET_SEL_TIME_UTC_OFFSET 0x5D #define IPMI_STORAGE_SET_SEL_TIME_UTC_OFFSET 0x5D
// //
// Constants and Structure definitions for "Set SEL Time UTC Offset" command to follow here // Constants and Structure definitions for "Set SEL Time UTC Offset" command to follow here
// //
#define IPMI_COMPLETE_SEL_RECORD 0xFF #define IPMI_COMPLETE_SEL_RECORD 0xFF
#define IPMI_SEL_SYSTEM_RECORD 0x02 #define IPMI_SEL_SYSTEM_RECORD 0x02
#define IPMI_SEL_OEM_TIME_STAMP_RECORD_START 0xC0 #define IPMI_SEL_OEM_TIME_STAMP_RECORD_START 0xC0
#define IPMI_SEL_OEM_TIME_STAMP_RECORD_END 0xDF #define IPMI_SEL_OEM_TIME_STAMP_RECORD_END 0xDF
#define IPMI_SEL_OEM_NO_TIME_STAMP_RECORD_START 0xE0 #define IPMI_SEL_OEM_NO_TIME_STAMP_RECORD_START 0xE0
#define IPMI_SEL_OEM_NO_TIME_STAMP_RECORD_END 0xFF #define IPMI_SEL_OEM_NO_TIME_STAMP_RECORD_END 0xFF
#define IPMI_SEL_EVENT_DIR(EventDirType) (EventDirType >> 7) #define IPMI_SEL_EVENT_DIR(EventDirType) (EventDirType >> 7)
#define IPMI_SEL_EVENT_DIR_ASSERTION_EVENT 0x00 #define IPMI_SEL_EVENT_DIR_ASSERTION_EVENT 0x00
#define IPMI_SEL_EVENT_DIR_DEASSERTION_EVENT 0x01 #define IPMI_SEL_EVENT_DIR_DEASSERTION_EVENT 0x01
#define IPMI_SEL_EVENT_TYPE(EventDirType) (EventDirType & 0x7F) #define IPMI_SEL_EVENT_TYPE(EventDirType) (EventDirType & 0x7F)
// //
// Event/Reading Type Code Ranges (Chapter 42) // Event/Reading Type Code Ranges (Chapter 42)
// //
#define IPMI_SEL_EVENT_TYPE_UNSPECIFIED 0x00 #define IPMI_SEL_EVENT_TYPE_UNSPECIFIED 0x00
#define IPMI_SEL_EVENT_TYPE_THRESHOLD 0x01 #define IPMI_SEL_EVENT_TYPE_THRESHOLD 0x01
#define IPMI_SEL_EVENT_TYPE_GENERIC_START 0x02 #define IPMI_SEL_EVENT_TYPE_GENERIC_START 0x02
#define IPMI_SEL_EVENT_TYPE_GENERIC_END 0x0C #define IPMI_SEL_EVENT_TYPE_GENERIC_END 0x0C
#define IPMI_SEL_EVENT_TYPE_SENSOR_SPECIFIC 0x6F #define IPMI_SEL_EVENT_TYPE_SENSOR_SPECIFIC 0x6F
#define IPMI_SEL_EVENT_TYPE_OEM_START 0x70 #define IPMI_SEL_EVENT_TYPE_OEM_START 0x70
#define IPMI_SEL_EVENT_TYPE_OEM_END 0x7F #define IPMI_SEL_EVENT_TYPE_OEM_END 0x7F
#define SOFTWARE_ID_FROM_GENERATOR_ID(GeneratorId) ((GeneratorId & 0xFF) >> 1) #define SOFTWARE_ID_FROM_GENERATOR_ID(GeneratorId) ((GeneratorId & 0xFF) >> 1)
// //
// System Software IDs definitions (Section 5.5) // System Software IDs definitions (Section 5.5)
// //
#define IPMI_SWID_BIOS_RANGE_START 0x00 #define IPMI_SWID_BIOS_RANGE_START 0x00
#define IPMI_SWID_BIOS_RANGE_END 0x0F #define IPMI_SWID_BIOS_RANGE_END 0x0F
#define IPMI_SWID_SMI_HANDLER_RANGE_START 0x10 #define IPMI_SWID_SMI_HANDLER_RANGE_START 0x10
#define IPMI_SWID_SMI_HANDLER_RANGE_END 0x1F #define IPMI_SWID_SMI_HANDLER_RANGE_END 0x1F
#define IPMI_SWID_SMS_RANGE_START 0x20 #define IPMI_SWID_SMS_RANGE_START 0x20
#define IPMI_SWID_SMS_RANGE_END 0x2F #define IPMI_SWID_SMS_RANGE_END 0x2F
#define IPMI_SWID_OEM_RANGE_START 0x30 #define IPMI_SWID_OEM_RANGE_START 0x30
#define IPMI_SWID_OEM_RANGE_END 0x3F #define IPMI_SWID_OEM_RANGE_END 0x3F
#define IPMI_SWID_REMOTE_CONSOLE_RANGE_START 0x40 #define IPMI_SWID_REMOTE_CONSOLE_RANGE_START 0x40
#define IPMI_SWID_REMOTE_CONSOLE_RANGE_END 0x46 #define IPMI_SWID_REMOTE_CONSOLE_RANGE_END 0x46
#define IPMI_SWID_TERMINAL_REMOTE_CONSOLE_ID 0x47 #define IPMI_SWID_TERMINAL_REMOTE_CONSOLE_ID 0x47
#define SLAVE_ADDRESS_FROM_GENERATOR_ID(GeneratorId) ((GeneratorId & 0xFF) >> 1) #define SLAVE_ADDRESS_FROM_GENERATOR_ID(GeneratorId) ((GeneratorId & 0xFF) >> 1)
#define LUN_FROM_GENERATOR_ID(GeneratorId) ((GeneratorId >> 8) & 0x03) #define LUN_FROM_GENERATOR_ID(GeneratorId) ((GeneratorId >> 8) & 0x03)
#define CHANNEL_NUMBER_FROM_GENERATOR_ID(GeneratorId) ((GeneratorId >> 12) & 0x0F) #define CHANNEL_NUMBER_FROM_GENERATOR_ID(GeneratorId) ((GeneratorId >> 12) & 0x0F)
#define IPMI_EVM_REVISION 0x04 #define IPMI_EVM_REVISION 0x04
#define IPMI_BIOS_ID 0x18 #define IPMI_BIOS_ID 0x18
#define IPMI_FORMAT_REV 0x00 #define IPMI_FORMAT_REV 0x00
#define IPMI_FORMAT_REV1 0x01 #define IPMI_FORMAT_REV1 0x01
#define IPMI_SOFTWARE_ID 0x01 #define IPMI_SOFTWARE_ID 0x01
#define IPMI_PLATFORM_VAL_ID 0x01 #define IPMI_PLATFORM_VAL_ID 0x01
#define IPMI_GENERATOR_ID(i,f) ((i << 1) | (f << 1) | IPMI_SOFTWARE_ID) #define IPMI_GENERATOR_ID(i, f) ((i << 1) | (f << 1) | IPMI_SOFTWARE_ID)
#define IPMI_SENSOR_TYPE_EVENT_CODE_DISCRETE 0x6F #define IPMI_SENSOR_TYPE_EVENT_CODE_DISCRETE 0x6F
#define IPMI_OEM_SPECIFIC_DATA 0x02 #define IPMI_OEM_SPECIFIC_DATA 0x02
#define IPMI_SENSOR_SPECIFIC_DATA 0x03 #define IPMI_SENSOR_SPECIFIC_DATA 0x03
#pragma pack() #pragma pack()
#endif #endif

View File

@ -30,7 +30,7 @@
// //
// Definitions for Set Lan Configuration Parameters command // Definitions for Set Lan Configuration Parameters command
// //
#define IPMI_TRANSPORT_SET_LAN_CONFIG_PARAMETERS 0x01 #define IPMI_TRANSPORT_SET_LAN_CONFIG_PARAMETERS 0x01
// //
// Constants and Structure definitions for "Set Lan Configuration Parameters" command to follow here // Constants and Structure definitions for "Set Lan Configuration Parameters" command to follow here
@ -105,158 +105,158 @@ typedef enum {
typedef union { typedef union {
struct { struct {
UINT8 NoAuth : 1; UINT8 NoAuth : 1;
UINT8 MD2Auth : 1; UINT8 MD2Auth : 1;
UINT8 MD5Auth : 1; UINT8 MD5Auth : 1;
UINT8 Reserved1 : 1; UINT8 Reserved1 : 1;
UINT8 StraightPswd : 1; UINT8 StraightPswd : 1;
UINT8 OemType : 1; UINT8 OemType : 1;
UINT8 Reserved2 : 2; UINT8 Reserved2 : 2;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_LAN_AUTH_TYPE; } IPMI_LAN_AUTH_TYPE;
typedef struct { typedef struct {
UINT8 IpAddress[4]; UINT8 IpAddress[4];
} IPMI_LAN_IP_ADDRESS; } IPMI_LAN_IP_ADDRESS;
typedef union { typedef union {
struct { struct {
UINT8 AddressSrc : 4; UINT8 AddressSrc : 4;
UINT8 Reserved : 4; UINT8 Reserved : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_LAN_IP_ADDRESS_SRC; } IPMI_LAN_IP_ADDRESS_SRC;
typedef struct { typedef struct {
UINT8 MacAddress[6]; UINT8 MacAddress[6];
} IPMI_LAN_MAC_ADDRESS; } IPMI_LAN_MAC_ADDRESS;
typedef struct { typedef struct {
UINT8 IpAddress[4]; UINT8 IpAddress[4];
} IPMI_LAN_SUBNET_MASK; } IPMI_LAN_SUBNET_MASK;
typedef union { typedef union {
struct { struct {
UINT8 IpFlag : 3; UINT8 IpFlag : 3;
UINT8 Reserved : 5; UINT8 Reserved : 5;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_LAN_IPV4_HDR_PARAM_DATA_2; } IPMI_LAN_IPV4_HDR_PARAM_DATA_2;
typedef union { typedef union {
struct { struct {
UINT8 Precedence : 3; UINT8 Precedence : 3;
UINT8 Reserved : 1; UINT8 Reserved : 1;
UINT8 ServiceType : 4; UINT8 ServiceType : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_LAN_IPV4_HDR_PARAM_DATA_3; } IPMI_LAN_IPV4_HDR_PARAM_DATA_3;
typedef struct { typedef struct {
UINT8 TimeToLive; UINT8 TimeToLive;
IPMI_LAN_IPV4_HDR_PARAM_DATA_2 Data2; IPMI_LAN_IPV4_HDR_PARAM_DATA_2 Data2;
IPMI_LAN_IPV4_HDR_PARAM_DATA_3 Data3; IPMI_LAN_IPV4_HDR_PARAM_DATA_3 Data3;
} IPMI_LAN_IPV4_HDR_PARAM; } IPMI_LAN_IPV4_HDR_PARAM;
typedef struct { typedef struct {
UINT8 RcmpPortMsb; UINT8 RcmpPortMsb;
UINT8 RcmpPortLsb; UINT8 RcmpPortLsb;
} IPMI_LAN_RCMP_PORT; } IPMI_LAN_RCMP_PORT;
typedef union { typedef union {
struct { struct {
UINT8 EnableBmcArpResponse : 1; UINT8 EnableBmcArpResponse : 1;
UINT8 EnableBmcGratuitousArp : 1; UINT8 EnableBmcGratuitousArp : 1;
UINT8 Reserved : 6; UINT8 Reserved : 6;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_LAN_BMC_GENERATED_ARP_CONTROL; } IPMI_LAN_BMC_GENERATED_ARP_CONTROL;
typedef struct { typedef struct {
UINT8 ArpInterval; UINT8 ArpInterval;
} IPMI_LAN_ARP_INTERVAL; } IPMI_LAN_ARP_INTERVAL;
typedef struct { typedef struct {
UINT8 Data[18]; UINT8 Data[18];
} IPMI_LAN_COMMUNITY_STRING; } IPMI_LAN_COMMUNITY_STRING;
typedef union { typedef union {
struct { struct {
UINT8 DestinationSelector : 4; UINT8 DestinationSelector : 4;
UINT8 Reserved : 4; UINT8 Reserved : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_LAN_SET_SELECTOR; } IPMI_LAN_SET_SELECTOR;
typedef union { typedef union {
struct { struct {
UINT8 DestinationType : 3; UINT8 DestinationType : 3;
UINT8 Reserved : 4; UINT8 Reserved : 4;
UINT8 AlertAcknowledged : 1; UINT8 AlertAcknowledged : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_LAN_DEST_TYPE_DESTINATION_TYPE; } IPMI_LAN_DEST_TYPE_DESTINATION_TYPE;
typedef struct { typedef struct {
IPMI_LAN_SET_SELECTOR SetSelector; IPMI_LAN_SET_SELECTOR SetSelector;
IPMI_LAN_DEST_TYPE_DESTINATION_TYPE DestinationType; IPMI_LAN_DEST_TYPE_DESTINATION_TYPE DestinationType;
} IPMI_LAN_DEST_TYPE; } IPMI_LAN_DEST_TYPE;
typedef union { typedef union {
struct { struct {
UINT8 AlertingIpAddressSelector : 4; UINT8 AlertingIpAddressSelector : 4;
UINT8 AddressFormat : 4; UINT8 AddressFormat : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_LAN_ADDRESS_FORMAT; } IPMI_LAN_ADDRESS_FORMAT;
typedef union { typedef union {
struct { struct {
UINT8 UseDefaultGateway : 1; UINT8 UseDefaultGateway : 1;
UINT8 Reserved2 : 7; UINT8 Reserved2 : 7;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_LAN_GATEWAY_SELECTOR; } IPMI_LAN_GATEWAY_SELECTOR;
typedef struct { typedef struct {
IPMI_LAN_SET_SELECTOR SetSelector; IPMI_LAN_SET_SELECTOR SetSelector;
IPMI_LAN_ADDRESS_FORMAT AddressFormat; IPMI_LAN_ADDRESS_FORMAT AddressFormat;
IPMI_LAN_GATEWAY_SELECTOR GatewaySelector; IPMI_LAN_GATEWAY_SELECTOR GatewaySelector;
IPMI_LAN_IP_ADDRESS AlertingIpAddress; IPMI_LAN_IP_ADDRESS AlertingIpAddress;
IPMI_LAN_MAC_ADDRESS AlertingMacAddress; IPMI_LAN_MAC_ADDRESS AlertingMacAddress;
} IPMI_LAN_DEST_ADDRESS; } IPMI_LAN_DEST_ADDRESS;
typedef union { typedef union {
IPMI_LAN_AUTH_TYPE IpmiLanAuthType; IPMI_LAN_AUTH_TYPE IpmiLanAuthType;
IPMI_LAN_IP_ADDRESS IpmiLanIpAddress; IPMI_LAN_IP_ADDRESS IpmiLanIpAddress;
IPMI_LAN_IP_ADDRESS_SRC IpmiLanIpAddressSrc; IPMI_LAN_IP_ADDRESS_SRC IpmiLanIpAddressSrc;
IPMI_LAN_MAC_ADDRESS IpmiLanMacAddress; IPMI_LAN_MAC_ADDRESS IpmiLanMacAddress;
IPMI_LAN_SUBNET_MASK IpmiLanSubnetMask; IPMI_LAN_SUBNET_MASK IpmiLanSubnetMask;
IPMI_LAN_IPV4_HDR_PARAM IpmiLanIpv4HdrParam; IPMI_LAN_IPV4_HDR_PARAM IpmiLanIpv4HdrParam;
IPMI_LAN_RCMP_PORT IpmiLanPrimaryRcmpPort; IPMI_LAN_RCMP_PORT IpmiLanPrimaryRcmpPort;
IPMI_LAN_BMC_GENERATED_ARP_CONTROL IpmiLanArpControl; IPMI_LAN_BMC_GENERATED_ARP_CONTROL IpmiLanArpControl;
IPMI_LAN_ARP_INTERVAL IpmiLanArpInterval; IPMI_LAN_ARP_INTERVAL IpmiLanArpInterval;
IPMI_LAN_COMMUNITY_STRING IpmiLanCommunityString; IPMI_LAN_COMMUNITY_STRING IpmiLanCommunityString;
IPMI_LAN_DEST_TYPE IpmiLanDestType; IPMI_LAN_DEST_TYPE IpmiLanDestType;
IPMI_LAN_DEST_ADDRESS IpmiLanDestAddress; IPMI_LAN_DEST_ADDRESS IpmiLanDestAddress;
} IPMI_LAN_OPTIONS; } IPMI_LAN_OPTIONS;
typedef union { typedef union {
struct { struct {
UINT8 AddressSourceType : 4; UINT8 AddressSourceType : 4;
UINT8 Reserved : 3; UINT8 Reserved : 3;
UINT8 EnableStatus : 1; UINT8 EnableStatus : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_LAN_IPV6_ADDRESS_SOURCE_TYPE; } IPMI_LAN_IPV6_ADDRESS_SOURCE_TYPE;
typedef struct { typedef struct {
UINT8 SetSelector; UINT8 SetSelector;
IPMI_LAN_IPV6_ADDRESS_SOURCE_TYPE AddressSourceType; IPMI_LAN_IPV6_ADDRESS_SOURCE_TYPE AddressSourceType;
UINT8 Ipv6Address[16]; UINT8 Ipv6Address[16];
UINT8 AddressPrefixLen; UINT8 AddressPrefixLen;
UINT8 AddressStatus; UINT8 AddressStatus;
} IPMI_LAN_IPV6_STATIC_ADDRESS; } IPMI_LAN_IPV6_STATIC_ADDRESS;
// //
@ -264,54 +264,54 @@ typedef struct {
// //
typedef union { typedef union {
struct { struct {
UINT8 SetInProgress:2; UINT8 SetInProgress : 2;
UINT8 Reserved:6; UINT8 Reserved : 6;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_LAN_SET_IN_PROGRESS; } IPMI_LAN_SET_IN_PROGRESS;
typedef union { typedef union {
struct { struct {
UINT8 ChannelNo : 4; UINT8 ChannelNo : 4;
UINT8 Reserved : 4; UINT8 Reserved : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_SET_LAN_CONFIG_CHANNEL_NUM; } IPMI_SET_LAN_CONFIG_CHANNEL_NUM;
typedef struct { typedef struct {
IPMI_SET_LAN_CONFIG_CHANNEL_NUM ChannelNumber; IPMI_SET_LAN_CONFIG_CHANNEL_NUM ChannelNumber;
UINT8 ParameterSelector; UINT8 ParameterSelector;
UINT8 ParameterData[0]; UINT8 ParameterData[0];
} IPMI_SET_LAN_CONFIGURATION_PARAMETERS_COMMAND_REQUEST; } IPMI_SET_LAN_CONFIGURATION_PARAMETERS_COMMAND_REQUEST;
// //
// Definitions for Get Lan Configuration Parameters command // Definitions for Get Lan Configuration Parameters command
// //
#define IPMI_TRANSPORT_GET_LAN_CONFIG_PARAMETERS 0x02 #define IPMI_TRANSPORT_GET_LAN_CONFIG_PARAMETERS 0x02
// //
// Constants and Structure definitions for "Get Lan Configuration Parameters" command to follow here // Constants and Structure definitions for "Get Lan Configuration Parameters" command to follow here
// //
typedef union { typedef union {
struct { struct {
UINT8 ChannelNo : 4; UINT8 ChannelNo : 4;
UINT8 Reserved : 3; UINT8 Reserved : 3;
UINT8 GetParameter : 1; UINT8 GetParameter : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_GET_LAN_CONFIG_CHANNEL_NUM; } IPMI_GET_LAN_CONFIG_CHANNEL_NUM;
typedef struct { typedef struct {
IPMI_GET_LAN_CONFIG_CHANNEL_NUM ChannelNumber; IPMI_GET_LAN_CONFIG_CHANNEL_NUM ChannelNumber;
UINT8 ParameterSelector; UINT8 ParameterSelector;
UINT8 SetSelector; UINT8 SetSelector;
UINT8 BlockSelector; UINT8 BlockSelector;
} IPMI_GET_LAN_CONFIGURATION_PARAMETERS_REQUEST; } IPMI_GET_LAN_CONFIGURATION_PARAMETERS_REQUEST;
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
UINT8 ParameterRevision; UINT8 ParameterRevision;
UINT8 ParameterData[0]; UINT8 ParameterData[0];
} IPMI_GET_LAN_CONFIGURATION_PARAMETERS_RESPONSE; } IPMI_GET_LAN_CONFIGURATION_PARAMETERS_RESPONSE;
// //
@ -326,7 +326,7 @@ typedef struct {
// //
// Definitions for Get IP-UDP-RMCP Statistics command // Definitions for Get IP-UDP-RMCP Statistics command
// //
#define IPMI_TRANSPORT_GET_PACKET_STATISTICS 0x04 #define IPMI_TRANSPORT_GET_PACKET_STATISTICS 0x04
// //
// Constants and Structure definitions for "Get IP-UDP-RMCP Statistics" command to follow here // Constants and Structure definitions for "Get IP-UDP-RMCP Statistics" command to follow here
@ -350,144 +350,144 @@ typedef struct {
// //
typedef union { typedef union {
struct { struct {
UINT8 NoAuthentication : 1; UINT8 NoAuthentication : 1;
UINT8 MD2Authentication : 1; UINT8 MD2Authentication : 1;
UINT8 MD5Authentication : 1; UINT8 MD5Authentication : 1;
UINT8 Reserved1 : 1; UINT8 Reserved1 : 1;
UINT8 StraightPassword : 1; UINT8 StraightPassword : 1;
UINT8 OemProprietary : 1; UINT8 OemProprietary : 1;
UINT8 Reservd2 : 2; UINT8 Reservd2 : 2;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_EMP_AUTH_TYPE; } IPMI_EMP_AUTH_TYPE;
typedef union { typedef union {
struct { struct {
UINT8 EnableBasicMode : 1; UINT8 EnableBasicMode : 1;
UINT8 EnablePPPMode : 1; UINT8 EnablePPPMode : 1;
UINT8 EnableTerminalMode : 1; UINT8 EnableTerminalMode : 1;
UINT8 Reserved1 : 2; UINT8 Reserved1 : 2;
UINT8 SnoopOsPPPNegotiation : 1; UINT8 SnoopOsPPPNegotiation : 1;
UINT8 Reserved2 : 1; UINT8 Reserved2 : 1;
UINT8 DirectConnect : 1; UINT8 DirectConnect : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_EMP_CONNECTION_TYPE; } IPMI_EMP_CONNECTION_TYPE;
typedef union { typedef union {
struct { struct {
UINT8 InactivityTimeout : 4; UINT8 InactivityTimeout : 4;
UINT8 Reserved : 4; UINT8 Reserved : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_EMP_INACTIVITY_TIMEOUT; } IPMI_EMP_INACTIVITY_TIMEOUT;
typedef union { typedef union {
struct { struct {
UINT8 IpmiCallback : 1; UINT8 IpmiCallback : 1;
UINT8 CBCPCallback : 1; UINT8 CBCPCallback : 1;
UINT8 Reserved : 6; UINT8 Reserved : 6;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_CHANNEL_CALLBACK_CONTROL_ENABLE; } IPMI_CHANNEL_CALLBACK_CONTROL_ENABLE;
typedef union { typedef union {
struct { struct {
UINT8 CbcpEnableNoCallback : 1; UINT8 CbcpEnableNoCallback : 1;
UINT8 CbcpEnablePreSpecifiedNumber : 1; UINT8 CbcpEnablePreSpecifiedNumber : 1;
UINT8 CbcpEnableUserSpecifiedNumber : 1; UINT8 CbcpEnableUserSpecifiedNumber : 1;
UINT8 CbcpEnableCallbackFromList : 1; UINT8 CbcpEnableCallbackFromList : 1;
UINT8 Reserved : 4; UINT8 Reserved : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_CHANNEL_CALLBACK_CONTROL_CBCP; } IPMI_CHANNEL_CALLBACK_CONTROL_CBCP;
typedef struct { typedef struct {
IPMI_CHANNEL_CALLBACK_CONTROL_ENABLE CallbackEnable; IPMI_CHANNEL_CALLBACK_CONTROL_ENABLE CallbackEnable;
IPMI_CHANNEL_CALLBACK_CONTROL_CBCP CBCPNegotiation; IPMI_CHANNEL_CALLBACK_CONTROL_CBCP CBCPNegotiation;
UINT8 CallbackDestination1; UINT8 CallbackDestination1;
UINT8 CallbackDestination2; UINT8 CallbackDestination2;
UINT8 CallbackDestination3; UINT8 CallbackDestination3;
} IPMI_EMP_CHANNEL_CALLBACK_CONTROL; } IPMI_EMP_CHANNEL_CALLBACK_CONTROL;
typedef union { typedef union {
struct { struct {
UINT8 CloseSessionOnDCDLoss : 1; UINT8 CloseSessionOnDCDLoss : 1;
UINT8 EnableSessionInactivityTimeout : 1; UINT8 EnableSessionInactivityTimeout : 1;
UINT8 Reserved : 6; UINT8 Reserved : 6;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_EMP_SESSION_TERMINATION; } IPMI_EMP_SESSION_TERMINATION;
typedef union { typedef union {
struct { struct {
UINT8 Reserved1 : 5; UINT8 Reserved1 : 5;
UINT8 EnableDtrHangup : 1; UINT8 EnableDtrHangup : 1;
UINT8 FlowControl : 2; UINT8 FlowControl : 2;
UINT8 BitRate : 4; UINT8 BitRate : 4;
UINT8 Reserved2 : 4; UINT8 Reserved2 : 4;
UINT8 SaveSetting : 1; UINT8 SaveSetting : 1;
UINT8 SetComPort : 1; UINT8 SetComPort : 1;
UINT8 Reserved3 : 6; UINT8 Reserved3 : 6;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
UINT16 Uint16; UINT16 Uint16;
} IPMI_EMP_MESSAGING_COM_SETTING; } IPMI_EMP_MESSAGING_COM_SETTING;
typedef union { typedef union {
struct { struct {
UINT8 RingDurationInterval : 6; UINT8 RingDurationInterval : 6;
UINT8 Reserved1 : 2; UINT8 Reserved1 : 2;
UINT8 RingDeadTime : 4; UINT8 RingDeadTime : 4;
UINT8 Reserved2 : 4; UINT8 Reserved2 : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_EMP_MODEM_RING_TIME; } IPMI_EMP_MODEM_RING_TIME;
typedef struct { typedef struct {
UINT8 Reserved; UINT8 Reserved;
UINT8 InitString[48]; UINT8 InitString[48];
} IPMI_EMP_MODEM_INIT_STRING; } IPMI_EMP_MODEM_INIT_STRING;
typedef struct { typedef struct {
UINT8 EscapeSequence[5]; UINT8 EscapeSequence[5];
} IPMI_EMP_MODEM_ESC_SEQUENCE; } IPMI_EMP_MODEM_ESC_SEQUENCE;
typedef struct { typedef struct {
UINT8 HangupSequence[8]; UINT8 HangupSequence[8];
} IPMI_EMP_MODEM_HANGUP_SEQUENCE; } IPMI_EMP_MODEM_HANGUP_SEQUENCE;
typedef struct { typedef struct {
UINT8 ModelDialCommend[8]; UINT8 ModelDialCommend[8];
} IPMI_MODEM_DIALUP_COMMAND; } IPMI_MODEM_DIALUP_COMMAND;
typedef struct { typedef struct {
UINT8 PageBlackoutInterval; UINT8 PageBlackoutInterval;
} IPMI_PAGE_BLACKOUT_INTERVAL; } IPMI_PAGE_BLACKOUT_INTERVAL;
typedef struct { typedef struct {
UINT8 CommunityString[18]; UINT8 CommunityString[18];
} IPMI_EMP_COMMUNITY_STRING; } IPMI_EMP_COMMUNITY_STRING;
typedef union { typedef union {
struct { struct {
UINT8 Reserved : 4; UINT8 Reserved : 4;
UINT8 DialStringSelector : 4; UINT8 DialStringSelector : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_DIAL_PAGE_DESTINATION; } IPMI_DIAL_PAGE_DESTINATION;
typedef union { typedef union {
struct { struct {
UINT8 TapAccountSelector : 4; UINT8 TapAccountSelector : 4;
UINT8 Reserved : 4; UINT8 Reserved : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_TAP_PAGE_DESTINATION; } IPMI_TAP_PAGE_DESTINATION;
typedef struct { typedef struct {
UINT8 PPPAccountSetSelector; UINT8 PPPAccountSetSelector;
UINT8 DialStringSelector; UINT8 DialStringSelector;
} IPMI_PPP_ALERT_DESTINATION; } IPMI_PPP_ALERT_DESTINATION;
typedef union { typedef union {
@ -498,137 +498,136 @@ typedef union {
typedef union { typedef union {
struct { struct {
UINT8 DestinationSelector : 4; UINT8 DestinationSelector : 4;
UINT8 Reserved : 4; UINT8 Reserved : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_EMP_DESTINATION_SELECTOR; } IPMI_EMP_DESTINATION_SELECTOR;
typedef union { typedef union {
struct { struct {
UINT8 DestinationType : 4; UINT8 DestinationType : 4;
UINT8 Reserved : 3; UINT8 Reserved : 3;
UINT8 AlertAckRequired : 1; UINT8 AlertAckRequired : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_EMP_DESTINATION_TYPE; } IPMI_EMP_DESTINATION_TYPE;
typedef union { typedef union {
struct { struct {
UINT8 NumRetriesCall : 3; UINT8 NumRetriesCall : 3;
UINT8 Reserved1 : 1; UINT8 Reserved1 : 1;
UINT8 NumRetryAlert : 3; UINT8 NumRetryAlert : 3;
UINT8 Reserved2 : 1; UINT8 Reserved2 : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_EMP_RETRIES; } IPMI_EMP_RETRIES;
typedef struct { typedef struct {
IPMI_EMP_DESTINATION_SELECTOR DestinationSelector; IPMI_EMP_DESTINATION_SELECTOR DestinationSelector;
IPMI_EMP_DESTINATION_TYPE DestinationType; IPMI_EMP_DESTINATION_TYPE DestinationType;
UINT8 AlertAckTimeoutSeconds; UINT8 AlertAckTimeoutSeconds;
IPMI_EMP_RETRIES Retries; IPMI_EMP_RETRIES Retries;
IPMI_DEST_TYPE_SPECIFIC DestinationTypeSpecific; IPMI_DEST_TYPE_SPECIFIC DestinationTypeSpecific;
} IPMI_EMP_DESTINATION_INFO; } IPMI_EMP_DESTINATION_INFO;
typedef union { typedef union {
struct { struct {
UINT8 Parity : 3; UINT8 Parity : 3;
UINT8 CharacterSize : 1; UINT8 CharacterSize : 1;
UINT8 StopBit : 1; UINT8 StopBit : 1;
UINT8 DtrHangup : 1; UINT8 DtrHangup : 1;
UINT8 FlowControl : 2; UINT8 FlowControl : 2;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_EMP_DESTINATION_COM_SETTING_DATA_2; } IPMI_EMP_DESTINATION_COM_SETTING_DATA_2;
typedef union { typedef union {
struct { struct {
UINT8 BitRate : 4; UINT8 BitRate : 4;
UINT8 Reserved : 4; UINT8 Reserved : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_EMP_BIT_RATE; } IPMI_EMP_BIT_RATE;
typedef struct { typedef struct {
IPMI_EMP_DESTINATION_SELECTOR DestinationSelector; IPMI_EMP_DESTINATION_SELECTOR DestinationSelector;
IPMI_EMP_DESTINATION_COM_SETTING_DATA_2 Data2; IPMI_EMP_DESTINATION_COM_SETTING_DATA_2 Data2;
IPMI_EMP_BIT_RATE BitRate; IPMI_EMP_BIT_RATE BitRate;
} IPMI_EMP_DESTINATION_COM_SETTING; } IPMI_EMP_DESTINATION_COM_SETTING;
typedef union { typedef union {
struct { struct {
UINT8 DialStringSelector : 4; UINT8 DialStringSelector : 4;
UINT8 Reserved : 4; UINT8 Reserved : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_DIAL_STRING_SELECTOR; } IPMI_DIAL_STRING_SELECTOR;
typedef struct { typedef struct {
IPMI_DIAL_STRING_SELECTOR DestinationSelector; IPMI_DIAL_STRING_SELECTOR DestinationSelector;
UINT8 Reserved; UINT8 Reserved;
UINT8 DialString[48]; UINT8 DialString[48];
} IPMI_DESTINATION_DIAL_STRING; } IPMI_DESTINATION_DIAL_STRING;
typedef union { typedef union {
UINT32 IpAddressLong; UINT32 IpAddressLong;
UINT8 IpAddress[4]; UINT8 IpAddress[4];
} IPMI_PPP_IP_ADDRESS; } IPMI_PPP_IP_ADDRESS;
typedef union { typedef union {
struct { struct {
UINT8 IpAddressSelector : 4; UINT8 IpAddressSelector : 4;
UINT8 Reserved : 4; UINT8 Reserved : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_DESTINATION_IP_ADDRESS_SELECTOR; } IPMI_DESTINATION_IP_ADDRESS_SELECTOR;
typedef struct { typedef struct {
IPMI_DESTINATION_IP_ADDRESS_SELECTOR DestinationSelector; IPMI_DESTINATION_IP_ADDRESS_SELECTOR DestinationSelector;
IPMI_PPP_IP_ADDRESS PppIpAddress; IPMI_PPP_IP_ADDRESS PppIpAddress;
} IPMI_DESTINATION_IP_ADDRESS; } IPMI_DESTINATION_IP_ADDRESS;
typedef union { typedef union {
struct { struct {
UINT8 TapServiceSelector : 4; UINT8 TapServiceSelector : 4;
UINT8 TapDialStringSelector : 4; UINT8 TapDialStringSelector : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_TAP_DIAL_STRING_SERVICE_SELECTOR; } IPMI_TAP_DIAL_STRING_SERVICE_SELECTOR;
typedef struct { typedef struct {
UINT8 TapSelector; UINT8 TapSelector;
IPMI_TAP_DIAL_STRING_SERVICE_SELECTOR TapDialStringServiceSelector; IPMI_TAP_DIAL_STRING_SERVICE_SELECTOR TapDialStringServiceSelector;
} IPMI_DESTINATION_TAP_ACCOUNT; } IPMI_DESTINATION_TAP_ACCOUNT;
typedef struct { typedef struct {
UINT8 TapSelector; UINT8 TapSelector;
UINT8 PagerIdString[16]; UINT8 PagerIdString[16];
} IPMI_TAP_PAGER_ID_STRING; } IPMI_TAP_PAGER_ID_STRING;
typedef union { typedef union {
UINT8 OptionData; UINT8 OptionData;
IPMI_EMP_AUTH_TYPE EmpAuthType; IPMI_EMP_AUTH_TYPE EmpAuthType;
IPMI_EMP_CONNECTION_TYPE EmpConnectionType; IPMI_EMP_CONNECTION_TYPE EmpConnectionType;
IPMI_EMP_INACTIVITY_TIMEOUT EmpInactivityTimeout; IPMI_EMP_INACTIVITY_TIMEOUT EmpInactivityTimeout;
IPMI_EMP_CHANNEL_CALLBACK_CONTROL EmpCallbackControl; IPMI_EMP_CHANNEL_CALLBACK_CONTROL EmpCallbackControl;
IPMI_EMP_SESSION_TERMINATION EmpSessionTermination; IPMI_EMP_SESSION_TERMINATION EmpSessionTermination;
IPMI_EMP_MESSAGING_COM_SETTING EmpMessagingComSetting; IPMI_EMP_MESSAGING_COM_SETTING EmpMessagingComSetting;
IPMI_EMP_MODEM_RING_TIME EmpModemRingTime; IPMI_EMP_MODEM_RING_TIME EmpModemRingTime;
IPMI_EMP_MODEM_INIT_STRING EmpModemInitString; IPMI_EMP_MODEM_INIT_STRING EmpModemInitString;
IPMI_EMP_MODEM_ESC_SEQUENCE EmpModemEscSequence; IPMI_EMP_MODEM_ESC_SEQUENCE EmpModemEscSequence;
IPMI_EMP_MODEM_HANGUP_SEQUENCE EmpModemHangupSequence; IPMI_EMP_MODEM_HANGUP_SEQUENCE EmpModemHangupSequence;
IPMI_MODEM_DIALUP_COMMAND EmpModemDialupCommand; IPMI_MODEM_DIALUP_COMMAND EmpModemDialupCommand;
IPMI_PAGE_BLACKOUT_INTERVAL EmpPageBlackoutInterval; IPMI_PAGE_BLACKOUT_INTERVAL EmpPageBlackoutInterval;
IPMI_EMP_COMMUNITY_STRING EmpCommunityString; IPMI_EMP_COMMUNITY_STRING EmpCommunityString;
IPMI_EMP_DESTINATION_INFO EmpDestinationInfo; IPMI_EMP_DESTINATION_INFO EmpDestinationInfo;
IPMI_EMP_DESTINATION_COM_SETTING EmpDestinationComSetting; IPMI_EMP_DESTINATION_COM_SETTING EmpDestinationComSetting;
UINT8 CallRetryBusySignalInterval; UINT8 CallRetryBusySignalInterval;
IPMI_DESTINATION_DIAL_STRING DestinationDialString; IPMI_DESTINATION_DIAL_STRING DestinationDialString;
IPMI_DESTINATION_IP_ADDRESS DestinationIpAddress; IPMI_DESTINATION_IP_ADDRESS DestinationIpAddress;
IPMI_DESTINATION_TAP_ACCOUNT DestinationTapAccount; IPMI_DESTINATION_TAP_ACCOUNT DestinationTapAccount;
IPMI_TAP_PAGER_ID_STRING TapPagerIdString; IPMI_TAP_PAGER_ID_STRING TapPagerIdString;
} IPMI_EMP_OPTIONS; } IPMI_EMP_OPTIONS;
// //
@ -670,47 +669,47 @@ typedef union {
typedef union { typedef union {
struct { struct {
UINT8 ChannelNo : 4; UINT8 ChannelNo : 4;
UINT8 Reserved : 4; UINT8 Reserved : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_MUX_CHANNEL_NUM; } IPMI_MUX_CHANNEL_NUM;
typedef union { typedef union {
struct { struct {
UINT8 MuxSetting : 4; UINT8 MuxSetting : 4;
UINT8 Reserved : 4; UINT8 Reserved : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_MUX_SETTING_REQUEST; } IPMI_MUX_SETTING_REQUEST;
typedef struct { typedef struct {
IPMI_MUX_CHANNEL_NUM ChannelNumber; IPMI_MUX_CHANNEL_NUM ChannelNumber;
IPMI_MUX_SETTING_REQUEST MuxSetting; IPMI_MUX_SETTING_REQUEST MuxSetting;
} IPMI_SET_SERIAL_MODEM_MUX_COMMAND_REQUEST; } IPMI_SET_SERIAL_MODEM_MUX_COMMAND_REQUEST;
typedef union { typedef union {
struct { struct {
UINT8 MuxSetToBmc : 1; UINT8 MuxSetToBmc : 1;
UINT8 CommandStatus : 1; UINT8 CommandStatus : 1;
UINT8 MessagingSessionActive : 1; UINT8 MessagingSessionActive : 1;
UINT8 AlertInProgress : 1; UINT8 AlertInProgress : 1;
UINT8 Reserved : 2; UINT8 Reserved : 2;
UINT8 MuxToBmcAllowed : 1; UINT8 MuxToBmcAllowed : 1;
UINT8 MuxToSystemBlocked : 1; UINT8 MuxToSystemBlocked : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_MUX_SETTING_PRESENT_STATE; } IPMI_MUX_SETTING_PRESENT_STATE;
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
IPMI_MUX_SETTING_PRESENT_STATE MuxSetting; IPMI_MUX_SETTING_PRESENT_STATE MuxSetting;
} IPMI_SET_SERIAL_MODEM_MUX_COMMAND_RESPONSE; } IPMI_SET_SERIAL_MODEM_MUX_COMMAND_RESPONSE;
// //
// Definitions for Get TAP Response Code command // Definitions for Get TAP Response Code command
// //
#define IPMI_TRANSPORT_GET_TAP_RESPONSE_CODE 0x13 #define IPMI_TRANSPORT_GET_TAP_RESPONSE_CODE 0x13
// //
// Constants and Structure definitions for "Get TAP Response Code" command to follow here // Constants and Structure definitions for "Get TAP Response Code" command to follow here
@ -737,7 +736,7 @@ typedef struct {
// //
// Definitions for Send PPP UDP Proxy Packet command // Definitions for Send PPP UDP Proxy Packet command
// //
#define IPMI_TRANSPORT_SEND_PPP_UDP_PROXY_PACKET 0x16 #define IPMI_TRANSPORT_SEND_PPP_UDP_PROXY_PACKET 0x16
// //
// Constants and Structure definitions for "Send PPP UDP Proxy Packet" command to follow here // Constants and Structure definitions for "Send PPP UDP Proxy Packet" command to follow here
@ -773,7 +772,7 @@ typedef struct {
// //
// Definitions for Set user Callback Options command // Definitions for Set user Callback Options command
// //
#define IPMI_TRANSPORT_SET_USER_CALLBACK_OPTIONS 0x1A #define IPMI_TRANSPORT_SET_USER_CALLBACK_OPTIONS 0x1A
// //
// Constants and Structure definitions for "Set user Callback Options" command to follow here // Constants and Structure definitions for "Set user Callback Options" command to follow here
@ -782,7 +781,7 @@ typedef struct {
// //
// Definitions for Get user Callback Options command // Definitions for Get user Callback Options command
// //
#define IPMI_TRANSPORT_GET_USER_CALLBACK_OPTIONS 0x1B #define IPMI_TRANSPORT_GET_USER_CALLBACK_OPTIONS 0x1B
// //
// Constants and Structure definitions for "Get user Callback Options" command to follow here // Constants and Structure definitions for "Get user Callback Options" command to follow here
@ -802,17 +801,17 @@ typedef struct {
// //
typedef union { typedef union {
struct { struct {
UINT8 SessionState : 4; UINT8 SessionState : 4;
UINT8 Reserved : 4; UINT8 Reserved : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_SOL_SESSION_STATE; } IPMI_SOL_SESSION_STATE;
typedef struct { typedef struct {
IPMI_SOL_SESSION_STATE SessionState; IPMI_SOL_SESSION_STATE SessionState;
UINT8 PayloadInstance; UINT8 PayloadInstance;
UINT8 FormatVersionMajor; // 1 UINT8 FormatVersionMajor; // 1
UINT8 FormatVersionMinor; // 0 UINT8 FormatVersionMinor; // 0
} IPMI_SOL_ACTIVATING_REQUEST; } IPMI_SOL_ACTIVATING_REQUEST;
// //
@ -827,28 +826,28 @@ typedef struct {
// //
// SOL Configuration Parameters selector // SOL Configuration Parameters selector
// //
#define IPMI_SOL_CONFIGURATION_PARAMETER_SET_IN_PROGRESS 0 #define IPMI_SOL_CONFIGURATION_PARAMETER_SET_IN_PROGRESS 0
#define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_ENABLE 1 #define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_ENABLE 1
#define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_AUTHENTICATION 2 #define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_AUTHENTICATION 2
#define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_CHARACTER_PARAM 3 #define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_CHARACTER_PARAM 3
#define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_RETRY 4 #define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_RETRY 4
#define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_NV_BIT_RATE 5 #define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_NV_BIT_RATE 5
#define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_VOLATILE_BIT_RATE 6 #define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_VOLATILE_BIT_RATE 6
#define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_PAYLOAD_CHANNEL 7 #define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_PAYLOAD_CHANNEL 7
#define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_PAYLOAD_PORT 8 #define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_PAYLOAD_PORT 8
typedef union { typedef union {
struct { struct {
UINT8 ChannelNumber : 4; UINT8 ChannelNumber : 4;
UINT8 Reserved : 4; UINT8 Reserved : 4;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_SET_SOL_CONFIG_PARAM_CHANNEL_NUM; } IPMI_SET_SOL_CONFIG_PARAM_CHANNEL_NUM;
typedef struct { typedef struct {
IPMI_SET_SOL_CONFIG_PARAM_CHANNEL_NUM ChannelNumber; IPMI_SET_SOL_CONFIG_PARAM_CHANNEL_NUM ChannelNumber;
UINT8 ParameterSelector; UINT8 ParameterSelector;
UINT8 ParameterData[0]; UINT8 ParameterData[0];
} IPMI_SET_SOL_CONFIGURATION_PARAMETERS_REQUEST; } IPMI_SET_SOL_CONFIGURATION_PARAMETERS_REQUEST;
// //
@ -861,24 +860,24 @@ typedef struct {
// //
typedef union { typedef union {
struct { struct {
UINT8 ChannelNumber : 4; UINT8 ChannelNumber : 4;
UINT8 Reserved : 3; UINT8 Reserved : 3;
UINT8 GetParameter : 1; UINT8 GetParameter : 1;
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} IPMI_GET_SOL_CONFIG_PARAM_CHANNEL_NUM; } IPMI_GET_SOL_CONFIG_PARAM_CHANNEL_NUM;
typedef struct { typedef struct {
IPMI_GET_SOL_CONFIG_PARAM_CHANNEL_NUM ChannelNumber; IPMI_GET_SOL_CONFIG_PARAM_CHANNEL_NUM ChannelNumber;
UINT8 ParameterSelector; UINT8 ParameterSelector;
UINT8 SetSelector; UINT8 SetSelector;
UINT8 BlockSelector; UINT8 BlockSelector;
} IPMI_GET_SOL_CONFIGURATION_PARAMETERS_REQUEST; } IPMI_GET_SOL_CONFIGURATION_PARAMETERS_REQUEST;
typedef struct { typedef struct {
UINT8 CompletionCode; UINT8 CompletionCode;
UINT8 ParameterRevision; UINT8 ParameterRevision;
UINT8 ParameterData[0]; UINT8 ParameterData[0];
} IPMI_GET_SOL_CONFIGURATION_PARAMETERS_RESPONSE; } IPMI_GET_SOL_CONFIGURATION_PARAMETERS_RESPONSE;
#pragma pack() #pragma pack()

View File

@ -12,7 +12,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#ifndef _LEGACY_BIOS_MPTABLE_H_ #ifndef _LEGACY_BIOS_MPTABLE_H_
#define _LEGACY_BIOS_MPTABLE_H_ #define _LEGACY_BIOS_MPTABLE_H_
#define EFI_LEGACY_MP_TABLE_REV_1_4 0x04 #define EFI_LEGACY_MP_TABLE_REV_1_4 0x04
// //
// Define MP table structures. All are packed. // Define MP table structures. All are packed.
@ -21,41 +21,41 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#define EFI_LEGACY_MP_TABLE_FLOATING_POINTER_SIGNATURE SIGNATURE_32 ('_', 'M', 'P', '_') #define EFI_LEGACY_MP_TABLE_FLOATING_POINTER_SIGNATURE SIGNATURE_32 ('_', 'M', 'P', '_')
typedef struct { typedef struct {
UINT32 Reserved1 : 6; UINT32 Reserved1 : 6;
UINT32 MutipleClk : 1; UINT32 MutipleClk : 1;
UINT32 Imcr : 1; UINT32 Imcr : 1;
UINT32 Reserved2 : 24; UINT32 Reserved2 : 24;
} FEATUREBYTE2_5; } FEATUREBYTE2_5;
typedef struct { typedef struct {
UINT32 Signature; UINT32 Signature;
UINT32 PhysicalAddress; UINT32 PhysicalAddress;
UINT8 Length; UINT8 Length;
UINT8 SpecRev; UINT8 SpecRev;
UINT8 Checksum; UINT8 Checksum;
UINT8 FeatureByte1; UINT8 FeatureByte1;
FEATUREBYTE2_5 FeatureByte2_5; FEATUREBYTE2_5 FeatureByte2_5;
} EFI_LEGACY_MP_TABLE_FLOATING_POINTER; } EFI_LEGACY_MP_TABLE_FLOATING_POINTER;
#define EFI_LEGACY_MP_TABLE_HEADER_SIGNATURE SIGNATURE_32 ('P', 'C', 'M', 'P') #define EFI_LEGACY_MP_TABLE_HEADER_SIGNATURE SIGNATURE_32 ('P', 'C', 'M', 'P')
typedef struct { typedef struct {
UINT32 Signature; UINT32 Signature;
UINT16 BaseTableLength; UINT16 BaseTableLength;
UINT8 SpecRev; UINT8 SpecRev;
UINT8 Checksum; UINT8 Checksum;
CHAR8 OemId[8]; CHAR8 OemId[8];
CHAR8 OemProductId[12]; CHAR8 OemProductId[12];
UINT32 OemTablePointer; UINT32 OemTablePointer;
UINT16 OemTableSize; UINT16 OemTableSize;
UINT16 EntryCount; UINT16 EntryCount;
UINT32 LocalApicAddress; UINT32 LocalApicAddress;
UINT16 ExtendedTableLength; UINT16 ExtendedTableLength;
UINT8 ExtendedChecksum; UINT8 ExtendedChecksum;
UINT8 Reserved; UINT8 Reserved;
} EFI_LEGACY_MP_TABLE_HEADER; } EFI_LEGACY_MP_TABLE_HEADER;
typedef struct { typedef struct {
UINT8 EntryType; UINT8 EntryType;
} EFI_LEGACY_MP_TABLE_ENTRY_TYPE; } EFI_LEGACY_MP_TABLE_ENTRY_TYPE;
// //
@ -63,36 +63,36 @@ typedef struct {
// //
#define EFI_LEGACY_MP_TABLE_ENTRY_TYPE_PROCESSOR 0x00 #define EFI_LEGACY_MP_TABLE_ENTRY_TYPE_PROCESSOR 0x00
typedef struct { typedef struct {
UINT8 Enabled : 1; UINT8 Enabled : 1;
UINT8 Bsp : 1; UINT8 Bsp : 1;
UINT8 Reserved : 6; UINT8 Reserved : 6;
} EFI_LEGACY_MP_TABLE_ENTRY_PROCESSOR_FLAGS; } EFI_LEGACY_MP_TABLE_ENTRY_PROCESSOR_FLAGS;
typedef struct { typedef struct {
UINT32 Stepping : 4; UINT32 Stepping : 4;
UINT32 Model : 4; UINT32 Model : 4;
UINT32 Family : 4; UINT32 Family : 4;
UINT32 Reserved : 20; UINT32 Reserved : 20;
} EFI_LEGACY_MP_TABLE_ENTRY_PROCESSOR_SIGNATURE; } EFI_LEGACY_MP_TABLE_ENTRY_PROCESSOR_SIGNATURE;
typedef struct { typedef struct {
UINT32 Fpu : 1; UINT32 Fpu : 1;
UINT32 Reserved1 : 6; UINT32 Reserved1 : 6;
UINT32 Mce : 1; UINT32 Mce : 1;
UINT32 Cx8 : 1; UINT32 Cx8 : 1;
UINT32 Apic : 1; UINT32 Apic : 1;
UINT32 Reserved2 : 22; UINT32 Reserved2 : 22;
} EFI_LEGACY_MP_TABLE_ENTRY_PROCESSOR_FEATURES; } EFI_LEGACY_MP_TABLE_ENTRY_PROCESSOR_FEATURES;
typedef struct { typedef struct {
UINT8 EntryType; UINT8 EntryType;
UINT8 Id; UINT8 Id;
UINT8 Ver; UINT8 Ver;
EFI_LEGACY_MP_TABLE_ENTRY_PROCESSOR_FLAGS Flags; EFI_LEGACY_MP_TABLE_ENTRY_PROCESSOR_FLAGS Flags;
EFI_LEGACY_MP_TABLE_ENTRY_PROCESSOR_SIGNATURE Signature; EFI_LEGACY_MP_TABLE_ENTRY_PROCESSOR_SIGNATURE Signature;
EFI_LEGACY_MP_TABLE_ENTRY_PROCESSOR_FEATURES Features; EFI_LEGACY_MP_TABLE_ENTRY_PROCESSOR_FEATURES Features;
UINT32 Reserved1; UINT32 Reserved1;
UINT32 Reserved2; UINT32 Reserved2;
} EFI_LEGACY_MP_TABLE_ENTRY_PROCESSOR; } EFI_LEGACY_MP_TABLE_ENTRY_PROCESSOR;
// //
@ -100,82 +100,82 @@ typedef struct {
// //
#define EFI_LEGACY_MP_TABLE_ENTRY_TYPE_BUS 0x01 #define EFI_LEGACY_MP_TABLE_ENTRY_TYPE_BUS 0x01
typedef struct { typedef struct {
UINT8 EntryType; UINT8 EntryType;
UINT8 Id; UINT8 Id;
CHAR8 TypeString[6]; CHAR8 TypeString[6];
} EFI_LEGACY_MP_TABLE_ENTRY_BUS; } EFI_LEGACY_MP_TABLE_ENTRY_BUS;
#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_CBUS "CBUS " // Corollary CBus #define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_CBUS "CBUS " // Corollary CBus
#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_CBUSII "CBUSII" // Corollary CBUS II #define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_CBUSII "CBUSII" // Corollary CBUS II
#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_EISA "EISA " // Extended ISA #define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_EISA "EISA " // Extended ISA
#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_FUTURE "FUTURE" // IEEE FutureBus #define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_FUTURE "FUTURE" // IEEE FutureBus
#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_INTERN "INTERN" // Internal bus #define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_INTERN "INTERN" // Internal bus
#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_ISA "ISA " // Industry Standard Architecture #define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_ISA "ISA " // Industry Standard Architecture
#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_MBI "MBI " // Multibus I #define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_MBI "MBI " // Multibus I
#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_MBII "MBII " // Multibus II #define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_MBII "MBII " // Multibus II
#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_MCA "MCA " // Micro Channel Architecture #define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_MCA "MCA " // Micro Channel Architecture
#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_MPI "MPI " // MPI #define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_MPI "MPI " // MPI
#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_MPSA "MPSA " // MPSA #define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_MPSA "MPSA " // MPSA
#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_NUBUS "NUBUS " // Apple Macintosh NuBus #define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_NUBUS "NUBUS " // Apple Macintosh NuBus
#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_PCI "PCI " // Peripheral Component Interconnect #define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_PCI "PCI " // Peripheral Component Interconnect
#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_PCMCIA "PCMCIA" // PC Memory Card International Assoc. #define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_PCMCIA "PCMCIA" // PC Memory Card International Assoc.
#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_TC "TC " // DEC TurboChannel #define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_TC "TC " // DEC TurboChannel
#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_VL "VL " // VESA Local Bus #define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_VL "VL " // VESA Local Bus
#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_VME "VME " // VMEbus #define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_VME "VME " // VMEbus
#define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_XPRESS "XPRESS" // Express System Bus #define EFI_LEGACY_MP_TABLE_ENTRY_BUS_STRING_XPRESS "XPRESS" // Express System Bus
// //
// Entry Type 2: I/O APIC. // Entry Type 2: I/O APIC.
// //
#define EFI_LEGACY_MP_TABLE_ENTRY_TYPE_IOAPIC 0x02 #define EFI_LEGACY_MP_TABLE_ENTRY_TYPE_IOAPIC 0x02
typedef struct { typedef struct {
UINT8 Enabled : 1; UINT8 Enabled : 1;
UINT8 Reserved : 7; UINT8 Reserved : 7;
} EFI_LEGACY_MP_TABLE_ENTRY_IOAPIC_FLAGS; } EFI_LEGACY_MP_TABLE_ENTRY_IOAPIC_FLAGS;
typedef struct { typedef struct {
UINT8 EntryType; UINT8 EntryType;
UINT8 Id; UINT8 Id;
UINT8 Ver; UINT8 Ver;
EFI_LEGACY_MP_TABLE_ENTRY_IOAPIC_FLAGS Flags; EFI_LEGACY_MP_TABLE_ENTRY_IOAPIC_FLAGS Flags;
UINT32 Address; UINT32 Address;
} EFI_LEGACY_MP_TABLE_ENTRY_IOAPIC; } EFI_LEGACY_MP_TABLE_ENTRY_IOAPIC;
// //
// Entry Type 3: I/O Interrupt Assignment. // Entry Type 3: I/O Interrupt Assignment.
// //
#define EFI_LEGACY_MP_TABLE_ENTRY_TYPE_IO_INT 0x03 #define EFI_LEGACY_MP_TABLE_ENTRY_TYPE_IO_INT 0x03
typedef struct { typedef struct {
UINT16 Polarity : 2; UINT16 Polarity : 2;
UINT16 Trigger : 2; UINT16 Trigger : 2;
UINT16 Reserved : 12; UINT16 Reserved : 12;
} EFI_LEGACY_MP_TABLE_ENTRY_INT_FLAGS; } EFI_LEGACY_MP_TABLE_ENTRY_INT_FLAGS;
typedef struct { typedef struct {
UINT8 IntNo : 2; UINT8 IntNo : 2;
UINT8 Dev : 5; UINT8 Dev : 5;
UINT8 Reserved : 1; UINT8 Reserved : 1;
} EFI_LEGACY_MP_TABLE_ENTRY_INT_FIELDS; } EFI_LEGACY_MP_TABLE_ENTRY_INT_FIELDS;
typedef union { typedef union {
EFI_LEGACY_MP_TABLE_ENTRY_INT_FIELDS fields; EFI_LEGACY_MP_TABLE_ENTRY_INT_FIELDS fields;
UINT8 byte; UINT8 byte;
} EFI_LEGACY_MP_TABLE_ENTRY_INT_SOURCE_BUS_IRQ; } EFI_LEGACY_MP_TABLE_ENTRY_INT_SOURCE_BUS_IRQ;
typedef struct { typedef struct {
UINT8 EntryType; UINT8 EntryType;
UINT8 IntType; UINT8 IntType;
EFI_LEGACY_MP_TABLE_ENTRY_INT_FLAGS Flags; EFI_LEGACY_MP_TABLE_ENTRY_INT_FLAGS Flags;
UINT8 SourceBusId; UINT8 SourceBusId;
EFI_LEGACY_MP_TABLE_ENTRY_INT_SOURCE_BUS_IRQ SourceBusIrq; EFI_LEGACY_MP_TABLE_ENTRY_INT_SOURCE_BUS_IRQ SourceBusIrq;
UINT8 DestApicId; UINT8 DestApicId;
UINT8 DestApicIntIn; UINT8 DestApicIntIn;
} EFI_LEGACY_MP_TABLE_ENTRY_IO_INT; } EFI_LEGACY_MP_TABLE_ENTRY_IO_INT;
typedef enum { typedef enum {
EfiLegacyMpTableEntryIoIntTypeInt = 0, EfiLegacyMpTableEntryIoIntTypeInt = 0,
EfiLegacyMpTableEntryIoIntTypeNmi = 1, EfiLegacyMpTableEntryIoIntTypeNmi = 1,
EfiLegacyMpTableEntryIoIntTypeSmi = 2, EfiLegacyMpTableEntryIoIntTypeSmi = 2,
EfiLegacyMpTableEntryIoIntTypeExtInt= 3, EfiLegacyMpTableEntryIoIntTypeExtInt = 3,
} EFI_LEGACY_MP_TABLE_ENTRY_IO_INT_TYPE; } EFI_LEGACY_MP_TABLE_ENTRY_IO_INT_TYPE;
typedef enum { typedef enum {
@ -186,10 +186,10 @@ typedef enum {
} EFI_LEGACY_MP_TABLE_ENTRY_IO_INT_FLAGS_POLARITY; } EFI_LEGACY_MP_TABLE_ENTRY_IO_INT_FLAGS_POLARITY;
typedef enum { typedef enum {
EfiLegacyMpTableEntryIoIntFlagsTriggerSpec = 0x0, EfiLegacyMpTableEntryIoIntFlagsTriggerSpec = 0x0,
EfiLegacyMpTableEntryIoIntFlagsTriggerEdge = 0x1, EfiLegacyMpTableEntryIoIntFlagsTriggerEdge = 0x1,
EfiLegacyMpTableEntryIoIntFlagsTriggerReserved = 0x2, EfiLegacyMpTableEntryIoIntFlagsTriggerReserved = 0x2,
EfiLegacyMpTableEntryIoIntFlagsTriggerLevel = 0x3, EfiLegacyMpTableEntryIoIntFlagsTriggerLevel = 0x3,
} EFI_LEGACY_MP_TABLE_ENTRY_IO_INT_FLAGS_TRIGGER; } EFI_LEGACY_MP_TABLE_ENTRY_IO_INT_FLAGS_TRIGGER;
// //
@ -197,47 +197,47 @@ typedef enum {
// //
#define EFI_LEGACY_MP_TABLE_ENTRY_TYPE_LOCAL_INT 0x04 #define EFI_LEGACY_MP_TABLE_ENTRY_TYPE_LOCAL_INT 0x04
typedef struct { typedef struct {
UINT8 EntryType; UINT8 EntryType;
UINT8 IntType; UINT8 IntType;
EFI_LEGACY_MP_TABLE_ENTRY_INT_FLAGS Flags; EFI_LEGACY_MP_TABLE_ENTRY_INT_FLAGS Flags;
UINT8 SourceBusId; UINT8 SourceBusId;
EFI_LEGACY_MP_TABLE_ENTRY_INT_SOURCE_BUS_IRQ SourceBusIrq; EFI_LEGACY_MP_TABLE_ENTRY_INT_SOURCE_BUS_IRQ SourceBusIrq;
UINT8 DestApicId; UINT8 DestApicId;
UINT8 DestApicIntIn; UINT8 DestApicIntIn;
} EFI_LEGACY_MP_TABLE_ENTRY_LOCAL_INT; } EFI_LEGACY_MP_TABLE_ENTRY_LOCAL_INT;
typedef enum { typedef enum {
EfiLegacyMpTableEntryLocalIntTypeInt = 0, EfiLegacyMpTableEntryLocalIntTypeInt = 0,
EfiLegacyMpTableEntryLocalIntTypeNmi = 1, EfiLegacyMpTableEntryLocalIntTypeNmi = 1,
EfiLegacyMpTableEntryLocalIntTypeSmi = 2, EfiLegacyMpTableEntryLocalIntTypeSmi = 2,
EfiLegacyMpTableEntryLocalIntTypeExtInt = 3, EfiLegacyMpTableEntryLocalIntTypeExtInt = 3,
} EFI_LEGACY_MP_TABLE_ENTRY_LOCAL_INT_TYPE; } EFI_LEGACY_MP_TABLE_ENTRY_LOCAL_INT_TYPE;
typedef enum { typedef enum {
EfiLegacyMpTableEntryLocalIntFlagsPolaritySpec = 0x0, EfiLegacyMpTableEntryLocalIntFlagsPolaritySpec = 0x0,
EfiLegacyMpTableEntryLocalIntFlagsPolarityActiveHigh= 0x1, EfiLegacyMpTableEntryLocalIntFlagsPolarityActiveHigh = 0x1,
EfiLegacyMpTableEntryLocalIntFlagsPolarityReserved = 0x2, EfiLegacyMpTableEntryLocalIntFlagsPolarityReserved = 0x2,
EfiLegacyMpTableEntryLocalIntFlagsPolarityActiveLow = 0x3, EfiLegacyMpTableEntryLocalIntFlagsPolarityActiveLow = 0x3,
} EFI_LEGACY_MP_TABLE_ENTRY_LOCAL_INT_FLAGS_POLARITY; } EFI_LEGACY_MP_TABLE_ENTRY_LOCAL_INT_FLAGS_POLARITY;
typedef enum { typedef enum {
EfiLegacyMpTableEntryLocalIntFlagsTriggerSpec = 0x0, EfiLegacyMpTableEntryLocalIntFlagsTriggerSpec = 0x0,
EfiLegacyMpTableEntryLocalIntFlagsTriggerEdge = 0x1, EfiLegacyMpTableEntryLocalIntFlagsTriggerEdge = 0x1,
EfiLegacyMpTableEntryLocalIntFlagsTriggerReserved = 0x2, EfiLegacyMpTableEntryLocalIntFlagsTriggerReserved = 0x2,
EfiLegacyMpTableEntryLocalIntFlagsTriggerLevel = 0x3, EfiLegacyMpTableEntryLocalIntFlagsTriggerLevel = 0x3,
} EFI_LEGACY_MP_TABLE_ENTRY_LOCAL_INT_FLAGS_TRIGGER; } EFI_LEGACY_MP_TABLE_ENTRY_LOCAL_INT_FLAGS_TRIGGER;
// //
// Entry Type 128: System Address Space Mapping. // Entry Type 128: System Address Space Mapping.
// //
#define EFI_LEGACY_MP_TABLE_ENTRY_EXT_TYPE_SYS_ADDR_SPACE_MAPPING 0x80 #define EFI_LEGACY_MP_TABLE_ENTRY_EXT_TYPE_SYS_ADDR_SPACE_MAPPING 0x80
typedef struct { typedef struct {
UINT8 EntryType; UINT8 EntryType;
UINT8 Length; UINT8 Length;
UINT8 BusId; UINT8 BusId;
UINT8 AddressType; UINT8 AddressType;
UINT64 AddressBase; UINT64 AddressBase;
UINT64 AddressLength; UINT64 AddressLength;
} EFI_LEGACY_MP_TABLE_ENTRY_EXT_SYS_ADDR_SPACE_MAPPING; } EFI_LEGACY_MP_TABLE_ENTRY_EXT_SYS_ADDR_SPACE_MAPPING;
typedef enum { typedef enum {
@ -251,36 +251,36 @@ typedef enum {
// //
#define EFI_LEGACY_MP_TABLE_ENTRY_EXT_TYPE_BUS_HIERARCHY 0x81 #define EFI_LEGACY_MP_TABLE_ENTRY_EXT_TYPE_BUS_HIERARCHY 0x81
typedef struct { typedef struct {
UINT8 SubtractiveDecode : 1; UINT8 SubtractiveDecode : 1;
UINT8 Reserved : 7; UINT8 Reserved : 7;
} EFI_LEGACY_MP_TABLE_ENTRY_EXT_BUS_HIERARCHY_BUSINFO; } EFI_LEGACY_MP_TABLE_ENTRY_EXT_BUS_HIERARCHY_BUSINFO;
typedef struct { typedef struct {
UINT8 EntryType; UINT8 EntryType;
UINT8 Length; UINT8 Length;
UINT8 BusId; UINT8 BusId;
EFI_LEGACY_MP_TABLE_ENTRY_EXT_BUS_HIERARCHY_BUSINFO BusInfo; EFI_LEGACY_MP_TABLE_ENTRY_EXT_BUS_HIERARCHY_BUSINFO BusInfo;
UINT8 ParentBus; UINT8 ParentBus;
UINT8 Reserved1; UINT8 Reserved1;
UINT8 Reserved2; UINT8 Reserved2;
UINT8 Reserved3; UINT8 Reserved3;
} EFI_LEGACY_MP_TABLE_ENTRY_EXT_BUS_HIERARCHY; } EFI_LEGACY_MP_TABLE_ENTRY_EXT_BUS_HIERARCHY;
// //
// Entry Type 130: Compatibility Bus Address Space Modifier. // Entry Type 130: Compatibility Bus Address Space Modifier.
// //
#define EFI_LEGACY_MP_TABLE_ENTRY_EXT_TYPE_COMPAT_BUS_ADDR_SPACE_MODIFIER 0x82 #define EFI_LEGACY_MP_TABLE_ENTRY_EXT_TYPE_COMPAT_BUS_ADDR_SPACE_MODIFIER 0x82
typedef struct { typedef struct {
UINT8 RangeMode : 1; UINT8 RangeMode : 1;
UINT8 Reserved : 7; UINT8 Reserved : 7;
} EFI_LEGACY_MP_TABLE_ENTRY_EXT_COMPAT_BUS_ADDR_SPACE_MODIFIER_ADDR_MODE; } EFI_LEGACY_MP_TABLE_ENTRY_EXT_COMPAT_BUS_ADDR_SPACE_MODIFIER_ADDR_MODE;
typedef struct { typedef struct {
UINT8 EntryType; UINT8 EntryType;
UINT8 Length; UINT8 Length;
UINT8 BusId; UINT8 BusId;
EFI_LEGACY_MP_TABLE_ENTRY_EXT_COMPAT_BUS_ADDR_SPACE_MODIFIER_ADDR_MODE AddrMode; EFI_LEGACY_MP_TABLE_ENTRY_EXT_COMPAT_BUS_ADDR_SPACE_MODIFIER_ADDR_MODE AddrMode;
UINT32 PredefinedRangeList; UINT32 PredefinedRangeList;
} EFI_LEGACY_MP_TABLE_ENTRY_EXT_COMPAT_BUS_ADDR_SPACE_MODIFIER; } EFI_LEGACY_MP_TABLE_ENTRY_EXT_COMPAT_BUS_ADDR_SPACE_MODIFIER;
#pragma pack() #pragma pack()

View File

@ -12,6 +12,7 @@
- GAS - Generic Address Structure - GAS - Generic Address Structure
- LPI - Low Power Idle - LPI - Low Power Idle
**/ **/
#ifndef _LOW_POWER_IDLE_TABLE_H_ #ifndef _LOW_POWER_IDLE_TABLE_H_
#define _LOW_POWER_IDLE_TABLE_H_ #define _LOW_POWER_IDLE_TABLE_H_
@ -22,53 +23,57 @@
/// ///
/// LPI Structure Types /// LPI Structure Types
/// ///
#define ACPI_LPI_STRUCTURE_TYPE_NATIVE_CSTATE 0x00 #define ACPI_LPI_STRUCTURE_TYPE_NATIVE_CSTATE 0x00
/// ///
/// Low Power Idle (LPI) State Flags /// Low Power Idle (LPI) State Flags
/// ///
typedef union { typedef union {
struct { struct {
UINT32 Disabled : 1; ///< If set, LPI state is not used UINT32 Disabled : 1; ///< If set, LPI state is not used
/** /**
If set, Residency counter is not available for this LPI state and If set, Residency counter is not available for this LPI state and
Residency Counter Frequency is invalid Residency Counter Frequency is invalid
**/ **/
UINT32 CounterUnavailable : 1; UINT32 CounterUnavailable : 1;
UINT32 Reserved : 30; ///< Reserved for future use. Must be zero UINT32 Reserved : 30; ///< Reserved for future use. Must be zero
} Bits; } Bits;
UINT32 Data32; UINT32 Data32;
} ACPI_LPI_STATE_FLAGS; } ACPI_LPI_STATE_FLAGS;
/// ///
/// Low Power Idle (LPI) structure with Native C-state instruction entry trigger descriptor /// Low Power Idle (LPI) structure with Native C-state instruction entry trigger descriptor
/// ///
typedef struct { typedef struct {
UINT32 Type; ///< LPI State descriptor Type 0 UINT32 Type; ///< LPI State descriptor Type 0
UINT32 Length; ///< Length of LPI state Descriptor Structure UINT32 Length; ///< Length of LPI state Descriptor Structure
/// ///
/// Unique LPI state identifier: zero based, monotonically increasing identifier /// Unique LPI state identifier: zero based, monotonically increasing identifier
/// ///
UINT16 UniqueId; UINT16 UniqueId;
UINT8 Reserved[2]; ///< Must be Zero UINT8 Reserved[2]; ///< Must be Zero
ACPI_LPI_STATE_FLAGS Flags; ///< LPI state flags ACPI_LPI_STATE_FLAGS Flags; ///< LPI state flags
/** /**
The LPI entry trigger, matching an existing _CST.Register object, represented as a The LPI entry trigger, matching an existing _CST.Register object, represented as a
Generic Address Structure. All processors must request this state or deeper to trigger. Generic Address Structure. All processors must request this state or deeper to trigger.
**/ **/
EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE EntryTrigger; EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE EntryTrigger;
UINT32 Residency; ///< Minimum residency or break-even in uSec UINT32 Residency; ///< Minimum residency or break-even in uSec
UINT32 Latency; ///< Worst case exit latency in uSec UINT32 Latency; ///< Worst case exit latency in uSec
/** /**
[optional] Residency counter, represented as a Generic Address Structure. [optional] Residency counter, represented as a Generic Address Structure.
If not present, Flags[1] bit should be set. If not present, Flags[1] bit should be set.
**/ **/
EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE ResidencyCounter; EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE ResidencyCounter;
/** /**
[optional] Residency counter frequency in cycles per second. Value 0 indicates that [optional] Residency counter frequency in cycles per second. Value 0 indicates that
counter runs at TSC frequency. Valid only if Residency Counter is present. counter runs at TSC frequency. Valid only if Residency Counter is present.
**/ **/
UINT64 ResidencyCounterFrequency; UINT64 ResidencyCounterFrequency;
} ACPI_LPI_NATIVE_CSTATE_DESCRIPTOR; } ACPI_LPI_NATIVE_CSTATE_DESCRIPTOR;
#pragma pack() #pragma pack()

View File

@ -9,44 +9,44 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#ifndef _MBR_H_ #ifndef _MBR_H_
#define _MBR_H_ #define _MBR_H_
#define MBR_SIGNATURE 0xaa55 #define MBR_SIGNATURE 0xaa55
#define EXTENDED_DOS_PARTITION 0x05 #define EXTENDED_DOS_PARTITION 0x05
#define EXTENDED_WINDOWS_PARTITION 0x0F #define EXTENDED_WINDOWS_PARTITION 0x0F
#define MAX_MBR_PARTITIONS 4 #define MAX_MBR_PARTITIONS 4
#define PMBR_GPT_PARTITION 0xEE #define PMBR_GPT_PARTITION 0xEE
#define EFI_PARTITION 0xEF #define EFI_PARTITION 0xEF
#define MBR_SIZE 512 #define MBR_SIZE 512
#pragma pack(1) #pragma pack(1)
/// ///
/// MBR Partition Entry /// MBR Partition Entry
/// ///
typedef struct { typedef struct {
UINT8 BootIndicator; UINT8 BootIndicator;
UINT8 StartHead; UINT8 StartHead;
UINT8 StartSector; UINT8 StartSector;
UINT8 StartTrack; UINT8 StartTrack;
UINT8 OSIndicator; UINT8 OSIndicator;
UINT8 EndHead; UINT8 EndHead;
UINT8 EndSector; UINT8 EndSector;
UINT8 EndTrack; UINT8 EndTrack;
UINT8 StartingLBA[4]; UINT8 StartingLBA[4];
UINT8 SizeInLBA[4]; UINT8 SizeInLBA[4];
} MBR_PARTITION_RECORD; } MBR_PARTITION_RECORD;
/// ///
/// MBR Partition Table /// MBR Partition Table
/// ///
typedef struct { typedef struct {
UINT8 BootStrapCode[440]; UINT8 BootStrapCode[440];
UINT8 UniqueMbrSignature[4]; UINT8 UniqueMbrSignature[4];
UINT8 Unknown[2]; UINT8 Unknown[2];
MBR_PARTITION_RECORD Partition[MAX_MBR_PARTITIONS]; MBR_PARTITION_RECORD Partition[MAX_MBR_PARTITIONS];
UINT16 Signature; UINT16 Signature;
} MASTER_BOOT_RECORD; } MASTER_BOOT_RECORD;
#pragma pack() #pragma pack()

View File

@ -23,11 +23,11 @@
/// a number of base address allocation structures. /// a number of base address allocation structures.
/// ///
typedef struct { typedef struct {
UINT64 BaseAddress; UINT64 BaseAddress;
UINT16 PciSegmentGroupNumber; UINT16 PciSegmentGroupNumber;
UINT8 StartBusNumber; UINT8 StartBusNumber;
UINT8 EndBusNumber; UINT8 EndBusNumber;
UINT32 Reserved; UINT32 Reserved;
} EFI_ACPI_MEMORY_MAPPED_ENHANCED_CONFIGURATION_SPACE_BASE_ADDRESS_ALLOCATION_STRUCTURE; } EFI_ACPI_MEMORY_MAPPED_ENHANCED_CONFIGURATION_SPACE_BASE_ADDRESS_ALLOCATION_STRUCTURE;
/// ///
@ -35,8 +35,8 @@ typedef struct {
/// must be defined in a platform specific manner. /// must be defined in a platform specific manner.
/// ///
typedef struct { typedef struct {
EFI_ACPI_DESCRIPTION_HEADER Header; EFI_ACPI_DESCRIPTION_HEADER Header;
UINT64 Reserved; UINT64 Reserved;
} EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE_HEADER; } EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE_HEADER;
/// ///

View File

@ -16,7 +16,7 @@
0xBB983CCF, 0x151D, 0x40E1, {0xA0, 0x7B, 0x4A, 0x17, 0xBE, 0x16, 0x82, 0x92} \ 0xBB983CCF, 0x151D, 0x40E1, {0xA0, 0x7B, 0x4A, 0x17, 0xBE, 0x16, 0x82, 0x92} \
} }
#define MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME L"MemoryOverwriteRequestControlLock" #define MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME L"MemoryOverwriteRequestControlLock"
// //
// VendorGuid: {BB983CCF-151D-40E1-A07B-4A17BE168292} // VendorGuid: {BB983CCF-151D-40E1-A07B-4A17BE168292}
@ -32,6 +32,6 @@
// Getting the variable returns the internal state and never exposes the key. // Getting the variable returns the internal state and never exposes the key.
// //
extern EFI_GUID gEfiMemoryOverwriteRequestControlLockGuid; extern EFI_GUID gEfiMemoryOverwriteRequestControlLockGuid;
#endif #endif

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -15,7 +15,7 @@
/// PCI_CLASS_MASS_STORAGE, Base Class 01h. /// PCI_CLASS_MASS_STORAGE, Base Class 01h.
/// ///
///@{ ///@{
#define PCI_CLASS_MASS_STORAGE_ATA 0x05 #define PCI_CLASS_MASS_STORAGE_ATA 0x05
#define PCI_IF_MASS_STORAGE_SINGLE_DMA 0x20 #define PCI_IF_MASS_STORAGE_SINGLE_DMA 0x20
#define PCI_IF_MASS_STORAGE_CHAINED_DMA 0x30 #define PCI_IF_MASS_STORAGE_CHAINED_DMA 0x30
///@} ///@}
@ -24,63 +24,63 @@
/// PCI_CLASS_NETWORK, Base Class 02h. /// PCI_CLASS_NETWORK, Base Class 02h.
/// ///
///@{ ///@{
#define PCI_CLASS_NETWORK_WORLDFIP 0x05 #define PCI_CLASS_NETWORK_WORLDFIP 0x05
#define PCI_CLASS_NETWORK_PICMG_MULTI_COMPUTING 0x06 #define PCI_CLASS_NETWORK_PICMG_MULTI_COMPUTING 0x06
///@} ///@}
/// ///
/// PCI_CLASS_BRIDGE, Base Class 06h. /// PCI_CLASS_BRIDGE, Base Class 06h.
/// ///
///@{ ///@{
#define PCI_CLASS_BRIDGE_SEMI_TRANSPARENT_P2P 0x09 #define PCI_CLASS_BRIDGE_SEMI_TRANSPARENT_P2P 0x09
#define PCI_IF_BRIDGE_SEMI_TRANSPARENT_P2P_PRIMARY 0x40 #define PCI_IF_BRIDGE_SEMI_TRANSPARENT_P2P_PRIMARY 0x40
#define PCI_IF_BRIDGE_SEMI_TRANSPARENT_P2P_SECONDARY 0x80 #define PCI_IF_BRIDGE_SEMI_TRANSPARENT_P2P_SECONDARY 0x80
#define PCI_CLASS_BRIDGE_INFINIBAND_TO_PCI 0x0A #define PCI_CLASS_BRIDGE_INFINIBAND_TO_PCI 0x0A
///@} ///@}
/// ///
/// PCI_CLASS_SCC, Base Class 07h. /// PCI_CLASS_SCC, Base Class 07h.
/// ///
///@{ ///@{
#define PCI_SUBCLASS_GPIB 0x04 #define PCI_SUBCLASS_GPIB 0x04
#define PCI_SUBCLASS_SMART_CARD 0x05 #define PCI_SUBCLASS_SMART_CARD 0x05
///@} ///@}
/// ///
/// PCI_CLASS_SERIAL, Base Class 0Ch. /// PCI_CLASS_SERIAL, Base Class 0Ch.
/// ///
///@{ ///@{
#define PCI_IF_EHCI 0x20 #define PCI_IF_EHCI 0x20
#define PCI_CLASS_SERIAL_IB 0x06 #define PCI_CLASS_SERIAL_IB 0x06
#define PCI_CLASS_SERIAL_IPMI 0x07 #define PCI_CLASS_SERIAL_IPMI 0x07
#define PCI_IF_IPMI_SMIC 0x00 #define PCI_IF_IPMI_SMIC 0x00
#define PCI_IF_IPMI_KCS 0x01 ///< Keyboard Controller Style #define PCI_IF_IPMI_KCS 0x01 ///< Keyboard Controller Style
#define PCI_IF_IPMI_BT 0x02 ///< Block Transfer #define PCI_IF_IPMI_BT 0x02 ///< Block Transfer
#define PCI_CLASS_SERIAL_SERCOS 0x08 #define PCI_CLASS_SERIAL_SERCOS 0x08
#define PCI_CLASS_SERIAL_CANBUS 0x09 #define PCI_CLASS_SERIAL_CANBUS 0x09
///@} ///@}
/// ///
/// PCI_CLASS_WIRELESS, Base Class 0Dh. /// PCI_CLASS_WIRELESS, Base Class 0Dh.
/// ///
///@{ ///@{
#define PCI_SUBCLASS_BLUETOOTH 0x11 #define PCI_SUBCLASS_BLUETOOTH 0x11
#define PCI_SUBCLASS_BROADBAND 0x12 #define PCI_SUBCLASS_BROADBAND 0x12
///@} ///@}
/// ///
/// PCI_CLASS_DPIO, Base Class 11h. /// PCI_CLASS_DPIO, Base Class 11h.
/// ///
///@{ ///@{
#define PCI_SUBCLASS_PERFORMANCE_COUNTERS 0x01 #define PCI_SUBCLASS_PERFORMANCE_COUNTERS 0x01
#define PCI_SUBCLASS_COMMUNICATION_SYNCHRONIZATION 0x10 #define PCI_SUBCLASS_COMMUNICATION_SYNCHRONIZATION 0x10
#define PCI_SUBCLASS_MANAGEMENT_CARD 0x20 #define PCI_SUBCLASS_MANAGEMENT_CARD 0x20
///@} ///@}
/// ///
/// defined in PCI Express Spec. /// defined in PCI Express Spec.
/// ///
#define PCI_EXP_MAX_CONFIG_OFFSET 0x1000 #define PCI_EXP_MAX_CONFIG_OFFSET 0x1000
/// ///
/// PCI Capability List IDs and records. /// PCI Capability List IDs and records.
@ -94,9 +94,9 @@
/// Section 7.2, PCI-X Addendum to the PCI Local Bus Specification, Revision 1.0b. /// Section 7.2, PCI-X Addendum to the PCI Local Bus Specification, Revision 1.0b.
/// ///
typedef struct { typedef struct {
EFI_PCI_CAPABILITY_HDR Hdr; EFI_PCI_CAPABILITY_HDR Hdr;
UINT16 CommandReg; UINT16 CommandReg;
UINT32 StatusReg; UINT32 StatusReg;
} EFI_PCI_CAPABILITY_PCIX; } EFI_PCI_CAPABILITY_PCIX;
/// ///
@ -104,11 +104,11 @@ typedef struct {
/// Section 8.6.2, PCI-X Addendum to the PCI Local Bus Specification, Revision 1.0b. /// Section 8.6.2, PCI-X Addendum to the PCI Local Bus Specification, Revision 1.0b.
/// ///
typedef struct { typedef struct {
EFI_PCI_CAPABILITY_HDR Hdr; EFI_PCI_CAPABILITY_HDR Hdr;
UINT16 SecStatusReg; UINT16 SecStatusReg;
UINT32 StatusReg; UINT32 StatusReg;
UINT32 SplitTransCtrlRegUp; UINT32 SplitTransCtrlRegUp;
UINT32 SplitTransCtrlRegDn; UINT32 SplitTransCtrlRegDn;
} EFI_PCI_CAPABILITY_PCIX_BRDG; } EFI_PCI_CAPABILITY_PCIX_BRDG;
/// ///
@ -116,12 +116,12 @@ typedef struct {
/// Table H-1: Capability IDs, PCI Local Bus Specification, 2.3 /// Table H-1: Capability IDs, PCI Local Bus Specification, 2.3
/// ///
typedef struct { typedef struct {
EFI_PCI_CAPABILITY_HDR Hdr; EFI_PCI_CAPABILITY_HDR Hdr;
UINT8 Length; UINT8 Length;
} EFI_PCI_CAPABILITY_VENDOR_HDR; } EFI_PCI_CAPABILITY_VENDOR_HDR;
#pragma pack() #pragma pack()
#define PCI_CODE_TYPE_EFI_IMAGE 0x03 #define PCI_CODE_TYPE_EFI_IMAGE 0x03
#endif #endif

View File

@ -9,24 +9,23 @@
#ifndef __PCI30_H__ #ifndef __PCI30_H__
#define __PCI30_H__ #define __PCI30_H__
#include <IndustryStandard/Pci23.h> #include <IndustryStandard/Pci23.h>
/// ///
/// PCI_CLASS_MASS_STORAGE, Base Class 01h. /// PCI_CLASS_MASS_STORAGE, Base Class 01h.
/// ///
///@{ ///@{
#define PCI_CLASS_MASS_STORAGE_SATADPA 0x06 #define PCI_CLASS_MASS_STORAGE_SATADPA 0x06
#define PCI_IF_MASS_STORAGE_SATA 0x00 #define PCI_IF_MASS_STORAGE_SATA 0x00
#define PCI_IF_MASS_STORAGE_AHCI 0x01 #define PCI_IF_MASS_STORAGE_AHCI 0x01
///@} ///@}
/// ///
/// PCI_CLASS_WIRELESS, Base Class 0Dh. /// PCI_CLASS_WIRELESS, Base Class 0Dh.
/// ///
///@{ ///@{
#define PCI_SUBCLASS_ETHERNET_80211A 0x20 #define PCI_SUBCLASS_ETHERNET_80211A 0x20
#define PCI_SUBCLASS_ETHERNET_80211B 0x21 #define PCI_SUBCLASS_ETHERNET_80211B 0x21
///@} ///@}
/** /**
@ -38,7 +37,7 @@
@retval FALSE Device is not a SATA controller. @retval FALSE Device is not a SATA controller.
**/ **/
#define IS_PCI_SATADPA(_p) IS_CLASS2 (_p, PCI_CLASS_MASS_STORAGE, PCI_CLASS_MASS_STORAGE_SATADPA) #define IS_PCI_SATADPA(_p) IS_CLASS2 (_p, PCI_CLASS_MASS_STORAGE, PCI_CLASS_MASS_STORAGE_SATADPA)
/// ///
/// PCI Capability List IDs and records /// PCI Capability List IDs and records
@ -52,20 +51,20 @@
/// Section 5.1.2, PCI Firmware Specification, Revision 3.0 /// Section 5.1.2, PCI Firmware Specification, Revision 3.0
/// ///
typedef struct { typedef struct {
UINT32 Signature; ///< "PCIR" UINT32 Signature; ///< "PCIR"
UINT16 VendorId; UINT16 VendorId;
UINT16 DeviceId; UINT16 DeviceId;
UINT16 DeviceListOffset; UINT16 DeviceListOffset;
UINT16 Length; UINT16 Length;
UINT8 Revision; UINT8 Revision;
UINT8 ClassCode[3]; UINT8 ClassCode[3];
UINT16 ImageLength; UINT16 ImageLength;
UINT16 CodeRevision; UINT16 CodeRevision;
UINT8 CodeType; UINT8 CodeType;
UINT8 Indicator; UINT8 Indicator;
UINT16 MaxRuntimeImageLength; UINT16 MaxRuntimeImageLength;
UINT16 ConfigUtilityCodeHeaderOffset; UINT16 ConfigUtilityCodeHeaderOffset;
UINT16 DMTFCLPEntryPointOffset; UINT16 DMTFCLPEntryPointOffset;
} PCI_3_0_DATA_STRUCTURE; } PCI_3_0_DATA_STRUCTURE;
#pragma pack() #pragma pack()

View File

@ -10,70 +10,69 @@
#ifndef __PCI_CODE_ID_H__ #ifndef __PCI_CODE_ID_H__
#define __PCI_CODE_ID_H__ #define __PCI_CODE_ID_H__
/// ///
/// PCI_CLASS_MASS_STORAGE, Base Class 01h. /// PCI_CLASS_MASS_STORAGE, Base Class 01h.
/// ///
///@{ ///@{
#define PCI_IF_MASS_STORAGE_SCSI_VENDOR_SPECIFIC 0x00 #define PCI_IF_MASS_STORAGE_SCSI_VENDOR_SPECIFIC 0x00
#define PCI_IF_MASS_STORAGE_SCSI_DEVICE_PQI 0x11 #define PCI_IF_MASS_STORAGE_SCSI_DEVICE_PQI 0x11
#define PCI_IF_MASS_STORAGE_SCSI_CONTROLLER_PQI 0x12 #define PCI_IF_MASS_STORAGE_SCSI_CONTROLLER_PQI 0x12
#define PCI_IF_MASS_STORAGE_SCSI_DEVICE_CONTROLLER_PQI 0x13 #define PCI_IF_MASS_STORAGE_SCSI_DEVICE_CONTROLLER_PQI 0x13
#define PCI_IF_MASS_STORAGE_SCSI_DEVICE_NVM_EXPRESS 0x21 #define PCI_IF_MASS_STORAGE_SCSI_DEVICE_NVM_EXPRESS 0x21
#define PCI_IF_MASS_STORAGE_SATA_SERIAL_BUS 0x02 #define PCI_IF_MASS_STORAGE_SATA_SERIAL_BUS 0x02
#define PCI_CLASS_MASS_STORAGE_SAS 0x07 #define PCI_CLASS_MASS_STORAGE_SAS 0x07
#define PCI_IF_MASS_STORAGE_SAS 0x00 #define PCI_IF_MASS_STORAGE_SAS 0x00
#define PCI_IF_MASS_STORAGE_SAS_SERIAL_BUS 0x01 #define PCI_IF_MASS_STORAGE_SAS_SERIAL_BUS 0x01
#define PCI_CLASS_MASS_STORAGE_SOLID_STATE 0x08 #define PCI_CLASS_MASS_STORAGE_SOLID_STATE 0x08
#define PCI_IF_MASS_STORAGE_SOLID_STATE 0x00 #define PCI_IF_MASS_STORAGE_SOLID_STATE 0x00
#define PCI_IF_MASS_STORAGE_SOLID_STATE_NVMHCI 0x01 #define PCI_IF_MASS_STORAGE_SOLID_STATE_NVMHCI 0x01
#define PCI_IF_MASS_STORAGE_SOLID_STATE_ENTERPRISE_NVMHCI 0x02 #define PCI_IF_MASS_STORAGE_SOLID_STATE_ENTERPRISE_NVMHCI 0x02
///@} ///@}
/// ///
/// PCI_CLASS_NETWORK, Base Class 02h. /// PCI_CLASS_NETWORK, Base Class 02h.
/// ///
///@{ ///@{
#define PCI_CLASS_NETWORK_INFINIBAND 0x07 #define PCI_CLASS_NETWORK_INFINIBAND 0x07
///@} ///@}
/// ///
/// PCI_CLASS_MEDIA, Base Class 04h. /// PCI_CLASS_MEDIA, Base Class 04h.
/// ///
///@{ ///@{
#define PCI_CLASS_MEDIA_MIXED_MODE 0x03 #define PCI_CLASS_MEDIA_MIXED_MODE 0x03
///@} ///@}
/// ///
/// PCI_CLASS_BRIDGE, Base Class 06h. /// PCI_CLASS_BRIDGE, Base Class 06h.
/// ///
///@{ ///@{
#define PCI_CLASS_BRIDGE_ADVANCED_SWITCHING_TO_PCI 0x0B #define PCI_CLASS_BRIDGE_ADVANCED_SWITCHING_TO_PCI 0x0B
#define PCI_IF_BRIDGE_ADVANCED_SWITCHING_TO_PCI_CUSTOM 0x00 #define PCI_IF_BRIDGE_ADVANCED_SWITCHING_TO_PCI_CUSTOM 0x00
#define PCI_IF_BRIDGE_ADVANCED_SWITCHING_TO_PCI_ASI_SIG 0x01 #define PCI_IF_BRIDGE_ADVANCED_SWITCHING_TO_PCI_ASI_SIG 0x01
///@} ///@}
/// ///
/// PCI_CLASS_SYSTEM_PERIPHERAL, Base Class 08h. /// PCI_CLASS_SYSTEM_PERIPHERAL, Base Class 08h.
/// ///
///@{ ///@{
#define PCI_IF_HPET 0x03 #define PCI_IF_HPET 0x03
#define PCI_SUBCLASS_SD_HOST_CONTROLLER 0x05 #define PCI_SUBCLASS_SD_HOST_CONTROLLER 0x05
#define PCI_SUBCLASS_IOMMU 0x06 #define PCI_SUBCLASS_IOMMU 0x06
///@} ///@}
/// ///
/// PCI_CLASS_PROCESSOR, Base Class 0Bh. /// PCI_CLASS_PROCESSOR, Base Class 0Bh.
/// ///
///@{ ///@{
#define PCI_SUBCLASS_PROC_OTHER 0x80 #define PCI_SUBCLASS_PROC_OTHER 0x80
///@} ///@}
/// ///
/// PCI_CLASS_SERIAL, Base Class 0Ch. /// PCI_CLASS_SERIAL, Base Class 0Ch.
/// ///
///@{ ///@{
#define PCI_IF_XHCI 0x30 #define PCI_IF_XHCI 0x30
#define PCI_CLASS_SERIAL_OTHER 0x80 #define PCI_CLASS_SERIAL_OTHER 0x80
///@} ///@}
@ -81,7 +80,7 @@
/// PCI_CLASS_SATELLITE, Base Class 0Fh. /// PCI_CLASS_SATELLITE, Base Class 0Fh.
/// ///
///@{ ///@{
#define PCI_SUBCLASS_SATELLITE_OTHER 0x80 #define PCI_SUBCLASS_SATELLITE_OTHER 0x80
///@} ///@}
/// ///

File diff suppressed because it is too large Load Diff

View File

@ -20,30 +20,30 @@
typedef union { typedef union {
struct { struct {
UINT32 PerformEqualization : 1; UINT32 PerformEqualization : 1;
UINT32 LinkEqualizationRequestInterruptEnable : 1; UINT32 LinkEqualizationRequestInterruptEnable : 1;
UINT32 Reserved : 30; UINT32 Reserved : 30;
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} PCI_EXPRESS_REG_LINK_CONTROL3; } PCI_EXPRESS_REG_LINK_CONTROL3;
typedef union { typedef union {
struct { struct {
UINT16 DownstreamPortTransmitterPreset : 4; UINT16 DownstreamPortTransmitterPreset : 4;
UINT16 DownstreamPortReceiverPresetHint : 3; UINT16 DownstreamPortReceiverPresetHint : 3;
UINT16 Reserved : 1; UINT16 Reserved : 1;
UINT16 UpstreamPortTransmitterPreset : 4; UINT16 UpstreamPortTransmitterPreset : 4;
UINT16 UpstreamPortReceiverPresetHint : 3; UINT16 UpstreamPortReceiverPresetHint : 3;
UINT16 Reserved2 : 1; UINT16 Reserved2 : 1;
} Bits; } Bits;
UINT16 Uint16; UINT16 Uint16;
} PCI_EXPRESS_REG_LANE_EQUALIZATION_CONTROL; } PCI_EXPRESS_REG_LANE_EQUALIZATION_CONTROL;
typedef struct { typedef struct {
PCI_EXPRESS_EXTENDED_CAPABILITIES_HEADER Header; PCI_EXPRESS_EXTENDED_CAPABILITIES_HEADER Header;
PCI_EXPRESS_REG_LINK_CONTROL3 LinkControl3; PCI_EXPRESS_REG_LINK_CONTROL3 LinkControl3;
UINT32 LaneErrorStatus; UINT32 LaneErrorStatus;
PCI_EXPRESS_REG_LANE_EQUALIZATION_CONTROL EqualizationControl[2]; PCI_EXPRESS_REG_LANE_EQUALIZATION_CONTROL EqualizationControl[2];
} PCI_EXPRESS_EXTENDED_CAPABILITIES_SECONDARY_PCIE; } PCI_EXPRESS_EXTENDED_CAPABILITIES_SECONDARY_PCIE;
#pragma pack() #pragma pack()

View File

@ -20,51 +20,51 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
typedef union { typedef union {
struct { struct {
UINT32 PciPmL12 : 1; UINT32 PciPmL12 : 1;
UINT32 PciPmL11 : 1; UINT32 PciPmL11 : 1;
UINT32 AspmL12 : 1; UINT32 AspmL12 : 1;
UINT32 AspmL11 : 1; UINT32 AspmL11 : 1;
UINT32 L1PmSubstates : 1; UINT32 L1PmSubstates : 1;
UINT32 Reserved : 3; UINT32 Reserved : 3;
UINT32 CommonModeRestoreTime : 8; UINT32 CommonModeRestoreTime : 8;
UINT32 TPowerOnScale : 2; UINT32 TPowerOnScale : 2;
UINT32 Reserved2 : 1; UINT32 Reserved2 : 1;
UINT32 TPowerOnValue : 5; UINT32 TPowerOnValue : 5;
UINT32 Reserved3 : 8; UINT32 Reserved3 : 8;
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} PCI_EXPRESS_REG_L1_PM_SUBSTATES_CAPABILITY; } PCI_EXPRESS_REG_L1_PM_SUBSTATES_CAPABILITY;
typedef union { typedef union {
struct { struct {
UINT32 PciPmL12 : 1; UINT32 PciPmL12 : 1;
UINT32 PciPmL11 : 1; UINT32 PciPmL11 : 1;
UINT32 AspmL12 : 1; UINT32 AspmL12 : 1;
UINT32 AspmL11 : 1; UINT32 AspmL11 : 1;
UINT32 Reserved : 4; UINT32 Reserved : 4;
UINT32 CommonModeRestoreTime : 8; UINT32 CommonModeRestoreTime : 8;
UINT32 LtrL12ThresholdValue : 10; UINT32 LtrL12ThresholdValue : 10;
UINT32 Reserved2 : 3; UINT32 Reserved2 : 3;
UINT32 LtrL12ThresholdScale : 3; UINT32 LtrL12ThresholdScale : 3;
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} PCI_EXPRESS_REG_L1_PM_SUBSTATES_CONTROL1; } PCI_EXPRESS_REG_L1_PM_SUBSTATES_CONTROL1;
typedef union { typedef union {
struct { struct {
UINT32 TPowerOnScale : 2; UINT32 TPowerOnScale : 2;
UINT32 Reserved : 1; UINT32 Reserved : 1;
UINT32 TPowerOnValue : 5; UINT32 TPowerOnValue : 5;
UINT32 Reserved2 : 24; UINT32 Reserved2 : 24;
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} PCI_EXPRESS_REG_L1_PM_SUBSTATES_CONTROL2; } PCI_EXPRESS_REG_L1_PM_SUBSTATES_CONTROL2;
typedef struct { typedef struct {
PCI_EXPRESS_EXTENDED_CAPABILITIES_HEADER Header; PCI_EXPRESS_EXTENDED_CAPABILITIES_HEADER Header;
PCI_EXPRESS_REG_L1_PM_SUBSTATES_CAPABILITY Capability; PCI_EXPRESS_REG_L1_PM_SUBSTATES_CAPABILITY Capability;
PCI_EXPRESS_REG_L1_PM_SUBSTATES_CONTROL1 Control1; PCI_EXPRESS_REG_L1_PM_SUBSTATES_CONTROL1 Control1;
PCI_EXPRESS_REG_L1_PM_SUBSTATES_CONTROL2 Control2; PCI_EXPRESS_REG_L1_PM_SUBSTATES_CONTROL2 Control2;
} PCI_EXPRESS_EXTENDED_CAPABILITIES_L1_PM_SUBSTATES; } PCI_EXPRESS_EXTENDED_CAPABILITIES_L1_PM_SUBSTATES;
#pragma pack() #pragma pack()

View File

@ -24,58 +24,58 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#define PCI_EXPRESS_EXTENDED_CAPABILITY_PHYSICAL_LAYER_16_0_VER1 0x1 #define PCI_EXPRESS_EXTENDED_CAPABILITY_PHYSICAL_LAYER_16_0_VER1 0x1
// Register offsets from Physical Layer PCI-E Ext Cap Header // Register offsets from Physical Layer PCI-E Ext Cap Header
#define PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_CAPABILITIES_OFFSET 0x04 #define PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_CAPABILITIES_OFFSET 0x04
#define PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_CONTROL_OFFSET 0x08 #define PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_CONTROL_OFFSET 0x08
#define PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_STATUS_OFFSET 0x0C #define PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_STATUS_OFFSET 0x0C
#define PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_LOCAL_DATA_PARITY_STATUS_OFFSET 0x10 #define PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_LOCAL_DATA_PARITY_STATUS_OFFSET 0x10
#define PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_FIRST_RETIMER_DATA_PARITY_STATUS_OFFSET 0x14 #define PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_FIRST_RETIMER_DATA_PARITY_STATUS_OFFSET 0x14
#define PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_SECOND_RETIMER_DATA_PARITY_STATUS_OFFSET 0x18 #define PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_SECOND_RETIMER_DATA_PARITY_STATUS_OFFSET 0x18
#define PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_LANE_EQUALIZATION_CONTROL_OFFSET 0x20 #define PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_LANE_EQUALIZATION_CONTROL_OFFSET 0x20
typedef union { typedef union {
struct { struct {
UINT32 Reserved : 32; // Reserved bit 0:31 UINT32 Reserved : 32; // Reserved bit 0:31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_CAPABILITIES; } PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_CAPABILITIES;
typedef union { typedef union {
struct { struct {
UINT32 Reserved : 32; // Reserved bit 0:31 UINT32 Reserved : 32; // Reserved bit 0:31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_CONTROL; } PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_CONTROL;
typedef union { typedef union {
struct { struct {
UINT32 EqualizationComplete : 1; // bit 0 UINT32 EqualizationComplete : 1; // bit 0
UINT32 EqualizationPhase1Success : 1; // bit 1 UINT32 EqualizationPhase1Success : 1; // bit 1
UINT32 EqualizationPhase2Success : 1; // bit 2 UINT32 EqualizationPhase2Success : 1; // bit 2
UINT32 EqualizationPhase3Success : 1; // bit 3 UINT32 EqualizationPhase3Success : 1; // bit 3
UINT32 LinkEqualizationRequest : 1; // bit 4 UINT32 LinkEqualizationRequest : 1; // bit 4
UINT32 Reserved : 27; // Reserved bit 5:31 UINT32 Reserved : 27; // Reserved bit 5:31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_STATUS; } PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_STATUS;
typedef union { typedef union {
struct { struct {
UINT8 DownstreamPortTransmitterPreset : 4; //bit 0..3 UINT8 DownstreamPortTransmitterPreset : 4; // bit 0..3
UINT8 UpstreamPortTransmitterPreset : 4; //bit 4..7 UINT8 UpstreamPortTransmitterPreset : 4; // bit 4..7
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_LANE_EQUALIZATION_CONTROL; } PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_LANE_EQUALIZATION_CONTROL;
typedef struct { typedef struct {
PCI_EXPRESS_EXTENDED_CAPABILITIES_HEADER Header; PCI_EXPRESS_EXTENDED_CAPABILITIES_HEADER Header;
PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_CAPABILITIES Capablities; PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_CAPABILITIES Capablities;
PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_CONTROL Control; PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_CONTROL Control;
PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_STATUS Status; PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_STATUS Status;
UINT32 LocalDataParityMismatchStatus; UINT32 LocalDataParityMismatchStatus;
UINT32 FirstRetimerDataParityMismatchStatus; UINT32 FirstRetimerDataParityMismatchStatus;
UINT32 SecondRetimerDataParityMismatchStatus; UINT32 SecondRetimerDataParityMismatchStatus;
UINT32 Reserved; UINT32 Reserved;
PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_LANE_EQUALIZATION_CONTROL LaneEqualizationControl[1]; PCI_EXPRESS_REG_PHYSICAL_LAYER_16_0_LANE_EQUALIZATION_CONTROL LaneEqualizationControl[1];
} PCI_EXPRESS_EXTENDED_CAPABILITIES_PHYSICAL_LAYER_16_0; } PCI_EXPRESS_EXTENDED_CAPABILITIES_PHYSICAL_LAYER_16_0;
///@} ///@}
@ -84,26 +84,26 @@ typedef struct {
///@{ ///@{
typedef union { typedef union {
struct { struct {
UINT32 DvsecVendorId : 16; //bit 0..15 UINT32 DvsecVendorId : 16; // bit 0..15
UINT32 DvsecRevision : 4; //bit 16..19 UINT32 DvsecRevision : 4; // bit 16..19
UINT32 DvsecLength : 12; //bit 20..31 UINT32 DvsecLength : 12; // bit 20..31
}Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
}PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_1; } PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_1;
typedef union { typedef union {
struct { struct {
UINT16 DvsecId : 16; //bit 0..15 UINT16 DvsecId : 16; // bit 0..15
}Bits; } Bits;
UINT16 Uint16; UINT16 Uint16;
}PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_2; } PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_2;
typedef struct { typedef struct {
PCI_EXPRESS_EXTENDED_CAPABILITIES_HEADER Header; PCI_EXPRESS_EXTENDED_CAPABILITIES_HEADER Header;
PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_1 DesignatedVendorSpecificHeader1; PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_1 DesignatedVendorSpecificHeader1;
PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_2 DesignatedVendorSpecificHeader2; PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_2 DesignatedVendorSpecificHeader2;
UINT8 DesignatedVendorSpecific[1]; UINT8 DesignatedVendorSpecific[1];
}PCI_EXPRESS_EXTENDED_CAPABILITIES_DESIGNATED_VENDOR_SPECIFIC; } PCI_EXPRESS_EXTENDED_CAPABILITIES_DESIGNATED_VENDOR_SPECIFIC;
///@} ///@}
#pragma pack() #pragma pack()

View File

@ -23,111 +23,111 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#define PCI_EXPRESS_EXTENDED_CAPABILITY_PHYSICAL_LAYER_32_0_VER1 0x1 #define PCI_EXPRESS_EXTENDED_CAPABILITY_PHYSICAL_LAYER_32_0_VER1 0x1
// Register offsets from Physical Layer PCI-E Ext Cap Header // Register offsets from Physical Layer PCI-E Ext Cap Header
#define PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_CAPABILITIES_OFFSET 0x04 #define PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_CAPABILITIES_OFFSET 0x04
#define PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_CONTROL_OFFSET 0x08 #define PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_CONTROL_OFFSET 0x08
#define PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_STATUS_OFFSET 0x0C #define PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_STATUS_OFFSET 0x0C
#define PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_RCVD_MODIFIED_TS_DATA1_OFFSET 0x10 #define PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_RCVD_MODIFIED_TS_DATA1_OFFSET 0x10
#define PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_RCVD_MODIFIED_TS_DATA2_OFFSET 0x14 #define PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_RCVD_MODIFIED_TS_DATA2_OFFSET 0x14
#define PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_TRANS_MODIFIED_TS_DATA1_OFFSET 0x18 #define PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_TRANS_MODIFIED_TS_DATA1_OFFSET 0x18
#define PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_TRANS_MODIFIED_TS_DATA2_OFFSET 0x1C #define PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_TRANS_MODIFIED_TS_DATA2_OFFSET 0x1C
#define PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_LANE_EQUALIZATION_CONTROL_OFFSET 0x20 #define PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_LANE_EQUALIZATION_CONTROL_OFFSET 0x20
typedef union { typedef union {
struct { struct {
UINT32 EqualizationByPassToHighestRateSupport : 1; // bit 0 UINT32 EqualizationByPassToHighestRateSupport : 1; // bit 0
UINT32 NoEqualizationNeededSupport : 1; // bit 1 UINT32 NoEqualizationNeededSupport : 1; // bit 1
UINT32 Reserved1 : 6; // Reserved bit 2:7 UINT32 Reserved1 : 6; // Reserved bit 2:7
UINT32 ModifiedTSUsageMode0Support : 1; // bit 8 UINT32 ModifiedTSUsageMode0Support : 1; // bit 8
UINT32 ModifiedTSUsageMode1Support : 1; // bit 9 UINT32 ModifiedTSUsageMode1Support : 1; // bit 9
UINT32 ModifiedTSUsageMode2Support : 1; // bit 10 UINT32 ModifiedTSUsageMode2Support : 1; // bit 10
UINT32 ModifiedTSReservedUsageModes : 5; // bit 11:15 UINT32 ModifiedTSReservedUsageModes : 5; // bit 11:15
UINT32 Reserved2 : 16; // Reserved bit 16:31 UINT32 Reserved2 : 16; // Reserved bit 16:31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_CAPABILITIES; } PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_CAPABILITIES;
typedef union { typedef union {
struct { struct {
UINT32 EqualizationByPassToHighestRateDisable : 1; // bit 0 UINT32 EqualizationByPassToHighestRateDisable : 1; // bit 0
UINT32 NoEqualizationNeededDisable : 1; // bit 1 UINT32 NoEqualizationNeededDisable : 1; // bit 1
UINT32 Reserved1 : 6; // Reserved bit 2:7 UINT32 Reserved1 : 6; // Reserved bit 2:7
UINT32 ModifiedTSUsageModeSelected : 3; // bit 8:10 UINT32 ModifiedTSUsageModeSelected : 3; // bit 8:10
UINT32 Reserved2 : 21; // Reserved bit 11:31 UINT32 Reserved2 : 21; // Reserved bit 11:31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_CONTROL; } PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_CONTROL;
typedef union { typedef union {
struct { struct {
UINT32 EqualizationComplete : 1; // bit 0 UINT32 EqualizationComplete : 1; // bit 0
UINT32 EqualizationPhase1Success : 1; // bit 1 UINT32 EqualizationPhase1Success : 1; // bit 1
UINT32 EqualizationPhase2Success : 1; // bit 2 UINT32 EqualizationPhase2Success : 1; // bit 2
UINT32 EqualizationPhase3Success : 1; // bit 3 UINT32 EqualizationPhase3Success : 1; // bit 3
UINT32 LinkEqualizationRequest : 1; // bit 4 UINT32 LinkEqualizationRequest : 1; // bit 4
UINT32 ModifiedTSRcvd : 1; // bit 5 UINT32 ModifiedTSRcvd : 1; // bit 5
UINT32 RcvdEnhancedLinkControl : 2; // bit 6:7 UINT32 RcvdEnhancedLinkControl : 2; // bit 6:7
UINT32 TransmitterPrecodingOn : 1; // bit 8 UINT32 TransmitterPrecodingOn : 1; // bit 8
UINT32 TransmitterPrecodeRequest : 1; // bit 9 UINT32 TransmitterPrecodeRequest : 1; // bit 9
UINT32 NoEqualizationNeededRcvd : 1; // bit 10 UINT32 NoEqualizationNeededRcvd : 1; // bit 10
UINT32 Reserved : 21; // Reserved bit 11:31 UINT32 Reserved : 21; // Reserved bit 11:31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_STATUS; } PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_STATUS;
typedef union { typedef union {
struct { struct {
UINT32 RcvdModifiedTSUsageMode : 3; // bit 0:2 UINT32 RcvdModifiedTSUsageMode : 3; // bit 0:2
UINT32 RcvdModifiedTSUsageInfo1 : 13; // bit 3:15 UINT32 RcvdModifiedTSUsageInfo1 : 13; // bit 3:15
UINT32 RcvdModifiedTSVendorId : 16; // bit 16:31 UINT32 RcvdModifiedTSVendorId : 16; // bit 16:31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_RCVD_MODIFIED_TS_DATA1; } PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_RCVD_MODIFIED_TS_DATA1;
typedef union { typedef union {
struct { struct {
UINT32 RcvdModifiedTSUsageInfo2 : 24; // bit 0:23 UINT32 RcvdModifiedTSUsageInfo2 : 24; // bit 0:23
UINT32 AltProtocolNegotiationStatus : 2; // bit 24:25 UINT32 AltProtocolNegotiationStatus : 2; // bit 24:25
UINT32 Reserved : 6; // Reserved bit 26:31 UINT32 Reserved : 6; // Reserved bit 26:31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_RCVD_MODIFIED_TS_DATA2; } PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_RCVD_MODIFIED_TS_DATA2;
typedef union { typedef union {
struct { struct {
UINT32 TransModifiedTSUsageMode : 3; // bit 0:2 UINT32 TransModifiedTSUsageMode : 3; // bit 0:2
UINT32 TransModifiedTSUsageInfo1 : 13; // bit 3:15 UINT32 TransModifiedTSUsageInfo1 : 13; // bit 3:15
UINT32 TransModifiedTSVendorId : 16; // bit 16:31 UINT32 TransModifiedTSVendorId : 16; // bit 16:31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_TRANS_MODIFIED_TS_DATA1; } PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_TRANS_MODIFIED_TS_DATA1;
typedef union { typedef union {
struct { struct {
UINT32 TransModifiedTSUsageInfo2 : 24; // bit 0:23 UINT32 TransModifiedTSUsageInfo2 : 24; // bit 0:23
UINT32 AltProtocolNegotiationStatus : 2; // bit 24:25 UINT32 AltProtocolNegotiationStatus : 2; // bit 24:25
UINT32 Reserved : 6; // Reserved bit 26:31 UINT32 Reserved : 6; // Reserved bit 26:31
} Bits; } Bits;
UINT32 Uint32; UINT32 Uint32;
} PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_TRANS_MODIFIED_TS_DATA2; } PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_TRANS_MODIFIED_TS_DATA2;
typedef union { typedef union {
struct { struct {
UINT8 DownstreamPortTransmitterPreset : 4; //bit 0..3 UINT8 DownstreamPortTransmitterPreset : 4; // bit 0..3
UINT8 UpstreamPortTransmitterPreset : 4; //bit 4..7 UINT8 UpstreamPortTransmitterPreset : 4; // bit 4..7
} Bits; } Bits;
UINT8 Uint8; UINT8 Uint8;
} PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_LANE_EQUALIZATION_CONTROL; } PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_LANE_EQUALIZATION_CONTROL;
typedef struct { typedef struct {
PCI_EXPRESS_EXTENDED_CAPABILITIES_HEADER Header; PCI_EXPRESS_EXTENDED_CAPABILITIES_HEADER Header;
PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_CAPABILITIES Capablities; PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_CAPABILITIES Capablities;
PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_CONTROL Control; PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_CONTROL Control;
PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_STATUS Status; PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_STATUS Status;
PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_RCVD_MODIFIED_TS_DATA1 RcvdModifiedTs1Data; PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_RCVD_MODIFIED_TS_DATA1 RcvdModifiedTs1Data;
PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_RCVD_MODIFIED_TS_DATA2 RcvdModifiedTs2Data; PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_RCVD_MODIFIED_TS_DATA2 RcvdModifiedTs2Data;
PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_TRANS_MODIFIED_TS_DATA1 TransModifiedTs1Data; PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_TRANS_MODIFIED_TS_DATA1 TransModifiedTs1Data;
PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_TRANS_MODIFIED_TS_DATA2 TransModifiedTs2Data; PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_TRANS_MODIFIED_TS_DATA2 TransModifiedTs2Data;
PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_LANE_EQUALIZATION_CONTROL LaneEqualizationControl[1]; PCI_EXPRESS_REG_PHYSICAL_LAYER_32_0_LANE_EQUALIZATION_CONTROL LaneEqualizationControl[1];
} PCI_EXPRESS_EXTENDED_CAPABILITIES_PHYSICAL_LAYER_32_0; } PCI_EXPRESS_EXTENDED_CAPABILITIES_PHYSICAL_LAYER_32_0;
///@} ///@}

View File

@ -21,11 +21,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
// //
// PE32+ Subsystem type for EFI images // PE32+ Subsystem type for EFI images
// //
#define EFI_IMAGE_SUBSYSTEM_EFI_APPLICATION 10 #define EFI_IMAGE_SUBSYSTEM_EFI_APPLICATION 10
#define EFI_IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11 #define EFI_IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11
#define EFI_IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 12 #define EFI_IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 12
#define EFI_IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER 13 ///< defined PI Specification, 1.0 #define EFI_IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER 13///< defined PI Specification, 1.0
// //
// PE32+ Machine type for EFI images // PE32+ Machine type for EFI images
@ -53,44 +52,44 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
/// under DOS it can print an error message. /// under DOS it can print an error message.
/// ///
typedef struct { typedef struct {
UINT16 e_magic; ///< Magic number. UINT16 e_magic; ///< Magic number.
UINT16 e_cblp; ///< Bytes on last page of file. UINT16 e_cblp; ///< Bytes on last page of file.
UINT16 e_cp; ///< Pages in file. UINT16 e_cp; ///< Pages in file.
UINT16 e_crlc; ///< Relocations. UINT16 e_crlc; ///< Relocations.
UINT16 e_cparhdr; ///< Size of header in paragraphs. UINT16 e_cparhdr; ///< Size of header in paragraphs.
UINT16 e_minalloc; ///< Minimum extra paragraphs needed. UINT16 e_minalloc; ///< Minimum extra paragraphs needed.
UINT16 e_maxalloc; ///< Maximum extra paragraphs needed. UINT16 e_maxalloc; ///< Maximum extra paragraphs needed.
UINT16 e_ss; ///< Initial (relative) SS value. UINT16 e_ss; ///< Initial (relative) SS value.
UINT16 e_sp; ///< Initial SP value. UINT16 e_sp; ///< Initial SP value.
UINT16 e_csum; ///< Checksum. UINT16 e_csum; ///< Checksum.
UINT16 e_ip; ///< Initial IP value. UINT16 e_ip; ///< Initial IP value.
UINT16 e_cs; ///< Initial (relative) CS value. UINT16 e_cs; ///< Initial (relative) CS value.
UINT16 e_lfarlc; ///< File address of relocation table. UINT16 e_lfarlc; ///< File address of relocation table.
UINT16 e_ovno; ///< Overlay number. UINT16 e_ovno; ///< Overlay number.
UINT16 e_res[4]; ///< Reserved words. UINT16 e_res[4]; ///< Reserved words.
UINT16 e_oemid; ///< OEM identifier (for e_oeminfo). UINT16 e_oemid; ///< OEM identifier (for e_oeminfo).
UINT16 e_oeminfo; ///< OEM information; e_oemid specific. UINT16 e_oeminfo; ///< OEM information; e_oemid specific.
UINT16 e_res2[10]; ///< Reserved words. UINT16 e_res2[10]; ///< Reserved words.
UINT32 e_lfanew; ///< File address of new exe header. UINT32 e_lfanew; ///< File address of new exe header.
} EFI_IMAGE_DOS_HEADER; } EFI_IMAGE_DOS_HEADER;
/// ///
/// COFF File Header (Object and Image). /// COFF File Header (Object and Image).
/// ///
typedef struct { typedef struct {
UINT16 Machine; UINT16 Machine;
UINT16 NumberOfSections; UINT16 NumberOfSections;
UINT32 TimeDateStamp; UINT32 TimeDateStamp;
UINT32 PointerToSymbolTable; UINT32 PointerToSymbolTable;
UINT32 NumberOfSymbols; UINT32 NumberOfSymbols;
UINT16 SizeOfOptionalHeader; UINT16 SizeOfOptionalHeader;
UINT16 Characteristics; UINT16 Characteristics;
} EFI_IMAGE_FILE_HEADER; } EFI_IMAGE_FILE_HEADER;
/// ///
/// Size of EFI_IMAGE_FILE_HEADER. /// Size of EFI_IMAGE_FILE_HEADER.
/// ///
#define EFI_IMAGE_SIZEOF_FILE_HEADER 20 #define EFI_IMAGE_SIZEOF_FILE_HEADER 20
// //
// Characteristics // Characteristics
@ -110,26 +109,26 @@ typedef struct {
/// Header Data Directories. /// Header Data Directories.
/// ///
typedef struct { typedef struct {
UINT32 VirtualAddress; UINT32 VirtualAddress;
UINT32 Size; UINT32 Size;
} EFI_IMAGE_DATA_DIRECTORY; } EFI_IMAGE_DATA_DIRECTORY;
// //
// Directory Entries // Directory Entries
// //
#define EFI_IMAGE_DIRECTORY_ENTRY_EXPORT 0 #define EFI_IMAGE_DIRECTORY_ENTRY_EXPORT 0
#define EFI_IMAGE_DIRECTORY_ENTRY_IMPORT 1 #define EFI_IMAGE_DIRECTORY_ENTRY_IMPORT 1
#define EFI_IMAGE_DIRECTORY_ENTRY_RESOURCE 2 #define EFI_IMAGE_DIRECTORY_ENTRY_RESOURCE 2
#define EFI_IMAGE_DIRECTORY_ENTRY_EXCEPTION 3 #define EFI_IMAGE_DIRECTORY_ENTRY_EXCEPTION 3
#define EFI_IMAGE_DIRECTORY_ENTRY_SECURITY 4 #define EFI_IMAGE_DIRECTORY_ENTRY_SECURITY 4
#define EFI_IMAGE_DIRECTORY_ENTRY_BASERELOC 5 #define EFI_IMAGE_DIRECTORY_ENTRY_BASERELOC 5
#define EFI_IMAGE_DIRECTORY_ENTRY_DEBUG 6 #define EFI_IMAGE_DIRECTORY_ENTRY_DEBUG 6
#define EFI_IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7 #define EFI_IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7
#define EFI_IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8 #define EFI_IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8
#define EFI_IMAGE_DIRECTORY_ENTRY_TLS 9 #define EFI_IMAGE_DIRECTORY_ENTRY_TLS 9
#define EFI_IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10 #define EFI_IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10
#define EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES 16 #define EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES 16
/// ///
/// @attention /// @attention
@ -137,7 +136,7 @@ typedef struct {
/// EFI_IMAGE_OPTIONAL_HEADER32 must be used. The data structures only vary /// EFI_IMAGE_OPTIONAL_HEADER32 must be used. The data structures only vary
/// after NT additional fields. /// after NT additional fields.
/// ///
#define EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x10b #define EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x10b
/// ///
/// Optional Header Standard Fields for PE32. /// Optional Header Standard Fields for PE32.
@ -146,40 +145,40 @@ typedef struct {
/// ///
/// Standard fields. /// Standard fields.
/// ///
UINT16 Magic; UINT16 Magic;
UINT8 MajorLinkerVersion; UINT8 MajorLinkerVersion;
UINT8 MinorLinkerVersion; UINT8 MinorLinkerVersion;
UINT32 SizeOfCode; UINT32 SizeOfCode;
UINT32 SizeOfInitializedData; UINT32 SizeOfInitializedData;
UINT32 SizeOfUninitializedData; UINT32 SizeOfUninitializedData;
UINT32 AddressOfEntryPoint; UINT32 AddressOfEntryPoint;
UINT32 BaseOfCode; UINT32 BaseOfCode;
UINT32 BaseOfData; ///< PE32 contains this additional field, which is absent in PE32+. UINT32 BaseOfData; ///< PE32 contains this additional field, which is absent in PE32+.
/// ///
/// Optional Header Windows-Specific Fields. /// Optional Header Windows-Specific Fields.
/// ///
UINT32 ImageBase; UINT32 ImageBase;
UINT32 SectionAlignment; UINT32 SectionAlignment;
UINT32 FileAlignment; UINT32 FileAlignment;
UINT16 MajorOperatingSystemVersion; UINT16 MajorOperatingSystemVersion;
UINT16 MinorOperatingSystemVersion; UINT16 MinorOperatingSystemVersion;
UINT16 MajorImageVersion; UINT16 MajorImageVersion;
UINT16 MinorImageVersion; UINT16 MinorImageVersion;
UINT16 MajorSubsystemVersion; UINT16 MajorSubsystemVersion;
UINT16 MinorSubsystemVersion; UINT16 MinorSubsystemVersion;
UINT32 Win32VersionValue; UINT32 Win32VersionValue;
UINT32 SizeOfImage; UINT32 SizeOfImage;
UINT32 SizeOfHeaders; UINT32 SizeOfHeaders;
UINT32 CheckSum; UINT32 CheckSum;
UINT16 Subsystem; UINT16 Subsystem;
UINT16 DllCharacteristics; UINT16 DllCharacteristics;
UINT32 SizeOfStackReserve; UINT32 SizeOfStackReserve;
UINT32 SizeOfStackCommit; UINT32 SizeOfStackCommit;
UINT32 SizeOfHeapReserve; UINT32 SizeOfHeapReserve;
UINT32 SizeOfHeapCommit; UINT32 SizeOfHeapCommit;
UINT32 LoaderFlags; UINT32 LoaderFlags;
UINT32 NumberOfRvaAndSizes; UINT32 NumberOfRvaAndSizes;
EFI_IMAGE_DATA_DIRECTORY DataDirectory[EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES]; EFI_IMAGE_DATA_DIRECTORY DataDirectory[EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES];
} EFI_IMAGE_OPTIONAL_HEADER32; } EFI_IMAGE_OPTIONAL_HEADER32;
/// ///
@ -188,7 +187,7 @@ typedef struct {
/// EFI_IMAGE_OPTIONAL_HEADER64 must be used. The data structures only vary /// EFI_IMAGE_OPTIONAL_HEADER64 must be used. The data structures only vary
/// after NT additional fields. /// after NT additional fields.
/// ///
#define EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x20b #define EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x20b
/// ///
/// Optional Header Standard Fields for PE32+. /// Optional Header Standard Fields for PE32+.
@ -197,166 +196,165 @@ typedef struct {
/// ///
/// Standard fields. /// Standard fields.
/// ///
UINT16 Magic; UINT16 Magic;
UINT8 MajorLinkerVersion; UINT8 MajorLinkerVersion;
UINT8 MinorLinkerVersion; UINT8 MinorLinkerVersion;
UINT32 SizeOfCode; UINT32 SizeOfCode;
UINT32 SizeOfInitializedData; UINT32 SizeOfInitializedData;
UINT32 SizeOfUninitializedData; UINT32 SizeOfUninitializedData;
UINT32 AddressOfEntryPoint; UINT32 AddressOfEntryPoint;
UINT32 BaseOfCode; UINT32 BaseOfCode;
/// ///
/// Optional Header Windows-Specific Fields. /// Optional Header Windows-Specific Fields.
/// ///
UINT64 ImageBase; UINT64 ImageBase;
UINT32 SectionAlignment; UINT32 SectionAlignment;
UINT32 FileAlignment; UINT32 FileAlignment;
UINT16 MajorOperatingSystemVersion; UINT16 MajorOperatingSystemVersion;
UINT16 MinorOperatingSystemVersion; UINT16 MinorOperatingSystemVersion;
UINT16 MajorImageVersion; UINT16 MajorImageVersion;
UINT16 MinorImageVersion; UINT16 MinorImageVersion;
UINT16 MajorSubsystemVersion; UINT16 MajorSubsystemVersion;
UINT16 MinorSubsystemVersion; UINT16 MinorSubsystemVersion;
UINT32 Win32VersionValue; UINT32 Win32VersionValue;
UINT32 SizeOfImage; UINT32 SizeOfImage;
UINT32 SizeOfHeaders; UINT32 SizeOfHeaders;
UINT32 CheckSum; UINT32 CheckSum;
UINT16 Subsystem; UINT16 Subsystem;
UINT16 DllCharacteristics; UINT16 DllCharacteristics;
UINT64 SizeOfStackReserve; UINT64 SizeOfStackReserve;
UINT64 SizeOfStackCommit; UINT64 SizeOfStackCommit;
UINT64 SizeOfHeapReserve; UINT64 SizeOfHeapReserve;
UINT64 SizeOfHeapCommit; UINT64 SizeOfHeapCommit;
UINT32 LoaderFlags; UINT32 LoaderFlags;
UINT32 NumberOfRvaAndSizes; UINT32 NumberOfRvaAndSizes;
EFI_IMAGE_DATA_DIRECTORY DataDirectory[EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES]; EFI_IMAGE_DATA_DIRECTORY DataDirectory[EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES];
} EFI_IMAGE_OPTIONAL_HEADER64; } EFI_IMAGE_OPTIONAL_HEADER64;
/// ///
/// @attention /// @attention
/// EFI_IMAGE_NT_HEADERS32 is for use ONLY by tools. /// EFI_IMAGE_NT_HEADERS32 is for use ONLY by tools.
/// ///
typedef struct { typedef struct {
UINT32 Signature; UINT32 Signature;
EFI_IMAGE_FILE_HEADER FileHeader; EFI_IMAGE_FILE_HEADER FileHeader;
EFI_IMAGE_OPTIONAL_HEADER32 OptionalHeader; EFI_IMAGE_OPTIONAL_HEADER32 OptionalHeader;
} EFI_IMAGE_NT_HEADERS32; } EFI_IMAGE_NT_HEADERS32;
#define EFI_IMAGE_SIZEOF_NT_OPTIONAL32_HEADER sizeof (EFI_IMAGE_NT_HEADERS32) #define EFI_IMAGE_SIZEOF_NT_OPTIONAL32_HEADER sizeof (EFI_IMAGE_NT_HEADERS32)
/// ///
/// @attention /// @attention
/// EFI_IMAGE_HEADERS64 is for use ONLY by tools. /// EFI_IMAGE_HEADERS64 is for use ONLY by tools.
/// ///
typedef struct { typedef struct {
UINT32 Signature; UINT32 Signature;
EFI_IMAGE_FILE_HEADER FileHeader; EFI_IMAGE_FILE_HEADER FileHeader;
EFI_IMAGE_OPTIONAL_HEADER64 OptionalHeader; EFI_IMAGE_OPTIONAL_HEADER64 OptionalHeader;
} EFI_IMAGE_NT_HEADERS64; } EFI_IMAGE_NT_HEADERS64;
#define EFI_IMAGE_SIZEOF_NT_OPTIONAL64_HEADER sizeof (EFI_IMAGE_NT_HEADERS64) #define EFI_IMAGE_SIZEOF_NT_OPTIONAL64_HEADER sizeof (EFI_IMAGE_NT_HEADERS64)
// //
// Other Windows Subsystem Values // Other Windows Subsystem Values
// //
#define EFI_IMAGE_SUBSYSTEM_UNKNOWN 0 #define EFI_IMAGE_SUBSYSTEM_UNKNOWN 0
#define EFI_IMAGE_SUBSYSTEM_NATIVE 1 #define EFI_IMAGE_SUBSYSTEM_NATIVE 1
#define EFI_IMAGE_SUBSYSTEM_WINDOWS_GUI 2 #define EFI_IMAGE_SUBSYSTEM_WINDOWS_GUI 2
#define EFI_IMAGE_SUBSYSTEM_WINDOWS_CUI 3 #define EFI_IMAGE_SUBSYSTEM_WINDOWS_CUI 3
#define EFI_IMAGE_SUBSYSTEM_OS2_CUI 5 #define EFI_IMAGE_SUBSYSTEM_OS2_CUI 5
#define EFI_IMAGE_SUBSYSTEM_POSIX_CUI 7 #define EFI_IMAGE_SUBSYSTEM_POSIX_CUI 7
/// ///
/// Length of ShortName. /// Length of ShortName.
/// ///
#define EFI_IMAGE_SIZEOF_SHORT_NAME 8 #define EFI_IMAGE_SIZEOF_SHORT_NAME 8
/// ///
/// Section Table. This table immediately follows the optional header. /// Section Table. This table immediately follows the optional header.
/// ///
typedef struct { typedef struct {
UINT8 Name[EFI_IMAGE_SIZEOF_SHORT_NAME]; UINT8 Name[EFI_IMAGE_SIZEOF_SHORT_NAME];
union { union {
UINT32 PhysicalAddress; UINT32 PhysicalAddress;
UINT32 VirtualSize; UINT32 VirtualSize;
} Misc; } Misc;
UINT32 VirtualAddress; UINT32 VirtualAddress;
UINT32 SizeOfRawData; UINT32 SizeOfRawData;
UINT32 PointerToRawData; UINT32 PointerToRawData;
UINT32 PointerToRelocations; UINT32 PointerToRelocations;
UINT32 PointerToLinenumbers; UINT32 PointerToLinenumbers;
UINT16 NumberOfRelocations; UINT16 NumberOfRelocations;
UINT16 NumberOfLinenumbers; UINT16 NumberOfLinenumbers;
UINT32 Characteristics; UINT32 Characteristics;
} EFI_IMAGE_SECTION_HEADER; } EFI_IMAGE_SECTION_HEADER;
/// ///
/// Size of EFI_IMAGE_SECTION_HEADER. /// Size of EFI_IMAGE_SECTION_HEADER.
/// ///
#define EFI_IMAGE_SIZEOF_SECTION_HEADER 40 #define EFI_IMAGE_SIZEOF_SECTION_HEADER 40
// //
// Section Flags Values // Section Flags Values
// //
#define EFI_IMAGE_SCN_TYPE_NO_PAD BIT3 ///< 0x00000008 ///< Reserved. #define EFI_IMAGE_SCN_TYPE_NO_PAD BIT3 ///< 0x00000008 ///< Reserved.
#define EFI_IMAGE_SCN_CNT_CODE BIT5 ///< 0x00000020 #define EFI_IMAGE_SCN_CNT_CODE BIT5 ///< 0x00000020
#define EFI_IMAGE_SCN_CNT_INITIALIZED_DATA BIT6 ///< 0x00000040 #define EFI_IMAGE_SCN_CNT_INITIALIZED_DATA BIT6 ///< 0x00000040
#define EFI_IMAGE_SCN_CNT_UNINITIALIZED_DATA BIT7 ///< 0x00000080 #define EFI_IMAGE_SCN_CNT_UNINITIALIZED_DATA BIT7 ///< 0x00000080
#define EFI_IMAGE_SCN_LNK_OTHER BIT8 ///< 0x00000100 ///< Reserved. #define EFI_IMAGE_SCN_LNK_OTHER BIT8 ///< 0x00000100 ///< Reserved.
#define EFI_IMAGE_SCN_LNK_INFO BIT9 ///< 0x00000200 ///< Section contains comments or some other type of information. #define EFI_IMAGE_SCN_LNK_INFO BIT9 ///< 0x00000200 ///< Section contains comments or some other type of information.
#define EFI_IMAGE_SCN_LNK_REMOVE BIT11 ///< 0x00000800 ///< Section contents will not become part of image. #define EFI_IMAGE_SCN_LNK_REMOVE BIT11 ///< 0x00000800 ///< Section contents will not become part of image.
#define EFI_IMAGE_SCN_LNK_COMDAT BIT12 ///< 0x00001000 #define EFI_IMAGE_SCN_LNK_COMDAT BIT12 ///< 0x00001000
#define EFI_IMAGE_SCN_ALIGN_1BYTES BIT20 ///< 0x00100000 #define EFI_IMAGE_SCN_ALIGN_1BYTES BIT20 ///< 0x00100000
#define EFI_IMAGE_SCN_ALIGN_2BYTES BIT21 ///< 0x00200000 #define EFI_IMAGE_SCN_ALIGN_2BYTES BIT21 ///< 0x00200000
#define EFI_IMAGE_SCN_ALIGN_4BYTES (BIT20|BIT21) ///< 0x00300000 #define EFI_IMAGE_SCN_ALIGN_4BYTES (BIT20|BIT21) ///< 0x00300000
#define EFI_IMAGE_SCN_ALIGN_8BYTES BIT22 ///< 0x00400000 #define EFI_IMAGE_SCN_ALIGN_8BYTES BIT22 ///< 0x00400000
#define EFI_IMAGE_SCN_ALIGN_16BYTES (BIT20|BIT22) ///< 0x00500000 #define EFI_IMAGE_SCN_ALIGN_16BYTES (BIT20|BIT22) ///< 0x00500000
#define EFI_IMAGE_SCN_ALIGN_32BYTES (BIT21|BIT22) ///< 0x00600000 #define EFI_IMAGE_SCN_ALIGN_32BYTES (BIT21|BIT22) ///< 0x00600000
#define EFI_IMAGE_SCN_ALIGN_64BYTES (BIT20|BIT21|BIT22) ///< 0x00700000 #define EFI_IMAGE_SCN_ALIGN_64BYTES (BIT20|BIT21|BIT22) ///< 0x00700000
#define EFI_IMAGE_SCN_MEM_DISCARDABLE BIT25 ///< 0x02000000 #define EFI_IMAGE_SCN_MEM_DISCARDABLE BIT25 ///< 0x02000000
#define EFI_IMAGE_SCN_MEM_NOT_CACHED BIT26 ///< 0x04000000 #define EFI_IMAGE_SCN_MEM_NOT_CACHED BIT26 ///< 0x04000000
#define EFI_IMAGE_SCN_MEM_NOT_PAGED BIT27 ///< 0x08000000 #define EFI_IMAGE_SCN_MEM_NOT_PAGED BIT27 ///< 0x08000000
#define EFI_IMAGE_SCN_MEM_SHARED BIT28 ///< 0x10000000 #define EFI_IMAGE_SCN_MEM_SHARED BIT28 ///< 0x10000000
#define EFI_IMAGE_SCN_MEM_EXECUTE BIT29 ///< 0x20000000 #define EFI_IMAGE_SCN_MEM_EXECUTE BIT29 ///< 0x20000000
#define EFI_IMAGE_SCN_MEM_READ BIT30 ///< 0x40000000 #define EFI_IMAGE_SCN_MEM_READ BIT30 ///< 0x40000000
#define EFI_IMAGE_SCN_MEM_WRITE BIT31 ///< 0x80000000 #define EFI_IMAGE_SCN_MEM_WRITE BIT31 ///< 0x80000000
/// ///
/// Size of a Symbol Table Record. /// Size of a Symbol Table Record.
/// ///
#define EFI_IMAGE_SIZEOF_SYMBOL 18 #define EFI_IMAGE_SIZEOF_SYMBOL 18
// //
// Symbols have a section number of the section in which they are // Symbols have a section number of the section in which they are
// defined. Otherwise, section numbers have the following meanings: // 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_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_ABSOLUTE (UINT16) -1 ///< Symbol is an absolute value.
#define EFI_IMAGE_SYM_DEBUG (UINT16) -2 ///< Symbol is a special debug item. #define EFI_IMAGE_SYM_DEBUG (UINT16) -2 ///< Symbol is a special debug item.
// //
// Symbol Type (fundamental) values. // Symbol Type (fundamental) values.
// //
#define EFI_IMAGE_SYM_TYPE_NULL 0 ///< no type. #define EFI_IMAGE_SYM_TYPE_NULL 0 ///< no type.
#define EFI_IMAGE_SYM_TYPE_VOID 1 ///< no valid type. #define EFI_IMAGE_SYM_TYPE_VOID 1 ///< no valid type.
#define EFI_IMAGE_SYM_TYPE_CHAR 2 ///< type character. #define EFI_IMAGE_SYM_TYPE_CHAR 2 ///< type character.
#define EFI_IMAGE_SYM_TYPE_SHORT 3 ///< type short integer. #define EFI_IMAGE_SYM_TYPE_SHORT 3 ///< type short integer.
#define EFI_IMAGE_SYM_TYPE_INT 4 #define EFI_IMAGE_SYM_TYPE_INT 4
#define EFI_IMAGE_SYM_TYPE_LONG 5 #define EFI_IMAGE_SYM_TYPE_LONG 5
#define EFI_IMAGE_SYM_TYPE_FLOAT 6 #define EFI_IMAGE_SYM_TYPE_FLOAT 6
#define EFI_IMAGE_SYM_TYPE_DOUBLE 7 #define EFI_IMAGE_SYM_TYPE_DOUBLE 7
#define EFI_IMAGE_SYM_TYPE_STRUCT 8 #define EFI_IMAGE_SYM_TYPE_STRUCT 8
#define EFI_IMAGE_SYM_TYPE_UNION 9 #define EFI_IMAGE_SYM_TYPE_UNION 9
#define EFI_IMAGE_SYM_TYPE_ENUM 10 ///< enumeration. #define EFI_IMAGE_SYM_TYPE_ENUM 10 ///< enumeration.
#define EFI_IMAGE_SYM_TYPE_MOE 11 ///< member of enumeration. #define EFI_IMAGE_SYM_TYPE_MOE 11 ///< member of enumeration.
#define EFI_IMAGE_SYM_TYPE_BYTE 12 #define EFI_IMAGE_SYM_TYPE_BYTE 12
#define EFI_IMAGE_SYM_TYPE_WORD 13 #define EFI_IMAGE_SYM_TYPE_WORD 13
#define EFI_IMAGE_SYM_TYPE_UINT 14 #define EFI_IMAGE_SYM_TYPE_UINT 14
#define EFI_IMAGE_SYM_TYPE_DWORD 15 #define EFI_IMAGE_SYM_TYPE_DWORD 15
// //
// Symbol Type (derived) values. // Symbol Type (derived) values.
@ -409,11 +407,11 @@ typedef struct {
// //
// Communal selection types. // Communal selection types.
// //
#define EFI_IMAGE_COMDAT_SELECT_NODUPLICATES 1 #define EFI_IMAGE_COMDAT_SELECT_NODUPLICATES 1
#define EFI_IMAGE_COMDAT_SELECT_ANY 2 #define EFI_IMAGE_COMDAT_SELECT_ANY 2
#define EFI_IMAGE_COMDAT_SELECT_SAME_SIZE 3 #define EFI_IMAGE_COMDAT_SELECT_SAME_SIZE 3
#define EFI_IMAGE_COMDAT_SELECT_EXACT_MATCH 4 #define EFI_IMAGE_COMDAT_SELECT_EXACT_MATCH 4
#define EFI_IMAGE_COMDAT_SELECT_ASSOCIATIVE 5 #define EFI_IMAGE_COMDAT_SELECT_ASSOCIATIVE 5
// //
// the following values only be referred in PeCoff, not defined in PECOFF. // the following values only be referred in PeCoff, not defined in PECOFF.
@ -426,28 +424,28 @@ typedef struct {
/// Relocation format. /// Relocation format.
/// ///
typedef struct { typedef struct {
UINT32 VirtualAddress; UINT32 VirtualAddress;
UINT32 SymbolTableIndex; UINT32 SymbolTableIndex;
UINT16 Type; UINT16 Type;
} EFI_IMAGE_RELOCATION; } EFI_IMAGE_RELOCATION;
/// ///
/// Size of EFI_IMAGE_RELOCATION /// Size of EFI_IMAGE_RELOCATION
/// ///
#define EFI_IMAGE_SIZEOF_RELOCATION 10 #define EFI_IMAGE_SIZEOF_RELOCATION 10
// //
// I386 relocation types. // I386 relocation types.
// //
#define EFI_IMAGE_REL_I386_ABSOLUTE 0x0000 ///< Reference is absolute, no relocation is necessary. #define EFI_IMAGE_REL_I386_ABSOLUTE 0x0000 ///< Reference is absolute, no relocation is necessary.
#define EFI_IMAGE_REL_I386_DIR16 0x0001 ///< Direct 16-bit reference to the symbols virtual address. #define EFI_IMAGE_REL_I386_DIR16 0x0001 ///< Direct 16-bit reference to the symbols virtual address.
#define EFI_IMAGE_REL_I386_REL16 0x0002 ///< PC-relative 16-bit reference to the symbols virtual address. #define EFI_IMAGE_REL_I386_REL16 0x0002 ///< PC-relative 16-bit reference to the symbols virtual address.
#define EFI_IMAGE_REL_I386_DIR32 0x0006 ///< Direct 32-bit reference to the symbols virtual address. #define EFI_IMAGE_REL_I386_DIR32 0x0006 ///< Direct 32-bit reference to the symbols virtual address.
#define EFI_IMAGE_REL_I386_DIR32NB 0x0007 ///< Direct 32-bit reference to the symbols virtual address, base not included. #define EFI_IMAGE_REL_I386_DIR32NB 0x0007 ///< Direct 32-bit reference to the symbols virtual address, base not included.
#define EFI_IMAGE_REL_I386_SEG12 0x0009 ///< Direct 16-bit reference to the segment-selector bits of a 32-bit virtual address. #define EFI_IMAGE_REL_I386_SEG12 0x0009 ///< Direct 16-bit reference to the segment-selector bits of a 32-bit virtual address.
#define EFI_IMAGE_REL_I386_SECTION 0x000A #define EFI_IMAGE_REL_I386_SECTION 0x000A
#define EFI_IMAGE_REL_I386_SECREL 0x000B #define EFI_IMAGE_REL_I386_SECREL 0x000B
#define EFI_IMAGE_REL_I386_REL32 0x0014 ///< PC-relative 32-bit reference to the symbols virtual address. #define EFI_IMAGE_REL_I386_REL32 0x0014 ///< PC-relative 32-bit reference to the symbols virtual address.
// //
// x64 processor relocation types. // x64 processor relocation types.
@ -474,8 +472,8 @@ typedef struct {
/// Based relocation format. /// Based relocation format.
/// ///
typedef struct { typedef struct {
UINT32 VirtualAddress; UINT32 VirtualAddress;
UINT32 SizeOfBlock; UINT32 SizeOfBlock;
} EFI_IMAGE_BASE_RELOCATION; } EFI_IMAGE_BASE_RELOCATION;
/// ///
@ -501,25 +499,25 @@ typedef struct {
/// ///
/// Relocation types of RISC-V processor. /// Relocation types of RISC-V processor.
/// ///
#define EFI_IMAGE_REL_BASED_RISCV_HI20 5 #define EFI_IMAGE_REL_BASED_RISCV_HI20 5
#define EFI_IMAGE_REL_BASED_RISCV_LOW12I 7 #define EFI_IMAGE_REL_BASED_RISCV_LOW12I 7
#define EFI_IMAGE_REL_BASED_RISCV_LOW12S 8 #define EFI_IMAGE_REL_BASED_RISCV_LOW12S 8
/// ///
/// Line number format. /// Line number format.
/// ///
typedef struct { typedef struct {
union { union {
UINT32 SymbolTableIndex; ///< Symbol table index of function name if Linenumber is 0. UINT32 SymbolTableIndex; ///< Symbol table index of function name if Linenumber is 0.
UINT32 VirtualAddress; ///< Virtual address of line number. UINT32 VirtualAddress; ///< Virtual address of line number.
} Type; } Type;
UINT16 Linenumber; ///< Line number. UINT16 Linenumber; ///< Line number.
} EFI_IMAGE_LINENUMBER; } EFI_IMAGE_LINENUMBER;
/// ///
/// Size of EFI_IMAGE_LINENUMBER. /// Size of EFI_IMAGE_LINENUMBER.
/// ///
#define EFI_IMAGE_SIZEOF_LINENUMBER 6 #define EFI_IMAGE_SIZEOF_LINENUMBER 6
// //
// Archive format. // Archive format.
@ -535,20 +533,19 @@ typedef struct {
/// Archive Member Headers /// Archive Member Headers
/// ///
typedef struct { typedef struct {
UINT8 Name[16]; ///< File member name - `/' terminated. UINT8 Name[16]; ///< File member name - `/' terminated.
UINT8 Date[12]; ///< File member date - decimal. UINT8 Date[12]; ///< File member date - decimal.
UINT8 UserID[6]; ///< File member user id - decimal. UINT8 UserID[6]; ///< File member user id - decimal.
UINT8 GroupID[6]; ///< File member group id - decimal. UINT8 GroupID[6]; ///< File member group id - decimal.
UINT8 Mode[8]; ///< File member mode - octal. UINT8 Mode[8]; ///< File member mode - octal.
UINT8 Size[10]; ///< File member size - decimal. UINT8 Size[10]; ///< File member size - decimal.
UINT8 EndHeader[2]; ///< String to end header. (0x60 0x0A). UINT8 EndHeader[2]; ///< String to end header. (0x60 0x0A).
} EFI_IMAGE_ARCHIVE_MEMBER_HEADER; } EFI_IMAGE_ARCHIVE_MEMBER_HEADER;
/// ///
/// Size of EFI_IMAGE_ARCHIVE_MEMBER_HEADER. /// Size of EFI_IMAGE_ARCHIVE_MEMBER_HEADER.
/// ///
#define EFI_IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR 60 #define EFI_IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR 60
// //
// DLL Support // DLL Support
@ -558,25 +555,25 @@ typedef struct {
/// Export Directory Table. /// Export Directory Table.
/// ///
typedef struct { typedef struct {
UINT32 Characteristics; UINT32 Characteristics;
UINT32 TimeDateStamp; UINT32 TimeDateStamp;
UINT16 MajorVersion; UINT16 MajorVersion;
UINT16 MinorVersion; UINT16 MinorVersion;
UINT32 Name; UINT32 Name;
UINT32 Base; UINT32 Base;
UINT32 NumberOfFunctions; UINT32 NumberOfFunctions;
UINT32 NumberOfNames; UINT32 NumberOfNames;
UINT32 AddressOfFunctions; UINT32 AddressOfFunctions;
UINT32 AddressOfNames; UINT32 AddressOfNames;
UINT32 AddressOfNameOrdinals; UINT32 AddressOfNameOrdinals;
} EFI_IMAGE_EXPORT_DIRECTORY; } EFI_IMAGE_EXPORT_DIRECTORY;
/// ///
/// Hint/Name Table. /// Hint/Name Table.
/// ///
typedef struct { typedef struct {
UINT16 Hint; UINT16 Hint;
UINT8 Name[1]; UINT8 Name[1];
} EFI_IMAGE_IMPORT_BY_NAME; } EFI_IMAGE_IMPORT_BY_NAME;
/// ///
@ -584,13 +581,13 @@ typedef struct {
/// ///
typedef struct { typedef struct {
union { union {
UINT32 Function; UINT32 Function;
UINT32 Ordinal; UINT32 Ordinal;
EFI_IMAGE_IMPORT_BY_NAME *AddressOfData; EFI_IMAGE_IMPORT_BY_NAME *AddressOfData;
} u1; } u1;
} EFI_IMAGE_THUNK_DATA; } EFI_IMAGE_THUNK_DATA;
#define EFI_IMAGE_ORDINAL_FLAG BIT31 ///< Flag for PE32. #define EFI_IMAGE_ORDINAL_FLAG BIT31 ///< Flag for PE32.
#define EFI_IMAGE_SNAP_BY_ORDINAL(Ordinal) ((Ordinal & EFI_IMAGE_ORDINAL_FLAG) != 0) #define EFI_IMAGE_SNAP_BY_ORDINAL(Ordinal) ((Ordinal & EFI_IMAGE_ORDINAL_FLAG) != 0)
#define EFI_IMAGE_ORDINAL(Ordinal) (Ordinal & 0xffff) #define EFI_IMAGE_ORDINAL(Ordinal) (Ordinal & 0xffff)
@ -598,39 +595,38 @@ typedef struct {
/// Import Directory Table /// Import Directory Table
/// ///
typedef struct { typedef struct {
UINT32 Characteristics; UINT32 Characteristics;
UINT32 TimeDateStamp; UINT32 TimeDateStamp;
UINT32 ForwarderChain; UINT32 ForwarderChain;
UINT32 Name; UINT32 Name;
EFI_IMAGE_THUNK_DATA *FirstThunk; EFI_IMAGE_THUNK_DATA *FirstThunk;
} EFI_IMAGE_IMPORT_DESCRIPTOR; } EFI_IMAGE_IMPORT_DESCRIPTOR;
/// ///
/// Debug Directory Format. /// Debug Directory Format.
/// ///
typedef struct { typedef struct {
UINT32 Characteristics; UINT32 Characteristics;
UINT32 TimeDateStamp; UINT32 TimeDateStamp;
UINT16 MajorVersion; UINT16 MajorVersion;
UINT16 MinorVersion; UINT16 MinorVersion;
UINT32 Type; UINT32 Type;
UINT32 SizeOfData; UINT32 SizeOfData;
UINT32 RVA; ///< The address of the debug data when loaded, relative to the image base. UINT32 RVA; ///< The address of the debug data when loaded, relative to the image base.
UINT32 FileOffset; ///< The file pointer to the debug data. UINT32 FileOffset; ///< The file pointer to the debug data.
} EFI_IMAGE_DEBUG_DIRECTORY_ENTRY; } EFI_IMAGE_DEBUG_DIRECTORY_ENTRY;
#define EFI_IMAGE_DEBUG_TYPE_CODEVIEW 2 ///< The Visual C++ debug information. #define EFI_IMAGE_DEBUG_TYPE_CODEVIEW 2 ///< The Visual C++ debug information.
/// ///
/// Debug Data Structure defined in Microsoft C++. /// Debug Data Structure defined in Microsoft C++.
/// ///
#define CODEVIEW_SIGNATURE_NB10 SIGNATURE_32('N', 'B', '1', '0') #define CODEVIEW_SIGNATURE_NB10 SIGNATURE_32('N', 'B', '1', '0')
typedef struct { typedef struct {
UINT32 Signature; ///< "NB10" UINT32 Signature; ///< "NB10"
UINT32 Unknown; UINT32 Unknown;
UINT32 Unknown2; UINT32 Unknown2;
UINT32 Unknown3; UINT32 Unknown3;
// //
// Filename of .PDB goes here // Filename of .PDB goes here
// //
@ -641,18 +637,17 @@ typedef struct {
/// ///
#define CODEVIEW_SIGNATURE_RSDS SIGNATURE_32('R', 'S', 'D', 'S') #define CODEVIEW_SIGNATURE_RSDS SIGNATURE_32('R', 'S', 'D', 'S')
typedef struct { typedef struct {
UINT32 Signature; ///< "RSDS". UINT32 Signature; ///< "RSDS".
UINT32 Unknown; UINT32 Unknown;
UINT32 Unknown2; UINT32 Unknown2;
UINT32 Unknown3; UINT32 Unknown3;
UINT32 Unknown4; UINT32 Unknown4;
UINT32 Unknown5; UINT32 Unknown5;
// //
// Filename of .PDB goes here // Filename of .PDB goes here
// //
} EFI_IMAGE_DEBUG_CODEVIEW_RSDS_ENTRY; } EFI_IMAGE_DEBUG_CODEVIEW_RSDS_ENTRY;
/// ///
/// Debug Data Structure defined by Apple Mach-O to Coff utility. /// Debug Data Structure defined by Apple Mach-O to Coff utility.
/// ///
@ -669,12 +664,12 @@ typedef struct {
/// Resource format. /// Resource format.
/// ///
typedef struct { typedef struct {
UINT32 Characteristics; UINT32 Characteristics;
UINT32 TimeDateStamp; UINT32 TimeDateStamp;
UINT16 MajorVersion; UINT16 MajorVersion;
UINT16 MinorVersion; UINT16 MinorVersion;
UINT16 NumberOfNamedEntries; UINT16 NumberOfNamedEntries;
UINT16 NumberOfIdEntries; UINT16 NumberOfIdEntries;
// //
// Array of EFI_IMAGE_RESOURCE_DIRECTORY_ENTRY entries goes here. // Array of EFI_IMAGE_RESOURCE_DIRECTORY_ENTRY entries goes here.
// //
@ -686,16 +681,16 @@ typedef struct {
typedef struct { typedef struct {
union { union {
struct { struct {
UINT32 NameOffset:31; UINT32 NameOffset : 31;
UINT32 NameIsString:1; UINT32 NameIsString : 1;
} s; } s;
UINT32 Id; UINT32 Id;
} u1; } u1;
union { union {
UINT32 OffsetToData; UINT32 OffsetToData;
struct { struct {
UINT32 OffsetToDirectory:31; UINT32 OffsetToDirectory : 31;
UINT32 DataIsDirectory:1; UINT32 DataIsDirectory : 1;
} s; } s;
} u2; } u2;
} EFI_IMAGE_RESOURCE_DIRECTORY_ENTRY; } EFI_IMAGE_RESOURCE_DIRECTORY_ENTRY;
@ -704,36 +699,35 @@ typedef struct {
/// Resource directory entry for string. /// Resource directory entry for string.
/// ///
typedef struct { typedef struct {
UINT16 Length; UINT16 Length;
CHAR16 String[1]; CHAR16 String[1];
} EFI_IMAGE_RESOURCE_DIRECTORY_STRING; } EFI_IMAGE_RESOURCE_DIRECTORY_STRING;
/// ///
/// Resource directory entry for data array. /// Resource directory entry for data array.
/// ///
typedef struct { typedef struct {
UINT32 OffsetToData; UINT32 OffsetToData;
UINT32 Size; UINT32 Size;
UINT32 CodePage; UINT32 CodePage;
UINT32 Reserved; UINT32 Reserved;
} EFI_IMAGE_RESOURCE_DATA_ENTRY; } EFI_IMAGE_RESOURCE_DATA_ENTRY;
/// ///
/// Header format for TE images, defined in the PI Specification, 1.0. /// Header format for TE images, defined in the PI Specification, 1.0.
/// ///
typedef struct { typedef struct {
UINT16 Signature; ///< The signature for TE format = "VZ". UINT16 Signature; ///< The signature for TE format = "VZ".
UINT16 Machine; ///< From the original file header. UINT16 Machine; ///< From the original file header.
UINT8 NumberOfSections; ///< From the original file header. UINT8 NumberOfSections; ///< From the original file header.
UINT8 Subsystem; ///< From original optional header. UINT8 Subsystem; ///< From original optional header.
UINT16 StrippedSize; ///< Number of bytes we removed from the header. UINT16 StrippedSize; ///< Number of bytes we removed from the header.
UINT32 AddressOfEntryPoint; ///< Offset to entry point -- from original optional header. UINT32 AddressOfEntryPoint; ///< Offset to entry point -- from original optional header.
UINT32 BaseOfCode; ///< From original image -- required for ITP debug. UINT32 BaseOfCode; ///< From original image -- required for ITP debug.
UINT64 ImageBase; ///< From original file header. UINT64 ImageBase; ///< From original file header.
EFI_IMAGE_DATA_DIRECTORY DataDirectory[2]; ///< Only base relocation and debug directory. EFI_IMAGE_DATA_DIRECTORY DataDirectory[2]; ///< Only base relocation and debug directory.
} EFI_TE_IMAGE_HEADER; } EFI_TE_IMAGE_HEADER;
#define EFI_TE_IMAGE_HEADER_SIGNATURE SIGNATURE_16('V', 'Z') #define EFI_TE_IMAGE_HEADER_SIGNATURE SIGNATURE_16('V', 'Z')
// //
@ -742,21 +736,20 @@ typedef struct {
#define EFI_TE_IMAGE_DIRECTORY_ENTRY_BASERELOC 0 #define EFI_TE_IMAGE_DIRECTORY_ENTRY_BASERELOC 0
#define EFI_TE_IMAGE_DIRECTORY_ENTRY_DEBUG 1 #define EFI_TE_IMAGE_DIRECTORY_ENTRY_DEBUG 1
/// ///
/// Union of PE32, PE32+, and TE headers. /// Union of PE32, PE32+, and TE headers.
/// ///
typedef union { typedef union {
EFI_IMAGE_NT_HEADERS32 Pe32; EFI_IMAGE_NT_HEADERS32 Pe32;
EFI_IMAGE_NT_HEADERS64 Pe32Plus; EFI_IMAGE_NT_HEADERS64 Pe32Plus;
EFI_TE_IMAGE_HEADER Te; EFI_TE_IMAGE_HEADER Te;
} EFI_IMAGE_OPTIONAL_HEADER_UNION; } EFI_IMAGE_OPTIONAL_HEADER_UNION;
typedef union { typedef union {
EFI_IMAGE_NT_HEADERS32 *Pe32; EFI_IMAGE_NT_HEADERS32 *Pe32;
EFI_IMAGE_NT_HEADERS64 *Pe32Plus; EFI_IMAGE_NT_HEADERS64 *Pe32Plus;
EFI_TE_IMAGE_HEADER *Te; EFI_TE_IMAGE_HEADER *Te;
EFI_IMAGE_OPTIONAL_HEADER_UNION *Union; EFI_IMAGE_OPTIONAL_HEADER_UNION *Union;
} EFI_IMAGE_OPTIONAL_HEADER_PTR_UNION; } EFI_IMAGE_OPTIONAL_HEADER_PTR_UNION;
#endif #endif

Some files were not shown because too many files have changed in this diff Show More