REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the MdeModulePkg 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>
		
			
				
	
	
		
			190 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			190 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  Defines the PEI_USB_IO_PPI that the USB-related PEIM can use for I/O operations
 | 
						|
  on the USB BUS.  This interface enables recovery from a
 | 
						|
  USB-class storage device, such as USB CD/DVD, USB hard drive, or USB FLASH
 | 
						|
  drive.  These interfaces are modeled on the UEFI 2.3 specification EFI_USB_IO_PROTOCOL.
 | 
						|
  Refer to section 16.2.4 of the UEFI 2.3 Specification for more information on
 | 
						|
  these interfaces.
 | 
						|
 | 
						|
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
 | 
						|
 | 
						|
SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#ifndef _PEI_USB_IO_PPI_H_
 | 
						|
#define _PEI_USB_IO_PPI_H_
 | 
						|
 | 
						|
#include <Protocol/Usb2HostController.h>
 | 
						|
 | 
						|
///
 | 
						|
/// Global ID for the PEI_USB_IO_PPI.
 | 
						|
///
 | 
						|
#define PEI_USB_IO_PPI_GUID \
 | 
						|
  { \
 | 
						|
    0x7c29785c, 0x66b9, 0x49fc, { 0xb7, 0x97, 0x1c, 0xa5, 0x55, 0xe, 0xf2, 0x83} \
 | 
						|
  }
 | 
						|
 | 
						|
///
 | 
						|
/// Forward declaration for the PEI_USB_IO_PPI.
 | 
						|
///
 | 
						|
typedef struct _PEI_USB_IO_PPI PEI_USB_IO_PPI;
 | 
						|
 | 
						|
