Fix various spelling mistakes in GraphicsConsoleDxe, ConsPlitter, and SimpleTextOut header Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Hao A Wu <hao.a.wu@intel.com> Cc: Zhichao Gao <zhichao.gao@intel.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Ard Biesheuvel <Ard.Biesheuvel@arm.com> Cc: Pete Batard <pete@akeo.ie> Signed-off-by: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com> Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
		
			
				
	
	
		
			595 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			595 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  Header file for GraphicsConsole driver.
 | 
						|
 | 
						|
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
 | 
						|
SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#ifndef _GRAPHICS_CONSOLE_H_
 | 
						|
#define _GRAPHICS_CONSOLE_H_
 | 
						|
 | 
						|
#include <Uefi.h>
 | 
						|
#include <Protocol/SimpleTextOut.h>
 | 
						|
#include <Protocol/GraphicsOutput.h>
 | 
						|
#include <Protocol/UgaDraw.h>
 | 
						|
#include <Protocol/DevicePath.h>
 | 
						|
#include <Library/DebugLib.h>
 | 
						|
#include <Library/UefiDriverEntryPoint.h>
 | 
						|
#include <Library/UefiLib.h>
 | 
						|
#include <Library/BaseMemoryLib.h>
 | 
						|
#include <Library/MemoryAllocationLib.h>
 | 
						|
#include <Library/UefiBootServicesTableLib.h>
 | 
						|
#include <Library/HiiLib.h>
 | 
						|
#include <Library/BaseLib.h>
 | 
						|
#include <Library/PcdLib.h>
 | 
						|
 | 
						|
#include <Guid/MdeModuleHii.h>
 | 
						|
 | 
						|
#include <Protocol/HiiFont.h>
 | 
						|
#include <Protocol/HiiDatabase.h>
 | 
						|
 | 
						|
 | 
						|
extern EFI_COMPONENT_NAME_PROTOCOL   gGraphicsConsoleComponentName;
 | 
						|
extern EFI_COMPONENT_NAME2_PROTOCOL  gGraphicsConsoleComponentName2;
 | 
						|
extern EFI_DRIVER_BINDING_PROTOCOL   gGraphicsConsoleDriverBinding;
 | 
						|
extern EFI_NARROW_GLYPH              gUsStdNarrowGlyphData[];
 | 
						|
 | 
						|
extern UINT32 mNarrowFontSize;
 | 
						|
 | 
						|
typedef union {
 | 
						|
  EFI_NARROW_GLYPH  NarrowGlyph;
 | 
						|
  EFI_WIDE_GLYPH    WideGlyph;
 | 
						|
} GLYPH_UNION;
 | 
						|
 | 
						|
//
 | 
						|
// Device Structure
 | 
						|
//
 | 
						|
#define GRAPHICS_CONSOLE_DEV_SIGNATURE  SIGNATURE_32 ('g', 's', 't', 'o')
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  UINTN   Columns;
 | 
						|
  UINTN   Rows;
 | 
						|
  INTN    DeltaX;
 | 
						|
  INTN    DeltaY;
 | 
						|
  UINT32  GopWidth;
 | 
						|
  UINT32  GopHeight;
 | 
						|
  UINT32  GopModeNumber;
 | 
						|
} GRAPHICS_CONSOLE_MODE_DATA;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  UINTN                            Signature;
 | 
						|
  EFI_GRAPHICS_OUTPUT_PROTOCOL     *GraphicsOutput;
 | 
						|
  EFI_UGA_DRAW_PROTOCOL            *UgaDraw;
 | 
						|
  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  SimpleTextOutput;
 | 
						|
  EFI_SIMPLE_TEXT_OUTPUT_MODE      SimpleTextOutputMode;
 | 
						|
  GRAPHICS_CONSOLE_MODE_DATA       *ModeData;
 | 
						|
  EFI_GRAPHICS_OUTPUT_BLT_PIXEL    *LineBuffer;
 | 
						|
} GRAPHICS_CONSOLE_DEV;
 | 
						|
 | 
						|
#define GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS(a) \
 | 
						|
  CR (a, GRAPHICS_CONSOLE_DEV, SimpleTextOutput, GRAPHICS_CONSOLE_DEV_SIGNATURE)
 | 
						|
 | 
						|
 | 
						|
//
 | 
						|
