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>
		
			
				
	
	
		
			299 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			299 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   EFI ISA ACPI Protocol is used to enumerate and manage all the ISA controllers on
 | |
|   the platform's ISA Bus.
 | |
| 
 | |
| Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
 | |
| SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef __ISA_ACPI_H_
 | |
| #define __ISA_ACPI_H_
 | |
| 
 | |
| ///
 | |
| /// Global ID for the EFI ISA ACPI Protocol.
 | |
| ///
 | |
| #define EFI_ISA_ACPI_PROTOCOL_GUID \
 | |
|   { \
 | |
|     0x64a892dc, 0x5561, 0x4536, { 0x92, 0xc7, 0x79, 0x9b, 0xfc, 0x18, 0x33, 0x55 } \
 | |
|   }
 | |
| 
 | |
| ///
 | |
| /// Forward declaration fo the EFI ISA ACPI Protocol
 | |
| ///
 | |
| typedef struct _EFI_ISA_ACPI_PROTOCOL EFI_ISA_ACPI_PROTOCOL;
 | |
| 
 | |
| ///
 | |
| /// ISA ACPI Protocol interrupt resource attributes.
 | |
| ///
 | |
| #define EFI_ISA_ACPI_IRQ_TYPE_HIGH_TRUE_EDGE_SENSITIVE   0x01   ///< Edge triggered interrupt on a rising edge.
 | |
| #define EFI_ISA_ACPI_IRQ_TYPE_LOW_TRUE_EDGE_SENSITIVE    0x02   ///< Edge triggered interrupt on a falling edge.
 | |
| #define EFI_ISA_ACPI_IRQ_TYPE_HIGH_TRUE_LEVEL_SENSITIVE  0x04   ///< Level sensitive interrupt active high.
 | |
| #define EFI_ISA_ACPI_IRQ_TYPE_LOW_TRUE_LEVEL_SENSITIVE   0x08   ///< Level sensitive interrupt active low.
 | |
| 
 | |
| ///
 | |
| /// ISA ACPI Protocol DMA resource attributes.
 | |
| ///
 | |
| #define EFI_ISA_ACPI_DMA_SPEED_TYPE_MASK                 0x03   ///< Bit mask of supported DMA speed attributes.
 | |
| #define EFI_ISA_ACPI_DMA_SPEED_TYPE_COMPATIBILITY        0x00   ///< ISA controller supports compatibility mode DMA transfers.
 | |
| #define EFI_ISA_ACPI_DMA_SPEED_TYPE_A                    0x01   ///< ISA controller supports type A DMA transfers.
 | |
| #define EFI_ISA_ACPI_DMA_SPEED_TYPE_B                    0x02   ///< ISA controller supports type B DMA transfers.
 | |
| #define EFI_ISA_ACPI_DMA_SPEED_TYPE_F                    0x03   ///< ISA controller supports type F DMA transfers.
 | |
| #define EFI_ISA_ACPI_DMA_COUNT_BY_BYTE                   0x04   ///< ISA controller increments DMA address by bytes (8-bit).
 | |
| #define EFI_ISA_ACPI_DMA_COUNT_BY_WORD                   0x08   ///< ISA controller increments DMA address by words (16-bit).
 | |
| #define EFI_ISA_ACPI_DMA_BUS_MASTER                      0x10   ///< ISA controller is a DMA bus master.
 | |
| #define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_8_BIT             0x20   ///< ISA controller only supports 8-bit DMA transfers.
 | |
| #define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_8_BIT_AND_16_BIT  0x40   ///< ISA controller both 8-bit and 16-bit DMA transfers.
 | |
| #define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_16_BIT            0x80   ///< ISA controller only supports 16-bit DMA transfers.
 | |
| 
 | |
| ///
 | |
| /// ISA ACPI Protocol MMIO resource attributes
 | |
| ///
 | |
| #define EFI_ISA_ACPI_MEMORY_WIDTH_MASK              0x03        ///< Bit mask of supported ISA memory width attributes.
 | |
| #define EFI_ISA_ACPI_MEMORY_WIDTH_8_BIT             0x00        ///< ISA MMIO region only supports 8-bit access.
 | |
| #define EFI_ISA_ACPI_MEMORY_WIDTH_16_BIT            0x01        ///< ISA MMIO region only supports 16-bit access.
 | |
