From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mx.groups.io with SMTP id smtpd.web08.4284.1622782621066069793 for ; Thu, 03 Jun 2021 21:57:01 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.100, mailfrom: zhiguang.liu@intel.com) IronPort-SDR: BYJPAKxNFDktTKC45FGldrbK2EEFO7zwcNJc+IKkglnoQiw+0Cl1LdQFs2UmYmDi9C6M+8TQcm nG2Kbo9WEUgQ== X-IronPort-AV: E=McAfee;i="6200,9189,10004"; a="268087097" X-IronPort-AV: E=Sophos;i="5.83,247,1616482800"; d="scan'208";a="268087097" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Jun 2021 21:56:55 -0700 IronPort-SDR: sml+9ca3RUE1/bS5FA6SQOIIfL+LiKa/HHUZCOHbzNCadx616URyXVGXne0VpjuHC/8cWqemzE Erd8DuJmdZRw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,247,1616482800"; d="scan'208";a="480502747" Received: from fieedk002.ccr.corp.intel.com ([10.239.158.144]) by orsmga001.jf.intel.com with ESMTP; 03 Jun 2021 21:56:54 -0700 From: "Zhiguang Liu" To: devel@edk2.groups.io Cc: Michael D Kinney , Liming Gao , Jian J Wang , Hao A Wu Subject: [Patch V2 1/9] MdeModulePkg: Add Universal Payload general defination header file Date: Fri, 4 Jun 2021 12:56:36 +0800 Message-Id: <20210604045644.1721-2-zhiguang.liu@intel.com> X-Mailer: git-send-email 2.30.0.windows.2 In-Reply-To: <20210604045644.1721-1-zhiguang.liu@intel.com> References: <20210604045644.1721-1-zhiguang.liu@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable V1: Add Universal Payload general defination header file according to Universal Payload=E2=80=99s documentation V2: Add a macro funtion to check the Revision Cc: Michael D Kinney Cc: Liming Gao Cc: Jian J Wang Cc: Hao A Wu Signed-off-by: Zhiguang Liu --- MdeModulePkg/Include/UniversalPayload/UniversalPayload.h | 43 ++++++++++++= +++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/MdeModulePkg/Include/UniversalPayload/UniversalPayload.h b/Mde= ModulePkg/Include/UniversalPayload/UniversalPayload.h new file mode 100644 index 0000000000..a026f709bf --- /dev/null +++ b/MdeModulePkg/Include/UniversalPayload/UniversalPayload.h @@ -0,0 +1,43 @@ +/** @file=0D + Universal Payload general definations.=0D +=0D +Copyright (c) 2021, Intel Corporation. All rights reserved.
=0D +SPDX-License-Identifier: BSD-2-Clause-Patent=0D +=0D +**/=0D +=0D +#ifndef __UNIVERSAL_PAYLOAD_H__=0D +#define __UNIVERSAL_PAYLOAD_H__=0D +=0D +#include =0D +=0D +#pragma pack(1)=0D +=0D +typedef struct {=0D + UINT8 Revision;=0D + UINT8 Reserved;=0D + UINT16 Length;=0D +} PLD_GENERIC_HEADER;=0D +=0D +#pragma pack()=0D +=0D +/**=0D + Returns the size of a structure of known type, up through and including = a specified field.=0D +=0D + @param TYPE The name of the data structure that contains the field= specified by Field.=0D + @param Field The name of the field in the data structure.=0D +=0D + @return size, in bytes.=0D +=0D +**/=0D +#define PLD_SIZEOF_THROUGH_FIELD(TYPE, Field) (OFFSET_OF(TYPE, Field) + si= zeof (((TYPE *) 0)->Field))=0D +=0D +#define IS_PLD_HEADER_HAS_REVISION(GuidHob, ExpectedRevision) \=0D + ( \=0D + (GuidHob !=3D NULL) && \=0D + (sizeof (PLD_GENERIC_HEADER) <=3D GET_GUID_HOB_DATA_SIZE (GuidHob)) &&= \=0D + (((PLD_GENERIC_HEADER *) GET_GUID_HOB_DATA (GuidHob))->Length <=3D GET= _GUID_HOB_DATA_SIZE (GuidHob)) && \=0D + (((PLD_GENERIC_HEADER *) GET_GUID_HOB_DATA (GuidHob))->Revision =3D=3D= ExpectedRevision) \=0D + )=0D +=0D +#endif // __UNIVERSAL_PAYLOAD_H__=0D --=20 2.30.0.windows.2