/** @file\r
This is the main routine for initializing the Graphics Console support routines.\r
\r
-Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2022, Intel Corporation. All rights reserved.<BR>\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
//\r
// Graphics Console Device Private Data template\r
//\r
-GRAPHICS_CONSOLE_DEV mGraphicsConsoleDevTemplate = {\r
+GRAPHICS_CONSOLE_DEV mGraphicsConsoleDevTemplate = {\r
GRAPHICS_CONSOLE_DEV_SIGNATURE,\r
- (EFI_GRAPHICS_OUTPUT_PROTOCOL *) NULL,\r
- (EFI_UGA_DRAW_PROTOCOL *) NULL,\r
+ (EFI_GRAPHICS_OUTPUT_PROTOCOL *)NULL,\r
+ (EFI_UGA_DRAW_PROTOCOL *)NULL,\r
{\r
GraphicsConsoleConOutReset,\r
GraphicsConsoleConOutOutputString,\r
GraphicsConsoleConOutClearScreen,\r
GraphicsConsoleConOutSetCursorPosition,\r
GraphicsConsoleConOutEnableCursor,\r
- (EFI_SIMPLE_TEXT_OUTPUT_MODE *) NULL\r
+ (EFI_SIMPLE_TEXT_OUTPUT_MODE *)NULL\r
},\r
{\r
0,\r
-1,\r
- EFI_TEXT_ATTR(EFI_LIGHTGRAY, EFI_BLACK),\r
+ EFI_TEXT_ATTR (EFI_LIGHTGRAY, EFI_BLACK),\r
0,\r
0,\r
FALSE\r
},\r
- (GRAPHICS_CONSOLE_MODE_DATA *) NULL,\r
- (EFI_GRAPHICS_OUTPUT_BLT_PIXEL *) NULL\r
+ (GRAPHICS_CONSOLE_MODE_DATA *)NULL,\r
+ (EFI_GRAPHICS_OUTPUT_BLT_PIXEL *)NULL\r
};\r
\r
-GRAPHICS_CONSOLE_MODE_DATA mGraphicsConsoleModeData[] = {\r
- {100, 31},\r
+GRAPHICS_CONSOLE_MODE_DATA mGraphicsConsoleModeData[] = {\r
+ { 100, 31 }, // 800 x 600\r
+ { 128, 40 }, // 1024 x 768\r
+ { 160, 42 }, // 1280 x 800\r
+ { 240, 56 }, // 1920 x 1080\r
//\r
// New modes can be added here.\r
// The last entry is specific for full screen mode.\r
//\r
- {0, 0}\r
+ { 0, 0 }\r
};\r
\r
-EFI_HII_DATABASE_PROTOCOL *mHiiDatabase;\r
-EFI_HII_FONT_PROTOCOL *mHiiFont;\r
-EFI_HII_HANDLE mHiiHandle;\r
-VOID *mHiiRegistration;\r
+EFI_HII_DATABASE_PROTOCOL *mHiiDatabase;\r
+EFI_HII_FONT_PROTOCOL *mHiiFont;\r
+EFI_HII_HANDLE mHiiHandle;\r
+VOID *mHiiRegistration;\r
\r
-EFI_GUID mFontPackageListGuid = {0xf5f219d3, 0x7006, 0x4648, {0xac, 0x8d, 0xd6, 0x1d, 0xfb, 0x7b, 0xc6, 0xad}};\r
+EFI_GUID mFontPackageListGuid = {\r
+ 0xf5f219d3, 0x7006, 0x4648, { 0xac, 0x8d, 0xd6, 0x1d, 0xfb, 0x7b, 0xc6, 0xad }\r
+};\r
\r
-CHAR16 mCrLfString[3] = { CHAR_CARRIAGE_RETURN, CHAR_LINEFEED, CHAR_NULL };\r
+CHAR16 mCrLfString[3] = { CHAR_CARRIAGE_RETURN, CHAR_LINEFEED, CHAR_NULL };\r
\r
-EFI_GRAPHICS_OUTPUT_BLT_PIXEL mGraphicsEfiColors[16] = {\r
+EFI_GRAPHICS_OUTPUT_BLT_PIXEL mGraphicsEfiColors[16] = {\r
//\r
// B G R reserved\r
//\r
- {0x00, 0x00, 0x00, 0x00}, // BLACK\r
- {0x98, 0x00, 0x00, 0x00}, // LIGHTBLUE\r
- {0x00, 0x98, 0x00, 0x00}, // LIGHGREEN\r
- {0x98, 0x98, 0x00, 0x00}, // LIGHCYAN\r
- {0x00, 0x00, 0x98, 0x00}, // LIGHRED\r
- {0x98, 0x00, 0x98, 0x00}, // MAGENTA\r
- {0x00, 0x98, 0x98, 0x00}, // BROWN\r
- {0x98, 0x98, 0x98, 0x00}, // LIGHTGRAY\r
- {0x30, 0x30, 0x30, 0x00}, // DARKGRAY - BRIGHT BLACK\r
- {0xff, 0x00, 0x00, 0x00}, // BLUE\r
- {0x00, 0xff, 0x00, 0x00}, // LIME\r
- {0xff, 0xff, 0x00, 0x00}, // CYAN\r
- {0x00, 0x00, 0xff, 0x00}, // RED\r
- {0xff, 0x00, 0xff, 0x00}, // FUCHSIA\r
- {0x00, 0xff, 0xff, 0x00}, // YELLOW\r
- {0xff, 0xff, 0xff, 0x00} // WHITE\r
+ { 0x00, 0x00, 0x00, 0x00 }, // BLACK\r
+ { 0x98, 0x00, 0x00, 0x00 }, // LIGHTBLUE\r
+ { 0x00, 0x98, 0x00, 0x00 }, // LIGHGREEN\r
+ { 0x98, 0x98, 0x00, 0x00 }, // LIGHCYAN\r
+ { 0x00, 0x00, 0x98, 0x00 }, // LIGHRED\r
+ { 0x98, 0x00, 0x98, 0x00 }, // MAGENTA\r
+ { 0x00, 0x98, 0x98, 0x00 }, // BROWN\r
+ { 0x98, 0x98, 0x98, 0x00 }, // LIGHTGRAY\r
+ { 0x30, 0x30, 0x30, 0x00 }, // DARKGRAY - BRIGHT BLACK\r
+ { 0xff, 0x00, 0x00, 0x00 }, // BLUE\r
+ { 0x00, 0xff, 0x00, 0x00 }, // LIME\r
+ { 0xff, 0xff, 0x00, 0x00 }, // CYAN\r
+ { 0x00, 0x00, 0xff, 0x00 }, // RED\r
+ { 0xff, 0x00, 0xff, 0x00 }, // FUCHSIA\r
+ { 0x00, 0xff, 0xff, 0x00 }, // YELLOW\r
+ { 0xff, 0xff, 0xff, 0x00 } // WHITE\r
};\r
\r
-EFI_NARROW_GLYPH mCursorGlyph = {\r
+EFI_NARROW_GLYPH mCursorGlyph = {\r
0x0000,\r
0x00,\r
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF }\r
+ { 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF }\r
};\r
\r
-CHAR16 SpaceStr[] = { NARROW_CHAR, ' ', 0 };\r
+CHAR16 SpaceStr[] = { NARROW_CHAR, ' ', 0 };\r
\r
-EFI_DRIVER_BINDING_PROTOCOL gGraphicsConsoleDriverBinding = {\r
+EFI_DRIVER_BINDING_PROTOCOL gGraphicsConsoleDriverBinding = {\r
GraphicsConsoleControllerDriverSupported,\r
GraphicsConsoleControllerDriverStart,\r
GraphicsConsoleControllerDriverStop,\r
EFI_STATUS\r
EFIAPI\r
GraphicsConsoleControllerDriverSupported (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE Controller,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;\r
- EFI_UGA_DRAW_PROTOCOL *UgaDraw;\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
+ EFI_STATUS Status;\r
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;\r
+ EFI_UGA_DRAW_PROTOCOL *UgaDraw;\r
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
\r
GraphicsOutput = NULL;\r
UgaDraw = NULL;\r
Status = gBS->OpenProtocol (\r
Controller,\r
&gEfiGraphicsOutputProtocolGuid,\r
- (VOID **) &GraphicsOutput,\r
+ (VOID **)&GraphicsOutput,\r
This->DriverBindingHandle,\r
Controller,\r
EFI_OPEN_PROTOCOL_BY_DRIVER\r
Status = gBS->OpenProtocol (\r
Controller,\r
&gEfiUgaDrawProtocolGuid,\r
- (VOID **) &UgaDraw,\r
+ (VOID **)&UgaDraw,\r
This->DriverBindingHandle,\r
Controller,\r
EFI_OPEN_PROTOCOL_BY_DRIVER\r
);\r
}\r
+\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
Status = gBS->OpenProtocol (\r
Controller,\r
&gEfiDevicePathProtocolGuid,\r
- (VOID **) &DevicePath,\r
+ (VOID **)&DevicePath,\r
This->DriverBindingHandle,\r
Controller,\r
EFI_OPEN_PROTOCOL_BY_DRIVER\r
);\r
if (!EFI_ERROR (Status)) {\r
gBS->CloseProtocol (\r
- Controller,\r
- &gEfiDevicePathProtocolGuid,\r
- This->DriverBindingHandle,\r
- Controller\r
- );\r
+ Controller,\r
+ &gEfiDevicePathProtocolGuid,\r
+ This->DriverBindingHandle,\r
+ Controller\r
+ );\r
} else {\r
goto Error;\r
}\r
Error:\r
if (GraphicsOutput != NULL) {\r
gBS->CloseProtocol (\r
- Controller,\r
- &gEfiGraphicsOutputProtocolGuid,\r
- This->DriverBindingHandle,\r
- Controller\r
- );\r
+ Controller,\r
+ &gEfiGraphicsOutputProtocolGuid,\r
+ This->DriverBindingHandle,\r
+ Controller\r
+ );\r
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {\r
gBS->CloseProtocol (\r
- Controller,\r
- &gEfiUgaDrawProtocolGuid,\r
- This->DriverBindingHandle,\r
- Controller\r
- );\r
+ Controller,\r
+ &gEfiUgaDrawProtocolGuid,\r
+ This->DriverBindingHandle,\r
+ Controller\r
+ );\r
}\r
+\r
return Status;\r
}\r
\r
**/\r
EFI_STATUS\r
InitializeGraphicsConsoleTextMode (\r
- IN UINT32 HorizontalResolution,\r
- IN UINT32 VerticalResolution,\r
- IN UINT32 GopModeNumber,\r
- OUT UINTN *TextModeCount,\r
- OUT GRAPHICS_CONSOLE_MODE_DATA **TextModeData\r
+ IN UINT32 HorizontalResolution,\r
+ IN UINT32 VerticalResolution,\r
+ IN UINT32 GopModeNumber,\r
+ OUT UINTN *TextModeCount,\r
+ OUT GRAPHICS_CONSOLE_MODE_DATA **TextModeData\r
)\r
{\r
UINTN Index;\r
NewModeBuffer[ValidCount].DeltaX = (HorizontalResolution - (80 * EFI_GLYPH_WIDTH)) >> 1;\r
NewModeBuffer[ValidCount].DeltaY = (VerticalResolution - (50 * EFI_GLYPH_HEIGHT)) >> 1;\r
}\r
+\r
NewModeBuffer[ValidCount].GopWidth = HorizontalResolution;\r
NewModeBuffer[ValidCount].GopHeight = VerticalResolution;\r
NewModeBuffer[ValidCount].GopModeNumber = GopModeNumber;\r
//\r
for (Index = 0; Index < Count; Index++) {\r
if ((ModeBuffer[Index].Columns == 0) || (ModeBuffer[Index].Rows == 0) ||\r
- (ModeBuffer[Index].Columns > MaxColumns) || (ModeBuffer[Index].Rows > MaxRows)) {\r
+ (ModeBuffer[Index].Columns > MaxColumns) || (ModeBuffer[Index].Rows > MaxRows))\r
+ {\r
//\r
// Skip the pre-defined mode which is invalid or exceeds the max column and row.\r
//\r
continue;\r
}\r
+\r
for (ValidIndex = 0; ValidIndex < ValidCount; ValidIndex++) {\r
if ((ModeBuffer[Index].Columns == NewModeBuffer[ValidIndex].Columns) &&\r
- (ModeBuffer[Index].Rows == NewModeBuffer[ValidIndex].Rows)) {\r
+ (ModeBuffer[Index].Rows == NewModeBuffer[ValidIndex].Rows))\r
+ {\r
//\r
// Skip the duplicated mode.\r
//\r
break;\r
}\r
}\r
+\r
if (ValidIndex == ValidCount) {\r
NewModeBuffer[ValidCount].Columns = ModeBuffer[Index].Columns;\r
NewModeBuffer[ValidCount].Rows = ModeBuffer[Index].Rows;\r
}\r
\r
DEBUG_CODE_BEGIN ();\r
- for (Index = 0; Index < ValidCount; Index++) {\r
- DEBUG ((DEBUG_INFO, "Graphics - Mode %d, Column = %d, Row = %d\n",\r
- Index, NewModeBuffer[Index].Columns, NewModeBuffer[Index].Rows));\r
- }\r
+ for (Index = 0; Index < ValidCount; Index++) {\r
+ DEBUG ((\r
+ DEBUG_INFO,\r
+ "Graphics - Mode %d, Column = %d, Row = %d\n",\r
+ Index,\r
+ NewModeBuffer[Index].Columns,\r
+ NewModeBuffer[Index].Rows\r
+ ));\r
+ }\r
+\r
DEBUG_CODE_END ();\r
\r
//\r
EFI_STATUS\r
EFIAPI\r
GraphicsConsoleControllerDriverStart (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE Controller,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
)\r
{\r
- EFI_STATUS Status;\r
- GRAPHICS_CONSOLE_DEV *Private;\r
- UINT32 HorizontalResolution;\r
- UINT32 VerticalResolution;\r
- UINT32 ColorDepth;\r
- UINT32 RefreshRate;\r
- UINT32 ModeIndex;\r
- UINTN MaxMode;\r
- UINT32 ModeNumber;\r
- EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE *Mode;\r
- UINTN SizeOfInfo;\r
- EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;\r
- INT32 PreferMode;\r
- INT32 Index;\r
- UINTN Column;\r
- UINTN Row;\r
- UINTN DefaultColumn;\r
- UINTN DefaultRow;\r
+ EFI_STATUS Status;\r
+ GRAPHICS_CONSOLE_DEV *Private;\r
+ UINT32 HorizontalResolution;\r
+ UINT32 VerticalResolution;\r
+ UINT32 ColorDepth;\r
+ UINT32 RefreshRate;\r
+ UINT32 ModeIndex;\r
+ UINTN MaxMode;\r
+ UINT32 ModeNumber;\r
+ EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE *Mode;\r
+ UINTN SizeOfInfo;\r
+ EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;\r
+ INT32 PreferMode;\r
+ INT32 Index;\r
+ UINTN Column;\r
+ UINTN Row;\r
+ UINTN DefaultColumn;\r
+ UINTN DefaultRow;\r
\r
ModeNumber = 0;\r
\r
Status = gBS->OpenProtocol (\r
Controller,\r
&gEfiGraphicsOutputProtocolGuid,\r
- (VOID **) &Private->GraphicsOutput,\r
+ (VOID **)&Private->GraphicsOutput,\r
This->DriverBindingHandle,\r
Controller,\r
EFI_OPEN_PROTOCOL_BY_DRIVER\r
);\r
\r
- if (EFI_ERROR(Status) && FeaturePcdGet (PcdUgaConsumeSupport)) {\r
+ if (EFI_ERROR (Status) && FeaturePcdGet (PcdUgaConsumeSupport)) {\r
Status = gBS->OpenProtocol (\r
Controller,\r
&gEfiUgaDrawProtocolGuid,\r
- (VOID **) &Private->UgaDraw,\r
+ (VOID **)&Private->UgaDraw,\r
This->DriverBindingHandle,\r
Controller,\r
EFI_OPEN_PROTOCOL_BY_DRIVER\r
goto Error;\r
}\r
\r
- HorizontalResolution = PcdGet32 (PcdVideoHorizontalResolution);\r
- VerticalResolution = PcdGet32 (PcdVideoVerticalResolution);\r
+ HorizontalResolution = PcdGet32 (PcdVideoHorizontalResolution);\r
+ VerticalResolution = PcdGet32 (PcdVideoVerticalResolution);\r
\r
if (Private->GraphicsOutput != NULL) {\r
//\r
\r
for (ModeIndex = 0; ModeIndex < MaxMode; ModeIndex++) {\r
Status = Private->GraphicsOutput->QueryMode (\r
- Private->GraphicsOutput,\r
- ModeIndex,\r
- &SizeOfInfo,\r
- &Info\r
- );\r
+ Private->GraphicsOutput,\r
+ ModeIndex,\r
+ &SizeOfInfo,\r
+ &Info\r
+ );\r
if (!EFI_ERROR (Status)) {\r
if ((Info->HorizontalResolution > HorizontalResolution) ||\r
- ((Info->HorizontalResolution == HorizontalResolution) && (Info->VerticalResolution > VerticalResolution))) {\r
+ ((Info->HorizontalResolution == HorizontalResolution) && (Info->VerticalResolution > VerticalResolution)))\r
+ {\r
HorizontalResolution = Info->HorizontalResolution;\r
VerticalResolution = Info->VerticalResolution;\r
ModeNumber = ModeIndex;\r
}\r
+\r
FreePool (Info);\r
}\r
}\r
+\r
if ((HorizontalResolution == 0x0) || (VerticalResolution == 0x0)) {\r
Status = EFI_UNSUPPORTED;\r
goto Error;\r
// Use user-defined resolution\r
//\r
Status = CheckModeSupported (\r
- Private->GraphicsOutput,\r
- HorizontalResolution,\r
- VerticalResolution,\r
- &ModeNumber\r
- );\r
+ Private->GraphicsOutput,\r
+ HorizontalResolution,\r
+ VerticalResolution,\r
+ &ModeNumber\r
+ );\r
if (EFI_ERROR (Status)) {\r
//\r
// if not supporting current mode, try 800x600 which is required by UEFI/EFI spec\r
//\r
HorizontalResolution = 800;\r
VerticalResolution = 600;\r
- Status = CheckModeSupported (\r
- Private->GraphicsOutput,\r
- HorizontalResolution,\r
- VerticalResolution,\r
- &ModeNumber\r
- );\r
+ Status = CheckModeSupported (\r
+ Private->GraphicsOutput,\r
+ HorizontalResolution,\r
+ VerticalResolution,\r
+ &ModeNumber\r
+ );\r
Mode = Private->GraphicsOutput->Mode;\r
- if (EFI_ERROR (Status) && Mode->MaxMode != 0) {\r
+ if (EFI_ERROR (Status) && (Mode->MaxMode != 0)) {\r
//\r
// If set default mode failed or device doesn't support default mode, then get the current mode information\r
//\r
HorizontalResolution = Mode->Info->HorizontalResolution;\r
- VerticalResolution = Mode->Info->VerticalResolution;\r
- ModeNumber = Mode->Mode;\r
+ VerticalResolution = Mode->Info->VerticalResolution;\r
+ ModeNumber = Mode->Mode;\r
}\r
}\r
}\r
- if (ModeNumber != Private->GraphicsOutput->Mode->Mode) {\r
+\r
+ if (EFI_ERROR (Status) || (ModeNumber != Private->GraphicsOutput->Mode->Mode)) {\r
//\r
// Current graphics mode is not set or is not set to the mode which we have found,\r
// set the new graphic mode.\r
//\r
// At first try to set user-defined resolution\r
//\r
- ColorDepth = 32;\r
- RefreshRate = 60;\r
- Status = Private->UgaDraw->SetMode (\r
- Private->UgaDraw,\r
- HorizontalResolution,\r
- VerticalResolution,\r
- ColorDepth,\r
- RefreshRate\r
- );\r
+ ColorDepth = 32;\r
+ RefreshRate = 60;\r
+ Status = Private->UgaDraw->SetMode (\r
+ Private->UgaDraw,\r
+ HorizontalResolution,\r
+ VerticalResolution,\r
+ ColorDepth,\r
+ RefreshRate\r
+ );\r
if (EFI_ERROR (Status)) {\r
//\r
// Try to set 800*600 which is required by UEFI/EFI spec\r
//\r
Status = Private->UgaDraw->SetMode (\r
- Private->UgaDraw,\r
- 800,\r
- 600,\r
- ColorDepth,\r
- RefreshRate\r
- );\r
+ Private->UgaDraw,\r
+ 800,\r
+ 600,\r
+ ColorDepth,\r
+ RefreshRate\r
+ );\r
if (EFI_ERROR (Status)) {\r
Status = Private->UgaDraw->GetMode (\r
- Private->UgaDraw,\r
- &HorizontalResolution,\r
- &VerticalResolution,\r
- &ColorDepth,\r
- &RefreshRate\r
- );\r
+ Private->UgaDraw,\r
+ &HorizontalResolution,\r
+ &VerticalResolution,\r
+ &ColorDepth,\r
+ &RefreshRate\r
+ );\r
if (EFI_ERROR (Status)) {\r
goto Error;\r
}\r
//\r
// Update the maximum number of modes\r
//\r
- Private->SimpleTextOutputMode.MaxMode = (INT32) MaxMode;\r
+ Private->SimpleTextOutputMode.MaxMode = (INT32)MaxMode;\r
\r
//\r
// Initialize the Mode of graphics console devices\r
//\r
- PreferMode = -1;\r
+ PreferMode = -1;\r
DefaultColumn = PcdGet32 (PcdConOutColumn);\r
- DefaultRow = PcdGet32 (PcdConOutRow);\r
- Column = 0;\r
- Row = 0;\r
+ DefaultRow = PcdGet32 (PcdConOutRow);\r
+ Column = 0;\r
+ Row = 0;\r
for (Index = 0; Index < (INT32)MaxMode; Index++) {\r
- if (DefaultColumn != 0 && DefaultRow != 0) {\r
+ if ((DefaultColumn != 0) && (DefaultRow != 0)) {\r
if ((Private->ModeData[Index].Columns == DefaultColumn) &&\r
- (Private->ModeData[Index].Rows == DefaultRow)) {\r
+ (Private->ModeData[Index].Rows == DefaultRow))\r
+ {\r
PreferMode = Index;\r
break;\r
}\r
} else {\r
if ((Private->ModeData[Index].Columns > Column) &&\r
- (Private->ModeData[Index].Rows > Row)) {\r
- Column = Private->ModeData[Index].Columns;\r
- Row = Private->ModeData[Index].Rows;\r
+ (Private->ModeData[Index].Rows > Row))\r
+ {\r
+ Column = Private->ModeData[Index].Columns;\r
+ Row = Private->ModeData[Index].Rows;\r
PreferMode = Index;\r
}\r
}\r
}\r
+\r
Private->SimpleTextOutput.Mode->Mode = (INT32)PreferMode;\r
DEBUG ((DEBUG_INFO, "Graphics Console Started, Mode: %d\n", PreferMode));\r
\r
EFI_STATUS\r
EFIAPI\r
GraphicsConsoleControllerDriverStop (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN UINTN NumberOfChildren,\r
- IN EFI_HANDLE *ChildHandleBuffer\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE Controller,\r
+ IN UINTN NumberOfChildren,\r
+ IN EFI_HANDLE *ChildHandleBuffer\r
)\r
{\r
EFI_STATUS Status;\r
Status = gBS->OpenProtocol (\r
Controller,\r
&gEfiSimpleTextOutProtocolGuid,\r
- (VOID **) &SimpleTextOutput,\r
+ (VOID **)&SimpleTextOutput,\r
This->DriverBindingHandle,\r
Controller,\r
EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
//\r
if (Private->GraphicsOutput != NULL) {\r
gBS->CloseProtocol (\r
- Controller,\r
- &gEfiGraphicsOutputProtocolGuid,\r
- This->DriverBindingHandle,\r
- Controller\r
- );\r
+ Controller,\r
+ &gEfiGraphicsOutputProtocolGuid,\r
+ This->DriverBindingHandle,\r
+ Controller\r
+ );\r
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {\r
gBS->CloseProtocol (\r
- Controller,\r
- &gEfiUgaDrawProtocolGuid,\r
- This->DriverBindingHandle,\r
- Controller\r
- );\r
+ Controller,\r
+ &gEfiUgaDrawProtocolGuid,\r
+ This->DriverBindingHandle,\r
+ Controller\r
+ );\r
}\r
\r
if (Private->LineBuffer != NULL) {\r
OUT UINT32 *CurrentModeNumber\r
)\r
{\r
- UINT32 ModeNumber;\r
- EFI_STATUS Status;\r
- UINTN SizeOfInfo;\r
- EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;\r
- UINT32 MaxMode;\r
+ UINT32 ModeNumber;\r
+ EFI_STATUS Status;\r
+ UINTN SizeOfInfo;\r
+ EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;\r
+ UINT32 MaxMode;\r
\r
Status = EFI_SUCCESS;\r
MaxMode = GraphicsOutput->Mode->MaxMode;\r
\r
for (ModeNumber = 0; ModeNumber < MaxMode; ModeNumber++) {\r
Status = GraphicsOutput->QueryMode (\r
- GraphicsOutput,\r
- ModeNumber,\r
- &SizeOfInfo,\r
- &Info\r
- );\r
+ GraphicsOutput,\r
+ ModeNumber,\r
+ &SizeOfInfo,\r
+ &Info\r
+ );\r
if (!EFI_ERROR (Status)) {\r
if ((Info->HorizontalResolution == HorizontalResolution) &&\r
- (Info->VerticalResolution == VerticalResolution)) {\r
+ (Info->VerticalResolution == VerticalResolution))\r
+ {\r
if ((GraphicsOutput->Mode->Info->HorizontalResolution == HorizontalResolution) &&\r
- (GraphicsOutput->Mode->Info->VerticalResolution == VerticalResolution)) {\r
+ (GraphicsOutput->Mode->Info->VerticalResolution == VerticalResolution))\r
+ {\r
//\r
// If video device has been set to this mode, we do not need to SetMode again\r
//\r
}\r
}\r
}\r
+\r
FreePool (Info);\r
}\r
}\r
return Status;\r
}\r
\r
-\r
/**\r
Locate HII Database protocol and HII Font protocol.\r
\r
{\r
EFI_STATUS Status;\r
\r
- Status = gBS->LocateProtocol (&gEfiHiiDatabaseProtocolGuid, NULL, (VOID **) &mHiiDatabase);\r
+ Status = gBS->LocateProtocol (&gEfiHiiDatabaseProtocolGuid, NULL, (VOID **)&mHiiDatabase);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
\r
- Status = gBS->LocateProtocol (&gEfiHiiFontProtocolGuid, NULL, (VOID **) &mHiiFont);\r
+ Status = gBS->LocateProtocol (&gEfiHiiFontProtocolGuid, NULL, (VOID **)&mHiiFont);\r
return Status;\r
}\r
\r
IN BOOLEAN ExtendedVerification\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
+\r
Status = This->SetMode (This, 0);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+\r
Status = This->SetAttribute (This, EFI_TEXT_ATTR (This->Mode->Attribute & 0x0F, EFI_BACKGROUND_BLACK));\r
return Status;\r
}\r
\r
-\r
/**\r
Write a Unicode string to the output device.\r
\r
IN CHAR16 *WString\r
)\r
{\r
- GRAPHICS_CONSOLE_DEV *Private;\r
+ GRAPHICS_CONSOLE_DEV *Private;\r
EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;\r
- EFI_UGA_DRAW_PROTOCOL *UgaDraw;\r
- INTN Mode;\r
- UINTN MaxColumn;\r
- UINTN MaxRow;\r
- UINTN Width;\r
- UINTN Height;\r
- UINTN Delta;\r
- EFI_STATUS Status;\r
- BOOLEAN Warning;\r
+ EFI_UGA_DRAW_PROTOCOL *UgaDraw;\r
+ INTN Mode;\r
+ UINTN MaxColumn;\r
+ UINTN MaxRow;\r
+ UINTN Width;\r
+ UINTN Height;\r
+ UINTN Delta;\r
+ EFI_STATUS Status;\r
+ BOOLEAN Warning;\r
EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground;\r
EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background;\r
- UINTN DeltaX;\r
- UINTN DeltaY;\r
- UINTN Count;\r
- UINTN Index;\r
- INT32 OriginAttribute;\r
- EFI_TPL OldTpl;\r
+ UINTN DeltaX;\r
+ UINTN DeltaY;\r
+ UINTN Count;\r
+ UINTN Index;\r
+ INT32 OriginAttribute;\r
+ EFI_TPL OldTpl;\r
\r
if (This->Mode->Mode == -1) {\r
//\r
//\r
// Current mode\r
//\r
- Mode = This->Mode->Mode;\r
- Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);\r
+ Mode = This->Mode->Mode;\r
+ Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);\r
GraphicsOutput = Private->GraphicsOutput;\r
- UgaDraw = Private->UgaDraw;\r
+ UgaDraw = Private->UgaDraw;\r
\r
MaxColumn = Private->ModeData[Mode].Columns;\r
MaxRow = Private->ModeData[Mode].Rows;\r
- DeltaX = (UINTN) Private->ModeData[Mode].DeltaX;\r
- DeltaY = (UINTN) Private->ModeData[Mode].DeltaY;\r
+ DeltaX = (UINTN)Private->ModeData[Mode].DeltaX;\r
+ DeltaY = (UINTN)Private->ModeData[Mode].DeltaY;\r
Width = MaxColumn * EFI_GLYPH_WIDTH;\r
Height = (MaxRow - 1) * EFI_GLYPH_HEIGHT;\r
Delta = Width * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL);\r
OriginAttribute = This->Mode->Attribute;\r
\r
while (*WString != L'\0') {\r
-\r
if (*WString == CHAR_BACKSPACE) {\r
//\r
// If the cursor is at the left edge of the display, then move the cursor\r
// one row up.\r
//\r
- if (This->Mode->CursorColumn == 0 && This->Mode->CursorRow > 0) {\r
+ if ((This->Mode->CursorColumn == 0) && (This->Mode->CursorRow > 0)) {\r
This->Mode->CursorRow--;\r
- This->Mode->CursorColumn = (INT32) (MaxColumn - 1);\r
+ This->Mode->CursorColumn = (INT32)(MaxColumn - 1);\r
This->OutputString (This, SpaceStr);\r
FlushCursor (This);\r
This->Mode->CursorRow--;\r
- This->Mode->CursorColumn = (INT32) (MaxColumn - 1);\r
+ This->Mode->CursorColumn = (INT32)(MaxColumn - 1);\r
} else if (This->Mode->CursorColumn > 0) {\r
//\r
// If the cursor is not at the left edge of the display, then move the cursor\r
}\r
\r
WString++;\r
-\r
} else if (*WString == CHAR_LINEFEED) {\r
//\r
// If the cursor is at the bottom of the display, then scroll the display one\r
// row, and do not update the cursor position. Otherwise, move the cursor\r
// down one row.\r
//\r
- if (This->Mode->CursorRow == (INT32) (MaxRow - 1)) {\r
+ if (This->Mode->CursorRow == (INT32)(MaxRow - 1)) {\r
if (GraphicsOutput != NULL) {\r
//\r
// Scroll Screen Up One Row\r
//\r
GraphicsOutput->Blt (\r
- GraphicsOutput,\r
- NULL,\r
- EfiBltVideoToVideo,\r
- DeltaX,\r
- DeltaY + EFI_GLYPH_HEIGHT,\r
- DeltaX,\r
- DeltaY,\r
- Width,\r
- Height,\r
- Delta\r
- );\r
+ GraphicsOutput,\r
+ NULL,\r
+ EfiBltVideoToVideo,\r
+ DeltaX,\r
+ DeltaY + EFI_GLYPH_HEIGHT,\r
+ DeltaX,\r
+ DeltaY,\r
+ Width,\r
+ Height,\r
+ Delta\r
+ );\r
\r
//\r
// Print Blank Line at last line\r
//\r
GraphicsOutput->Blt (\r
- GraphicsOutput,\r
- &Background,\r
- EfiBltVideoFill,\r
- 0,\r
- 0,\r
- DeltaX,\r
- DeltaY + Height,\r
- Width,\r
- EFI_GLYPH_HEIGHT,\r
- Delta\r
- );\r
+ GraphicsOutput,\r
+ &Background,\r
+ EfiBltVideoFill,\r
+ 0,\r
+ 0,\r
+ DeltaX,\r
+ DeltaY + Height,\r
+ Width,\r
+ EFI_GLYPH_HEIGHT,\r
+ Delta\r
+ );\r
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {\r
//\r
// Scroll Screen Up One Row\r
//\r
UgaDraw->Blt (\r
- UgaDraw,\r
- NULL,\r
- EfiUgaVideoToVideo,\r
- DeltaX,\r
- DeltaY + EFI_GLYPH_HEIGHT,\r
- DeltaX,\r
- DeltaY,\r
- Width,\r
- Height,\r
- Delta\r
- );\r
+ UgaDraw,\r
+ NULL,\r
+ EfiUgaVideoToVideo,\r
+ DeltaX,\r
+ DeltaY + EFI_GLYPH_HEIGHT,\r
+ DeltaX,\r
+ DeltaY,\r
+ Width,\r
+ Height,\r
+ Delta\r
+ );\r
\r
//\r
// Print Blank Line at last line\r
//\r
UgaDraw->Blt (\r
- UgaDraw,\r
- (EFI_UGA_PIXEL *) (UINTN) &Background,\r
- EfiUgaVideoFill,\r
- 0,\r
- 0,\r
- DeltaX,\r
- DeltaY + Height,\r
- Width,\r
- EFI_GLYPH_HEIGHT,\r
- Delta\r
- );\r
+ UgaDraw,\r
+ (EFI_UGA_PIXEL *)(UINTN)&Background,\r
+ EfiUgaVideoFill,\r
+ 0,\r
+ 0,\r
+ DeltaX,\r
+ DeltaY + Height,\r
+ Width,\r
+ EFI_GLYPH_HEIGHT,\r
+ Delta\r
+ );\r
}\r
} else {\r
This->Mode->CursorRow++;\r
}\r
\r
WString++;\r
-\r
} else if (*WString == CHAR_CARRIAGE_RETURN) {\r
//\r
// Move the cursor to the beginning of the current row.\r
//\r
This->Mode->CursorColumn = 0;\r
WString++;\r
-\r
} else if (*WString == WIDE_CHAR) {\r
-\r
This->Mode->Attribute |= EFI_WIDE_ATTRIBUTE;\r
WString++;\r
-\r
} else if (*WString == NARROW_CHAR) {\r
-\r
- This->Mode->Attribute &= (~ (UINT32) EFI_WIDE_ATTRIBUTE);\r
+ This->Mode->Attribute &= (~(UINT32)EFI_WIDE_ATTRIBUTE);\r
WString++;\r
-\r
} else {\r
//\r
// Print the character at the current cursor position and move the cursor\r
// Count is used to determine how many characters are used regardless of their attributes\r
//\r
for (Count = 0, Index = 0; (This->Mode->CursorColumn + Index) < MaxColumn; Count++, Index++) {\r
- if (WString[Count] == CHAR_NULL ||\r
- WString[Count] == CHAR_BACKSPACE ||\r
- WString[Count] == CHAR_LINEFEED ||\r
- WString[Count] == CHAR_CARRIAGE_RETURN ||\r
- WString[Count] == WIDE_CHAR ||\r
- WString[Count] == NARROW_CHAR) {\r
+ if ((WString[Count] == CHAR_NULL) ||\r
+ (WString[Count] == CHAR_BACKSPACE) ||\r
+ (WString[Count] == CHAR_LINEFEED) ||\r
+ (WString[Count] == CHAR_CARRIAGE_RETURN) ||\r
+ (WString[Count] == WIDE_CHAR) ||\r
+ (WString[Count] == NARROW_CHAR))\r
+ {\r
break;\r
}\r
+\r
//\r
// Is the wide attribute on?\r
//\r
if (EFI_ERROR (Status)) {\r
Warning = TRUE;\r
}\r
+\r
//\r
// At the end of line, output carriage return and line feed\r
//\r
- WString += Count;\r
- This->Mode->CursorColumn += (INT32) Index;\r
- if (This->Mode->CursorColumn > (INT32) MaxColumn) {\r
+ WString += Count;\r
+ This->Mode->CursorColumn += (INT32)Index;\r
+ if (This->Mode->CursorColumn > (INT32)MaxColumn) {\r
This->Mode->CursorColumn -= 2;\r
This->OutputString (This, SpaceStr);\r
}\r
\r
- if (This->Mode->CursorColumn >= (INT32) MaxColumn) {\r
+ if (This->Mode->CursorColumn >= (INT32)MaxColumn) {\r
FlushCursor (This);\r
This->OutputString (This, mCrLfString);\r
FlushCursor (This);\r
\r
gBS->RestoreTPL (OldTpl);\r
return Status;\r
-\r
}\r
\r
/**\r
IN CHAR16 *WString\r
)\r
{\r
- EFI_STATUS Status;\r
- UINT16 Count;\r
+ EFI_STATUS Status;\r
+ UINT16 Count;\r
\r
- EFI_IMAGE_OUTPUT *Blt;\r
+ EFI_IMAGE_OUTPUT *Blt;\r
\r
Blt = NULL;\r
Count = 0;\r
FreePool (Blt);\r
Blt = NULL;\r
}\r
+\r
Count++;\r
\r
if (EFI_ERROR (Status)) {\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Returns information for an available text mode that the output device(s)\r
supports\r
EFI_STATUS Status;\r
EFI_TPL OldTpl;\r
\r
- if (ModeNumber >= (UINTN) This->Mode->MaxMode) {\r
+ if (ModeNumber >= (UINTN)This->Mode->MaxMode) {\r
return EFI_UNSUPPORTED;\r
}\r
\r
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);\r
Status = EFI_SUCCESS;\r
\r
- Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);\r
+ Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);\r
\r
- *Columns = Private->ModeData[ModeNumber].Columns;\r
- *Rows = Private->ModeData[ModeNumber].Rows;\r
+ *Columns = Private->ModeData[ModeNumber].Columns;\r
+ *Rows = Private->ModeData[ModeNumber].Rows;\r
\r
- if (*Columns <= 0 || *Rows <= 0) {\r
+ if ((*Columns <= 0) || (*Rows <= 0)) {\r
Status = EFI_UNSUPPORTED;\r
goto Done;\r
-\r
}\r
\r
Done:\r
return Status;\r
}\r
\r
-\r
/**\r
Sets the output device(s) to a specified mode.\r
\r
IN UINTN ModeNumber\r
)\r
{\r
- EFI_STATUS Status;\r
- GRAPHICS_CONSOLE_DEV *Private;\r
- GRAPHICS_CONSOLE_MODE_DATA *ModeData;\r
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL *NewLineBuffer;\r
- UINT32 HorizontalResolution;\r
- UINT32 VerticalResolution;\r
- EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;\r
- EFI_UGA_DRAW_PROTOCOL *UgaDraw;\r
- UINT32 ColorDepth;\r
- UINT32 RefreshRate;\r
- EFI_TPL OldTpl;\r
+ EFI_STATUS Status;\r
+ GRAPHICS_CONSOLE_DEV *Private;\r
+ GRAPHICS_CONSOLE_MODE_DATA *ModeData;\r
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL *NewLineBuffer;\r
+ UINT32 HorizontalResolution;\r
+ UINT32 VerticalResolution;\r
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;\r
+ EFI_UGA_DRAW_PROTOCOL *UgaDraw;\r
+ UINT32 ColorDepth;\r
+ UINT32 RefreshRate;\r
+ EFI_TPL OldTpl;\r
\r
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);\r
\r
- Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);\r
+ Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);\r
GraphicsOutput = Private->GraphicsOutput;\r
- UgaDraw = Private->UgaDraw;\r
+ UgaDraw = Private->UgaDraw;\r
\r
//\r
// Make sure the requested mode number is supported\r
//\r
- if (ModeNumber >= (UINTN) This->Mode->MaxMode) {\r
+ if (ModeNumber >= (UINTN)This->Mode->MaxMode) {\r
Status = EFI_UNSUPPORTED;\r
goto Done;\r
}\r
\r
- ModeData = &(Private->ModeData[ModeNumber]);\r
+ ModeData = &(Private->ModeData[ModeNumber]);\r
\r
- if (ModeData->Columns <= 0 && ModeData->Rows <= 0) {\r
+ if ((ModeData->Columns <= 0) && (ModeData->Rows <= 0)) {\r
Status = EFI_UNSUPPORTED;\r
goto Done;\r
}\r
//\r
// If the new mode is the same as the old mode, then just return EFI_SUCCESS\r
//\r
- if ((INT32) ModeNumber == This->Mode->Mode) {\r
+ if ((INT32)ModeNumber == This->Mode->Mode) {\r
//\r
// Clear the current text window on the current graphics console\r
//\r
Status = EFI_SUCCESS;\r
goto Done;\r
}\r
+\r
//\r
// Otherwise, the size of the text console and/or the GOP/UGA mode will be changed,\r
// so erase the cursor, and free the LineBuffer for the current mode\r
// The current graphics mode is correct, so simply clear the entire display\r
//\r
Status = GraphicsOutput->Blt (\r
- GraphicsOutput,\r
- &mGraphicsEfiColors[0],\r
- EfiBltVideoFill,\r
- 0,\r
- 0,\r
- 0,\r
- 0,\r
- ModeData->GopWidth,\r
- ModeData->GopHeight,\r
- 0\r
- );\r
+ GraphicsOutput,\r
+ &mGraphicsEfiColors[0],\r
+ EfiBltVideoFill,\r
+ 0,\r
+ 0,\r
+ 0,\r
+ 0,\r
+ ModeData->GopWidth,\r
+ ModeData->GopHeight,\r
+ 0\r
+ );\r
}\r
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {\r
//\r
&ColorDepth,\r
&RefreshRate\r
);\r
- if (EFI_ERROR (Status) || HorizontalResolution != ModeData->GopWidth || VerticalResolution != ModeData->GopHeight) {\r
+ if (EFI_ERROR (Status) || (HorizontalResolution != ModeData->GopWidth) || (VerticalResolution != ModeData->GopHeight)) {\r
//\r
// Either no graphics mode is currently set, or it is set to the wrong resolution, so set the new graphics mode\r
//\r
//\r
Status = UgaDraw->Blt (\r
UgaDraw,\r
- (EFI_UGA_PIXEL *) (UINTN) &mGraphicsEfiColors[0],\r
+ (EFI_UGA_PIXEL *)(UINTN)&mGraphicsEfiColors[0],\r
EfiUgaVideoFill,\r
0,\r
0,\r
//\r
// The new mode is valid, so commit the mode change\r
//\r
- This->Mode->Mode = (INT32) ModeNumber;\r
+ This->Mode->Mode = (INT32)ModeNumber;\r
\r
//\r
// Move the text cursor to the upper left hand corner of the display and flush it\r
//\r
- This->Mode->CursorColumn = 0;\r
- This->Mode->CursorRow = 0;\r
+ This->Mode->CursorColumn = 0;\r
+ This->Mode->CursorRow = 0;\r
\r
FlushCursor (This);\r
\r
return Status;\r
}\r
\r
-\r
/**\r
Sets the background and foreground colors for the OutputString () and\r
ClearScreen () functions.\r
IN UINTN Attribute\r
)\r
{\r
- EFI_TPL OldTpl;\r
+ EFI_TPL OldTpl;\r
\r
if ((Attribute | 0x7F) != 0x7F) {\r
return EFI_UNSUPPORTED;\r
}\r
\r
- if ((INT32) Attribute == This->Mode->Attribute) {\r
+ if ((INT32)Attribute == This->Mode->Attribute) {\r
return EFI_SUCCESS;\r
}\r
\r
\r
FlushCursor (This);\r
\r
- This->Mode->Attribute = (INT32) Attribute;\r
+ This->Mode->Attribute = (INT32)Attribute;\r
\r
FlushCursor (This);\r
\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Clears the output device(s) display to the currently selected background\r
color.\r
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This\r
)\r
{\r
- EFI_STATUS Status;\r
- GRAPHICS_CONSOLE_DEV *Private;\r
- GRAPHICS_CONSOLE_MODE_DATA *ModeData;\r
- EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;\r
- EFI_UGA_DRAW_PROTOCOL *UgaDraw;\r
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground;\r
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background;\r
- EFI_TPL OldTpl;\r
+ EFI_STATUS Status;\r
+ GRAPHICS_CONSOLE_DEV *Private;\r
+ GRAPHICS_CONSOLE_MODE_DATA *ModeData;\r
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;\r
+ EFI_UGA_DRAW_PROTOCOL *UgaDraw;\r
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground;\r
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background;\r
+ EFI_TPL OldTpl;\r
\r
if (This->Mode->Mode == -1) {\r
//\r
\r
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);\r
\r
- Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);\r
+ Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);\r
GraphicsOutput = Private->GraphicsOutput;\r
- UgaDraw = Private->UgaDraw;\r
- ModeData = &(Private->ModeData[This->Mode->Mode]);\r
+ UgaDraw = Private->UgaDraw;\r
+ ModeData = &(Private->ModeData[This->Mode->Mode]);\r
\r
GetTextColors (This, &Foreground, &Background);\r
if (GraphicsOutput != NULL) {\r
Status = GraphicsOutput->Blt (\r
- GraphicsOutput,\r
- &Background,\r
- EfiBltVideoFill,\r
- 0,\r
- 0,\r
- 0,\r
- 0,\r
- ModeData->GopWidth,\r
- ModeData->GopHeight,\r
- 0\r
- );\r
+ GraphicsOutput,\r
+ &Background,\r
+ EfiBltVideoFill,\r
+ 0,\r
+ 0,\r
+ 0,\r
+ 0,\r
+ ModeData->GopWidth,\r
+ ModeData->GopHeight,\r
+ 0\r
+ );\r
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {\r
Status = UgaDraw->Blt (\r
UgaDraw,\r
- (EFI_UGA_PIXEL *) (UINTN) &Background,\r
+ (EFI_UGA_PIXEL *)(UINTN)&Background,\r
EfiUgaVideoFill,\r
0,\r
0,\r
Status = EFI_UNSUPPORTED;\r
}\r
\r
- This->Mode->CursorColumn = 0;\r
- This->Mode->CursorRow = 0;\r
+ This->Mode->CursorColumn = 0;\r
+ This->Mode->CursorRow = 0;\r
\r
FlushCursor (This);\r
\r
return Status;\r
}\r
\r
-\r
/**\r
Sets the current coordinates of the cursor position.\r
\r
\r
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);\r
\r
- Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);\r
- ModeData = &(Private->ModeData[This->Mode->Mode]);\r
+ Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);\r
+ ModeData = &(Private->ModeData[This->Mode->Mode]);\r
\r
if ((Column >= ModeData->Columns) || (Row >= ModeData->Rows)) {\r
Status = EFI_UNSUPPORTED;\r
goto Done;\r
}\r
\r
- if ((This->Mode->CursorColumn == (INT32) Column) && (This->Mode->CursorRow == (INT32) Row)) {\r
+ if ((This->Mode->CursorColumn == (INT32)Column) && (This->Mode->CursorRow == (INT32)Row)) {\r
Status = EFI_SUCCESS;\r
goto Done;\r
}\r
\r
FlushCursor (This);\r
\r
- This->Mode->CursorColumn = (INT32) Column;\r
- This->Mode->CursorRow = (INT32) Row;\r
+ This->Mode->CursorColumn = (INT32)Column;\r
+ This->Mode->CursorRow = (INT32)Row;\r
\r
FlushCursor (This);\r
\r
return Status;\r
}\r
\r
-\r
/**\r
Makes the cursor visible or invisible.\r
\r
IN BOOLEAN Visible\r
)\r
{\r
- EFI_TPL OldTpl;\r
+ EFI_TPL OldTpl;\r
\r
if (This->Mode->Mode == -1) {\r
//\r
{\r
INTN Attribute;\r
\r
- Attribute = This->Mode->Attribute & 0x7F;\r
+ Attribute = This->Mode->Attribute & 0x7F;\r
\r
*Foreground = mGraphicsEfiColors[Attribute & 0x0f];\r
*Background = mGraphicsEfiColors[Attribute >> 4];\r
IN UINTN Count\r
)\r
{\r
- EFI_STATUS Status;\r
- GRAPHICS_CONSOLE_DEV *Private;\r
- EFI_IMAGE_OUTPUT *Blt;\r
- EFI_STRING String;\r
- EFI_FONT_DISPLAY_INFO *FontInfo;\r
- EFI_UGA_DRAW_PROTOCOL *UgaDraw;\r
- EFI_HII_ROW_INFO *RowInfoArray;\r
- UINTN RowInfoArraySize;\r
+ EFI_STATUS Status;\r
+ GRAPHICS_CONSOLE_DEV *Private;\r
+ EFI_IMAGE_OUTPUT *Blt;\r
+ EFI_STRING String;\r
+ EFI_FONT_DISPLAY_INFO *FontInfo;\r
+ EFI_UGA_DRAW_PROTOCOL *UgaDraw;\r
+ EFI_HII_ROW_INFO *RowInfoArray;\r
+ UINTN RowInfoArraySize;\r
\r
Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);\r
- Blt = (EFI_IMAGE_OUTPUT *) AllocateZeroPool (sizeof (EFI_IMAGE_OUTPUT));\r
+ Blt = (EFI_IMAGE_OUTPUT *)AllocateZeroPool (sizeof (EFI_IMAGE_OUTPUT));\r
if (Blt == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
\r
- Blt->Width = (UINT16) (Private->ModeData[This->Mode->Mode].GopWidth);\r
- Blt->Height = (UINT16) (Private->ModeData[This->Mode->Mode].GopHeight);\r
+ Blt->Width = (UINT16)(Private->ModeData[This->Mode->Mode].GopWidth);\r
+ Blt->Height = (UINT16)(Private->ModeData[This->Mode->Mode].GopHeight);\r
\r
String = AllocateCopyPool ((Count + 1) * sizeof (CHAR16), UnicodeWeight);\r
if (String == NULL) {\r
FreePool (Blt);\r
return EFI_OUT_OF_RESOURCES;\r
}\r
+\r
//\r
// Set the end character\r
//\r
*(String + Count) = L'\0';\r
\r
- FontInfo = (EFI_FONT_DISPLAY_INFO *) AllocateZeroPool (sizeof (EFI_FONT_DISPLAY_INFO));\r
+ FontInfo = (EFI_FONT_DISPLAY_INFO *)AllocateZeroPool (sizeof (EFI_FONT_DISPLAY_INFO));\r
if (FontInfo == NULL) {\r
FreePool (Blt);\r
FreePool (String);\r
return EFI_OUT_OF_RESOURCES;\r
}\r
+\r
//\r
// Get current foreground and background colors.\r
//\r
NULL,\r
NULL\r
);\r
-\r
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {\r
//\r
// If Graphics Output protocol cannot be found and PcdUgaConsumeSupport enabled,\r
// using UGA Draw protocol to draw.\r
//\r
- ASSERT (Private->UgaDraw!= NULL);\r
+ ASSERT (Private->UgaDraw != NULL);\r
\r
UgaDraw = Private->UgaDraw;\r
\r
// we ask StringToImage to print the string to blt buffer, then blt to device using UgaDraw.\r
//\r
Status = mHiiFont->StringToImage (\r
- mHiiFont,\r
- EFI_HII_IGNORE_IF_NO_GLYPH | EFI_HII_IGNORE_LINE_BREAK,\r
- String,\r
- FontInfo,\r
- &Blt,\r
- This->Mode->CursorColumn * EFI_GLYPH_WIDTH + Private->ModeData[This->Mode->Mode].DeltaX,\r
- This->Mode->CursorRow * EFI_GLYPH_HEIGHT + Private->ModeData[This->Mode->Mode].DeltaY,\r
- &RowInfoArray,\r
- &RowInfoArraySize,\r
- NULL\r
- );\r
+ mHiiFont,\r
+ EFI_HII_IGNORE_IF_NO_GLYPH | EFI_HII_IGNORE_LINE_BREAK,\r
+ String,\r
+ FontInfo,\r
+ &Blt,\r
+ This->Mode->CursorColumn * EFI_GLYPH_WIDTH + Private->ModeData[This->Mode->Mode].DeltaX,\r
+ This->Mode->CursorRow * EFI_GLYPH_HEIGHT + Private->ModeData[This->Mode->Mode].DeltaY,\r
+ &RowInfoArray,\r
+ &RowInfoArraySize,\r
+ NULL\r
+ );\r
\r
if (!EFI_ERROR (Status)) {\r
//\r
\r
Status = UgaDraw->Blt (\r
UgaDraw,\r
- (EFI_UGA_PIXEL *) Blt->Image.Bitmap,\r
+ (EFI_UGA_PIXEL *)Blt->Image.Bitmap,\r
EfiUgaBltBufferToVideo,\r
This->Mode->CursorColumn * EFI_GLYPH_WIDTH + Private->ModeData[This->Mode->Mode].DeltaX,\r
(This->Mode->CursorRow) * EFI_GLYPH_HEIGHT + Private->ModeData[This->Mode->Mode].DeltaY,\r
if (Blt != NULL) {\r
FreePool (Blt);\r
}\r
+\r
if (String != NULL) {\r
FreePool (String);\r
}\r
+\r
if (FontInfo != NULL) {\r
FreePool (FontInfo);\r
}\r
+\r
return Status;\r
}\r
\r
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This\r
)\r
{\r
- GRAPHICS_CONSOLE_DEV *Private;\r
- EFI_SIMPLE_TEXT_OUTPUT_MODE *CurrentMode;\r
- INTN GlyphX;\r
- INTN GlyphY;\r
- EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;\r
- EFI_UGA_DRAW_PROTOCOL *UgaDraw;\r
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION Foreground;\r
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION Background;\r
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION BltChar[EFI_GLYPH_HEIGHT][EFI_GLYPH_WIDTH];\r
- UINTN PosX;\r
- UINTN PosY;\r
+ GRAPHICS_CONSOLE_DEV *Private;\r
+ EFI_SIMPLE_TEXT_OUTPUT_MODE *CurrentMode;\r
+ INTN GlyphX;\r
+ INTN GlyphY;\r
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;\r
+ EFI_UGA_DRAW_PROTOCOL *UgaDraw;\r
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION Foreground;\r
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION Background;\r
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION BltChar[EFI_GLYPH_HEIGHT][EFI_GLYPH_WIDTH];\r
+ UINTN PosX;\r
+ UINTN PosY;\r
\r
CurrentMode = This->Mode;\r
\r
return EFI_SUCCESS;\r
}\r
\r
- Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);\r
+ Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);\r
GraphicsOutput = Private->GraphicsOutput;\r
- UgaDraw = Private->UgaDraw;\r
+ UgaDraw = Private->UgaDraw;\r
\r
//\r
// In this driver, only narrow character was supported.\r
//\r
// Blt a character to the screen\r
//\r
- GlyphX = (CurrentMode->CursorColumn * EFI_GLYPH_WIDTH) + Private->ModeData[CurrentMode->Mode].DeltaX;\r
- GlyphY = (CurrentMode->CursorRow * EFI_GLYPH_HEIGHT) + Private->ModeData[CurrentMode->Mode].DeltaY;\r
+ GlyphX = (CurrentMode->CursorColumn * EFI_GLYPH_WIDTH) + Private->ModeData[CurrentMode->Mode].DeltaX;\r
+ GlyphY = (CurrentMode->CursorRow * EFI_GLYPH_HEIGHT) + Private->ModeData[CurrentMode->Mode].DeltaY;\r
if (GraphicsOutput != NULL) {\r
GraphicsOutput->Blt (\r
- GraphicsOutput,\r
- (EFI_GRAPHICS_OUTPUT_BLT_PIXEL *) BltChar,\r
- EfiBltVideoToBltBuffer,\r
- GlyphX,\r
- GlyphY,\r
- 0,\r
- 0,\r
- EFI_GLYPH_WIDTH,\r
- EFI_GLYPH_HEIGHT,\r
- EFI_GLYPH_WIDTH * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)\r
- );\r
+ GraphicsOutput,\r
+ (EFI_GRAPHICS_OUTPUT_BLT_PIXEL *)BltChar,\r
+ EfiBltVideoToBltBuffer,\r
+ GlyphX,\r
+ GlyphY,\r
+ 0,\r
+ 0,\r
+ EFI_GLYPH_WIDTH,\r
+ EFI_GLYPH_HEIGHT,\r
+ EFI_GLYPH_WIDTH * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)\r
+ );\r
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {\r
UgaDraw->Blt (\r
- UgaDraw,\r
- (EFI_UGA_PIXEL *) (UINTN) BltChar,\r
- EfiUgaVideoToBltBuffer,\r
- GlyphX,\r
- GlyphY,\r
- 0,\r
- 0,\r
- EFI_GLYPH_WIDTH,\r
- EFI_GLYPH_HEIGHT,\r
- EFI_GLYPH_WIDTH * sizeof (EFI_UGA_PIXEL)\r
- );\r
+ UgaDraw,\r
+ (EFI_UGA_PIXEL *)(UINTN)BltChar,\r
+ EfiUgaVideoToBltBuffer,\r
+ GlyphX,\r
+ GlyphY,\r
+ 0,\r
+ 0,\r
+ EFI_GLYPH_WIDTH,\r
+ EFI_GLYPH_HEIGHT,\r
+ EFI_GLYPH_WIDTH * sizeof (EFI_UGA_PIXEL)\r
+ );\r
}\r
\r
GetTextColors (This, &Foreground.Pixel, &Background.Pixel);\r
\r
if (GraphicsOutput != NULL) {\r
GraphicsOutput->Blt (\r
- GraphicsOutput,\r
- (EFI_GRAPHICS_OUTPUT_BLT_PIXEL *) BltChar,\r
- EfiBltBufferToVideo,\r
- 0,\r
- 0,\r
- GlyphX,\r
- GlyphY,\r
- EFI_GLYPH_WIDTH,\r
- EFI_GLYPH_HEIGHT,\r
- EFI_GLYPH_WIDTH * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)\r
- );\r
+ GraphicsOutput,\r
+ (EFI_GRAPHICS_OUTPUT_BLT_PIXEL *)BltChar,\r
+ EfiBltBufferToVideo,\r
+ 0,\r
+ 0,\r
+ GlyphX,\r
+ GlyphY,\r
+ EFI_GLYPH_WIDTH,\r
+ EFI_GLYPH_HEIGHT,\r
+ EFI_GLYPH_WIDTH * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)\r
+ );\r
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {\r
UgaDraw->Blt (\r
- UgaDraw,\r
- (EFI_UGA_PIXEL *) (UINTN) BltChar,\r
- EfiUgaBltBufferToVideo,\r
- 0,\r
- 0,\r
- GlyphX,\r
- GlyphY,\r
- EFI_GLYPH_WIDTH,\r
- EFI_GLYPH_HEIGHT,\r
- EFI_GLYPH_WIDTH * sizeof (EFI_UGA_PIXEL)\r
- );\r
+ UgaDraw,\r
+ (EFI_UGA_PIXEL *)(UINTN)BltChar,\r
+ EfiUgaBltBufferToVideo,\r
+ 0,\r
+ 0,\r
+ GlyphX,\r
+ GlyphY,\r
+ EFI_GLYPH_WIDTH,\r
+ EFI_GLYPH_HEIGHT,\r
+ EFI_GLYPH_WIDTH * sizeof (EFI_UGA_PIXEL)\r
+ );\r
}\r
\r
return EFI_SUCCESS;\r
VOID\r
EFIAPI\r
RegisterFontPackage (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_HII_SIMPLE_FONT_PACKAGE_HDR *SimplifiedFont;\r
- UINT32 PackageLength;\r
- UINT8 *Package;\r
- UINT8 *Location;\r
- EFI_HII_DATABASE_PROTOCOL *HiiDatabase;\r
+ EFI_STATUS Status;\r
+ EFI_HII_SIMPLE_FONT_PACKAGE_HDR *SimplifiedFont;\r
+ UINT32 PackageLength;\r
+ UINT8 *Package;\r
+ UINT8 *Location;\r
+ EFI_HII_DATABASE_PROTOCOL *HiiDatabase;\r
\r
//\r
// Locate HII Database Protocol\r
Status = gBS->LocateProtocol (\r
&gEfiHiiDatabaseProtocolGuid,\r
NULL,\r
- (VOID **) &HiiDatabase\r
+ (VOID **)&HiiDatabase\r
);\r
if (EFI_ERROR (Status)) {\r
return;\r
// | |\r
// +--------------------------------+\r
\r
- PackageLength = sizeof (EFI_HII_SIMPLE_FONT_PACKAGE_HDR) + mNarrowFontSize + 4;\r
- Package = AllocateZeroPool (PackageLength);\r
+ PackageLength = sizeof (EFI_HII_SIMPLE_FONT_PACKAGE_HDR) + mNarrowFontSize + 4;\r
+ Package = AllocateZeroPool (PackageLength);\r
ASSERT (Package != NULL);\r
\r
- WriteUnaligned32((UINT32 *) Package,PackageLength);\r
- SimplifiedFont = (EFI_HII_SIMPLE_FONT_PACKAGE_HDR *) (Package + 4);\r
- SimplifiedFont->Header.Length = (UINT32) (PackageLength - 4);\r
+ WriteUnaligned32 ((UINT32 *)Package, PackageLength);\r
+ SimplifiedFont = (EFI_HII_SIMPLE_FONT_PACKAGE_HDR *)(Package + 4);\r
+ SimplifiedFont->Header.Length = (UINT32)(PackageLength - 4);\r
SimplifiedFont->Header.Type = EFI_HII_PACKAGE_SIMPLE_FONTS;\r
- SimplifiedFont->NumberOfNarrowGlyphs = (UINT16) (mNarrowFontSize / sizeof (EFI_NARROW_GLYPH));\r
+ SimplifiedFont->NumberOfNarrowGlyphs = (UINT16)(mNarrowFontSize / sizeof (EFI_NARROW_GLYPH));\r
\r
- Location = (UINT8 *) (&SimplifiedFont->NumberOfWideGlyphs + 1);\r
+ Location = (UINT8 *)(&SimplifiedFont->NumberOfWideGlyphs + 1);\r
CopyMem (Location, gUsStdNarrowGlyphData, mNarrowFontSize);\r
\r
//\r
EFI_STATUS\r
EFIAPI\r
InitializeGraphicsConsole (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
+ IN EFI_HANDLE ImageHandle,\r
+ IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
//\r
// Register notify function on HII Database Protocol to add font package.\r