--- /dev/null
+/** @file\r
+ Universal Payload general definitions.\r
+\r
+Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+ @par Revision Reference:\r
+ - Universal Payload Specification 0.75 (https://universalpayload.github.io/documentation/)\r
+**/\r
+\r
+#ifndef UNIVERSAL_PAYLOAD_H_\r
+#define UNIVERSAL_PAYLOAD_H_\r
+\r
+#pragma pack(1)\r
+\r
+typedef struct {\r
+ UINT8 Revision;\r
+ UINT8 Reserved;\r
+ UINT16 Length;\r
+} UNIVERSAL_PAYLOAD_GENERIC_HEADER;\r
+\r
+#pragma pack()\r
+\r
+/**\r
+ Returns the size of a structure of known type, up through and including a specified field.\r
+\r
+ @param TYPE The name of the data structure that contains the field specified by Field.\r
+ @param Field The name of the field in the data structure.\r
+\r
+ @return size, in bytes.\r
+\r
+**/\r
+#define UNIVERSAL_PAYLOAD_SIZEOF_THROUGH_FIELD(TYPE, Field) (OFFSET_OF(TYPE, Field) + sizeof (((TYPE *) 0)->Field))\r
+\r
+#endif // UNIVERSAL_PAYLOAD_H_\r