X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=BaseTools%2FSource%2FC%2FInclude%2FCommon%2FUefiMultiPhase.h;h=0753dd2e9da59fb9c20e69018ea132c9c054b228;hp=7c487471a8a277447d4fb300baa8c314f1dd2a89;hb=fb0b35e05f772bd415fe264267bbbcde2e0accda;hpb=4afd3d042215afe68d00b9ab8c32f063a3a1c03f diff --git a/BaseTools/Source/C/Include/Common/UefiMultiPhase.h b/BaseTools/Source/C/Include/Common/UefiMultiPhase.h index 7c487471a8..0753dd2e9d 100644 --- a/BaseTools/Source/C/Include/Common/UefiMultiPhase.h +++ b/BaseTools/Source/C/Include/Common/UefiMultiPhase.h @@ -1,18 +1,18 @@ /** @file - This includes some definitions introduced in UEFI that will be used in both PEI and DXE phases. + This includes some definitions introduced in UEFI that will be used in both PEI + and DXE phases. - Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.
+ (C) Copyright 2015 Hewlett-Packard Development Company, L.P.
+ Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this - distribution. The full text of the license may be found at: + distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: UefiMultiPhase.h - **/ #ifndef __UEFI_MULTIPHASE_H__ @@ -20,7 +20,7 @@ // // Enumeration of memory types introduced in UEFI. -// +// typedef enum { EfiReservedMemoryType, EfiLoaderCode, @@ -36,13 +36,14 @@ typedef enum { EfiMemoryMappedIO, EfiMemoryMappedIOPortSpace, EfiPalCode, + EfiPersistentMemory, EfiMaxMemoryType } EFI_MEMORY_TYPE; // // Data structure that precedes all of the standard EFI table types. -// +// typedef struct { UINT64 Signature; UINT32 Revision; @@ -53,28 +54,28 @@ typedef struct { // // Attributes of variable. -// +// #define EFI_VARIABLE_NON_VOLATILE 0x00000001 #define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x00000002 #define EFI_VARIABLE_RUNTIME_ACCESS 0x00000004 #define EFI_VARIABLE_HARDWARE_ERROR_RECORD 0x00000008 // -// This attribute is identified by the mnemonic 'HR' +// This attribute is identified by the mnemonic 'HR' // elsewhere in this specification. -// +// #define EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS 0x00000010 // // _WIN_CERTIFICATE.wCertificateType -// +// #define WIN_CERT_TYPE_EFI_PKCS115 0x0EF0 #define WIN_CERT_TYPE_EFI_GUID 0x0EF1 /** - + The WIN_CERTIFICATE structure is part of the PE/COFF specification and has the following definition: @@ -109,13 +110,13 @@ typedef struct _WIN_CERTIFICATE { // // WIN_CERTIFICATE_UEFI_GUID.CertType -// +// #define EFI_CERT_TYPE_RSA2048_SHA256_GUID \ {0xa7717414, 0xc616, 0x4977, {0x94, 0x20, 0x84, 0x47, 0x12, 0xa7, 0x35, 0xbf } } // // WIN_CERTIFICATE_UEFI_GUID.CertData -// +// typedef struct _EFI_CERT_BLOCK_RSA_2048_SHA256 { EFI_GUID HashType; UINT8 PublicKey[256]; @@ -124,7 +125,7 @@ typedef struct _EFI_CERT_BLOCK_RSA_2048_SHA256 { /** - + @param Hdr This is the standard WIN_CERTIFICATE header, where wCertificateType is set to WIN_CERT_TYPE_EFI_GUID. @@ -152,31 +153,31 @@ typedef struct _EFI_CERT_BLOCK_RSA_2048_SHA256 { typedef struct _WIN_CERTIFICATE_UEFI_GUID { WIN_CERTIFICATE Hdr; EFI_GUID CertType; - // UINT8 CertData[ANYSIZE_ARRAY]; + UINT8 CertData[1]; } WIN_CERTIFICATE_UEFI_GUID; /** - + Certificate which encapsulates the RSASSA_PKCS1-v1_5 digital signature. - + The WIN_CERTIFICATE_UEFI_PKCS1_15 structure is derived from - WIN_CERTIFICATE and encapsulate the information needed to - implement the RSASSA-PKCS1-v1_5 digital signature algorithm as - specified in RFC2437. - + WIN_CERTIFICATE and encapsulate the information needed to + implement the RSASSA-PKCS1-v1_5 digital signature algorithm as + specified in RFC2437. + @param Hdr This is the standard WIN_CERTIFICATE header, where wCertificateType is set to WIN_CERT_TYPE_UEFI_PKCS1_15. - + @param HashAlgorithm This is the hashing algorithm which was performed on the UEFI executable when creating the digital signature. It is one of the enumerated values pre-defined in Section 26.4.1. See EFI_HASH_ALGORITHM_x. - + @param Signature This is the actual digital signature. The size of the signature is the same size as the key (1024-bit key is 128 bytes) and can @@ -194,13 +195,13 @@ typedef struct _WIN_CERTIFICATE_EFI_PKCS1_15 { /** - + AuthInfo is a WIN_CERTIFICATE using the wCertificateType WIN_CERTIFICATE_UEFI_GUID and the CertType EFI_CERT_TYPE_RSA2048_SHA256. If the attribute specifies authenticated access, then the Data buffer should begin with an authentication descriptor prior to the data payload and DataSize - should reflect the the data.and descriptor size. The caller + should reflect the data.and descriptor size. The caller shall digest the Monotonic Count value and the associated data for the variable update using the SHA-256 1-way hash algorithm. The ensuing the 32-byte digest will be signed using the private @@ -208,12 +209,12 @@ typedef struct _WIN_CERTIFICATE_EFI_PKCS1_15 { WIN_CERTIFICATE shall be used to describe the signature of the Variable data *Data. In addition, the signature will also include the MonotonicCount value to guard against replay attacks - + @param MonotonicCount Included in the signature of AuthInfo.Used to ensure freshness/no replay. Incremented during each "Write" access. - + @param AuthInfo Provides the authorization for the variable access. It is a signature across the variable data and the Monotonic Count