+/** @file\r
+ The microcode patch HOB is used to store the information of:\r
+ A. Base address and size of the loaded microcode patches data;\r
+ B. Detected microcode patch for each processor within system.\r
+\r
+ Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>\r
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#ifndef _MICROCODE_PATCH_HOB_H_\r
+#define _MICROCODE_PATCH_HOB_H_\r
+\r
+extern EFI_GUID gEdkiiMicrocodePatchHobGuid;\r
+\r
+//\r
+// The EDKII microcode patch HOB will be produced by MpInitLib and it can be\r
+// consumed by modules that want to detect/apply microcode patches.\r
+//\r
+typedef struct {\r
+ //\r
+ // The base address of the microcode patches data after being loaded into\r
+ // memory.\r
+ //\r
+ UINT64 MicrocodePatchAddress;\r
+ //\r
+ // The total size of the loaded microcode patches.\r
+ //\r
+ UINT64 MicrocodePatchRegionSize;\r
+ //\r
+ // The number of processors within the system.\r
+ //\r
+ UINT32 ProcessorCount;\r
+ //\r
+ // An array with 'ProcessorCount' elements that stores the offset (with\r
+ // regard to 'MicrocodePatchAddress') of the detected microcode patch\r
+ // (including the CPU_MICROCODE_HEADER data structure) for each processor.\r
+ // If no microcode patch is detected for certain processor, the relating\r
+ // element will be set to MAX_UINT64.\r
+ //\r
+ UINT64 ProcessorSpecificPatchOffset[0];\r
+} EDKII_MICROCODE_PATCH_HOB;\r
+\r
+#endif\r