REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the OvmfPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Andrew Fish <afish@apple.com>
		
			
				
	
	
		
			83 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   Get information about Xen
 | |
| 
 | |
|   This library simply allow to find out if OVMF is running under Xen and
 | |
|   allow to get more information when it is the case.
 | |
| 
 | |
|   Copyright (c) 2019, Citrix Systems, Inc.
 | |
| 
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| 
 | |
| #include <PiDxe.h>
 | |
| #include <Library/HobLib.h>
 | |
| #include <Library/XenPlatformLib.h>
 | |
| 
 | |
| /**
 | |
|   This function return a pointer to the XenInfo HOB.
 | |
| 
 | |
|   @return  XenInfo pointer or NULL if not available
 | |
| **/
 | |
| EFI_XEN_INFO *
 | |
| EFIAPI
 | |
| XenGetInfoHOB (
 | |
|   VOID
 | |
|   )
 | |
| {
 | |
|   EFI_HOB_GUID_TYPE    *GuidHob;
 | |
|   STATIC BOOLEAN       Cached = FALSE;
 | |
|   STATIC EFI_XEN_INFO  *XenInfo;
 | |
| 
 | |
|   //
 | |
|   // Return the cached result for the benefit of XenDetected that can be
 | |
|   // called many times.
 | |
|   //
 | |
|   if (Cached) {
 | |
|     return XenInfo;
 | |
|   }
 | |
| 
 | |
|   GuidHob = GetFirstGuidHob (&gEfiXenInfoGuid);
 | |
|   if (GuidHob == NULL) {
 | |
|     XenInfo = NULL;
 | |
|   } else {
 | |
|     XenInfo = (EFI_XEN_INFO *)GET_GUID_HOB_DATA (GuidHob);
 | |
|   }
 | |
| 
 | |
|   Cached = TRUE;
 | |
|   return XenInfo;
 | |
| }
 | |
| 
 | |
| /**
 | |
|   This function detects if OVMF is running on Xen.
 | |
| 
 | |
|   @retval TRUE    OVMF is running on Xen
 | |
|   @retval FALSE   Xen has not been detected
 | |
| **/
 | |
| BOOLEAN
 | |
| EFIAPI
 | |
| XenDetected (
 | |
|   VOID
 | |
|   )
 | |
| {
 | |
|   return (XenGetInfoHOB () != NULL);
 | |
| }
 | |
| 
 | |
| /**
 | |
|   This function detect if OVMF have started via the PVH entry point.
 | |
| 
 | |
|   @retval TRUE  PVH entry point as been used
 | |
|   @retval FALSE OVMF have started via the HVM route
 | |
| **/
 | |
| BOOLEAN
 | |
| EFIAPI
 | |
| XenPvhDetected (
 | |
|   VOID
 | |
|   )
 | |
| {
 | |
|   EFI_XEN_INFO  *XenInfo;
 | |
| 
 | |
|   XenInfo = XenGetInfoHOB ();
 | |
|   return (XenInfo != NULL && XenInfo->RsdpPvh != NULL);
 | |
| }
 |