+//\r
+// SMM Performance Protocol definitions\r
+//\r
+\r
+#define SMM_PERFORMANCE_PROTOCOL_GUID \\r
+ { 0xf866226a, 0xeaa5, 0x4f5a, { 0xa9, 0xa, 0x6c, 0xfb, 0xa5, 0x7c, 0x58, 0x8e } }\r
+\r
+//\r
+// SMM_PERFORMANCE_STRING_SIZE.\r
+//\r
+#define SMM_PERFORMANCE_STRING_SIZE 32\r
+#define SMM_PERFORMANCE_STRING_LENGTH (SMM_PERFORMANCE_STRING_SIZE - 1)\r
+\r
+//\r
+// The default guage entries number for SMM phase.\r
+//\r
+#define INIT_SMM_GAUGE_DATA_ENTRIES 200\r
+\r
+typedef struct {\r
+ UINTN Function;\r
+ EFI_STATUS ReturnStatus;\r
+ UINTN NumberOfEntries;\r
+ UINTN LogEntryKey;\r
+ GAUGE_DATA_ENTRY *GaugeData;\r
+} SMM_PERF_COMMUNICATE;\r
+\r
+#define SMM_PERF_FUNCTION_GET_GAUGE_ENTRY_NUMBER 1\r
+#define SMM_PERF_FUNCTION_GET_GAUGE_DATA 2\r
+\r