| /** @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__ |