public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Tomas Pilar (tpilar)" <Tomas.Pilar@arm.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	Tomas Pilar <Tomas.Pilar@arm.com>
Subject: Re: [edk2-devel] [PATCH v1 4/6] ShellPkg/AcpiView: Move parameter parsing
Date: Thu, 21 May 2020 18:23:06 +0000	[thread overview]
Message-ID: <AM5PR0801MB1844012A2E63B9BB3D5C78A4E7B70@AM5PR0801MB1844.eurprd08.prod.outlook.com> (raw)
In-Reply-To: <20200521181629.79-5-Tomas.Pilar@arm.com>

Well, it looks like the settings for send-email don't Just Work (tm), I'll clean up the series and resubmit. Apologies for spamming the list.

Tom

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Tomas Pilar (tpilar) via groups.io
Sent: 21 May 2020 19:16
To: devel@edk2.groups.io
Cc: Ray Ni <ray.ni@intel.com>; Zhichao Gao <zhichao.gao@intel.com>
Subject: [edk2-devel] [PATCH v1 4/6] ShellPkg/AcpiView: Move parameter parsing

Parsing command line parameters is done in the shell

command wrapper. This declutters the core code and improves

modular design.



Cc: Ray Ni <ray.ni@intel.com>

Cc: Zhichao Gao <zhichao.gao@intel.com>

Signed-off-by: Tomas Pilar <tomas.pilar@arm.com>

---

 ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c                    | 205 -----------------------------------------------------------------

 ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.h                    |  18 +++++-

 ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c | 218 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-

 ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.h |  10 +++-

 4 files changed, 240 insertions(+), 211 deletions(-)



diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c

index c9654e52c434..a3160ed6f0a2 100644

--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c

+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c

@@ -32,19 +32,6 @@ EFI_HII_HANDLE gShellAcpiViewHiiHandle = NULL;

 STATIC UINT32             mTableCount;

 STATIC UINT32             mBinTableCount;



-/**

-  An array of acpiview command line parameters.

-**/

-STATIC CONST SHELL_PARAM_ITEM ParamList[] = {

-  {L"-q", TypeFlag},

-  {L"-d", TypeFlag},

-  {L"-h", TypeFlag},

-  {L"-l", TypeFlag},

-  {L"-s", TypeValue},

-  {L"-r", TypeValue},

-  {NULL, TypeMax}

-};

-

 /**

   This function dumps the ACPI table to a file.



@@ -228,7 +215,6 @@ ProcessTableReportOptions (

           Returns EFI_UNSUPPORTED if the RSDP version is less than 2.

           Returns EFI_SUCCESS     if successful.

 **/

-STATIC

 EFI_STATUS

 EFIAPI

 AcpiView (

@@ -372,194 +358,3 @@ AcpiView (

   }

   return EFI_SUCCESS;

 }

-

-/**

-  Function for 'acpiview' command.

-

-  @param[in] ImageHandle  Handle to the Image (NULL if Internal).

-  @param[in] SystemTable  Pointer to the System Table (NULL if Internal).

-**/

-SHELL_STATUS

-EFIAPI

-ShellCommandRunAcpiView (

-  IN EFI_HANDLE        ImageHandle,

-  IN EFI_SYSTEM_TABLE* SystemTable

-  )

