-/** @file
- Provides interface to shell console logger.
-
- Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
- This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-**/
-
-#ifndef _CONSOLE_LOGGER_HEADER_
-#define _CONSOLE_LOGGER_HEADER_
-
-#include <Uefi.h>
-
-#include <Protocol/SimpleTextOut.h>
-#include <Protocol/EfiShell.h>
-#include <Protocol/EfiShellParameters.h>
-
-#include <Library/DebugLib.h>
-#include <Library/BaseLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/MemoryAllocationLib.h>
-#include <Library/UefiBootServicesTableLib.h>
-#include <Library/HiiLib.h>
-#include <Library/ShellLib.h>
-
-#define CONSOLE_LOGGER_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('c', 'o', 'P', 'D')
-
-typedef struct _CONSOLE_LOGGER_PRIVATE_DATA{
- UINTN Signature;
- EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL OurConOut; ///< the protocol we installed onto the system table
- EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *OldConOut; ///< old protocol to reinstall upon exiting
- EFI_HANDLE OldConHandle; ///< old protocol handle
- UINTN ScreenCount; ///< How many screens worth of data to save
- CHAR16 *Buffer; ///< Buffer to save data
- UINTN BufferSize; ///< size of buffer in bytes
-
- // start row is the top of the screen
- UINTN OriginalStartRow; ///< What the originally visible start row was
- UINTN CurrentStartRow; ///< what the currently visible start row is
-
- UINTN RowsPerScreen; ///< how many rows the screen can display
- UINTN ColsPerScreen; ///< how many columns the screen can display
-
- INT32 *Attributes; ///< Buffer for Attribute to be saved for each character
- UINTN AttribSize; ///< Size of Attributes in bytes
-
- EFI_SIMPLE_TEXT_OUTPUT_MODE HistoryMode; ///< mode of the history log
- BOOLEAN Enabled; ///< Set to FALSE when a break is requested.
- UINTN RowCounter; ///< Initial row of each print job.
-} CONSOLE_LOGGER_PRIVATE_DATA;
-
-#define CONSOLE_LOGGER_PRIVATE_DATA_FROM_THIS(a) CR (a, CONSOLE_LOGGER_PRIVATE_DATA, OurConOut, CONSOLE_LOGGER_PRIVATE_DATA_SIGNATURE)
-
-/**
- Install our intermediate ConOut into the system table to
- keep a log of all the info that is displayed to the user.
-
- @param[in] ScreensToSave Sets how many screen-worths of data to save.
- @param[out] ConsoleInfo The object to pass into later functions.
-
- @retval EFI_SUCCESS The operation was successful.
- @return other The operation failed.
-
- @sa ConsoleLoggerResetBuffers
- @sa InstallProtocolInterface
-**/
-EFI_STATUS
-EFIAPI
-ConsoleLoggerInstall(
- IN CONST UINTN ScreensToSave,
- OUT CONSOLE_LOGGER_PRIVATE_DATA **ConsoleInfo
- );
-
-/**
- Return the system to the state it was before InstallConsoleLogger
- was installed.
-
- @param[in, out] ConsoleInfo The object from the install function.
-
- @retval EFI_SUCCESS The operation was successful
- @return other The operation failed. This was from UninstallProtocolInterface.
-**/
-EFI_STATUS
-EFIAPI
-ConsoleLoggerUninstall(
- IN OUT CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo
- );
-
-/**
- Displays previously logged output back to the screen.
-
- This will scroll the screen forwards and backwards through the log of previous
- output. If Rows is 0 then the size of 1/2 the screen will be scrolled. If Rows
- is (UINTN)(-1) then the size of the screen will be scrolled.
-
- @param[in] Forward If TRUE then the log will be displayed forwards (scroll to newer).
- If FALSE then the log will be displayed backwards (scroll to older).
- @param[in] Rows Determines how many rows the log should scroll.
- @param[in] ConsoleInfo The pointer to the instance of the console logger information.
-**/
-EFI_STATUS
-EFIAPI
-ConsoleLoggerDisplayHistory(
- IN CONST BOOLEAN Forward,
- IN CONST UINTN Rows,
- IN CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo
- );
-
-/**
- Function to return to normal output whent he scrolling is complete.
- @param[in] ConsoleInfo The pointer to the instance of the console logger information.
-
- @retval EFI_SUCCESS The operation was successful.
- @return other The operation failed. See UpdateDisplayFromHistory.
-
- @sa UpdateDisplayFromHistory
-**/
-EFI_STATUS
-EFIAPI
-ConsoleLoggerStopHistory(
- IN CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo
- );
-
-/**
- Updates the hidden ConOut to be displaying the correct stuff.
- @param[in] ConsoleInfo The pointer to the instance of the console logger information.
-
- @retval EFI_SUCCESS The operation was successful.
- @return other The operation failed.
-**/
-EFI_STATUS
-EFIAPI
-UpdateDisplayFromHistory(
- IN CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo
- );
-
-/**
- Reset the text output device hardware and optionaly run diagnostics
-
- @param This Pointer to EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
- @param ExtendedVerification Indicates that a more extensive test may be performed
-
- @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
-ConsoleLoggerReset (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
- IN BOOLEAN ExtendedVerification
- );
-
-/**
- Write a Unicode string to the output device.
-
- @param[in] This Protocol instance pointer.
- @param[in] 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
-ConsoleLoggerOutputString(
- 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.
-
- @param[in] This Protocol instance pointer.
- @param[in] 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
-ConsoleLoggerTestString (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
- IN CHAR16 *WString
- );
-
-/**
- Returns information for an available text mode that the output device(s)
- supports.
-
- @param[in] This Protocol instance pointer.
- @param[in] ModeNumber The mode number to return information on.
- @param[out] Columns Upon return, the number of columns in the selected geometry
- @param[out] Rows Upon return, the number of rows in the selected geometry
-
- @retval EFI_SUCCESS The requested mode information was returned.
- @retval EFI_DEVICE_ERROR The device had an error and could not
- complete the request.
- @retval EFI_UNSUPPORTED The mode number was not valid.
-**/
-EFI_STATUS
-EFIAPI
-ConsoleLoggerQueryMode (
- 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.
-
- @param[in] This Protocol instance pointer.
- @param[in] ModeNumber The mode number to set.
-
-
- @retval EFI_SUCCESS The requested text mode was set.
- @retval EFI_DEVICE_ERROR The device had an error and
- could not complete the request.
- @retval EFI_UNSUPPORTED The mode number was not valid.
-**/
-EFI_STATUS
-EFIAPI
-ConsoleLoggerSetMode (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
- IN UINTN ModeNumber
- );
-
-/**
- Sets the background and foreground colors for the OutputString () and
- ClearScreen () functions.
-
- @param[in] This Protocol instance pointer.
- @param[in] 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. The valid Attributes are defined in this file.
-
- @retval EFI_SUCCESS The attribute was set.
- @retval EFI_DEVICE_ERROR The device had an error and
- could not complete the request.
- @retval EFI_UNSUPPORTED The attribute requested is not defined.
-
-**/
-EFI_STATUS
-EFIAPI
-ConsoleLoggerSetAttribute (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
- IN UINTN Attribute
- );
-
-/**
- Clears the output device(s) display to the currently selected background
- color.
-
- @param[in] 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
-ConsoleLoggerClearScreen (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This
- );
-
-/**
- Sets the current coordinates of the cursor position.
-
- @param[in] This Protocol instance pointer.
- @param[in] Column Column to put the cursor in. Must be between zero and Column returned from QueryMode
- @param[in] Row Row to put the cursor in. Must be between zero and Row returned from 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
-ConsoleLoggerSetCursorPosition (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
- IN UINTN Column,
- IN UINTN Row
- );
-
-/**
- Makes the cursor visible or invisible
-
- @param[in] This Protocol instance pointer.
- @param[in] 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.
- @retval EFI_DEVICE_ERROR The device had an error and could not complete the
- request, or the device does not support changing
- the cursor mode.
- @retval EFI_UNSUPPORTED The output device is not in a valid text mode.
-
-**/
-EFI_STATUS
-EFIAPI
-ConsoleLoggerEnableCursor (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
- IN BOOLEAN Visible
- );
-
-/**
- Function to update and verify that the current buffers are correct.
-
- @param[in] ConsoleInfo The pointer to the instance of the console logger information.
-
- This will be used when a mode has changed or a reset ocurred to verify all
- history buffers.
-**/
-EFI_STATUS
-EFIAPI
-ConsoleLoggerResetBuffers(
- IN CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo
- );
-
-#endif //_CONSOLE_LOGGER_HEADER_
-
+/** @file\r
+ Provides interface to shell console logger.\r
+\r
+ Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+ This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+**/\r
+\r
+#ifndef _CONSOLE_LOGGER_HEADER_\r
+#define _CONSOLE_LOGGER_HEADER_\r
+\r
+#include "Shell.h"\r
+\r
+#define CONSOLE_LOGGER_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('c', 'o', 'P', 'D')\r
+\r
+typedef struct _CONSOLE_LOGGER_PRIVATE_DATA{\r
+ UINTN Signature;\r
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL OurConOut; ///< the protocol we installed onto the system table\r
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *OldConOut; ///< old protocol to reinstall upon exiting\r
+ EFI_HANDLE OldConHandle; ///< old protocol handle\r
+ UINTN ScreenCount; ///< How many screens worth of data to save\r
+ CHAR16 *Buffer; ///< Buffer to save data\r
+ UINTN BufferSize; ///< size of buffer in bytes\r
+\r
+ // start row is the top of the screen\r
+ UINTN OriginalStartRow; ///< What the originally visible start row was\r
+ UINTN CurrentStartRow; ///< what the currently visible start row is\r
+\r
+ UINTN RowsPerScreen; ///< how many rows the screen can display\r
+ UINTN ColsPerScreen; ///< how many columns the screen can display\r
+\r
+ INT32 *Attributes; ///< Buffer for Attribute to be saved for each character\r
+ UINTN AttribSize; ///< Size of Attributes in bytes\r
+\r
+ EFI_SIMPLE_TEXT_OUTPUT_MODE HistoryMode; ///< mode of the history log\r
+ BOOLEAN Enabled; ///< Set to FALSE when a break is requested.\r
+ UINTN RowCounter; ///< Initial row of each print job.\r
+} CONSOLE_LOGGER_PRIVATE_DATA;\r
+\r
+#define CONSOLE_LOGGER_PRIVATE_DATA_FROM_THIS(a) CR (a, CONSOLE_LOGGER_PRIVATE_DATA, OurConOut, CONSOLE_LOGGER_PRIVATE_DATA_SIGNATURE)\r
+\r
+/**\r
+ Install our intermediate ConOut into the system table to\r
+ keep a log of all the info that is displayed to the user.\r
+\r
+ @param[in] ScreensToSave Sets how many screen-worths of data to save.\r
+ @param[out] ConsoleInfo The object to pass into later functions.\r
+\r
+ @retval EFI_SUCCESS The operation was successful.\r
+ @return other The operation failed.\r
+\r
+ @sa ConsoleLoggerResetBuffers\r
+ @sa InstallProtocolInterface\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+ConsoleLoggerInstall(\r
+ IN CONST UINTN ScreensToSave,\r
+ OUT CONSOLE_LOGGER_PRIVATE_DATA **ConsoleInfo\r
+ );\r
+\r
+/**\r
+ Return the system to the state it was before InstallConsoleLogger\r
+ was installed.\r
+\r
+ @param[in, out] ConsoleInfo The object from the install function.\r
+\r
+ @retval EFI_SUCCESS The operation was successful\r
+ @return other The operation failed. This was from UninstallProtocolInterface.\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+ConsoleLoggerUninstall(\r
+ IN OUT CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo\r
+ );\r
+\r
+/**\r
+ Displays previously logged output back to the screen.\r
+\r
+ This will scroll the screen forwards and backwards through the log of previous\r
+ output. If Rows is 0 then the size of 1/2 the screen will be scrolled. If Rows\r
+ is (UINTN)(-1) then the size of the screen will be scrolled.\r
+\r
+ @param[in] Forward If TRUE then the log will be displayed forwards (scroll to newer).\r
+ If FALSE then the log will be displayed backwards (scroll to older).\r
+ @param[in] Rows Determines how many rows the log should scroll.\r
+ @param[in] ConsoleInfo The pointer to the instance of the console logger information.\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+ConsoleLoggerDisplayHistory(\r
+ IN CONST BOOLEAN Forward,\r
+ IN CONST UINTN Rows,\r
+ IN CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo\r
+ );\r
+\r
+/**\r
+ Function to return to normal output whent he scrolling is complete.\r
+ @param[in] ConsoleInfo The pointer to the instance of the console logger information.\r
+\r
+ @retval EFI_SUCCESS The operation was successful.\r
+ @return other The operation failed. See UpdateDisplayFromHistory.\r
+\r
+ @sa UpdateDisplayFromHistory\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+ConsoleLoggerStopHistory(\r
+ IN CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo\r
+ );\r
+\r
+/**\r
+ Updates the hidden ConOut to be displaying the correct stuff.\r
+ @param[in] ConsoleInfo The pointer to the instance of the console logger information.\r
+\r
+ @retval EFI_SUCCESS The operation was successful.\r
+ @return other The operation failed.\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+UpdateDisplayFromHistory(\r
+ IN CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo\r
+ );\r
+\r
+/**\r
+ Reset the text output device hardware and optionaly run diagnostics\r
+\r
+ @param This Pointer to EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL\r
+ @param ExtendedVerification Indicates that a more extensive test may be performed\r
+\r
+ @retval EFI_SUCCESS The text output device was reset.\r
+ @retval EFI_DEVICE_ERROR The text output device is not functioning correctly and\r
+ could not be reset.\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+ConsoleLoggerReset (\r
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
+ IN BOOLEAN ExtendedVerification\r
+ );\r
+\r
+/**\r
+ Write a Unicode string to the output device.\r
+\r
+ @param[in] This Protocol instance pointer.\r
+ @param[in] WString The NULL-terminated Unicode string to be displayed on the output\r
+ device(s). All output devices must also support the Unicode\r
+ drawing defined in this file.\r
+ @retval EFI_SUCCESS The string was output to the device.\r
+ @retval EFI_DEVICE_ERROR The device reported an error while attempting to output\r
+ the text.\r
+ @retval EFI_UNSUPPORTED The output device's mode is not currently in a\r
+ defined text mode.\r
+ @retval EFI_WARN_UNKNOWN_GLYPH This warning code indicates that some of the\r
+ characters in the Unicode string could not be\r
+ rendered and were skipped.\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+ConsoleLoggerOutputString(\r
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
+ IN CHAR16 *WString\r
+ );\r
+\r
+/**\r
+ Verifies that all characters in a Unicode string can be output to the\r
+ target device.\r
+\r
+ @param[in] This Protocol instance pointer.\r
+ @param[in] WString The NULL-terminated Unicode string to be examined for the output\r
+ device(s).\r
+\r
+ @retval EFI_SUCCESS The device(s) are capable of rendering the output string.\r
+ @retval EFI_UNSUPPORTED Some of the characters in the Unicode string cannot be\r
+ rendered by one or more of the output devices mapped\r
+ by the EFI handle.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+ConsoleLoggerTestString (\r
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
+ IN CHAR16 *WString\r
+ );\r
+\r
+/**\r
+ Returns information for an available text mode that the output device(s)\r
+ supports.\r
+\r
+ @param[in] This Protocol instance pointer.\r
+ @param[in] ModeNumber The mode number to return information on.\r
+ @param[out] Columns Upon return, the number of columns in the selected geometry\r
+ @param[out] Rows Upon return, the number of rows in the selected geometry\r
+\r
+ @retval EFI_SUCCESS The requested mode information was returned.\r
+ @retval EFI_DEVICE_ERROR The device had an error and could not\r
+ complete the request.\r
+ @retval EFI_UNSUPPORTED The mode number was not valid.\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+ConsoleLoggerQueryMode (\r
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
+ IN UINTN ModeNumber,\r
+ OUT UINTN *Columns,\r
+ OUT UINTN *Rows\r
+ );\r
+\r
+/**\r
+ Sets the output device(s) to a specified mode.\r
+\r
+ @param[in] This Protocol instance pointer.\r
+ @param[in] ModeNumber The mode number to set.\r
+\r
+\r
+ @retval EFI_SUCCESS The requested text mode was set.\r
+ @retval EFI_DEVICE_ERROR The device had an error and\r
+ could not complete the request.\r
+ @retval EFI_UNSUPPORTED The mode number was not valid.\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+ConsoleLoggerSetMode (\r
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
+ IN UINTN ModeNumber\r
+ );\r
+\r
+/**\r
+ Sets the background and foreground colors for the OutputString () and\r
+ ClearScreen () functions.\r
+\r
+ @param[in] This Protocol instance pointer.\r
+ @param[in] Attribute The attribute to set. Bits 0..3 are the foreground color, and\r
+ bits 4..6 are the background color. All other bits are undefined\r
+ and must be zero. The valid Attributes are defined in this file.\r
+\r
+ @retval EFI_SUCCESS The attribute was set.\r
+ @retval EFI_DEVICE_ERROR The device had an error and\r
+ could not complete the request.\r
+ @retval EFI_UNSUPPORTED The attribute requested is not defined.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+ConsoleLoggerSetAttribute (\r
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
+ IN UINTN Attribute\r
+ );\r
+\r
+/**\r
+ Clears the output device(s) display to the currently selected background\r
+ color.\r
+\r
+ @param[in] This Protocol instance pointer.\r
+\r
+ @retval EFI_SUCCESS The operation completed successfully.\r
+ @retval EFI_DEVICE_ERROR The device had an error and\r
+ could not complete the request.\r
+ @retval EFI_UNSUPPORTED The output device is not in a valid text mode.\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+ConsoleLoggerClearScreen (\r
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This\r
+ );\r
+\r
+/**\r
+ Sets the current coordinates of the cursor position.\r
+\r
+ @param[in] This Protocol instance pointer.\r
+ @param[in] Column Column to put the cursor in. Must be between zero and Column returned from QueryMode\r
+ @param[in] Row Row to put the cursor in. Must be between zero and Row returned from QueryMode\r
+\r
+ @retval EFI_SUCCESS The operation completed successfully.\r
+ @retval EFI_DEVICE_ERROR The device had an error and\r
+ could not complete the request.\r
+ @retval EFI_UNSUPPORTED The output device is not in a valid text mode, or the\r
+ cursor position is invalid for the current mode.\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+ConsoleLoggerSetCursorPosition (\r
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
+ IN UINTN Column,\r
+ IN UINTN Row\r
+ );\r
+\r
+/**\r
+ Makes the cursor visible or invisible\r
+\r
+ @param[in] This Protocol instance pointer.\r
+ @param[in] Visible If TRUE, the cursor is set to be visible. If FALSE, the cursor is\r
+ set to be invisible.\r
+\r
+ @retval EFI_SUCCESS The operation completed successfully.\r
+ @retval EFI_DEVICE_ERROR The device had an error and could not complete the\r
+ request, or the device does not support changing\r
+ the cursor mode.\r
+ @retval EFI_UNSUPPORTED The output device is not in a valid text mode.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+ConsoleLoggerEnableCursor (\r
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
+ IN BOOLEAN Visible\r
+ );\r
+\r
+/**\r
+ Function to update and verify that the current buffers are correct.\r
+\r
+ @param[in] ConsoleInfo The pointer to the instance of the console logger information.\r
+\r
+ This will be used when a mode has changed or a reset ocurred to verify all\r
+ history buffers.\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+ConsoleLoggerResetBuffers(\r
+ IN CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo\r
+ );\r
+\r
+#endif //_CONSOLE_LOGGER_HEADER_\r
+\r