]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Protocol/SuperIoControl.h
MdePkg: Apply uncrustify changes
[mirror_edk2.git] / MdePkg / Include / Protocol / SuperIoControl.h
CommitLineData
42c9d9f8
RN
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
9095d37b 6 Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>\r
9344f092 7 SPDX-License-Identifier: BSD-2-Clause-Patent\r
42c9d9f8
RN
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
2f88bd3a
MK
22typedef struct _EFI_SIO_CONTROL_PROTOCOL EFI_SIO_CONTROL_PROTOCOL;\r
23typedef struct _EFI_SIO_CONTROL_PROTOCOL *PEFI_SIO_CONTROL_PROTOCOL;\r
42c9d9f8
RN
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
9095d37b 35 were insufficient resources either for the device\r
42c9d9f8
RN
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
9095d37b 58 were insufficient resources either for the device\r
42c9d9f8
RN
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
2f88bd3a 73 UINT32 Version;\r
42c9d9f8
RN
74 ///\r
75 /// Enable a device.\r
76 ///\r
2f88bd3a 77 EFI_SIO_CONTROL_ENABLE EnableDevice;\r
42c9d9f8
RN
78 ///\r
79 /// Disable a device.\r
80 ///\r
2f88bd3a 81 EFI_SIO_CONTROL_DISABLE DisableDevice;\r
42c9d9f8
RN
82};\r
83\r
2f88bd3a 84extern EFI_GUID gEfiSioControlProtocolGuid;\r
42c9d9f8
RN
85\r
86#endif // __EFI_SUPER_IO_CONTROL_PROTOCOL_H__\r