MdePkg/Include/IndustryStandard: Add operator_ and xor_ field names

Update Tpm12.h and Tpm20.h and not use c++ reserved keywords
operator and xor in C structures to support use of these
include files when building with a C++ compiler.

This patch temporarily introduces an anonymous union to add
operator_ and xor_ fields to support migration from the current
field names to the new field names.

Warning 4201 is disabled for VS20xx tool chains is a temporary
change to allow the use of anonymous unions.

Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
This commit is contained in:
Michael D Kinney 2023-05-27 18:02:16 -07:00 committed by mergify[bot]
parent 1e079360cd
commit 05ac9a58f5
2 changed files with 43 additions and 4 deletions

View File

@ -9,6 +9,14 @@
#ifndef _TPM12_H_
#define _TPM12_H_
///
/// Temporary disable 4201 to support anonymous unions
///
#if defined (_MSC_EXTENSIONS)
#pragma warning( push )
#pragma warning ( disable : 4201 )
#endif
///
/// The start of TPM return codes
///
@ -744,7 +752,10 @@ typedef struct tdTPM_PERMANENT_FLAGS {
BOOLEAN TPMpost;
BOOLEAN TPMpostLock;
BOOLEAN FIPS;
union {
BOOLEAN operator;
BOOLEAN operator_;
};
BOOLEAN enableRevokeEK;
BOOLEAN nvLocked;
BOOLEAN readSRKPub;
@ -2162,4 +2173,11 @@ typedef struct tdTPM_RSP_COMMAND_HDR {
#pragma pack ()
///
/// Temporary disable 4201 to support anonymous unions
///
#if defined (_MSC_EXTENSIONS)
#pragma warning( pop )
#endif
#endif

View File

@ -15,6 +15,14 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <IndustryStandard/Tpm12.h>
///
/// Temporary disable 4201 to support anonymous unions
///
#if defined (_MSC_EXTENSIONS)
#pragma warning( push )
#pragma warning ( disable : 4201 )
#endif
#pragma pack (1)
// Annex A Algorithm Constants
@ -1248,7 +1256,10 @@ typedef union {
TPMI_AES_KEY_BITS aes;
TPMI_SM4_KEY_BITS SM4;
TPM_KEY_BITS sym;
union {
TPMI_ALG_HASH xor;
TPMI_ALG_HASH xor_;
};
} TPMU_SYM_KEY_BITS;
// Table 123 - TPMU_SYM_MODE Union
@ -1321,7 +1332,10 @@ typedef struct {
// Table 136 - TPMU_SCHEME_KEYEDHASH Union
typedef union {
TPMS_SCHEME_HMAC hmac;
union {
TPMS_SCHEME_XOR xor;
TPMS_SCHEME_XOR xor_;
};
} TPMU_SCHEME_KEYEDHASH;
// Table 137 - TPMT_KEYEDHASH_SCHEME Structure
@ -1810,4 +1824,11 @@ typedef struct {
#define HASH_ALG_SHA512 0x00000008
#define HASH_ALG_SM3_256 0x00000010
///
/// Temporary disable 4201 to support anonymous unions
///
#if defined (_MSC_EXTENSIONS)
#pragma warning( pop )
#endif
#endif