]> git.proxmox.com Git - mirror_edk2.git/blob - OvmfPkg/Csm/Include/Protocol/VgaMiniPort.h
OvmfPkg: Apply uncrustify changes
[mirror_edk2.git] / OvmfPkg / Csm / Include / Protocol / VgaMiniPort.h
1 /** @file
2 The VGA Mini Port Protocol used to set the text display mode of a VGA controller.
3
4 Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
5 SPDX-License-Identifier: BSD-2-Clause-Patent
6
7 **/
8
9 #ifndef __VGA_MINI_PORT_H_
10 #define __VGA_MINI_PORT_H_
11
12 ///
13 /// Global ID for the EFI_VGA_MINI_PORT_PROTOCOL.
14 ///
15 #define EFI_VGA_MINI_PORT_PROTOCOL_GUID \
16 { \
17 0xc7735a2f, 0x88f5, 0x4882, {0xae, 0x63, 0xfa, 0xac, 0x8c, 0x8b, 0x86, 0xb3 } \
18 }
19
20 ///
21 /// Forward declaration for the EFI_VGA_MINI_PORT_PROTOCOL.
22 ///
23 typedef struct _EFI_VGA_MINI_PORT_PROTOCOL EFI_VGA_MINI_PORT_PROTOCOL;
24
25 /**
26 Sets the text display mode of a VGA controller.
27
28 Sets the text display mode of the VGA controller to the mode specified by
29 ModeNumber. A ModeNumber of 0 is a request for an 80x25 text mode. A
30 ModeNumber of 1 is a request for an 80x50 text mode. If ModeNumber is greater
31 than MaxModeNumber, then EFI_UNSUPPORTED is returned. If the VGA controller
32 is not functioning properly, then EFI_DEVICE_ERROR is returned. If the VGA
33 controller is successfully set to the mode number specified by ModeNumber, then
34 EFI_SUCCESS is returned.
35
36 @param[in] This A pointer to the EFI_VGA_MINI_PORT_PROTOCOL instance.
37 @param[in] ModeNumber The requested mode number. 0 for 80x25. 1 for 80x5.
38
39 @retval EFI_SUCCESS The mode number was set.
40 @retval EFI_UNSUPPORTED The mode number specified by ModeNumber is not supported.
41 @retval EFI_DEVICE_ERROR The device is not functioning properly.
42
43 **/
44 typedef
45 EFI_STATUS
46 (EFIAPI *EFI_VGA_MINI_PORT_SET_MODE)(
47 IN EFI_VGA_MINI_PORT_PROTOCOL *This,
48 IN UINTN ModeNumber
49 );
50
51 struct _EFI_VGA_MINI_PORT_PROTOCOL {
52 EFI_VGA_MINI_PORT_SET_MODE SetMode;
53 ///
54 /// MMIO base address of the VGA text mode framebuffer. Typically set to 0xB8000.
55 ///
56 UINT64 VgaMemoryOffset;
57 ///
58 /// I/O Port address for the VGA CRTC address register. Typically set to 0x3D4.
59 ///
60 UINT64 CrtcAddressRegisterOffset;
61 ///
62 /// I/O Port address for the VGA CRTC data register. Typically set to 0x3D5.
63 ///
64 UINT64 CrtcDataRegisterOffset;
65 ///
66 /// PCI Controller MMIO BAR index of the VGA text mode frame buffer. Typically
67 /// set to EFI_PCI_IO_PASS_THROUGH_BAR
68 ///
69 UINT8 VgaMemoryBar;
70 ///
71 /// PCI Controller I/O BAR index of the VGA CRTC address register. Typically
72 /// set to EFI_PCI_IO_PASS_THROUGH_BAR
73 ///
74 UINT8 CrtcAddressRegisterBar;
75 ///
76 /// PCI Controller I/O BAR index of the VGA CRTC data register. Typically set
77 /// to EFI_PCI_IO_PASS_THROUGH_BAR
78 ///
79 UINT8 CrtcDataRegisterBar;
80 ///
81 /// The maximum number of text modes that this VGA controller supports.
82 ///
83 UINT8 MaxMode;
84 };
85
86 extern EFI_GUID gEfiVgaMiniPortProtocolGuid;
87
88 #endif