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_