]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkNt32Pkg/Dxe/WinNtThunk/Bus/Console/ConsoleOut.c
Retiring the ANT/JAVA build and removing the older EDK II packages that required...
[mirror_edk2.git] / EdkNt32Pkg / Dxe / WinNtThunk / Bus / Console / ConsoleOut.c
diff --git a/EdkNt32Pkg/Dxe/WinNtThunk/Bus/Console/ConsoleOut.c b/EdkNt32Pkg/Dxe/WinNtThunk/Bus/Console/ConsoleOut.c
deleted file mode 100644 (file)
index cab3768..0000000
+++ /dev/null
@@ -1,638 +0,0 @@
-/*++\r
-\r
-Copyright (c) 2006, Intel Corporation                                                         \r
-All rights reserved. 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
-Module Name:\r
-\r
-  ConsoleOut.c\r
-\r
-Abstract:\r
-\r
-  Console based on Win32 APIs. \r
-\r
-  This file creates an Win32 window and attaches a SimpleTextOut protocol.\r
-\r
---*/\r
-\r
-#include "Console.h"\r
-//\r
-// Private worker functions.\r
-//\r
-\r
-STATIC\r
-VOID\r
-WinNtSimpleTextOutScrollScreen (\r
-  IN OUT  WIN_NT_SIMPLE_TEXT_PRIVATE_DATA *Console\r
-  );\r
-\r
-STATIC\r
-VOID\r
-WinNtSimpleTextOutPutChar (\r
-  IN OUT  WIN_NT_SIMPLE_TEXT_PRIVATE_DATA     *Console,\r
-  IN      CHAR16                              Char\r
-  );\r
-\r
-//\r
-// Modeule Global for Simple Text Out Mode.\r
-//\r
-#define MAX_SIMPLE_TEXT_OUT_MODE  \\r
-        (sizeof(mWinNtSimpleTextOutSupportedModes)/sizeof(WIN_NT_SIMPLE_TEXT_OUT_MODE))\r
-\r
-STATIC WIN_NT_SIMPLE_TEXT_OUT_MODE  mWinNtSimpleTextOutSupportedModes[] = {\r
-  { 80, 25 },         \r
-  { 80, 50 },         \r
-  { 80, 43 },         \r
-  { 100, 100 },       \r
-  { 100, 999 }         \r
-};\r
-\r
-STATIC\r
-EFI_STATUS\r
-EFIAPI\r
-WinNtSimpleTextOutReset (\r
-  IN EFI_SIMPLE_TEXT_OUT_PROTOCOL         *This,\r
-  IN BOOLEAN                              ExtendedVerification\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
-\r
-  This                  - TODO: add argument description\r
-  ExtendedVerification  - TODO: add argument description\r
-\r
-Returns:\r
-\r
-  EFI_SUCCESS - TODO: Add description for return value\r
-\r
---*/\r
-{\r
-  WIN_NT_SIMPLE_TEXT_PRIVATE_DATA *Private;\r
-\r
-  Private = WIN_NT_SIMPLE_TEXT_OUT_PRIVATE_DATA_FROM_THIS (This);\r
-\r
-  WinNtSimpleTextOutSetAttribute (This, EFI_TEXT_ATTR (This->Mode->Attribute & 0x0F, EFI_BACKGROUND_BLACK));\r
-\r
-  WinNtSimpleTextOutSetMode (This, 0);\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-STATIC\r
-EFI_STATUS\r
-EFIAPI\r
-WinNtSimpleTextOutOutputString (\r
-  IN EFI_SIMPLE_TEXT_OUT_PROTOCOL           *This,\r
-  IN CHAR16                                 *String\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
-\r
-  This    - TODO: add argument description\r
-  String  - TODO: add argument description\r
-\r
-Returns:\r
-\r
-  EFI_SUCCESS - TODO: Add description for return value\r
-\r
---*/\r
-{\r
-  WIN_NT_SIMPLE_TEXT_PRIVATE_DATA *Private;\r
-  CHAR16                          *Str;\r
-\r
-  Private = WIN_NT_SIMPLE_TEXT_OUT_PRIVATE_DATA_FROM_THIS (This);\r
-\r
-  for (Str = String; *Str != '\0'; Str++) {\r
-    switch (*Str) {\r
-    case '\n':\r
-      if (Private->Possition.Y == (Private->MaxScreenSize.Y - 1)) {\r
-        WinNtSimpleTextOutScrollScreen (Private);\r
-      }\r
-\r
-      if (Private->Possition.Y < (Private->MaxScreenSize.Y - 1)) {\r
-        Private->Possition.Y++;\r
-        This->Mode->CursorRow++;\r
-      }\r
-      break;\r
-\r
-    case '\r':\r
-      Private->Possition.X      = 0;\r
-      This->Mode->CursorColumn  = 0;\r
-      break;\r
-\r
-    case '\b':\r
-      if (Private->Possition.X > 0) {\r
-        Private->Possition.X--;\r
-        This->Mode->CursorColumn--;\r
-      }\r
-      break;\r
-\r
-    default:\r
-      WinNtSimpleTextOutPutChar (Private, *Str);\r
-    }\r
-  }\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-STATIC\r
-VOID\r
-WinNtSimpleTextOutPutChar (\r
-  IN OUT  WIN_NT_SIMPLE_TEXT_PRIVATE_DATA   *Console,\r
-  IN      CHAR16                            Char\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
-\r
-  Console - TODO: add argument description\r
-  Char    - TODO: add argument description\r
-\r
-Returns:\r
-\r
-  TODO: add return values\r
-\r
---*/\r
-{\r
-  SMALL_RECT  Region;\r
-  COORD       StrCoordinate;\r
-  COORD       StrSize;\r
-  CHAR_INFO   CharInfo;\r
-  BOOL        Flag;\r
-\r
-  CharInfo.Char.UnicodeChar = Char;\r
-  CharInfo.Attributes       = Console->Attribute;\r
-\r
-  StrSize.X                 = 1;\r
-  StrSize.Y                 = 1;\r
-  StrCoordinate.X           = 0;\r
-  StrCoordinate.Y           = 0;\r
-\r
-  Region.Left               = (INT16) Console->Possition.X;\r
-  Region.Top                = (INT16) Console->Possition.Y;\r
-  Region.Right              = (INT16) (Console->Possition.X + 1);\r
-  Region.Bottom             = (INT16) Console->Possition.Y;\r
-\r
-  Console->WinNtThunk->WriteConsoleOutput (\r
-                        Console->NtOutHandle,\r
-                        &CharInfo,\r
-                        StrSize,\r
-                        StrCoordinate,\r
-                        &Region\r
-                        );\r
-\r
-  if (Console->Possition.X >= (Console->MaxScreenSize.X - 1)) {\r
-    //\r
-    // If you print off the end wrap around\r
-    //\r
-    Console->SimpleTextOut.OutputString (&Console->SimpleTextOut, L"\n\r");\r
-  } else {\r
-    Console->Possition.X++;\r
-    Console->SimpleTextOut.Mode->CursorColumn++;\r
-  }\r
-\r
-  Flag = Console->WinNtThunk->SetConsoleCursorPosition (Console->NtOutHandle, Console->Possition);\r
-}\r
-\r
-STATIC\r
-VOID\r
-WinNtSimpleTextOutScrollScreen (\r
-  IN OUT  WIN_NT_SIMPLE_TEXT_PRIVATE_DATA *Console\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
-\r
-  Console - TODO: add argument description\r
-\r
-Returns:\r
-\r
-  TODO: add return values\r
-\r
---*/\r
-{\r
-  SMALL_RECT  Scroll;\r
-  CHAR_INFO   CharInfo;\r
-  COORD       Origin;\r
-\r
-  CharInfo.Char.UnicodeChar = ' ';\r
-  CharInfo.Attributes       = Console->Attribute;\r
-\r
-  Origin.X                  = 0;\r
-  Origin.Y                  = 0;\r
-\r
-  Scroll.Top                = 1;\r
-  Scroll.Left               = 0;\r
-  Scroll.Right              = (INT16) Console->MaxScreenSize.X;\r
-  Scroll.Bottom             = (INT16) Console->MaxScreenSize.Y;\r
-\r
-  Console->WinNtThunk->ScrollConsoleScreenBuffer (\r
-                        Console->NtOutHandle,\r
-                        &Scroll,\r
-                        NULL,\r
-                        Origin,\r
-                        &CharInfo\r
-                        );\r
-}\r
-\r
-STATIC\r
-EFI_STATUS\r
-EFIAPI\r
-WinNtSimpleTextOutTestString (\r
-  IN EFI_SIMPLE_TEXT_OUT_PROTOCOL           *This,\r
-  IN CHAR16                                 *String\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
-\r
-  This    - TODO: add argument description\r
-  String  - TODO: add argument description\r
-\r
-Returns:\r
-\r
-  EFI_SUCCESS - TODO: Add description for return value\r
-\r
---*/\r
-{\r
-  WIN_NT_SIMPLE_TEXT_PRIVATE_DATA *Private;\r
-\r
-  Private = WIN_NT_SIMPLE_TEXT_OUT_PRIVATE_DATA_FROM_THIS (This);\r
-\r
-  //\r
-  // BugBug: The correct answer would be a function of what code pages\r
-  //         are currently loaded? For now we will just return success.\r
-  //\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-STATIC\r
-EFI_STATUS\r
-EFIAPI\r
-WinNtSimpleTextOutQueryMode (\r
-  IN EFI_SIMPLE_TEXT_OUT_PROTOCOL           *This,\r
-  IN UINTN                                  ModeNumber,\r
-  OUT UINTN                                 *Columns,\r
-  OUT UINTN                                 *Rows\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
-\r
-  This        - TODO: add argument description\r
-  ModeNumber  - TODO: add argument description\r
-  Columns     - TODO: add argument description\r
-  Rows        - TODO: add argument description\r
-\r
-Returns:\r
-\r
-  EFI_INVALID_PARAMETER - TODO: Add description for return value\r
-  EFI_SUCCESS - TODO: Add description for return value\r
-\r
---*/\r
-{\r
-  WIN_NT_SIMPLE_TEXT_PRIVATE_DATA *Private;\r
-\r
-  Private = WIN_NT_SIMPLE_TEXT_OUT_PRIVATE_DATA_FROM_THIS (This);\r
-\r
-  if (ModeNumber > MAX_SIMPLE_TEXT_OUT_MODE) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  *Columns  = mWinNtSimpleTextOutSupportedModes[ModeNumber].ColumnsX;\r
-  *Rows     = mWinNtSimpleTextOutSupportedModes[ModeNumber].RowsY;\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-STATIC\r
-EFI_STATUS\r
-EFIAPI\r
-WinNtSimpleTextOutSetMode (\r
-  IN EFI_SIMPLE_TEXT_OUT_PROTOCOL           *This,\r
-  IN UINTN                                  ModeNumber\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
-\r
-  This        - TODO: add argument description\r
-  ModeNumber  - TODO: add argument description\r
-\r
-Returns:\r
-\r
-  EFI_INVALID_PARAMETER - TODO: Add description for return value\r
-  EFI_SUCCESS - TODO: Add description for return value\r
-\r
---*/\r
-{\r
-  WIN_NT_SIMPLE_TEXT_PRIVATE_DATA *Private;\r
-\r
-  Private = WIN_NT_SIMPLE_TEXT_OUT_PRIVATE_DATA_FROM_THIS (This);\r
-\r
-  if (ModeNumber > MAX_SIMPLE_TEXT_OUT_MODE) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  Private->MaxScreenSize.X  = (WORD) mWinNtSimpleTextOutSupportedModes[ModeNumber].ColumnsX;\r
-  Private->MaxScreenSize.Y  = (WORD) mWinNtSimpleTextOutSupportedModes[ModeNumber].RowsY;\r
-\r
-  Private->WinNtThunk->SetConsoleScreenBufferSize (Private->NtOutHandle, Private->MaxScreenSize);\r
-  Private->WinNtThunk->SetConsoleActiveScreenBuffer (Private->NtOutHandle);\r
-\r
-  This->Mode->Mode = (INT32) ModeNumber;\r
-\r
-  This->EnableCursor (This, TRUE);\r
-  This->ClearScreen (This);\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-STATIC\r
-EFI_STATUS\r
-EFIAPI\r
-WinNtSimpleTextOutSetAttribute (\r
-  IN EFI_SIMPLE_TEXT_OUT_PROTOCOL   *This,\r
-  IN UINTN                          Attribute\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
-\r
-  This      - TODO: add argument description\r
-  Attribute - TODO: add argument description\r
-\r
-Returns:\r
-\r
-  EFI_SUCCESS - TODO: Add description for return value\r
-\r
---*/\r
-{\r
-  WIN_NT_SIMPLE_TEXT_PRIVATE_DATA *Private;\r
-\r
-  Private               = WIN_NT_SIMPLE_TEXT_OUT_PRIVATE_DATA_FROM_THIS (This);\r
-\r
-  Private->Attribute    = (WORD) Attribute;\r
-  This->Mode->Attribute = (INT32) Attribute;\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-STATIC\r
-EFI_STATUS\r
-EFIAPI\r
-WinNtSimpleTextOutClearScreen (\r
-  IN EFI_SIMPLE_TEXT_OUT_PROTOCOL   *This\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
-\r
-  This  - TODO: add argument description\r
-\r
-Returns:\r
-\r
-  EFI_SUCCESS - TODO: Add description for return value\r
-\r
---*/\r
-{\r
-  WIN_NT_SIMPLE_TEXT_PRIVATE_DATA *Private;\r
-  DWORD                           ConsoleWindow;\r
-\r
-  Private = WIN_NT_SIMPLE_TEXT_OUT_PRIVATE_DATA_FROM_THIS (This);\r
-\r
-  This->SetCursorPosition (This, 0, 0);\r
-\r
-  Private->WinNtThunk->FillConsoleOutputCharacter (\r
-                        Private->NtOutHandle,\r
-                        ' ',\r
-                        Private->MaxScreenSize.X * Private->MaxScreenSize.Y,\r
-                        Private->Possition,\r
-                        &ConsoleWindow\r
-                        );\r
-  Private->WinNtThunk->FillConsoleOutputAttribute (\r
-                        Private->NtOutHandle,\r
-                        Private->Attribute,\r
-                        Private->MaxScreenSize.X * Private->MaxScreenSize.Y,\r
-                        Private->Possition,\r
-                        &ConsoleWindow\r
-                        );\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-STATIC\r
-EFI_STATUS\r
-EFIAPI\r
-WinNtSimpleTextOutSetCursorPosition (\r
-  IN EFI_SIMPLE_TEXT_OUT_PROTOCOL           *This,\r
-  IN UINTN                                  Column,\r
-  IN UINTN                                  Row\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
-\r
-  This    - TODO: add argument description\r
-  Column  - TODO: add argument description\r
-  Row     - TODO: add argument description\r
-\r
-Returns:\r
-\r
-  EFI_SUCCESS - TODO: Add description for return value\r
-\r
---*/\r
-{\r
-  WIN_NT_SIMPLE_TEXT_PRIVATE_DATA *Private;\r
-\r
-  Private                   = WIN_NT_SIMPLE_TEXT_OUT_PRIVATE_DATA_FROM_THIS (This);\r
-\r
-  Private->Possition.X      = (WORD) Column;\r
-  This->Mode->CursorColumn  = (INT32) Column;\r
-\r
-  Private->Possition.Y      = (WORD) Row;\r
-  This->Mode->CursorRow     = (INT32) Row;\r
-  Private->WinNtThunk->SetConsoleCursorPosition (Private->NtOutHandle, Private->Possition);\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-STATIC\r
-EFI_STATUS\r
-EFIAPI\r
-WinNtSimpleTextOutEnableCursor (\r
-  IN EFI_SIMPLE_TEXT_OUT_PROTOCOL   *This,\r
-  IN BOOLEAN                        Enable\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
-\r
-  This    - TODO: add argument description\r
-  Enable  - TODO: add argument description\r
-\r
-Returns:\r
-\r
-  EFI_SUCCESS - TODO: Add description for return value\r
-\r
---*/\r
-{\r
-  WIN_NT_SIMPLE_TEXT_PRIVATE_DATA *Private;\r
-  CONSOLE_CURSOR_INFO             Info;\r
-\r
-  Private                   = WIN_NT_SIMPLE_TEXT_OUT_PRIVATE_DATA_FROM_THIS (This);\r
-  Private->CursorEnable     = Enable;\r
-  This->Mode->CursorVisible = Enable;\r
-\r
-  Private->WinNtThunk->GetConsoleCursorInfo (Private->NtOutHandle, &Info);\r
-  Info.bVisible = Enable;\r
-  Private->WinNtThunk->SetConsoleCursorInfo (Private->NtOutHandle, &Info);\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-WinNtSimpleTextOutOpenWindow (\r
-  IN OUT  WIN_NT_SIMPLE_TEXT_PRIVATE_DATA *Private\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
-\r
-  Private - TODO: add argument description\r
-\r
-Returns:\r
-\r
-  TODO: add return values\r
-\r
---*/\r
-{\r
-  EFI_SIMPLE_TEXT_OUT_PROTOCOL  *SimpleTextOut;\r
-  CHAR16                        *WindowName;\r
-\r
-  WindowName          = Private->WinNtIo->EnvString;\r
-  Private->Attribute  = FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY;\r
-  if (*WindowName == '?') {\r
-    Private->Attribute  = BACKGROUND_RED | FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN;\r
-    WindowName          = L"EFI Emulator Error Console";\r
-  }\r
-\r
-  AddUnicodeString (\r
-    "eng",\r
-    gWinNtConsoleComponentName.SupportedLanguages,\r
-    &Private->ControllerNameTable,\r
-    WindowName\r
-    );\r
-\r
-  //\r
-  // Fill in protocol member functions\r
-  //\r
-  SimpleTextOut                     = &Private->SimpleTextOut;\r
-  SimpleTextOut->Reset              = WinNtSimpleTextOutReset;\r
-  SimpleTextOut->OutputString       = WinNtSimpleTextOutOutputString;\r
-  SimpleTextOut->TestString         = WinNtSimpleTextOutTestString;\r
-  SimpleTextOut->QueryMode          = WinNtSimpleTextOutQueryMode;\r
-  SimpleTextOut->SetMode            = WinNtSimpleTextOutSetMode;\r
-  SimpleTextOut->SetAttribute       = WinNtSimpleTextOutSetAttribute;\r
-  SimpleTextOut->ClearScreen        = WinNtSimpleTextOutClearScreen;\r
-  SimpleTextOut->SetCursorPosition  = WinNtSimpleTextOutSetCursorPosition;\r
-  SimpleTextOut->EnableCursor       = WinNtSimpleTextOutEnableCursor;\r
-\r
-  //\r
-  // Initialize SimpleTextOut protocol mode structure\r
-  //\r
-  SimpleTextOut->Mode             = &Private->SimpleTextOutMode;\r
-  SimpleTextOut->Mode->MaxMode    = MAX_SIMPLE_TEXT_OUT_MODE;\r
-  SimpleTextOut->Mode->Attribute  = (INT32) Private->Attribute;\r
-\r
-  //\r
-  // Open the window an initialize it!\r
-  //\r
-  Private->NtOutHandle = Private->WinNtThunk->CreateConsoleScreenBuffer (\r
-                                                GENERIC_WRITE | GENERIC_READ,\r
-                                                FILE_SHARE_WRITE | FILE_SHARE_READ,\r
-                                                NULL,\r
-                                                CONSOLE_TEXTMODE_BUFFER,\r
-                                                NULL\r
-                                                );\r
-  Private->WinNtThunk->SetConsoleTitle (WindowName);\r
-\r
-  return SimpleTextOut->SetMode (SimpleTextOut, 0);\r
-}\r
-\r
-EFI_STATUS\r
-WinNtSimpleTextOutCloseWindow (\r
-  IN OUT  WIN_NT_SIMPLE_TEXT_PRIVATE_DATA *Console\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
-\r
-  Console - TODO: add argument description\r
-\r
-Returns:\r
-\r
-  EFI_SUCCESS - TODO: Add description for return value\r
-\r
---*/\r
-{\r
-  Console->WinNtThunk->CloseHandle (Console->NtOutHandle);\r
-  return EFI_SUCCESS;\r
-}\r