| #define EFI_ISA_ACPI_MEMORY_WIDTH_8_BIT_AND_16_BIT  0x02        ///< ISA MMIO region supports both 8-bit and 16-bit access.
 | |
| #define EFI_ISA_ACPI_MEMORY_WRITEABLE               0x04        ///< ISA MMIO region supports write transactions.
 | |
| #define EFI_ISA_ACPI_MEMORY_CACHEABLE               0x08        ///< ISA MMIO region supports being cached.
 | |
| #define EFI_ISA_ACPI_MEMORY_SHADOWABLE              0x10        ///< ISA MMIO region may be shadowed.
 | |
| #define EFI_ISA_ACPI_MEMORY_EXPANSION_ROM           0x20        ///< ISA MMIO region is an expansion ROM.
 | |
| 
 | |
| ///
 | |
| /// ISA ACPI Protocol I/O resource attributes
 | |
| ///
 | |
| #define EFI_ISA_ACPI_IO_DECODE_10_BITS  0x01                     ///< ISA controllers uses a 10-bit address decoder for I/O cycles.
 | |
| #define EFI_ISA_ACPI_IO_DECODE_16_BITS  0x02                     ///< ISA controllers uses a 16-bit address decoder for I/O cycles.
 | |
| 
 | |
| ///
 | |
| /// EFI ISA ACPI resource type
 | |
| ///
 | |
| typedef enum {
 | |
|   EfiIsaAcpiResourceEndOfList,    ///< Marks the end if a resource list.
 | |
|   EfiIsaAcpiResourceIo,           ///< ISA I/O port resource range.
 | |
|   EfiIsaAcpiResourceMemory,       ///< ISA MMIO resource range.
 | |
|   EfiIsaAcpiResourceDma,          ///< ISA DMA resource.
 | |
|   EfiIsaAcpiResourceInterrupt     ///< ISA interrupt resource.
 | |
| } EFI_ISA_ACPI_RESOURCE_TYPE;
 | |
| 
 | |
| ///
 | |
| /// EFI ISA ACPI generic resource structure
 | |
| ///
 | |
| typedef struct {
 | |
|   EFI_ISA_ACPI_RESOURCE_TYPE    Type;       ///< The type of resource (I/O, MMIO, DMA, Interrupt).
 | |
|   UINT32                        Attribute;  ///< Bit mask of attributes associated with this resource.  See EFI_ISA_ACPI_xxx macros for valid combinations.
 | |
|   UINT32                        StartRange; ///< The start of the resource range.
 | |
|   UINT32                        EndRange;   ///< The end of the resource range.
 | |
| } EFI_ISA_ACPI_RESOURCE;
 | |
| 
 | |
| ///
 | |
| /// EFI ISA ACPI resource device identifier
 | |
| ///
 | |
| typedef struct {
 | |
|   UINT32    HID; ///< The ACPI Hardware Identifier value associated with an ISA controller.  Matchs ACPI DSDT contents.
 | |
|   UINT32    UID; ///< The ACPI Unique Identifier value associated with an ISA controller.  Matches ACPI DSDT contents.
 | |
| } EFI_ISA_ACPI_DEVICE_ID;
 | |
| 
 | |
| ///
 | |
| /// EFI ISA ACPI resource list
 | |
| ///
 | |
| typedef struct {
 | |
|   EFI_ISA_ACPI_DEVICE_ID    Device;        ///< The ACPI HID/UID associated with an ISA controller.
 | |
|   EFI_ISA_ACPI_RESOURCE     *ResourceItem; ///< A pointer to the list of resources associated with an ISA controller.
 | |
| } EFI_ISA_ACPI_RESOURCE_LIST;
 | |
| 
 | |