-{

-  EFI_STATUS         Status;

-  SHELL_STATUS       ShellStatus;

-  LIST_ENTRY*        Package;

-  CHAR16*            ProblemParam;

-  SHELL_FILE_HANDLE  TmpDumpFileHandle;

-  CONST CHAR16*      MandatoryTableSpecStr;

-  CONST CHAR16       *SelectedTableName;

-

-  // Set configuration defaults

-  AcpiConfigSetDefaults ();

-

-  ShellStatus = SHELL_SUCCESS;

-  Package = NULL;

-  TmpDumpFileHandle = NULL;

-

-  Status = ShellCommandLineParse (ParamList, &Package, &ProblemParam, TRUE);

-  if (EFI_ERROR (Status)) {

-    if (Status == EFI_VOLUME_CORRUPTED && ProblemParam != NULL) {

-      ShellPrintHiiEx (

-        -1,

-        -1,

-        NULL,

-        STRING_TOKEN (STR_GEN_PROBLEM),

-        gShellAcpiViewHiiHandle,

-        L"acpiview",

-        ProblemParam

-        );

-      FreePool (ProblemParam);

-    } else {

-      Print (L"acpiview: Error processing input parameter(s)\n");

-    }

-    ShellStatus = SHELL_INVALID_PARAMETER;

-  } else {

-    if (ShellCommandLineGetCount (Package) > 1) {

-      ShellPrintHiiEx (

-        -1,

-        -1,

-        NULL,

-        STRING_TOKEN (STR_GEN_TOO_MANY),

-        gShellAcpiViewHiiHandle,

-        L"acpiview"

-        );

-      ShellStatus = SHELL_INVALID_PARAMETER;

-    } else if (ShellCommandLineGetFlag (Package, L"-?")) {

-      ShellPrintHiiEx (

-        -1,

-        -1,

-        NULL,

-        STRING_TOKEN (STR_GET_HELP_ACPIVIEW),

-        gShellAcpiViewHiiHandle,

-        L"acpiview"

-        );

-    } else if (ShellCommandLineGetFlag (Package, L"-s") &&

-               ShellCommandLineGetValue (Package, L"-s") == NULL) {

-      ShellPrintHiiEx (

-        -1,

-        -1,

-        NULL,

-        STRING_TOKEN (STR_GEN_NO_VALUE),

-        gShellAcpiViewHiiHandle,

-        L"acpiview",

-        L"-s"

-        );

-      ShellStatus = SHELL_INVALID_PARAMETER;

-    } else if (ShellCommandLineGetFlag (Package, L"-r") &&

-               ShellCommandLineGetValue (Package, L"-r") == NULL) {

-      ShellPrintHiiEx (

-        -1,

-        -1,

-        NULL,

-        STRING_TOKEN (STR_GEN_NO_VALUE),

-        gShellAcpiViewHiiHandle,

-        L"acpiview",

-        L"-r"

-        );

-      ShellStatus = SHELL_INVALID_PARAMETER;

-    } else if ((ShellCommandLineGetFlag (Package, L"-s") &&

-                ShellCommandLineGetFlag (Package, L"-l"))) {

-      ShellPrintHiiEx (

-        -1,

-        -1,

-        NULL,

-        STRING_TOKEN (STR_GEN_TOO_MANY),

-        gShellAcpiViewHiiHandle,

-        L"acpiview"

-        );

-      ShellStatus = SHELL_INVALID_PARAMETER;

-    } else if (ShellCommandLineGetFlag (Package, L"-d") &&

-               !ShellCommandLineGetFlag (Package, L"-s")) {

-        ShellPrintHiiEx (

-          -1,

-          -1,

-          NULL,

-          STRING_TOKEN (STR_GEN_MISSING_OPTION),

-          gShellAcpiViewHiiHandle,

-          L"acpiview",

-          L"-s",

-          L"-d"

-          );

-        ShellStatus = SHELL_INVALID_PARAMETER;

-    } else {

-      // Turn on colour highlighting if requested

-      SetColourHighlighting (ShellCommandLineGetFlag (Package, L"-h"));

-

-      // Surpress consistency checking if requested

-      SetConsistencyChecking (!ShellCommandLineGetFlag (Package, L"-q"));

-

-      // Evaluate the parameters for mandatory ACPI table presence checks

-      SetMandatoryTableValidate (ShellCommandLineGetFlag (Package, L"-r"));

-      MandatoryTableSpecStr = ShellCommandLineGetValue (Package, L"-r");

-

-      if (MandatoryTableSpecStr != NULL) {

-        SetMandatoryTableSpec (ShellHexStrToUintn (MandatoryTableSpecStr));

-      }

-

-      if (ShellCommandLineGetFlag (Package, L"-l")) {

-        SetReportOption (ReportTableList);

-      } else {

-        SelectedTableName = ShellCommandLineGetValue (Package, L"-s");

-        if (SelectedTableName != NULL) {

-          SelectAcpiTable (SelectedTableName);

-          SetReportOption (ReportSelected);

-

-          if (ShellCommandLineGetFlag (Package, L"-d"))  {

-            // Create a temporary file to check if the media is writable.

-            CHAR16 FileNameBuffer[MAX_FILE_NAME_LEN];

-            SetReportOption (ReportDumpBinFile);

-

-            UnicodeSPrint (

-              FileNameBuffer,

-              sizeof (FileNameBuffer),

-              L".\\%s%04d.tmp",

-              SelectedTableName,

-              mBinTableCount

-              );

-

-            Status = ShellOpenFileByName (

-                       FileNameBuffer,

-                       &TmpDumpFileHandle,

-                       EFI_FILE_MODE_READ | EFI_FILE_MODE_WRITE |

-                       EFI_FILE_MODE_CREATE,

-                       0

-                       );

-

-            if (EFI_ERROR (Status)) {

-              ShellStatus = SHELL_INVALID_PARAMETER;

-              TmpDumpFileHandle = NULL;

-              ShellPrintHiiEx (

-                -1,

-                -1,

-                NULL,

-                STRING_TOKEN (STR_GEN_READONLY_MEDIA),

-                gShellAcpiViewHiiHandle,

-                L"acpiview"

-                );

-              goto Done;

-            }

-            // Delete Temporary file.

-            ShellDeleteFile (&TmpDumpFileHandle);

-          } // -d

-        } // -s

-      }

-

-      // Parse ACPI Table information

-      Status = AcpiView (SystemTable);

-      if (EFI_ERROR (Status)) {

-        ShellStatus = SHELL_NOT_FOUND;

-      }

-    }

-  }

-

-Done:

-  if (Package != NULL) {

-    ShellCommandLineFreeVarList (Package);

-  }

-  return ShellStatus;

-}

diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.h b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.h

index 92d64a88814d..d5b95f5ee707 100644

--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.h

+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.h

@@ -64,7 +64,7 @@ GetWarningCount (



   @param [in] Signature The ACPI table Signature.

   @param [in] TablePtr  Pointer to the ACPI table data.

-  @param [in] Length    The length fo the ACPI table.

+  @param [in] Length    The length of the ACPI table.



   @retval Returns TRUE if the ACPI table should be traced.

 **/

@@ -75,4 +75,20 @@ ProcessTableReportOptions (

   IN CONST UINT32  Length

   );



+/**

+  This function iterates the configuration table entries in the

+  system table, retrieves the RSDP pointer and starts parsing the ACPI tables.

+

+  @param [in] SystemTable Pointer to the EFI system table.

+

+  @retval EFI_NOT_FOUND   The RSDP pointer was not found.

+  @retval EFI_UNSUPPORTED The RSDP version was less than 2.

+  @retval EFI_SUCCESS     The command was successful.

+**/

+EFI_STATUS

+EFIAPI

+AcpiView (

+  IN EFI_SYSTEM_TABLE* SystemTable

+  );

+

 #endif // ACPIVIEW_H_

diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c

index e0d5a8108552..c3942ad24e5b 100644

--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c

+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c

@@ -1,24 +1,44 @@

 /** @file

   Main file for 'acpiview' Shell command function.



-  Copyright (c) 2016 - 2019, ARM Limited. All rights reserved.<BR>

+  Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.<BR>

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

 **/



 #include <Guid/ShellLibHiiGuid.h>

 #include <IndustryStandard/Acpi.h>

+

+#include <Library/BaseMemoryLib.h>

 #include <Library/HiiLib.h>

+#include <Library/MemoryAllocationLib.h>

+#include <Library/PrintLib.h>

 #include <Library/ShellCommandLib.h>

-#include <Library/UefiLib.h>

+#include <Library/ShellLib.h>

 #include <Library/UefiBootServicesTableLib.h>

+#include <Library/UefiLib.h>

 #include <Uefi.h>

+

 #include "AcpiParser.h"

 #include "AcpiTableParser.h"

 #include "AcpiView.h"

+#include "AcpiViewConfig.h"

 #include "UefiShellAcpiViewCommandLib.h"



 CONST CHAR16 gShellAcpiViewFileName[] = L"ShellCommand";



+/**

+  An array of acpiview command line parameters.

+**/

+STATIC CONST SHELL_PARAM_ITEM ParamList[] = {

+  {L"-q", TypeFlag},

+  {L"-d", TypeFlag},

+  {L"-h", TypeFlag},

+  {L"-l", TypeFlag},

+  {L"-s", TypeValue},

+  {L"-r", TypeValue},

+  {NULL, TypeMax}

+};

+

 /**

   A list of available table parsers.

 */

@@ -92,6 +112,200 @@ ShellCommandGetManFileNameAcpiView (

   return gShellAcpiViewFileName;

 }



+/**

+  Function for 'acpiview' command.

+

+  @param[in] ImageHandle  Handle to the Image (NULL if internal).

+  @param[in] SystemTable  Pointer to the System Table (NULL if internal).

+

+  @retval SHELL_INVALID_PARAMETER The command line invocation could not be parsed

+  @retval SHELL_NOT_FOUND         The command failed

+  @retval SHELL_SUCCESS           The command was successful

+**/

+SHELL_STATUS

+EFIAPI

+ShellCommandRunAcpiView (

+  IN EFI_HANDLE        ImageHandle,

+  IN EFI_SYSTEM_TABLE* SystemTable

+  )

+{

+  EFI_STATUS         Status;

+  SHELL_STATUS       ShellStatus;

+  LIST_ENTRY*        Package;

+  CHAR16*            ProblemParam;

+  SHELL_FILE_HANDLE  TmpDumpFileHandle;

+  CONST CHAR16*      MandatoryTableSpecStr;

+  CONST CHAR16*      SelectedTableName;

+

+  // Set configuration defaults

+  AcpiConfigSetDefaults ();

+

+  ShellStatus = SHELL_SUCCESS;

+  Package = NULL;

+  TmpDumpFileHandle = NULL;

+

+  Status = ShellCommandLineParse (ParamList, &Package, &ProblemParam, TRUE);

+  if (EFI_ERROR (Status)) {

+    if (Status == EFI_VOLUME_CORRUPTED && ProblemParam != NULL) {

+      ShellPrintHiiEx (

+        -1,

+        -1,

+        NULL,

+        STRING_TOKEN (STR_GEN_PROBLEM),

+        gShellAcpiViewHiiHandle,

+        L"acpiview",

+        ProblemParam

+        );

+      FreePool (ProblemParam);

+    } else {

+      Print (L"acpiview: Error processing input parameter(s)\n");

+    }

+    ShellStatus = SHELL_INVALID_PARAMETER;

+  } else {

+    if (ShellCommandLineGetCount (Package) > 1) {

+      ShellPrintHiiEx (

+        -1,

+        -1,

+        NULL,

+        STRING_TOKEN (STR_GEN_TOO_MANY),

+        gShellAcpiViewHiiHandle,

+        L"acpiview"

+        );

+      ShellStatus = SHELL_INVALID_PARAMETER;

+    } else if (ShellCommandLineGetFlag (Package, L"-?")) {

+      ShellPrintHiiEx (

+        -1,

+        -1,

+        NULL,

+        STRING_TOKEN (STR_GET_HELP_ACPIVIEW),

+        gShellAcpiViewHiiHandle,

+        L"acpiview"

+        );

+    } else if (ShellCommandLineGetFlag (Package, L"-s") &&

+               ShellCommandLineGetValue (Package, L"-s") == NULL) {

+      ShellPrintHiiEx (

+        -1,

+        -1,

+        NULL,

+        STRING_TOKEN (STR_GEN_NO_VALUE),

+        gShellAcpiViewHiiHandle,

+        L"acpiview",

+        L"-s"

+        );

+      ShellStatus = SHELL_INVALID_PARAMETER;

+    } else if (ShellCommandLineGetFlag (Package, L"-r") &&

+               ShellCommandLineGetValue (Package, L"-r") == NULL) {

+      ShellPrintHiiEx (

+        -1,

+        -1,

+        NULL,

+        STRING_TOKEN (STR_GEN_NO_VALUE),

+        gShellAcpiViewHiiHandle,

+        L"acpiview",

+        L"-r"

+        );

+      ShellStatus = SHELL_INVALID_PARAMETER;

+    } else if ((ShellCommandLineGetFlag (Package, L"-s") &&

+                ShellCommandLineGetFlag (Package, L"-l"))) {

+      ShellPrintHiiEx (

+        -1,

+        -1,

+        NULL,

+        STRING_TOKEN (STR_GEN_TOO_MANY),

+        gShellAcpiViewHiiHandle,

+        L"acpiview"

+        );

+      ShellStatus = SHELL_INVALID_PARAMETER;

+    } else if (ShellCommandLineGetFlag (Package, L"-d") &&

+               !ShellCommandLineGetFlag (Package, L"-s")) {

+        ShellPrintHiiEx (

+          -1,

+          -1,

+          NULL,

+          STRING_TOKEN (STR_GEN_MISSING_OPTION),

+          gShellAcpiViewHiiHandle,

+          L"acpiview",

+          L"-s",

+          L"-d"

+          );

+        ShellStatus = SHELL_INVALID_PARAMETER;

+    } else {

+      // Turn on colour highlighting if requested

+      SetColourHighlighting (ShellCommandLineGetFlag (Package, L"-h"));

+

+      // Surpress consistency checking if requested

+      SetConsistencyChecking (!ShellCommandLineGetFlag (Package, L"-q"));

+

+      // Evaluate the parameters for mandatory ACPI table presence checks

+      SetMandatoryTableValidate (ShellCommandLineGetFlag (Package, L"-r"));

+      MandatoryTableSpecStr = ShellCommandLineGetValue (Package, L"-r");

+

+      if (MandatoryTableSpecStr != NULL) {

+        SetMandatoryTableSpec (ShellHexStrToUintn (MandatoryTableSpecStr));

+      }

+

+      if (ShellCommandLineGetFlag (Package, L"-l")) {

+        SetReportOption (ReportTableList);

+      } else {

+        SelectedTableName = ShellCommandLineGetValue (Package, L"-s");

+        if (SelectedTableName != NULL) {

+          SelectAcpiTable (SelectedTableName);

+          SetReportOption (ReportSelected);

+

+          if (ShellCommandLineGetFlag (Package, L"-d"))  {

+            // Create a temporary file to check if the media is writable.

+            CHAR16 FileNameBuffer[MAX_FILE_NAME_LEN];

+            SetReportOption (ReportDumpBinFile);

+

+            UnicodeSPrint (

+              FileNameBuffer,

+              sizeof (FileNameBuffer),

+              L".\\%s0000.tmp",

+              SelectedTableName

+              );

+

+            Status = ShellOpenFileByName (

+                       FileNameBuffer,

+                       &TmpDumpFileHandle,

+                       EFI_FILE_MODE_READ | EFI_FILE_MODE_WRITE |

+                       EFI_FILE_MODE_CREATE,

+                       0

+                       );

+

+            if (EFI_ERROR (Status)) {

+              ShellStatus = SHELL_INVALID_PARAMETER;

+              TmpDumpFileHandle = NULL;

+              ShellPrintHiiEx (

+                -1,

+                -1,

+                NULL,

+                STRING_TOKEN (STR_GEN_READONLY_MEDIA),

+                gShellAcpiViewHiiHandle,

+                L"acpiview"

+                );

+              goto Done;

+            }

+            // Delete Temporary file.

+            ShellDeleteFile (&TmpDumpFileHandle);

+          } // -d

+        } // -s

+      }

+

+      // Parse ACPI Table information

+      Status = AcpiView (SystemTable);

+      if (EFI_ERROR (Status)) {

+        ShellStatus = SHELL_NOT_FOUND;

+      }

+    }

+  }

+

+Done:

+  if (Package != NULL) {

+    ShellCommandLineFreeVarList (Package);

+  }

+  return ShellStatus;

+}

+

 /**

   Constructor for the Shell AcpiView Command library.



diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.h b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.h

index c1cf7a57af7a..a3a29164004d 100644

--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.h

+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.h

@@ -1,7 +1,7 @@

 /** @file

   Header file for 'acpiview' Shell command functions.



-  Copyright (c) 2016 - 2017, ARM Limited. All rights reserved.<BR>

+  Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.<BR>

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

 **/



@@ -13,8 +13,12 @@ extern EFI_HII_HANDLE gShellAcpiViewHiiHandle;

 /**

   Function for 'acpiview' command.



-  @param[in] ImageHandle  Handle to the Image (NULL if Internal).

-  @param[in] SystemTable  Pointer to the System Table (NULL if Internal).

+  @param[in] ImageHandle  Handle to the Image (NULL if internal).

+  @param[in] SystemTable  Pointer to the System Table (NULL if internal).

+

+  @retval SHELL_INVALID_PARAMETER The command line invocation could not be parsed

+  @retval SHELL_NOT_FOUND         The command failed

+  @retval SHELL_SUCCESS           The command was successful

 **/

 SHELL_STATUS

 EFIAPI

--

2.24.1.windows.2




IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.



IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

  reply	other threads:[~2020-05-21 18:23 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-21 18:16 [PATCH v1 0/6] Standalone AcpiView Application Tomas Pilar (tpilar)
2020-05-21 18:16 ` [PATCH v1 1/6] ShellPkg/AcpiView: Move log reset to main method Tomas Pilar (tpilar)
2020-05-21 18:16 ` [PATCH v1 2/6] ShellPkg/AcpiView: Refactor configuration Tomas Pilar (tpilar)
2020-05-21 18:16 ` [PATCH v1 3/6] ShellPkg/AcpiView: Move table count reset Tomas Pilar (tpilar)
2020-05-21 18:16 ` [PATCH v1 4/6] ShellPkg/AcpiView: Move parameter parsing Tomas Pilar (tpilar)
2020-05-21 18:23   ` Tomas Pilar (tpilar) [this message]
2020-05-21 18:16 ` [PATCH v1 5/6] ShellPkg/AcpiView: Refactor DumpAcpiTableToFile Tomas Pilar (tpilar)
2020-05-21 18:16 ` [PATCH v1 6/6] ShellPkg/AcpiView: Add application wrapper Tomas Pilar (tpilar)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=AM5PR0801MB1844012A2E63B9BB3D5C78A4E7B70@AM5PR0801MB1844.eurprd08.prod.outlook.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox