VOID\r
)\r
{\r
- EFI_HOB_GUID_TYPE *GuidHob;\r
+ EFI_HOB_GUID_TYPE *GuidHob;\r
+ STATIC BOOLEAN Cached = FALSE;\r
+ STATIC EFI_XEN_INFO *XenInfo;\r
+\r
+ //\r
+ // Return the cached result for the benefit of XenDetected that can be\r
+ // called many times.\r
+ //\r
+ if (Cached) {\r
+ return XenInfo;\r
+ }\r
\r
GuidHob = GetFirstGuidHob (&gEfiXenInfoGuid);\r
if (GuidHob == NULL) {\r
- return NULL;\r
+ XenInfo = NULL;\r
+ } else {\r
+ XenInfo = (EFI_XEN_INFO *) GET_GUID_HOB_DATA (GuidHob);\r
}\r
-\r
- return (EFI_XEN_INFO *) GET_GUID_HOB_DATA (GuidHob);\r
+ Cached = TRUE;\r
+ return XenInfo;\r
}\r
\r
/**\r