| /**
 | |
|   Enumerates the ISA controllers on an ISA bus.
 | |
| 
 | |
|   This service allows all the ISA controllers on an ISA bus to be enumerated.  If
 | |
|   Device is a pointer to a NULL value, then the first ISA controller on the ISA
 | |
|   bus is returned in Device and EFI_SUCCESS is returned.  If Device is a pointer
 | |
|   to a value that was returned on a prior call to DeviceEnumerate(), then the next
 | |
|   ISA controller on the ISA bus is returned in Device and EFI_SUCCESS is returned.
 | |
|   If Device is a pointer to the last ISA controller on the ISA bus, then
 | |
|   EFI_NOT_FOUND is returned.
 | |
| 
 | |
|   @param[in]  This     The pointer to the EFI_ISA_ACPI_PROTOCOL instance.
 | |
|   @param[out] Device   The pointer to an ISA controller named by ACPI HID/UID.
 | |
| 
 | |
|   @retval EFI_SUCCESS    The next ISA controller on the ISA bus was returned.
 | |
|   @retval EFI_NOT_FOUND  No device found.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_ISA_ACPI_DEVICE_ENUMERATE)(
 | |
|   IN  EFI_ISA_ACPI_PROTOCOL   *This,
 | |
|   OUT EFI_ISA_ACPI_DEVICE_ID  **Device
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Sets the power state of an ISA controller.
 | |
| 
 | |
|   This services sets the power state of the ISA controller specified by Device to
 | |
|   the power state specified by OnOff.  TRUE denotes on, FALSE denotes off.
 | |
|   If the power state is successfully set on the ISA Controller, then
 | |
|   EFI_SUCCESS is returned.
 | |
| 
 | |
|   @param[in] This     The pointer to the EFI_ISA_ACPI_PROTOCOL instance.
 | |
|   @param[in] Device   The pointer to an ISA controller named by ACPI HID/UID.
 | |
|   @param[in] OnOff    TRUE denotes on, FALSE denotes off.
 | |
| 
 | |
|   @retval EFI_SUCCESS   Successfully set the power state of the ISA controller.
 | |
|   @retval Other         The ISA controller could not be placed in the requested power state.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_ISA_ACPI_SET_DEVICE_POWER)(
 | |
|   IN EFI_ISA_ACPI_PROTOCOL   *This,
 | |
|   IN EFI_ISA_ACPI_DEVICE_ID  *Device,
 | |
|   IN BOOLEAN                 OnOff
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Retrieves the current set of resources associated with an ISA controller.
 | |
| 
 | |
|   Retrieves the set of I/O, MMIO, DMA, and interrupt resources currently
 | |
|   assigned to the ISA controller specified by Device.  These resources
 | |
|   are returned in ResourceList.
 | |
| 
 | |
|   @param[in]  This          The pointer to the EFI_ISA_ACPI_PROTOCOL instance.
 | |
|   @param[in]  Device        The pointer to an ISA controller named by ACPI HID/UID.
 | |
|   @param[out] ResourceList  The pointer to the current resource list for Device.
 | |
| 
 | |
|   @retval EFI_SUCCESS    Successfully retrieved the current resource list.
 | |
|   @retval EFI_NOT_FOUND  The resource list could not be retrieved.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_ISA_ACPI_GET_CUR_RESOURCE)(
 | |
|   IN  EFI_ISA_ACPI_PROTOCOL       *This,
 | |
|   IN  EFI_ISA_ACPI_DEVICE_ID      *Device,
 | |
|   OUT EFI_ISA_ACPI_RESOURCE_LIST  **ResourceList
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Retrieves the set of possible resources that may be assigned to an ISA controller
 | |
|   with SetResource().
 | |
| 
 | |
|   Retrieves the possible sets of I/O, MMIO, DMA, and interrupt resources for the
 | |
|   ISA controller specified by Device.  The sets are returned in ResourceList.
 | |
| 
 | |
|   @param[in]  This           The pointer to the EFI_ISA_ACPI_PROTOCOL instance.
 | |
|   @param[in]  Device         The pointer to an ISA controller named by ACPI HID/UID.
 | |
|   @param[out] ResourceList   The pointer to the returned list of resource lists.
 | |
| 
 | |
|   @retval EFI_UNSUPPORTED  This service is not supported.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_ISA_ACPI_GET_POS_RESOURCE)(
 | |
|   IN EFI_ISA_ACPI_PROTOCOL        *This,
 | |
|   IN EFI_ISA_ACPI_DEVICE_ID       *Device,
 | |
|   OUT EFI_ISA_ACPI_RESOURCE_LIST  **ResourceList
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Assigns resources to an ISA controller.
 | |
| 
 | |
|   Assigns the I/O, MMIO, DMA, and interrupt resources specified by ResourceList
 | |
|   to the ISA controller specified by Device.  ResourceList must match a resource list returned by GetPosResource() for the same ISA controller.
 | |
| 
 | |
|   @param[in] This           The pointer to the EFI_ISA_ACPI_PROTOCOL instance.
 | |
|   @param[in] Device         The pointer to an ISA controller named by ACPI HID/UID.
 | |
|   @param[in] ResourceList   The pointer to a resources list that must be one of the
 | |
|                             resource lists returned by GetPosResource() for the
 | |
|                             ISA controller specified by Device.
 | |
| 
 | |
|   @retval EFI_SUCCESS  Successfully set resources on the ISA controller.
 | |
|   @retval Other        The resources could not be set for the ISA controller.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_ISA_ACPI_SET_RESOURCE)(
 | |
|   IN EFI_ISA_ACPI_PROTOCOL       *This,
 | |
|   IN EFI_ISA_ACPI_DEVICE_ID      *Device,
 | |
|   IN EFI_ISA_ACPI_RESOURCE_LIST  *ResourceList
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Enables or disables an ISA controller.
 | |
| 
 | |
|   @param[in] This     The pointer to the EFI_ISA_ACPI_PROTOCOL instance.
 | |
|   @param[in] Device   The pointer to the ISA controller to enable/disable.
 | |
|   @param[in] Enable   TRUE to enable the ISA controller.  FALSE to disable the
 | |
|                       ISA controller.
 | |
| 
 | |
|   @retval EFI_SUCCESS   Successfully enabled/disabled the ISA controller.
 | |
|   @retval Other         The ISA controller could not be placed in the requested state.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_ISA_ACPI_ENABLE_DEVICE)(
 | |
|   IN EFI_ISA_ACPI_PROTOCOL   *This,
 | |
|   IN EFI_ISA_ACPI_DEVICE_ID  *Device,
 | |
|   IN BOOLEAN                 Enable
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Initializes an ISA controller, so that it can be used.  This service must be called
 | |
|   before SetResource(), EnableDevice(), or SetPower() will behave as expected.
 | |
| 
 | |
|   @param[in] This     The pointer to the EFI_ISA_ACPI_PROTOCOL instance.
 | |
|   @param[in] Device   The pointer to an ISA controller named by ACPI HID/UID.
 | |
| 
 | |
|   @retval EFI_SUCCESS   Successfully initialized an ISA controller.
 | |
|   @retval Other         The ISA controller could not be initialized.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_ISA_ACPI_INIT_DEVICE)(
 | |
|   IN EFI_ISA_ACPI_PROTOCOL   *This,
 | |
|   IN EFI_ISA_ACPI_DEVICE_ID  *Device
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Initializes all the HW states required for the ISA controllers on the ISA bus
 | |
|   to be enumerated and managed by the rest of the services in this prorotol.
 | |
|   This service must be called before any of the other services in this
 | |
|   protocol will function as expected.
 | |
| 
 | |
|   @param[in] This  The pointer to the EFI_ISA_ACPI_PROTOCOL instance.
 | |
| 
 | |
|   @retval EFI_SUCCESS   Successfully initialized all required hardware states.
 | |
|   @retval Other         The ISA interface could not be initialized.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_ISA_ACPI_INTERFACE_INIT)(
 | |
|   IN EFI_ISA_ACPI_PROTOCOL  *This
 | |
|   );
 | |
| 
 | |
| ///
 | |
| /// The EFI_ISA_ACPI_PROTOCOL provides the services to enumerate and manage
 | |
| /// ISA controllers on an ISA bus.  These services include the ability to initialize,
 | |
| /// enable, disable, and manage the power state of ISA controllers.  It also
 | |
| /// includes services to query current resources, query possible resources,
 | |
| /// and assign resources to an ISA controller.
 | |
| ///
 | |
| struct _EFI_ISA_ACPI_PROTOCOL {
 | |
|   EFI_ISA_ACPI_DEVICE_ENUMERATE    DeviceEnumerate;
 | |
|   EFI_ISA_ACPI_SET_DEVICE_POWER    SetPower;
 | |
|   EFI_ISA_ACPI_GET_CUR_RESOURCE    GetCurResource;
 | |
|   EFI_ISA_ACPI_GET_POS_RESOURCE    GetPosResource;
 | |
|   EFI_ISA_ACPI_SET_RESOURCE        SetResource;
 | |
|   EFI_ISA_ACPI_ENABLE_DEVICE       EnableDevice;
 | |
|   EFI_ISA_ACPI_INIT_DEVICE         InitDevice;
 | |
|   EFI_ISA_ACPI_INTERFACE_INIT      InterfaceInit;
 | |
| };
 | |
| 
 | |
| extern EFI_GUID  gEfiIsaAcpiProtocolGuid;
 | |
| 
 | |
| #endif
 |