V1:
Add Universal Payload general defination header file according to
Universal Payload’s documentation
V2:
Add a macro funtion to check the Revision

Cc: Michael D Kinney <michael.d.kin...@intel.com>
Cc: Liming Gao <gaolim...@byosoft.com.cn>
Cc: Jian J Wang <jian.j.w...@intel.com>
Cc: Hao A Wu <hao.a...@intel.com>

Signed-off-by: Zhiguang Liu <zhiguang....@intel.com>
---
 MdeModulePkg/Include/UniversalPayload/UniversalPayload.h | 43 
+++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/MdeModulePkg/Include/UniversalPayload/UniversalPayload.h 
b/MdeModulePkg/Include/UniversalPayload/UniversalPayload.h
new file mode 100644
index 0000000000..a026f709bf
--- /dev/null
+++ b/MdeModulePkg/Include/UniversalPayload/UniversalPayload.h
@@ -0,0 +1,43 @@
+/** @file

+  Universal Payload general definations.

+

+Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>

+SPDX-License-Identifier: BSD-2-Clause-Patent

+

+**/

+

+#ifndef __UNIVERSAL_PAYLOAD_H__

+#define __UNIVERSAL_PAYLOAD_H__

+

+#include <Library/HobLib.h>

+

+#pragma pack(1)

+

+typedef struct {

+  UINT8                Revision;

+  UINT8                Reserved;

+  UINT16               Length;

+} PLD_GENERIC_HEADER;

+

+#pragma pack()

+

+/**

+  Returns the size of a structure of known type, up through and including a 
specified field.

+

+  @param   TYPE     The name of the data structure that contains the field 
specified by Field.

+  @param   Field    The name of the field in the data structure.

+

+  @return  size, in bytes.

+

+**/

+#define PLD_SIZEOF_THROUGH_FIELD(TYPE, Field) (OFFSET_OF(TYPE, Field) + sizeof 
(((TYPE *) 0)->Field))

+

+#define IS_PLD_HEADER_HAS_REVISION(GuidHob, ExpectedRevision) \

+  ( \

+    (GuidHob != NULL) && \

+    (sizeof (PLD_GENERIC_HEADER) <= GET_GUID_HOB_DATA_SIZE (GuidHob)) && \

+    (((PLD_GENERIC_HEADER *) GET_GUID_HOB_DATA (GuidHob))->Length <= 
GET_GUID_HOB_DATA_SIZE (GuidHob)) && \

+    (((PLD_GENERIC_HEADER *) GET_GUID_HOB_DATA (GuidHob))->Revision == 
ExpectedRevision) \

+  )

+

+#endif // __UNIVERSAL_PAYLOAD_H__

-- 
2.30.0.windows.2



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#76031): https://edk2.groups.io/g/devel/message/76031
Mute This Topic: https://groups.io/mt/83301962/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to