/**
 | 
						|
  Submits control transfer to a target USB device.
 | 
						|
 | 
						|
  @param[in]     PeiServices   The pointer to the PEI Services Table.
 | 
						|
  @param[in]     This          The pointer to this instance of the PEI_USB_IO_PPI.
 | 
						|
  @param[in]     Request       A pointer to the USB device request that will be
 | 
						|
                               sent to the USB device.
 | 
						|
  @param[in]     Direction     Specifies the data direction for the transfer. There
 | 
						|
                               are three values available:
 | 
						|
                               EfiUsbDataIn, EfiUsbDataOut and EfiUsbNoData.
 | 
						|
  @param[in]     Timeout       Indicates the maximum time, in milliseconds, that
 | 
						|
                               the transfer is allowed to complete.
 | 
						|
                               If Timeout is 0, then the caller must wait for the
 | 
						|
                               function to be completed until EFI_SUCCESS or
 | 
						|
                               EFI_DEVICE_ERROR is returned.
 | 
						|
  @param[in,out] Data          A pointer to the buffer of data that will be
 | 
						|
                               transmitted to or received from the USB device.
 | 
						|
  @param[in]     DataLength    On input, indicates the size, in bytes, of the data
 | 
						|
                               buffer specified by Data.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS             The control transfer was completed successfully.
 | 
						|
  @retval EFI_INVALID_PARAMETER   Some parameters are invalid.
 | 
						|
  @retval EFI_OUT_OF_RESOURCES    The control transfer could not be completed due
 | 
						|
                                  to a lack of resources.
 | 
						|
  @retval EFI_TIMEOUT             The control transfer failed due to timeout.
 | 
						|
  @retval EFI_DEVICE_ERROR        The control transfer failed due to host controller
 | 
						|
                                  or device error.
 | 
						|
                                  Caller should check TransferResult for detailed
 | 
						|
                                  error information.
 | 
						|
 | 
						|
**/
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *PEI_USB_CONTROL_TRANSFER)(
 | 
						|
  IN     EFI_PEI_SERVICES        **PeiServices,
 | 
						|
  IN     PEI_USB_IO_PPI          *This,
 | 
						|
  IN     EFI_USB_DEVICE_REQUEST  *Request,
 | 
						|
  IN     EFI_USB_DATA_DIRECTION  Direction,
 | 
						|
  IN     UINT32                  Timeout,
 | 
						|
  IN OUT VOID                    *Data OPTIONAL,
 | 
						|
  IN     UINTN                   DataLength  OPTIONAL
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Submits bulk transfer to a target USB device.
 | 
						|
 | 
						|
  @param[in] PeiServices       The pointer to the PEI Services Table.
 | 
						|
  @param[in] This              The pointer to this instance of the PEI_USB_IO_PPI.
 | 
						|
  @param[in] DeviceEndpoint    The endpoint address.
 | 
						|
  @param[in] Data              The data buffer to be transfered.
 | 
						|
  @param[in] DataLength        The length of data buffer.
 | 
						|
  @param[in] Timeout           The timeout for the transfer, in milliseconds.
 | 
						|
                               If Timeout is 0, then the caller must wait for the
 | 
						|
                               function to be completed until EFI_SUCCESS or
 | 
						|
                               EFI_DEVICE_ERROR is returned.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS             The bulk transfer completed successfully.
 | 
						|
  @retval EFI_INVALID_PARAMETER   Some parameters are invalid.
 | 
						|
  @retval EFI_OUT_OF_RESOURCES    The bulk transfer could not be completed due to
 | 
						|
                                  a lack of resources.
 | 
						|
  @retval EFI_TIMEOUT             The bulk transfer failed due to timeout.
 | 
						|
  @retval EFI_DEVICE_ERROR        The bulk transfer failed due to host controller
 | 
						|
                                  or device error.
 | 
						|
                                  Caller should check TransferResult for detailed
 | 
						|
                                  error information.
 | 
						|
 | 
						|
**/
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *PEI_USB_BULK_TRANSFER)(
 | 
						|
  IN EFI_PEI_SERVICES  **PeiServices,
 | 
						|
  IN PEI_USB_IO_PPI    *This,
 | 
						|
  IN UINT8             DeviceEndpoint,
 | 
						|
  IN OUT VOID          *Data,
 | 
						|
  IN OUT UINTN         *DataLength,
 | 
						|
  IN UINTN             Timeout
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Get interface descriptor from a USB device.
 | 
						|
 | 
						|
  @param[in] PeiServices           The pointer to the PEI Services Table.
 | 
						|
  @param[in] This                  The pointer to this instance of the PEI_USB_IO_PPI.
 | 
						|
  @param[in] InterfaceDescriptor   The interface descriptor.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS             The interface descriptor was returned.
 | 
						|
  @retval EFI_INVALID_PARAMETER   Some parameters are invalid.
 | 
						|
  @retval EFI_DEVICE_ERROR        A device error occurred, the function failed to
 | 
						|
                                  get the interface descriptor.
 | 
						|
 | 
						|
**/
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *PEI_USB_GET_INTERFACE_DESCRIPTOR)(
 | 
						|
  IN EFI_PEI_SERVICES              **PeiServices,
 | 
						|
  IN PEI_USB_IO_PPI                *This,
 | 
						|
  IN EFI_USB_INTERFACE_DESCRIPTOR  **InterfaceDescriptor
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Get endpoint descriptor from a USB device.
 | 
						|
 | 
						|
  @param[in] PeiServices          The pointer to the PEI Services Table.
 | 
						|
  @param[in] This                 The pointer to this instance of the PEI_USB_IO_PPI.
 | 
						|
  @param[in] EndPointIndex        The index of the end point.
 | 
						|
  @param[in] EndpointDescriptor   The endpoint descriptor.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS             The endpoint descriptor was returned.
 | 
						|
  @retval EFI_INVALID_PARAMETER   Some parameters are invalid.
 | 
						|
  @retval EFI_DEVICE_ERROR        A device error occurred, the function failed to
 | 
						|
                                  get the endpoint descriptor.
 | 
						|
 | 
						|
**/
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *PEI_USB_GET_ENDPOINT_DESCRIPTOR)(
 | 
						|
  IN EFI_PEI_SERVICES               **PeiServices,
 | 
						|
  IN PEI_USB_IO_PPI                 *This,
 | 
						|
  IN UINT8                          EndpointIndex,
 | 
						|
  IN EFI_USB_ENDPOINT_DESCRIPTOR    **EndpointDescriptor
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Issue a port reset to the device.
 | 
						|
 | 
						|
  @param[in] PeiServices   The pointer to the PEI Services Table.
 | 
						|
  @param[in] This          The pointer to this instance of the PEI_USB_IO_PPI.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS             The port reset was issued successfully.
 | 
						|
  @retval EFI_INVALID_PARAMETER   Some parameters are invalid.
 | 
						|
  @retval EFI_DEVICE_ERROR        Device error occurred.
 | 
						|
 | 
						|
**/
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *PEI_USB_PORT_RESET)(
 | 
						|
  IN EFI_PEI_SERVICES  **PeiServices,
 | 
						|
  IN PEI_USB_IO_PPI    *This
 | 
						|
  );
 | 
						|
 | 
						|
///
 | 
						|
/// This PPI contains a set of services to interact with the USB host controller.
 | 
						|
/// These interfaces are modeled on the UEFI 2.3 specification EFI_USB_IO_PROTOCOL.
 | 
						|
/// Refer to section 16.2.4 of the UEFI 2.3 Specification for more information on
 | 
						|
/// these interfaces.
 | 
						|
///
 | 
						|
struct _PEI_USB_IO_PPI {
 | 
						|
  PEI_USB_CONTROL_TRANSFER            UsbControlTransfer;
 | 
						|
  PEI_USB_BULK_TRANSFER               UsbBulkTransfer;
 | 
						|
  PEI_USB_GET_INTERFACE_DESCRIPTOR    UsbGetInterfaceDescriptor;
 | 
						|
  PEI_USB_GET_ENDPOINT_DESCRIPTOR     UsbGetEndpointDescriptor;
 | 
						|
  PEI_USB_PORT_RESET                  UsbPortReset;
 | 
						|
};
 | 
						|
 | 
						|
extern EFI_GUID  gPeiUsbIoPpiGuid;
 | 
						|
 | 
						|
#endif
 |