REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the MdePkg 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: Liming Gao <gaoliming@byosoft.com.cn>
		
			
				
	
	
		
			165 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			165 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  Provides services to notify the PCI bus driver that some events have happened
 | 
						|
  in a hot-plug controller (such as a PC Card socket, or PHPC), and to ask the
 | 
						|
  PCI bus driver to create or destroy handles for PCI-like devices.
 | 
						|
 | 
						|
  A hot-plug capable PCI bus driver should produce the EFI PCI Hot Plug Request
 | 
						|
  protocol. When a PCI device or a PCI-like device (for example, 32-bit PC Card)
 | 
						|
  is installed after PCI bus does the enumeration, the PCI bus driver can be
 | 
						|
  notified through this protocol. For example, when a 32-bit PC Card is inserted
 | 
						|
  into the PC Card socket, the PC Card bus driver can call interface of this
 | 
						|
  protocol to notify PCI bus driver to allocate resource and create handles for
 | 
						|
  this PC Card.
 | 
						|
 | 
						|
  The EFI_PCI_HOTPLUG_REQUEST_PROTOCOL is installed by the PCI bus driver on a
 | 
						|
  separate handle when PCI bus driver starts up. There is only one instance in
 | 
						|
  the system.  Any driver that wants to use this protocol must locate it globally.
 | 
						|
  The EFI_PCI_HOTPLUG_REQUEST_PROTOCOL allows the driver of hot-plug controller,
 | 
						|
  for example, PC Card Bus driver, to notify PCI bus driver that an event has
 | 
						|
  happened in the hot-plug controller, and the PCI bus driver is requested to
 | 
						|
  create (add) or destroy (remove) handles for the specified PCI-like devices.
 | 
						|
  For example, when a 32-bit PC Card is inserted, this protocol interface will
 | 
						|
  be called with an add operation, and the PCI bus driver will enumerate and
 | 
						|
  start the devices inserted; when a 32-bit PC Card is removed, this protocol
 | 
						|
  interface will be called with a remove operation, and the PCI bus driver will
 | 
						|
  stop the devices and destroy their handles.  The existence of this protocol
 | 
						|
  represents the capability of the PCI bus driver. If this protocol exists in
 | 
						|
  system, it means PCI bus driver is hot-plug capable, thus together with the
 | 
						|
  effort of PC Card bus driver, hot-plug of PC Card can be supported. Otherwise,
 | 
						|
  the hot-plug capability is not provided.
 | 
						|
 | 
						|
  Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
 | 
						|
  SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
 | 
						|
  @par Revision Reference:
 | 
						|
  This Protocol is defined in UEFI Platform Initialization Specification 1.2
 | 
						|
  Volume 5: Standards
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#ifndef __PCI_HOTPLUG_REQUEST_H_
 | 
						|
#define __PCI_HOTPLUG_REQUEST_H_
 | 
						|
 | 
						|
///
 | 
						|
/// Global ID for EFI_PCI_HOTPLUG_REQUEST_PROTOCOL
 | 
						|
///
 | 
						|
#define EFI_PCI_HOTPLUG_REQUEST_PROTOCOL_GUID \
 | 
						|
  { \
 | 
						|
    0x19cb87ab, 0x2cb9, 0x4665, {0x83, 0x60, 0xdd, 0xcf, 0x60, 0x54, 0xf7, 0x9d} \
 | 
						|
  }
 | 
						|
 | 
						|
///
 | 
						|
/// Forward declaration for EFI_PCI_HOTPLUG_REQUEST_PROTOCOL
 | 
						|
///
 | 
						|
typedef struct _EFI_PCI_HOTPLUG_REQUEST_PROTOCOL EFI_PCI_HOTPLUG_REQUEST_PROTOCOL;
 | 
						|
 | 
						|
///
 | 
						|
/// Enumeration of PCI hot plug operations
 | 
						|
///
 | 
						|
typedef enum {
 | 
						|
  ///
 | 
						|
  /// The PCI bus driver is requested to create handles for the specified devices.
 | 
						|
  /// An array of EFI_HANDLE is returned, with a NULL element marking the end of
 | 
						|
  /// the array.
 | 
						|
  ///
 | 
						|
  EfiPciHotPlugRequestAdd,
 | 
						|
 | 
						|
  ///
 | 
						|
  /// The PCI bus driver is requested to destroy handles for the specified devices.
 | 
						|
  ///
 | 
						|
  EfiPciHotplugRequestRemove
 | 
						|
} EFI_PCI_HOTPLUG_OPERATION;
 | 
						|
 | 
						|
