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