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>
		
			
				
	
	
		
			179 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			179 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  Provide common utility functions to PciHostBridgeLib instances in
 | 
						|
  ArmVirtPkg and OvmfPkg.
 | 
						|
 | 
						|
  Copyright (C) 2016, Red Hat, Inc.
 | 
						|
  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
 | 
						|
  Copyright (c) 2020, Huawei Corporation. All rights reserved.<BR>
 | 
						|
 | 
						|
  SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#ifndef __PCI_HOST_BRIDGE_UTILITY_LIB_H__
 | 
						|
#define __PCI_HOST_BRIDGE_UTILITY_LIB_H__
 | 
						|
 | 
						|
#include <Library/PciHostBridgeLib.h>
 | 
						|
 | 
						|
/**
 | 
						|
  Utility function to initialize a PCI_ROOT_BRIDGE structure.
 | 
						|
 | 
						|
  @param[in]  Supports               Supported attributes.
 | 
						|
 | 
						|
  @param[in]  Attributes             Initial attributes.
 | 
						|
 | 
						|
  @param[in]  AllocAttributes        Allocation attributes.
 | 
						|
 | 
						|
  @param[in]  DmaAbove4G             DMA above 4GB memory.
 | 
						|
 | 
						|
  @param[in]  NoExtendedConfigSpace  No Extended Config Space.
 | 
						|
 | 
						|
  @param[in]  RootBusNumber          The bus number to store in RootBus.
 | 
						|
 | 
						|
  @param[in]  MaxSubBusNumber        The inclusive maximum bus number that can
 | 
						|
                                     be assigned to any subordinate bus found
 | 
						|
                                     behind any PCI bridge hanging off this
 | 
						|
                                     root bus.
 | 
						|
 | 
						|
                                     The caller is repsonsible for ensuring
 | 
						|
                                     that RootBusNumber <= MaxSubBusNumber. If
 | 
						|
                                     RootBusNumber equals MaxSubBusNumber, then
 | 
						|
                                     the root bus has no room for subordinate
 | 
						|
                                     buses.
 | 
						|
 | 
						|
  @param[in]  Io                     IO aperture.
 | 
						|
 | 
						|
  @param[in]  Mem                    MMIO aperture.
 | 
						|
 | 
						|
  @param[in]  MemAbove4G             MMIO aperture above 4G.
 | 
						|
 | 
						|
  @param[in]  PMem                   Prefetchable MMIO aperture.
 | 
						|
 | 
						|
  @param[in]  PMemAbove4G            Prefetchable MMIO aperture above 4G.
 | 
						|
 | 
						|
  @param[out] RootBus                The PCI_ROOT_BRIDGE structure (allocated
 | 
						|
                                     by the caller) that should be filled in by
 | 
						|
                                     this function.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS                Initialization successful. A device path
 | 
						|
                                     consisting of an ACPI device path node,
 | 
						|
                                     with UID = RootBusNumber, has been
 | 
						|
                                     allocated and linked into RootBus.
 | 
						|
 | 
						|
  @retval EFI_OUT_OF_RESOURCES       Memory allocation failed.
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
PciHostBridgeUtilityInitRootBridge (
 | 
						|
  IN  UINT64                    Supports,
 | 
						|
  IN  UINT64                    Attributes,
 | 
						|
  IN  UINT64                    AllocAttributes,
 | 
						|
  IN  BOOLEAN                   DmaAbove4G,
 | 
						|
  IN  BOOLEAN                   NoExtendedConfigSpace,
 | 
						|
  IN  UINT8                     RootBusNumber,
 | 
						|
  IN  UINT8                     MaxSubBusNumber,
 | 
						|
  IN  PCI_ROOT_BRIDGE_APERTURE  *Io,
 | 
						|
  IN  PCI_ROOT_BRIDGE_APERTURE  *Mem,
 | 
						|
  IN  PCI_ROOT_BRIDGE_APERTURE  *MemAbove4G,
 | 
						|
  IN  PCI_ROOT_BRIDGE_APERTURE  *PMem,
 | 
						|
  IN  PCI_ROOT_BRIDGE_APERTURE  *PMemAbove4G,
 | 
						|
  OUT PCI_ROOT_BRIDGE           *RootBus
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Utility function to uninitialize a PCI_ROOT_BRIDGE structure set up with
 | 
						|
  PciHostBridgeUtilityInitRootBridge().
 | 
						|
 | 
						|
  @param[in] RootBus  The PCI_ROOT_BRIDGE structure, allocated by the caller and
 | 
						|
                      initialized with PciHostBridgeUtilityInitRootBridge(),
 | 
						|
                      that should be uninitialized. This function doesn't free
 | 
						|
                      RootBus.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
PciHostBridgeUtilityUninitRootBridge (
 | 
						|
  IN PCI_ROOT_BRIDGE  *RootBus
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Utility function to return all the root bridge instances in an array.
 | 
						|
 | 
						|
  @param[out] Count                  The number of root bridge instances.
 | 
						|
 | 
						|
  @param[in]  Attributes             Initial attributes.
 | 
						|
 | 
						|
  @param[in]  AllocAttributes        Allocation attributes.
 | 
						|
 | 
						|
  @param[in]  DmaAbove4G             DMA above 4GB memory.
 | 
						|
 | 
						|
  @param[in]  NoExtendedConfigSpace  No Extended Config Space.
 | 
						|
 | 
						|
  @param[in]  BusMin                 Minimum Bus number, inclusive.
 | 
						|
 | 
						|
  @param[in]  BusMax                 Maximum Bus number, inclusive.
 | 
						|
 | 
						|
  @param[in]  Io                     IO aperture.
 | 
						|
 | 
						|
  @param[in]  Mem                    MMIO aperture.
 | 
						|
 | 
						|
  @param[in]  MemAbove4G             MMIO aperture above 4G.
 | 
						|
 | 
						|
  @param[in]  PMem                   Prefetchable MMIO aperture.
 | 
						|
 | 
						|
  @param[in]  PMemAbove4G            Prefetchable MMIO aperture above 4G.
 | 
						|
 | 
						|
  @return                            All the root bridge instances in an array.
 | 
						|
**/
 | 
						|
