3 Copyright (c) 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
23 #ifndef _GRAPHICS_CONSOLE_H
24 #define _GRAPHICS_CONSOLE_H
27 #include <Protocol/HiiFramework.h>
28 #include <Protocol/SimpleTextOut.h>
29 #include <Protocol/GraphicsOutput.h>
30 #include <Protocol/UgaDraw.h>
31 #include <Protocol/DevicePath.h>
32 #include <Library/DebugLib.h>
33 #include <Library/UefiDriverEntryPoint.h>
34 #include <Library/UefiLib.h>
35 #include <Library/HiiLibFramework.h>
36 #include <Library/BaseMemoryLib.h>
37 #include <Library/MemoryAllocationLib.h>
38 #include <Library/UefiBootServicesTableLib.h>
41 extern EFI_COMPONENT_NAME_PROTOCOL gGraphicsConsoleComponentName
;
44 // EFI Component Name Functions
48 GraphicsConsoleComponentNameGetDriverName (
49 IN EFI_COMPONENT_NAME_PROTOCOL
*This
,
51 OUT CHAR16
**DriverName
56 GraphicsConsoleComponentNameGetControllerName (
57 IN EFI_COMPONENT_NAME_PROTOCOL
*This
,
58 IN EFI_HANDLE ControllerHandle
,
59 IN EFI_HANDLE ChildHandle OPTIONAL
,
61 OUT CHAR16
**ControllerName
68 #define GLYPH_HEIGHT 19
71 EFI_NARROW_GLYPH NarrowGlyph
;
72 EFI_WIDE_GLYPH WideGlyph
;
75 extern EFI_NARROW_GLYPH UsStdNarrowGlyphData
[];
76 extern EFI_WIDE_GLYPH UsStdWideGlyphData
[];
81 #define GRAPHICS_CONSOLE_DEV_SIGNATURE EFI_SIGNATURE_32 ('g', 's', 't', 'o')
91 } GRAPHICS_CONSOLE_MODE_DATA
;
93 #define GRAPHICS_MAX_MODE 3
97 EFI_GRAPHICS_OUTPUT_PROTOCOL
*GraphicsOutput
;
98 EFI_UGA_DRAW_PROTOCOL
*UgaDraw
;
99 EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL SimpleTextOutput
;
100 EFI_SIMPLE_TEXT_OUTPUT_MODE SimpleTextOutputMode
;
101 GRAPHICS_CONSOLE_MODE_DATA ModeData
[GRAPHICS_MAX_MODE
];
102 EFI_GRAPHICS_OUTPUT_BLT_PIXEL
*LineBuffer
;
103 EFI_HII_HANDLE HiiHandle
;
104 } GRAPHICS_CONSOLE_DEV
;
106 #define GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS(a) \
107 CR (a, GRAPHICS_CONSOLE_DEV, SimpleTextOutput, GRAPHICS_CONSOLE_DEV_SIGNATURE)
112 extern EFI_DRIVER_BINDING_PROTOCOL gGraphicsConsoleDriverBinding
;
118 ReturnNarrowFontSize (
129 GraphicsConsoleConOutReset (
130 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
*This
,
131 IN BOOLEAN ExtendedVerification
136 GraphicsConsoleConOutOutputString (
137 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
*This
,
143 GraphicsConsoleConOutTestString (
144 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
*This
,
150 GraphicsConsoleConOutQueryMode (
151 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
*This
,
159 GraphicsConsoleConOutSetMode (
160 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
*This
,
166 GraphicsConsoleConOutSetAttribute (
167 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
*This
,
173 GraphicsConsoleConOutClearScreen (
174 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
*This
179 GraphicsConsoleConOutSetCursorPosition (
180 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
*This
,
187 GraphicsConsoleConOutEnableCursor (
188 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
*This
,
193 EfiLocateHiiProtocol (
199 GraphicsConsoleControllerDriverSupported (
200 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
201 IN EFI_HANDLE Controller
,
202 IN EFI_DEVICE_PATH_PROTOCOL
*RemainingDevicePath
207 GraphicsConsoleControllerDriverStart (
208 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
209 IN EFI_HANDLE Controller
,
210 IN EFI_DEVICE_PATH_PROTOCOL
*RemainingDevicePath
215 GraphicsConsoleControllerDriverStop (
216 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
217 IN EFI_HANDLE Controller
,
218 IN UINTN NumberOfChildren
,
219 IN EFI_HANDLE
*ChildHandleBuffer