summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c
diff options
context:
space:
mode:
authorli-elvin <li-elvin@6f19259b-4bc3-4df7-8a09-765794883524>2011-11-25 08:35:00 +0000
committerli-elvin <li-elvin@6f19259b-4bc3-4df7-8a09-765794883524>2011-11-25 08:35:00 +0000
commit79d07c66d98c033883494aff19023a87d09c4045 (patch)
tree32550251f4fa3df7314094bd061569f4e5d969fd /MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c
parent13535a3bdace81b201b8f96d2c5830824c70fb3c (diff)
downloadedk2-platforms-79d07c66d98c033883494aff19023a87d09c4045.tar.xz
Updated GraphicsConsole and Terminal driver text mode initialization routine for easy mode extension in future.
Signed-off-by: li-elvin Reviewed-by: hhtian git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12787 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c')
-rw-r--r--MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c44
1 files changed, 13 insertions, 31 deletions
diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c
index 8f2675228f..affb3ae8e1 100644
--- a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c
+++ b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c
@@ -205,7 +205,7 @@ TerminalConOutOutputString (
//
Mode = This->Mode;
- if (Mode->Mode >= TERMINAL_MAX_MODE) {
+ if (Mode->Mode >= Mode->MaxMode) {
return EFI_UNSUPPORTED;
}
@@ -392,8 +392,6 @@ TerminalConOutTestString (
It returns information for an available text mode
that the terminal supports.
- In this driver, we support text mode 80x25 (mode 0),
- 80x50 (mode 1), 100x31 (mode 2).
@param This Indicates the calling context.
@param ModeNumber The mode number to return information on.
@@ -402,7 +400,6 @@ TerminalConOutTestString (
@retval EFI_SUCCESS The requested mode information is returned.
@retval EFI_UNSUPPORTED The mode number is not valid.
- @retval EFI_DEVICE_ERROR
**/
EFI_STATUS
@@ -414,35 +411,20 @@ TerminalConOutQueryMode (
OUT UINTN *Rows
)
{
- if (This->Mode->MaxMode > TERMINAL_MAX_MODE) {
- return EFI_DEVICE_ERROR;
- }
+ TERMINAL_DEV *TerminalDevice;
- if (ModeNumber == 0) {
- *Columns = MODE0_COLUMN_COUNT;
- *Rows = MODE0_ROW_COUNT;
- return EFI_SUCCESS;
- } else if (ModeNumber == 1) {
- *Columns = MODE1_COLUMN_COUNT;
- *Rows = MODE1_ROW_COUNT;
- return EFI_SUCCESS;
- } else if (ModeNumber == 2) {
- *Columns = MODE2_COLUMN_COUNT;
- *Rows = MODE2_ROW_COUNT;
- return EFI_SUCCESS;
- } else if (ModeNumber == 3) {
- *Columns = (UINTN) PcdGet32 (PcdConOutColumn);
- if (*Columns == 0) {
- *Columns = MODE0_COLUMN_COUNT;
- }
- *Rows = (UINTN) PcdGet32 (PcdConOutRow);
- if (*Rows == 0) {
- *Rows = MODE0_ROW_COUNT;
- }
- return EFI_SUCCESS;
+ if (ModeNumber >= (UINTN) This->Mode->MaxMode) {
+ return EFI_UNSUPPORTED;
}
- return EFI_UNSUPPORTED;
+ //
+ // Get Terminal device data structure pointer.
+ //
+ TerminalDevice = TERMINAL_CON_OUT_DEV_FROM_THIS (This);
+ *Columns = TerminalDevice->TerminalConsoleModeData[ModeNumber].Columns;
+ *Rows = TerminalDevice->TerminalConsoleModeData[ModeNumber].Rows;
+
+ return EFI_SUCCESS;
}
@@ -476,7 +458,7 @@ TerminalConOutSetMode (
//
TerminalDevice = TERMINAL_CON_OUT_DEV_FROM_THIS (This);
- if (ModeNumber >= TERMINAL_MAX_MODE) {
+ if (ModeNumber >= (UINTN) This->Mode->MaxMode) {
return EFI_UNSUPPORTED;
}