From nobody Fri May 17 03:12:59 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+92629+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+92629+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1661216592; cv=none; d=zohomail.com; s=zohoarc; b=HR2PLPaScL6ud3k94MHlc2/8OMpGM6Yx7Nwzdd8wHVvDAlLX0pCYyBrpwHC2S/AsRC9+BG78xB2wVmaPrNxjWP5un+JWlXuDscpDq+5QtBdFKNmivVe9nFysVB7jY/gGJuuE0zi5EIQ3W9pWMqsrh6hm9Uj0Fi+YkPftHF7Kn/A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1661216592; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=DhilHBeWjycxnw9m9SVuUq9kPN2ekS8ITOrUKCl80ps=; b=bpOabtn+CG0vk9IIdZBr2ZdFTOReG9SU2YU5fK088neV4yZgR1GoMPTHTGl7gJ/4LYvLpkOVeHoVAfcYV27aI3OpCVERcZojRqN6DPcu+ddlwVzQNTJOjPogsYXRFrB1YcvN+l3gti2wwd4U34dVJ66sK9BpRUQL3L/7MVO2B4Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+92629+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1661216592232739.5952679404305; Mon, 22 Aug 2022 18:03:12 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id gbtDYY1788612xmNzoop8sSS; Mon, 22 Aug 2022 18:03:11 -0700 X-Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.groups.io with SMTP id smtpd.web12.26125.1661216586064100113 for ; Mon, 22 Aug 2022 18:03:06 -0700 X-Received: from mail-lf1-f69.google.com (mail-lf1-f69.google.com [209.85.167.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-551-Y1P6YLyUOF2dy201dy_ttA-1; Mon, 22 Aug 2022 21:03:04 -0400 X-MC-Unique: Y1P6YLyUOF2dy201dy_ttA-1 X-Received: by mail-lf1-f69.google.com with SMTP id dt8-20020a0565122a8800b00492f7025810so132814lfb.3 for ; Mon, 22 Aug 2022 18:03:03 -0700 (PDT) X-Gm-Message-State: 7c6qoLJXZZqQHGOpbjL1LKTMx1787277AA= X-Received: by 2002:a05:6512:1155:b0:48a:fb9a:32d8 with SMTP id m21-20020a056512115500b0048afb9a32d8mr8035716lfg.672.1661216582186; Mon, 22 Aug 2022 18:03:02 -0700 (PDT) X-Google-Smtp-Source: AA6agR6wKWV/ESAIIT+4DMG6gN53blVP3yl9XI8GioNANVf1eritZIz2UOITOrXZhX8kMRZzV4LbKg== X-Received: by 2002:a05:6512:1155:b0:48a:fb9a:32d8 with SMTP id m21-20020a056512115500b0048afb9a32d8mr8035703lfg.672.1661216581826; Mon, 22 Aug 2022 18:03:01 -0700 (PDT) X-Received: from czapka.. ([93.177.91.185]) by smtp.gmail.com with ESMTPSA id q23-20020a056512211700b0048b045a5c3asm2197406lfr.201.2022.08.22.18.03.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Aug 2022 18:03:01 -0700 (PDT) From: =?UTF-8?B?UGF3ZcWCIFBvxYJhd3NraQ==?= To: devel@edk2.groups.io Cc: Jian J Wang , Liming Gao Subject: [[edk2-devel] PATH v1 1/3] MdeModulePkg: TerminalDxe: set xterm resolution on mode change Date: Tue, 23 Aug 2022 03:02:37 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,ppolawsk@redhat.com Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1661216591; bh=ye+IffC5Le/JVaDAnJYioS3ZAXaixZHXN8VdmTZ1Oxw=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=Trrzmu2Pd9dxKAHsmRkcQQy3jWHYb2OwxiJWwha3OjKVujyMIQ5BOZNXjabtx2EMY5R BfEClwc2lZyPYtPTMyg45lUoUdFj7saRN4kGC1xUM5ghAqu1C7Ur1oqULHRrz8ASmmdF4 iGEDI903SJdyBn1rU+/iUszwP3A8NfIxEUw= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1661216592498100007 Content-Type: text/plain; charset="utf-8" From: Laszlo Ersek Reference: Signed-off-by: Laszlo Ersek Pawel: Updated commit message for re-submission Cc: Jian J Wang Cc: Liming Gao Signed-off-by: Pawe=C5=82 Po=C5=82awski Acked-by: Gerd Hoffmann --- MdeModulePkg/MdeModulePkg.dec | 4 +++ MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf | 2 ++ MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c | 30 +++++++++= +++++++++++ 3 files changed, 36 insertions(+) diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec index 7d989108324a..45d793f3fddc 100644 --- a/MdeModulePkg/MdeModulePkg.dec +++ b/MdeModulePkg/MdeModulePkg.dec @@ -2098,6 +2098,10 @@ # @Prompt The shared bit mask when Intel Tdx is enabled. gEfiMdeModulePkgTokenSpaceGuid.PcdTdxSharedBitMask|0x0|UINT64|0x10000025 =20 + ## Controls whether TerminalDxe outputs an XTerm resize sequence on term= inal + # mode change. + gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE|BOOLEAN|0x00010080 + [PcdsPatchableInModule] ## Specify memory size with page number for PEI code when # Loading Module at Fixed Address feature is enabled. diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf b/M= deModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf index b2a8aeba8510..eff625346539 100644 --- a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf +++ b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf @@ -55,6 +55,7 @@ DebugLib PcdLib BaseLib + PrintLib =20 [Guids] ## SOMETIMES_PRODUCES ## Variable:L"ConInDev" @@ -87,6 +88,7 @@ [Pcd] gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType ## SOMETIMES_C= ONSUMES gEfiMdeModulePkgTokenSpaceGuid.PcdErrorCodeSetVariable ## CONSUMES + gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm ## CONSUMES =20 # [Event] # # Relative timer event set by UnicodeToEfiKey(), used to be one 2 second= s input timeout. diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c b/= MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c index 7809869e7d49..0ce931d6442b 100644 --- a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c +++ b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c @@ -7,6 +7,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent =20 **/ =20 +#include + #include "Terminal.h" =20 // @@ -80,6 +82,16 @@ CHAR16 mSetCursorPositionString[] =3D { ESC, '[', '0', = '0', ';', '0', '0', 'H', 0 CHAR16 mCursorForwardString[] =3D { ESC, '[', '0', '0', 'C', 0 }; CHAR16 mCursorBackwardString[] =3D { ESC, '[', '0', '0', 'D', 0 }; =20 +// +// Note that this is an ASCII format string, taking two INT32 arguments: +// rows, columns. +// +// A %d (INT32) format specification can expand to at most 11 characters. +// +CHAR8 mResizeTextAreaFormatString[] =3D "\x1B[8;%d;%dt"; +#define RESIZE_SEQ_SIZE (sizeof mResizeTextAreaFormatString + 2 * (11 - 2)) + + // // Body of the ConOut functions // @@ -498,6 +510,24 @@ TerminalConOutSetMode ( return EFI_DEVICE_ERROR; } =20 + if (PcdGetBool (PcdResizeXterm)) { + CHAR16 ResizeSequence[RESIZE_SEQ_SIZE]; + + UnicodeSPrintAsciiFormat ( + ResizeSequence, + sizeof ResizeSequence, + mResizeTextAreaFormatString, + (INT32) TerminalDevice->TerminalConsoleModeData[ModeNumber].Rows, + (INT32) TerminalDevice->TerminalConsoleModeData[ModeNumber].Columns + ); + TerminalDevice->OutputEscChar =3D TRUE; + Status =3D This->OutputString (This, ResizeSequ= ence); + TerminalDevice->OutputEscChar =3D FALSE; + if (EFI_ERROR (Status)) { + return EFI_DEVICE_ERROR; + } + } + This->Mode->Mode =3D (INT32)ModeNumber; =20 Status =3D This->ClearScreen (This); --=20 2.37.2 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#92629): https://edk2.groups.io/g/devel/message/92629 Mute This Topic: https://groups.io/mt/93195499/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-