/**
 | 
						|
  This function is used to notify PCI bus driver that some events happened in a
 | 
						|
  hot-plug controller, and the PCI bus driver is requested to start or stop
 | 
						|
  specified PCI-like devices.
 | 
						|
 | 
						|
  This function allows the PCI bus driver to be notified to act as requested when
 | 
						|
  a hot-plug event has happened on the hot-plug controller. Currently, the
 | 
						|
  operations include add operation and remove operation.  If it is a add operation,
 | 
						|
  the PCI bus driver will enumerate, allocate resources for devices behind the
 | 
						|
  hot-plug controller, and create handle for the device specified by RemainingDevicePath.
 | 
						|
  The RemainingDevicePath is an optional parameter. If it is not NULL, only the
 | 
						|
  specified device is started; if it is NULL, all devices behind the hot-plug
 | 
						|
  controller are started.  The newly created handles of PC Card functions are
 | 
						|
  returned in the ChildHandleBuffer, together with the number of child handle in
 | 
						|
  NumberOfChildren.  If it is a remove operation, when NumberOfChildren contains
 | 
						|
  a non-zero value, child handles specified in ChildHandleBuffer are stopped and
 | 
						|
  destroyed; otherwise, PCI bus driver is notified to stop managing the controller
 | 
						|
  handle.
 | 
						|
 | 
						|
    @param[in] This                    A pointer to the EFI_PCI_HOTPLUG_REQUEST_PROTOCOL
 | 
						|
                                       instance.
 | 
						|
    @param[in] Operation               The operation the PCI bus driver is requested
 | 
						|
                                       to make.
 | 
						|
    @param[in] Controller              The handle of the hot-plug controller.
 | 
						|
    @param[in] RemainingDevicePath     The remaining device path for the PCI-like
 | 
						|
                                       hot-plug device.  It only contains device
 | 
						|
                                       path nodes behind the hot-plug controller.
 | 
						|
                                       It is an optional parameter and only valid
 | 
						|
                                       when the Operation is a add operation. If
 | 
						|
                                       it is NULL, all devices behind the PC Card
 | 
						|
                                       socket are started.
 | 
						|
    @param[in,out] NumberOfChildren    The number of child handles. For an add
 | 
						|
                                       operation, it is an output parameter.  For
 | 
						|
                                       a remove operation, it's an input parameter.
 | 
						|
                                       When it contains a non-zero value, children
 | 
						|
                                       handles specified in ChildHandleBuffer are
 | 
						|
                                       destroyed.  Otherwise, PCI bus driver is
 | 
						|
                                       notified to stop managing the controller
 | 
						|
                                       handle.
 | 
						|
    @param[in,out] ChildHandleBuffer   The buffer which contains the child handles.
 | 
						|
                                       For an add operation, it is an output
 | 
						|
                                       parameter and contains all newly created
 | 
						|
                                       child handles.  For a remove operation, it
 | 
						|
                                       contains child handles to be destroyed when
 | 
						|
                                       NumberOfChildren contains a non-zero value.
 | 
						|
                                       It can be NULL when NumberOfChildren is 0.
 | 
						|
                                       It's the caller's responsibility to allocate
 | 
						|
                                       and free memory for this buffer.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS             The handles for the specified device have been
 | 
						|
                                  created or destroyed as requested, and for an
 | 
						|
                                  add operation, the new handles are returned in
 | 
						|
                                  ChildHandleBuffer.
 | 
						|
  @retval EFI_INVALID_PARAMETER   Operation is not a legal value.
 | 
						|
  @retval EFI_INVALID_PARAMETER   Controller is NULL or not a valid handle.
 | 
						|
  @retval EFI_INVALID_PARAMETER   NumberOfChildren is NULL.
 | 
						|
  @retval EFI_INVALID_PARAMETER   ChildHandleBuffer is NULL while Operation is
 | 
						|
                                  remove and NumberOfChildren contains a non-zero
 | 
						|
                                  value.
 | 
						|
  @retval EFI_INVALID_PARAMETER   ChildHandleBuffer is NULL while Operation is add.
 | 
						|
  @retval EFI_OUT_OF_RESOURCES    There are no enough resources to start the
 | 
						|
                                  devices.
 | 
						|
**/
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *EFI_PCI_HOTPLUG_REQUEST_NOTIFY)(
 | 
						|
  IN     EFI_PCI_HOTPLUG_REQUEST_PROTOCOL  *This,
 | 
						|
  IN     EFI_PCI_HOTPLUG_OPERATION         Operation,
 | 
						|
  IN     EFI_HANDLE                        Controller,
 | 
						|
  IN     EFI_DEVICE_PATH_PROTOCOL          *RemainingDevicePath  OPTIONAL,
 | 
						|
  IN OUT UINT8                             *NumberOfChildren,
 | 
						|
  IN OUT EFI_HANDLE                        *ChildHandleBuffer
 | 
						|
  );
 | 
						|
 | 
						|
///
 | 
						|
/// Provides services to notify PCI bus driver that some events have happened in
 | 
						|
/// a hot-plug controller (for example, PC Card socket, or PHPC), and ask PCI bus
 | 
						|
/// driver to create or destroy handles for the PCI-like devices.
 | 
						|
///
 | 
						|
struct _EFI_PCI_HOTPLUG_REQUEST_PROTOCOL {
 | 
						|
  ///
 | 
						|
  /// Notify the PCI bus driver that some events have happened in a hot-plug
 | 
						|
  /// controller (for example, PC Card socket, or PHPC), and ask PCI bus driver
 | 
						|
  /// to create or destroy handles for the PCI-like devices. See Section 0 for
 | 
						|
  /// a detailed description.
 | 
						|
  ///
 | 
						|
  EFI_PCI_HOTPLUG_REQUEST_NOTIFY    Notify;
 | 
						|
};
 | 
						|
 | 
						|
extern EFI_GUID  gEfiPciHotPlugRequestProtocolGuid;
 | 
						|
 | 
						|
#endif
 |