[edk2] [patch] MdeModulePkg/BMMUiLib: Update codes of initializing ConsoleXXXCheck array

Dandan Bi posted 1 patch 7 years, 6 months ago
Failed in applying to current master (apply log)
.../BootMaintenanceManagerUiLib/ConsoleOption.c    | 26 +++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
[edk2] [patch] MdeModulePkg/BMMUiLib: Update codes of initializing ConsoleXXXCheck array
Posted by Dandan Bi 7 years, 6 months ago
When initializing ConsoleOutCheck/ConsoleInCheck/ConsoleErrCheck array in
BMM_FAKE_NV_DATA structure, also need to consider whether the terminal
device is ConOut/ConIn/ConErr or not.

Cc: Eric Dong <eric.dong@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
---
 .../BootMaintenanceManagerUiLib/ConsoleOption.c    | 26 +++++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/MdeModulePkg/Library/BootMaintenanceManagerUiLib/ConsoleOption.c b/MdeModulePkg/Library/BootMaintenanceManagerUiLib/ConsoleOption.c
index a145a77..b25c7a6 100644
--- a/MdeModulePkg/Library/BootMaintenanceManagerUiLib/ConsoleOption.c
+++ b/MdeModulePkg/Library/BootMaintenanceManagerUiLib/ConsoleOption.c
@@ -1029,20 +1029,28 @@ GetConsoleInCheck (
 {
   UINT16              Index;
   BM_MENU_ENTRY       *NewMenuEntry; 
   UINT8               *ConInCheck;
   BM_CONSOLE_CONTEXT  *NewConsoleContext;
+  BM_TERMINAL_CONTEXT *NewTerminalContext;
 
   ASSERT (CallbackData != NULL);
 
   ConInCheck = &CallbackData->BmmFakeNvData.ConsoleInCheck[0];
   for (Index = 0; ((Index < ConsoleInpMenu.MenuNumber) && \
        (Index < MAX_MENU_NUMBER)) ; Index++) {  
     NewMenuEntry      = BOpt_GetMenuEntry (&ConsoleInpMenu, Index);
     NewConsoleContext = (BM_CONSOLE_CONTEXT *) NewMenuEntry->VariableContext;  
     ConInCheck[Index] = NewConsoleContext->IsActive;
   }
+
+  for (Index = 0; Index < TerminalMenu.MenuNumber; Index++) {
+    NewMenuEntry                = BOpt_GetMenuEntry (&TerminalMenu, Index);
+    NewTerminalContext          = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
+    ASSERT (Index + ConsoleInpMenu.MenuNumber < MAX_MENU_NUMBER);
+    ConInCheck[Index + ConsoleInpMenu.MenuNumber] = NewTerminalContext->IsConIn;
+  }
 }
 
 /**
 
   Initialize console output device check box to ConsoleOutCheck[MAX_MENU_NUMBER]
@@ -1058,19 +1066,27 @@ GetConsoleOutCheck (
 {
   UINT16              Index;
   BM_MENU_ENTRY       *NewMenuEntry; 
   UINT8               *ConOutCheck;
   BM_CONSOLE_CONTEXT  *NewConsoleContext;
-  
+  BM_TERMINAL_CONTEXT *NewTerminalContext;
+
   ASSERT (CallbackData != NULL);
   ConOutCheck = &CallbackData->BmmFakeNvData.ConsoleOutCheck[0];
   for (Index = 0; ((Index < ConsoleOutMenu.MenuNumber) && \
        (Index < MAX_MENU_NUMBER)) ; Index++) {  
     NewMenuEntry      = BOpt_GetMenuEntry (&ConsoleOutMenu, Index);
     NewConsoleContext = (BM_CONSOLE_CONTEXT *) NewMenuEntry->VariableContext;  
     ConOutCheck[Index] = NewConsoleContext->IsActive;
   }
+
+  for (Index = 0; Index < TerminalMenu.MenuNumber; Index++) {
+    NewMenuEntry                = BOpt_GetMenuEntry (&TerminalMenu, Index);
+    NewTerminalContext          = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
+    ASSERT (Index + ConsoleOutMenu.MenuNumber < MAX_MENU_NUMBER);
+    ConOutCheck[Index + ConsoleOutMenu.MenuNumber] = NewTerminalContext->IsConOut;
+  }
 }
 
 /**
 
   Initialize standard error output device check box to ConsoleErrCheck[MAX_MENU_NUMBER]
@@ -1086,19 +1102,27 @@ GetConsoleErrCheck (
 {
   UINT16              Index;
   BM_MENU_ENTRY       *NewMenuEntry; 
   UINT8               *ConErrCheck;
   BM_CONSOLE_CONTEXT  *NewConsoleContext;
+  BM_TERMINAL_CONTEXT *NewTerminalContext;
 
   ASSERT (CallbackData != NULL);
   ConErrCheck = &CallbackData->BmmFakeNvData.ConsoleErrCheck[0];
   for (Index = 0; ((Index < ConsoleErrMenu.MenuNumber) && \
        (Index < MAX_MENU_NUMBER)) ; Index++) {  
     NewMenuEntry      = BOpt_GetMenuEntry (&ConsoleErrMenu, Index);
     NewConsoleContext = (BM_CONSOLE_CONTEXT *) NewMenuEntry->VariableContext;  
     ConErrCheck[Index] = NewConsoleContext->IsActive;
   }
+
+  for (Index = 0; Index < TerminalMenu.MenuNumber; Index++) {
+    NewMenuEntry                = BOpt_GetMenuEntry (&TerminalMenu, Index);
+    NewTerminalContext          = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
+    ASSERT (Index + ConsoleErrMenu.MenuNumber < MAX_MENU_NUMBER);
+    ConErrCheck[Index + ConsoleErrMenu.MenuNumber] = NewTerminalContext->IsStdErr;
+  }
 }
 
 /**
 
   Initialize terminal attributes (baudrate, data rate, stop bits, parity and terminal type)
-- 
1.9.5.msysgit.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [patch] MdeModulePkg/BMMUiLib: Update codes of initializing ConsoleXXXCheck array
Posted by Dong, Eric 7 years, 6 months ago
Reviewed-by: Eric Dong <eric.dong@intel.com>

-----Original Message-----
From: Bi, Dandan 
Sent: Tuesday, April 18, 2017 11:50 AM
To: edk2-devel@lists.01.org
Cc: Dong, Eric
Subject: [patch] MdeModulePkg/BMMUiLib: Update codes of initializing ConsoleXXXCheck array

When initializing ConsoleOutCheck/ConsoleInCheck/ConsoleErrCheck array in BMM_FAKE_NV_DATA structure, also need to consider whether the terminal device is ConOut/ConIn/ConErr or not.

Cc: Eric Dong <eric.dong@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
---
 .../BootMaintenanceManagerUiLib/ConsoleOption.c    | 26 +++++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/MdeModulePkg/Library/BootMaintenanceManagerUiLib/ConsoleOption.c b/MdeModulePkg/Library/BootMaintenanceManagerUiLib/ConsoleOption.c
index a145a77..b25c7a6 100644
--- a/MdeModulePkg/Library/BootMaintenanceManagerUiLib/ConsoleOption.c
+++ b/MdeModulePkg/Library/BootMaintenanceManagerUiLib/ConsoleOption.c
@@ -1029,20 +1029,28 @@ GetConsoleInCheck (  {
   UINT16              Index;
   BM_MENU_ENTRY       *NewMenuEntry; 
   UINT8               *ConInCheck;
   BM_CONSOLE_CONTEXT  *NewConsoleContext;
+  BM_TERMINAL_CONTEXT *NewTerminalContext;
 
   ASSERT (CallbackData != NULL);
 
   ConInCheck = &CallbackData->BmmFakeNvData.ConsoleInCheck[0];
   for (Index = 0; ((Index < ConsoleInpMenu.MenuNumber) && \
        (Index < MAX_MENU_NUMBER)) ; Index++) {  
     NewMenuEntry      = BOpt_GetMenuEntry (&ConsoleInpMenu, Index);
     NewConsoleContext = (BM_CONSOLE_CONTEXT *) NewMenuEntry->VariableContext;  
     ConInCheck[Index] = NewConsoleContext->IsActive;
   }
+
+  for (Index = 0; Index < TerminalMenu.MenuNumber; Index++) {
+    NewMenuEntry                = BOpt_GetMenuEntry (&TerminalMenu, Index);
+    NewTerminalContext          = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
+    ASSERT (Index + ConsoleInpMenu.MenuNumber < MAX_MENU_NUMBER);
+    ConInCheck[Index + ConsoleInpMenu.MenuNumber] = 
+ NewTerminalContext->IsConIn;  }
 }
 
 /**
 
   Initialize console output device check box to ConsoleOutCheck[MAX_MENU_NUMBER] @@ -1058,19 +1066,27 @@ GetConsoleOutCheck (  {
   UINT16              Index;
   BM_MENU_ENTRY       *NewMenuEntry; 
   UINT8               *ConOutCheck;
   BM_CONSOLE_CONTEXT  *NewConsoleContext;
-  
+  BM_TERMINAL_CONTEXT *NewTerminalContext;
+
   ASSERT (CallbackData != NULL);
   ConOutCheck = &CallbackData->BmmFakeNvData.ConsoleOutCheck[0];
   for (Index = 0; ((Index < ConsoleOutMenu.MenuNumber) && \
        (Index < MAX_MENU_NUMBER)) ; Index++) {  
     NewMenuEntry      = BOpt_GetMenuEntry (&ConsoleOutMenu, Index);
     NewConsoleContext = (BM_CONSOLE_CONTEXT *) NewMenuEntry->VariableContext;  
     ConOutCheck[Index] = NewConsoleContext->IsActive;
   }
+
+  for (Index = 0; Index < TerminalMenu.MenuNumber; Index++) {
+    NewMenuEntry                = BOpt_GetMenuEntry (&TerminalMenu, Index);
+    NewTerminalContext          = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
+    ASSERT (Index + ConsoleOutMenu.MenuNumber < MAX_MENU_NUMBER);
+    ConOutCheck[Index + ConsoleOutMenu.MenuNumber] = 
+ NewTerminalContext->IsConOut;  }
 }
 
 /**
 
   Initialize standard error output device check box to ConsoleErrCheck[MAX_MENU_NUMBER] @@ -1086,19 +1102,27 @@ GetConsoleErrCheck (  {
   UINT16              Index;
   BM_MENU_ENTRY       *NewMenuEntry; 
   UINT8               *ConErrCheck;
   BM_CONSOLE_CONTEXT  *NewConsoleContext;
+  BM_TERMINAL_CONTEXT *NewTerminalContext;
 
   ASSERT (CallbackData != NULL);
   ConErrCheck = &CallbackData->BmmFakeNvData.ConsoleErrCheck[0];
   for (Index = 0; ((Index < ConsoleErrMenu.MenuNumber) && \
        (Index < MAX_MENU_NUMBER)) ; Index++) {  
     NewMenuEntry      = BOpt_GetMenuEntry (&ConsoleErrMenu, Index);
     NewConsoleContext = (BM_CONSOLE_CONTEXT *) NewMenuEntry->VariableContext;  
     ConErrCheck[Index] = NewConsoleContext->IsActive;
   }
+
+  for (Index = 0; Index < TerminalMenu.MenuNumber; Index++) {
+    NewMenuEntry                = BOpt_GetMenuEntry (&TerminalMenu, Index);
+    NewTerminalContext          = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
+    ASSERT (Index + ConsoleErrMenu.MenuNumber < MAX_MENU_NUMBER);
+    ConErrCheck[Index + ConsoleErrMenu.MenuNumber] = 
+ NewTerminalContext->IsStdErr;  }
 }
 
 /**
 
   Initialize terminal attributes (baudrate, data rate, stop bits, parity and terminal type)
--
1.9.5.msysgit.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel