| /** @file |
| The Super I/O Control Protocol is installed by the Super I/O driver. It provides |
| the low-level services for SIO devices that enable them to be used in the UEFI |
| driver model. |
| |
| Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR> |
| SPDX-License-Identifier: BSD-2-Clause-Patent |
| |
| @par Revision Reference: |
| This protocol is from PI Version 1.2.1. |
| |
| **/ |
| |
| #ifndef __EFI_SUPER_IO_CONTROL_PROTOCOL_H__ |
| #define __EFI_SUPER_IO_CONTROL_PROTOCOL_H__ |
| |
| #define EFI_SIO_CONTROL_PROTOCOL_GUID \ |
| { \ |
| 0xb91978df, 0x9fc1, 0x427d, { 0xbb, 0x5, 0x4c, 0x82, 0x84, 0x55, 0xca, 0x27 } \ |
| } |
| |
| typedef struct _EFI_SIO_CONTROL_PROTOCOL EFI_SIO_CONTROL_PROTOCOL; |
| typedef struct _EFI_SIO_CONTROL_PROTOCOL *PEFI_SIO_CONTROL_PROTOCOL; |
| |
| /** |
| Enable an ISA-style device. |
| |
| This function enables a logical ISA device and, if necessary, configures it |
| to default settings, including memory, I/O, DMA and IRQ resources. |
| |
| @param This A pointer to this instance of the EFI_SIO_CONTROL_PROTOCOL. |
| |
| @retval EFI_SUCCESS The device is enabled successfully. |
| @retval EFI_OUT_OF_RESOURCES The device could not be enabled because there |
| were insufficient resources either for the device |
| itself or for the records needed to track the device. |
| @retval EFI_ALREADY_STARTED The device is already enabled. |
| @retval EFI_UNSUPPORTED The device cannot be enabled. |
| **/ |
| typedef |
| EFI_STATUS |
| (EFIAPI *EFI_SIO_CONTROL_ENABLE)( |
| IN CONST EFI_SIO_CONTROL_PROTOCOL *This |
| ); |
| |
| /** |
| Disable a logical ISA device. |
| |
| This function disables a logical ISA device so that it no longer consumes |
| system resources, such as memory, I/O, DMA and IRQ resources. Enough information |
| must be available so that subsequent Enable() calls would properly reconfigure |
| the device. |
| |
| @param This A pointer to this instance of the EFI_SIO_CONTROL_PROTOCOL. |
| |
| @retval EFI_SUCCESS The device is disabled successfully. |
| @retval EFI_OUT_OF_RESOURCES The device could not be disabled because there |
| were insufficient resources either for the device |
| itself or for the records needed to track the device. |
| @retval EFI_ALREADY_STARTED The device is already disabled. |
| @retval EFI_UNSUPPORTED The device cannot be disabled. |
| **/ |
| typedef |
| EFI_STATUS |
| (EFIAPI *EFI_SIO_CONTROL_DISABLE)( |
| IN CONST EFI_SIO_CONTROL_PROTOCOL *This |
| ); |
| |
| struct _EFI_SIO_CONTROL_PROTOCOL { |
| /// |
| /// The version of this protocol. |
| /// |
| UINT32 Version; |
| /// |
| /// Enable a device. |
| /// |
| EFI_SIO_CONTROL_ENABLE EnableDevice; |
| /// |
| /// Disable a device. |
| /// |
| EFI_SIO_CONTROL_DISABLE DisableDevice; |
| }; |
| |
| extern EFI_GUID gEfiSioControlProtocolGuid; |
| |
| #endif // __EFI_SUPER_IO_CONTROL_PROTOCOL_H__ |