From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web10.11888.1591929687563192721 for ; Thu, 11 Jun 2020 19:41:27 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=TCpvGLAs; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: zhichao.gao@intel.com) IronPort-SDR: 5GW9SQ0/K8DJfgqvj6Sh2Zv/m6oK8QxtUOdF1xEczdDS1px0U/Hkd/SWjC5stE6no+ZsICvkyo ZmkWAcm8+sFA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2020 19:41:27 -0700 IronPort-SDR: t7RQHG2bigCd4q0JHbaFqat/waIGTE1POFC1Ju7iyU+pzHl9juLo4gSnCSEQ9Vi+7RHN1kxhha 95Iav2w1IHgg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,501,1583222400"; d="scan'208";a="473913231" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga006.fm.intel.com with ESMTP; 11 Jun 2020 19:41:26 -0700 Received: from fmsmsx111.amr.corp.intel.com (10.18.116.5) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 11 Jun 2020 19:41:26 -0700 Received: from FMSEDG002.ED.cps.intel.com (10.1.192.134) by fmsmsx111.amr.corp.intel.com (10.18.116.5) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 11 Jun 2020 19:41:26 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.105) by edgegateway.intel.com (192.55.55.69) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 11 Jun 2020 19:41:26 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Wj7hPos7RiOB5z1z3aDESCjZXuGLjBXAjsLS9kmWgU/+t6RbeaddLbvBpykaqhijWjgCWiakfal3xm1Nqdq32hUanIK+lNyLkwlM5odWRuF/NC3xipjZu0b/BH0cQ9Z+pV9Kv5suoOnSNYZ8g9hIVcrx39gzYCzLCXYjf8/VOp14sgaSjndAD+s2jueSEfhrHbOSvxwQiUqvjEQZvSG66DNotVTGTsu479Q8aCnuVlm4BFt8uJhfLNsSDFX31X2X8CuZflG7/rIwt0K/EZyvXFdVcHpQ1bRZasgwGlCN3n0J0wSu5xi4dMkFz+X7Q5nVBtLmUmmL7wCpAlc1jdCsMQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pvk4WPxhjK2D79iyRsC3o1mKWsQUAgcKHV3d5bL9igE=; b=HzsaCg0fnxFEbkSxKsFynqzNqTOE8yki1rNZ0kl9TzcxrpwTL58uct18LpgCkNdCr9Y32jJVBVr0s7zhPP87tBEpJ/t+bjegVWeLgnJpyTMjQGlWNiQr4QuEVLJcZiHAso49OwLfJOaCCOlwkZ0TaGh3/Xe8Lu+9FOLGnsTjP+flruDXqPO11xFOw8Z7JMGoIayIRkEUarFuzawW1Ql10eaa5eiZcyG5xhU6rVYjO3b6LNq7FbuqB40UVeUUcUTZEoj3t2T4GdGwJS47whhl0yNQ82AIen6Rc2MbLsjQVl9OnKsMsWOvyr0CzBuLxCwYIbJFGPWc75uit7VDmCmC/A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pvk4WPxhjK2D79iyRsC3o1mKWsQUAgcKHV3d5bL9igE=; b=TCpvGLAs+5ZOMZqh/dCZxlzTwpNzokQN8eetZLCOezpQkfOEi+X82vwwWbIxCy+HvrnJboyUbOiL25Y9RE2MVIw+G/nqP6yv1ca1EiFuZtVTMu9rrK6FALGKbgwmPc9gmQwbfpT6ZAwAP4WosfWMACJj+Grb0588H14510xiKqg= Received: from DM6PR11MB4425.namprd11.prod.outlook.com (2603:10b6:5:1d9::31) by DM6PR11MB4753.namprd11.prod.outlook.com (2603:10b6:5:2ac::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3088.20; Fri, 12 Jun 2020 02:41:24 +0000 Received: from DM6PR11MB4425.namprd11.prod.outlook.com ([fe80::ad34:e1fc:2e7b:d124]) by DM6PR11MB4425.namprd11.prod.outlook.com ([fe80::ad34:e1fc:2e7b:d124%3]) with mapi id 15.20.3088.023; Fri, 12 Jun 2020 02:41:24 +0000 From: "Gao, Zhichao" To: "devel@edk2.groups.io" , "Tomas.Pilar@arm.com" CC: "nd@arm.com" , "Ni, Ray" Subject: Re: [edk2-devel] [PATCH v2 5/6] ShellPkg/AcpiView: Refactor DumpAcpiTableToFile Thread-Topic: [edk2-devel] [PATCH v2 5/6] ShellPkg/AcpiView: Refactor DumpAcpiTableToFile Thread-Index: AQHWL5/9WVx1sKe08k6K06XwScNBeKjUUYNw Date: Fri, 12 Jun 2020 02:41:24 +0000 Message-ID: References: <20200521184421.2222-1-Tomas.Pilar@arm.com> <20200521184421.2222-6-Tomas.Pilar@arm.com> In-Reply-To: <20200521184421.2222-6-Tomas.Pilar@arm.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.2.0.6 authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.102.204.38] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f9db2bda-f901-496e-2f66-08d80e7a191f x-ms-traffictypediagnostic: DM6PR11MB4753: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 0432A04947 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: /jblH1GkwW8gAXpJnv52KtHEo8R87ZmFAhm6UygGkgXa0GWHzOhgTwQxnD7T9w//1ZWxjd6PX3+t6nQ2dwBIlzPBBwKyyEx26IQJzGa3hG42RNX3WaCrQGMHpWFczdHxSZeboqUecU8c0ZOQB1ALNgP7luSGthpv2EIGmtrSG3B27yiJd3bmOrvppHnyd6RyHaQ9a8K0TUvwZ6XNsdJPPZhE9hK/xwJy+Grzt2wEDDgFf6CeR67J2AUGWuSaIO0hx8LF8uasAKgj/IMLo38LES/Tvg0Aw8s8CFbOxfTNBoOHmwVwPmLOtYo/2OvvvxOd1b9obrPkyn/Ea5oZmWjrr1qBGkBZPIEAU8Vb1YOl48nCMm6m3k3/GP++EWKZDgp2RDi3DA+ihut6/l6SvU2Ncw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB4425.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(6029001)(346002)(136003)(366004)(39860400002)(376002)(396003)(52536014)(5660300002)(71200400001)(966005)(86362001)(66446008)(66946007)(64756008)(83380400001)(2906002)(76116006)(8676002)(8936002)(66556008)(66476007)(478600001)(110136005)(107886003)(6506007)(55016002)(53546011)(9686003)(316002)(4326008)(186003)(33656002)(7696005)(54906003)(26005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: V9Fqt5LQfGNVKcbDyey3bbO4Ryido/8aqbws6o+pxI3UDrLVZUFBukloXx8AbzmidhHoMslvETqgFnRKktDTB5BaQOkH6W7Pxru2/3QBMZhv8GZyi2L18Dkd1OL0egswT+mrLENXNVObanY7130NhOxJMlvO9NN1jtxw9/SAiZUg8okLfLGwiIkLeT9nQRfhjEVw5P5xIsXsw8iKL9ISHHl1j7CCcoK7cObOw4UGdWm/AP/f+HK9p/Yj00FtWdLCsFvPBVzyRUIySSG1sbnU1u95a+TpYrp/yTFsYKY+YqZa1BaGMA3VAZlYv/BrT9vLUaUlF/Z6zeTg0+qwrY428M6bDiHqlrLQSVcbRg4TUnrWJV1wi/RsbOSNAHiGtomlmO3LsKf7bWDAlub03/cihVNMqbMTYguqFYkIEI9GC8mT99/PwJjfUGCjCA3aa1Q4EU5kEpKx6/1m0+la7PXrKaKTbPYsEAU6H1w5wcNIqdFXWTkT8aFmxgNaRe+vLlIU MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: f9db2bda-f901-496e-2f66-08d80e7a191f X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jun 2020 02:41:24.2758 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Z1xIEKM1rhOIxHuNDzz3FKKfwTUa7C0VARkmA6kPR+ohjhj8oDu5AaxpKKOgrq5DrCZAySgmX9KF33FN+X74vQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4753 Return-Path: zhichao.gao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable See below. > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Tomas Pil= ar > (tpilar) > Sent: Friday, May 22, 2020 2:44 AM > To: devel@edk2.groups.io > Cc: nd@arm.com; Ni, Ray ; Gao, Zhichao > > Subject: [edk2-devel] [PATCH v2 5/6] ShellPkg/AcpiView: Refactor > DumpAcpiTableToFile >=20 > Method is refactored into two parts. A new method is created that dumps > arbitrary buffers into a newly created file. This method is called from = core code > after the core code determined the appropriate filename to be used. >=20 > This improves the modular design. >=20 > Cc: Ray Ni > Cc: Zhichao Gao > Signed-off-by: Tomas Pilar > --- > ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c = | 35 +------ > ---------------------------- >=20 > ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib= .c > | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ >=20 > ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib= . > h | 17 +++++++++++++++++ > 3 files changed, 76 insertions(+), 34 deletions(-) >=20 > diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c > b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c > index a3160ed6f0a2..e866b84c6844 100644 > --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c > +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c > @@ -48,13 +48,10 @@ DumpAcpiTableToFile ( > IN CONST UINTN Length > ) > { > - EFI_STATUS Status; > CHAR16 FileNameBuffer[MAX_FILE_NAME_LEN]; > - SHELL_FILE_HANDLE DumpFileHandle; > UINTN TransferBytes; > SELECTED_ACPI_TABLE SelectedTable; >=20 > - DumpFileHandle =3D NULL; > TransferBytes =3D Length; I think the assignment of TransferBytes can be removed. Without this, Reviewed-by: Zhichao Gao Thanks, Zhichao > GetSelectedAcpiTable (&SelectedTable); >=20 > @@ -66,39 +63,9 @@ DumpAcpiTableToFile ( > mBinTableCount++ > ); >=20 > - Status =3D ShellOpenFileByName ( > - FileNameBuffer, > - &DumpFileHandle, > - EFI_FILE_MODE_READ | EFI_FILE_MODE_WRITE | > EFI_FILE_MODE_CREATE, > - 0 > - ); > - if (EFI_ERROR (Status)) { > - ShellPrintHiiEx ( > - -1, > - -1, > - NULL, > - STRING_TOKEN (STR_GEN_READONLY_MEDIA), > - gShellAcpiViewHiiHandle, > - L"acpiview" > - ); > - return FALSE; > - } > - > Print (L"Dumping ACPI table to : %s ... ", FileNameBuffer); >=20 > - Status =3D ShellWriteFile ( > - DumpFileHandle, > - &TransferBytes, > - (VOID*)Ptr > - ); > - if (EFI_ERROR (Status)) { > - Print (L"ERROR: Failed to dump table to binary file.\n"); > - TransferBytes =3D 0; > - } else { > - Print (L"DONE.\n"); > - } > - > - ShellCloseFile (&DumpFileHandle); > + TransferBytes =3D DumpFile (FileNameBuffer, Ptr, Length); > return (Length =3D=3D TransferBytes); > } >=20 > diff --git > a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandL= i > b.c > b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandL= i > b.c > index c3942ad24e5b..adf3cce6cfe2 100644 > --- > a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandL= i > b.c > +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewComm > +++ andLib.c > @@ -98,6 +98,64 @@ RegisterAllParsers ( > return Status; > } >=20 > +/** > + Dump a buffer to a file > + > + @param[in] FileName The filename that shall be created to contain t= he buffer > + @param[in] Buffer Pointer to buffer that shall be dumped > + @param[in] BufferSize The size of buffer to be dumped in bytes > + > + @return The number of bytes that were written **/ UINTN EFIAPI > +DumpFile ( > + IN CONST CHAR16* FileNameBuffer, > + IN CONST VOID* Buffer, > + IN CONST UINTN BufferSize > + ) > +{ > + EFI_STATUS Status; > + SHELL_FILE_HANDLE DumpFileHandle; > + UINTN TransferBytes; > + > + Status =3D ShellOpenFileByName ( > + FileNameBuffer, > + &DumpFileHandle, > + EFI_FILE_MODE_READ | EFI_FILE_MODE_WRITE | > EFI_FILE_MODE_CREATE, > + 0 > + ); > + > + if (EFI_ERROR (Status)) { > + ShellPrintHiiEx ( > + -1, > + -1, > + NULL, > + STRING_TOKEN (STR_GEN_READONLY_MEDIA), > + gShellAcpiViewHiiHandle, > + L"acpiview" > + ); > + return 0; > + } > + > + TransferBytes =3D BufferSize; > + Status =3D ShellWriteFile ( > + DumpFileHandle, > + &TransferBytes, > + (VOID *) Buffer > + ); > + > + if (EFI_ERROR (Status)) { > + Print (L"ERROR: Failed to write binary file.\n"); > + TransferBytes =3D 0; > + } else { > + Print (L"DONE.\n"); > + } > + > + ShellCloseFile (&DumpFileHandle); > + return TransferBytes; > +} > + > /** > Return the file name of the help text file if not using HII. >=20 > diff --git > a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandL= i > b.h > b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandL= i > b.h > index a3a29164004d..9dd39cf4b3f0 100644 > --- > a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandL= i > b.h > +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewComm > +++ andLib.h > @@ -10,6 +10,23 @@ >=20 > extern EFI_HII_HANDLE gShellAcpiViewHiiHandle; >=20 > +/** > + Dump a buffer to a file > + > + @param[in] FileName The filename that shall be created to contain t= he buffer > + @param[in] Buffer Pointer to buffer that shall be dumped > + @param[in] BufferSize The size of buffer to be dumped in bytes > + > + @return The number of bytes that were written **/ UINTN EFIAPI > +DumpFile ( > + IN CONST CHAR16* FileNameBuffer, > + IN CONST VOID* Buffer, > + IN CONST UINTN BufferSize > + ); > + > /** > Function for 'acpiview' command. >=20 > -- > 2.24.1.windows.2 >=20 >=20 >=20 >=20