]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - MdePkg/Include/Protocol/SuperIoControl.h
MdePkg/BaseLib.h: Update IA32_CR4 structure for 5-level paging
[mirror_edk2.git] / MdePkg / Include / Protocol / SuperIoControl.h
... / ...
CommitLineData
1/** @file\r
2 The Super I/O Control Protocol is installed by the Super I/O driver. It provides\r
3 the low-level services for SIO devices that enable them to be used in the UEFI\r
4 driver model.\r
5\r
6 Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>\r
7 SPDX-License-Identifier: BSD-2-Clause-Patent\r
8\r
9 @par Revision Reference:\r
10 This protocol is from PI Version 1.2.1.\r
11\r
12**/\r
13\r
14#ifndef __EFI_SUPER_IO_CONTROL_PROTOCOL_H__\r
15#define __EFI_SUPER_IO_CONTROL_PROTOCOL_H__\r
16\r
17#define EFI_SIO_CONTROL_PROTOCOL_GUID \\r
18 { \\r
19 0xb91978df, 0x9fc1, 0x427d, { 0xbb, 0x5, 0x4c, 0x82, 0x84, 0x55, 0xca, 0x27 } \\r
20 }\r
21\r
22typedef struct _EFI_SIO_CONTROL_PROTOCOL EFI_SIO_CONTROL_PROTOCOL;\r
23typedef struct _EFI_SIO_CONTROL_PROTOCOL *PEFI_SIO_CONTROL_PROTOCOL;\r
24\r
25/**\r
26 Enable an ISA-style device.\r
27\r
28 This function enables a logical ISA device and, if necessary, configures it\r
29 to default settings, including memory, I/O, DMA and IRQ resources.\r
30\r
31 @param This A pointer to this instance of the EFI_SIO_CONTROL_PROTOCOL.\r
32\r
33 @retval EFI_SUCCESS The device is enabled successfully.\r
34 @retval EFI_OUT_OF_RESOURCES The device could not be enabled because there\r
35 were insufficient resources either for the device\r
36 itself or for the records needed to track the device.\r
37 @retval EFI_ALREADY_STARTED The device is already enabled.\r
38 @retval EFI_UNSUPPORTED The device cannot be enabled.\r
39**/\r
40typedef\r
41EFI_STATUS\r
42(EFIAPI *EFI_SIO_CONTROL_ENABLE)(\r
43 IN CONST EFI_SIO_CONTROL_PROTOCOL *This\r
44 );\r
45\r
46/**\r
47 Disable a logical ISA device.\r
48\r
49 This function disables a logical ISA device so that it no longer consumes\r
50 system resources, such as memory, I/O, DMA and IRQ resources. Enough information\r
51 must be available so that subsequent Enable() calls would properly reconfigure\r
52 the device.\r
53\r
54 @param This A pointer to this instance of the EFI_SIO_CONTROL_PROTOCOL.\r
55\r
56 @retval EFI_SUCCESS The device is disabled successfully.\r
57 @retval EFI_OUT_OF_RESOURCES The device could not be disabled because there\r
58 were insufficient resources either for the device\r
59 itself or for the records needed to track the device.\r
60 @retval EFI_ALREADY_STARTED The device is already disabled.\r
61 @retval EFI_UNSUPPORTED The device cannot be disabled.\r
62**/\r
63typedef\r
64EFI_STATUS\r
65(EFIAPI *EFI_SIO_CONTROL_DISABLE)(\r
66 IN CONST EFI_SIO_CONTROL_PROTOCOL *This\r
67 );\r
68\r
69struct _EFI_SIO_CONTROL_PROTOCOL {\r
70 ///\r
71 /// The version of this protocol.\r
72 ///\r
73 UINT32 Version;\r
74 ///\r
75 /// Enable a device.\r
76 ///\r
77 EFI_SIO_CONTROL_ENABLE EnableDevice;\r
78 ///\r
79 /// Disable a device.\r
80 ///\r
81 EFI_SIO_CONTROL_DISABLE DisableDevice;\r
82};\r
83\r
84extern EFI_GUID gEfiSioControlProtocolGuid;\r
85\r
86#endif // __EFI_SUPER_IO_CONTROL_PROTOCOL_H__\r