PCI_ROOT_BRIDGE *
 | 
						|
EFIAPI
 | 
						|
PciHostBridgeUtilityGetRootBridges (
 | 
						|
  OUT UINTN                     *Count,
 | 
						|
  IN  UINT64                    Attributes,
 | 
						|
  IN  UINT64                    AllocationAttributes,
 | 
						|
  IN  BOOLEAN                   DmaAbove4G,
 | 
						|
  IN  BOOLEAN                   NoExtendedConfigSpace,
 | 
						|
  IN  UINTN                     BusMin,
 | 
						|
  IN  UINTN                     BusMax,
 | 
						|
  IN  PCI_ROOT_BRIDGE_APERTURE  *Io,
 | 
						|
  IN  PCI_ROOT_BRIDGE_APERTURE  *Mem,
 | 
						|
  IN  PCI_ROOT_BRIDGE_APERTURE  *MemAbove4G,
 | 
						|
  IN  PCI_ROOT_BRIDGE_APERTURE  *PMem,
 | 
						|
  IN  PCI_ROOT_BRIDGE_APERTURE  *PMemAbove4G
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Utility function to free root bridge instances array from
 | 
						|
  PciHostBridgeUtilityGetRootBridges().
 | 
						|
 | 
						|
  @param[in] Bridges  The root bridge instances array.
 | 
						|
  @param[in] Count    The count of the array.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
PciHostBridgeUtilityFreeRootBridges (
 | 
						|
  IN PCI_ROOT_BRIDGE  *Bridges,
 | 
						|
  IN UINTN            Count
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Utility function to inform the platform that the resource conflict happens.
 | 
						|
 | 
						|
  @param[in] Configuration  Pointer to PCI I/O and PCI memory resource
 | 
						|
                            descriptors. The Configuration contains the
 | 
						|
                            resources for all the root bridges. The resource
 | 
						|
                            for each root bridge is terminated with END
 | 
						|
                            descriptor and an additional END is appended
 | 
						|
                            indicating the end of the entire resources. The
 | 
						|
                            resource descriptor field values follow the
 | 
						|
                            description in
 | 
						|
                            EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL
 | 
						|
                            .SubmitResources().
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
PciHostBridgeUtilityResourceConflict (
 | 
						|
  IN VOID  *Configuration
 | 
						|
  );
 | 
						|
 | 
						|
#endif // __PCI_HOST_BRIDGE_UTILITY_LIB_H__
 |