mirror of
				https://git.proxmox.com/git/mirror_edk2
				synced 2025-11-04 11:29:11 +00:00 
			
		
		
		
	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>
		
			
				
	
	
		
			122 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
 | 
						|
  Stateless fw_cfg library implementation.
 | 
						|
 | 
						|
  Clients must call QemuFwCfgIsAvailable() first.
 | 
						|
 | 
						|
  Copyright (C) 2013, Red Hat, Inc.
 | 
						|
  Copyright (c) 2011 - 2013, Intel Corporation. All rights reserved.<BR>
 | 
						|
  Copyright (c) 2017, Advanced Micro Devices. All rights reserved.<BR>
 | 
						|
 | 
						|
  SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
**/
 | 
						|
 | 
						|
#include <Library/BaseLib.h>
 | 
						|
#include <Library/DebugLib.h>
 | 
						|
#include <Library/QemuFwCfgLib.h>
 | 
						|
 | 
						|
#include "QemuFwCfgLibInternal.h"
 | 
						|
 | 
						|
/**
 | 
						|
  Returns a boolean indicating if the firmware configuration interface
 | 
						|
  is available or not.
 | 
						|
 | 
						|
  This function may change fw_cfg state.
 | 
						|
 | 
						|
  @retval    TRUE   The interface is available
 | 
						|
  @retval    FALSE  The interface is not available
 | 
						|
 | 
						|
**/
 | 
						|
BOOLEAN
 | 
						|
EFIAPI
 | 
						|
QemuFwCfgIsAvailable (
 | 
						|
  VOID
 | 
						|
  )
 | 
						|
{
 | 
						|
  UINT32  Signature;
 | 
						|
  UINT32  Revision;
 | 
						|
 | 
						|
  QemuFwCfgSelectItem (QemuFwCfgItemSignature);
 | 
						|
  Signature = QemuFwCfgRead32 ();
 | 
						|
  DEBUG ((DEBUG_INFO, "FW CFG Signature: 0x%x\n", Signature));
 | 
						|
  QemuFwCfgSelectItem (QemuFwCfgItemInterfaceVersion);
 | 
						|
  Revision = QemuFwCfgRead32 ();
 | 
						|
  DEBUG ((DEBUG_INFO, "FW CFG Revision: 0x%x\n", Revision));
 | 
						|
  if ((Signature != SIGNATURE_32 ('Q', 'E', 'M', 'U')) ||
 | 
						|
      (Revision < 1)
 | 
						|
      )
 | 
						|
  {
 | 
						|
    DEBUG ((DEBUG_INFO, "QemuFwCfg interface not supported.\n"));
 | 
						|
    return FALSE;
 | 
						|
  }
 | 
						|
 | 
						|
  DEBUG ((DEBUG_INFO, "QemuFwCfg interface is supported.\n"));
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
  Returns a boolean indicating if the firmware configuration interface is
 | 
						|
  available for library-internal purposes.
 | 
						|
 | 
						|
  This function never changes fw_cfg state.
 | 
						|
 | 
						|
  @retval    TRUE   The interface is available internally.
 | 
						|
  @retval    FALSE  The interface is not available internally.
 | 
						|
**/
 | 
						|
BOOLEAN
 | 
						|
InternalQemuFwCfgIsAvailable (
 | 
						|
  VOID
 | 
						|
  )
 | 
						|
{
 | 
						|
  //
 | 
						|
  // We always return TRUE, because the consumer of this library ought to have
 | 
						|
  // called QemuFwCfgIsAvailable before making other calls which would hit this
 | 
						|
  // path.
 | 
						|
  //
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
  Returns a boolean indicating whether QEMU provides the DMA-like access method
 | 
						|
  for fw_cfg.
 | 
						|
 | 
						|
  @retval    TRUE   The DMA-like access method is available.
 | 
						|
  @retval    FALSE  The DMA-like access method is unavailable.
 | 
						|
**/
 | 
						|
BOOLEAN
 | 
						|
InternalQemuFwCfgDmaIsAvailable (
 | 
						|
  VOID
 | 
						|
  )
 | 
						|
{
 | 
						|
  return FALSE;
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
  Transfer an array of bytes, or skip a number of bytes, using the DMA
 | 
						|
  interface.
 | 
						|
 | 
						|
  @param[in]     Size     Size in bytes to transfer or skip.
 | 
						|
 | 
						|
  @param[in,out] Buffer   Buffer to read data into or write data from. Ignored,
 | 
						|
                          and may be NULL, if Size is zero, or Control is
 | 
						|
                          FW_CFG_DMA_CTL_SKIP.
 | 
						|
 | 
						|
  @param[in]     Control  One of the following:
 | 
						|
                          FW_CFG_DMA_CTL_WRITE - write to fw_cfg from Buffer.
 | 
						|
                          FW_CFG_DMA_CTL_READ  - read from fw_cfg into Buffer.
 | 
						|
                          FW_CFG_DMA_CTL_SKIP  - skip bytes in fw_cfg.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
InternalQemuFwCfgDmaBytes (
 | 
						|
  IN     UINT32  Size,
 | 
						|
  IN OUT VOID    *Buffer OPTIONAL,
 | 
						|
  IN     UINT32  Control
 | 
						|
  )
 | 
						|
{
 | 
						|
  //
 | 
						|
  // We should never reach here
 | 
						|
  //
 | 
						|
  ASSERT (FALSE);
 | 
						|
  CpuDeadLoop ();
 | 
						|
}
 |