From 2a9ff5f33f733727b83930c5ccf207613254b13b Mon Sep 17 00:00:00 2001
From: "Gao, Zhichao" <zhichao.gao@intel.com>
Date: Tue, 12 Nov 2019 09:18:57 +0530
Subject: [PATCH] ShellPkg/SmbiosView: SMBIOS 3.3.0 add PCI gen4 values for
 type 9

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2305

System Slots (Type 9):
- SMBIOSCR00184: add PCI Express Gen 4 values

Add the SmBios.h to use the MARCOs or enums.

Cc: Ray Ni <ray.ni@intel.com>
Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
---
 .../SmbiosView/QueryTable.c                   | 26 ++++++++++++++++++-
 .../SmbiosView/QueryTable.h                   |  4 ++-
 2 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.c
index fdb7a47d33..94d995bda1 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.c
@@ -2,7 +2,7 @@
   Build a table, each item is (Key, Info) pair.
   And give a interface of query a string out of a table.
 
-  Copyright (c) 2005 - 2018, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2005 - 2019, Intel Corporation. All rights reserved.<BR>
   (C) Copyright 2016-2019 Hewlett Packard Enterprise Development LP<BR>
   SPDX-License-Identifier: BSD-2-Clause-Patent
 
@@ -1523,6 +1523,30 @@ TABLE_ITEM  SystemSlotTypeTable[] = {
   {
     0xB6,
     L"PCI Express Gen 3 X16"
+  },
+  {
+    SlotTypePciExpressGen4,
+    L"PCI Express Gen 4"
+  },
+  {
+    SlotTypePciExpressGen4X1,
+    L"PCI Express Gen 4 X1"
+  },
+  {
+    SlotTypePciExpressGen4X2,
+    L"PCI Express Gen 4 X2"
+  },
+  {
+    SlotTypePciExpressGen4X4,
+    L"PCI Express Gen 4 X4"
+  },
+  {
+    SlotTypePciExpressGen4X8,
+    L"PCI Express Gen 4 X8"
+  },
+  {
+    SlotTypePciExpressGen4X16,
+    L"PCI Express Gen 4 X16"
   }
 };
 
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.h b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.h
index 60fb42c59c..756009b2f2 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.h
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.h
@@ -2,7 +2,7 @@
   Build a table, each item is (key, info) pair.
   and give a interface of query a string out of a table.
 
-  Copyright (c) 2005 - 2018, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2005 - 2019, Intel Corporation. All rights reserved.<BR>
   SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
@@ -10,6 +10,8 @@
 #ifndef _SMBIOS_QUERY_TABLE_H_
 #define _SMBIOS_QUERY_TABLE_H_
 
+#include <IndustryStandard/SmBios.h>
+
 #define QUERY_TABLE_UNFOUND 0xFF
 
 typedef struct TABLE_ITEM {