From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web10.2491.1685472809773224682 for ; Tue, 30 May 2023 11:53:30 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=ITwqtuG7; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1685472810; x=1717008810; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=PAkP4XIA6Tg+WIdvMRRixdEU3BlKtgwUVSiS9A+KU+U=; b=ITwqtuG7gbeF29VvvxIMXqD4jsxBqSdoapC7aRBIgZDzqX7MdwpJf8xb KMKPd5dk83WnoanTENdNMb6yTSK0PdvYwerPi5boGbAC4tY+LM+bn63bZ Iu25YplEXA1CJqeBM7q0X4tY/b1jbcg2bNBWs06dq7ridhd2LGoOUoLPF XZICNOOrpyO46PYppQkYaeYq7BUlS2WUdsYhnC1Ufb3zPQJrjw6jKUCUL VrzHf0R1/LaWpWfoMYANZ+0ahg6h8dhIjTPUHhBt1jBCdGAIZluBd7GA6 OOZGzGEYMHZpeYAsErc6xQSG9DcFbHTtxOojxZbfJHKMAA4rQs5PdBzth g==; X-IronPort-AV: E=McAfee;i="6600,9927,10726"; a="352514919" X-IronPort-AV: E=Sophos;i="6.00,205,1681196400"; d="scan'208";a="352514919" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 May 2023 11:53:29 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10726"; a="771675332" X-IronPort-AV: E=Sophos;i="6.00,205,1681196400"; d="scan'208";a="771675332" Received: from unknown (HELO mdkinney-mobl.amr.corp.intel.com) ([10.241.111.19]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 May 2023 11:53:29 -0700 From: "Michael D Kinney" To: devel@edk2.groups.io Cc: Liming Gao , Zhiguang Liu , Oliver Smith-Denny , Pedro Falcato , Aaron Pop Subject: [Patch v2 1/3] MdePkg/Include/IndustryStandard: Add Operator and Xor field names Date: Tue, 30 May 2023 11:53:20 -0700 Message-Id: <20230530185322.70-2-michael.d.kinney@intel.com> X-Mailer: git-send-email 2.40.1.windows.1 In-Reply-To: <20230530185322.70-1-michael.d.kinney@intel.com> References: <20230530185322.70-1-michael.d.kinney@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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. Cc: Liming Gao Cc: Zhiguang Liu Cc: Oliver Smith-Denny Cc: Pedro Falcato Cc: Aaron Pop Signed-off-by: Michael D Kinney --- MdePkg/Include/IndustryStandard/Tpm12.h | 22 ++++++++++++++++++++-- MdePkg/Include/IndustryStandard/Tpm20.h | 25 +++++++++++++++++++++++-- 2 files changed, 43 insertions(+), 4 deletions(-) diff --git a/MdePkg/Include/IndustryStandard/Tpm12.h b/MdePkg/Include/IndustryStandard/Tpm12.h index 155dcc9f5f99..56e89d9d0835 100644 --- a/MdePkg/Include/IndustryStandard/Tpm12.h +++ b/MdePkg/Include/IndustryStandard/Tpm12.h @@ -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,8 +752,11 @@ typedef struct tdTPM_PERMANENT_FLAGS { BOOLEAN TPMpost; BOOLEAN TPMpostLock; BOOLEAN FIPS; - BOOLEAN operator; - BOOLEAN enableRevokeEK; + union { + BOOLEAN operator; + BOOLEAN Operator; + }; + BOOLEAN enableRevokeEK; BOOLEAN nvLocked; BOOLEAN readSRKPub; BOOLEAN tpmEstablished; @@ -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 diff --git a/MdePkg/Include/IndustryStandard/Tpm20.h b/MdePkg/Include/IndustryStandard/Tpm20.h index 4440f3769f26..a602c0d9c289 100644 --- a/MdePkg/Include/IndustryStandard/Tpm20.h +++ b/MdePkg/Include/IndustryStandard/Tpm20.h @@ -15,6 +15,14 @@ SPDX-License-Identifier: BSD-2-Clause-Patent #include +/// +/// 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 @@ -1247,7 +1255,10 @@ typedef union { TPMI_AES_KEY_BITS aes; TPMI_SM4_KEY_BITS SM4; TPM_KEY_BITS sym; - TPMI_ALG_HASH xor; + union { + TPMI_ALG_HASH xor; + TPMI_ALG_HASH Xor; + }; } TPMU_SYM_KEY_BITS; // Table 123 - TPMU_SYM_MODE Union @@ -1320,7 +1331,10 @@ typedef struct { // Table 136 - TPMU_SCHEME_KEYEDHASH Union typedef union { TPMS_SCHEME_HMAC hmac; - TPMS_SCHEME_XOR xor; + union { + TPMS_SCHEME_XOR xor; + TPMS_SCHEME_XOR Xor; + }; } TPMU_SCHEME_KEYEDHASH; // Table 137 - TPMT_KEYEDHASH_SCHEME Structure @@ -1809,4 +1823,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 -- 2.40.1.windows.1