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);
 | 
						|
}
 |