// EFI Component Name Functions
 | 
						|
//
 | 
						|
/**
 | 
						|
  Retrieves a Unicode string that is the user readable name of the driver.
 | 
						|
 | 
						|
  This function retrieves the user readable name of a driver in the form of a
 | 
						|
  Unicode string. If the driver specified by This has a user readable name in
 | 
						|
  the language specified by Language, then a pointer to the driver name is
 | 
						|
  returned in DriverName, and EFI_SUCCESS is returned. If the driver specified
 | 
						|
  by This does not support the language specified by Language,
 | 
						|
  then EFI_UNSUPPORTED is returned.
 | 
						|
 | 
						|
  @param  This[in]              A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or
 | 
						|
                                EFI_COMPONENT_NAME_PROTOCOL instance.
 | 
						|
 | 
						|
  @param  Language[in]          A pointer to a Null-terminated ASCII string
 | 
						|
                                array indicating the language. This is the
 | 
						|
                                language of the driver name that the caller is
 | 
						|
                                requesting, and it must match one of the
 | 
						|
                                languages specified in SupportedLanguages. The
 | 
						|
                                number of languages supported by a driver is up
 | 
						|
                                to the driver writer. Language is specified
 | 
						|
                                in RFC 4646 or ISO 639-2 language code format.
 | 
						|
 | 
						|
  @param  DriverName[out]       A pointer to the Unicode string to return.
 | 
						|
                                This Unicode string is the name of the
 | 
						|
                                driver specified by This in the language
 | 
						|
                                specified by Language.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS           The Unicode string for the Driver specified by
 | 
						|
                                This and the language specified by Language was
 | 
						|
                                returned in DriverName.
 | 
						|
 | 
						|
  @retval EFI_INVALID_PARAMETER Language is NULL.
 | 
						|
 | 
						|
  @retval EFI_INVALID_PARAMETER DriverName is NULL.
 | 
						|
 | 
						|
  @retval EFI_UNSUPPORTED       The driver specified by This does not support
 | 
						|
                                the language specified by Language.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
GraphicsConsoleComponentNameGetDriverName (
 | 
						|
  IN  EFI_COMPONENT_NAME_PROTOCOL  *This,
 | 
						|
  IN  CHAR8                        *Language,
 | 
						|
  OUT CHAR16                       **DriverName
 | 
						|
  );
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
  Retrieves a Unicode string that is the user readable name of the controller
 | 
						|
  that is being managed by a driver.
 | 
						|
 | 
						|
  This function retrieves the user readable name of the controller specified by
 | 
						|
  ControllerHandle and ChildHandle in the form of a Unicode string. If the
 | 
						|
  driver specified by This has a user readable name in the language specified by
 | 
						|
  Language, then a pointer to the controller name is returned in ControllerName,
 | 
						|
  and EFI_SUCCESS is returned.  If the driver specified by This is not currently
 | 
						|
  managing the controller specified by ControllerHandle and ChildHandle,
 | 
						|
  then EFI_UNSUPPORTED is returned.  If the driver specified by This does not
 | 
						|
  support the language specified by Language, then EFI_UNSUPPORTED is returned.
 | 
						|
 | 
						|
  @param  This[in]              A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or
 | 
						|
                                EFI_COMPONENT_NAME_PROTOCOL instance.
 | 
						|
 | 
						|
  @param  ControllerHandle[in]  The handle of a controller that the driver
 | 
						|
                                specified by This is managing.  This handle
 | 
						|
                                specifies the controller whose name is to be
 | 
						|
                                returned.
 | 
						|
 | 
						|
  @param  ChildHandle[in]       The handle of the child controller to retrieve
 | 
						|
                                the name of.  This is an optional parameter that
 | 
						|
                                may be NULL.  It will be NULL for device
 | 
						|
                                drivers.  It will also be NULL for a bus drivers
 | 
						|
                                that wish to retrieve the name of the bus
 | 
						|
                                controller.  It will not be NULL for a bus
 | 
						|
                                driver that wishes to retrieve the name of a
 | 
						|
                                child controller.
 | 
						|
 | 
						|
  @param  Language[in]          A pointer to a Null-terminated ASCII string
 | 
						|
                                array indicating the language.  This is the
 | 
						|
                                language of the driver name that the caller is
 | 
						|
                                requesting, and it must match one of the
 | 
						|
                                languages specified in SupportedLanguages. The
 | 
						|
                                number of languages supported by a driver is up
 | 
						|
                                to the driver writer. Language is specified in
 | 
						|
                                RFC 4646 or ISO 639-2 language code format.
 | 
						|
 | 
						|
  @param  ControllerName[out]   A pointer to the Unicode string to return.
 | 
						|
                                This Unicode string is the name of the
 | 
						|
                                controller specified by ControllerHandle and
 | 
						|
                                ChildHandle in the language specified by
 | 
						|
                                Language from the point of view of the driver
 | 
						|
                                specified by This.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS           The Unicode string for the user readable name in
 | 
						|
                                the language specified by Language for the
 | 
						|
                                driver specified by This was returned in
 | 
						|
                                DriverName.
 | 
						|
 | 
						|
  @retval EFI_INVALID_PARAMETER ControllerHandle is NULL.
 | 
						|
 | 
						|
  @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid
 | 
						|
                                EFI_HANDLE.
 | 
						|
 | 
						|
  @retval EFI_INVALID_PARAMETER Language is NULL.
 | 
						|
 | 
						|
  @retval EFI_INVALID_PARAMETER ControllerName is NULL.
 | 
						|
 | 
						|
  @retval EFI_UNSUPPORTED       The driver specified by This is not currently
 | 
						|
                                managing the controller specified by
 | 
						|
                                ControllerHandle and ChildHandle.
 | 
						|
 | 
						|
  @retval EFI_UNSUPPORTED       The driver specified by This does not support
 | 
						|
                                the language specified by Language.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
GraphicsConsoleComponentNameGetControllerName (
 | 
						|
  IN  EFI_COMPONENT_NAME_PROTOCOL                     *This,
 | 
						|
  IN  EFI_HANDLE                                      ControllerHandle,
 | 
						|
  IN  EFI_HANDLE                                      ChildHandle        OPTIONAL,
 | 
						|
  IN  CHAR8                                           *Language,
 | 
						|
  OUT CHAR16                                          **ControllerName
 | 
						|
  );
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
  Reset the text output device hardware and optionally run diagnostics.
 | 
						|
 | 
						|
  Implements SIMPLE_TEXT_OUTPUT.Reset().
 | 
						|
  If ExtendedVerification is TRUE, then perform dependent Graphics Console
 | 
						|
  device reset, and set display mode to mode 0.
 | 
						|
  If ExtendedVerification is FALSE, only set display mode to mode 0.
 | 
						|
 | 
						|
  @param  This                  Protocol instance pointer.
 | 
						|
  @param  ExtendedVerification  Indicates that the driver may perform a more
 | 
						|
                                exhaustive verification operation of the device
 | 
						|
                                during reset.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS          The text output device was reset.
 | 
						|
  @retval EFI_DEVICE_ERROR     The text output device is not functioning correctly and
 | 
						|
                               could not be reset.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
GraphicsConsoleConOutReset (
 | 
						|
  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL    *This,
 | 
						|
  IN  BOOLEAN                            ExtendedVerification
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Write a Unicode string to the output device.
 | 
						|
 | 
						|
  Implements SIMPLE_TEXT_OUTPUT.OutputString().
 | 
						|
  The Unicode string will be converted to Glyphs and will be
 | 
						|
  sent to the Graphics Console.
 | 
						|
 | 
						|
  @param  This                    Protocol instance pointer.
 | 
						|
  @param  WString                 The NULL-terminated Unicode string to be displayed
 | 
						|
                                  on the output device(s). All output devices must
 | 
						|
                                  also support the Unicode drawing defined in this file.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS             The string was output to the device.
 | 
						|
  @retval EFI_DEVICE_ERROR        The device reported an error while attempting to output
 | 
						|
                                  the text.
 | 
						|
  @retval EFI_UNSUPPORTED         The output device's mode is not currently in a
 | 
						|
                                  defined text mode.
 | 
						|
  @retval EFI_WARN_UNKNOWN_GLYPH  This warning code indicates that some of the
 | 
						|
                                  characters in the Unicode string could not be
 | 
						|
                                  rendered and were skipped.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
GraphicsConsoleConOutOutputString (
 | 
						|
  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *This,
 | 
						|
  IN  CHAR16                           *WString
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Verifies that all characters in a Unicode string can be output to the
 | 
						|
  target device.
 | 
						|
 | 
						|
  Implements SIMPLE_TEXT_OUTPUT.TestString().
 | 
						|
  If one of the characters in the *Wstring is neither valid valid Unicode
 | 
						|
  drawing characters, not ASCII code, then this function will return
 | 
						|
  EFI_UNSUPPORTED
 | 
						|
 | 
						|
  @param  This    Protocol instance pointer.
 | 
						|
  @param  WString The NULL-terminated Unicode string to be examined for the output
 | 
						|
                  device(s).
 | 
						|
 | 
						|
  @retval EFI_SUCCESS      The device(s) are capable of rendering the output string.
 | 
						|
  @retval EFI_UNSUPPORTED  Some of the characters in the Unicode string cannot be
 | 
						|
                           rendered by one or more of the output devices mapped
 | 
						|
                           by the EFI handle.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
GraphicsConsoleConOutTestString (
 | 
						|
  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *This,
 | 
						|
  IN  CHAR16                           *WString
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Returns information for an available text mode that the output device(s)
 | 
						|
  supports
 | 
						|
 | 
						|
  Implements SIMPLE_TEXT_OUTPUT.QueryMode().
 | 
						|
  It returns information for an available text mode that the Graphics Console supports.
 | 
						|
  In this driver,we only support text mode 80x25, which is defined as mode 0.
 | 
						|
 | 
						|
  @param  This                  Protocol instance pointer.
 | 
						|
  @param  ModeNumber            The mode number to return information on.
 | 
						|
  @param  Columns               The returned columns of the requested mode.
 | 
						|
  @param  Rows                  The returned rows of the requested mode.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS           The requested mode information is returned.
 | 
						|
  @retval EFI_UNSUPPORTED       The mode number is not valid.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
GraphicsConsoleConOutQueryMode (
 | 
						|
  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *This,
 | 
						|
  IN  UINTN                            ModeNumber,
 | 
						|
  OUT UINTN                            *Columns,
 | 
						|
  OUT UINTN                            *Rows
 | 
						|
  );
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
  Sets the output device(s) to a specified mode.
 | 
						|
 | 
						|
  Implements SIMPLE_TEXT_OUTPUT.SetMode().
 | 
						|
  Set the Graphics Console to a specified mode. In this driver, we only support mode 0.
 | 
						|
 | 
						|
  @param  This                  Protocol instance pointer.
 | 
						|
  @param  ModeNumber            The text mode to set.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS           The requested text mode is set.
 | 
						|
  @retval EFI_DEVICE_ERROR      The requested text mode cannot be set because of
 | 
						|
                                Graphics Console device error.
 | 
						|
  @retval EFI_UNSUPPORTED       The text mode number is not valid.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
GraphicsConsoleConOutSetMode (
 | 
						|
  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *This,
 | 
						|
  IN  UINTN                            ModeNumber
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Sets the background and foreground colors for the OutputString () and
 | 
						|
  ClearScreen () functions.
 | 
						|
 | 
						|
  Implements SIMPLE_TEXT_OUTPUT.SetAttribute().
 | 
						|
 | 
						|
  @param  This                  Protocol instance pointer.
 | 
						|
  @param  Attribute             The attribute to set. Bits 0..3 are the foreground
 | 
						|
                                color, and bits 4..6 are the background color.
 | 
						|
                                All other bits are undefined and must be zero.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS           The requested attribute is set.
 | 
						|
  @retval EFI_DEVICE_ERROR      The requested attribute cannot be set due to Graphics Console port error.
 | 
						|
  @retval EFI_UNSUPPORTED       The attribute requested is not defined.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
GraphicsConsoleConOutSetAttribute (
 | 
						|
  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *This,
 | 
						|
  IN  UINTN                            Attribute
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Clears the output device(s) display to the currently selected background
 | 
						|
  color.
 | 
						|
 | 
						|
  Implements SIMPLE_TEXT_OUTPUT.ClearScreen().
 | 
						|
 | 
						|
  @param  This                  Protocol instance pointer.
 | 
						|
 | 
						|
  @retval  EFI_SUCCESS      The operation completed successfully.
 | 
						|
  @retval  EFI_DEVICE_ERROR The device had an error and could not complete the request.
 | 
						|
  @retval  EFI_UNSUPPORTED  The output device is not in a valid text mode.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
GraphicsConsoleConOutClearScreen (
 | 
						|
  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *This
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Sets the current coordinates of the cursor position.
 | 
						|
 | 
						|
  Implements SIMPLE_TEXT_OUTPUT.SetCursorPosition().
 | 
						|
 | 
						|
  @param  This        Protocol instance pointer.
 | 
						|
  @param  Column      The position to set the cursor to. Must be greater than or
 | 
						|
                      equal to zero and less than the number of columns and rows
 | 
						|
                      by QueryMode ().
 | 
						|
  @param  Row         The position to set the cursor to. Must be greater than or
 | 
						|
                      equal to zero and less than the number of columns and rows
 | 
						|
                      by QueryMode ().
 | 
						|
 | 
						|
  @retval EFI_SUCCESS      The operation completed successfully.
 | 
						|
  @retval EFI_DEVICE_ERROR The device had an error and could not complete the request.
 | 
						|
  @retval EFI_UNSUPPORTED  The output device is not in a valid text mode, or the
 | 
						|
                           cursor position is invalid for the current mode.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
GraphicsConsoleConOutSetCursorPosition (
 | 
						|
  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *This,
 | 
						|
  IN  UINTN                            Column,
 | 
						|
  IN  UINTN                            Row
 | 
						|
  );
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
  Makes the cursor visible or invisible.
 | 
						|
 | 
						|
  Implements SIMPLE_TEXT_OUTPUT.EnableCursor().
 | 
						|
 | 
						|
  @param  This                  Protocol instance pointer.
 | 
						|
  @param  Visible               If TRUE, the cursor is set to be visible, If FALSE,
 | 
						|
                                the cursor is set to be invisible.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS           The operation completed successfully.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
GraphicsConsoleConOutEnableCursor (
 | 
						|
  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *This,
 | 
						|
  IN  BOOLEAN                          Visible
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Test to see if Graphics Console could be supported on the Controller.
 | 
						|
 | 
						|
  Graphics Console could be supported if Graphics Output Protocol or UGADraw
 | 
						|
  Protocol exists on the Controller. (UGA Draw Protocol could be skipped
 | 
						|
  if PcdUgaConsumeSupport is set to FALSE.)
 | 
						|
 | 
						|
  @param  This                Protocol instance pointer.
 | 
						|
  @param  Controller          Handle of device to test.
 | 
						|
  @param  RemainingDevicePath Optional parameter use to pick a specific child
 | 
						|
                              device to start.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS         This driver supports this device.
 | 
						|
  @retval other               This driver does not support this device.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
GraphicsConsoleControllerDriverSupported (
 | 
						|
  IN EFI_DRIVER_BINDING_PROTOCOL    *This,
 | 
						|
  IN EFI_HANDLE                     Controller,
 | 
						|
  IN EFI_DEVICE_PATH_PROTOCOL       *RemainingDevicePath
 | 
						|
  );
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
  Start this driver on Controller by opening Graphics Output protocol or
 | 
						|
  UGA Draw protocol, and installing Simple Text Out protocol on Controller.
 | 
						|
  (UGA Draw protocol could be skipped if PcdUgaConsumeSupport is set to FALSE.)
 | 
						|
 | 
						|
  @param  This                 Protocol instance pointer.
 | 
						|
  @param  Controller           Handle of device to bind driver to
 | 
						|
  @param  RemainingDevicePath  Optional parameter use to pick a specific child
 | 
						|
                               device to start.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS          This driver is added to Controller.
 | 
						|
  @retval other                This driver does not support this device.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
GraphicsConsoleControllerDriverStart (
 | 
						|
  IN EFI_DRIVER_BINDING_PROTOCOL    *This,
 | 
						|
  IN EFI_HANDLE                     Controller,
 | 
						|
  IN EFI_DEVICE_PATH_PROTOCOL       *RemainingDevicePath
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Stop this driver on Controller by removing Simple Text Out protocol
 | 
						|
  and closing the Graphics Output Protocol or UGA Draw protocol on Controller.
 | 
						|
  (UGA Draw protocol could be skipped if PcdUgaConsumeSupport is set to FALSE.)
 | 
						|
 | 
						|
 | 
						|
  @param  This              Protocol instance pointer.
 | 
						|
  @param  Controller        Handle of device to stop driver on
 | 
						|
  @param  NumberOfChildren  Number of Handles in ChildHandleBuffer. If number of
 | 
						|
                            children is zero stop the entire bus driver.
 | 
						|
  @param  ChildHandleBuffer List of Child Handles to Stop.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS       This driver is removed Controller.
 | 
						|
  @retval EFI_NOT_STARTED   Simple Text Out protocol could not be found the
 | 
						|
                            Controller.
 | 
						|
  @retval other             This driver was not removed from this device.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
GraphicsConsoleControllerDriverStop (
 | 
						|
  IN  EFI_DRIVER_BINDING_PROTOCOL    *This,
 | 
						|
  IN  EFI_HANDLE                     Controller,
 | 
						|
  IN  UINTN                          NumberOfChildren,
 | 
						|
  IN  EFI_HANDLE                     *ChildHandleBuffer
 | 
						|
  );
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
  Locate HII Database protocol and HII Font protocol.
 | 
						|
 | 
						|
  @retval  EFI_SUCCESS     HII Database protocol and HII Font protocol
 | 
						|
                           are located successfully.
 | 
						|
  @return  other           Failed to locate HII Database protocol or
 | 
						|
                           HII Font protocol.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EfiLocateHiiProtocol (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
  Gets Graphics Console device's foreground color and background color.
 | 
						|
 | 
						|
  @param  This                  Protocol instance pointer.
 | 
						|
  @param  Foreground            Returned text foreground color.
 | 
						|
  @param  Background            Returned text background color.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS           It returned always.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
GetTextColors (
 | 
						|
  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *This,
 | 
						|
  OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL    *Foreground,
 | 
						|
  OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL    *Background
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Draw Unicode string on the Graphics Console device's screen.
 | 
						|
 | 
						|
  @param  This                  Protocol instance pointer.
 | 
						|
  @param  UnicodeWeight         One Unicode string to be displayed.
 | 
						|
  @param  Count                 The count of Unicode string.
 | 
						|
 | 
						|
  @retval EFI_OUT_OF_RESOURCES  If no memory resource to use.
 | 
						|
  @retval EFI_UNSUPPORTED       If no Graphics Output protocol and UGA Draw
 | 
						|
                                protocol exist.
 | 
						|
  @retval EFI_SUCCESS           Drawing Unicode string implemented successfully.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
DrawUnicodeWeightAtCursorN (
 | 
						|
  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *This,
 | 
						|
  IN  CHAR16                           *UnicodeWeight,
 | 
						|
  IN  UINTN                            Count
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Flush the cursor on the screen.
 | 
						|
 | 
						|
  If CursorVisible is FALSE, nothing to do and return directly.
 | 
						|
  If CursorVisible is TRUE,
 | 
						|
     i) If the cursor shows on screen, it will be erased.
 | 
						|
    ii) If the cursor does not show on screen, it will be shown.
 | 
						|
 | 
						|
  @param  This                  Protocol instance pointer.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS           The cursor is erased successfully.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
FlushCursor (
 | 
						|
  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *This
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Check if the current specific mode supported the user defined resolution
 | 
						|
  for the Graphics Console device based on Graphics Output Protocol.
 | 
						|
 | 
						|
  If yes, set the graphic device's current mode to this specific mode.
 | 
						|
 | 
						|
  @param  GraphicsOutput        Graphics Output Protocol instance pointer.
 | 
						|
  @param  HorizontalResolution  User defined horizontal resolution
 | 
						|
  @param  VerticalResolution    User defined vertical resolution.
 | 
						|
  @param  CurrentModeNumber     Current specific mode to be check.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS       The mode is supported.
 | 
						|
  @retval EFI_UNSUPPORTED   The specific mode is out of range of graphics
 | 
						|
                            device supported.
 | 
						|
  @retval other             The specific mode does not support user defined
 | 
						|
                            resolution or failed to set the current mode to the
 | 
						|
                            specific mode on graphics device.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
CheckModeSupported (
 | 
						|
  EFI_GRAPHICS_OUTPUT_PROTOCOL  *GraphicsOutput,
 | 
						|
  IN  UINT32  HorizontalResolution,
 | 
						|
  IN  UINT32  VerticalResolution,
 | 
						|
  OUT UINT32  *CurrentModeNumber
 | 
						|
  );
 | 
						|
 | 
						|
#endif
 |