From: Laszlo Ersek <ler...@redhat.com>

Allow enable XTerm resize sequences on terminal mode
changes via QEMU command line

Signed-off-by: Laszlo Ersek <ler...@redhat.com>

Pawel Polawski: Updated commit message for re-submission

Cc: Ard Biesheuvel <ardb+tianoc...@kernel.org>
Cc: Leif Lindholm <quic_llind...@quicinc.com>
Cc: Sami Mujawar <sami.muja...@arm.com>
Cc: Gerd Hoffmann <kra...@redhat.com>

Signed-off-by: Paweł Poławski <ppola...@redhat.com>
---
 ArmVirtPkg/ArmVirtQemu.dsc                                           |  7 +++-
 ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf | 33 
++++++++++++++++
 ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c   | 41 
++++++++++++++++++++
 3 files changed, 80 insertions(+), 1 deletion(-)

diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
index f77443229e8e..ed66f0003082 100644
--- a/ArmVirtPkg/ArmVirtQemu.dsc
+++ b/ArmVirtPkg/ArmVirtQemu.dsc
@@ -299,6 +299,8 @@
   gEfiSecurityPkgTokenSpaceGuid.PcdTpmBaseAddress|0x0

 !endif

 

+  gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE

+

 [PcdsDynamicHii]

   
gArmVirtTokenSpaceGuid.PcdForceNoAcpi|L"ForceNoAcpi"|gArmVirtVariableGuid|0x0|FALSE|NV,BS

 

@@ -413,7 +415,10 @@
   MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf

   MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf

   MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf

-  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf

+  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf {

+    <LibraryClasses>

+      NULL|ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf

+  }

   MdeModulePkg/Universal/SerialDxe/SerialDxe.inf

 

   MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf

diff --git 
a/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf 
b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf
new file mode 100644
index 000000000000..b4108ec04b0b
--- /dev/null
+++ b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf
@@ -0,0 +1,33 @@
+## @file

+#  Plugin library for setting up dynamic PCDs for TerminalDxe, from fw_cfg

+#

+#  Copyright (c) 2015-2020, Red Hat, Inc.

+#  Copyright (c) 2014, Linaro Ltd. All rights reserved.<BR>

+#

+#  SPDX-License-Identifier: BSD-2-Clause-Patent

+##

+

+[Defines]

+  INF_VERSION                    = 0x00010005

+  BASE_NAME                      = TerminalPcdProducerLib

+  FILE_GUID                      = 4a0c5ed7-8c42-4c01-8f4c-7bf258316a96

+  MODULE_TYPE                    = BASE

+  VERSION_STRING                 = 1.0

+  LIBRARY_CLASS                  = NULL

+  CONSTRUCTOR                    = TerminalPcdProducerLibConstructor

+

+[Sources]

+  TerminalPcdProducerLib.c

+

+[Packages]

+  MdeModulePkg/MdeModulePkg.dec

+  MdePkg/MdePkg.dec

+  OvmfPkg/OvmfPkg.dec

+

+[LibraryClasses]

+  DebugLib

+  PcdLib

+  QemuFwCfgSimpleParserLib

+

+[Pcd]

+  gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm ## SOMETIMES_PRODUCES

diff --git a/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c 
b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c
new file mode 100644
index 000000000000..783f133d671a
--- /dev/null
+++ b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c
@@ -0,0 +1,41 @@
+/** @file

+

+   Copyright (c) 2015-2020, Red Hat, Inc.

+   Copyright (c) 2014, Linaro Ltd. All rights reserved.<BR>

+

+   SPDX-License-Identifier: BSD-2-Clause-Patent

+

+   Plugin library for setting up dynamic PCDs for TerminalDxe, from fw_cfg

+

+**/

+

+#include <Library/DebugLib.h>

+#include <Library/PcdLib.h>

+#include <Library/QemuFwCfgSimpleParserLib.h>

+

+#define UPDATE_BOOLEAN_PCD_FROM_FW_CFG(TokenName)                             \

+          do {                                                                \

+            BOOLEAN       Setting;                                            \

+            RETURN_STATUS PcdStatus;                                          \

+                                                                              \

+            if (!RETURN_ERROR (QemuFwCfgParseBool (                           \

+                    "opt/org.tianocore.edk2.aavmf/" #TokenName, &Setting))) { \

+              PcdStatus = PcdSetBoolS (TokenName, Setting);                   \

+              ASSERT_RETURN_ERROR (PcdStatus);                                \

+            }                                                                 \

+          } while (0)

+

+/**

+   Update PCD configuration variable from firmware config.

+

+   @return  Always returns RETURN_SUCCESS

+**/

+RETURN_STATUS

+EFIAPI

+TerminalPcdProducerLibConstructor (

+  VOID

+  )

+{

+  UPDATE_BOOLEAN_PCD_FROM_FW_CFG (PcdResizeXterm);

+  return RETURN_SUCCESS;

+}

-- 
2.38.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#96640): https://edk2.groups.io/g/devel/message/96640
Mute This Topic: https://groups.io/mt/95304212/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to