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>
		
			
				
	
	
		
			154 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			154 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   Define the PPI to abstract the functions that enable IDE and SATA channels, and to retrieve
 | |
|   the base I/O port address for each of the enabled IDE and SATA channels.
 | |
| 
 | |
| Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
 | |
| 
 | |
| SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef _PEI_ATA_CONTROLLER_PPI_H_
 | |
| #define _PEI_ATA_CONTROLLER_PPI_H_
 | |
| 
 | |
| ///
 | |
| /// Global ID for the PEI_ATA_CONTROLLER_PPI.
 | |
| ///
 | |
| #define PEI_ATA_CONTROLLER_PPI_GUID \
 | |
|   { \
 | |
|     0xa45e60d1, 0xc719, 0x44aa, {0xb0, 0x7a, 0xaa, 0x77, 0x7f, 0x85, 0x90, 0x6d } \
 | |
|   }
 | |
| 
 | |
| ///
 | |
| /// Forward declaration for the PEI_ATA_CONTROLLER_PPI.
 | |
| ///
 | |
| typedef struct _PEI_ATA_CONTROLLER_PPI PEI_ATA_CONTROLLER_PPI;
 | |
| 
 | |
| ///
 | |
| /// This bit is used in the ChannelMask parameter of EnableAtaChannel() to
 | |
| /// disable the IDE channels.
 | |
| /// This is designed for old generation chipset with PATA/SATA controllers.
 | |
| /// It may be ignored in PPI implementation for new generation chipset without PATA controller.
 | |
| ///
 | |
| #define PEI_ICH_IDE_NONE  0x00
 | |
| 
 | |
| ///
 | |
| /// This bit is used in the ChannelMask parameter of EnableAtaChannel() to
 | |
| /// enable the Primary IDE channel.
 | |
| /// This is designed for old generation chipset with PATA/SATA controllers.
 | |
| /// It may be ignored in PPI implementation for new generation chipset without PATA controller.
 | |
| ///
 | |
| #define PEI_ICH_IDE_PRIMARY  0x01
 | |
| 
 | |
| ///
 | |
| /// This bit is used in the ChannelMask parameter of EnableAtaChannel() to
 | |
| /// enable the Secondary IDE channel.
 | |
| /// This is designed for old generation chipset with PATA/SATA controllers.
 | |
| /// It may be ignored in PPI implementation for new generation chipset without PATA controller.
 | |
| ///
 | |
| #define PEI_ICH_IDE_SECONDARY  0x02
 | |
| 
 | |
| ///
 | |
| /// This bit is used in the ChannelMask parameter of EnableAtaChannel() to
 | |
| /// disable the SATA channel.
 | |
| /// This is designed for old generation chipset with PATA/SATA controllers.
 | |
| /// It may be ignored in PPI implementation for new generation chipset without PATA controller.
 | |
| ///
 | |
| #define PEI_ICH_SATA_NONE  0x04
 | |
| 
 | |
| ///
 | |
| /// This bit is used in the ChannelMask parameter of EnableAtaChannel() to
 | |
| /// enable the Primary SATA channel.
 | |
| /// This is designed for old generation chipset with PATA/SATA controllers.
 | |
| /// It may be ignored in PPI implementation for new generation chipset without PATA controller.
 | |
| ///
 | |
| #define PEI_ICH_SATA_PRIMARY  0x08
 | |
| 
 | |
| ///
 | |
| /// This bit is used in the ChannelMask parameter of EnableAtaChannel() to
 | |
| /// enable the Secondary SATA channel.
 | |
| /// This is designed for old generation chipset with PATA/SATA controllers.
 | |
| /// It may be ignored in PPI implementation for new generation chipset without PATA controller.
 | |
| ///
 | |
| #define PEI_ICH_SATA_SECONDARY  0x010
 | |
| 
 | |
| ///
 | |
| /// Structure that contains the base addresses for the IDE registers
 | |
| ///
 | |
| typedef struct {
 | |
|   ///
 | |
|   /// Base I/O port address of the IDE controller's command block
 | |
|   ///
 | |
|   UINT16    CommandBlockBaseAddr;
 | |
|   ///
 | |
|   /// Base I/O port address of the IDE controller's control block
 | |
|   ///
 | |
|   UINT16    ControlBlockBaseAddr;
 | |
| } IDE_REGS_BASE_ADDR;
 | |
| 
 | |
| /**
 | |
|   Sets IDE and SATA channels to an enabled or disabled state.
 | |
| 
 | |
|   This service enables or disables the IDE and SATA channels specified by ChannelMask.
 | |
|   It may ignore ChannelMask setting to enable or disable IDE and SATA channels based on the platform policy.
 | |
|   The number of the enabled channels will be returned by GET_IDE_REGS_BASE_ADDR() function.
 | |
| 
 | |
|   If the new state is set, then EFI_SUCCESS is returned.  If the new state can
 | |
|   not be set, then EFI_DEVICE_ERROR is returned.
 | |
| 
 | |
|   @param[in] PeiServices   The pointer to the PEI Services Table.
 | |
|   @param[in] This          The pointer to this instance of the PEI_ATA_CONTROLLER_PPI.
 | |
|   @param[in] ChannelMask   The bitmask that identifies the IDE and SATA channels to
 | |
|                            enable or disable. This parameter is optional.
 | |
| 
 | |
|   @retval EFI_SUCCESS        The IDE or SATA channels were enabled or disabled successfully.
 | |
|   @retval EFI_DEVICE_ERROR   The IDE or SATA channels could not be enabled or disabled.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *PEI_ENABLE_ATA)(
 | |
|   IN EFI_PEI_SERVICES        **PeiServices,
 | |
|   IN PEI_ATA_CONTROLLER_PPI  *This,
 | |
|   IN UINT8                   ChannelMask
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Retrieves the I/O port base addresses for command and control registers of the
 | |
|   enabled IDE/SATA channels.
 | |
| 
 | |
|   This service fills in the structure poionted to by IdeRegsBaseAddr with the I/O
 | |
|   port base addresses for the command and control registers of the IDE and SATA
 | |
|   channels that were previously enabled in EnableAtaChannel().  The number of
 | |
|   enabled IDE and SATA channels is returned.
 | |
| 
 | |
|   @param[in]  PeiServices       The pointer to the PEI Services Table.
 | |
|   @param[in]  This              The pointer to this instance of the PEI_ATA_CONTROLLER_PPI.
 | |
|   @param[out] IdeRegsBaseAddr   The pointer to caller allocated space to return the
 | |
|                                 I/O port base addresses of the IDE and SATA channels
 | |
|                                 that were previosuly enabled with EnableAtaChannel().
 | |
| 
 | |
|   @return   The number of enabled IDE and SATA channels in the platform.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| UINT32
 | |
| (EFIAPI *GET_IDE_REGS_BASE_ADDR)(
 | |
|   IN  EFI_PEI_SERVICES        **PeiServices,
 | |
|   IN  PEI_ATA_CONTROLLER_PPI  *This,
 | |
|   OUT IDE_REGS_BASE_ADDR      *IdeRegsBaseAddr
 | |
|   );
 | |
| 
 | |
| ///
 | |
| /// This PPI contains services to enable and disable IDE and SATA channels and
 | |
| /// retrieves the base I/O port addresses to the enabled IDE and SATA channels.
 | |
| ///
 | |
| struct _PEI_ATA_CONTROLLER_PPI {
 | |
|   PEI_ENABLE_ATA            EnableAtaChannel;
 | |
|   GET_IDE_REGS_BASE_ADDR    GetIdeRegsBaseAddr;
 | |
| };
 | |
| 
 | |
| extern EFI_GUID  gPeiAtaControllerPpiGuid;
 | |
| 
 | |
| #endif
 |