From d8c18ba3f409a3fdb59b2f2ee19caf5fb5b1d066 Mon Sep 17 00:00:00 2001 From: Zhiguang Liu Date: Fri, 30 Apr 2021 12:44:10 +0800 Subject: [PATCH] MdeModulePkg: Add Universal Payload general definition header file Add Universal Payload general definition header file according to Universal Payload's documentation as below: https://universalpayload.github.io/documentation/ Cc: Michael D Kinney Cc: Liming Gao Cc: Jian J Wang Cc: Hao A Wu Reviewed-by: Hao A Wu Tested-by: Patrick Rudolph Signed-off-by: Zhiguang Liu --- .../UniversalPayload/UniversalPayload.h | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 MdeModulePkg/Include/UniversalPayload/UniversalPayload.h diff --git a/MdeModulePkg/Include/UniversalPayload/UniversalPayload.h b/MdeModulePkg/Include/UniversalPayload/UniversalPayload.h new file mode 100644 index 0000000000..e661306a9b --- /dev/null +++ b/MdeModulePkg/Include/UniversalPayload/UniversalPayload.h @@ -0,0 +1,35 @@ +/** @file + Universal Payload general definitions. + +Copyright (c) 2021, Intel Corporation. All rights reserved.
+SPDX-License-Identifier: BSD-2-Clause-Patent + + @par Revision Reference: + - Universal Payload Specification 0.75 (https://universalpayload.github.io/documentation/) +**/ + +#ifndef UNIVERSAL_PAYLOAD_H_ +#define UNIVERSAL_PAYLOAD_H_ + +#pragma pack(1) + +typedef struct { + UINT8 Revision; + UINT8 Reserved; + UINT16 Length; +} UNIVERSAL_PAYLOAD_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 UNIVERSAL_PAYLOAD_SIZEOF_THROUGH_FIELD(TYPE, Field) (OFFSET_OF(TYPE, Field) + sizeof (((TYPE *) 0)->Field)) + +#endif // UNIVERSAL_PAYLOAD_H_ -- 2.39.2