Added a patch for Shell svn rev 33 that makes it build under GCC and ARM RVCT. Update...
authorAJFISH <AJFISH@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 10 Nov 2009 20:00:37 +0000 (20:00 +0000)
committerAJFISH <AJFISH@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 10 Nov 2009 20:00:37 +0000 (20:00 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9405 6f19259b-4bc3-4df7-8a09-765794883524

EdkShellPkg/ReadMe.txt
EdkShellPkg/ShellR33.patch [new file with mode: 0644]

index 78607c1..9014686 100644 (file)
@@ -12,4 +12,11 @@ This is EDK style package and the following steps can help to build the package:
 
 3. The EDK II style DSC file is used to validate build EDK Shell source & EDK compatibility package and can generate     the binaries in EdkShellBinPkg.
    To use this file, execute the following command under workspace to build EDK Shell source:
-   build -a IA32 -a X64 -a IPF -p EdkShellPkg\EdkShellPkg.dsc
\ No newline at end of file
+   build -a IA32 -a X64 -a IPF -p EdkShellPkg\EdkShellPkg.dsc
+   
+4. If you need to compile for GCC or ARM you will need to apply ShellR33.patch.
+   cd $(WORKSPACE)/Shell and execute patch -p1 < $(WORKSPACE)/EdkShellPkg/ShellR33.patch.
+   If you are using a case sensative file system there are a few case bugs that patch 
+   would not fix. Just fix the case of the file to match its usage and you should be 
+   able to compile.
+   
\ No newline at end of file
diff --git a/EdkShellPkg/ShellR33.patch b/EdkShellPkg/ShellR33.patch
new file mode 100644 (file)
index 0000000..6954ab1
--- /dev/null
@@ -0,0 +1,11856 @@
+diff --ignore-file-name-case -Naur ShellR33/attrib/attrib.c GccShellR33/attrib/attrib.c
+--- ShellR33/attrib/attrib.c   2006-08-07 02:14:38.000000000 -0700
++++ GccShellR33/attrib/attrib.c        2009-11-05 13:49:56.000000000 -0800
+@@ -57,7 +57,7 @@
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++static EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiAttribGuid = EFI_ATTRIB_GUID;
+ SHELL_VAR_CHECK_ITEM    AttribCheckList[] = {
+   {
+@@ -438,7 +438,7 @@
+     //
+     Info = Arg->Info;
+     if (Add || Remove) {
+-      Info->Attribute = Info->Attribute & (~Remove) | Add;
++      Info->Attribute = (Info->Attribute & (~Remove)) | Add;
+       Status = Arg->Handle->SetInfo (
+                               Arg->Handle,
+                               &gEfiFileInfoGuid,
+diff --ignore-file-name-case -Naur ShellR33/attrib/attrib.h GccShellR33/attrib/attrib.h
+--- ShellR33/attrib/attrib.h   2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/attrib/attrib.h        2009-11-05 13:49:56.000000000 -0800
+@@ -29,4 +29,4 @@
+     0xcd691c77, 0xfc45, 0x4d7b, 0xb8, 0x92, 0x92, 0xa, 0x86, 0x2d, 0x67, 0xdc \
+   }
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/attrib/attrib.inf GccShellR33/attrib/attrib.inf
+--- ShellR33/attrib/attrib.inf 2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/attrib/attrib.inf      2009-09-22 15:37:05.000000000 -0700
+@@ -41,24 +41,24 @@
+ [sources.common]
+    AttribStrings.uni      
+-   ..\ShCommonStrings.uni   
++   ../ShCommonStrings.uni   
+    attrib.c             
+    attrib.h             
+     
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/cls/cls.c GccShellR33/cls/cls.c
+--- ShellR33/cls/cls.c 2006-08-07 02:14:38.000000000 -0700
++++ GccShellR33/cls/cls.c      2009-11-05 13:49:56.000000000 -0800
+@@ -30,7 +30,7 @@
+ //
+ #include STRING_DEFINES_FILE
+-EFI_HII_HANDLE  HiiHandle;
++static EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiClsGuid = EFI_CLS_GUID;
+ SHELL_VAR_CHECK_ITEM    ClsCheckList[] = {
+   {
+diff --ignore-file-name-case -Naur ShellR33/cls/cls.inf GccShellR33/cls/cls.inf
+--- ShellR33/cls/cls.inf       2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/cls/cls.inf    2009-09-22 15:37:05.000000000 -0700
+@@ -40,24 +40,24 @@
+ [sources.common]
+-   ..\ShCommonStrings.uni   
++   ../ShCommonStrings.uni   
+    ClsStrings.uni
+    Cls.c
+    Cls.h 
+                                           
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/comp/comp.h GccShellR33/comp/comp.h
+--- ShellR33/comp/comp.h       2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/comp/comp.h    2009-11-05 13:49:56.000000000 -0800
+@@ -29,4 +29,4 @@
+     0x7761e2c2, 0x7297, 0x434d, 0xb6, 0x52, 0xa9, 0x76, 0x91, 0xb8, 0x66, 0xf3 \
+   }
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/comp/comp.inf GccShellR33/comp/comp.inf
+--- ShellR33/comp/comp.inf     2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/comp/comp.inf  2009-09-22 15:37:05.000000000 -0700
+@@ -28,21 +28,21 @@
+ CompStrings.uni
+ comp.c
+ comp.h
+-..\ShCommonStrings.uni
++../ShCommonStrings.uni
+   
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/cp/cp.c GccShellR33/cp/cp.c
+--- ShellR33/cp/cp.c   2006-08-07 02:14:38.000000000 -0700
++++ GccShellR33/cp/cp.c        2009-09-22 15:37:05.000000000 -0700
+@@ -578,7 +578,7 @@
+     //
+     if (SrcArg->Status == EFI_SUCCESS &&
+         (SrcArg->Info->Attribute & EFI_FILE_DIRECTORY) &&
+-        (DstArg->Status == EFI_SUCCESS && (DstArg->Info->Attribute & EFI_FILE_DIRECTORY) || DstMustDir && DstHandle)
++        (DstArg->Status == (EFI_SUCCESS && (DstArg->Info->Attribute & EFI_FILE_DIRECTORY)) || (DstMustDir && DstHandle))
+         ) {
+       if (StrCmp (SrcFilePath, DstFilePath) == 0) {
+         PrintToken (STRING_TOKEN (STR_CP_CANNOT_COPY_ITSELF), HiiCpyHandle, L"cp/copy", SrcArg->FullName);
+@@ -592,7 +592,7 @@
+     // we need to compose a full name of dir\file for the source
+     //
+     if (SrcArg->Status == EFI_SUCCESS &&
+-      (DstArg->Status == EFI_SUCCESS && (DstArg->Info->Attribute & EFI_FILE_DIRECTORY) || DstMustDir && DstHandle)) {
++      (DstArg->Status == (EFI_SUCCESS && (DstArg->Info->Attribute & EFI_FILE_DIRECTORY)) || (DstMustDir && DstHandle))) {
+       if (DstFullName) {
+         FreePool (DstFullName);
+       }
+@@ -1789,7 +1789,7 @@
+     //
+     if (SrcArg->Status == EFI_SUCCESS &&
+         !(SrcArg->Info->Attribute & EFI_FILE_DIRECTORY) &&
+-        (DstArg->Status == EFI_SUCCESS && (DstArg->Info->Attribute & EFI_FILE_DIRECTORY) || DstDir && DstHandle)
++        (DstArg->Status == (EFI_SUCCESS && (DstArg->Info->Attribute & EFI_FILE_DIRECTORY)) || (DstDir && DstHandle))
+         ) {
+       if (DstFullName) {
+         FreePool (DstFullName);
+diff --ignore-file-name-case -Naur ShellR33/cp/cp.h GccShellR33/cp/cp.h
+--- ShellR33/cp/cp.h   2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/cp/cp.h        2009-11-05 13:49:56.000000000 -0800
+@@ -67,4 +67,4 @@
+   IN EFI_SYSTEM_TABLE     *SystemTable
+   );
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/cp/cp.inf GccShellR33/cp/cp.inf
+--- ShellR33/cp/cp.inf 2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/cp/cp.inf      2009-09-22 15:37:05.000000000 -0700
+@@ -41,23 +41,23 @@
+ [sources.common]
+   CpStrings.uni
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   cp.h
+   cp.c
+   
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/date/date.c GccShellR33/date/date.c
+--- ShellR33/date/date.c       2006-08-07 02:14:38.000000000 -0700
++++ GccShellR33/date/date.c    2009-09-22 15:37:05.000000000 -0700
+@@ -126,8 +126,8 @@
+ {
+   EFI_STATUS              Status;
+   EFI_TIME                Time;
+-  UINTN                   Offset;
+-  UINTN                   Data;
++  INTN                    Offset;
++  INTN                    Data;
+   EFI_HII_HANDLE          HiiHandle;
+   SHELL_VAR_CHECK_PACKAGE ChkPck;
+   CHAR16                  *Useful;
+diff --ignore-file-name-case -Naur ShellR33/date/date.inf GccShellR33/date/date.inf
+--- ShellR33/date/date.inf     2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/date/date.inf  2009-09-22 15:37:05.000000000 -0700
+@@ -40,24 +40,24 @@
+ [sources.common]
+-   ..\ShCommonStrings.uni   
++   ../ShCommonStrings.uni   
+    DateStrings.uni
+    Date.c
+    Date.h 
+                                           
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/dblk/dblk.h GccShellR33/dblk/dblk.h
+--- ShellR33/dblk/dblk.h       2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/dblk/dblk.h    2009-09-22 15:37:05.000000000 -0700
+@@ -33,7 +33,7 @@
+     0xded389c0, 0x956a, 0x4244, 0xae, 0x98, 0xc9, 0x7f, 0xa0, 0x81, 0xca, 0xd8 \
+   }
+   
+-#define EFI_PARTITION_SIGNATURE       0x5053595320494249
++#define EFI_PARTITION_SIGNATURE       0x5053595320494249ULL
+ typedef struct _EFI_PARTITION_HEADER {
+   EFI_TABLE_HEADER  Hdr;
+   UINT32            DirectoryAllocationNumber;
+diff --ignore-file-name-case -Naur ShellR33/dblk/dblk.inf GccShellR33/dblk/dblk.inf
+--- ShellR33/dblk/dblk.inf     2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/dblk/dblk.inf  2009-09-22 15:37:05.000000000 -0700
+@@ -26,23 +26,23 @@
+ [sources.common]
+   DblkStrings.uni
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   dblk.c
+   efidump.c
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/dblk/efidump.c GccShellR33/dblk/efidump.c
+--- ShellR33/dblk/efidump.c    2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/dblk/efidump.c 2009-09-22 19:19:20.000000000 -0700
+@@ -24,7 +24,7 @@
+ --*/
+ #include "dblk.h"
+-#include "Efipart.h"
++#include "EfiPart.h"
+ #include "EfiShellLib.h"
+ #include STRING_DEFINES_FILE
+@@ -352,34 +352,34 @@
+     PrintToken (STRING_TOKEN (STR_DEBUG_STD_ERROR_ON), HiiDblkHandle, LibDevicePathToStr (DevicePath));
+   }
+-  PrintToken (STRING_TOKEN (STR_DEBUG_RUNTIME_SERVICES), HiiDblkHandle, (UINT64) Tbl.Sys->RuntimeServices);
+-  PrintToken (STRING_TOKEN (STR_DEBUG_BOOT_SERVICES), HiiDblkHandle, (UINT64) Tbl.Sys->BootServices);
++  PrintToken (STRING_TOKEN (STR_DEBUG_RUNTIME_SERVICES), HiiDblkHandle, (UINT64)(UINTN)Tbl.Sys->RuntimeServices);
++  PrintToken (STRING_TOKEN (STR_DEBUG_BOOT_SERVICES), HiiDblkHandle, (UINT64)(UINTN)Tbl.Sys->BootServices);
+   EFI64_CODE (
+     Status = LibGetSystemConfigurationTable(&gEfiSalSystemTableGuid, &SalSystemTable);
+     if (!EFI_ERROR(Status)) {
+-      PrintToken (STRING_TOKEN(STR_DEBUG_SAL_SYSTEM_TABLE), HiiDblkHandle, (UINT64)SalSystemTable);
++      PrintToken (STRING_TOKEN(STR_DEBUG_SAL_SYSTEM_TABLE), HiiDblkHandle, (UINT64)(UINTN)SalSystemTable);
+     }
+   )
+   Status = LibGetSystemConfigurationTable (&gEfiAcpiTableGuid, &AcpiTable);
+   if (!EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_DEBUG_ACPI_TABLE), HiiDblkHandle, (UINT64) AcpiTable);
++    PrintToken (STRING_TOKEN (STR_DEBUG_ACPI_TABLE), HiiDblkHandle, (UINT64)(UINTN)AcpiTable);
+   }
+   Status = LibGetSystemConfigurationTable (&gEfiAcpi20TableGuid, &Acpi20Table);
+   if (!EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_DEBUG_APCI_2_TABLE), HiiDblkHandle, (UINT64) Acpi20Table);
++    PrintToken (STRING_TOKEN (STR_DEBUG_APCI_2_TABLE), HiiDblkHandle, (UINT64)(UINTN)Acpi20Table);
+   }
+   Status = LibGetSystemConfigurationTable (&gEfiMpsTableGuid, &MpsTable);
+   if (!EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_DEBUG_MPS_TABLE), HiiDblkHandle, (UINT64) MpsTable);
++    PrintToken (STRING_TOKEN (STR_DEBUG_MPS_TABLE), HiiDblkHandle, (UINT64)(UINTN)MpsTable);
+   }
+   Status = LibGetSystemConfigurationTable (&gEfiSmbiosTableGuid, &SMBIOSTable);
+   if (!EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_DEBUG_SMBIOS_TABLE), HiiDblkHandle, (UINT64) SMBIOSTable);
++    PrintToken (STRING_TOKEN (STR_DEBUG_SMBIOS_TABLE), HiiDblkHandle, (UINT64)(UINTN)SMBIOSTable);
+   }
+ }
+diff --ignore-file-name-case -Naur ShellR33/devices/devices.c GccShellR33/devices/devices.c
+--- ShellR33/devices/devices.c 2009-05-27 01:55:16.000000000 -0700
++++ GccShellR33/devices/devices.c      2009-11-05 13:49:56.000000000 -0800
+@@ -36,7 +36,7 @@
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++static EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiDevicesGuid = EFI_DEVICES_GUID;
+ SHELL_VAR_CHECK_ITEM    DevicesCheckList[] = {
+   {
+diff --ignore-file-name-case -Naur ShellR33/devices/devices.inf GccShellR33/devices/devices.inf
+--- ShellR33/devices/devices.inf       2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/devices/devices.inf    2009-09-22 15:37:05.000000000 -0700
+@@ -41,23 +41,23 @@
+ [sources.common]
+   DevicesStrings.uni
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   devices.c
+   devices.h
+     
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/DeviceTree/devicetree.c GccShellR33/DeviceTree/devicetree.c
+--- ShellR33/DeviceTree/devicetree.c   2009-05-27 01:55:16.000000000 -0700
++++ GccShellR33/DeviceTree/devicetree.c        2009-11-05 13:49:56.000000000 -0800
+@@ -36,7 +36,7 @@
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++static EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiDevicetreeGuid = EFI_DEVICETREE_GUID;
+ SHELL_VAR_CHECK_ITEM    DevicetreeCheckList[] = {
+   {
+diff --ignore-file-name-case -Naur ShellR33/DeviceTree/devicetree.inf GccShellR33/DeviceTree/devicetree.inf
+--- ShellR33/DeviceTree/devicetree.inf 2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/DeviceTree/devicetree.inf      2009-09-22 15:37:05.000000000 -0700
+@@ -40,24 +40,24 @@
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   DevicetreeStrings.uni
+   devicetree.c
+   devicetree.h
+   
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/dmem/debug.h GccShellR33/dmem/debug.h
+--- ShellR33/dmem/debug.h      2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/dmem/debug.h   2009-09-22 15:37:05.000000000 -0700
+@@ -26,7 +26,7 @@
+ #include "EfiShellLib.h"
+ #include EFI_PROTOCOL_DEFINITION (BlockIo)
+-#define EFI_PARTITION_SIGNATURE       0x5053595320494249
++#define EFI_PARTITION_SIGNATURE       0x5053595320494249ULL
+ typedef struct _EFI_PARTITION_HEADER {
+   EFI_TABLE_HEADER  Hdr;
+   UINT32            DirectoryAllocationNumber;
+diff --ignore-file-name-case -Naur ShellR33/dmem/dmem.inf GccShellR33/dmem/dmem.inf
+--- ShellR33/dmem/dmem.inf     2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/dmem/dmem.inf  2009-09-22 15:37:05.000000000 -0700
+@@ -25,7 +25,7 @@
+ COMPONENT_TYPE       = APPLICATION
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   MemStrings.uni
+   DebugStrings.uni  
+   mem.c
+@@ -34,17 +34,17 @@
+   
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/dmem/efidump.c GccShellR33/dmem/efidump.c
+--- ShellR33/dmem/efidump.c    2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/dmem/efidump.c 2009-09-22 19:19:20.000000000 -0700
+@@ -24,7 +24,7 @@
+ --*/
+ #include "debug.h"
+-#include "Efipart.h"
++#include "EfiPart.h"
+ #include "EfiShellLib.h"
+ #include STRING_DEFINES_FILE
+@@ -352,34 +352,34 @@
+     PrintToken (STRING_TOKEN (STR_DEBUG_STD_ERROR_ON), HiiDmemHandle, LibDevicePathToStr (DevicePath));
+   }
+-  PrintToken (STRING_TOKEN (STR_DEBUG_RUNTIME_SERVICES), HiiDmemHandle, (UINT64) Tbl.Sys->RuntimeServices);
+-  PrintToken (STRING_TOKEN (STR_DEBUG_BOOT_SERVICES), HiiDmemHandle, (UINT64) Tbl.Sys->BootServices);
++  PrintToken (STRING_TOKEN (STR_DEBUG_RUNTIME_SERVICES), HiiDmemHandle, (UINT64)(UINTN)Tbl.Sys->RuntimeServices);
++  PrintToken (STRING_TOKEN (STR_DEBUG_BOOT_SERVICES), HiiDmemHandle, (UINT64)(UINTN)Tbl.Sys->BootServices);
+   EFI64_CODE (
+     Status = LibGetSystemConfigurationTable(&gEfiSalSystemTableGuid, &SalSystemTable);
+     if (!EFI_ERROR(Status)) {
+-      PrintToken (STRING_TOKEN(STR_DEBUG_SAL_SYSTEM_TABLE), HiiDmemHandle, (UINT64)SalSystemTable);
++      PrintToken (STRING_TOKEN(STR_DEBUG_SAL_SYSTEM_TABLE), HiiDmemHandle, (UINT64)(UINTN)SalSystemTable);
+     }
+   )
+   
+   Status = LibGetSystemConfigurationTable (&gEfiAcpiTableGuid, &AcpiTable);
+   if (!EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_DEBUG_ACPI_TABLE), HiiDmemHandle, (UINT64) AcpiTable);
++    PrintToken (STRING_TOKEN (STR_DEBUG_ACPI_TABLE), HiiDmemHandle, (UINT64)(UINTN)AcpiTable);
+   }
+   Status = LibGetSystemConfigurationTable (&gEfiAcpi20TableGuid, &Acpi20Table);
+   if (!EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_DEBUG_APCI_2_TABLE), HiiDmemHandle, (UINT64) Acpi20Table);
++    PrintToken (STRING_TOKEN (STR_DEBUG_APCI_2_TABLE), HiiDmemHandle, (UINT64)(UINTN)Acpi20Table);
+   }
+   Status = LibGetSystemConfigurationTable (&gEfiMpsTableGuid, &MpsTable);
+   if (!EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_DEBUG_MPS_TABLE), HiiDmemHandle, (UINT64) MpsTable);
++    PrintToken (STRING_TOKEN (STR_DEBUG_MPS_TABLE), HiiDmemHandle, (UINT64)(UINTN)MpsTable);
+   }
+   Status = LibGetSystemConfigurationTable (&gEfiSmbiosTableGuid, &SMBIOSTable);
+   if (!EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_DEBUG_SMBIOS_TABLE), HiiDmemHandle, (UINT64) SMBIOSTable);
++    PrintToken (STRING_TOKEN (STR_DEBUG_SMBIOS_TABLE), HiiDmemHandle, (UINT64)(UINTN)SMBIOSTable);
+   }
+ }
+diff --ignore-file-name-case -Naur ShellR33/dmem/MemCommonPart.c GccShellR33/dmem/MemCommonPart.c
+--- ShellR33/dmem/MemCommonPart.c      2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/dmem/MemCommonPart.c   2009-09-22 15:37:05.000000000 -0700
+@@ -148,7 +148,7 @@
+     return EFI_SUCCESS;
+   }
+-  Address = (AddressStr) ? Xtoi (AddressStr) : (UINT64) SystemTable;
++  Address = (AddressStr) ? Xtoi (AddressStr) : (UINT64)(UINTN)SystemTable;
+   Size    = (SizeStr) ? Xtoi (SizeStr) : 512;
+   //
+@@ -156,7 +156,7 @@
+   //
+   PrintToken (STRING_TOKEN (STR_DMEM_MEMORY_ADDR), HiiDmemHandle, 2 * sizeof (UINTN), Address, Size);
+   if (MMIo) {
+-    Status = BS->LocateProtocol (&gEfiPciRootBridgeIoProtocolGuid, NULL, &PciRootBridgeIo);
++    Status = BS->LocateProtocol (&gEfiPciRootBridgeIoProtocolGuid, NULL, (VOID **)&PciRootBridgeIo);
+     if (EFI_ERROR (Status)) {
+       PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_LOC_PROT_ERR_EX), HiiDmemHandle, L"dmem", L"PciRootBridgeIo");
+       return Status;
+@@ -233,7 +233,7 @@
+   //
+   MMIo                  = FALSE;
+   AddressStr            = SizeStr = NULL;
+-  Address               = (UINT64) SystemTable;
++  Address               = (UINT64)(UINTN)SystemTable;
+   Size                  = 512;
+   RetCode               = LibCheckVariables (SI, DmemCheckList, &ChkPck, &Useful);
+   if (VarCheckOk != RetCode) {
+@@ -316,7 +316,7 @@
+   //
+   PrintToken (STRING_TOKEN (STR_DMEM_NEW_MEMORY_ADDR), HiiDmemHandle, 2 * sizeof (UINTN), Address, Size);
+   if (MMIo) {
+-    Status = BS->LocateProtocol (&gEfiPciRootBridgeIoProtocolGuid, NULL, &PciRootBridgeIo);
++    Status = BS->LocateProtocol (&gEfiPciRootBridgeIoProtocolGuid, NULL, (VOID **)&PciRootBridgeIo);
+     if (EFI_ERROR (Status)) {
+       PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_LOC_PROT_ERR_EX), HiiDmemHandle, L"dmem", L"PciRootBridgeIo");
+       return Status;
+diff --ignore-file-name-case -Naur ShellR33/dmem/MemCommonPart.h GccShellR33/dmem/MemCommonPart.h
+--- ShellR33/dmem/MemCommonPart.h      2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/dmem/MemCommonPart.h   2009-11-05 13:49:56.000000000 -0800
+@@ -61,4 +61,4 @@
+   IN  EFI_BLOCK_IO_PROTOCOL   *BlkIo
+   );
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/dmpstore/dmpstore.c GccShellR33/dmpstore/dmpstore.c
+--- ShellR33/dmpstore/dmpstore.c       2009-08-13 22:57:02.000000000 -0700
++++ GccShellR33/dmpstore/dmpstore.c    2009-11-05 13:49:56.000000000 -0800
+@@ -1,6 +1,6 @@
+ /*++
+-Copyright (c) 2005 - 2009, Intel Corporation                                                         
++Copyright (c) 2005 - 2008, Intel Corporation                                                         
+ All rights reserved. This program and the accompanying materials                          
+ are licensed and made available under the terms and conditions of the BSD License         
+ which accompanies this distribution. The full text of the license may be found at         
+@@ -24,6 +24,7 @@
+ --*/
+ #include "EfiShellLib.h"
++#include "EfiVariable.h"
+ #include "dmpstore.h"
+ extern UINT8  STRING_ARRAY_NAME[];
+@@ -33,8 +34,7 @@
+ //
+ #include STRING_DEFINES_FILE
+-#define INIT_NAME_BUFFER_SIZE  128
+-#define INIT_DATA_BUFFER_SIZE  1024
++#define DEBUG_NAME_SIZE MAX_VARIABLE_SIZE
+ STATIC CHAR16   *AttrType[] = {
+   L"invalid",   // 000
+@@ -78,14 +78,12 @@
+ EFI_STATUS
+ GetFileVariable (
+   IN EFI_FILE_HANDLE FileHandle,
+-  OUT UINTN          *VariableNameSize,
+-  IN OUT UINTN       *NameBufferSize,
+-  IN OUT CHAR16      **VariableName,
++  IN OUT UINTN       *VariableNameSize,
++  IN CHAR16          *VariableName,
+   IN EFI_GUID        *VendorGuid,
+   OUT UINT32         *Attributes,
+-  OUT UINTN          *DataSize,
+-  IN OUT UINTN       *DataBufferSize,
+-  IN OUT VOID        **Data
++  IN OUT UINTN       *DataSize,
++  OUT VOID           *Data
+   );
+ EFI_STATUS
+@@ -102,7 +100,7 @@
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++static EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiDmpstoreGuid = EFI_DMPSTORE_GUID;
+ SHELL_VAR_CHECK_ITEM    DmpstoreCheckList[] = {
+   {
+@@ -316,11 +314,9 @@
+   EFI_FILE_HANDLE    FileHandle;  
+   EFI_GUID           Guid;
+   UINT32             Attributes;
+-  CHAR16             *Name;
+-  UINTN              NameBufferSize;
++  CHAR16             Name[DEBUG_NAME_SIZE / 2];
+   UINTN              NameSize;
+-  VOID               *Data;
+-  UINTN              DataBufferSize;
++  CHAR16             Data[DEBUG_NAME_SIZE / 2];
+   UINTN              DataSize;
+   BOOLEAN            Found;
+   EFI_FILE_INFO      *FileInfo;
+@@ -328,15 +324,7 @@
+   Found      = FALSE;
+   FileHandle = NULL;
+   FileInfo   = NULL;
+-  
+-  NameBufferSize = INIT_NAME_BUFFER_SIZE;
+-  DataBufferSize = INIT_DATA_BUFFER_SIZE;
+-  Name           = AllocateZeroPool (NameBufferSize);
+-  Data           = AllocatePool (DataBufferSize);
+-  if (Name == NULL || Data == NULL) {
+-    Status = EFI_OUT_OF_RESOURCES;
+-    goto Done;
+-  }
++      
+   //
+   // Open the previous saved output file
+   //  
+@@ -374,7 +362,9 @@
+       break;
+     }
+     
+-    Status = GetFileVariable (FileHandle, &NameSize, &NameBufferSize, &Name, &Guid, &Attributes, &DataSize, &DataBufferSize, &Data);
++    NameSize = DEBUG_NAME_SIZE;
++    DataSize = DEBUG_NAME_SIZE;
++    Status = GetFileVariable (FileHandle, &NameSize, Name, &Guid, &Attributes, &DataSize, Data);
+     if (Status == EFI_NOT_FOUND) {
+       Status = EFI_SUCCESS;
+       break;
+@@ -424,13 +414,7 @@
+   }  
+   if (FileHandle != NULL) {
+     LibCloseFile (FileHandle);
+-  }
+-  if (Name != NULL) {
+-    FreePool (Name);
+-  }
+-  if (Data != NULL) {
+-    FreePool (Data);
+-  }
++  };
+   return Status;
+ }
+@@ -444,13 +428,9 @@
+   EFI_STATUS  Status;
+   EFI_GUID    Guid;
+   UINT32      Attributes;
+-  CHAR16      *Name;
+-  UINTN       NameBufferSize; // Allocated Name buffer size
++  CHAR16      Name[DEBUG_NAME_SIZE / 2];
+   UINTN       NameSize;
+-  CHAR16      *OldName;
+-  UINTN       OldNameBufferSize;
+-  VOID        *Data;
+-  UINTN       DataBufferSize; // Allocated Name buffer size
++  CHAR16      Data[DEBUG_NAME_SIZE / 2];
+   UINTN       DataSize;
+   BOOLEAN     Found;
+@@ -475,14 +455,7 @@
+     }    
+   }
+-  NameBufferSize = INIT_NAME_BUFFER_SIZE;
+-  DataBufferSize = INIT_DATA_BUFFER_SIZE;
+-  Name           = AllocateZeroPool (NameBufferSize);
+-  Data           = AllocatePool (DataBufferSize);
+-  if (Name == NULL || Data == NULL) {
+-    Status = EFI_OUT_OF_RESOURCES;
+-    goto Done;
+-  }
++  Name[0] = 0x0000;
+   do {
+     //
+     // Break the execution?
+@@ -491,29 +464,8 @@
+       goto Done;
+     }
+     
+-    NameSize  = NameBufferSize;
++    NameSize  = DEBUG_NAME_SIZE;
+     Status    = RT->GetNextVariableName (&NameSize, Name, &Guid);
+-    if (Status == EFI_BUFFER_TOO_SMALL) {
+-      OldName           = Name;
+-      OldNameBufferSize = NameBufferSize;
+-      //
+-      // Expand at least twice to avoid reallocate many times
+-      //
+-      NameBufferSize = NameSize > NameBufferSize * 2 ? NameSize : NameBufferSize * 2;
+-      Name           = AllocateZeroPool (NameBufferSize);
+-      if (Name == NULL) {
+-        Status = EFI_OUT_OF_RESOURCES;
+-        FreePool (OldName);
+-        goto Done;
+-      }
+-      //
+-      // Preserve the original content to get correct iteration for GetNextVariableName() call
+-      //
+-      CopyMem (Name, OldName, OldNameBufferSize);
+-      FreePool (OldName);
+-      NameSize = NameBufferSize;
+-      Status = RT->GetNextVariableName (&NameSize, Name, &Guid);
+-    }
+     if (!EFI_ERROR (Status)) {
+       if (VarName != NULL) {
+         if (!MetaiMatch (Name, VarName)) {
+@@ -522,22 +474,8 @@
+       }      
+       Found     = TRUE;
+-      DataSize  = DataBufferSize;
++      DataSize  = DEBUG_NAME_SIZE;
+       Status    = RT->GetVariable (Name, &Guid, &Attributes, &DataSize, Data);
+-      if (Status == EFI_BUFFER_TOO_SMALL) {
+-        //
+-        // Expand at least twice to avoid reallocate many times
+-        //
+-        FreePool (Data);
+-        DataBufferSize = DataSize > DataBufferSize * 2 ? DataSize : DataBufferSize * 2;
+-        Data           = AllocatePool (DataBufferSize);
+-        if (Data == NULL) {
+-          Status = EFI_OUT_OF_RESOURCES;
+-          goto Done;
+-        }
+-        DataSize = DataBufferSize;
+-        Status   = RT->GetVariable (Name, &Guid, &Attributes, &DataSize, Data);
+-      }
+       if (!EFI_ERROR (Status)) {
+         //
+         // Dump variable name
+@@ -593,12 +531,6 @@
+   }
+ Done:
+-  if (Name != NULL) {
+-    FreePool (Name);
+-  }
+-  if (Data != NULL) {
+-    FreePool (Data);
+-  }
+   return Status;
+ }
+@@ -662,14 +594,12 @@
+ EFI_STATUS
+ GetFileVariable (
+   IN EFI_FILE_HANDLE FileHandle,
+-  OUT UINTN          *VariableNameSize,
+-  IN OUT UINTN       *NameBufferSize,
+-  IN OUT CHAR16      **VariableName,
++  IN OUT UINTN       *VariableNameSize,
++  IN CHAR16          *VariableName,
+   IN EFI_GUID        *VendorGuid,
+   OUT UINT32         *Attributes,
+-  OUT UINTN          *DataSize,
+-  IN OUT UINTN       *DataBufferSize,
+-  IN OUT VOID        **Data
++  IN OUT UINTN       *DataSize,
++  OUT VOID           *Data
+   )
+ {
+   EFI_STATUS  Status;
+@@ -683,23 +613,13 @@
+   if (!EFI_ERROR (Status) && (BufferSize == 0)) {
+     return EFI_NOT_FOUND; // End of file
+   }
+-  if (EFI_ERROR (Status) || (BufferSize != sizeof (UINT32))) {
++  if (EFI_ERROR (Status) || (BufferSize != sizeof (UINT32)) || 
++      (NameSize > *VariableNameSize)) {
+     return EFI_ABORTED;
+   }
+   
+-  if (NameSize > *NameBufferSize) {
+-    //
+-    // Expand at least twice to avoid reallocate many times
+-    //
+-    FreePool (*VariableName);
+-    *NameBufferSize = NameSize > *NameBufferSize * 2 ? NameSize : *NameBufferSize * 2;
+-    *VariableName   = AllocateZeroPool (*NameBufferSize);
+-    if (*VariableName == NULL) {
+-      return EFI_OUT_OF_RESOURCES;
+-    }
+-  }
+   BufferSize = NameSize;
+-  Status     = LibReadFile (FileHandle, &BufferSize, *VariableName);
++  Status     = LibReadFile (FileHandle, &BufferSize, VariableName);
+   if (EFI_ERROR (Status) || (BufferSize != NameSize)) {
+     return EFI_ABORTED;
+   }
+@@ -719,29 +639,19 @@
+   Size       = 0;
+   BufferSize = sizeof (UINT32);
+   Status     = LibReadFile (FileHandle, &BufferSize, &Size);
+-  if (EFI_ERROR (Status) || (BufferSize != sizeof (UINT32))) {
++  if (EFI_ERROR (Status) || (BufferSize != sizeof (UINT32)) || 
++      (Size > *DataSize)) {
+     return EFI_ABORTED;
+   }
+   
+-  if (Size > *DataBufferSize) {
+-    //
+-    // Expand at least twice to avoid reallocate many times
+-    //
+-    FreePool (*Data);
+-    *DataBufferSize = Size > *DataBufferSize * 2 ? Size : *DataBufferSize * 2;
+-    *Data           = AllocatePool (*DataBufferSize);
+-    if (*Data == NULL) {
+-      return EFI_OUT_OF_RESOURCES;
+-    }
+-  }
+   BufferSize = Size;
+-  Status     = LibReadFile (FileHandle, &BufferSize, *Data);
++  Status     = LibReadFile (FileHandle, &BufferSize, Data);
+   if (EFI_ERROR (Status) || (BufferSize != Size)) {
+     return EFI_ABORTED;
+   }
+   
+   *VariableNameSize = NameSize;
+-  *DataSize         = Size;
++  *DataSize = Size;
+   return EFI_SUCCESS;
+ }
+diff --ignore-file-name-case -Naur ShellR33/dmpstore/dmpstore.h GccShellR33/dmpstore/dmpstore.h
+--- ShellR33/dmpstore/dmpstore.h       2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/dmpstore/dmpstore.h    2009-11-05 13:49:56.000000000 -0800
+@@ -29,4 +29,4 @@
+     0xceba463a, 0xfe43, 0x4138, 0xbe, 0x3d, 0x34, 0xc6, 0xc4, 0xe1, 0x31, 0xdd \
+   }
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/dmpstore/dmpstore.inf GccShellR33/dmpstore/dmpstore.inf
+--- ShellR33/dmpstore/dmpstore.inf     2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/dmpstore/dmpstore.inf  2009-09-22 15:37:05.000000000 -0700
+@@ -25,24 +25,24 @@
+ COMPONENT_TYPE       = APPLICATION
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   DmpstoreStrings.uni
+   dmpstore.c
+   dmpstore.h
+   
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/drivers/drivers.c GccShellR33/drivers/drivers.c
+--- ShellR33/drivers/drivers.c 2009-05-27 01:55:16.000000000 -0700
++++ GccShellR33/drivers/drivers.c      2009-11-05 13:49:56.000000000 -0800
+@@ -43,7 +43,7 @@
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++static EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiDriversGuid = EFI_DRIVERS_GUID;
+ SHELL_VAR_CHECK_ITEM    DriversCheckList[] = {
+   {
+diff --ignore-file-name-case -Naur ShellR33/drivers/drivers.inf GccShellR33/drivers/drivers.inf
+--- ShellR33/drivers/drivers.inf       2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/drivers/drivers.inf    2009-09-22 15:37:05.000000000 -0700
+@@ -40,7 +40,7 @@
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   DriversStrings.uni
+   drivers.c
+   drivers.h
+@@ -48,17 +48,17 @@
+   
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/drvcfg/drvcfg.c GccShellR33/drvcfg/drvcfg.c
+--- ShellR33/drvcfg/drvcfg.c   2009-05-27 01:55:16.000000000 -0700
++++ GccShellR33/drvcfg/drvcfg.c        2009-11-05 13:49:56.000000000 -0800
+@@ -38,7 +38,7 @@
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++static EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiDrvcfgGuid = EFI_DRVCFG_GUID;
+ SHELL_VAR_CHECK_ITEM  DrvcfgCheckList[] = {
+   {
+diff --ignore-file-name-case -Naur ShellR33/drvcfg/drvcfg.inf GccShellR33/drvcfg/drvcfg.inf
+--- ShellR33/drvcfg/drvcfg.inf 2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/drvcfg/drvcfg.inf      2009-09-22 15:37:05.000000000 -0700
+@@ -40,24 +40,24 @@
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   DrvcfgStrings.uni
+   drvcfg.c
+   drvcfg.h
+     
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/drvdiag/drvdiag.c GccShellR33/drvdiag/drvdiag.c
+--- ShellR33/drvdiag/drvdiag.c 2009-05-27 01:55:16.000000000 -0700
++++ GccShellR33/drvdiag/drvdiag.c      2009-11-05 13:49:56.000000000 -0800
+@@ -41,7 +41,7 @@
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++static EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiDrvdiagGuid = EFI_DRVDIAG_GUID;
+ SHELL_VAR_CHECK_ITEM  DrvdiagCheckList[] = {
+   {
+diff --ignore-file-name-case -Naur ShellR33/drvdiag/drvdiag.inf GccShellR33/drvdiag/drvdiag.inf
+--- ShellR33/drvdiag/drvdiag.inf       2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/drvdiag/drvdiag.inf    2009-09-22 15:37:05.000000000 -0700
+@@ -40,7 +40,7 @@
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   DrvdiagStrings.uni
+   drvdiag.c
+   drvdiag.h
+@@ -48,17 +48,17 @@
+   
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/edit/edit.inf GccShellR33/edit/edit.inf
+--- ShellR33/edit/edit.inf     2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/edit/edit.inf  2009-09-22 15:37:05.000000000 -0700
+@@ -25,7 +25,7 @@
+ COMPONENT_TYPE       = APPLICATION
+ [sources.common]
+- ..\ShCommonStrings.uni
++ ../ShCommonStrings.uni
+  EditStrings.uni
+  editor.h
+  editortype.h
+@@ -41,17 +41,17 @@
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/edit/editor.h GccShellR33/edit/editor.h
+--- ShellR33/edit/editor.h     2008-08-13 23:02:46.000000000 -0700
++++ GccShellR33/edit/editor.h  2009-11-05 13:49:56.000000000 -0800
+@@ -33,7 +33,7 @@
+ #include "libstatusbar.h"
+ #include "libinputbar.h"
+ #include "libmenubar.h"
+-#include "libmisc.h"
++#include "libMisc.h"
+ //
+ // This is the generated header file which includes whatever needs to be exported (strings + IFR)
+ //
+@@ -43,7 +43,7 @@
+ extern BOOLEAN                  EditorFirst;
+ extern BOOLEAN                  EditorExit;
+-extern EFI_HII_HANDLE           HiiHandle;
++extern EFI_HII_HANDLE           gEditHiiHandle;
+ #if (EFI_SPECIFICATION_VERSION < 0x0002000A)
+ extern EFI_HII_PROTOCOL         *Hii;
+ #endif
+diff --ignore-file-name-case -Naur ShellR33/edit/libEditor.c GccShellR33/edit/libEditor.c
+--- ShellR33/edit/libEditor.c  2009-05-27 01:55:16.000000000 -0700
++++ GccShellR33/edit/libEditor.c       2009-11-05 13:49:56.000000000 -0800
+@@ -123,7 +123,7 @@
+   Status = BS->HandleProtocol (
+                 In,
+                 &gEfiSimplePointerProtocolGuid,
+-                &MainEditor.MouseInterface
++                (VOID **)&MainEditor.MouseInterface
+                 );
+   if (EFI_ERROR (Status)) {
+     //
+@@ -146,7 +146,7 @@
+         Status = BS->HandleProtocol (
+                       HandleBuffer[Index],
+                       &gEfiSimplePointerProtocolGuid,
+-                      &MainEditor.MouseInterface
++                      (VOID **)&MainEditor.MouseInterface
+                       );
+         if (!EFI_ERROR (Status)) {
+           break;
+@@ -169,31 +169,31 @@
+   //
+   Status = MainTitleBarInit ();
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_TITLEBAR), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_TITLEBAR), gEditHiiHandle);
+     return EFI_LOAD_ERROR;
+   }
+   Status = MainMenuBarInit ();
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_MAINMENU), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_MAINMENU), gEditHiiHandle);
+     return EFI_LOAD_ERROR;
+   }
+   Status = MainStatusBarInit ();
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_STATUSBAR), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_STATUSBAR), gEditHiiHandle);
+     return EFI_LOAD_ERROR;
+   }
+   Status = MainInputBarInit ();
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_INPUTBAR), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_INPUTBAR), gEditHiiHandle);
+     return EFI_LOAD_ERROR;
+   }
+   Status = FileBufferInit ();
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_FILEBUFFER), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_FILEBUFFER), gEditHiiHandle);
+     return EFI_LOAD_ERROR;
+   }
+   //
+@@ -234,27 +234,27 @@
+   //
+   Status = MainTitleBarCleanup ();
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_TILEBAR_CLEANUP), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_TILEBAR_CLEANUP), gEditHiiHandle);
+   }
+   Status = MainMenuBarCleanup ();
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_MENUBAR_CLEANUP), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_MENUBAR_CLEANUP), gEditHiiHandle);
+   }
+   Status = MainStatusBarCleanup ();
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_STATUSBAR_CLEANUP), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_STATUSBAR_CLEANUP), gEditHiiHandle);
+   }
+   Status = MainInputBarCleanup ();
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_INPUTBAR_CLEANUP), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_INPUTBAR_CLEANUP), gEditHiiHandle);
+   }
+   Status = FileBufferCleanup ();
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_FILEBUFFER_CLEANUP), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_FILEBUFFER_CLEANUP), gEditHiiHandle);
+   }
+   //
+   // restore old mode
+diff --ignore-file-name-case -Naur ShellR33/edit/libInputBar.c GccShellR33/edit/libInputBar.c
+--- ShellR33/edit/libInputBar.c        2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/edit/libInputBar.c     2009-11-05 13:49:56.000000000 -0800
+@@ -173,7 +173,7 @@
+   EditorClearLine (INPUT_BAR_LOCATION);
+   Out->SetCursorPosition (Out, 0, INPUT_BAR_LOCATION - 1);
+-  PrintToken (STRING_TOKEN (STR_EDIT_LIBINPUTBAR_MAININPUTBAR), HiiHandle, MainInputBar.Prompt);
++  PrintToken (STRING_TOKEN (STR_EDIT_LIBINPUTBAR_MAININPUTBAR), gEditHiiHandle, MainInputBar.Prompt);
+   //
+   // that's the maximum input length that can be displayed on screen
+diff --ignore-file-name-case -Naur ShellR33/edit/libMenuBar.c GccShellR33/edit/libMenuBar.c
+--- ShellR33/edit/libMenuBar.c 2008-08-13 23:02:46.000000000 -0700
++++ GccShellR33/edit/libMenuBar.c      2009-11-05 13:49:56.000000000 -0800
+@@ -220,9 +220,9 @@
+     FunctionKeyString = AllocatePool (BufferSize);
+ #if (EFI_SPECIFICATION_VERSION < 0x0002000A)
+-    Status            = Hii->GetString (Hii, HiiHandle, Item->NameToken, FALSE, NULL, &BufferSize, NameString);
++    Status            = Hii->GetString (Hii, gEditHiiHandle, Item->NameToken, FALSE, NULL, &BufferSize, NameString);
+ #else
+-    Status            = LibGetString (HiiHandle, Item->NameToken, NameString, &BufferSize);
++    Status            = LibGetString (gEditHiiHandle, Item->NameToken, NameString, &BufferSize);
+ #endif
+     Width             = max ((StrLen (NameString) + 6), 20);
+@@ -232,9 +232,9 @@
+     }
+ #if (EFI_SPECIFICATION_VERSION < 0x0002000A)
+-    Status = Hii->GetString (Hii, HiiHandle, Item->FunctionKeyToken, FALSE, NULL, &BufferSize, FunctionKeyString);
++    Status = Hii->GetString (Hii, gEditHiiHandle, Item->FunctionKeyToken, FALSE, NULL, &BufferSize, FunctionKeyString);
+ #else
+-    Status = LibGetString (HiiHandle, Item->FunctionKeyToken, FunctionKeyString, &BufferSize);
++    Status = LibGetString (gEditHiiHandle, Item->FunctionKeyToken, FunctionKeyString, &BufferSize);
+ #endif    
+     PrintAt (Col - 1, Row - 1, L"%E%s%N  %H%s%N  ", FunctionKeyString, NameString);
+diff --ignore-file-name-case -Naur ShellR33/edit/main.c GccShellR33/edit/main.c
+--- ShellR33/edit/main.c       2008-08-13 23:02:46.000000000 -0700
++++ GccShellR33/edit/main.c    2009-11-05 13:49:56.000000000 -0800
+@@ -34,7 +34,7 @@
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE    HiiHandle;
++EFI_HII_HANDLE    gEditHiiHandle;
+ #if (EFI_SPECIFICATION_VERSION < 0x0002000A)
+ EFI_HII_PROTOCOL  *Hii;
+ #endif
+@@ -127,7 +127,7 @@
+   }
+ #endif
+-  Status = LibInitializeStrings (&HiiHandle, STRING_ARRAY_NAME, &EfiEditGuid);
++  Status = LibInitializeStrings (&gEditHiiHandle, STRING_ARRAY_NAME, &EfiEditGuid);
+   if (EFI_ERROR (Status)) {
+     return Status;
+@@ -137,7 +137,7 @@
+   if (VarCheckOk != RetCode) {
+     switch (RetCode) {
+     case VarCheckUnknown:
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_UNKNOWN_FLAG), HiiHandle, L"edit", Useful);
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_UNKNOWN_FLAG), gEditHiiHandle, L"edit", Useful);
+       break;
+     default:
+@@ -161,10 +161,10 @@
+         ChkPck.FlagCount > 2 ||
+         (ChkPck.FlagCount == 2 && LibCheckVarGetFlag (&ChkPck, L"-b") == NULL)
+         ) {
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_MANY), HiiHandle, L"edit");
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_MANY), gEditHiiHandle, L"edit");
+       Status = EFI_INVALID_PARAMETER;
+     } else {
+-      PrintToken (STRING_TOKEN (STR_EDIT_VERBOSE_HELP), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_EDIT_VERBOSE_HELP), gEditHiiHandle);
+       Status = EFI_SUCCESS;
+     }
+@@ -172,21 +172,21 @@
+   }
+   if (ChkPck.ValueCount > 1) {
+-    PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_MANY), HiiHandle, L"edit");
++    PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_MANY), gEditHiiHandle, L"edit");
+     Status = EFI_INVALID_PARAMETER;
+     goto done;
+   }
+   if (ChkPck.ValueCount == 1) {
+     if (!IsValidFileName (ChkPck.VarList->VarStr)) {
+-      PrintToken (STRING_TOKEN (STR_EDIT_MAIN_INVALID_FILE_NAME), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_EDIT_MAIN_INVALID_FILE_NAME), gEditHiiHandle);
+       Status = EFI_INVALID_PARAMETER;
+       goto done;
+     }
+   }
+   if (SI->RedirArgc != 0) {
+-    PrintToken (STRING_TOKEN (STR_EDIT_NOREDIRECT), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_EDIT_NOREDIRECT), gEditHiiHandle);
+     Status = EFI_INVALID_PARAMETER;
+     goto done;
+   }
+@@ -195,7 +195,7 @@
+   if (EFI_ERROR (Status)) {
+     Out->ClearScreen (Out);
+     Out->EnableCursor (Out, TRUE);
+-    PrintToken (STRING_TOKEN (STR_EDIT_MAIN_INIT_FAILED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_EDIT_MAIN_INIT_FAILED), gEditHiiHandle);
+     goto done;
+   }
+@@ -240,19 +240,19 @@
+   //
+   if (Status == EFI_SUCCESS) {
+   } else if (Status == EFI_OUT_OF_RESOURCES) {
+-    PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_OUT_RESOURCE), HiiHandle, L"edit");
++    PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_OUT_RESOURCE), gEditHiiHandle, L"edit");
+   } else {
+     if (Buffer != NULL) {
+       if (StrCmp (Buffer, L"") != 0) {
+         //
+         // print out the status string
+         //
+-        PrintToken (STRING_TOKEN (STR_EDIT_MAIN_BUFFER), HiiHandle, Buffer);
++        PrintToken (STRING_TOKEN (STR_EDIT_MAIN_BUFFER), gEditHiiHandle, Buffer);
+       } else {
+-        PrintToken (STRING_TOKEN (STR_EDIT_MAIN_UNKNOWN_EDITOR_ERR), HiiHandle);
++        PrintToken (STRING_TOKEN (STR_EDIT_MAIN_UNKNOWN_EDITOR_ERR), gEditHiiHandle);
+       }
+     } else {
+-      PrintToken (STRING_TOKEN (STR_EDIT_MAIN_UNKNOWN_EDITOR_ERR), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_EDIT_MAIN_UNKNOWN_EDITOR_ERR), gEditHiiHandle);
+     }
+   }
+diff --ignore-file-name-case -Naur ShellR33/EDK_Snapshot.txt GccShellR33/EDK_Snapshot.txt
+--- ShellR33/EDK_Snapshot.txt  2009-08-13 22:57:02.000000000 -0700
++++ GccShellR33/EDK_Snapshot.txt       2009-09-22 15:37:05.000000000 -0700
+@@ -1,5 +1,5 @@
+ Notes:
+-  This EFI Shell release package has been tested on the 2009-08-12's EDK which snapshot
+-is Edk-Dev-Snapshot-20090812, User can get this version EDK from the following URL:
+-  https://edk.tianocore.org/files/documents/16/558/Edk-Dev-Snapshot-20090812.zip
++  This EFI Shell release package has been tested on the 2009-05-27's EDK which snapshot
++is Edk-Dev-Snapshot-20090527, User can get this version EDK from the following URL:
++  https://edk.tianocore.org/files/documents/16/526/Edk-Dev-Snapshot-20090527.zip
+   We don't guarantee this package can work correctly on the other EDK snapshot.
+\ No newline at end of file
+diff --ignore-file-name-case -Naur ShellR33/EfiCompress/compress.c GccShellR33/EfiCompress/compress.c
+--- ShellR33/EfiCompress/compress.c    2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/EfiCompress/compress.c 2009-09-22 15:37:05.000000000 -0700
+@@ -30,7 +30,11 @@
+ // Macro Definitions
+ //
+ typedef INT16             NODE;
+-#define UINT8_MAX         0xff
++
++#ifndef UINT8_MAX
++  #define UINT8_MAX         0xff
++#endif
++
+ #define UINT8_BIT         8
+ #define THRESHOLD         3
+ #define INIT_CRC          0
+@@ -262,7 +266,7 @@
+ STATIC UINT32 mCompSize, mOrigSize;
+ STATIC UINT16 *mFreq, *mSortPtr, mLenCnt[17], mLeft[2 * NC - 1], mRight[2 * NC - 1],
+-              mCrcTable[UINT8_MAX + 1], mCFreq[2 * NC - 1], mCTable[4096], mCCode[NC],
++              mCrcTable[UINT8_MAX + 1], mCFreq[2 * NC - 1], mCCode[NC],
+               mPFreq[2 * NP - 1], mPTCode[NPT], mTFreq[2 * NT - 1];
+ STATIC NODE   mPos, mMatchPos, mAvail, *mPosition, *mParent, *mPrev, *mNext = NULL;
+diff --ignore-file-name-case -Naur ShellR33/EfiCompress/Compress.h GccShellR33/EfiCompress/Compress.h
+--- ShellR33/EfiCompress/Compress.h    2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/EfiCompress/Compress.h 2009-11-05 13:49:56.000000000 -0800
+@@ -57,4 +57,4 @@
+ --*/
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/EfiCompress/compress.inf GccShellR33/EfiCompress/compress.inf
+--- ShellR33/EfiCompress/compress.inf  2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/EfiCompress/compress.inf       2009-09-22 15:37:05.000000000 -0700
+@@ -25,7 +25,7 @@
+ COMPONENT_TYPE       = APPLICATION
+ [sources.common]
+-..\ShCommonStrings.uni
++../ShCommonStrings.uni
+ CompressStrings.uni
+ compressMain.c
+ compress.c
+@@ -34,17 +34,17 @@
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/EfiDecompress/Decompress.c GccShellR33/EfiDecompress/Decompress.c
+--- ShellR33/EfiDecompress/Decompress.c        2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/EfiDecompress/Decompress.c     2009-09-22 19:19:20.000000000 -0700
+@@ -22,7 +22,7 @@
+ --*/
+ #include "EfiShellLib.h"
+-#include "decompress.h"
++#include "Decompress.h"
+ extern UINT8    STRING_ARRAY_NAME[];
+@@ -31,7 +31,7 @@
+ //
+ #include STRING_DEFINES_FILE
+-#include EFI_PROTOCOL_DEFINITION (decompress)
++#include EFI_PROTOCOL_DEFINITION (Decompress)
+ EFI_HII_HANDLE  HiiDecompressHandle;
+ EFI_GUID        EfiDecompressGuid = EFI_DECOMPRESS_GUID;
+@@ -192,7 +192,7 @@
+   //
+   //
+   //
+-  Status = LibLocateProtocol (&gEfiDecompressProtocolGuid, &Decompress);
++  Status = LibLocateProtocol (&gEfiDecompressProtocolGuid, (VOID **)&Decompress);
+   if (EFI_ERROR (Status)) {
+     PrintToken (STRING_TOKEN (STR_DECOMPRESS_PROTOCOL_NOT_FOUND), HiiDecompressHandle, L"efidecompress");
+     Status = EFI_UNSUPPORTED;
+diff --ignore-file-name-case -Naur ShellR33/EfiDecompress/Decompress.h GccShellR33/EfiDecompress/Decompress.h
+--- ShellR33/EfiDecompress/Decompress.h        2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/EfiDecompress/Decompress.h     2009-11-05 13:49:56.000000000 -0800
+@@ -29,4 +29,4 @@
+     0xe15963a9, 0xa05a, 0x480e, 0x91, 0x49, 0x32, 0xe9, 0x24, 0x5d, 0x98, 0xcb \
+   }
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/EfiDecompress/Decompress.inf GccShellR33/EfiDecompress/Decompress.inf
+--- ShellR33/EfiDecompress/Decompress.inf      2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/EfiDecompress/Decompress.inf   2009-09-22 15:37:05.000000000 -0700
+@@ -25,7 +25,7 @@
+ COMPONENT_TYPE       = APPLICATION
+ [sources.common]
+-..\ShCommonStrings.uni
++../ShCommonStrings.uni
+ DecompressStrings.uni
+ decompress.c
+ decompress.h
+@@ -33,17 +33,17 @@
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/err/err.c GccShellR33/err/err.c
+--- ShellR33/err/err.c 2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/err/err.c      2009-11-05 13:49:56.000000000 -0800
+@@ -35,7 +35,7 @@
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++static EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiErrGuid = EFI_ERR_GUID;
+ SHELL_VAR_CHECK_ITEM    ErrCheckList[] = {
+   {
+@@ -149,7 +149,7 @@
+   EFI_DEBUG_MASK_PROTOCOL *dmp;
+   UINTN                   Mask;
+-  Status = BS->HandleProtocol (Handle, &gEfiDebugMaskProtocolGuid, &dmp);
++  Status = BS->HandleProtocol (Handle, &gEfiDebugMaskProtocolGuid, (VOID **)&dmp);
+   if (!EFI_ERROR (Status)) {
+     Status = dmp->GetDebugMask (dmp, &Mask);
+     if (!EFI_ERROR (Status)) {
+@@ -278,7 +278,7 @@
+     goto Done;
+   }
+-  Status = BS->HandleProtocol (RealHandle, &gEfiDebugMaskProtocolGuid, &dmp);
++  Status = BS->HandleProtocol (RealHandle, &gEfiDebugMaskProtocolGuid, (VOID **)&dmp);
+   if (EFI_ERROR (Status)) {
+     PrintToken (STRING_TOKEN (STR_ERR_HANDLE_NOT_FOUND), HiiHandle, DrvHandle + 1);
+     goto Done;
+@@ -336,7 +336,7 @@
+   }
+   
+   for (Index = 0; Index < BufferSize / sizeof(EFI_HANDLE); Index ++) {
+-    Status = BS->HandleProtocol (Buffer[Index], &gEfiDebugMaskProtocolGuid, &dmp);
++    Status = BS->HandleProtocol (Buffer[Index], &gEfiDebugMaskProtocolGuid, (VOID **)&dmp);
+     Status = dmp->SetDebugMask (dmp, Msk);
+   }
+diff --ignore-file-name-case -Naur ShellR33/err/err.h GccShellR33/err/err.h
+--- ShellR33/err/err.h 2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/err/err.h      2009-11-05 13:49:56.000000000 -0800
+@@ -29,4 +29,4 @@
+     0xdaab229b, 0x7883, 0x4f5f, 0xac, 0x6e, 0x15, 0x20, 0xc7, 0xe7, 0x8f, 0xd4 \
+   }
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/err/err.inf GccShellR33/err/err.inf
+--- ShellR33/err/err.inf       2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/err/err.inf    2009-09-22 15:37:05.000000000 -0700
+@@ -25,7 +25,7 @@
+ COMPONENT_TYPE       = APPLICATION
+ [sources.common]
+-..\ShCommonStrings.uni
++../ShCommonStrings.uni
+ ErrStrings.uni
+ err.c
+ err.h
+@@ -33,17 +33,17 @@
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/guid/guid.c GccShellR33/guid/guid.c
+--- ShellR33/guid/guid.c       2006-08-07 02:14:38.000000000 -0700
++++ GccShellR33/guid/guid.c    2009-11-05 13:49:56.000000000 -0800
+@@ -36,7 +36,7 @@
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++static EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiGuidGuid = EFI_GUID_GUID;
+ SHELL_VAR_CHECK_ITEM    GuidCheckList[] = {
+   {
+diff --ignore-file-name-case -Naur ShellR33/guid/guid.h GccShellR33/guid/guid.h
+--- ShellR33/guid/guid.h       2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/guid/guid.h    2009-11-05 13:49:56.000000000 -0800
+@@ -31,4 +31,4 @@
+     0x425bff44, 0x1cae, 0x4c27, 0x98, 0x2c, 0x25, 0xc8, 0x74, 0x59, 0xdf, 0xd6 \
+   }
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/guid/guid.inf GccShellR33/guid/guid.inf
+--- ShellR33/guid/guid.inf     2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/guid/guid.inf  2009-09-22 15:37:05.000000000 -0700
+@@ -37,23 +37,23 @@
+   FILE_GUID            = CBEB01F8-0912-4d87-8A6B-45D02847A405
+   COMPONENT_TYPE       = APPLICATION
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   GuidStrings.uni
+   guid.c
+   guid.h
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]
+   EfiShellLib
+   EdkProtocolLib
+diff --ignore-file-name-case -Naur ShellR33/hexedit/heditor.h GccShellR33/hexedit/heditor.h
+--- ShellR33/hexedit/heditor.h 2008-08-13 23:02:46.000000000 -0700
++++ GccShellR33/hexedit/heditor.h      2009-11-05 13:49:56.000000000 -0800
+@@ -39,7 +39,7 @@
+ #include "libinputbar.h"
+ #include "libmenubar.h"
+-#include "libmisc.h"
++#include "libMisc.h"
+ #include "libclipboard.h"
+@@ -52,7 +52,7 @@
+ extern BOOLEAN                    HEditorFirst;
+ extern BOOLEAN                    HEditorExit;
+-extern EFI_HII_HANDLE             HiiHandle;
++extern EFI_HII_HANDLE             gHexEditHiiHandle;
+ #if (EFI_SPECIFICATION_VERSION < 0x0002000A)
+ extern EFI_HII_PROTOCOL           *Hii;
+ #endif
+diff --ignore-file-name-case -Naur ShellR33/hexedit/hexedit.inf GccShellR33/hexedit/hexedit.inf
+--- ShellR33/hexedit/hexedit.inf       2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/hexedit/hexedit.inf    2009-09-22 15:37:05.000000000 -0700
+@@ -25,7 +25,7 @@
+ COMPONENT_TYPE       = APPLICATION
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   HexeditStrings.uni
+   heditor.h
+   heditortype.h
+@@ -45,17 +45,17 @@
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/hexedit/libBufferImage.c GccShellR33/hexedit/libBufferImage.c
+--- ShellR33/hexedit/libBufferImage.c  2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/hexedit/libBufferImage.c       2009-09-22 15:37:05.000000000 -0700
+@@ -203,6 +203,9 @@
+   case MEM_BUFFER:
+     HMemImageBackup ();
+     break;
++
++  default:
++    break;
+   }
+   return EFI_SUCCESS;
+@@ -980,6 +983,9 @@
+   case MEM_BUFFER:
+     Status = HMemImageRead (MemOffset, MemSize, Recover);
+     break;
++
++  default:
++    break;
+   }
+   if (EFI_ERROR (Status)) {
+@@ -1030,6 +1036,9 @@
+   case MEM_BUFFER:
+     Status = HMemImageSave (MemOffset, MemSize);
+     break;
++    
++  default:
++    break;
+   }
+   if (EFI_ERROR (Status)) {
+diff --ignore-file-name-case -Naur ShellR33/hexedit/libdiskimage.c GccShellR33/hexedit/libdiskimage.c
+--- ShellR33/hexedit/libdiskimage.c    2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/hexedit/libdiskimage.c 2009-09-22 15:37:05.000000000 -0700
+@@ -246,7 +246,7 @@
+   Status = LibDevicePathToInterface (
+             &gEfiBlockIoProtocolGuid,
+             DevicePath,
+-            &BlkIo
++            (VOID **)&BlkIo
+             );
+   if (EFI_ERROR (Status)) {
+     HMainStatusBarSetStatusString (L"Read Disk Failed");
+@@ -427,7 +427,7 @@
+   Status = LibDevicePathToInterface (
+             &gEfiBlockIoProtocolGuid,
+             DevicePath,
+-            &BlkIo
++            (VOID **)&BlkIo
+             );
+   if (EFI_ERROR (Status)) {
+     return Status;
+diff --ignore-file-name-case -Naur ShellR33/hexedit/libEditor.c GccShellR33/hexedit/libEditor.c
+--- ShellR33/hexedit/libEditor.c       2009-05-27 01:55:16.000000000 -0700
++++ GccShellR33/hexedit/libEditor.c    2009-11-05 13:49:56.000000000 -0800
+@@ -20,7 +20,7 @@
+ --*/
+-#include "Heditor.h"
++#include "heditor.h"
+ HEFI_EDITOR_COLOR_ATTRIBUTES    HOriginalColors;
+ INTN                            HOriginalMode;
+@@ -136,7 +136,7 @@
+   Status = BS->HandleProtocol (
+                 In,
+                 &gEfiSimplePointerProtocolGuid,
+-                &HMainEditor.MouseInterface
++                (VOID **)&HMainEditor.MouseInterface
+                 );
+   if (EFI_ERROR (Status)) {
+     //
+@@ -159,7 +159,7 @@
+         Status = BS->HandleProtocol (
+                       HandleBuffer[Index],
+                       &gEfiSimplePointerProtocolGuid,
+-                      &HMainEditor.MouseInterface
++                      (VOID **)&HMainEditor.MouseInterface
+                       );
+         if (!EFI_ERROR (Status)) {
+           break;
+@@ -182,37 +182,37 @@
+   //
+   Status = HMainTitleBarInit ();
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_MAINEDITOR_TITLE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_MAINEDITOR_TITLE), gHexEditHiiHandle);
+     return EFI_LOAD_ERROR;
+   }
+   Status = HMainMenuBarInit ();
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_MAINEDITOR_MAINMENU), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_MAINEDITOR_MAINMENU), gHexEditHiiHandle);
+     return EFI_LOAD_ERROR;
+   }
+   Status = HMainStatusBarInit ();
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_MAINEDITOR_STATUS), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_MAINEDITOR_STATUS), gHexEditHiiHandle);
+     return EFI_LOAD_ERROR;
+   }
+   Status = HMainInputBarInit ();
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_MAINEDITOR_INPUTBAR), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_MAINEDITOR_INPUTBAR), gHexEditHiiHandle);
+     return EFI_LOAD_ERROR;
+   }
+   Status = HBufferImageInit ();
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_MAINEDITOR_BUFFERIMAGE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_MAINEDITOR_BUFFERIMAGE), gHexEditHiiHandle);
+     return EFI_LOAD_ERROR;
+   }
+   Status = HClipBoardInit ();
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_MAINEDITOR_CLIPBOARD), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_MAINEDITOR_CLIPBOARD), gHexEditHiiHandle);
+     return EFI_LOAD_ERROR;
+   }
+   //
+@@ -259,32 +259,32 @@
+   //
+   Status = HMainTitleBarCleanup ();
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_TITLEBAR_CLEAN), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_TITLEBAR_CLEAN), gHexEditHiiHandle);
+   }
+   Status = HMainMenuBarCleanup ();
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_MENUBAR_CLEAN), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_MENUBAR_CLEAN), gHexEditHiiHandle);
+   }
+   Status = HMainStatusBarCleanup ();
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_STATUSBAR_CLEAN), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_STATUSBAR_CLEAN), gHexEditHiiHandle);
+   }
+   Status = HMainInputBarCleanup ();
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_INPUTBAR_CLEAN), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_INPUTBAR_CLEAN), gHexEditHiiHandle);
+   }
+   Status = HBufferImageCleanup ();
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_BUFFERIMAGE_CLEAN), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_BUFFERIMAGE_CLEAN), gHexEditHiiHandle);
+   }
+   Status = HClipBoardCleanup ();
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_CLIPBOARD_CLEAN), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_CLIPBOARD_CLEAN), gHexEditHiiHandle);
+   }
+   //
+   // restore old mode
+@@ -732,6 +732,9 @@
+         case MEM_BUFFER:
+           OldSize = HBufferImage.MemImage->Size;
+           break;
++          
++        default:
++          break;
+         }
+         if (LengthChange == FALSE) {
+diff --ignore-file-name-case -Naur ShellR33/hexedit/libInputBar.c GccShellR33/hexedit/libInputBar.c
+--- ShellR33/hexedit/libInputBar.c     2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/hexedit/libInputBar.c  2009-11-05 13:49:56.000000000 -0800
+@@ -201,7 +201,7 @@
+   HEditorClearLine (INPUT_BAR_LOCATION);
+   Out->SetCursorPosition (Out, 0, INPUT_BAR_LOCATION - 1);
+-  PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBINPUTBAR_MAININPUTBAR), HiiHandle, HMainInputBar.Prompt);
++  PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBINPUTBAR_MAININPUTBAR), gHexEditHiiHandle, HMainInputBar.Prompt);
+   //
+   // that's the maximum input length that can be displayed on screen
+diff --ignore-file-name-case -Naur ShellR33/hexedit/libMemImage.c GccShellR33/hexedit/libMemImage.c
+--- ShellR33/hexedit/libMemImage.c     2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/hexedit/libMemImage.c  2009-09-22 15:37:05.000000000 -0700
+@@ -91,7 +91,7 @@
+   Status = BS->LocateProtocol (
+                 &gEfiPciRootBridgeIoProtocolGuid,
+                 NULL,
+-                &HMemImage.IoFncs
++                (VOID **)&HMemImage.IoFncs
+                 );
+   if (Status == EFI_NOT_FOUND) {
+     //
+diff --ignore-file-name-case -Naur ShellR33/hexedit/libMenuBar.c GccShellR33/hexedit/libMenuBar.c
+--- ShellR33/hexedit/libMenuBar.c      2008-08-13 23:02:46.000000000 -0700
++++ GccShellR33/hexedit/libMenuBar.c   2009-11-05 13:49:56.000000000 -0800
+@@ -255,9 +255,9 @@
+     FunctionKeyString = AllocatePool (BufferSize);
+ #if (EFI_SPECIFICATION_VERSION < 0x0002000A)
+-    Status            = Hii->GetString (Hii, HiiHandle, Item->NameToken, FALSE, NULL, &BufferSize, NameString);
++    Status            = Hii->GetString (Hii, gHexEditHiiHandle, Item->NameToken, FALSE, NULL, &BufferSize, NameString);
+ #else
+-    Status            = LibGetString (HiiHandle, Item->NameToken, NameString, &BufferSize);
++    Status            = LibGetString (gHexEditHiiHandle, Item->NameToken, NameString, &BufferSize);
+ #endif
+     Width             = max ((StrLen (NameString) + 6), 18);
+@@ -267,9 +267,9 @@
+     }
+ #if (EFI_SPECIFICATION_VERSION < 0x0002000A)
+-    Status = Hii->GetString (Hii, HiiHandle, Item->FunctionKeyToken, FALSE, NULL, &BufferSize, FunctionKeyString);
++    Status = Hii->GetString (Hii, gHexEditHiiHandle, Item->FunctionKeyToken, FALSE, NULL, &BufferSize, FunctionKeyString);
+ #else
+-    Status = LibGetString (HiiHandle, Item->FunctionKeyToken, FunctionKeyString, &BufferSize);
++    Status = LibGetString (gHexEditHiiHandle, Item->FunctionKeyToken, FunctionKeyString, &BufferSize);
+ #endif
+     if (Index >= 10) {
+       PrintAt (Col - 1, Row - 1, L"%E%s%N %H%s%N  ", FunctionKeyString, NameString);
+diff --ignore-file-name-case -Naur ShellR33/hexedit/libmenubar.h GccShellR33/hexedit/libmenubar.h
+--- ShellR33/hexedit/libmenubar.h      2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/hexedit/libmenubar.h   2009-09-22 19:19:20.000000000 -0700
+@@ -20,7 +20,7 @@
+ #ifndef _LIB_MENU_BAR_H_
+ #define _LIB_MENU_BAR_H_
+-#include "Heditortype.h"
++#include "heditortype.h"
+ EFI_STATUS
+ HMainMenuBarInit (
+diff --ignore-file-name-case -Naur ShellR33/hexedit/libMisc.h GccShellR33/hexedit/libMisc.h
+--- ShellR33/hexedit/libMisc.h 2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/hexedit/libMisc.h      2009-09-22 19:19:20.000000000 -0700
+@@ -20,7 +20,7 @@
+ #ifndef _LIB_MISC_H_
+ #define _LIB_MISC_H_
+-#include "Heditortype.h"
++#include "heditortype.h"
+ VOID
+ HEditorClearLine (
+diff --ignore-file-name-case -Naur ShellR33/hexedit/libTitleBar.c GccShellR33/hexedit/libTitleBar.c
+--- ShellR33/hexedit/libTitleBar.c     2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/hexedit/libTitleBar.c  2009-11-05 13:49:56.000000000 -0800
+@@ -212,7 +212,7 @@
+     // the space for file name is 35 characters
+     //
+     if (StrLen (FileNameTmp) <= 35) {
+-      PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBTITLEBAR_MAINEDITOR), HiiHandle, FileNameTmp);
++      PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBTITLEBAR_MAINEDITOR), gHexEditHiiHandle, FileNameTmp);
+       for (Index = StrLen (FileNameTmp); Index < 35; Index++) {
+         Print (L" ");
+@@ -220,7 +220,7 @@
+     } else {
+       for (Index = 0; Index < 32; Index++) {
+-        PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBTITLEBAR_MAINEDITOR_C), HiiHandle, FileNameTmp[Index]);
++        PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBTITLEBAR_MAINEDITOR_C), gHexEditHiiHandle, FileNameTmp[Index]);
+       }
+       //
+       // print "..."
+@@ -234,14 +234,14 @@
+     if (StrLen (HMainEditor.BufferImage->DiskImage->Name) <= 9) {
+       PrintToken (
+         STRING_TOKEN (STR_HEXEDIT_LIBTITLEBAR_MAINEDITOR),
+-        HiiHandle,
++        gHexEditHiiHandle,
+         HMainEditor.BufferImage->DiskImage->Name
+         );
+     } else {
+       for (Index = 0; Index < 6; Index++) {
+         PrintToken (
+           STRING_TOKEN (STR_HEXEDIT_LIBTITLEBAR_MAINEDITOR_C),
+-          HiiHandle,
++          gHexEditHiiHandle,
+           HMainEditor.BufferImage->DiskImage->Name[Index]
+           );
+       }
+@@ -253,7 +253,7 @@
+     PrintToken (
+       STRING_TOKEN (STR_HEXEDIT_LIBTITLEBAR_MAINEDITOR_TWOVARS),
+-      HiiHandle,
++      gHexEditHiiHandle,
+       HMainEditor.BufferImage->DiskImage->Offset,
+       HMainEditor.BufferImage->DiskImage->Offset + HMainEditor.BufferImage->DiskImage->Size - 1
+       );
+@@ -269,7 +269,7 @@
+   case MEM_BUFFER:
+     PrintToken (
+       STRING_TOKEN (STR_HEXEDIT_LIBTITLEBAR_MAINEDITOR_TWOVARS),
+-      HiiHandle,
++      gHexEditHiiHandle,
+       HMainEditor.BufferImage->MemImage->Offset,
+       HMainEditor.BufferImage->MemImage->Offset + HMainEditor.BufferImage->MemImage->Size - 1
+       );
+@@ -280,21 +280,26 @@
+     break;
++  default:
++    break;
+   }
+   //
+   // 9 characters
+   //
+   switch (HMainEditor.BufferImage->BufferType) {
+   case FILE_BUFFER:
+-    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBTITLEBAR_FILE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBTITLEBAR_FILE), gHexEditHiiHandle);
+     break;
+   case DISK_BUFFER:
+-    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBTITLEBAR_DISK), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBTITLEBAR_DISK), gHexEditHiiHandle);
+     break;
+   case MEM_BUFFER:
+-    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBTITLEBAR_MEM), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBTITLEBAR_MEM), gHexEditHiiHandle);
++    break;
++    
++  default:
+     break;
+   }
+   //
+diff --ignore-file-name-case -Naur ShellR33/hexedit/main.c GccShellR33/hexedit/main.c
+--- ShellR33/hexedit/main.c    2008-08-13 23:02:46.000000000 -0700
++++ GccShellR33/hexedit/main.c 2009-11-05 13:49:56.000000000 -0800
+@@ -26,7 +26,7 @@
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE    HiiHandle;
++EFI_HII_HANDLE    gHexEditHiiHandle;
+ #if (EFI_SPECIFICATION_VERSION < 0x0002000A)
+ EFI_HII_PROTOCOL  *Hii;
+ #endif
+@@ -92,10 +92,10 @@
+   VOID
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_HEXEDIT_USAGE), HiiHandle);
+-  PrintToken (STRING_TOKEN (STR_HEXEDIT_FILENAME), HiiHandle);
+-  PrintToken (STRING_TOKEN (STR_HEXEDIT_DISKNAME), HiiHandle);
+-  PrintToken (STRING_TOKEN (STR_HEXEDIT_OFFSET_SIZE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_HEXEDIT_USAGE), gHexEditHiiHandle);
++  PrintToken (STRING_TOKEN (STR_HEXEDIT_FILENAME), gHexEditHiiHandle);
++  PrintToken (STRING_TOKEN (STR_HEXEDIT_DISKNAME), gHexEditHiiHandle);
++  PrintToken (STRING_TOKEN (STR_HEXEDIT_OFFSET_SIZE), gHexEditHiiHandle);
+   Print (L"\n\n");
+ }
+@@ -157,12 +157,12 @@
+   // Register our string package with HII and return the handle to it.
+   // If previously registered we will simply receive the handle
+   //
+-  EFI_SHELL_STR_INIT (HiiHandle, STRING_ARRAY_NAME, EfiHexeditGuid);
++  EFI_SHELL_STR_INIT (gHexEditHiiHandle, STRING_ARRAY_NAME, EfiHexeditGuid);
+   if (!EFI_PROPER_VERSION (1, 10)) {
+     PrintToken (
+       STRING_TOKEN (STR_SHELLENV_GNC_COMMAND_NOT_SUPPORT),
+-      HiiHandle,
++      gHexEditHiiHandle,
+       L"hexedit",
+       EFI_VERSION_1_10
+       );
+@@ -186,17 +186,17 @@
+     switch (RetCode) {
+     case VarCheckConflict:
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_FLAG_CONFLICT), HiiHandle, L"hexedit", Useful);
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_FLAG_CONFLICT), gHexEditHiiHandle, L"hexedit", Useful);
+       break;
+     case VarCheckDuplicate:
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_DUP_FLAG), HiiHandle, L"hexedit", Useful);
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_DUP_FLAG), gHexEditHiiHandle, L"hexedit", Useful);
+       break;
+     case VarCheckUnknown:
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_UNKNOWN_FLAG), HiiHandle, L"hexedit", Useful);
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_UNKNOWN_FLAG), gHexEditHiiHandle, L"hexedit", Useful);
+       break;
+     default:
+@@ -219,10 +219,10 @@
+         ChkPck.FlagCount > 2 ||
+         (ChkPck.FlagCount == 2 && LibCheckVarGetFlag (&ChkPck, L"-b") == NULL)
+         ) {
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_MANY), HiiHandle, L"hexedit");
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_MANY), gHexEditHiiHandle, L"hexedit");
+       Status = EFI_INVALID_PARAMETER;
+     } else {
+-      PrintToken (STRING_TOKEN (STR_HEXEDIT_VERBOSE_HELP), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_HEXEDIT_VERBOSE_HELP), gHexEditHiiHandle);
+       Status = EFI_SUCCESS;
+     }
+@@ -232,13 +232,13 @@
+   Item = LibCheckVarGetFlag (&ChkPck, L"-d");
+   if (Item) {
+     if (3 < ChkPck.ValueCount) {
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_MANY), HiiHandle, L"hexedit");
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_MANY), gHexEditHiiHandle, L"hexedit");
+       Status = EFI_INVALID_PARAMETER;
+       goto done;
+     }
+     if (3 > ChkPck.ValueCount) {
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_FEW), HiiHandle, L"hexedit");
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_FEW), gHexEditHiiHandle, L"hexedit");
+       Status = EFI_INVALID_PARAMETER;
+       goto done;
+     }
+@@ -248,7 +248,7 @@
+     Item    = Item->Next;
+     Result  = HXtoi (Item->VarStr, &Offset);
+     if (EFI_ERROR (Result)) {
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), HiiHandle, L"hexedit", Item->VarStr);
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), gHexEditHiiHandle, L"hexedit", Item->VarStr);
+       Status = EFI_INVALID_PARAMETER;
+       goto done;
+     }
+@@ -256,13 +256,13 @@
+     Item    = Item->Next;
+     Result  = HXtoi (Item->VarStr, &Size);
+     if (EFI_ERROR (Result)) {
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), HiiHandle, L"hexedit", Item->VarStr);
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), gHexEditHiiHandle, L"hexedit", Item->VarStr);
+       Status = EFI_INVALID_PARAMETER;
+       goto done;
+     }
+     if (Offset < 0 || Size <= 0) {
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), HiiHandle, L"hexedit", Item->VarStr);
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), gHexEditHiiHandle, L"hexedit", Item->VarStr);
+       Status = EFI_INVALID_PARAMETER;
+       goto done;
+     }
+@@ -273,13 +273,13 @@
+   Item = LibCheckVarGetFlag (&ChkPck, L"-m");
+   if (Item) {
+     if (2 < ChkPck.ValueCount) {
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_MANY), HiiHandle, L"hexedit");
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_MANY), gHexEditHiiHandle, L"hexedit");
+       Status = EFI_INVALID_PARAMETER;
+       goto done;
+     }
+     if (2 > ChkPck.ValueCount) {
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_FEW), HiiHandle, L"hexedit");
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_FEW), gHexEditHiiHandle, L"hexedit");
+       Status = EFI_INVALID_PARAMETER;
+       goto done;
+     }
+@@ -287,7 +287,7 @@
+     Item    = ChkPck.VarList;
+     Result  = HXtoi (Item->VarStr, &Offset);
+     if (EFI_ERROR (Result)) {
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), HiiHandle, L"hexedit", Item->VarStr);
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), gHexEditHiiHandle, L"hexedit", Item->VarStr);
+       Status = EFI_INVALID_PARAMETER;
+       goto done;
+     }
+@@ -295,20 +295,20 @@
+     Item    = Item->Next;
+     Result  = HXtoi (Item->VarStr, &Size);
+     if (EFI_ERROR (Result)) {
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), HiiHandle, L"hexedit", Item->VarStr);
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), gHexEditHiiHandle, L"hexedit", Item->VarStr);
+       Status = EFI_INVALID_PARAMETER;
+       goto done;
+     }
+     if (Offset < 0 || Size <= 0) {
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), HiiHandle, L"hexedit", Item->VarStr);
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), gHexEditHiiHandle, L"hexedit", Item->VarStr);
+       Status = EFI_INVALID_PARAMETER;
+       goto done;
+     }
+     LastOffset = (UINT64) Offset + (UINT64) Size - (UINT64) 1;
+     if (LastOffset > 0xffffffff) {
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), HiiHandle, L"hexedit", Item->VarStr);
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), gHexEditHiiHandle, L"hexedit", Item->VarStr);
+       goto done;
+     }
+@@ -318,13 +318,13 @@
+   Item = LibCheckVarGetFlag (&ChkPck, L"-f");
+   if (Item) {
+     if (1 < ChkPck.ValueCount) {
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_MANY), HiiHandle, L"hexedit");
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_MANY), gHexEditHiiHandle, L"hexedit");
+       Status = EFI_INVALID_PARAMETER;
+       goto done;
+     }
+     if (1 > ChkPck.ValueCount) {
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_FEW), HiiHandle, L"hexedit");
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_FEW), gHexEditHiiHandle, L"hexedit");
+       Status = EFI_INVALID_PARAMETER;
+       goto done;
+     }
+@@ -332,7 +332,7 @@
+     Item  = ChkPck.VarList;
+     Name  = Item->VarStr;
+     if (!HIsValidFileName (Name)) {
+-      PrintToken (STRING_TOKEN (STR_HEXEDIT_FILE_NAME), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_HEXEDIT_FILE_NAME), gHexEditHiiHandle);
+       Status = EFI_INVALID_PARAMETER;
+       goto done;
+     }
+@@ -345,13 +345,13 @@
+     } else if (1 == ChkPck.ValueCount) {
+       Name = ChkPck.VarList->VarStr;
+     } else {
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_MANY), HiiHandle, L"hexedit");
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_MANY), gHexEditHiiHandle, L"hexedit");
+       Status = EFI_INVALID_PARAMETER;
+       goto done;
+     }
+     if (!HIsValidFileName (Name)) {
+-      PrintToken (STRING_TOKEN (STR_HEXEDIT_FILE_NAME), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_HEXEDIT_FILE_NAME), gHexEditHiiHandle);
+       Status = EFI_INVALID_PARAMETER;
+       goto done;
+     }
+@@ -360,7 +360,7 @@
+   }
+   if (SI->RedirArgc != 0) {
+-    PrintToken (STRING_TOKEN (STR_HEXEDIT_NOREDIRECT), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_HEXEDIT_NOREDIRECT), gHexEditHiiHandle);
+     Status = EFI_INVALID_PARAMETER;
+     goto done;
+   }
+@@ -369,7 +369,7 @@
+   if (EFI_ERROR (Status)) {
+     Out->ClearScreen (Out);
+     Out->EnableCursor (Out, TRUE);
+-    PrintToken (STRING_TOKEN (STR_HEXEDIT_INIT_FAILED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_HEXEDIT_INIT_FAILED), gHexEditHiiHandle);
+     goto done;
+   }
+@@ -414,6 +414,10 @@
+               FALSE
+               );
+     break;
++  
++  default:
++    ASSERT (FALSE);
++    break;
+   }
+@@ -446,19 +450,19 @@
+   //
+   if (Status == EFI_SUCCESS) {
+   } else if (Status == EFI_OUT_OF_RESOURCES) {
+-    PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_OUT_RESOURCE), HiiHandle, L"hexedit");
++    PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_OUT_RESOURCE), gHexEditHiiHandle, L"hexedit");
+   } else {
+     if (Buffer != NULL) {
+       if (StrCmp (Buffer, L"") != 0) {
+         //
+         // print out the status string
+         //
+-        PrintToken (STRING_TOKEN (STR_HEXEDIT_ONE_VAR), HiiHandle, Buffer);
++        PrintToken (STRING_TOKEN (STR_HEXEDIT_ONE_VAR), gHexEditHiiHandle, Buffer);
+       } else {
+-        PrintToken (STRING_TOKEN (STR_HEXEDIT_UNKNOWN_EDITOR), HiiHandle);
++        PrintToken (STRING_TOKEN (STR_HEXEDIT_UNKNOWN_EDITOR), gHexEditHiiHandle);
+       }
+     } else {
+-      PrintToken (STRING_TOKEN (STR_HEXEDIT_UNKNOWN_EDITOR), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_HEXEDIT_UNKNOWN_EDITOR), gHexEditHiiHandle);
+     }
+   }
+diff --ignore-file-name-case -Naur ShellR33/IfConfig/IfConfig.c GccShellR33/IfConfig/IfConfig.c
+--- ShellR33/IfConfig/IfConfig.c       2009-08-13 22:57:02.000000000 -0700
++++ GccShellR33/IfConfig/IfConfig.c    2009-11-05 13:49:56.000000000 -0800
+@@ -26,7 +26,7 @@
+ #define NET_IFTYPE_ETHERNET    1
+ #define NIC_ITEM_CONFIG_SIZE   sizeof (NIC_IP4_CONFIG_INFO) + sizeof (EFI_IP4_ROUTE_TABLE) * MAX_IP4_CONFIG_IN_VARIABLE
+-EFI_HII_HANDLE  HiiHandle;
++static EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID  EfiIfConfigGuid = EFI_IFCONFIG_GUID;
+@@ -450,7 +450,7 @@
+   Status = BS->LocateProtocol (
+                 &gEfiHiiConfigRoutingProtocolGuid,
+                 NULL,
+-                &mHiiConfigRouting
++                (VOID **)&mHiiConfigRouting
+                 );
+   if (EFI_ERROR (Status)) {
+     return EFI_NOT_FOUND;
+@@ -1602,7 +1602,7 @@
+     if ((Name != NULL) && (StrCmp (Name, Info->Name) != 0)) {
+       continue;
+     }
+-
++    
+ #if (EFI_SPECIFICATION_VERSION >= 0x0002000A)
+     if (Info->NicIp4Config == NULL) { 
+       Status = IfconfigSetNicAddrByHii (Info, NULL);
+@@ -1717,6 +1717,7 @@
+ #if (EFI_SPECIFICATION_VERSION >= 0x0002000A)
+   if (EFI_ERROR (Status)) {
+     Status = IfconfigGetAllNicInfoByHii (ImageHandle);
++
+     if (EFI_ERROR (Status)) {
+       if (mIp4ConfigExist) {
+         PrintToken (STRING_TOKEN (STR_IFCONFIG_GET_NIC_FAIL), HiiHandle, Status);
+@@ -1726,7 +1727,7 @@
+       return EFI_NOT_FOUND;
+     }
+-  }
++  } 
+ #else 
+   if (EFI_ERROR (Status)) {
+     if (mIp4ConfigExist) {
+diff --ignore-file-name-case -Naur ShellR33/IfConfig/IfConfig.inf GccShellR33/IfConfig/IfConfig.inf
+--- ShellR33/IfConfig/IfConfig.inf     2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/IfConfig/IfConfig.inf  2009-09-22 15:37:05.000000000 -0700
+@@ -25,7 +25,7 @@
+ COMPONENT_TYPE       = APPLICATION
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   IfConfigStrings.uni
+   IfConfig.c
+   IfConfig.h
+@@ -33,25 +33,25 @@
+   ShellNetHelper.h
+   
+ [includes.common]
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(EDK_SOURCE)\Foundation\Library\Dxe\Include
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(EDK_SOURCE)/Foundation/Library/Dxe/Include
++  $(DEST_DIR)/
+ [libraries.common]
+   EfiShellLib
+   EdkProtocolLib
+   EfiProtocolLib
+   EdkGuidLib
+-  EfiDriverLib
++#  EfiDriverLib
+ [nmake.common]
+   C_PROJ_FLAGS = $(C_PROJ_FLAGS)
+diff --ignore-file-name-case -Naur ShellR33/inc/shellenv.h GccShellR33/inc/shellenv.h
+--- ShellR33/inc/shellenv.h    2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/inc/shellenv.h 2009-09-22 15:37:05.000000000 -0700
+@@ -122,15 +122,6 @@
+   IN SHELLCMD_GET_LINE_HELP       GetLineHelp
+   );
+-//
+-// Add to shell environment protocol information & protocol information dump handlers
+-//
+-typedef
+-VOID
+-(EFIAPI *SHELLENV_DUMP_PROTOCOL_INFO) (
+-  IN EFI_HANDLE                   Handle,
+-  IN VOID                         *Interface
+-  );
+ typedef
+ VOID
+diff --ignore-file-name-case -Naur ShellR33/inc/shelltypes.h GccShellR33/inc/shelltypes.h
+--- ShellR33/inc/shelltypes.h  2006-02-09 00:05:29.000000000 -0800
++++ GccShellR33/inc/shelltypes.h       2009-10-14 16:36:30.000000000 -0700
+@@ -36,7 +36,7 @@
+ #endif
+ #include "Tiano.h"
+-#include "linkedlist.h"
++#include "LinkedList.h"
+ #include EFI_PROTOCOL_DEFINITION (FileInfo)
+ #include EFI_PROTOCOL_DEFINITION (SimpleFileSystem)
+@@ -148,12 +148,6 @@
+   EFI_FILE_INFO             *Info;
+ } SHELL_FILE_ARG;
+-typedef
+-VOID
+-(EFIAPI *SHELLENV_DUMP_PROTOCOL_INFO) (
+-  IN EFI_HANDLE                   Handle,
+-  IN VOID                         *Interface
+-  );
+ typedef
+ EFI_STATUS
+diff --ignore-file-name-case -Naur ShellR33/IpConfig/IpConfig.c GccShellR33/IpConfig/IpConfig.c
+--- ShellR33/IpConfig/IpConfig.c       2006-08-07 02:14:38.000000000 -0700
++++ GccShellR33/IpConfig/IpConfig.c    2009-11-05 13:49:56.000000000 -0800
+@@ -39,7 +39,7 @@
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++static EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiIpConfigGuid = EFI_IPCONFIG_GUID;
+ SHELL_VAR_CHECK_ITEM  IpconfigCheckList[] = {
+   {
+diff --ignore-file-name-case -Naur ShellR33/IpConfig/IpConfig.h GccShellR33/IpConfig/IpConfig.h
+--- ShellR33/IpConfig/IpConfig.h       2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/IpConfig/IpConfig.h    2009-11-05 13:49:56.000000000 -0800
+@@ -29,4 +29,4 @@
+     0x8252915c, 0xf1e9, 0x435c, 0x81, 0x91, 0xad, 0x2f, 0x82, 0x62, 0x23, 0x73 \
+   }
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/IpConfig/IpConfig.inf GccShellR33/IpConfig/IpConfig.inf
+--- ShellR33/IpConfig/IpConfig.inf     2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/IpConfig/IpConfig.inf  2009-09-22 15:37:05.000000000 -0700
+@@ -25,24 +25,24 @@
+ COMPONENT_TYPE       = APPLICATION
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   IpConfigStrings.uni
+   IpConfig.c
+   IpConfig.h 
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/Library/Arm/EfiLibPlat.h GccShellR33/Library/Arm/EfiLibPlat.h
+--- ShellR33/Library/Arm/EfiLibPlat.h  1969-12-31 16:00:00.000000000 -0800
++++ GccShellR33/Library/Arm/EfiLibPlat.h       2009-11-05 13:49:56.000000000 -0800
+@@ -0,0 +1,37 @@
++/*++
++
++Copyright (c) 2005, Intel Corporation                                                         
++All rights reserved. This program and the accompanying materials                          
++are licensed and made available under the terms and conditions of the BSD License         
++which accompanies this distribution. The full text of the license may be found at         
++http://opensource.org/licenses/bsd-license.php                                            
++                                                                                          
++THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     
++WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             
++
++Module Name:
++
++    efilibplat.h
++
++Abstract:
++
++    EFI to compile bindings
++
++
++
++
++Revision History
++
++--*/
++#ifndef _EFI_LIB_PLAT_H_
++#define _EFI_LIB_PLAT_H_
++
++VOID
++InitializeLibPlatform (
++  IN EFI_HANDLE           ImageHandle,
++  IN EFI_SYSTEM_TABLE     *SystemTable
++  );
++
++#define MIN_ALIGNMENT_SIZE  4
++
++#endif
+diff --ignore-file-name-case -Naur ShellR33/Library/ConsistMapping.c GccShellR33/Library/ConsistMapping.c
+--- ShellR33/Library/ConsistMapping.c  2008-11-24 21:49:58.000000000 -0800
++++ GccShellR33/Library/ConsistMapping.c       2009-09-22 19:19:20.000000000 -0700
+@@ -21,7 +21,7 @@
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ MTD_NAME  mMTDName[] = {
+   {
+diff --ignore-file-name-case -Naur ShellR33/Library/ConsistMapping.h GccShellR33/Library/ConsistMapping.h
+--- ShellR33/Library/ConsistMapping.h  2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/Library/ConsistMapping.h       2009-11-05 13:49:56.000000000 -0800
+@@ -79,4 +79,4 @@
+   IN  VOID *Buffer2
+   );
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/Library/CRC.c GccShellR33/Library/CRC.c
+--- ShellR33/Library/CRC.c     2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/Library/CRC.c  2009-09-22 19:19:20.000000000 -0700
+@@ -21,7 +21,7 @@
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ UINT32  CRCTable[256] = {
+   0x00000000,
+diff --ignore-file-name-case -Naur ShellR33/Library/CRC.h GccShellR33/Library/CRC.h
+--- ShellR33/Library/CRC.h     2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/Library/CRC.h  2009-11-05 13:49:56.000000000 -0800
+@@ -53,4 +53,4 @@
+   UINTN Size
+   );
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/Library/Data.c GccShellR33/Library/Data.c
+--- ShellR33/Library/Data.c    2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/Library/Data.c 2009-09-22 19:19:20.000000000 -0700
+@@ -21,7 +21,7 @@
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ //
+ // ShellLibInitialized - TRUE once InitializeShellLib() is called for the first time
+diff --ignore-file-name-case -Naur ShellR33/Library/DPath.c GccShellR33/Library/DPath.c
+--- ShellR33/Library/DPath.c   2008-11-24 21:49:58.000000000 -0800
++++ GccShellR33/Library/DPath.c        2009-09-22 19:19:20.000000000 -0700
+@@ -20,7 +20,7 @@
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ EFI_GUID mEfiDevicePathMessagingUartFlowControlGuid = DEVICE_PATH_MESSAGING_UART_FLOW_CONTROL;
+@@ -1468,7 +1468,7 @@
+   
+   Status = LibLocateProtocol (
+              &gEfiDevicePathToTextProtocolGuid,
+-             &DevPathToText
++             (VOID **)&DevPathToText
+              );
+   if (!EFI_ERROR (Status)) {
+     ToText = DevPathToText->ConvertDevicePathToText (
+diff --ignore-file-name-case -Naur ShellR33/Library/DPath.h GccShellR33/Library/DPath.h
+--- ShellR33/Library/DPath.h   2008-10-06 00:03:04.000000000 -0700
++++ GccShellR33/Library/DPath.h        2009-09-22 15:37:05.000000000 -0700
+@@ -24,7 +24,7 @@
+ #ifndef _D_PATH_H
+ #define _D_PATH_H
+-#define NextStrA(a) ((UINT8 *) (((UINT8 *) (a)) + strlena (a) + 1))
++#define NextStrA(a) ((CHAR8 *) (((UINT8 *) (a)) + strlena (a) + 1))
+ #include EFI_GUID_DEFINITION (PcAnsi)
+diff --ignore-file-name-case -Naur ShellR33/Library/EfiShellLib.h GccShellR33/Library/EfiShellLib.h
+--- ShellR33/Library/EfiShellLib.h     2009-05-27 01:55:16.000000000 -0700
++++ GccShellR33/Library/EfiShellLib.h  2009-09-22 16:16:30.000000000 -0700
+@@ -25,7 +25,7 @@
+ #define _EFI_SHELL_LIB_INCLUDE_
+ #include "Tiano.h"
+-#include "ShellEnv.h"
++#include "shellenv.h"
+ #include "pci22.h"
+ #include EFI_ARCH_PROTOCOL_DEFINITION (Bds)
+@@ -51,7 +51,7 @@
+ #include EFI_GUID_DEFINITION (PrimaryConsoleOutDevice)
+ #include EFI_GUID_DEFINITION (PrimaryStandardErrorDevice)
+ #include EFI_GUID_DEFINITION (SalSystemTable)
+-#include EFI_GUID_DEFINITION (Smbios)
++#include EFI_GUID_DEFINITION (SmBios)
+ #include EFI_GUID_DEFINITION (StandardErrorDevice)
+ #include EFI_GUID_DEFINITION (FrameworkDevicePath)
+ #include EFI_PROTOCOL_DEFINITION (AbsolutePointer)
+@@ -67,7 +67,7 @@
+ #include EFI_PROTOCOL_DEFINITION (DebugPort)
+ #include EFI_PROTOCOL_DEFINITION (DebugSupport)
+ #include EFI_PROTOCOL_DEFINITION (Decompress)
+-#include EFI_PROTOCOL_DEFINITION (DeviceIO)
++#include EFI_PROTOCOL_DEFINITION (DeviceIo)
+ #include EFI_PROTOCOL_DEFINITION (DevicePath)
+ #include EFI_PROTOCOL_DEFINITION (DevicePathFromText)
+ #include EFI_PROTOCOL_DEFINITION (DevicePathToText)
+@@ -111,7 +111,7 @@
+ #include EFI_PROTOCOL_DEFINITION (PciRootBridgeIo)
+ #include EFI_PROTOCOL_DEFINITION (PlatformDriverOverride)
+ #include EFI_PROTOCOL_DEFINITION (PxeBaseCode)
+-#include EFI_PROTOCOL_DEFINITION (PxeBaseCodeCallback)
++#include EFI_PROTOCOL_DEFINITION (PxeBaseCodeCallBack)
+ #include EFI_PROTOCOL_DEFINITION (ScsiIo)
+ #include EFI_PROTOCOL_DEFINITION (ScsiPassThru)
+ #include EFI_PROTOCOL_DEFINITION (SectionExtraction)
+@@ -151,8 +151,8 @@
+ #include EFI_PROTOCOL_DEFINITION (DriverSupportedEfiVersion)
+ #include EFI_PROTOCOL_DEFINITION (PlatformToDriverConfiguration)
+-#include "efilibplat.h"
+-#include "efipart.h"
++#include "EfiLibPlat.h"
++#include "EfiPart.h"
+ #include "ShellDebug.h"
+ #include "CRC.h"
+ #include "DPath.h"
+diff --ignore-file-name-case -Naur ShellR33/Library/EfiShellLib.inf GccShellR33/Library/EfiShellLib.inf
+--- ShellR33/Library/EfiShellLib.inf   2008-08-13 23:02:46.000000000 -0700
++++ GccShellR33/Library/EfiShellLib.inf        2009-11-07 12:33:52.000000000 -0800
+@@ -45,34 +45,42 @@
+   HiiSupport.c
+ [sources.ia32]
+-  ia32\math.c
+-  ia32\initplat.c
++  IA32/math.c
++  IA32/initplat.c
++  IA32/DivU64x32Remainder.S | GCC
++  IA32/LShiftU64.S          | GCC
++  IA32/RShiftU64.S          | GCC
++  IA32/MultU64x32.S         | GCC
+ [sources.ipf]
+-  ipf\math.c
+-  ipf\initplat.c
+-  ipf\palproc.s
+-  ipf\salpal.c
++  ipf/math.c
++  ipf/initplat.c
++  ipf/palproc.s
++  ipf/salpal.c
+ [sources.EBC]
+-  EBC\math.c
+-  EBC\initplat.c
++  EBC/math.c
++  EBC/initplat.c
+   
+ [sources.x64]
+-  ipf\math.c
+-  ia32\initplat.c
++  ipf/math.c
++  ia32/initplat.c
++
++[sources.ARM]
++  ipf/math.c
++  ia32/initplat.c
+ [includes.common]
+   .
+-  ..\Inc
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
++  ../Inc
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Core/Dxe
+ [libraries.common]
+   EdkFrameworkProtocolLib
+diff --ignore-file-name-case -Naur ShellR33/Library/Event.c GccShellR33/Library/Event.c
+--- ShellR33/Library/Event.c   2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/Library/Event.c        2009-09-22 19:19:20.000000000 -0700
+@@ -21,7 +21,7 @@
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ EFI_EVENT
+ LibCreateProtocolNotifyEvent (
+diff --ignore-file-name-case -Naur ShellR33/Library/Event.h GccShellR33/Library/Event.h
+--- ShellR33/Library/Event.h   2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/Library/Event.h        2009-11-05 13:49:56.000000000 -0800
+@@ -50,4 +50,4 @@
+   OUT EFI_INPUT_KEY                 *Key
+   );
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/Library/FileIO.c GccShellR33/Library/FileIO.c
+--- ShellR33/Library/FileIO.c  2008-08-13 23:02:46.000000000 -0700
++++ GccShellR33/Library/FileIO.c       2009-09-22 19:19:20.000000000 -0700
+@@ -21,7 +21,7 @@
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ typedef struct _PATH_COMPONENTS {
+   CHAR16                  *Name;
+diff --ignore-file-name-case -Naur ShellR33/Library/FileIO.h GccShellR33/Library/FileIO.h
+--- ShellR33/Library/FileIO.h  2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/Library/FileIO.h       2009-11-05 13:49:56.000000000 -0800
+@@ -208,4 +208,4 @@
+   IN SIMPLE_READ_FILE               SimpleReadHandle
+   );
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/Library/Handle.c GccShellR33/Library/Handle.c
+--- ShellR33/Library/Handle.c  2008-08-13 23:02:46.000000000 -0700
++++ GccShellR33/Library/Handle.c       2009-09-22 19:19:20.000000000 -0700
+@@ -21,7 +21,7 @@
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ EFI_STATUS
+ LibLocateHandle (
+diff --ignore-file-name-case -Naur ShellR33/Library/HiiSupport.c GccShellR33/Library/HiiSupport.c
+--- ShellR33/Library/HiiSupport.c      2008-08-13 23:02:46.000000000 -0700
++++ GccShellR33/Library/HiiSupport.c   2009-09-22 19:19:20.000000000 -0700
+@@ -21,7 +21,7 @@
\r
+ --*/\r
\r
+-#include "EfiShelllib.h"\r
++#include "EfiShellLib.h"\r
\r
+ #if (EFI_SPECIFICATION_VERSION >= 0x0002000A)\r
\r
+@@ -56,11 +56,11 @@
+     return EFI_SUCCESS;\r
+   }\r
\r
+-  Status = LibLocateProtocol (&gEfiHiiDatabaseProtocolGuid, &gLibHiiDatabase);\r
++  Status = LibLocateProtocol (&gEfiHiiDatabaseProtocolGuid, (VOID **)&gLibHiiDatabase);\r
+   if (EFI_ERROR (Status)) {\r
+     return Status;\r
+   }\r
+-  Status = LibLocateProtocol (&gEfiHiiStringProtocolGuid, &gLibHiiString);\r
++  Status = LibLocateProtocol (&gEfiHiiStringProtocolGuid, (VOID **)&gLibHiiString);\r
+   if (EFI_ERROR (Status)) {\r
+     return Status;\r
+   }  \r
+diff --ignore-file-name-case -Naur ShellR33/Library/IA32/efilibplat.h GccShellR33/Library/IA32/efilibplat.h
+--- ShellR33/Library/IA32/efilibplat.h 2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/Library/IA32/efilibplat.h      1969-12-31 16:00:00.000000000 -0800
+@@ -1,37 +0,0 @@
+-/*++
+-
+-Copyright (c) 2005, Intel Corporation                                                         
+-All rights reserved. This program and the accompanying materials                          
+-are licensed and made available under the terms and conditions of the BSD License         
+-which accompanies this distribution. The full text of the license may be found at         
+-http://opensource.org/licenses/bsd-license.php                                            
+-                                                                                          
+-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     
+-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             
+-
+-Module Name:
+-
+-    efilibplat.h
+-
+-Abstract:
+-
+-    EFI to compile bindings
+-
+-
+-
+-
+-Revision History
+-
+---*/
+-#ifndef _EFI_LIB_PLAT_H_
+-#define _EFI_LIB_PLAT_H_
+-
+-VOID
+-InitializeLibPlatform (
+-  IN EFI_HANDLE           ImageHandle,
+-  IN EFI_SYSTEM_TABLE     *SystemTable
+-  );
+-
+-#define MIN_ALIGNMENT_SIZE  4
+-
+-#endif
+\ No newline at end of file
+diff --ignore-file-name-case -Naur ShellR33/Library/IA32/initplat.c GccShellR33/Library/IA32/initplat.c
+--- ShellR33/Library/IA32/initplat.c   2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/Library/IA32/initplat.c        1969-12-31 16:00:00.000000000 -0800
+@@ -1,35 +0,0 @@
+-/*++
+-
+-Copyright (c) 2005, Intel Corporation                                                         
+-All rights reserved. This program and the accompanying materials                          
+-are licensed and made available under the terms and conditions of the BSD License         
+-which accompanies this distribution. The full text of the license may be found at         
+-http://opensource.org/licenses/bsd-license.php                                            
+-                                                                                          
+-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     
+-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             
+-
+-Module Name:
+-
+-    initplat.c
+-
+-Abstract:
+-
+-
+-
+-
+-Revision History
+-
+---*/
+-
+-#include "EfiShellLib.h"
+-
+-VOID
+-InitializeLibPlatform (
+-  IN EFI_HANDLE           ImageHandle,
+-  IN EFI_SYSTEM_TABLE     *SystemTable
+-  )
+-
+-{
+-  return;
+-}
+diff --ignore-file-name-case -Naur ShellR33/Library/IA32/math.c GccShellR33/Library/IA32/math.c
+--- ShellR33/Library/IA32/math.c       2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/Library/IA32/math.c    1969-12-31 16:00:00.000000000 -0800
+@@ -1,217 +0,0 @@
+-/*++
+-
+-Copyright (c) 2005, Intel Corporation                                                         
+-All rights reserved. This program and the accompanying materials                          
+-are licensed and made available under the terms and conditions of the BSD License         
+-which accompanies this distribution. The full text of the license may be found at         
+-http://opensource.org/licenses/bsd-license.php                                            
+-                                                                                          
+-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     
+-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             
+-
+-Module Name:
+-
+-    math.c
+-
+-Abstract:
+-
+-
+-
+-
+-Revision History
+-
+---*/
+-
+-#include "EfiShellLib.h"
+-
+-//
+-//
+-//
+-UINT64
+-LShiftU64 (
+-  IN UINT64   Operand,
+-  IN UINTN    Count
+-  )
+-/*++
+-Routine Description:
+-
+-  Left shift 64bit by 32bit and get a 64bit result
+-
+-Arguments:
+-
+-  Operand - Operand
+-  Count   - Shift count
+-
+-Returns:
+-
+---*/
+-{
+-  UINT64  Result;
+-  Result = 0;
+-
+-  _asm
+-  {
+-    mov ecx, Count
+-    cmp ecx, 64
+-    jge exit
+-
+-    mov eax, dword ptr Operand[0]
+-    mov edx, dword ptr Operand[4]
+-
+-    shld edx, eax, cl
+-    shl eax, cl
+-
+-    cmp ecx, 32
+-    jc short ls10
+-
+-    mov edx, eax
+-    xor eax, eax
+-
+-    ls10 :
+-    mov dword ptr Result[0], eax
+-    mov dword ptr Result[4], edx
+-    exit :
+-  }
+-
+-  return Result;
+-}
+-
+-UINT64
+-RShiftU64 (
+-  IN UINT64   Operand,
+-  IN UINTN    Count
+-  )
+-/*++
+-Routine Description:
+-
+-  Right shift 64bit by 32bit and get a 64bit result
+-  
+-Arguments:
+-
+-  Operand - Operand
+-  Count   - Shift Count
+-
+-Returns:
+-
+---*/
+-{
+-  UINT64  Result;
+-  Result = 0;
+-
+-  _asm
+-  {
+-    mov ecx, Count
+-    cmp ecx, 64
+-    jge exit
+-
+-    mov eax, dword ptr Operand[0]
+-    mov edx, dword ptr Operand[4]
+-
+-    shrd eax, edx, cl
+-    shr edx, cl
+-
+-    cmp ecx, 32
+-    jc short rs10
+-
+-    mov eax, edx
+-    xor edx, edx
+-
+-    rs10 :
+-    mov dword ptr Result[0], eax
+-    mov dword ptr Result[4], edx
+-    exit :
+-  }
+-
+-  return Result;
+-}
+-
+-UINT64
+-MultU64x32 (
+-  IN UINT64   Multiplicand,
+-  IN UINTN    Multiplier
+-  )
+-/*++
+-Routine Description:
+-
+-  Multiple 64bit by 32bit and get a 64bit result
+-  
+-Arguments:
+-
+-  Multiplicand - Multiplicand
+-  Multiplier   - Multiplier
+-
+-Returns:
+-
+---*/
+-{
+-  UINT64  Result;
+-
+-  _asm
+-  {
+-    mov eax, dword ptr Multiplicand[0]
+-    mul Multiplier
+-    mov dword ptr Result[0], eax
+-    mov dword ptr Result[4], edx
+-    mov eax, dword ptr Multiplicand[4]
+-    mul Multiplier
+-    add dword ptr Result[4], eax
+-  }
+-
+-  return Result;
+-}
+-
+-UINT64
+-DivU64x32 (
+-  IN UINT64   Dividend,
+-  IN UINTN    Divisor,
+-  OUT UINTN   *Remainder OPTIONAL
+-  )
+-/*++
+-Routine Description:
+-
+-  divide 64bit by 32bit and get a 64bit result
+-  N.B. only works for 31bit divisors!!
+-
+-Arguments:
+-
+-  Dividend  - The dividend
+-  Divisor   - The divisor
+-  Remainder - The remainder
+-
+-Return:
+-
+---*/
+-{
+-  UINT32  Rem;
+-  UINT32  bit;
+-
+-  ASSERT (Divisor != 0);
+-  ASSERT ((Divisor >> 31) == 0);
+-
+-  //
+-  // For each bit in the dividend
+-  //
+-  Rem = 0;
+-  for (bit = 0; bit < 64; bit++) {
+-    _asm
+-    {
+-      shl dword ptr Dividend[0], 1    /*  shift rem:dividend left one */
+-      rcl dword ptr Dividend[4], 1
+-      rcl dword ptr Rem, 1
+-
+-      mov eax, Rem
+-      cmp eax, Divisor                /*  Is Rem >= Divisor? */
+-      cmc                             /*  No - do nothing */
+-      sbb eax, eax                    /*  Else, */
+-      sub dword ptr Dividend[0], eax  /*    set low bit in dividen */
+-      and eax, Divisor                /*  and */
+-      sub Rem, eax                    /*    subtract divisor */
+-    }
+-  }
+-
+-  if (Remainder) {
+-    *Remainder = Rem;
+-  }
+-
+-  return Dividend;
+-}
+diff --ignore-file-name-case -Naur ShellR33/Library/Ia32/DivU64x32Remainder.S GccShellR33/Library/Ia32/DivU64x32Remainder.S
+--- ShellR33/Library/Ia32/DivU64x32Remainder.S 1969-12-31 16:00:00.000000000 -0800
++++ GccShellR33/Library/Ia32/DivU64x32Remainder.S      2009-10-13 20:18:23.000000000 -0700
+@@ -0,0 +1,58 @@
++#------------------------------------------------------------------------------\r
++#\r
++# Copyright (c) 2006, Intel Corporation\r
++# All rights reserved. This program and the accompanying materials\r
++# are licensed and made available under the terms and conditions of the BSD License\r
++# which accompanies this distribution.  The full text of the license may be found at\r
++# http://opensource.org/licenses/bsd-license.php\r
++#\r
++# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
++# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
++#\r
++# Module Name:\r
++#\r
++#   DivError.asm\r
++#\r
++# Abstract:\r
++#\r
++#   Set error flag for all division functions\r
++#\r
++#------------------------------------------------------------------------------\r
++\r
++  ///\r
++  /// Private worker functions for ASM_PFX()\r
++  ///\r
++  #define _CONCATENATE(a, b)  __CONCATENATE(a, b)\r
++  #define __CONCATENATE(a, b) a ## b\r
++\r
++  ///\r
++  /// The __USER_LABEL_PREFIX__ macro predefined by GNUC represents the prefix\r
++  /// on symbols in assembly language.\r
++  ///\r
++  #define ASM_PFX(name) _CONCATENATE (__USER_LABEL_PREFIX__, name)\r
++\r
++.globl ASM_PFX(InternalMathDivRemU64x32)\r
++\r
++#------------------------------------------------------------------------------\r
++# UINT64\r
++# EFIAPI\r
++# InternalMathDivRemU64x32 (\r
++#   IN      UINT64                    Dividend,\r
++#   IN      UINT32                    Divisor,\r
++#   OUT     UINT32                    *Remainder\r
++#   );\r
++#------------------------------------------------------------------------------\r
++ASM_PFX(InternalMathDivRemU64x32):\r
++    movl    12(%esp), %ecx\r
++    movl    8(%esp), %eax\r
++    xorl    %edx, %edx\r
++    divl    %ecx\r
++    push    %eax\r
++    movl    8(%esp), %eax\r
++    divl    %ecx\r
++    movl    20(%esp), %ecx\r
++    jecxz   L1\r
++    movl    %edx, (%ecx)\r
++L1:\r
++    pop     %edx\r
++    ret\r
+diff --ignore-file-name-case -Naur ShellR33/Library/Ia32/EfiLibPlat.h GccShellR33/Library/Ia32/EfiLibPlat.h
+--- ShellR33/Library/Ia32/EfiLibPlat.h 1969-12-31 16:00:00.000000000 -0800
++++ GccShellR33/Library/Ia32/EfiLibPlat.h      2009-11-10 11:17:48.000000000 -0800
+@@ -0,0 +1,37 @@
++/*++
++
++Copyright (c) 2005, Intel Corporation                                                         
++All rights reserved. This program and the accompanying materials                          
++are licensed and made available under the terms and conditions of the BSD License         
++which accompanies this distribution. The full text of the license may be found at         
++http://opensource.org/licenses/bsd-license.php                                            
++                                                                                          
++THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     
++WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             
++
++Module Name:
++
++    efilibplat.h
++
++Abstract:
++
++    EFI to compile bindings
++
++
++
++
++Revision History
++
++--*/
++#ifndef _EFI_LIB_PLAT_H_
++#define _EFI_LIB_PLAT_H_
++
++VOID
++InitializeLibPlatform (
++  IN EFI_HANDLE           ImageHandle,
++  IN EFI_SYSTEM_TABLE     *SystemTable
++  );
++
++#define MIN_ALIGNMENT_SIZE  4
++
++#endif
+\ No newline at end of file
+diff --ignore-file-name-case -Naur ShellR33/Library/Ia32/initplat.c GccShellR33/Library/Ia32/initplat.c
+--- ShellR33/Library/Ia32/initplat.c   1969-12-31 16:00:00.000000000 -0800
++++ GccShellR33/Library/Ia32/initplat.c        2009-09-22 15:37:05.000000000 -0700
+@@ -0,0 +1,35 @@
++/*++
++
++Copyright (c) 2005, Intel Corporation                                                         
++All rights reserved. This program and the accompanying materials                          
++are licensed and made available under the terms and conditions of the BSD License         
++which accompanies this distribution. The full text of the license may be found at         
++http://opensource.org/licenses/bsd-license.php                                            
++                                                                                          
++THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     
++WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             
++
++Module Name:
++
++    initplat.c
++
++Abstract:
++
++
++
++
++Revision History
++
++--*/
++
++#include "EfiShellLib.h"
++
++VOID
++InitializeLibPlatform (
++  IN EFI_HANDLE           ImageHandle,
++  IN EFI_SYSTEM_TABLE     *SystemTable
++  )
++
++{
++  return;
++}
+diff --ignore-file-name-case -Naur ShellR33/Library/Ia32/LShiftU64.S GccShellR33/Library/Ia32/LShiftU64.S
+--- ShellR33/Library/Ia32/LShiftU64.S  1969-12-31 16:00:00.000000000 -0800
++++ GccShellR33/Library/Ia32/LShiftU64.S       2009-09-22 15:37:05.000000000 -0700
+@@ -0,0 +1,53 @@
++#------------------------------------------------------------------------------
++#
++# Copyright (c) 2006, Intel Corporation
++# All rights reserved. This program and the accompanying materials
++# are licensed and made available under the terms and conditions of the BSD License
++# which accompanies this distribution.  The full text of the license may be found at
++# http://opensource.org/licenses/bsd-license.php
++#
++# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
++# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
++#
++# Module Name:
++#
++#   LShiftU64.asm
++#
++# Abstract:
++#
++#   64-bit left shift function for IA-32
++#
++#------------------------------------------------------------------------------
++
++  ///
++  /// Private worker functions for ASM_PFX()
++  ///
++  #define _CONCATENATE(a, b)  __CONCATENATE(a, b)
++  #define __CONCATENATE(a, b) a ## b
++
++  ///
++  /// The __USER_LABEL_PREFIX__ macro predefined by GNUC represents the prefix
++  /// on symbols in assembly language.
++  ///
++  #define ASM_PFX(name) _CONCATENATE (__USER_LABEL_PREFIX__, name)
++
++.globl ASM_PFX(InternalMathLShiftU64)
++
++#------------------------------------------------------------------------------
++# UINT64
++# EFIAPI
++# InternalMathLShiftU64 (
++#   IN      UINT64                    Operand,
++#   IN      UINTN                     Count
++#   );
++#------------------------------------------------------------------------------
++ASM_PFX(InternalMathLShiftU64):
++    movb    12(%esp), %cl
++    xorl    %eax, %eax
++    movl    4(%esp), %edx
++    testb   $32, %cl
++    cmovz   %edx, %eax
++    cmovz   0x8(%esp), %edx
++    shld    %cl, %eax, %edx
++    shl     %cl, %eax
++    ret
+diff --ignore-file-name-case -Naur ShellR33/Library/Ia32/math.c GccShellR33/Library/Ia32/math.c
+--- ShellR33/Library/Ia32/math.c       1969-12-31 16:00:00.000000000 -0800
++++ GccShellR33/Library/Ia32/math.c    2009-10-10 13:58:07.000000000 -0700
+@@ -0,0 +1,267 @@
++/*++
++
++Copyright (c) 2005, Intel Corporation                                                         
++All rights reserved. This program and the accompanying materials                          
++are licensed and made available under the terms and conditions of the BSD License         
++which accompanies this distribution. The full text of the license may be found at         
++http://opensource.org/licenses/bsd-license.php                                            
++                                                                                          
++THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     
++WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             
++
++Module Name:
++
++    math.c
++
++Abstract:
++
++
++
++
++Revision History
++
++--*/
++
++#include "EfiShellLib.h"
++
++#if __GNUC__
++
++UINT64
++InternalMathLShiftU64 (
++  IN UINT64   Operand,
++  IN UINTN    Count
++  );
++  
++UINT64
++InternalMathRShiftU64 (
++  IN UINT64   Operand,
++  IN UINTN    Count
++  );
++
++UINT64
++InternalMathMultU64x32 (
++  IN UINT64   Multiplicand,
++  IN UINTN    Multiplier
++  );
++
++UINT64
++InternalMathDivRemU64x32 (
++  IN UINT64   Dividend,
++  IN UINTN    Divisor,
++  OUT UINTN   *Remainder OPTIONAL
++  );
++
++#endif
++
++//
++//
++//
++UINT64
++LShiftU64 (
++  IN UINT64   Operand,
++  IN UINTN    Count
++  )
++/*++
++Routine Description:
++
++  Left shift 64bit by 32bit and get a 64bit result
++
++Arguments:
++
++  Operand - Operand
++  Count   - Shift count
++
++Returns:
++
++--*/
++{
++#if __GNUC__
++  return InternalMathLShiftU64 (Operand, Count);
++#else
++  UINT64  Result;
++  Result = 0;
++
++  _asm
++  {
++    mov ecx, Count
++    cmp ecx, 64
++    jge exit
++
++    mov eax, dword ptr Operand[0]
++    mov edx, dword ptr Operand[4]
++
++    shld edx, eax, cl
++    shl eax, cl
++
++    cmp ecx, 32
++    jc short ls10
++
++    mov edx, eax
++    xor eax, eax
++
++    ls10 :
++    mov dword ptr Result[0], eax
++    mov dword ptr Result[4], edx
++    exit :
++  }
++
++  return Result;
++#endif
++}
++
++UINT64
++RShiftU64 (
++  IN UINT64   Operand,
++  IN UINTN    Count
++  )
++/*++
++Routine Description:
++
++  Right shift 64bit by 32bit and get a 64bit result
++  
++Arguments:
++
++  Operand - Operand
++  Count   - Shift Count
++
++Returns:
++
++--*/
++{
++#if __GNUC__
++  return InternalMathRShiftU64 (Operand, Count);
++#else
++  UINT64  Result;
++  Result = 0;
++
++  _asm
++  {
++    mov ecx, Count
++    cmp ecx, 64
++    jge exit
++
++    mov eax, dword ptr Operand[0]
++    mov edx, dword ptr Operand[4]
++
++    shrd eax, edx, cl
++    shr edx, cl
++
++    cmp ecx, 32
++    jc short rs10
++
++    mov eax, edx
++    xor edx, edx
++
++    rs10 :
++    mov dword ptr Result[0], eax
++    mov dword ptr Result[4], edx
++    exit :
++  }
++
++  return Result;
++#endif
++}
++
++UINT64
++MultU64x32 (
++  IN UINT64   Multiplicand,
++  IN UINTN    Multiplier
++  )
++/*++
++Routine Description:
++
++  Multiple 64bit by 32bit and get a 64bit result
++  
++Arguments:
++
++  Multiplicand - Multiplicand
++  Multiplier   - Multiplier
++
++Returns:
++
++--*/
++{
++#if __GNUC__
++  return InternalMathMultU64x32 (Multiplicand, Multiplier);
++#else
++  UINT64  Result;
++
++  _asm
++  {
++    mov eax, dword ptr Multiplicand[0]
++    mul Multiplier
++    mov dword ptr Result[0], eax
++    mov dword ptr Result[4], edx
++    mov eax, dword ptr Multiplicand[4]
++    mul Multiplier
++    add dword ptr Result[4], eax
++  }
++
++  return Result;
++#endif
++}
++
++UINT64
++DivU64x32 (
++  IN UINT64   Dividend,
++  IN UINTN    Divisor,
++  OUT UINTN   *Remainder OPTIONAL
++  )
++/*++
++Routine Description:
++
++  divide 64bit by 32bit and get a 64bit result
++  N.B. only works for 31bit divisors!!
++
++Arguments:
++
++  Dividend  - The dividend
++  Divisor   - The divisor
++  Remainder - The remainder
++
++Return:
++
++--*/
++{
++#if __GNUC__
++  ASSERT (Divisor != 0);
++  ASSERT ((Divisor >> 31) == 0);
++
++  return InternalMathDivRemU64x32 (Dividend, Divisor, Remainder);
++      
++#else
++  UINT32  Rem;
++  UINT32  bit;
++
++  ASSERT (Divisor != 0);
++  ASSERT ((Divisor >> 31) == 0);
++
++  //
++  // For each bit in the dividend
++  //
++  Rem = 0;
++  for (bit = 0; bit < 64; bit++) {
++    _asm
++    {
++      shl dword ptr Dividend[0], 1    /*  shift rem:dividend left one */
++      rcl dword ptr Dividend[4], 1
++      rcl dword ptr Rem, 1
++
++      mov eax, Rem
++      cmp eax, Divisor                /*  Is Rem >= Divisor? */
++      cmc                             /*  No - do nothing */
++      sbb eax, eax                    /*  Else, */
++      sub dword ptr Dividend[0], eax  /*    set low bit in dividen */
++      and eax, Divisor                /*  and */
++      sub Rem, eax                    /*    subtract divisor */
++    }
++  }
++
++  if (Remainder) {
++    *Remainder = Rem;
++  }
++
++  return Dividend;
++#endif
++}
++
+diff --ignore-file-name-case -Naur ShellR33/Library/Ia32/MultU64x32.S GccShellR33/Library/Ia32/MultU64x32.S
+--- ShellR33/Library/Ia32/MultU64x32.S 1969-12-31 16:00:00.000000000 -0800
++++ GccShellR33/Library/Ia32/MultU64x32.S      2009-09-22 15:37:05.000000000 -0700
+@@ -0,0 +1,53 @@
++#------------------------------------------------------------------------------
++#
++# Copyright (c) 2006, Intel Corporation
++# All rights reserved. This program and the accompanying materials
++# are licensed and made available under the terms and conditions of the BSD License
++# which accompanies this distribution.  The full text of the license may be found at
++# http://opensource.org/licenses/bsd-license.php
++#
++# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
++# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
++#
++# Module Name:
++#
++#   MultU64x32.asm
++#
++# Abstract:
++#
++#   Calculate the product of a 64-bit integer and a 32-bit integer
++#
++#------------------------------------------------------------------------------
++
++  ///
++  /// Private worker functions for ASM_PFX()
++  ///
++  #define _CONCATENATE(a, b)  __CONCATENATE(a, b)
++  #define __CONCATENATE(a, b) a ## b
++
++  ///
++  /// The __USER_LABEL_PREFIX__ macro predefined by GNUC represents the prefix
++  /// on symbols in assembly language.
++  ///
++  #define ASM_PFX(name) _CONCATENATE (__USER_LABEL_PREFIX__, name)
++
++    .386:
++    .code:
++
++.globl ASM_PFX(InternalMathMultU64x32)
++
++#------------------------------------------------------------------------------
++# UINT64
++# EFIAPI
++# InternalMathMultU64x32 (
++#   IN      UINT64                    Multiplicand,
++#   IN      UINT32                    Multiplier
++#   );
++#------------------------------------------------------------------------------
++ASM_PFX(InternalMathMultU64x32):
++    movl    12(%esp), %ecx
++    movl    %ecx, %eax
++    imull   8(%esp), %ecx
++    mull    0x4(%esp)
++    addl    %ecx, %edx
++    ret
+diff --ignore-file-name-case -Naur ShellR33/Library/Ia32/RShiftU64.S GccShellR33/Library/Ia32/RShiftU64.S
+--- ShellR33/Library/Ia32/RShiftU64.S  1969-12-31 16:00:00.000000000 -0800
++++ GccShellR33/Library/Ia32/RShiftU64.S       2009-09-22 15:37:05.000000000 -0700
+@@ -0,0 +1,56 @@
++#------------------------------------------------------------------------------
++#
++# Copyright (c) 2006, Intel Corporation
++# All rights reserved. This program and the accompanying materials
++# are licensed and made available under the terms and conditions of the BSD License
++# which accompanies this distribution.  The full text of the license may be found at
++# http://opensource.org/licenses/bsd-license.php
++#
++# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
++# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
++#
++# Module Name:
++#
++#   RShiftU64.asm
++#
++# Abstract:
++#
++#   64-bit logical right shift function for IA-32
++#
++#------------------------------------------------------------------------------
++
++  ///
++  /// Private worker functions for ASM_PFX()
++  ///
++  #define _CONCATENATE(a, b)  __CONCATENATE(a, b)
++  #define __CONCATENATE(a, b) a ## b
++
++  ///
++  /// The __USER_LABEL_PREFIX__ macro predefined by GNUC represents the prefix
++  /// on symbols in assembly language.
++  ///
++  #define ASM_PFX(name) _CONCATENATE (__USER_LABEL_PREFIX__, name)
++
++    .686:
++    .code:
++
++.globl ASM_PFX(InternalMathRShiftU64)
++
++#------------------------------------------------------------------------------
++# UINT64
++# EFIAPI
++# InternalMathRShiftU64 (
++#   IN      UINT64                    Operand,
++#   IN      UINTN                     Count
++#   );
++#------------------------------------------------------------------------------
++ASM_PFX(InternalMathRShiftU64):
++    movb    12(%esp), %cl
++    xorl    %edx, %edx
++    movl    8(%esp), %eax
++    testb   $32, %cl
++    cmovz   %eax, %edx
++    cmovz   0x4(%esp), %eax
++    shrdl   %cl, %edx, %eax
++    shr     %cl, %edx
++    ret
+diff --ignore-file-name-case -Naur ShellR33/Library/Init.c GccShellR33/Library/Init.c
+--- ShellR33/Library/Init.c    2009-05-27 01:55:16.000000000 -0700
++++ GccShellR33/Library/Init.c 2009-09-22 19:19:20.000000000 -0700
+@@ -20,7 +20,7 @@
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ extern EFI_UNICODE_COLLATION_PROTOCOL LibStubUnicodeInterface;
+diff --ignore-file-name-case -Naur ShellR33/Library/IO.c GccShellR33/Library/IO.c
+--- ShellR33/Library/IO.c      2008-08-13 23:02:46.000000000 -0700
++++ GccShellR33/Library/IO.c   2009-09-22 19:19:20.000000000 -0700
+@@ -21,7 +21,7 @@
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ #define PRINT_STRING_LEN        1024
+ #define PRINT_ITEM_BUFFER_LEN   100
+@@ -1658,7 +1658,7 @@
+         //
+         // Adjust the current column and row
+         //
+-        ConMoveCursorBackward (LineLength, &Column, &Row);
++        ConMoveCursorBackward (LineLength, &Column, (UINTN *)&Row);
+       }
+       break;
+@@ -1708,7 +1708,7 @@
+         //
+         if (StrPos) {
+           StrPos -= 1;
+-          ConMoveCursorBackward (LineLength, &Column, &Row);
++          ConMoveCursorBackward (LineLength, &Column, (UINTN *)&Row);
+         }
+         break;
+@@ -1718,7 +1718,7 @@
+         //
+         if (StrPos < Len) {
+           StrPos += 1;
+-          ConMoveCursorForward (LineLength, TotalRow, &Column, &Row);
++          ConMoveCursorForward (LineLength, TotalRow, &Column, (UINTN *)&Row);
+         }
+         break;
+@@ -1913,8 +1913,8 @@
+   ST->ConOut->QueryMode (
+                 ST->ConOut,
+                 ST->ConOut->Mode->Mode,
+-                &mPrintMode.MaxColumn,
+-                &mPrintMode.MaxRow
++                (UINTN *)&mPrintMode.MaxColumn,
++                (UINTN *)&mPrintMode.MaxRow
+                 );
+   mPrintMode.Row = StartRow;
+@@ -1928,8 +1928,6 @@
+   return mPrintMode.PageBreak;
+ }
+-STATIC
+-
+ BOOLEAN
+ GetOutputPause (
+   VOID
+diff --ignore-file-name-case -Naur ShellR33/Library/IO.h GccShellR33/Library/IO.h
+--- ShellR33/Library/IO.h      2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/Library/IO.h   2009-11-05 13:49:56.000000000 -0800
+@@ -157,4 +157,4 @@
+   );
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/Library/IPF/libsalpal.h GccShellR33/Library/IPF/libsalpal.h
+--- ShellR33/Library/IPF/libsalpal.h   2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/Library/IPF/libsalpal.h        2009-11-05 13:49:56.000000000 -0800
+@@ -74,4 +74,4 @@
+   IN  UINT64    Arg8
+   );
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/Library/Lock.c GccShellR33/Library/Lock.c
+--- ShellR33/Library/Lock.c    2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/Library/Lock.c 2009-09-22 19:19:20.000000000 -0700
+@@ -21,7 +21,7 @@
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ VOID
+ InitializeLock (
+diff --ignore-file-name-case -Naur ShellR33/Library/Lock.h GccShellR33/Library/Lock.h
+--- ShellR33/Library/Lock.h    2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/Library/Lock.h 2009-11-05 13:49:56.000000000 -0800
+@@ -45,4 +45,4 @@
+   IN FLOCK    *Lock
+   );
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/Library/Mem.c GccShellR33/Library/Mem.c
+--- ShellR33/Library/Mem.c     2006-06-12 23:18:21.000000000 -0700
++++ GccShellR33/Library/Mem.c  2009-09-22 19:19:20.000000000 -0700
+@@ -21,7 +21,7 @@
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ VOID
+ SetMem (
+diff --ignore-file-name-case -Naur ShellR33/Library/Mem.h GccShellR33/Library/Mem.h
+--- ShellR33/Library/Mem.h     2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/Library/Mem.h  2009-11-05 13:49:56.000000000 -0800
+@@ -73,4 +73,4 @@
+   IN UINTN    Size
+   );
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/Library/Misc.c GccShellR33/Library/Misc.c
+--- ShellR33/Library/Misc.c    2009-08-13 22:57:02.000000000 -0700
++++ GccShellR33/Library/Misc.c 2009-09-22 19:19:20.000000000 -0700
+@@ -21,7 +21,7 @@
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ #if (PLATFORM == NT32)
+ #define LOCAL_EFI_WIN_NT_THUNK_PROTOCOL_GUID \
+@@ -51,7 +51,309 @@
+ #define DEFAULT_FORM_BUFFER_SIZE  0xFFFF
+-STATIC EFI_SHELL_ENVIRONMENT  *mShellEnv = NULL;
++struct {
++  EFI_GUID  *Guid;
++  CHAR16    *GuidName;
++}
++KnownGuids[] = {
++  //
++  // Loaded Image
++  //
++  &gEfiLoadedImageProtocolGuid,
++  L"Image",
++  //
++  // Device Path
++  //
++  &gEfiDevicePathProtocolGuid,
++  L"Dpath",
++  &gEfiLoadedImageDevicePathProtocolGuid,
++  L"ImageDPath",
++  &gEfiDevicePathUtilitiesProtocolGuid,
++  L"DpathUtil",
++  &gEfiDevicePathToTextProtocolGuid,
++  L"DpathToText",
++  &gEfiDevicePathFromTextProtocolGuid,
++  L"DpathFromText",
++  &PcAnsiProtocol,
++  L"PcAnsi",
++  &Vt100Protocol,
++  L"Vt100",
++  &Vt100PlusProtocol,
++  L"Vt100+",
++  &VtUtf8Protocol,
++  L"VtUtf8",
++  //
++  // Driver Model
++  //
++  &gEfiDriverBindingProtocolGuid,
++  L"DriverBinding",
++  &gEfiPlatformDriverOverrideProtocolGuid,
++  L"PlatformOverride",
++  &gEfiBusSpecificDriverOverrideProtocolGuid,
++  L"BusSpecificDriverOverride",
++  &gEfiDriverDiagnosticsProtocolGuid,
++  L"Diagnostics",
++  &gEfiDriverDiagnostics2ProtocolGuid,
++  L"Diagnostics2",
++  &gEfiComponentNameProtocolGuid,
++  L"ComponentName",
++  &gEfiComponentName2ProtocolGuid,
++  L"ComponentName2",
++  &gEfiPlatformToDriverConfigurationProtocolGuid,
++  L"PlatformDriverConfig",
++  &gEfiDriverSupportedEfiVersionProtocolGuid,
++  L"DriverEFIVersion",
++  //
++  // Console Support
++  //
++  &gEfiSimpleTextInputExProtocolGuid,
++  L"TxtinEx",
++  &gEfiSimpleTextInProtocolGuid,
++  L"Txtin",
++  &gEfiSimpleTextOutProtocolGuid,
++  L"Txtout",
++  &gEfiSimplePointerProtocolGuid,
++  L"SimplePointer",
++  &gEfiAbsolutePointerProtocolGuid,
++  L"AbsolutePointer",
++  &gEfiSerialIoProtocolGuid,
++  L"SerialIo",
++  &gEfiGraphicsOutputProtocolGuid,
++  L"GraphicsOutput",
++  &gEfiEdidDiscoveredProtocolGuid,
++  L"EdidDiscovered",
++  &gEfiEdidActiveProtocolGuid,
++  L"EdidActive",
++  &gEfiEdidOverrideProtocolGuid,
++  L"EdidOverride",
++  &gEfiConsoleInDeviceGuid,
++  L"ConIn",
++  &gEfiConsoleOutDeviceGuid,
++  L"ConOut",
++  &gEfiStandardErrorDeviceGuid,
++  L"StdErr",
++  //
++  // Media Access
++  //
++  &gEfiLoadFileProtocolGuid,
++  L"Load",
++  &gEfiLoadFile2ProtocolGuid,
++  L"Load2",
++  &gEfiSimpleFileSystemProtocolGuid,
++  L"Fs",
++  &gEfiFileInfoGuid,
++  L"GenFileInfo",
++  &gEfiFileSystemInfoGuid,
++  L"FileSysInfo",
++  &gEfiTapeIoProtocolGuid,
++  L"TapeIo",
++  &gEfiDiskIoProtocolGuid,
++  L"DiskIo",
++  &gEfiBlockIoProtocolGuid,
++  L"BlkIo",
++  &gEfiUnicodeCollationProtocolGuid,
++  L"UnicodeCollation",
++  &gEfiUnicodeCollation2ProtocolGuid,
++  L"UnicodeCollation2",
++  //
++  // PCI Bus Support
++  //
++  &gEfiPciRootBridgeIoProtocolGuid,
++  L"PciRootBridgeIo",
++  &gEfiPciIoProtocolGuid,
++  L"PciIo",
++  //
++  // SCSI Bus Support
++  //
++  &gEfiScsiPassThruProtocolGuid,
++  L"ScsiPassThru",
++  &gEfiScsiIoProtocolGuid,
++  L"ScsiIo",
++  &gEfiExtScsiPassThruProtocolGuid,
++  L"ExtScsiPassThru",
++  //
++  // iSCSI
++  //
++  &gEfiIScsiInitiatorNameProtocolGuid,
++  L"IScsiInitName",
++  //
++  // USB Support
++  //
++  &gEfiUsbIoProtocolGuid,
++  L"UsbIo",
++  &gEfiUsb2HcProtocolGuid,
++  L"UsbHc",
++  &gEfiUsb2HcProtocolGuid,
++  L"UsbHc2", 
++  //
++  // Debugger Support
++  //
++  &gEfiDebugSupportProtocolGuid,
++  L"DebugSupport",
++  &gEfiDebugPortDevicePathGuid,
++  L"DebugPort",
++  //
++  // Decompression Algorithm
++  //
++  &gEfiDecompressProtocolGuid,
++  L"Decompress",
++  //
++  // ACPI
++  //
++  &gEfiAcpiTableProtocolGuid,
++  L"AcpiTable",
++  // EBC
++  //
++  &gEfiEbcProtocolGuid,
++  L"EbcInterp",
++  //
++  // SNP, PXE, BIS
++  //
++  &gEfiSimpleNetworkProtocolGuid,
++  L"Net",
++  &gEfiNetworkInterfaceIdentifierProtocolGuid,
++  L"Nii",
++  &gEfiPxeBaseCodeProtocolGuid,
++  L"Pxebc",
++  &gEfiPxeBaseCodeCallbackProtocolGuid,
++  L"PxebcCallback",
++  &gEfiBisProtocolGuid,
++  L"Bis",
++  //
++  // Managed Network
++  //
++  &gEfiManagedNetworkServiceBindingProtocolGuid,
++  L"MNPSb",
++  &gEfiManagedNetworkProtocolGuid,
++  L"MNP",
++  //
++  // ARP, DHCPv4
++  //
++  &gEfiArpServiceBindingProtocolGuid,
++  L"ARPSb",
++  &gEfiArpProtocolGuid,
++  L"ARP",
++  &gEfiDhcp4ServiceBindingProtocolGuid,
++  L"DHCPv4Sb",
++  &gEfiDhcp4ProtocolGuid,
++  L"DHCPv4",
++  //
++  // TCPv4, IPv4 and Configuration
++  //
++  &gEfiTcp4ServiceBindingProtocolGuid,
++  L"TCPv4Sb",
++  &gEfiTcp4ProtocolGuid,
++  L"TCPv4",
++  &gEfiIp4ServiceBindingProtocolGuid,
++  L"IPv4Sb",
++  &gEfiIp4ProtocolGuid,
++  L"IPv4",
++  &gEfiIp4ConfigProtocolGuid,
++  L"IPv4Config",
++  //
++  // UDPv4, MTFTPv4
++  //
++  &gEfiUdp4ServiceBindingProtocolGuid,
++  L"UDPv4Sb",
++  &gEfiUdp4ProtocolGuid,
++  L"UDPv4",
++  &gEfiMtftp4ServiceBindingProtocolGuid,
++  L"MTFTPv4Sb",
++  &gEfiMtftp4ProtocolGuid,
++  L"MTFTPv4",
++  //
++  // Security
++  //
++  &gEfiAuthenticationInfoProtocolGuid,
++  L"AuthInfo",
++  &gEfiHashServiceBindingProtocolGuid,
++  L"HashSb",
++  &gEfiHashProtocolGuid,
++  L"Hash",
++  //
++  // HII 
++  //
++#if (EFI_SPECIFICATION_VERSION >= 0x0002000A)
++  &gEfiHiiFontProtocolGuid,
++  L"HiiFont",
++  &gEfiHiiStringProtocolGuid,
++  L"HiiString",
++  &gEfiHiiImageProtocolGuid,
++  L"HiiImage",
++  &gEfiHiiDatabaseProtocolGuid,
++  L"HiiDatabase",
++  //
++  // HII Configuration Processing and Browser
++  //
++  &gEfiHiiConfigRoutingProtocolGuid,
++  L"HiiConfRouting",
++  &gEfiHiiConfigAccessProtocolGuid,
++  L"HiiConfAccess",
++  &gEfiFormBrowser2ProtocolGuid,
++  L"FormBrowser2",
++#else
++  &gEfiHiiProtocolGuid,
++  L"Hii",
++  &gEfiFormBrowserProtocolGuid,
++  L"FormBrowser",
++  &gEfiFormCallbackProtocolGuid,
++  L"FormCallback",
++#endif
++  //
++  // Shell Specific
++  //
++  &NullGuid,
++  L"G0",
++  &ShellInterfaceProtocol,
++  L"ShellInt",
++  //
++  // Deprecated
++  //
++  &gEfiDeviceIoProtocolGuid,
++  L"DevIo",
++  &gEfiTcpProtocolGuid,
++  L"Tcp",
++  &gEfiUgaDrawProtocolGuid,
++  L"UgaDraw",
++  &gEfiUgaIoProtocolGuid,
++  L"UgaIo",
++  &gEfiGlobalVariableGuid,
++  L"Efi",
++  &gEfiFileSystemInfoGuid,
++  L"FileSysInfo",
++  &gEfiPartTypeSystemPartGuid,
++  L"ESP",
++  &gEfiPartTypeLegacyMbrGuid,
++  L"GPT MBR",
++  &gEfiDriverConfigurationProtocolGuid,
++  L"Configuration",
++  &gEfiDriverConfiguration2ProtocolGuid,
++  L"Configuration2",
++  &gEfiIsaIoProtocolGuid,
++  L"IsaIo",
++  &gEfiIsaAcpiProtocolGuid,
++  L"IsaAcpi",
++  //
++  // NT32
++  //
++#if (PLATFORM == NT32)
++  &WinNtThunkProtocolGuid,
++  L"WinNtThunk",
++  &WinNtIoProtocolGuid,
++  L"WinNtDriverIo",
++  &WinNtSerialPortGuid,
++  L"SerialPrivate",
++#endif
++  //
++  // Misc
++  //
++  &gEfiVariableStoreProtocolGuid,
++  L"varstore",
++  &UnknownDeviceGuid,
++  L"Unknown Device",
++
++  NULL
++};
+ STATIC CHAR8  Hex[] = {
+   '0',
+@@ -336,23 +638,18 @@
+ --*/
+ {
+-  EFI_STATUS  Status;
+-  CHAR16      *GuidName;
++  UINTN Index;
+   ASSERT (Guid != NULL);
+   ASSERT (Buffer != NULL);
+-  if (mShellEnv == NULL) {
+-    Status = LibLocateProtocol (&ShellEnvProtocol, &mShellEnv);
+-    if (EFI_ERROR (Status)) {
+-      mShellEnv = NULL;
+-    }
+-  }
+-  if (mShellEnv != NULL) {
+-    GuidName = mShellEnv->GetProt (Guid, FALSE);
+-    if (GuidName != NULL) {
+-      SPrint (Buffer, 0, L"%s", GuidName);
+-      return;
++  //
++  // Else, (for now) use additional internal function for mapping guids
++  //
++  for (Index = 0; KnownGuids[Index].Guid; Index++) {
++    if (CompareGuid (Guid, KnownGuids[Index].Guid) == 0) {
++      SPrint (Buffer, 0, KnownGuids[Index].GuidName);
++      return ;
+     }
+   }
+   //
+@@ -1166,7 +1463,7 @@
+       Status = BS->HandleProtocol (
+                     Image->DeviceHandle,
+                     &gEfiFirmwareVolumeProtocolGuid,
+-                    &FV
++                    (VOID **)&FV
+                     );
+       if (!EFI_ERROR (Status)) {
+         Status = FV->ReadSection (
+@@ -1187,7 +1484,7 @@
+         Status = BS->HandleProtocol (
+                       Image->DeviceHandle,
+                       &gEfiFirmwareVolume2ProtocolGuid,
+-                      &FV2
++                      (VOID **)&FV2
+                       );
+         if (!EFI_ERROR (Status)) {
+           Status = FV2->ReadSection (
+diff --ignore-file-name-case -Naur ShellR33/Library/Perf.c GccShellR33/Library/Perf.c
+--- ShellR33/Library/Perf.c    2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/Library/Perf.c 2009-09-22 19:19:20.000000000 -0700
+@@ -19,7 +19,7 @@
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ #include EFI_PROTOCOL_DEFINITION (Performance)
+diff --ignore-file-name-case -Naur ShellR33/Library/RtData.c GccShellR33/Library/RtData.c
+--- ShellR33/Library/RtData.c  2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/Library/RtData.c       2009-09-22 19:19:20.000000000 -0700
+@@ -21,7 +21,7 @@
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ //
+ // RT - pointer to the runtime table
+diff --ignore-file-name-case -Naur ShellR33/Library/ShellDebug.c GccShellR33/Library/ShellDebug.c
+--- ShellR33/Library/ShellDebug.c      2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/Library/ShellDebug.c   2009-09-22 16:16:30.000000000 -0700
+@@ -19,7 +19,7 @@
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ #include EFI_PROTOCOL_DEFINITION (DebugAssert)
+ EFI_DEBUG_ASSERT_PROTOCOL *mDebugAssert = NULL;
+@@ -66,6 +66,7 @@
+   }
+ }
++
+ VOID
+ EfiDebugPrint (
+   IN  UINTN     ErrorLevel,
+diff --ignore-file-name-case -Naur ShellR33/Library/ShellEnvInt.c GccShellR33/Library/ShellEnvInt.c
+--- ShellR33/Library/ShellEnvInt.c     2006-08-07 02:14:38.000000000 -0700
++++ GccShellR33/Library/ShellEnvInt.c  2009-09-22 19:19:20.000000000 -0700
+@@ -21,7 +21,7 @@
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ EFI_STATUS
+ ShellExecute (
+diff --ignore-file-name-case -Naur ShellR33/Library/ShellEnvInt.h GccShellR33/Library/ShellEnvInt.h
+--- ShellR33/Library/ShellEnvInt.h     2006-08-07 02:14:38.000000000 -0700
++++ GccShellR33/Library/ShellEnvInt.h  2009-11-05 13:49:56.000000000 -0800
+@@ -196,4 +196,4 @@
+   VOID
+   );
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/Library/Str.c GccShellR33/Library/Str.c
+--- ShellR33/Library/Str.c     2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/Library/Str.c  2009-09-22 19:19:20.000000000 -0700
+@@ -22,7 +22,7 @@
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ INTN
+ StrCmp (
+@@ -421,7 +421,7 @@
+         return (UINTN) -1;
+       }
+-      u = u << 4 | c - (c >= 'A' ? 'A' - 10 : '0');
++      u = (u << 4) | (c - (c >= 'A' ? 'A' - 10 : '0'));
+     } else {
+       break;
+     }
+@@ -472,7 +472,7 @@
+   c = *(str++);
+   while (c) {
+     if (c >= '0' && c <= '9') {
+-      if (u > m || u == m && c - '0' > (INTN) n) {
++      if ((u > m) || ((u == m) && (c - '0' > (INTN) n))) {
+         return (UINTN) -1;
+       }
+diff --ignore-file-name-case -Naur ShellR33/Library/VarCheck.c GccShellR33/Library/VarCheck.c
+--- ShellR33/Library/VarCheck.c        2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/Library/VarCheck.c     2009-09-22 19:19:20.000000000 -0700
+@@ -21,7 +21,7 @@
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ VOID
+ LibCheckVarFreeVarList (
+diff --ignore-file-name-case -Naur ShellR33/Library/VarCheck.h GccShellR33/Library/VarCheck.h
+--- ShellR33/Library/VarCheck.h        2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/Library/VarCheck.h     2009-09-22 15:37:05.000000000 -0700
+@@ -41,7 +41,7 @@
+   ARG_PARTIALLY_QUOTED  = 0x2,
+   ARG_FIRST_HALF_QUOTED = 0x4,
+   ARG_FIRST_CHAR_IS_ESC = 0x8
+-};
++} SHELL_I_NEED_A_NAME;
+ typedef struct {
+   CHAR16                    *FlagStr;
+diff --ignore-file-name-case -Naur ShellR33/load/load.inf GccShellR33/load/load.inf
+--- ShellR33/load/load.inf     2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/load/load.inf  2009-09-22 15:37:05.000000000 -0700
+@@ -39,23 +39,23 @@
+ COMPONENT_TYPE       = APPLICATION
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   LoadStrings.uni
+   load.c
+     
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/LoadPciRom/LoadPciRom.c GccShellR33/LoadPciRom/LoadPciRom.c
+--- ShellR33/LoadPciRom/LoadPciRom.c   2006-08-07 02:14:38.000000000 -0700
++++ GccShellR33/LoadPciRom/LoadPciRom.c        2009-11-05 13:49:56.000000000 -0800
+@@ -24,7 +24,7 @@
+ #include "EfiShellLib.h"
+ #include "LoadPciRom.h"
+-#include "Pci22.h"
++#include "pci22.h"
+ extern UINT8    STRING_ARRAY_NAME[];
+@@ -56,7 +56,7 @@
+   );
+ EFI_HANDLE      gMyImageHandle;
+-EFI_HII_HANDLE  HiiHandle;
++static EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiLoadPciRomGuid = EFI_LOADPCIROM_GUID;
+ SHELL_VAR_CHECK_ITEM    LPRCheckList[] = {
+   {
+@@ -377,7 +377,7 @@
+         }
+         if (EfiRomHeader->CompressionType == EFI_PCI_EXPANSION_ROM_HEADER_COMPRESSED) {
+-          Status = BS->LocateProtocol (&gEfiDecompressProtocolGuid, NULL, &Decompress);
++          Status = BS->LocateProtocol (&gEfiDecompressProtocolGuid, NULL, (VOID **)&Decompress);
+           if (EFI_ERROR (Status)) {
+             PrintToken (STRING_TOKEN (STR_LOADPCIROM_DECOMP_NOT_FOUND), HiiHandle);
+             SkipImage = TRUE;
+diff --ignore-file-name-case -Naur ShellR33/LoadPciRom/LoadPciRom.inf GccShellR33/LoadPciRom/LoadPciRom.inf
+--- ShellR33/LoadPciRom/LoadPciRom.inf 2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/LoadPciRom/LoadPciRom.inf      2009-09-22 15:37:05.000000000 -0700
+@@ -41,23 +41,23 @@
+ [sources.common]
+   LoadPciRomStrings.uni
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   LoadPciRom.c
+   LoadPciRom.h  
+   
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/ls/ls.c GccShellR33/ls/ls.c
+--- ShellR33/ls/ls.c   2006-08-07 02:14:38.000000000 -0700
++++ GccShellR33/ls/ls.c        2009-09-22 15:37:05.000000000 -0700
+@@ -917,7 +917,7 @@
+   if ((IsMatch && mIgnoreAttribute) ||
+       (IsMatch && !mAttributes && !(Info->Attribute & EFI_FILE_HIDDEN) && !(Info->Attribute & EFI_FILE_SYSTEM)) ||
+-      IsMatch &&
++      (IsMatch &&
+       mAttributes &&
+       (
+         (mAttribA ? (Info->Attribute & EFI_FILE_ARCHIVE ? TRUE : FALSE) : TRUE) &&
+@@ -925,7 +925,7 @@
+       (mAttribR ? (Info->Attribute & EFI_FILE_READ_ONLY ? TRUE : FALSE) : TRUE) &&
+       (mAttribS ? (Info->Attribute & EFI_FILE_SYSTEM ? TRUE : FALSE) : TRUE) &&
+       (mAttribD ? (Info->Attribute & EFI_FILE_DIRECTORY ? TRUE : FALSE) : TRUE)
+-    )
++    ))
+       ) {
+     IsMatch = TRUE;
+   } else {
+diff --ignore-file-name-case -Naur ShellR33/ls/ls.h GccShellR33/ls/ls.h
+--- ShellR33/ls/ls.h   2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/ls/ls.h        2009-11-05 13:49:56.000000000 -0800
+@@ -91,4 +91,4 @@
+   IN UINT16               VHlpToken
+   );
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/ls/ls.inf GccShellR33/ls/ls.inf
+--- ShellR33/ls/ls.inf 2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/ls/ls.inf      2009-09-22 15:37:05.000000000 -0700
+@@ -40,24 +40,24 @@
+ [sources.common]
+-   ..\ShCommonStrings.uni   
++   ../ShCommonStrings.uni   
+    LsStrings.uni        
+    ls.c                 
+    ls.h    
+                                          
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/mem/debug.h GccShellR33/mem/debug.h
+--- ShellR33/mem/debug.h       2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/mem/debug.h    2009-09-22 15:37:05.000000000 -0700
+@@ -26,7 +26,7 @@
+ #include "EfiShellLib.h"
+ #include EFI_PROTOCOL_DEFINITION (BlockIo)
+-#define EFI_PARTITION_SIGNATURE       0x5053595320494249
++#define EFI_PARTITION_SIGNATURE       0x5053595320494249ULL
+ typedef struct _EFI_PARTITION_HEADER {
+   EFI_TABLE_HEADER  Hdr;
+   UINT32            DirectoryAllocationNumber;
+diff --ignore-file-name-case -Naur ShellR33/mem/efidump.c GccShellR33/mem/efidump.c
+--- ShellR33/mem/efidump.c     2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/mem/efidump.c  2009-09-22 19:19:20.000000000 -0700
+@@ -24,7 +24,7 @@
+ --*/
+ #include "debug.h"
+-#include "Efipart.h"
++#include "EfiPart.h"
+ #include "EfiShellLib.h"
+ #include STRING_DEFINES_FILE
+@@ -352,34 +352,34 @@
+     PrintToken (STRING_TOKEN (STR_DEBUG_STD_ERROR_ON), HiiMemHandle, LibDevicePathToStr (DevicePath));
+   }
+-  PrintToken (STRING_TOKEN (STR_DEBUG_RUNTIME_SERVICES), HiiMemHandle, (UINT64) Tbl.Sys->RuntimeServices);
+-  PrintToken (STRING_TOKEN (STR_DEBUG_BOOT_SERVICES), HiiMemHandle, (UINT64) Tbl.Sys->BootServices);
++  PrintToken (STRING_TOKEN (STR_DEBUG_RUNTIME_SERVICES), HiiMemHandle, (UINT64)(UINTN) Tbl.Sys->RuntimeServices);
++  PrintToken (STRING_TOKEN (STR_DEBUG_BOOT_SERVICES), HiiMemHandle, (UINT64)(UINTN) Tbl.Sys->BootServices);
+   EFI64_CODE (
+     Status = LibGetSystemConfigurationTable(&gEfiSalSystemTableGuid, &SalSystemTable);
+     if (!EFI_ERROR(Status)) {
+-      PrintToken (STRING_TOKEN(STR_DEBUG_SAL_SYSTEM_TABLE), HiiMemHandle, (UINT64)SalSystemTable);
++      PrintToken (STRING_TOKEN(STR_DEBUG_SAL_SYSTEM_TABLE), HiiMemHandle, (UINT64)(UINTN)SalSystemTable);
+     }
+   )
+   
+   Status = LibGetSystemConfigurationTable (&gEfiAcpiTableGuid, &AcpiTable);
+   if (!EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_DEBUG_ACPI_TABLE), HiiMemHandle, (UINT64) AcpiTable);
++    PrintToken (STRING_TOKEN (STR_DEBUG_ACPI_TABLE), HiiMemHandle, (UINT64)(UINTN)AcpiTable);
+   }
+   Status = LibGetSystemConfigurationTable (&gEfiAcpi20TableGuid, &Acpi20Table);
+   if (!EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_DEBUG_APCI_2_TABLE), HiiMemHandle, (UINT64) Acpi20Table);
++    PrintToken (STRING_TOKEN (STR_DEBUG_APCI_2_TABLE), HiiMemHandle, (UINT64)(UINTN)Acpi20Table);
+   }
+   Status = LibGetSystemConfigurationTable (&gEfiMpsTableGuid, &MpsTable);
+   if (!EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_DEBUG_MPS_TABLE), HiiMemHandle, (UINT64) MpsTable);
++    PrintToken (STRING_TOKEN (STR_DEBUG_MPS_TABLE), HiiMemHandle, (UINT64)(UINTN)MpsTable);
+   }
+   Status = LibGetSystemConfigurationTable (&gEfiSmbiosTableGuid, &SMBIOSTable);
+   if (!EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_DEBUG_SMBIOS_TABLE), HiiMemHandle, (UINT64) SMBIOSTable);
++    PrintToken (STRING_TOKEN (STR_DEBUG_SMBIOS_TABLE), HiiMemHandle, (UINT64)(UINTN)SMBIOSTable);
+   }
+ }
+diff --ignore-file-name-case -Naur ShellR33/mem/mem.inf GccShellR33/mem/mem.inf
+--- ShellR33/mem/mem.inf       2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/mem/mem.inf    2009-09-22 15:37:05.000000000 -0700
+@@ -25,7 +25,7 @@
+ COMPONENT_TYPE       = APPLICATION
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   MemStrings.uni
+   DebugStrings.uni  
+   mm.c
+@@ -34,17 +34,17 @@
+   
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/mem/MemCommonPart.c GccShellR33/mem/MemCommonPart.c
+--- ShellR33/mem/MemCommonPart.c       2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/mem/MemCommonPart.c    2009-09-22 15:37:05.000000000 -0700
+@@ -149,7 +149,7 @@
+     return EFI_SUCCESS;
+   }
+-  Address = (AddressStr) ? Xtoi (AddressStr) : (UINT64) SystemTable;
++  Address = (AddressStr) ? Xtoi (AddressStr) : (UINT64)(UINTN)SystemTable;
+   Size    = (SizeStr) ? Xtoi (SizeStr) : 512;
+   //
+@@ -157,7 +157,7 @@
+   //
+   PrintToken (STRING_TOKEN (STR_MEM_MEMORY_ADDR), HiiMemHandle, 2 * sizeof (UINTN), Address, Size);
+   if (MMIo) {
+-    Status = BS->LocateProtocol (&gEfiPciRootBridgeIoProtocolGuid, NULL, &PciRootBridgeIo);
++    Status = BS->LocateProtocol (&gEfiPciRootBridgeIoProtocolGuid, NULL, (VOID **)&PciRootBridgeIo);
+     if (EFI_ERROR (Status)) {
+       PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_LOC_PROT_ERR_EX), HiiMemHandle, L"mem", L"PciRootBridgeIo");
+       return Status;
+@@ -233,7 +233,7 @@
+   MMIo                  = FALSE;
+   AddressStr            = NULL;
+   SizeStr               = NULL;
+-  Address               = (UINT64) SystemTable;
++  Address               = (UINT64)(UINTN) SystemTable;
+   Size                  = 512;
+   RetCode               = LibCheckVariables (SI, MemCheckList, &ChkPck, &Useful);
+   if (VarCheckOk != RetCode) {
+@@ -312,7 +312,7 @@
+   //
+   PrintToken (STRING_TOKEN (STR_MEM_NEW_MEMORY_ADDR), HiiMemHandle, 2 * sizeof (UINTN), Address, Size);
+   if (MMIo) {
+-    Status = BS->LocateProtocol (&gEfiPciRootBridgeIoProtocolGuid, NULL, &PciRootBridgeIo);
++    Status = BS->LocateProtocol (&gEfiPciRootBridgeIoProtocolGuid, NULL, (VOID **)&PciRootBridgeIo);
+     if (EFI_ERROR (Status)) {
+       PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_LOC_PROT_ERR_EX), HiiMemHandle, L"mem", L"PciRootBridgeIo");
+       return Status;
+diff --ignore-file-name-case -Naur ShellR33/mem/MemCommonPart.h GccShellR33/mem/MemCommonPart.h
+--- ShellR33/mem/MemCommonPart.h       2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/mem/MemCommonPart.h    2009-11-05 13:49:56.000000000 -0800
+@@ -62,4 +62,4 @@
+   IN  EFI_BLOCK_IO_PROTOCOL   *BlkIo
+   );
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/memmap/memmap.c GccShellR33/memmap/memmap.c
+--- ShellR33/memmap/memmap.c   2006-08-07 02:14:38.000000000 -0700
++++ GccShellR33/memmap/memmap.c        2009-11-05 13:49:56.000000000 -0800
+@@ -35,7 +35,7 @@
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++static EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiMemmapGuid = EFI_MEMMAP_GUID;
+ SHELL_VAR_CHECK_ITEM    MemmapCheckList[] = {
+   {
+diff --ignore-file-name-case -Naur ShellR33/memmap/memmap.inf GccShellR33/memmap/memmap.inf
+--- ShellR33/memmap/memmap.inf 2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/memmap/memmap.inf      2009-09-22 15:37:05.000000000 -0700
+@@ -40,7 +40,7 @@
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   memmapStrings.uni
+   memmap.c
+   memmap.h
+@@ -48,17 +48,17 @@
+   
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/mkdir/mkdir.c GccShellR33/mkdir/mkdir.c
+--- ShellR33/mkdir/mkdir.c     2006-08-07 02:14:38.000000000 -0700
++++ GccShellR33/mkdir/mkdir.c  2009-11-05 13:49:56.000000000 -0800
+@@ -49,7 +49,7 @@
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++static EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiMkdirGuid = EFI_MKDIR_GUID;
+ SHELL_VAR_CHECK_ITEM    MkdirCheckList[] = {
+   {
+diff --ignore-file-name-case -Naur ShellR33/mkdir/mkdir.h GccShellR33/mkdir/mkdir.h
+--- ShellR33/mkdir/mkdir.h     2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/mkdir/mkdir.h  2009-11-05 13:49:56.000000000 -0800
+@@ -29,4 +29,4 @@
+     0x75ecb57f, 0x4264, 0x49d2, 0x98, 0xe6, 0x39, 0x1a, 0x32, 0x17, 0x9d, 0xf2 \
+   }
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/mkdir/mkdir.inf GccShellR33/mkdir/mkdir.inf
+--- ShellR33/mkdir/mkdir.inf   2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/mkdir/mkdir.inf        2009-09-22 15:37:05.000000000 -0700
+@@ -41,23 +41,23 @@
+ [sources.common]
+   MkdirStrings.uni
+-  ..\ShCommonStrings.uni     
++  ../ShCommonStrings.uni     
+   mkdir.c              
+   mkdir.h              
+  
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/mm/mm.c GccShellR33/mm/mm.c
+--- ShellR33/mm/mm.c   2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/mm/mm.c        2009-11-05 13:49:56.000000000 -0800
+@@ -73,7 +73,7 @@
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE HiiHandle;
++static EFI_HII_HANDLE HiiHandle;
+ EFI_GUID EfiIomodGuid = EFI_IOMOD_GUID;
+ SHELL_VAR_CHECK_ITEM    IomodCheckList[] = {
+   {
+@@ -138,7 +138,7 @@
+   }
+ };
+-UINT64 MaxNum[9]      = { 0xff, 0xffff, 0xffffffff, 0xffffffffffffffff };
++UINT64 MaxNum[9]      = { 0xff, 0xffff, 0xffffffff, 0xffffffffffffffffULL };
+ EFI_BOOTSHELL_CODE(
+   EFI_APPLICATION_ENTRY_POINT(DumpIoModify)
+@@ -469,7 +469,7 @@
+     //
+     if (AccessType == EfiPciEConfig) {
+       SegmentNumber = (UINT32) RShiftU64 (Address, 36) & 0xff;
+-      Address      &= 0xfffffffff;
++      Address      &= 0xfffffffffULL;
+     } else {
+       if (AccessType == EfiPciConfig) {
+         SegmentNumber = (UINT32) RShiftU64 (Address, 32) & 0xff;
+@@ -750,7 +750,7 @@
+     }
+     if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'F')) {
+-      u     = u << 4 | c - (c >= 'A' ? 'A' - 10 : '0');
++      u     = (u << 4) | (c - (c >= 'A' ? 'A' - 10 : '0'));
+       Find  = TRUE;
+     } else {
+diff --ignore-file-name-case -Naur ShellR33/mm/mm.inf GccShellR33/mm/mm.inf
+--- ShellR33/mm/mm.inf 2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/mm/mm.inf      2009-09-22 15:37:05.000000000 -0700
+@@ -41,23 +41,23 @@
+ [sources.common]
+   MmStrings.uni
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   mm.c
+   mm.h
+   
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/mode/mode.inf GccShellR33/mode/mode.inf
+--- ShellR33/mode/mode.inf     2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/mode/mode.inf  2009-09-22 15:37:05.000000000 -0700
+@@ -40,24 +40,24 @@
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   ModeStrings.uni
+   mode.c
+   mode.h
+   
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/mount/mount.c GccShellR33/mount/mount.c
+--- ShellR33/mount/mount.c     2006-08-07 02:14:38.000000000 -0700
++++ GccShellR33/mount/mount.c  2009-11-05 13:49:56.000000000 -0800
+@@ -36,7 +36,7 @@
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++static EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiMountGuid = EFI_MOUNT_GUID;
+ SHELL_VAR_CHECK_ITEM      MountCheckList[] = {
+   {
+diff --ignore-file-name-case -Naur ShellR33/mount/mount.inf GccShellR33/mount/mount.inf
+--- ShellR33/mount/mount.inf   2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/mount/mount.inf        2009-09-22 15:37:05.000000000 -0700
+@@ -40,24 +40,24 @@
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   MountStrings.uni
+   mount.c
+   mount.h
+   
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/mv/mv.c GccShellR33/mv/mv.c
+--- ShellR33/mv/mv.c   2006-08-07 02:14:38.000000000 -0700
++++ GccShellR33/mv/mv.c        2009-11-05 13:49:56.000000000 -0800
+@@ -36,7 +36,7 @@
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++static EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiMvGuid = EFI_MV_GUID;
+ SHELL_VAR_CHECK_ITEM      MvCheckList[] = {
+   {
+diff --ignore-file-name-case -Naur ShellR33/mv/mv.h GccShellR33/mv/mv.h
+--- ShellR33/mv/mv.h   2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/mv/mv.h        2009-11-05 13:49:56.000000000 -0800
+@@ -33,4 +33,4 @@
+ #define EFI_FILE_STRING_SIZE  260
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/mv/mv.inf GccShellR33/mv/mv.inf
+--- ShellR33/mv/mv.inf 2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/mv/mv.inf      2009-09-22 15:37:05.000000000 -0700
+@@ -40,24 +40,24 @@
+ [sources.common]
+-   ..\ShCommonStrings.uni   
++   ../ShCommonStrings.uni   
+    MvStrings.uni        
+    mv.c                 
+    mv.h                 
+                                           
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/newshell/DebugAssert.c GccShellR33/newshell/DebugAssert.c
+--- ShellR33/newshell/DebugAssert.c    1969-12-31 16:00:00.000000000 -0800
++++ GccShellR33/newshell/DebugAssert.c 2009-11-09 15:51:54.000000000 -0800
+@@ -0,0 +1,248 @@
++/*++
++
++Copyright (c) 2004, Intel Corporation                                                         
++All rights reserved. This program and the accompanying materials                          
++are licensed and made available under the terms and conditions of the BSD License         
++which accompanies this distribution.  The full text of the license may be found at        
++http://opensource.org/licenses/bsd-license.php                                            
++                                                                                          
++THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     
++WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             
++
++Module Name:
++
++  DebugAssert.c
++
++Abstract:
++
++  Produce EfiDebugAssertProtocol to enable EfiUtilityLib to function.
++  The EfiUtilityLib is used by the EFI shell!
++
++--*/
++#include "nshell.h"
++#include EFI_PROTOCOL_DEFINITION (DebugAssert)
++
++
++UINTN gRtErrorLevel = 0; 
++
++EFI_STATUS
++EFIAPI
++ShellDebugAssert (
++  IN EFI_DEBUG_ASSERT_PROTOCOL          *This,
++  IN CHAR8                              *FileName,
++  IN INTN                               LineNumber,
++  IN CHAR8                              *Description
++  );
++
++EFI_STATUS
++EFIAPI
++ShellDebugPrint (
++  IN EFI_DEBUG_ASSERT_PROTOCOL          *This,
++  IN UINTN                              ErrorLevel,
++  IN CHAR8                              *Format,
++  IN VA_LIST                            Marker
++  );
++
++EFI_STATUS
++EFIAPI
++ShellPostCode (
++  IN EFI_DEBUG_ASSERT_PROTOCOL          * This,
++  IN  UINT16                            PostCode,
++  IN  CHAR8                             *PostCodeString OPTIONAL
++  );
++
++EFI_STATUS
++EFIAPI
++ShellGetErrorLevel (
++  IN EFI_DEBUG_ASSERT_PROTOCOL          *This,
++  IN  UINTN                             *ErrorLevel
++  );
++
++EFI_STATUS
++EFIAPI
++ShellSetErrorLevel (
++  IN EFI_DEBUG_ASSERT_PROTOCOL          *This,
++  IN  UINTN                             ErrorLevel
++  );
++
++//
++// Protocol instance, there can be only one.
++//
++EFI_HANDLE                mHandle = NULL;
++EFI_DEBUG_ASSERT_PROTOCOL mDebugAssertProtocol = {
++  ShellDebugAssert,
++  ShellDebugPrint,
++  ShellPostCode,
++  ShellGetErrorLevel,
++  ShellSetErrorLevel
++};
++
++//
++// Function implementations
++//
++EFI_STATUS
++EFIAPI
++ShellDebugAssert (
++  IN EFI_DEBUG_ASSERT_PROTOCOL          *This,
++  IN CHAR8                              *FileName,
++  IN INTN                               LineNumber,
++  IN CHAR8                              *Description
++  )
++/*++
++
++Routine Description:
++
++  Worker function for ASSERT (). If Error Logging hub is loaded log ASSERT
++  information. If Error Logging hub is not loaded EFI_BREAKPOINT ().
++  
++Arguments:
++
++  This        - Protocol instance.
++  FileName    - File name of failing routine.
++  LineNumber  - Line number of failing ASSERT().
++  Description - Description, usually the assertion,
++
++Returns:
++
++  EFI_SUCCESS   The function always completes successfully.
++
++--*/
++{
++  Print (L"\nASSERT (%a): %a:%d\n", Description, FileName, LineNumber);
++
++  return EFI_SUCCESS;
++}
++
++EFI_STATUS
++EFIAPI
++ShellDebugPrint (
++  IN EFI_DEBUG_ASSERT_PROTOCOL          *This,
++  IN UINTN                              ErrorLevel,
++  IN CHAR8                              *Format,
++  IN VA_LIST                            Marker
++  )
++/*++
++
++Routine Description:
++
++  Worker function for DEBUG (). If Error Logging hub is loaded log ASSERT
++  information. If Error Logging hub is not loaded do nothing.
++  
++Arguments:
++
++  This       - Protocol Instance.
++  ErrorLevel - If error level is set do the debug print.
++  Format     - String to use for the print, followed by Print arguments.
++
++Returns:
++
++  EFI_SUCCESS   The function always completes successfully.
++
++--*/
++{
++  CHAR16  Buffer[180];
++  CHAR16  UnicodeFormat[180];
++  UINTN   Index;
++  
++  if (!(gRtErrorLevel & ErrorLevel)) {
++    return EFI_SUCCESS;
++  }
++  
++  for (Index = 0; Format[Index] != '\0'; Index++) {
++    UnicodeFormat[Index] = (CHAR16)Format[Index];
++  }
++  Format[Index] = '\0';
++  
++  VSPrint (Buffer, sizeof (Buffer), UnicodeFormat, Marker);
++  Print (Buffer);
++
++  return EFI_SUCCESS;
++}
++
++EFI_STATUS
++EFIAPI
++ShellPostCode (
++  IN EFI_DEBUG_ASSERT_PROTOCOL          * This,
++  IN  UINT16                            PostCode,
++  IN  CHAR8                             *PostCodeString OPTIONAL
++  )
++/*++
++
++Routine Description:
++
++  Write the code to IO ports 80 and 81.
++
++Arguments:
++
++  This            - Protocol Instance.
++  PostCode        - Code to write
++  PostCodeString  - String, currently ignored.
++
++Returns:
++
++  EFI_SUCCESS   The function always completes successfully.
++
++--*/
++{
++  return EFI_SUCCESS;
++}
++
++EFI_STATUS
++EFIAPI
++ShellGetErrorLevel (
++  IN EFI_DEBUG_ASSERT_PROTOCOL          *This,
++  IN  UINTN                             *ErrorLevel
++  )
++{
++  *ErrorLevel = gRtErrorLevel;
++  return EFI_SUCCESS;
++}
++
++EFI_STATUS
++EFIAPI
++ShellSetErrorLevel (
++  IN EFI_DEBUG_ASSERT_PROTOCOL          *This,
++  IN  UINTN                             ErrorLevel
++  )
++{
++  gRtErrorLevel = ErrorLevel;
++  return EFI_SUCCESS;
++}
++
++EFI_STATUS
++InstallShellDebugAssert (
++  VOID
++  )
++/*++
++
++Routine Description:
++
++  Install the status code debug assert protocol
++
++Arguments:
++
++  None
++
++Returns:
++
++  Results of call to InstallProtocolInterface.
++
++--*/
++{
++  DEBUG_CODE (
++    EFI_STATUS  Status;
++    VOID        *Interface;
++    
++    Status = BS->LocateProtocol (&gEfiDebugAssertProtocolGuid, NULL, &Interface);
++    if (EFI_ERROR (Status)) {
++      BS->InstallProtocolInterface (
++            &mHandle,
++            &gEfiDebugAssertProtocolGuid,
++            EFI_NATIVE_INTERFACE,
++            &mDebugAssertProtocol
++            );
++     }
++  );
++
++  return EFI_SUCCESS;
++}
+diff --ignore-file-name-case -Naur ShellR33/newshell/FakeHii.c GccShellR33/newshell/FakeHii.c
+--- ShellR33/newshell/FakeHii.c        2008-08-13 23:02:46.000000000 -0700
++++ GccShellR33/newshell/FakeHii.c     2009-09-22 15:37:05.000000000 -0700
+@@ -320,7 +320,7 @@
+   if (Language == NULL) {
+     return EFI_OUT_OF_RESOURCES;
+   }
+-  strcpya (Language, (UINT8 *) PackageHdr + HeaderSize - LanguageSize);
++  strcpya (Language, (CHAR8 *) PackageHdr + HeaderSize - LanguageSize);
+   for (Link = PackageList->StringPkgHdr.Flink; Link != &PackageList->StringPkgHdr; Link = Link->Flink) {
+     StringPackage = CR (Link, FAKE_HII_STRING_PACKAGE, Entry, FAKE_HII_STRING_PACKAGE_SIGNATURE);
+     if (CompareLanguage (Language, StringPackage->StringPkgHdr->Language)) {
+@@ -770,7 +770,7 @@
+   StringPackage = NULL;
+   for (Link = DatabaseRecord->StringPkgHdr.Flink; Link != &DatabaseRecord->StringPkgHdr; Link = Link->Flink) {
+     StringPackage = CR (Link, FAKE_HII_STRING_PACKAGE, Entry, FAKE_HII_STRING_PACKAGE_SIGNATURE);
+-    if (CompareLanguage (StringPackage->StringPkgHdr->Language, (UINT8 *) Language)) {
++    if (CompareLanguage (StringPackage->StringPkgHdr->Language, (CHAR8 *) Language)) {
+       Matched = TRUE;
+       break;
+     }
+diff --ignore-file-name-case -Naur ShellR33/newshell/init.c GccShellR33/newshell/init.c
+--- ShellR33/newshell/init.c   2008-08-13 23:02:46.000000000 -0700
++++ GccShellR33/newshell/init.c        2009-11-09 15:51:54.000000000 -0800
+@@ -23,7 +23,7 @@
+ #include "nshell.h"
+ extern UINT8    STRING_ARRAY_NAME[];
+-extern BOOLEAN  gHiiInitialized = FALSE;
++BOOLEAN  gHiiInitialized = FALSE;
+ //
+ // This is the generated header file which includes whatever needs to be exported (strings + IFR)
+@@ -51,6 +51,12 @@
+   VOID
+   );
++EFI_STATUS
++InstallShellDebugAssert (
++  VOID
++  );
++
++
+ EFI_HII_HANDLE      HiiNewshellHandle;
+ //
+@@ -99,13 +105,13 @@
+   Status = BS->HandleProtocol (
+                 ImgHnd,
+                 &gEfiLoadedImageProtocolGuid,
+-                &img
++                (VOID **)&img
+                 );
+   if (!EFI_ERROR (Status)) {
+     Status = BS->HandleProtocol (
+                   img->DeviceHandle,
+                   &gEfiDevicePathProtocolGuid,
+-                  &dp
++                  (VOID **)&dp
+                   );
+     if (!EFI_ERROR (Status)) {
+       *DevPath  = DuplicateDevicePath (dp);
+@@ -212,15 +218,18 @@
+   EFI_STATUS                       Status;
+   EFI_CONSOLE_CONTROL_PROTOCOL     *ConsoleControl;
+   EFI_GUID                         EfiLibGuid = EFI_NSHELL_GUID;
++  
+   InitializeShellLib (ImageHandle, SystemTable);
++  InstallShellDebugAssert ();
++
+   //
+   // If EFI_CONSOLE_CONTROL_PROTOCOL is available,
+   // use it to switch to text mode first.
+   //
+   Status = LibLocateProtocol (
+              &gEfiConsoleControlProtocolGuid,
+-             &ConsoleControl
++             (VOID **)&ConsoleControl
+              );
+   if (!EFI_ERROR (Status)) {
+     Status = ConsoleControl->GetMode (ConsoleControl, &mOldCurrentMode, NULL, NULL);
+@@ -342,7 +351,7 @@
+       Status = _ShellLoadEnvDriver (ImageHandle);
+     )
+     if (EFI_ERROR (Status)) {
+-      Status = LibLocateProtocol (&ShellEnvProtocol, &SE);
++      Status = LibLocateProtocol (&ShellEnvProtocol, (VOID **)&SE);
+       if (EFI_ERROR (Status)) {
+         PrintToken (STRING_TOKEN (STR_NSHELL_ENV_DRIVER), HiiNewshellHandle);
+         return Status;
+@@ -372,7 +381,7 @@
+     *IsRootInstance = TRUE;
+   }
+-  Status = LibLocateProtocol (&ShellEnvProtocol, &SE);
++  Status = LibLocateProtocol (&ShellEnvProtocol, (VOID **)&SE);
+   ASSERT (!EFI_ERROR (Status));
+   SI = SE->NewShell (ImageHandle);
+@@ -543,7 +552,7 @@
+   //
+   ConsoleControlStatus = LibLocateProtocol (
+                            &gEfiConsoleControlProtocolGuid,
+-                           &ConsoleControl
++                           (VOID **)&ConsoleControl
+                            );
+   if (!EFI_ERROR (ConsoleControlStatus)) {
+     ConsoleControlStatus = ConsoleControl->GetMode (ConsoleControl, &CurrentMode, NULL, NULL);
+@@ -592,7 +601,7 @@
+   //  3. as a child of a parent shell image
+   //
+   IsRootInstance  = FALSE;
+-
++  
+   Status          = _DoInit (ImageHandle, SystemTable);
+   if (EFI_ERROR (Status)) {
+     return Status;
+diff --ignore-file-name-case -Naur ShellR33/newshell/nshell.h GccShellR33/newshell/nshell.h
+--- ShellR33/newshell/nshell.h 2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/newshell/nshell.h      2009-11-05 13:49:56.000000000 -0800
+@@ -50,7 +50,7 @@
+ #undef EFI_MONOSHELL_CODE
+ #undef EFI_NO_MONOSHELL_CODE
+-#if EFI_MONOSHELL == 1
++#ifdef EFI_MONOSHELL
+ #define EFI_MONOSHELL_CODE(code)    code
+ #define EFI_NO_MONOSHELL_CODE(code)
+ #else
+@@ -58,4 +58,4 @@
+ #define EFI_NO_MONOSHELL_CODE(code) code
+ #endif
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/newshell/nshell.inf GccShellR33/newshell/nshell.inf
+--- ShellR33/newshell/nshell.inf       2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/newshell/nshell.inf    2009-11-07 12:33:52.000000000 -0800
+@@ -26,24 +26,25 @@
+ [sources.common]
+   NshellStrings.uni
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   init.c
+   nshell.h
+   fakehii.c
++  DebugAssert.c
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+@@ -67,7 +68,7 @@
+   IMAGE_ENTRY_POINT=InitializeShell
+   C_STD_FLAGS = $(C_STD_FLAGS) /DSTRING_ARRAY_NAME=$(BASE_NAME)Strings 
+   C_STD_FLAGS = $(C_STD_FLAGS) /DSTRING_DEFINES_FILE=\"$(BASE_NAME)StrDefs.h\"
+-  C_STD_FLAGS = $(C_STD_FLAGS) /DEFI_MONOSHELL=2
++  C_STD_FLAGS = $(C_STD_FLAGS) 
+  
+\ No newline at end of file
+diff --ignore-file-name-case -Naur ShellR33/openinfo/openinfo.c GccShellR33/openinfo/openinfo.c
+--- ShellR33/openinfo/openinfo.c       2006-08-07 02:14:38.000000000 -0700
++++ GccShellR33/openinfo/openinfo.c    2009-11-05 13:49:56.000000000 -0800
+@@ -36,7 +36,7 @@
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++static EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiOpeninfoGuid = EFI_OPENINFO_GUID;
+ SHELL_VAR_CHECK_ITEM    OpeninfoCheckList[] = {
+   {
+diff --ignore-file-name-case -Naur ShellR33/openinfo/openinfo.inf GccShellR33/openinfo/openinfo.inf
+--- ShellR33/openinfo/openinfo.inf     2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/openinfo/openinfo.inf  2009-09-22 15:37:05.000000000 -0700
+@@ -41,24 +41,24 @@
+ [sources.common]
+   OPeninfoStrings.uni
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   openinfo.c
+   openinfo.h
+   
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/pci/pci.c GccShellR33/pci/pci.c
+--- ShellR33/pci/pci.c 2009-05-27 01:55:16.000000000 -0700
++++ GccShellR33/pci/pci.c      2009-11-05 13:49:56.000000000 -0800
+@@ -344,7 +344,7 @@
+ // Global Variables
+ //
+ PCI_CONFIG_SPACE  *mConfigSpace;
+-EFI_HII_HANDLE    HiiHandle;
++EFI_HII_HANDLE    gPciHiiHandle;
+ EFI_GUID          EfiPciGuid = EFI_PCI_GUID;
+ SHELL_VAR_CHECK_ITEM    PciCheckList[] = {
+   {
+@@ -504,7 +504,7 @@
+   //
+   EnableOutputTabPause();
+-  Status = LibInitializeStrings (&HiiHandle, STRING_ARRAY_NAME, &EfiPciGuid);
++  Status = LibInitializeStrings (&gPciHiiHandle, STRING_ARRAY_NAME, &EfiPciGuid);
+   if (EFI_ERROR (Status)) {
+     return Status;
+@@ -513,7 +513,7 @@
+   if (!EFI_PROPER_VERSION (0, 99)) {
+     PrintToken (
+       STRING_TOKEN (STR_SHELLENV_GNC_COMMAND_NOT_SUPPORT),
+-      HiiHandle,
++      gPciHiiHandle,
+       L"pci",
+       EFI_VERSION_0_99 
+       );
+@@ -525,15 +525,15 @@
+   if (VarCheckOk != RetCode) {
+     switch (RetCode) {
+     case VarCheckUnknown:
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_UNKNOWN_FLAG), HiiHandle, L"pci", Useful);
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_UNKNOWN_FLAG), gPciHiiHandle, L"pci", Useful);
+       break;
+     case VarCheckDuplicate:
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_DUP_FLAG), HiiHandle, L"pci", Useful);
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_DUP_FLAG), gPciHiiHandle, L"pci", Useful);
+       break;
+     case VarCheckLackValue:
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_LACK_ARG), HiiHandle, L"pci", Useful);
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_LACK_ARG), gPciHiiHandle, L"pci", Useful);
+       break;
+     default:
+@@ -555,10 +555,10 @@
+         ChkPck.FlagCount > 2 ||
+         (2 == ChkPck.FlagCount && !LibCheckVarGetFlag (&ChkPck, L"-b"))
+         ) {
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_MANY), HiiHandle, L"pci");
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_MANY), gPciHiiHandle, L"pci");
+       Status = EFI_INVALID_PARAMETER;
+     } else {
+-      PrintToken (STRING_TOKEN (STR_HELPINFO_PCI_VERBOSEHELP), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_HELPINFO_PCI_VERBOSEHELP), gPciHiiHandle);
+       Status = EFI_SUCCESS;
+     }
+@@ -572,7 +572,7 @@
+   HandleBufSize = sizeof (EFI_HANDLE);
+   HandleBuf     = (EFI_HANDLE *) AllocatePool (HandleBufSize);
+   if (HandleBuf == NULL) {
+-    PrintToken (STRING_TOKEN (STR_PCI2_OUT_RESOURCES), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_PCI2_OUT_RESOURCES), gPciHiiHandle);
+     Status = EFI_OUT_OF_RESOURCES;
+     goto Done;
+   }
+@@ -588,7 +588,7 @@
+   if (Status == EFI_BUFFER_TOO_SMALL) {
+     HandleBuf = ReallocatePool (HandleBuf, sizeof (EFI_HANDLE), HandleBufSize);
+     if (HandleBuf == NULL) {
+-      PrintToken (STRING_TOKEN (STR_PCI2_OUT_RESOURCES), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_PCI2_OUT_RESOURCES), gPciHiiHandle);
+       Status = EFI_OUT_OF_RESOURCES;
+       goto Done;
+     }
+@@ -603,7 +603,7 @@
+   }
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_PCI2_LOCATE_HANDLE), HiiHandle, Status);
++    PrintToken (STRING_TOKEN (STR_PCI2_LOCATE_HANDLE), gPciHiiHandle, Status);
+     goto Done;
+   }
+@@ -638,7 +638,7 @@
+                 &Descriptors
+                 );
+       if (EFI_ERROR (Status)) {
+-        PrintToken (STRING_TOKEN (STR_PCI2_HANDLE_PROTOCOL), HiiHandle, Status);
++        PrintToken (STRING_TOKEN (STR_PCI2_HANDLE_PROTOCOL), gPciHiiHandle, Status);
+         goto Done;
+       }
+       //
+@@ -650,7 +650,7 @@
+         Status = PciGetNextBusRange (&Descriptors, &MinBus, &MaxBus, &IsEnd);
+         if (EFI_ERROR (Status)) {
+-          PrintToken (STRING_TOKEN (STR_PCI2_BUS), HiiHandle, Status);
++          PrintToken (STRING_TOKEN (STR_PCI2_BUS), gPciHiiHandle, Status);
+           goto Done;
+         }
+@@ -694,7 +694,7 @@
+               if (PciHeader.VendorId != 0xffff) {
+                 if (PrintTitle) {
+-                  PrintToken (STRING_TOKEN (STR_PCI2_SEG_BUS), HiiHandle);
++                  PrintToken (STRING_TOKEN (STR_PCI2_SEG_BUS), gPciHiiHandle);
+                   Print (L"   ---  ---  ---  ----\n");
+                   PrintTitle = FALSE;
+                 }
+@@ -709,7 +709,7 @@
+                 PrintToken (
+                   STRING_TOKEN (STR_PCI2_FOUR_VARS),
+-                  HiiHandle,
++                  gPciHiiHandle,
+                   IoDev->SegmentNumber,
+                   Bus,
+                   Device,
+@@ -719,7 +719,7 @@
+                 PciPrintClassCode (PciHeader.ClassCode, FALSE);
+                 PrintToken (
+                   STRING_TOKEN (STR_PCI2_VENDOR),
+-                  HiiHandle,
++                  gPciHiiHandle,
+                   PciHeader.VendorId,
+                   PciHeader.DeviceId,
+                   PciHeader.ClassCode[0]
+@@ -760,7 +760,7 @@
+   }
+   if (ChkPck.ValueCount == 1) {
+-    PrintToken (STRING_TOKEN (STR_PCI2_TOO_FEW_ARGS), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_PCI2_TOO_FEW_ARGS), gPciHiiHandle);
+     Status = EFI_INVALID_PARAMETER;
+     goto Done;
+   }
+@@ -768,7 +768,7 @@
+   // Arg count >= 3, dump binary of specified function, interpret if necessary
+   //
+   if (ChkPck.ValueCount > 3) {
+-    PrintToken (STRING_TOKEN (STR_PCI2_TOO_MANY_ARGS), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_PCI2_TOO_MANY_ARGS), gPciHiiHandle);
+     Status = EFI_INVALID_PARAMETER;
+     goto Done;
+   }
+@@ -786,7 +786,7 @@
+   if (NULL != Item) {
+     Segment = (UINT16) StrToUIntegerBase (Item->VarStr, 16, &Status);
+     if (EFI_ERROR (Status)) {
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), HiiHandle, L"pci", Item->VarStr);
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), gPciHiiHandle, L"pci", Item->VarStr);
+       Status = EFI_INVALID_PARAMETER;
+       goto Done;
+     }
+@@ -800,7 +800,7 @@
+   if (NULL != Item) {
+     Bus = (UINT16) StrToUIntegerBase (Item->VarStr, 16, &Status);
+     if (EFI_ERROR (Status) || Bus > MAX_BUS_NUMBER) {
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), HiiHandle, L"pci", Item->VarStr);
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), gPciHiiHandle, L"pci", Item->VarStr);
+       Status = EFI_INVALID_PARAMETER;
+       goto Done;
+     }
+@@ -811,7 +811,7 @@
+   if (NULL != Item) {
+     Device = (UINT16) StrToUIntegerBase (Item->VarStr, 16, &Status);
+     if (EFI_ERROR (Status) || Device > MAX_DEVICE_NUMBER) {
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), HiiHandle, L"pci", Item->VarStr);
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), gPciHiiHandle, L"pci", Item->VarStr);
+       Status = EFI_INVALID_PARAMETER;
+       goto Done;
+     }
+@@ -822,7 +822,7 @@
+   if (NULL != Item) {
+     Func = (UINT16) StrToUIntegerBase (Item->VarStr, 16, &Status);
+     if (EFI_ERROR (Status) || Func > MAX_FUNCTION_NUMBER) {
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), HiiHandle, L"pci", Item->VarStr);
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), gPciHiiHandle, L"pci", Item->VarStr);
+       Status = EFI_INVALID_PARAMETER;
+       goto Done;
+     }
+@@ -844,7 +844,7 @@
+   if (EFI_ERROR (Status)) {
+     PrintToken (
+       STRING_TOKEN (STR_PCI2_CANNOT_FIND_PROTOCOL),
+-      HiiHandle,
++      gPciHiiHandle,
+       Segment,
+       Bus
+       );
+@@ -862,14 +862,14 @@
+                         );
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_PCI2_CANNOT_READ_CONFIG), HiiHandle, Status);
++    PrintToken (STRING_TOKEN (STR_PCI2_CANNOT_READ_CONFIG), gPciHiiHandle, Status);
+     goto Done;
+   }
+   mConfigSpace = &ConfigSpace;
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_SEGMENT_BUS),
+-    HiiHandle,
++    gPciHiiHandle,
+     Segment,
+     Bus,
+     Device,
+@@ -1031,7 +1031,7 @@
+   Status = BS->HandleProtocol (
+                 Handle,
+                 &gEfiPciRootBridgeIoProtocolGuid,
+-                IoDev
++                (VOID **)IoDev
+                 );
+   if (EFI_ERROR (Status)) {
+@@ -1040,7 +1040,7 @@
+   //
+   // Call Configuration() to get address space descriptors
+   //
+-  Status = (*IoDev)->Configuration (*IoDev, Descriptors);
++  Status = (*IoDev)->Configuration (*IoDev, (VOID **)Descriptors);
+   if (Status == EFI_UNSUPPORTED) {
+     *Descriptors = NULL;
+     return EFI_SUCCESS;
+@@ -1154,14 +1154,14 @@
+   //
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_VENDOR_ID),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(Common->VendorId)),
+     Common->VendorId
+     );
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_DEVICE_ID),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(Common->DeviceId)),
+     Common->DeviceId
+     );
+@@ -1181,7 +1181,7 @@
+   //
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_REVISION_ID),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(Common->RevisionId)),
+     Common->RevisionId
+     );
+@@ -1189,19 +1189,19 @@
+   //
+   // Print register BIST
+   //
+-  PrintToken (STRING_TOKEN (STR_PCI2_BIST), HiiHandle, INDEX_OF (&(Common->BIST)));
++  PrintToken (STRING_TOKEN (STR_PCI2_BIST), gPciHiiHandle, INDEX_OF (&(Common->BIST)));
+   if ((Common->BIST & PCI_BIT_7) != 0) {
+-    PrintToken (STRING_TOKEN (STR_PCI2_CAPABLE_RETURN), HiiHandle, 0x0f & Common->BIST);
++    PrintToken (STRING_TOKEN (STR_PCI2_CAPABLE_RETURN), gPciHiiHandle, 0x0f & Common->BIST);
+   } else {
+-    PrintToken (STRING_TOKEN (STR_PCI2_INCAPABLE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_PCI2_INCAPABLE), gPciHiiHandle);
+   }
+   //
+   // Print register Cache Line Size
+   //
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_CACHE_LINE_SIZE),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(Common->CacheLineSize)),
+     Common->CacheLineSize
+     );
+@@ -1211,7 +1211,7 @@
+   //
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_LATENCY_TIMER),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(Common->PrimaryLatencyTimer)),
+     Common->PrimaryLatencyTimer
+     );
+@@ -1221,41 +1221,41 @@
+   //
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_HEADER_TYPE),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(Common->HeaderType)),
+     Common->HeaderType
+     );
+   if ((Common->HeaderType & PCI_BIT_7) != 0) {
+-    PrintToken (STRING_TOKEN (STR_PCI2_MULTI_FUNCTION), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_PCI2_MULTI_FUNCTION), gPciHiiHandle);
+   } else {
+-    PrintToken (STRING_TOKEN (STR_PCI2_SINGLE_FUNCTION), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_PCI2_SINGLE_FUNCTION), gPciHiiHandle);
+   }
+   HeaderType = (UINT8) (Common->HeaderType & 0x7f);
+   switch (HeaderType) {
+   case PciDevice:
+-    PrintToken (STRING_TOKEN (STR_PCI2_PCI_DEVICE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_PCI2_PCI_DEVICE), gPciHiiHandle);
+     break;
+   case PciP2pBridge:
+-    PrintToken (STRING_TOKEN (STR_PCI2_P2P_BRIDGE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_PCI2_P2P_BRIDGE), gPciHiiHandle);
+     break;
+   case PciCardBusBridge:
+-    PrintToken (STRING_TOKEN (STR_PCI2_CARDBUS_BRIDGE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_PCI2_CARDBUS_BRIDGE), gPciHiiHandle);
+     break;
+   default:
+-    PrintToken (STRING_TOKEN (STR_PCI2_RESERVED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_PCI2_RESERVED), gPciHiiHandle);
+     HeaderType = PciUndefined;
+   }
+   //
+   // Print register Class Code
+   //
+-  PrintToken (STRING_TOKEN (STR_PCI2_CLASS), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_PCI2_CLASS), gPciHiiHandle);
+   PciPrintClassCode ((UINT8 *) Common->ClassCode, TRUE);
+   Print (L"\n");
+@@ -1296,6 +1296,9 @@
+               );
+     CapPtr = ConfigSpace->NonCommon.CardBus.CapabilitiesPtr;
+     break;
++    
++  default:
++    break;
+   }
+   //
+   // If Status bit4 is 1, dump or explain capability structure
+@@ -1341,7 +1344,7 @@
+   // exist. If these no Bar for this function, print "none", otherwise
+   // list detail information about this Bar.
+   //
+-  PrintToken (STRING_TOKEN (STR_PCI2_BASE_ADDR), HiiHandle, INDEX_OF (Device->Bar));
++  PrintToken (STRING_TOKEN (STR_PCI2_BASE_ADDR), gPciHiiHandle, INDEX_OF (Device->Bar));
+   BarExist  = FALSE;
+   BarCount  = sizeof (Device->Bar) / sizeof (Device->Bar[0]);
+@@ -1352,7 +1355,7 @@
+     if (!BarExist) {
+       BarExist = TRUE;
+-      PrintToken (STRING_TOKEN (STR_PCI2_START_TYPE), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_PCI2_START_TYPE), gPciHiiHandle);
+       Print (L"  --------------------------------------------------------------------------");
+     }
+@@ -1370,7 +1373,7 @@
+   }
+   if (!BarExist) {
+-    PrintToken (STRING_TOKEN (STR_PCI2_NONE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_PCI2_NONE), gPciHiiHandle);
+   } else {
+     Print (L"\n  --------------------------------------------------------------------------");
+@@ -1380,12 +1383,12 @@
+   // Print register Expansion ROM Base Address
+   //
+   if ((Device->ROMBar & PCI_BIT_0) == 0) {
+-    PrintToken (STRING_TOKEN (STR_PCI2_EXPANSION_ROM_DISABLED), HiiHandle, INDEX_OF (&(Device->ROMBar)));
++    PrintToken (STRING_TOKEN (STR_PCI2_EXPANSION_ROM_DISABLED), gPciHiiHandle, INDEX_OF (&(Device->ROMBar)));
+   } else {
+     PrintToken (
+       STRING_TOKEN (STR_PCI2_EXPANSION_ROM_BASE),
+-      HiiHandle,
++      gPciHiiHandle,
+       INDEX_OF (&(Device->ROMBar)),
+       Device->ROMBar
+       );
+@@ -1395,7 +1398,7 @@
+   //
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_CARDBUS_CIS),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(Device->CardBusCISPtr)),
+     Device->CardBusCISPtr
+     );
+@@ -1405,14 +1408,14 @@
+   //
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_SUB_VENDOR_ID),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(Device->SubVendorId)),
+     Device->SubVendorId
+     );
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_SUBSYSTEM_ID),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(Device->SubSystemId)),
+     Device->SubSystemId
+     );
+@@ -1422,7 +1425,7 @@
+   //
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_CAPABILITIES_PTR),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(Device->CapabilitiesPtr)),
+     Device->CapabilitiesPtr
+     );
+@@ -1432,14 +1435,14 @@
+   //
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_INTERRUPT_LINE),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(Device->InterruptLine)),
+     Device->InterruptLine
+     );
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_INTERRUPT_PIN),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(Device->InterruptPin)),
+     Device->InterruptPin
+     );
+@@ -1449,14 +1452,14 @@
+   //
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_MIN_GNT),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(Device->MinGnt)),
+     Device->MinGnt
+     );
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_MAX_LAT),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(Device->MaxLat)),
+     Device->MaxLat
+     );
+@@ -1499,7 +1502,7 @@
+   // exist. If these no Bar for this function, print "none", otherwise
+   // list detail information about this Bar.
+   //
+-  PrintToken (STRING_TOKEN (STR_PCI2_BASE_ADDRESS), HiiHandle, INDEX_OF (&(Bridge->Bar)));
++  PrintToken (STRING_TOKEN (STR_PCI2_BASE_ADDRESS), gPciHiiHandle, INDEX_OF (&(Bridge->Bar)));
+   BarExist  = FALSE;
+   BarCount  = sizeof (Bridge->Bar) / sizeof (Bridge->Bar[0]);
+@@ -1511,7 +1514,7 @@
+     if (!BarExist) {
+       BarExist = TRUE;
+-      PrintToken (STRING_TOKEN (STR_PCI2_START_TYPE_2), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_PCI2_START_TYPE_2), gPciHiiHandle);
+       Print (L"  --------------------------------------------------------------------------");
+     }
+@@ -1529,7 +1532,7 @@
+   }
+   if (!BarExist) {
+-    PrintToken (STRING_TOKEN (STR_PCI2_NONE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_PCI2_NONE), gPciHiiHandle);
+   } else {
+     Print (L"\n  --------------------------------------------------------------------------");
+   }
+@@ -1538,12 +1541,12 @@
+   // Expansion register ROM Base Address
+   //
+   if ((Bridge->ROMBar & PCI_BIT_0) == 0) {
+-    PrintToken (STRING_TOKEN (STR_PCI2_NO_EXPANSION_ROM), HiiHandle, INDEX_OF (&(Bridge->ROMBar)));
++    PrintToken (STRING_TOKEN (STR_PCI2_NO_EXPANSION_ROM), gPciHiiHandle, INDEX_OF (&(Bridge->ROMBar)));
+   } else {
+     PrintToken (
+       STRING_TOKEN (STR_PCI2_EXPANSION_ROM_BASE_2),
+-      HiiHandle,
++      gPciHiiHandle,
+       INDEX_OF (&(Bridge->ROMBar)),
+       Bridge->ROMBar
+       );
+@@ -1553,7 +1556,7 @@
+   //
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_BUS_NUMBERS),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(Bridge->PrimaryBus)),
+     INDEX_OF (&(Bridge->SecondaryBus)),
+     INDEX_OF (&(Bridge->SubordinateBus))
+@@ -1561,16 +1564,16 @@
+   Print (L"               ------------------------------------------------------\n");
+-  PrintToken (STRING_TOKEN (STR_PCI2_BRIDGE), HiiHandle, Bridge->PrimaryBus);
+-  PrintToken (STRING_TOKEN (STR_PCI2_BRIDGE), HiiHandle, Bridge->SecondaryBus);
+-  PrintToken (STRING_TOKEN (STR_PCI2_BRIDGE), HiiHandle, Bridge->SubordinateBus);
++  PrintToken (STRING_TOKEN (STR_PCI2_BRIDGE), gPciHiiHandle, Bridge->PrimaryBus);
++  PrintToken (STRING_TOKEN (STR_PCI2_BRIDGE), gPciHiiHandle, Bridge->SecondaryBus);
++  PrintToken (STRING_TOKEN (STR_PCI2_BRIDGE), gPciHiiHandle, Bridge->SubordinateBus);
+   //
+   // Print register Secondary Latency Timer
+   //
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_SECONDARY_TIMER),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(Bridge->SecondaryLatencyTimer)),
+     Bridge->SecondaryLatencyTimer
+     );
+@@ -1585,7 +1588,7 @@
+   // types: I/O, memory, and pre-fetchable memory. For each resource type,
+   // base and limit address are listed.
+   //
+-  PrintToken (STRING_TOKEN (STR_PCI2_RESOURCE_TYPE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_PCI2_RESOURCE_TYPE), gPciHiiHandle);
+   Print (L"----------------------------------------------------------------------\n");
+   //
+@@ -1595,28 +1598,28 @@
+   IoAddress32 &= 0xfffff000;
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_TWO_VARS),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(Bridge->IoBase)),
+     IoAddress32
+     );
+   IoAddress32 = (Bridge->IoLimitUpper << 16 | Bridge->IoLimit << 8);
+   IoAddress32 |= 0x00000fff;
+-  PrintToken (STRING_TOKEN (STR_PCI2_ONE_VAR), HiiHandle, IoAddress32);
++  PrintToken (STRING_TOKEN (STR_PCI2_ONE_VAR), gPciHiiHandle, IoAddress32);
+   //
+   // Memory Base & Limit
+   //
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_MEMORY),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(Bridge->MemoryBase)),
+     (Bridge->MemoryBase << 16) & 0xfff00000
+     );
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_ONE_VAR),
+-    HiiHandle,
++    gPciHiiHandle,
+     (Bridge->MemoryLimit << 16) | 0x000fffff
+     );
+@@ -1625,7 +1628,7 @@
+   //
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_PREFETCHABLE),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(Bridge->PrefetchableMemBase)),
+     Bridge->PrefetchableBaseUpper,
+     (Bridge->PrefetchableMemBase << 16) & 0xfff00000
+@@ -1633,7 +1636,7 @@
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_TWO_VARS_2),
+-    HiiHandle,
++    gPciHiiHandle,
+     Bridge->PrefetchableLimitUpper,
+     (Bridge->PrefetchableMemLimit << 16) | 0x000fffff
+     );
+@@ -1643,7 +1646,7 @@
+   //
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_CAPABILITIES_PTR_2),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(Bridge->CapabilitiesPtr)),
+     Bridge->CapabilitiesPtr
+     );
+@@ -1658,14 +1661,14 @@
+   //
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_INTERRUPT_LINE_2),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(Bridge->InterruptLine)),
+     Bridge->InterruptLine
+     );
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_INTERRUPT_PIN),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(Bridge->InterruptPin)),
+     Bridge->InterruptPin
+     );
+@@ -1728,17 +1731,17 @@
+     IsMem = TRUE;
+     if ((*Bar & PCI_BIT_1) == 0 && (*Bar & PCI_BIT_2) == 0) {
+-      PrintToken (STRING_TOKEN (STR_PCI2_BAR), HiiHandle, *Bar & 0xfffffff0);
+-      PrintToken (STRING_TOKEN (STR_PCI2_MEM), HiiHandle);
+-      PrintToken (STRING_TOKEN (STR_PCI2_32_BITS), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_PCI2_BAR), gPciHiiHandle, *Bar & 0xfffffff0);
++      PrintToken (STRING_TOKEN (STR_PCI2_MEM), gPciHiiHandle);
++      PrintToken (STRING_TOKEN (STR_PCI2_32_BITS), gPciHiiHandle);
+     } else if ((*Bar & PCI_BIT_1) == 0 && (*Bar & PCI_BIT_2) != 0) {
+       Bar64 = 0x0;
+       CopyMem (&Bar64, Bar, sizeof (UINT32));
+-      PrintToken (STRING_TOKEN (STR_PCI2_ONE_VAR_2), HiiHandle, RShiftU64 ((Bar64 & 0xfffffffffffffff0), 32));
+-      PrintToken (STRING_TOKEN (STR_PCI2_ONE_VAR_3), HiiHandle, Bar64 & 0xfffffffffffffff0);
+-      PrintToken (STRING_TOKEN (STR_PCI2_MEM), HiiHandle);
+-      PrintToken (STRING_TOKEN (STR_PCI2_64_BITS), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_PCI2_ONE_VAR_2), gPciHiiHandle, RShiftU64 ((Bar64 & 0xfffffffffffffff0ULL), 32));
++      PrintToken (STRING_TOKEN (STR_PCI2_ONE_VAR_3), gPciHiiHandle, Bar64 & 0xfffffffffffffff0ULL);
++      PrintToken (STRING_TOKEN (STR_PCI2_MEM), gPciHiiHandle);
++      PrintToken (STRING_TOKEN (STR_PCI2_64_BITS), gPciHiiHandle);
+       IsBar32 = FALSE;
+       *Index += 1;
+@@ -1746,15 +1749,15 @@
+       //
+       // Reserved
+       //
+-      PrintToken (STRING_TOKEN (STR_PCI2_BAR), HiiHandle, *Bar & 0xfffffff0);
+-      PrintToken (STRING_TOKEN (STR_PCI2_MEM_2), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_PCI2_BAR), gPciHiiHandle, *Bar & 0xfffffff0);
++      PrintToken (STRING_TOKEN (STR_PCI2_MEM_2), gPciHiiHandle);
+     }
+     if ((*Bar & PCI_BIT_3) == 0) {
+-      PrintToken (STRING_TOKEN (STR_PCI2_NO), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_PCI2_NO), gPciHiiHandle);
+     } else {
+-      PrintToken (STRING_TOKEN (STR_PCI2_YES), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_PCI2_YES), gPciHiiHandle);
+     }
+   } else {
+@@ -1762,7 +1765,7 @@
+     // This bar is of io type
+     //
+     IsMem = FALSE;
+-    PrintToken (STRING_TOKEN (STR_PCI2_ONE_VAR_4), HiiHandle, *Bar & 0xfffffffc);
++    PrintToken (STRING_TOKEN (STR_PCI2_ONE_VAR_4), gPciHiiHandle, *Bar & 0xfffffffc);
+     Print (L"I/O                               ");
+   }
+@@ -1807,18 +1810,18 @@
+     OldBar64 = 0x0;
+     CopyMem (&OldBar64, Bar, sizeof (UINT32));
+-    NewBar64 = 0xffffffffffffffff;
++    NewBar64 = 0xffffffffffffffffULL;
+     IoDev->Pci.Write (IoDev, EfiPciWidthUint32, RegAddress, 2, &NewBar64);
+     IoDev->Pci.Read (IoDev, EfiPciWidthUint32, RegAddress, 2, &NewBar64);
+     IoDev->Pci.Write (IoDev, EfiPciWidthUint32, RegAddress, 2, &OldBar64);
+     if (IsMem) {
+-      NewBar64  = NewBar64 & 0xfffffffffffffff0;
++      NewBar64  = NewBar64 & 0xfffffffffffffff0ULL;
+       NewBar64  = (~NewBar64) + 1;
+     } else {
+-      NewBar64  = NewBar64 & 0xfffffffffffffffc;
++      NewBar64  = NewBar64 & 0xfffffffffffffffcULL;
+       NewBar64  = (~NewBar64) + 1;
+       NewBar64  = NewBar64 & 0x000000000000ffff;
+     }
+@@ -1831,24 +1834,24 @@
+   if (IsMem) {
+     if (IsBar32) {
+-      PrintToken (STRING_TOKEN (STR_PCI2_NEWBAR_32), HiiHandle, NewBar32);
+-      PrintToken (STRING_TOKEN (STR_PCI2_NEWBAR_32_2), HiiHandle, NewBar32 + (*Bar & 0xfffffff0) - 1);
++      PrintToken (STRING_TOKEN (STR_PCI2_NEWBAR_32), gPciHiiHandle, NewBar32);
++      PrintToken (STRING_TOKEN (STR_PCI2_NEWBAR_32_2), gPciHiiHandle, NewBar32 + (*Bar & 0xfffffff0) - 1);
+     } else {
+-      PrintToken (STRING_TOKEN (STR_PCI2_RSHIFT), HiiHandle, RShiftU64 (NewBar64, 32));
+-      PrintToken (STRING_TOKEN (STR_PCI2_RSHIFT), HiiHandle, (UINT32) NewBar64);
++      PrintToken (STRING_TOKEN (STR_PCI2_RSHIFT), gPciHiiHandle, RShiftU64 (NewBar64, 32));
++      PrintToken (STRING_TOKEN (STR_PCI2_RSHIFT), gPciHiiHandle, (UINT32) NewBar64);
+       Print (L"  ");
+       PrintToken (
+         STRING_TOKEN (STR_PCI2_RSHIFT),
+-        HiiHandle,
+-        RShiftU64 ((NewBar64 + (Bar64 & 0xfffffffffffffff0) - 1), 32)
++        gPciHiiHandle,
++        RShiftU64 ((NewBar64 + (Bar64 & 0xfffffffffffffff0ULL) - 1), 32)
+         );
+-      PrintToken (STRING_TOKEN (STR_PCI2_RSHIFT), HiiHandle, (UINT32) (NewBar64 + (Bar64 & 0xfffffffffffffff0) - 1));
++      PrintToken (STRING_TOKEN (STR_PCI2_RSHIFT), gPciHiiHandle, (UINT32) (NewBar64 + (Bar64 & 0xfffffffffffffff0ULL) - 1));
+     }
+   } else {
+-    PrintToken (STRING_TOKEN (STR_PCI2_NEWBAR_32_3), HiiHandle, NewBar32);
+-    PrintToken (STRING_TOKEN (STR_PCI2_NEWBAR_32_4), HiiHandle, NewBar32 + (*Bar & 0xfffffffc) - 1);
++    PrintToken (STRING_TOKEN (STR_PCI2_NEWBAR_32_3), gPciHiiHandle, NewBar32);
++    PrintToken (STRING_TOKEN (STR_PCI2_NEWBAR_32_4), gPciHiiHandle, NewBar32 + (*Bar & 0xfffffffc) - 1);
+   }
+   return EFI_SUCCESS;
+@@ -1883,7 +1886,7 @@
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_CARDBUS_SOCKET),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(CardBus->CardBusSocketReg)),
+     CardBus->CardBusSocketReg
+     );
+@@ -1899,7 +1902,7 @@
+   //
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_BUS_NUMBERS_2),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(CardBus->PciBusNumber)),
+     INDEX_OF (&(CardBus->CardBusBusNumber)),
+     INDEX_OF (&(CardBus->SubordinateBusNumber))
+@@ -1907,16 +1910,16 @@
+   Print (L"               ------------------------------------------------------\n");
+-  PrintToken (STRING_TOKEN (STR_PCI2_CARDBUS), HiiHandle, CardBus->PciBusNumber);
+-  PrintToken (STRING_TOKEN (STR_PCI2_CARDBUS_2), HiiHandle, CardBus->CardBusBusNumber);
+-  PrintToken (STRING_TOKEN (STR_PCI2_CARDBUS_3), HiiHandle, CardBus->SubordinateBusNumber);
++  PrintToken (STRING_TOKEN (STR_PCI2_CARDBUS), gPciHiiHandle, CardBus->PciBusNumber);
++  PrintToken (STRING_TOKEN (STR_PCI2_CARDBUS_2), gPciHiiHandle, CardBus->CardBusBusNumber);
++  PrintToken (STRING_TOKEN (STR_PCI2_CARDBUS_3), gPciHiiHandle, CardBus->SubordinateBusNumber);
+   //
+   // Print CardBus Latency Timer
+   //
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_CARDBUS_LATENCY),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(CardBus->CardBusLatencyTimer)),
+     CardBus->CardBusLatencyTimer
+     );
+@@ -1924,12 +1927,12 @@
+   //
+   // Print Memory/Io ranges this cardbus bridge forwards
+   //
+-  PrintToken (STRING_TOKEN (STR_PCI2_RESOURCE_TYPE_2), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_PCI2_RESOURCE_TYPE_2), gPciHiiHandle);
+   Print (L"----------------------------------------------------------------------\n");
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_MEM_3),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(CardBus->MemoryBase0)),
+     CardBus->BridgeControl & PCI_BIT_8 ? L"    Prefetchable" : L"Non-Prefetchable",
+     CardBus->MemoryBase0 & 0xfffff000,
+@@ -1938,7 +1941,7 @@
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_MEM_3),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(CardBus->MemoryBase1)),
+     CardBus->BridgeControl & PCI_BIT_9 ? L"    Prefetchable" : L"Non-Prefetchable",
+     CardBus->MemoryBase1 & 0xfffff000,
+@@ -1948,21 +1951,21 @@
+   Io32Bit = (BOOLEAN) (CardBus->IoBase0 & PCI_BIT_0);
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_IO_2),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(CardBus->IoBase0)),
+     Io32Bit ? L"          32 bit" : L"          16 bit",
+     CardBus->IoBase0 & (Io32Bit ? 0xfffffffc : 0x0000fffc),
+-    CardBus->IoLimit0 & (Io32Bit ? 0xffffffff : 0x0000ffff) | 0x00000003
++    (CardBus->IoLimit0 & (Io32Bit ? 0xffffffff : 0x0000ffff)) | 0x00000003
+     );
+   Io32Bit = (BOOLEAN) (CardBus->IoBase1 & PCI_BIT_0);
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_IO_2),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(CardBus->IoBase1)),
+     Io32Bit ? L"          32 bit" : L"          16 bit",
+     CardBus->IoBase1 & (Io32Bit ? 0xfffffffc : 0x0000fffc),
+-    CardBus->IoLimit1 & (Io32Bit ? 0xffffffff : 0x0000ffff) | 0x00000003
++    (CardBus->IoLimit1 & (Io32Bit ? 0xffffffff : 0x0000ffff)) | 0x00000003
+     );
+   //
+@@ -1970,7 +1973,7 @@
+   //
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_INTERRUPT_LINE_3),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(CardBus->InterruptLine)),
+     CardBus->InterruptLine,
+     INDEX_OF (&(CardBus->InterruptPin)),
+@@ -1991,7 +1994,7 @@
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_SUB_VENDOR_ID_2),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(CardBusData->SubVendorId)),
+     CardBusData->SubVendorId,
+     INDEX_OF (&(CardBusData->SubSystemId)),
+@@ -2000,7 +2003,7 @@
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_OPTIONAL),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (&(CardBusData->LegacyBase)),
+     CardBusData->LegacyBase
+     );
+@@ -2035,80 +2038,80 @@
+ --*/
+ {
+   if (MainStatus) {
+-    PrintToken (STRING_TOKEN (STR_PCI2_STATUS), HiiHandle, INDEX_OF (Status), *Status);
++    PrintToken (STRING_TOKEN (STR_PCI2_STATUS), gPciHiiHandle, INDEX_OF (Status), *Status);
+   } else {
+-    PrintToken (STRING_TOKEN (STR_PCI2_SECONDARY_STATUS), HiiHandle, INDEX_OF (Status), *Status);
++    PrintToken (STRING_TOKEN (STR_PCI2_SECONDARY_STATUS), gPciHiiHandle, INDEX_OF (Status), *Status);
+   }
+-  PrintToken (STRING_TOKEN (STR_PCI2_NEW_CAPABILITIES), HiiHandle, (*Status & PCI_BIT_4) != 0);
++  PrintToken (STRING_TOKEN (STR_PCI2_NEW_CAPABILITIES), gPciHiiHandle, (*Status & PCI_BIT_4) != 0);
+   //
+   // Bit 5 is meaningless for CardBus Bridge
+   //
+   if (HeaderType == PciCardBusBridge) {
+-    PrintToken (STRING_TOKEN (STR_PCI2_66_CAPABLE), HiiHandle, (*Status & PCI_BIT_5) != 0);
++    PrintToken (STRING_TOKEN (STR_PCI2_66_CAPABLE), gPciHiiHandle, (*Status & PCI_BIT_5) != 0);
+   } else {
+-    PrintToken (STRING_TOKEN (STR_PCI2_66_CAPABLE_2), HiiHandle, (*Status & PCI_BIT_5) != 0);
++    PrintToken (STRING_TOKEN (STR_PCI2_66_CAPABLE_2), gPciHiiHandle, (*Status & PCI_BIT_5) != 0);
+   }
+-  PrintToken (STRING_TOKEN (STR_PCI2_FAST_BACK), HiiHandle, (*Status & PCI_BIT_7) != 0);
++  PrintToken (STRING_TOKEN (STR_PCI2_FAST_BACK), gPciHiiHandle, (*Status & PCI_BIT_7) != 0);
+-  PrintToken (STRING_TOKEN (STR_PCI2_MASTER_DATA), HiiHandle, (*Status & PCI_BIT_8) != 0);
++  PrintToken (STRING_TOKEN (STR_PCI2_MASTER_DATA), gPciHiiHandle, (*Status & PCI_BIT_8) != 0);
+   //
+   // Bit 9 and bit 10 together decides the DEVSEL timing
+   //
+-  PrintToken (STRING_TOKEN (STR_PCI2_DEVSEL_TIMING), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_PCI2_DEVSEL_TIMING), gPciHiiHandle);
+   if ((*Status & PCI_BIT_9) == 0 && (*Status & PCI_BIT_10) == 0) {
+-    PrintToken (STRING_TOKEN (STR_PCI2_FAST), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_PCI2_FAST), gPciHiiHandle);
+   } else if ((*Status & PCI_BIT_9) != 0 && (*Status & PCI_BIT_10) == 0) {
+-    PrintToken (STRING_TOKEN (STR_PCI2_MEDIUM), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_PCI2_MEDIUM), gPciHiiHandle);
+   } else if ((*Status & PCI_BIT_9) == 0 && (*Status & PCI_BIT_10) != 0) {
+-    PrintToken (STRING_TOKEN (STR_PCI2_SLOW), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_PCI2_SLOW), gPciHiiHandle);
+   } else {
+-    PrintToken (STRING_TOKEN (STR_PCI2_RESERVED_2), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_PCI2_RESERVED_2), gPciHiiHandle);
+   }
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_SIGNALED_TARGET),
+-    HiiHandle,
++    gPciHiiHandle,
+     (*Status & PCI_BIT_11) != 0
+     );
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_RECEIVED_TARGET),
+-    HiiHandle,
++    gPciHiiHandle,
+     (*Status & PCI_BIT_12) != 0
+     );
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_RECEIVED_MASTER),
+-    HiiHandle,
++    gPciHiiHandle,
+     (*Status & PCI_BIT_13) != 0
+     );
+   if (MainStatus) {
+     PrintToken (
+       STRING_TOKEN (STR_PCI2_SIGNALED_ERROR),
+-      HiiHandle,
++      gPciHiiHandle,
+       (*Status & PCI_BIT_14) != 0
+       );
+   } else {
+     PrintToken (
+       STRING_TOKEN (STR_PCI2_RECEIVED_ERROR),
+-      HiiHandle,
++      gPciHiiHandle,
+       (*Status & PCI_BIT_14) != 0
+       );
+   }
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_DETECTED_ERROR),
+-    HiiHandle,
++    gPciHiiHandle,
+     (*Status & PCI_BIT_15) != 0
+     );
+@@ -2138,68 +2141,68 @@
+   //
+   // Print the binary value of register Command
+   //
+-  PrintToken (STRING_TOKEN (STR_PCI2_COMMAND), HiiHandle, INDEX_OF (Command), *Command);
++  PrintToken (STRING_TOKEN (STR_PCI2_COMMAND), gPciHiiHandle, INDEX_OF (Command), *Command);
+   //
+   // Explain register Command bit by bit
+   //
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_SPACE_ACCESS_DENIED),
+-    HiiHandle,
++    gPciHiiHandle,
+     (*Command & PCI_BIT_0) != 0
+     );
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_MEMORY_SPACE),
+-    HiiHandle,
++    gPciHiiHandle,
+     (*Command & PCI_BIT_1) != 0
+     );
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_BEHAVE_BUS_MASTER),
+-    HiiHandle,
++    gPciHiiHandle,
+     (*Command & PCI_BIT_2) != 0
+     );
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_MONITOR_SPECIAL_CYCLE),
+-    HiiHandle,
++    gPciHiiHandle,
+     (*Command & PCI_BIT_3) != 0
+     );
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_MEM_WRITE_INVALIDATE),
+-    HiiHandle,
++    gPciHiiHandle,
+     (*Command & PCI_BIT_4) != 0
+     );
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_PALETTE_SNOOPING),
+-    HiiHandle,
++    gPciHiiHandle,
+     (*Command & PCI_BIT_5) != 0
+     );
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_ASSERT_PERR),
+-    HiiHandle,
++    gPciHiiHandle,
+     (*Command & PCI_BIT_6) != 0
+     );
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_DO_ADDR_STEPPING),
+-    HiiHandle,
++    gPciHiiHandle,
+     (*Command & PCI_BIT_7) != 0
+     );
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_SERR_DRIVER),
+-    HiiHandle,
++    gPciHiiHandle,
+     (*Command & PCI_BIT_8) != 0
+     );
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_FAST_BACK_2),
+-    HiiHandle,
++    gPciHiiHandle,
+     (*Command & PCI_BIT_9) != 0
+     );
+@@ -2230,34 +2233,34 @@
+ {
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_BRIDGE_CONTROL),
+-    HiiHandle,
++    gPciHiiHandle,
+     INDEX_OF (BridgeControl),
+     *BridgeControl
+     );
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_PARITY_ERROR),
+-    HiiHandle,
++    gPciHiiHandle,
+     (*BridgeControl & PCI_BIT_0) != 0
+     );
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_SERR_ENABLE),
+-    HiiHandle,
++    gPciHiiHandle,
+     (*BridgeControl & PCI_BIT_1) != 0
+     );
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_ISA_ENABLE),
+-    HiiHandle,
++    gPciHiiHandle,
+     (*BridgeControl & PCI_BIT_2) != 0
+     );
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_VGA_ENABLE),
+-    HiiHandle,
++    gPciHiiHandle,
+     (*BridgeControl & PCI_BIT_3) != 0
+     );
+   PrintToken (
+     STRING_TOKEN (STR_PCI2_MASTER_ABORT),
+-    HiiHandle,
++    gPciHiiHandle,
+     (*BridgeControl & PCI_BIT_5) != 0
+     );
+@@ -2268,49 +2271,49 @@
+   if (HeaderType == PciP2pBridge) {
+     PrintToken (
+       STRING_TOKEN (STR_PCI2_SECONDARY_BUS_RESET),
+-      HiiHandle,
++      gPciHiiHandle,
+       (*BridgeControl & PCI_BIT_6) != 0
+       );
+     PrintToken (
+       STRING_TOKEN (STR_PCI2_FAST_ENABLE),
+-      HiiHandle,
++      gPciHiiHandle,
+       (*BridgeControl & PCI_BIT_7) != 0
+       );
+     PrintToken (
+       STRING_TOKEN (STR_PCI2_PRIMARY_DISCARD_TIMER),
+-      HiiHandle,
++      gPciHiiHandle,
+       (*BridgeControl & PCI_BIT_8) ? L"2^10" : L"2^15"
+       );
+     PrintToken (
+       STRING_TOKEN (STR_PCI2_SECONDARY_DISCARD_TIMER),
+-      HiiHandle,
++      gPciHiiHandle,
+       (*BridgeControl & PCI_BIT_9) ? L"2^10" : L"2^15"
+       );
+     PrintToken (
+       STRING_TOKEN (STR_PCI2_DISCARD_TIMER_STATUS),
+-      HiiHandle,
++      gPciHiiHandle,
+       (*BridgeControl & PCI_BIT_10) != 0
+       );
+     PrintToken (
+       STRING_TOKEN (STR_PCI2_DISCARD_TIMER_SERR),
+-      HiiHandle,
++      gPciHiiHandle,
+       (*BridgeControl & PCI_BIT_11) != 0
+       );
+   } else {
+     PrintToken (
+       STRING_TOKEN (STR_PCI2_CARDBUS_RESET),
+-      HiiHandle,
++      gPciHiiHandle,
+       (*BridgeControl & PCI_BIT_6) != 0
+       );
+     PrintToken (
+       STRING_TOKEN (STR_PCI2_IREQ_ENABLE),
+-      HiiHandle,
++      gPciHiiHandle,
+       (*BridgeControl & PCI_BIT_7) != 0
+       );
+     PrintToken (
+       STRING_TOKEN (STR_PCI2_WRITE_POSTING_ENABLE),
+-      HiiHandle,
++      gPciHiiHandle,
+       (*BridgeControl & PCI_BIT_10) != 0
+       );
+   }
+@@ -3077,7 +3080,7 @@
+     }
+     PrintToken (
+       PcieExplainList[Index].Token,
+-      HiiHandle,
++      gPciHiiHandle,
+       PcieExplainList[Index].Offset,
+       RegValue
+       );
+diff --ignore-file-name-case -Naur ShellR33/pci/pci.h GccShellR33/pci/pci.h
+--- ShellR33/pci/pci.h 2008-08-13 23:02:46.000000000 -0700
++++ GccShellR33/pci/pci.h      2009-09-22 19:19:20.000000000 -0700
+@@ -30,7 +30,7 @@
+     0x388da6c3, 0x3447, 0x4b1f, 0xa0, 0xba, 0xa9, 0xe8, 0xa2, 0x87, 0xf1, 0x76 \
+   }
+-#include "TIANO.h"
++#include "Tiano.h"
+ typedef enum {
+   PciDevice,
+diff --ignore-file-name-case -Naur ShellR33/pci/pci.inf GccShellR33/pci/pci.inf
+--- ShellR33/pci/pci.inf       2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/pci/pci.inf    2009-09-22 15:37:05.000000000 -0700
+@@ -41,7 +41,7 @@
+ [sources.common]
+   PciStrings.uni
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   pci.c
+   pci.h
+   pci_class.h
+@@ -49,17 +49,17 @@
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/pci/pci_class.c GccShellR33/pci/pci_class.c
+--- ShellR33/pci/pci_class.c   2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/pci/pci_class.c        2009-11-05 13:49:56.000000000 -0800
+@@ -27,10 +27,12 @@
+ #include STRING_DEFINES_FILE
++extern EFI_HII_HANDLE    gPciHiiHandle;
++
++
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
+ PCI_CLASS_ENTRY gClassStringList[];
+@@ -1417,7 +1419,7 @@
+     //
+     PrintToken (
+       STRING_TOKEN (STR_PCI_CLASS_THREE_VARS),
+-      HiiHandle,
++      gPciHiiHandle,
+       ClassStrings.BaseClass,
+       ClassStrings.SubClass,
+       ClassStrings.PIFClass
+@@ -1436,6 +1438,6 @@
+       );
+     OutputString[PCI_CLASS_STRING_LIMIT] = 0;
+-    PrintToken (STRING_TOKEN (STR_PCI_CLASS_ONE_VARS), HiiHandle, OutputString);
++    PrintToken (STRING_TOKEN (STR_PCI_CLASS_ONE_VARS), gPciHiiHandle, OutputString);
+   }
+ }
+diff --ignore-file-name-case -Naur ShellR33/pci/pci_class.h GccShellR33/pci/pci_class.h
+--- ShellR33/pci/pci_class.h   2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/pci/pci_class.h        2009-09-22 19:19:20.000000000 -0700
+@@ -24,7 +24,7 @@
+ #ifndef _PCI_CLASS_H_
+ #define _PCI_CLASS_H_
+-#include "TIANO.h"  // for UINT32 etc.
++#include "Tiano.h"  // for UINT32 etc.
+ #define PCI_CLASS_STRING_LIMIT  54
+ //
+ // Printable strings for Pci class code
+diff --ignore-file-name-case -Naur ShellR33/Ping/Ping.c GccShellR33/Ping/Ping.c
+--- ShellR33/Ping/Ping.c       2008-10-06 00:03:04.000000000 -0700
++++ GccShellR33/Ping/Ping.c    2009-11-05 13:49:56.000000000 -0800
+@@ -20,14 +20,14 @@
+ --*/
+ #include "EfiShellLib.h"
+-#include "CpuFuncs.h"
++//#include "CpuFuncs.h"
+ #include EFI_ARCH_PROTOCOL_DEFINITION (Cpu)
+ #include EFI_PROTOCOL_DEFINITION (Ip4)
+ #include "Ping.h"
+ #include STRING_DEFINES_FILE
+ extern UINT8 STRING_ARRAY_NAME[];
+-EFI_HII_HANDLE  HiiHandle;
++static EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID  EfiPingGuid = EFI_PING_GUID;
+ SHELL_VAR_CHECK_ITEM  PingCheckList[] = {
+@@ -66,6 +66,8 @@
+ UINT32            RttMin;
+ UINT32            RttMax;
++EFI_CPU_ARCH_PROTOCOL  *gCpu = NULL;
++
+ STATIC
+ UINT64
+ GetTimerValue (
+@@ -87,7 +89,22 @@
+ --*/
+ {
+-  return EfiReadTsc ();
++  static UINT64          CurrentTick = 0;
++  UINT64                 TimerPeriod;
++  EFI_STATUS             Status;
++
++  ASSERT (gCpu != NULL);
++
++  Status = gCpu->GetTimerValue (gCpu, 0, &CurrentTick, &TimerPeriod);
++  if (EFI_ERROR (Status)) {
++    //
++    // The WinntGetTimerValue will return EFI_UNSUPPORTED. Set the
++    // TimerPeriod by ourselves.
++    //
++    CurrentTick += 1000000;
++  }
++  
++  return CurrentTick;
+ }
+ STATIC
+@@ -113,19 +130,18 @@
+ --*/
+ {
+   EFI_STATUS             Status;
+-  EFI_CPU_ARCH_PROTOCOL  *Cpu;
+   UINT64                 CurrentTick;
+   UINT64                 TimerPeriod;
+   //
+   // Locate the Cpu Arch Protocol.
+   //
+-  Status = BS->LocateProtocol (&gEfiCpuArchProtocolGuid, NULL, &Cpu);
++  Status = BS->LocateProtocol (&gEfiCpuArchProtocolGuid, NULL, (VOID **)&gCpu);
+   if (EFI_ERROR (Status)) {
+     return Status;
+   }
+-  Status = Cpu->GetTimerValue (Cpu, 0, &CurrentTick, &TimerPeriod);
++  Status = gCpu->GetTimerValue (gCpu, 0, &CurrentTick, &TimerPeriod);
+   if (EFI_ERROR (Status)) {
+     //
+     // The WinntGetTimerValue will return EFI_UNSUPPORTED. Set the
+@@ -138,7 +154,7 @@
+   // The TimerPeriod is in femtosecond (1 femtosecond is  1e-15 second), so 1e+12
+   // is divided by TimerPeriod to produce the Feq in tick/ms.
+   //
+-  Frequency = DivU64x32 (1000000000000, (UINTN) TimerPeriod, NULL);
++  Frequency = DivU64x32 (1000000000000ULL, (UINTN) TimerPeriod, NULL);
+   return EFI_SUCCESS;
+ }
+@@ -787,7 +803,7 @@
+   EFI_STATUS                    Status;
+   EFI_SERVICE_BINDING_PROTOCOL  *Ip4Sb;
+-  Status = BS->LocateProtocol (&gEfiIp4ServiceBindingProtocolGuid, NULL, &Ip4Sb);
++  Status = BS->LocateProtocol (&gEfiIp4ServiceBindingProtocolGuid, NULL, (VOID **)&Ip4Sb);
+   if (EFI_ERROR (Status)) {
+     return Status;
+   }
+@@ -844,7 +860,7 @@
+         ChildHandle
+         );
+-  BS->LocateProtocol (&gEfiIp4ServiceBindingProtocolGuid, NULL, &Ip4Sb);
++  BS->LocateProtocol (&gEfiIp4ServiceBindingProtocolGuid, NULL, (VOID **)&Ip4Sb);
+   Ip4Sb->DestroyChild (Ip4Sb, ChildHandle);
+ }
+diff --ignore-file-name-case -Naur ShellR33/Ping/Ping.inf GccShellR33/Ping/Ping.inf
+--- ShellR33/Ping/Ping.inf     2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/Ping/Ping.inf  2009-09-22 15:37:05.000000000 -0700
+@@ -25,24 +25,24 @@
+ COMPONENT_TYPE       = APPLICATION
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   PingStrings.uni
+   Ping.h
+   Ping.c
+ [includes.common]
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(EDK_SOURCE)\Foundation\Library\Dxe\Include
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(EDK_SOURCE)/Foundation/Library/Dxe/Include
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+@@ -52,7 +52,7 @@
+   ArchProtocolLib
+   EdkGuidLib
+   EdkFrameworkGuidLib
+-  EfiDriverLib
++#  EfiDriverLib
+ [libraries.Ia32]
+   CpuIA32Lib
+diff --ignore-file-name-case -Naur ShellR33/reset/reset.inf GccShellR33/reset/reset.inf
+--- ShellR33/reset/reset.inf   2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/reset/reset.inf        2009-09-22 15:37:05.000000000 -0700
+@@ -40,24 +40,24 @@
+ [sources.common]
+-   ..\ShCommonStrings.uni   
++   ../ShCommonStrings.uni   
+    ResetStrings.uni
+    Reset.c
+    Reset.h 
+                                           
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/rm/rm.inf GccShellR33/rm/rm.inf
+--- ShellR33/rm/rm.inf 2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/rm/rm.inf      2009-09-22 15:37:05.000000000 -0700
+@@ -41,23 +41,23 @@
+ [sources.common]
+    RmStrings.uni      
+-   ..\ShCommonStrings.uni   
++   ../ShCommonStrings.uni   
+    rm.h                        
+    rm.c                 
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/sermode/sermode.c GccShellR33/sermode/sermode.c
+--- ShellR33/sermode/sermode.c 2006-08-07 02:14:38.000000000 -0700
++++ GccShellR33/sermode/sermode.c      2009-11-05 13:49:56.000000000 -0800
+@@ -35,7 +35,7 @@
+ #include EFI_PROTOCOL_DEFINITION (SerialIo)
+-EFI_HII_HANDLE  HiiHandle;
++static EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiSermodeGuid = EFI_SERMODEB_GUID;
+ SHELL_VAR_CHECK_ITEM    SermodeCheckList[] = {
+   {
+@@ -104,7 +104,7 @@
+     }
+-    Status = BS->HandleProtocol (Handles[Index], &gEfiSerialIoProtocolGuid, &SerialIo);
++    Status = BS->HandleProtocol (Handles[Index], &gEfiSerialIoProtocolGuid, (VOID **)&SerialIo);
+     if (!EFI_ERROR (Status)) {
+       switch (SerialIo->Mode->Parity) {
+       case DefaultParity:
+@@ -454,7 +454,7 @@
+       continue;
+     }
+-    Status = BS->HandleProtocol (Handles[Index], &gEfiSerialIoProtocolGuid, &SerialIo);
++    Status = BS->HandleProtocol (Handles[Index], &gEfiSerialIoProtocolGuid, (VOID **)&SerialIo);
+     if (!EFI_ERROR (Status)) {
+       Status = SerialIo->SetAttributes (
+                           SerialIo,
+diff --ignore-file-name-case -Naur ShellR33/sermode/sermode.inf GccShellR33/sermode/sermode.inf
+--- ShellR33/sermode/sermode.inf       2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/sermode/sermode.inf    2009-09-22 15:37:05.000000000 -0700
+@@ -40,24 +40,24 @@
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   SermodeStrings.uni
+   sermode.c
+   sermode.h
+  
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/Shell.inf GccShellR33/Shell.inf
+--- ShellR33/Shell.inf 2008-08-13 23:02:46.000000000 -0700
++++ GccShellR33/Shell.inf      2009-11-07 12:33:52.000000000 -0800
+@@ -25,179 +25,190 @@
+ COMPONENT_TYPE       = APPLICATION
+ [sources.common]
+-  Library\ShellDebug.c
+-  Library\DPath.c
+-  Library\Init.c
+-  Library\Lock.c
+-  Library\Str.c
+-  Library\IO.c
+-  Library\Mem.c
+-  Library\Misc.c
+-  Library\Data.c
+-  Library\RtData.c
+-  Library\ShellEnvInt.c
+-  Library\Handle.c
+-  Library\FileIO.c
+-  Library\ConsistMapping.c
+-  Library\CRC.c
+-  Library\Event.c
+-  Library\Perf.c
+-  Library\VarCheck.c
+-  Library\HiiSupport.c  
+-
+-  newshell\NshellStrings.uni
+-  newshell\init.c
+-  newshell\nshell.h
+-  newshell\fakehii.c
++  Library/ShellDebug.c
++  Library/DPath.c
++  Library/Init.c
++  Library/Lock.c
++  Library/Str.c
++  Library/IO.c
++  Library/Mem.c
++  Library/Misc.c
++  Library/Data.c
++  Library/RtData.c
++  Library/ShellEnvInt.c
++  Library/Handle.c
++  Library/FileIO.c
++  Library/ConsistMapping.c
++  Library/CRC.c
++  Library/Event.c
++  Library/Perf.c
++  Library/VarCheck.c
++  Library/HiiSupport.c  
++
++  newshell/NshellStrings.uni
++  newshell/init.c
++  newshell/nshell.h
++  newshell/fakehii.c  
++  newshell/DebugAssert.c
++
+   ShCommonStrings.uni
+-  shellenv\ShellenvHelpStrings.uni
+-  shellenv\ShellenvStrings.uni
+-  shellenv\ScriptCmdStrings.uni
+-  shellenv\ConnectStrings.uni
+-  shellenv\EchoStrings.uni
+-  shellenv\HelpStrings.uni
+-  shellenv\MapStrings.uni
+-  shellenv\CdStrings.uni
+-  shellenv\DhStrings.uni
+-  
+-  shellenv\cmddisp.c
+-  shellenv\connect.c
+-  shellenv\data.c
+-  shellenv\exec.c
+-  shellenv\init.c
+-  shellenv\protid.c
+-  shellenv\var.c
+-  shellenv\conio.c
+-  shellenv\consoleproxy.c
+-  shellenv\handle.c
+-  shellenv\dprot.c
+-  shellenv\map.c
+-  shellenv\marg.c
+-  shellenv\batch.c
+-  shellenv\if.c
+-  shellenv\goto.c
+-  shellenv\echo.c
+-  shellenv\pause.c
+-  shellenv\for.c
+-  shellenv\wait.c
+-  shellenv\help.c
+-  shellenv\shelle.h
+-  shellenv\shellenvguid.h
+-  shellenv\parsecmd.c
+-  shellenv\shift.c
++  shellenv/ShellenvHelpStrings.uni
++  shellenv/ShellenvStrings.uni
++  shellenv/ScriptCmdStrings.uni
++  shellenv/ConnectStrings.uni
++  shellenv/EchoStrings.uni
++  shellenv/HelpStrings.uni
++  shellenv/MapStrings.uni
++  shellenv/CdStrings.uni
++  shellenv/DhStrings.uni
++  
++  shellenv/cmddisp.c
++  shellenv/connect.c
++  shellenv/data.c
++  shellenv/exec.c
++  shellenv/init.c
++  shellenv/protid.c
++  shellenv/var.c
++  shellenv/conio.c
++  shellenv/consoleproxy.c
++  shellenv/handle.c
++  shellenv/dprot.c
++  shellenv/map.c
++  shellenv/marg.c
++  shellenv/batch.c
++  shellenv/if.c
++  shellenv/goto.c
++  shellenv/echo.c
++  shellenv/pause.c
++  shellenv/for.c
++  shellenv/wait.c
++  shellenv/help.c
++  shellenv/shelle.h
++  shellenv/shellenvguid.h
++  shellenv/parsecmd.c
++  shellenv/shift.c
+  
+-  unload\UnloadStrings.uni
+-  unload\unload.c
++  unload/UnloadStrings.uni
++  unload/unload.c
+   
+-  attrib\AttribStrings.uni
+-  attrib\attrib.c
+-  attrib\attrib.h
+-
+-  cls\clsstrings.uni
+-  cls\cls.c
+-
+-  cp\CpStrings.uni
+-  cp\cp.h
+-  cp\cp.c
++  attrib/AttribStrings.uni
++  attrib/attrib.c
++  attrib/attrib.h
++
++  cls/clsstrings.uni
++  cls/cls.c
++
++  cp/CpStrings.uni
++  cp/cp.h
++  cp/cp.c
+  
+-  date\DateStrings.uni
+-  date\date.c
+-  date\date.h
+-
+-  load\LoadStrings.uni
+-  load\load.c
+-  load\load.h
+-
+-  ls\LsStrings.uni
+-  ls\ls.h
+-  ls\ls.c
+-
+-  mkdir\MkdirStrings.uni
+-  mkdir\mkdir.c
+-  mkdir\mkdir.h
+-
+-  mv\MvStrings.uni
+-  mv\mv.c
+-  mv\mv.h
++  date/DateStrings.uni
++  date/date.c
++  date/date.h
++
++  load/LoadStrings.uni
++  load/load.c
++  load/load.h
++
++  ls/LsStrings.uni
++  ls/ls.h
++  ls/ls.c
++
++  mkdir/MkdirStrings.uni
++  mkdir/mkdir.c
++  mkdir/mkdir.h
++
++  mv/MvStrings.uni
++  mv/mv.c
++  mv/mv.h
+  
+-  reset\ResetStrings.uni
+-  reset\reset.c
+-  reset\reset.h
+-  
+-  rm\RmStrings.uni
+-  rm\rm.h
+-  rm\rm.c
+-  
+-  type\TypeStrings.uni
+-  type\type.c
+-  type\type.h
+-  time\TimeStrings.uni
+-  time\time.c
+-  time\time.h
+-
+-  touch\TouchStrings.uni
+-  touch\touch.c
+-  touch\touch.h
+-
+-  vol\VolStrings.uni
+-  vol\vol.c
+-  vol\vol.h
+-
+-  ver\VerStrings.uni
+-  ver\ver.c
+-  ver\ver.h
+-  
+-  drivers\driversStrings.uni
+-  drivers\drivers.c
+-  drivers\drivers.h
+-  
+-  drvcfg\DrvcfgStrings.uni
+-  drvcfg\drvcfg.c
+-  drvcfg\drvcfg.h
++  reset/ResetStrings.uni
++  reset/reset.c
++  reset/reset.h
++  
++  rm/RmStrings.uni
++  rm/rm.h
++  rm/rm.c
++  
++  type/TypeStrings.uni
++  type/type.c
++  type/type.h
++  time/TimeStrings.uni
++  time/time.c
++  time/time.h
++
++  touch/TouchStrings.uni
++  touch/touch.c
++  touch/touch.h
++
++  vol/VolStrings.uni
++  vol/vol.c
++  vol/vol.h
++
++  ver/VerStrings.uni
++  ver/ver.c
++  ver/ver.h
++  
++  drivers/driversStrings.uni
++  drivers/drivers.c
++  drivers/drivers.h
++  
++  drvcfg/DrvcfgStrings.uni
++  drvcfg/drvcfg.c
++  drvcfg/drvcfg.h
+         
+-  drvdiag\DrvdiagStrings.uni
+-  drvdiag\drvdiag.c
+-  drvdiag\drvdiag.h
++  drvdiag/DrvdiagStrings.uni
++  drvdiag/drvdiag.c
++  drvdiag/drvdiag.h
+  
+ [sources.ia32]
+-  ver\ia32\ver32.c
+-  Library\ia32\math.c
+-  Library\ia32\initplat.c
++  ver/Ia32/ver32.c
++  Library/Ia32/math.c
++  Library/Ia32/initplat.c
++  Library/Ia32/DivU64x32Remainder.S  | GCC
++  Library/Ia32/LShiftU64.S           | GCC
++  Library/Ia32/RShiftU64.S           | GCC
++  Library/Ia32/MultU64x32.S          | GCC
+ [sources.ipf]
+-  ver\ipf\ver64.c
+-  Library\ipf\math.c
+-  Library\ipf\initplat.c
+-  Library\ipf\palproc.s
+-  Library\ipf\salpal.c
++  ver/ipf/ver64.c
++  Library/ipf/math.c
++  Library/ipf/initplat.c
++  Library/ipf/palproc.s
++  Library/ipf/salpal.c
+ [sources.EBC]
+-  ver\ebc\verEbc.c
+-  Library\EBC\math.c
+-  Library\EBC\initplat.c
++  ver/ebc/verEbc.c
++  Library/EBC/math.c
++  Library/EBC/initplat.c
+ [sources.x64]
+-  ver\ia32\ver32.c
+-  Library\ipf\math.c
+-  Library\ia32\initplat.c
++  ver/ia32/ver32.c
++  Library/ipf/math.c
++  Library/ia32/initplat.c
++
++[sources.ARM]
++  ver/ia32/ver32.c
++  Library/ipf/math.c
++  Library/ia32/initplat.c
+ [includes.common]
+   .
+-  .\Inc
+-  .\ver
+-  .\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
++  ./Inc
++  ./ver
++  ./Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
+   $(DEST_DIR)
+ [libraries.common]
+diff --ignore-file-name-case -Naur ShellR33/shellenv/conio.c GccShellR33/shellenv/conio.c
+--- ShellR33/shellenv/conio.c  2009-08-13 22:57:02.000000000 -0700
++++ GccShellR33/shellenv/conio.c       2009-10-14 16:36:30.000000000 -0700
+@@ -1,6 +1,6 @@
+ /*++
+-Copyright (c) 2005 - 2009, Intel Corporation                                                         
++Copyright (c) 2005 - 2008, Intel Corporation                                                         
+ All rights reserved. This program and the accompanying materials                          
+ are licensed and made available under the terms and conditions of the BSD License         
+ which accompanies this distribution. The full text of the license may be found at         
+@@ -890,14 +890,7 @@
+     // If we need to update the output do so now
+     //
+     if (Update != -1) {
+-      if ((ConOut->Mode->CursorColumn != (INT32) Column) ||  (ConOut->Mode->CursorRow != (INT32) Row)) {
+-        PrintAt (Column, Row, L"%s%.*s", Str + Update, Delete, L"");
+-      } else {
+-        //
+-        // Don't need to SetCursorPosition() if the current cursor position is not changed 
+-        //
+-        PrintAt ((UINTN) -1, (UINTN) -1, L"%s%.*s", Str + Update, Delete, L"");
+-      }
++      PrintAt (Column, Row, L"%s%.*s", Str + Update, Delete, L"");
+       Len = StrLen (Str);
+       if (Delete) {
+@@ -953,12 +946,10 @@
+       Delete = 0;
+     }
+-    if ((ConOut->Mode->CursorColumn != (INT32) Column) ||  (ConOut->Mode->CursorRow != (INT32) Row)) {
+-      //
+-      // Set the cursor position for this key
+-      //
+-      ConOut->SetCursorPosition (ConOut, Column, Row);
+-    }
++    //
++    // Set the cursor position for this key
++    //
++    ConOut->SetCursorPosition (ConOut, Column, Row);
+   } while (!Done);
+   //
+diff --ignore-file-name-case -Naur ShellR33/shellenv/dprot.c GccShellR33/shellenv/dprot.c
+--- ShellR33/shellenv/dprot.c  2008-11-24 21:49:58.000000000 -0800
++++ GccShellR33/shellenv/dprot.c       2009-09-22 19:19:20.000000000 -0700
+@@ -23,7 +23,7 @@
+ #include "shelle.h"
+ #include "shellenvguid.h"
+-#include "acpi.h"
++#include "Acpi.h"
+ STATIC CHAR16 *SEnvDP_IlleagalStr[] = { L"Illegal" };
+@@ -1294,6 +1294,9 @@
+     case EfiIsaAcpiResourceInterrupt:
+       PrintToken (STRING_TOKEN (STR_SHELLENV_DPROT_INT), HiiEnvHandle);
+       break;
++      
++    default:
++      break;
+     }
+     if (IsaIo->ResourceList->ResourceItem[Index].StartRange == IsaIo->ResourceList->ResourceItem[Index].EndRange) {
+diff --ignore-file-name-case -Naur ShellR33/shellenv/exec.c GccShellR33/shellenv/exec.c
+--- ShellR33/shellenv/exec.c   2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/shellenv/exec.c        2009-09-22 15:37:05.000000000 -0700
+@@ -1868,7 +1868,7 @@
+     return ;
+   }
+   //
+-  // Processing foo: or foo:\
++  // Processing foo: or foo:/
+   //
+   if (PathPos != -1 && Ptr1 == NULL) {
+     return ;
+diff --ignore-file-name-case -Naur ShellR33/shellenv/for.c GccShellR33/shellenv/for.c
+--- ShellR33/shellenv/for.c    2006-06-12 23:18:21.000000000 -0700
++++ GccShellR33/shellenv/for.c 2009-09-22 15:37:05.000000000 -0700
+@@ -24,309 +24,8 @@
+ #include "shelle.h"
+ #include "shellenvguid.h"
+-/*
+-BOOLEAN
+-CheckInterValue (
+-  IN CHAR16                        *wszValueStr,
+-  OUT INT32                        *pnValue
+-  )
+-{
+-  UINTN                                    uPos = 0;
+-  INT32                                    nSign = 0;
+-  UINTN                                    uDigitStart = 0;
+-  BOOLEAN                                bDigitFound = FALSE;
+-  
+-  while (wszValueStr[uPos]) {
+-    if (L'+' == wszValueStr[uPos] || L'-' == wszValueStr[uPos]) {
+-      if (0 != nSign) {
+-        // sign already resolved, error
+-        return FALSE;
+-      }
+-      nSign = (L'+' == wszValueStr[uPos]) ? 1 : -1;
+-      uDigitStart = uPos + 1;
+-    } else if (wszValueStr[uPos] < L'0' || wszValueStr[uPos] > L'9') {
+-      // not digits or sign symbol, error
+-      return FALSE;
+-    } else {
+-      if (0 == nSign) {
+-                // no sign symbol before the first digit, take it as postive
+-        nSign = 1;
+-        uDigitStart = uPos;
+-      }
+-      bDigitFound = TRUE;
+-    }
+-    uPos++;
+-  } // end of while
+-
+-  if (FALSE == bDigitFound) {
+-    return FALSE;
+-  }
+-
+-  *pnValue = Atoi (wszValueStr + uDigitStart) * nSign;
+-  return TRUE;
+-}
+-
+-BOOLEAN
+-ExtractFromArg (
+-  IN CHAR16                             *wszRng,
+-  OUT INT32                             *pnStart,
+-  OUT INT32                             *pnEnd,
+-  OUT INT32                             *pnStep
+-  )
+-{
+-  UINTN                                     uStrLen = 0;
+-  UINTN                                     uPos = 1;
+-  CHAR16                                   *pBreak1 = NULL;
+-  CHAR16                                   *pBreak2 = NULL;
+-  INT32                                      nTmp;
+-  
+-
+-  uStrLen = StrLen (wszRng);
+-  // there should be at least 5 characters
+-  if (uStrLen < 5) {
+-    return FALSE;
+-  }
+-
+-  if (L'<' != wszRng[0] || L'>' != wszRng[uStrLen - 1]) {
+-    return FALSE;
+-  }
+-
+-  while (wszRng[uPos] != L'>') {
+-    if (L',' == wszRng[uPos]) {
+-      if (NULL == pBreak1) {
+-        pBreak1 = &wszRng[uPos];
+-      } else if (NULL == pBreak2) {
+-        pBreak2 = &wszRng[uPos];
+-        break;
+-      }
+-    }
+-  } // end of while
+-
+-  // no ',' found
+-  if (NULL == pBreak1) {
+-    return FALSE;
+-  } else if (pBreak1 == &wszRng[1]) {
+-    // nothing between '<' and first ','
+-    return FALSE;
+-  } else if (pBreak1 == &wszRng[uStrLen - 2]) {
+-    // nothing between first ',' and '>'
+-    return FALSE;
+-  } else if (pBreak1 - &wszRng[0] > 7) {
+-    // too big number
+-    return FALSE;
+-  }
+-  
+-  if (NULL != pBreak2) {
+-    if (pBreak2 = pBreak1 + 1) {
+-      // nothing between adjacent ','
+-      return FALSE;
+-    } else if (pBreak2 == &wszRng[uStrLen - 2]) {
+-      // nothing between second ',' and '>'
+-      return FALSE;
+-    } else if (pBreak2 - pBreak1 > 7) {
+-      // too big number
+-      return FALSE;
+-    }
+-  }
+-  *pBreak1 = 0;
+-  if (FALSE == CheckInterValue(&wszRng[1], &nTmp)) {
+-    *pBreak1 = L',';
+-    return FALSE;
+-  } else {
+-    *pBreak1 = L',';
+-    *pnStart = nTmp;
+-  }
+-
+-  if (NULL != pBreak2) {
+-    *pBreak2 = 0;
+-    if (FALSE == CheckInterValue(pBreak1 + 1, &nTmp)) {
+-      *pBreak2 = L',';
+-      return FALSE;
+-    } else {
+-      *pBreak2 = L',';
+-      *pnEnd = nTmp;
+-    }
+-  } else {
+-    pBreak2 = pBreak1;
+-  }
+-  
+-  if (&wszRng[uStrLen - 1] - pBreak2 > 7) {
+-    // too big number
+-    return FALSE;
+-  }
+-
+-  wszRng[uStrLen - 1] = 0;
+-  if (FALSE == CheckInterValue(pBreak2 + 1, &nTmp)) {
+-    wszRng[uStrLen - 1] = L',';
+-    return FALSE;
+-  } else {
+-    wszRng[uStrLen - 1] = L',';
+-    if (pBreak1 == pBreak2) {
+-      *pnEnd = nTmp;
+-      *pnStep = 1;
+-    } else {
+-      *pnStep = nTmp;
+-    }
+-  }  
+-  return TRUE;
+-}
+-
+-EFI_STATUS
+-SEnvBatchPushFor2Stack (
+-  IN  EFI_BATCH_STMT_TYPE            StmtType,
+-  IN  BOOLEAN                        PushExtraStack
+-  )
+-/*++
+-
+-Routine Description:
+-  Push a node into statement stack.
+-
+-Arguments:
+-  StmtType         Statement type to be pushed
+-  PushExtraStack   Push into extra statement stack or current statement stack
+-
+-Returns:
+-  EFI_SUCCESS      The function finished sucessfully
+-
+---
+-{
+-  EFI_BATCH_STATEMENT                *Stmt;
+-  EFI_LIST_ENTRY                     FileList;
+-  EFI_LIST_ENTRY                     *Link;
+-  EFI_BATCH_SCRIPT                   *Script;
+-  EFI_BATCH_VAR_VALUE                *VarValue;
+-  SHELL_FILE_ARG                     *Arg;
+-  INTN                                  Index;
+-  EFI_STATUS                         Status;
+-  CHAR16                             Char;
+-
+-  INT32                               nStart, nEnd, nStep;
+-  CHAR16                             wszValue[10];
+-  
+-  Status   = EFI_SUCCESS;
+-  VarValue = NULL;
+-
+-  // this function only deals with 'for %var run <...>'
+-  if (StmtFor != StmtType) {
+-    return EFI_ABORTED;
+-  }
+-  
+-  if (IsListEmpty (&ScriptStack.ScriptList)) {
+-    return EFI_ABORTED;
+-  }
+-  
+-  Script = CR (
+-             ScriptStack.ScriptList.Flink, 
+-             EFI_BATCH_SCRIPT, 
+-             Link,
+-             EFI_BATCH_SCRIPT_SIGNATURE
+-             );
+-
+-  Stmt = AllocateZeroPool (sizeof (EFI_BATCH_STATEMENT));
+-  if (Stmt == NULL) {
+-    return EFI_OUT_OF_RESOURCES;
+-  }
+-
+-  Stmt->Signature    = EFI_BATCH_STMT_SIGNATURE;
+-  Stmt->StmtType     = StmtType;
+-  Stmt->BeginFilePos = Script->FilePosition;
+-  InitializeListHead (&Stmt->StmtInfo.ForInfo.ValueList);
+-
+-  //
+-  // If we're pushing if statement to extra statement stack, set condition 
+-  // to TRUE, for in case we need to jump into this statement later, the 
+-  // condition should be treated as TRUE.
+-  //  
+-  if (Stmt->StmtType == StmtFor) {
+-    Stmt->StmtInfo.ForInfo.BeginLineNum = SEnvGetLineNumber();
+-  }
+-
+-  //
+-  // if we're pushing FOR statement to the current statement stack, expand the
+-  // command line argument to a list of variable values.
+-  //
+-  if (Stmt->StmtType == StmtFor && 
+-      !PushExtraStack && 
+-      SEnvBatchGetCondition ()
+-      ) {
+-
+-    if (FALSE == ExtractFromArg(SI->Argv[3], &nStart, &nEnd, &nStep)) {
+-      Status = EFI_INVALID_PARAMETER;
+-      goto Done;
+-    }
+-
+-    Stmt->StmtInfo.ForInfo.VariableName[0] = SI->Argv[1][0];
+-    
+-    for (Index = nStart; Index <= nEnd; Index += nStep) {     
+-        VarValue = AllocateZeroPool (sizeof(EFI_BATCH_VAR_VALUE));
+-        if (VarValue == NULL) {
+-          Status = EFI_OUT_OF_RESOURCES;
+-          goto Done;
+-        }
+-
+-        SPrint (wszValue, sizeof(wszValue), "%d", Index);
+-        VarValue->Signature = EFI_BATCH_VAR_SIGNATURE;        
+-        VarValue->Value = AllocateZeroPool (StrLen (wszValue));
+-        if (VarValue->Value == NULL) {
+-          Status = EFI_OUT_OF_RESOURCES;
+-          goto Done;
+-        }
+-        StrCpy (VarValue->Value, wszValue]);
+-     
+-        InsertTailList (&Stmt->StmtInfo.ForInfo.ValueList, &VarValue->Link);     
+-    }
+-  }
+-  
+-  //
+-  // Push the node to stack and increment the nest level
+-  //
+-  if (PushExtraStack) {
+-    InsertHeadList (&ExtraStmtStack.StmtList, &Stmt->Link);
+-    ExtraStmtStack.NestLevel ++;
+-  
+-  } else {
+-    InsertHeadList (&Script->StmtStack.StmtList, &Stmt->Link);
+-    Script->StmtStack.NestLevel ++;
+-  }
+-
+-Done:
+-  if (EFI_ERROR (Status)) {
+-    if (VarValue != NULL) {
+-      if (VarValue->Value != NULL) {
+-        FreePool (VarValue->Value);
+-      }
+-      FreePool (VarValue);
+-    }
+-    
+-    if (Stmt->StmtType == StmtFor) {
+-      while (!IsListEmpty (&Stmt->StmtInfo.ForInfo.ValueList)) {
+-        Link = Stmt->StmtInfo.ForInfo.ValueList.Flink;
+-        
+-        VarValue = CR (
+-                     Link, 
+-                     EFI_BATCH_VAR_VALUE, 
+-                     Link, 
+-                     EFI_BATCH_VAR_SIGNATURE
+-                     );
+-                     
+-        if (VarValue->Value != NULL) {
+-          FreePool (VarValue->Value);
+-        }
+-        
+-        RemoveEntryList (&VarValue->Link);
+-        FreePool (VarValue);
+-      }
+-    }
+-    
+-    ShellFreeFileList (&FileList);
+-    FreePool (Stmt);
+-  }
+-    
+-  return Status;
+-}
+-*/
+ EFI_STATUS
+ SEnvCmdForRun (
+   IN EFI_HANDLE                         hImageHandle,
+diff --ignore-file-name-case -Naur ShellR33/shellenv/init.c GccShellR33/shellenv/init.c
+--- ShellR33/shellenv/init.c   2008-08-13 23:02:46.000000000 -0700
++++ GccShellR33/shellenv/init.c        2009-09-22 15:37:05.000000000 -0700
+@@ -143,7 +143,7 @@
+     Status = BS->HandleProtocol (
+                   mOldSEnv->Handle,
+                   &ShellEnvProtocol,
+-                  &(mOldSEnv->Interface)
++                  (VOID **)&(mOldSEnv->Interface)
+                   );
+     ASSERT (!EFI_ERROR (Status));
+     Status = BS->ReinstallProtocolInterface (
+diff --ignore-file-name-case -Naur ShellR33/shellenv/map.c GccShellR33/shellenv/map.c
+--- ShellR33/shellenv/map.c    2009-05-27 01:55:16.000000000 -0700
++++ GccShellR33/shellenv/map.c 2009-10-14 16:36:30.000000000 -0700
+@@ -2038,13 +2038,13 @@
+     goto Done;
+   }
+-  Status = BS->HandleProtocol (Handle, &gEfiBlockIoProtocolGuid, &BlockIo);
++  Status = BS->HandleProtocol (Handle, &gEfiBlockIoProtocolGuid, (VOID **)&BlockIo);
+   //
+   // This is just for NT32, because fsntx has no block io protocol installed
+   // but fsntx has installed simple file system protocol
+   //
+   if (EFI_ERROR (Status)) {
+-    Status = BS->HandleProtocol (Handle, &gEfiSimpleFileSystemProtocolGuid, &BlockIo);
++    Status = BS->HandleProtocol (Handle, &gEfiSimpleFileSystemProtocolGuid, (VOID **)&BlockIo);
+   }
+   if (EFI_ERROR (Status)) {
+diff --ignore-file-name-case -Naur ShellR33/shellenv/parsecmd.h GccShellR33/shellenv/parsecmd.h
+--- ShellR33/shellenv/parsecmd.h       2006-06-12 23:18:21.000000000 -0700
++++ GccShellR33/shellenv/parsecmd.h    2009-11-05 13:49:56.000000000 -0800
+@@ -103,4 +103,4 @@
+   IN OUT SHELL_PARSED_ARGS    *args
+   );
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/shellenv/protid.c GccShellR33/shellenv/protid.c
+--- ShellR33/shellenv/protid.c 2009-05-27 01:55:16.000000000 -0700
++++ GccShellR33/shellenv/protid.c      2009-09-22 15:37:05.000000000 -0700
+@@ -1146,7 +1146,7 @@
+ EFI_STATUS
+ GetDriverName (
+   EFI_HANDLE  DriverBindingHandle,
+-  UINT8       *Language,
++  CHAR8       *Language,
+   BOOLEAN     ImageName,
+   CHAR16      **DriverName
+   )
+@@ -1539,7 +1539,7 @@
+     DevicePath      = NULL;
+     BestDeviceName  = NULL;
+-    Status          = BS->HandleProtocol (Handle, &gEfiDevicePathProtocolGuid, &DevicePath);
++    Status          = BS->HandleProtocol (Handle, &gEfiDevicePathProtocolGuid, (VOID **)&DevicePath);
+     Print (L"\n");
+     PrintToken (STRING_TOKEN (STR_SHELLENV_PROTID_CONTROLLER_NAME), HiiEnvHandle);
+diff --ignore-file-name-case -Naur ShellR33/ShellFull.inf GccShellR33/ShellFull.inf
+--- ShellR33/ShellFull.inf     2008-08-13 23:02:46.000000000 -0700
++++ GccShellR33/ShellFull.inf  2009-11-07 12:33:52.000000000 -0800
+@@ -20,300 +20,310 @@
+ #--*/
+ [defines]
+-BASE_NAME            = Shell
+-FILE_GUID            = c57ad6b7-0515-40a8-9d21-551652854e37
++BASE_NAME            = ShellFull
++FILE_GUID            = 1903FB23-E526-4BDA-85E4-D68F2EEF0C20
+ COMPONENT_TYPE       = APPLICATION
+ [sources.common]
+-  Library\ShellDebug.c
+-  Library\DPath.c
+-  Library\Init.c
+-  Library\Lock.c
+-  Library\Str.c
+-  Library\IO.c
+-  Library\Mem.c
+-  Library\Misc.c
+-  Library\Data.c
+-  Library\RtData.c
+-  Library\ShellEnvInt.c
+-  Library\Handle.c
+-  Library\FileIO.c
+-  Library\ConsistMapping.c
+-  Library\CRC.c
+-  Library\Event.c
+-  Library\Perf.c
+-  Library\VarCheck.c
+-  Library\HiiSupport.c
+-
+-  newshell\NshellStrings.uni
+-  newshell\init.c
+-  newshell\nshell.h
+-  newshell\fakehii.c
++  Library/ShellDebug.c
++  Library/DPath.c
++  Library/Init.c
++  Library/Lock.c
++  Library/Str.c
++  Library/IO.c
++  Library/Mem.c
++  Library/Misc.c
++  Library/Data.c
++  Library/RtData.c
++  Library/ShellEnvInt.c
++  Library/Handle.c
++  Library/FileIO.c
++  Library/ConsistMapping.c
++  Library/CRC.c
++  Library/Event.c
++  Library/Perf.c
++  Library/VarCheck.c
++  Library/HiiSupport.c
++
++  newshell/NshellStrings.uni
++  newshell/init.c
++  newshell/nshell.h
++  newshell/fakehii.c
++  newshell/DebugAssert.c
+   ShCommonStrings.uni
+-  shellenv\ShellenvHelpStrings.uni
+-  shellenv\ShellenvStrings.uni
+-  shellenv\ScriptCmdStrings.uni
+-  shellenv\ConnectStrings.uni
+-  shellenv\EchoStrings.uni
+-  shellenv\HelpStrings.uni
+-  shellenv\MapStrings.uni
+-  shellenv\CdStrings.uni
+-  shellenv\DhStrings.uni
+-  
+-  shellenv\cmddisp.c
+-  shellenv\connect.c
+-  shellenv\data.c
+-  shellenv\exec.c
+-  shellenv\init.c
+-  shellenv\protid.c
+-  shellenv\var.c
+-  shellenv\conio.c
+-  shellenv\consoleproxy.c
+-  shellenv\handle.c
+-  shellenv\dprot.c
+-  shellenv\map.c
+-  shellenv\marg.c
+-  shellenv\batch.c
+-  shellenv\if.c
+-  shellenv\goto.c
+-  shellenv\echo.c
+-  shellenv\pause.c
+-  shellenv\for.c
+-  shellenv\wait.c
+-  shellenv\help.c
+-  shellenv\shelle.h
+-  shellenv\shellenvguid.h
+-  shellenv\parsecmd.c
+-  shellenv\shift.c
++  shellenv/ShellenvHelpStrings.uni
++  shellenv/ShellenvStrings.uni
++  shellenv/ScriptCmdStrings.uni
++  shellenv/ConnectStrings.uni
++  shellenv/EchoStrings.uni
++  shellenv/HelpStrings.uni
++  shellenv/MapStrings.uni
++  shellenv/CdStrings.uni
++  shellenv/DhStrings.uni
++  
++  shellenv/cmddisp.c
++  shellenv/connect.c
++  shellenv/data.c
++  shellenv/exec.c
++  shellenv/init.c
++  shellenv/protid.c
++  shellenv/var.c
++  shellenv/conio.c
++  shellenv/consoleproxy.c
++  shellenv/handle.c
++  shellenv/dprot.c
++  shellenv/map.c
++  shellenv/marg.c
++  shellenv/batch.c
++  shellenv/if.c
++  shellenv/goto.c
++  shellenv/echo.c
++  shellenv/pause.c
++  shellenv/for.c
++  shellenv/wait.c
++  shellenv/help.c
++  shellenv/shelle.h
++  shellenv/shellenvguid.h
++  shellenv/parsecmd.c
++  shellenv/shift.c
+  
+-  unload\UnloadStrings.uni
+-  unload\unload.c
++  unload/UnloadStrings.uni
++  unload/unload.c
+   
+-  attrib\AttribStrings.uni
+-  attrib\attrib.c
+-  attrib\attrib.h
+-
+-  cls\clsstrings.uni
+-  cls\cls.c
+-
+-  cp\CpStrings.uni
+-  cp\cp.h
+-  cp\cp.c
++  attrib/AttribStrings.uni
++  attrib/attrib.c
++  attrib/attrib.h
++
++  cls/clsstrings.uni
++  cls/cls.c
++
++  cp/CpStrings.uni
++  cp/cp.h
++  cp/cp.c
+  
+-  date\DateStrings.uni
+-  date\date.c
+-  date\date.h
+-
+-  load\LoadStrings.uni
+-  load\load.c
+-  load\load.h
+-
+-  ls\LsStrings.uni
+-  ls\ls.h
+-  ls\ls.c
+-
+-  mkdir\MkdirStrings.uni
+-  mkdir\mkdir.c
+-  mkdir\mkdir.h
+-
+-  mv\MvStrings.uni
+-  mv\mv.c
+-  mv\mv.h
++  date/DateStrings.uni
++  date/date.c
++  date/date.h
++
++  load/LoadStrings.uni
++  load/load.c
++  load/load.h
++
++  ls/LsStrings.uni
++  ls/ls.h
++  ls/ls.c
++
++  mkdir/MkdirStrings.uni
++  mkdir/mkdir.c
++  mkdir/mkdir.h
++
++  mv/MvStrings.uni
++  mv/mv.c
++  mv/mv.h
+  
+-  reset\ResetStrings.uni
+-  reset\reset.c
+-  reset\reset.h
+-  
+-  rm\RmStrings.uni
+-  rm\rm.h
+-  rm\rm.c
+-  
+-  type\TypeStrings.uni
+-  type\type.c
+-  type\type.h
+-  time\TimeStrings.uni
+-  time\time.c
+-  time\time.h
+-
+-  touch\TouchStrings.uni
+-  touch\touch.c
+-  touch\touch.h
+-
+-  vol\VolStrings.uni
+-  vol\vol.c
+-  vol\vol.h
+-
+-  ver\VerStrings.uni
+-  ver\ver.c
+-  ver\ver.h
+-  
+-  drivers\driversStrings.uni
+-  drivers\drivers.c
+-  drivers\drivers.h
+-  
+-  drvcfg\DrvcfgStrings.uni
+-  drvcfg\drvcfg.c
+-  drvcfg\drvcfg.h
++  reset/ResetStrings.uni
++  reset/reset.c
++  reset/reset.h
++  
++  rm/RmStrings.uni
++  rm/rm.h
++  rm/rm.c
++  
++  type/TypeStrings.uni
++  type/type.c
++  type/type.h
++  time/TimeStrings.uni
++  time/time.c
++  time/time.h
++
++  touch/TouchStrings.uni
++  touch/touch.c
++  touch/touch.h
++
++  vol/VolStrings.uni
++  vol/vol.c
++  vol/vol.h
++
++  ver/VerStrings.uni
++  ver/ver.c
++  ver/ver.h
++  
++  drivers/driversStrings.uni
++  drivers/drivers.c
++  drivers/drivers.h
++  
++  drvcfg/DrvcfgStrings.uni
++  drvcfg/drvcfg.c
++  drvcfg/drvcfg.h
+         
+-  drvdiag\DrvdiagStrings.uni
+-  drvdiag\drvdiag.c
+-  drvdiag\drvdiag.h
+-  
+-  comp\CompStrings.uni
+-  comp\comp.c
+-  
+-  dblk\dblkStrings.uni
+-  dblk\dblk.c
+-  dblk\efidump.c
++  drvdiag/DrvdiagStrings.uni
++  drvdiag/drvdiag.c
++  drvdiag/drvdiag.h
++  
++  comp/CompStrings.uni
++  comp/comp.c
++  
++  dblk/dblkStrings.uni
++  dblk/dblk.c
++  dblk/efidump.c
+  
+-  devices\DevicesStrings.uni
+-  devices\devices.c
++  devices/DevicesStrings.uni
++  devices/devices.c
+   
+-  devicetree\DevicetreeStrings.uni
+-  devicetree\devicetree.c
++  devicetree/DevicetreeStrings.uni
++  devicetree/devicetree.c
+   
+-  dmem\MemStrings.uni
+-  dmem\DebugStrings.uni  
+-  dmem\mem.c
+-  dmem\MemCommonPart.c
+-  dmem\efidump.c  
+-  
+-  dmpstore\DmpstoreStrings.uni
+-  dmpstore\dmpstore.c
+-  
+-  edit\EditStrings.uni
+-  edit\main.c
+-  edit\libFileBuffer.c
+-  edit\libEditor.c
+-  edit\libTitleBar.c
+-  edit\libStatusBar.c
+-  edit\libInputBar.c
+-  edit\libMenuBar.c
+-  edit\libMisc.c 
+-  
+-  eficompress\CompressStrings.uni
+-  eficompress\compressMain.c
+-  eficompress\compress.c   
+-  
+-  efidecompress\DecompressStrings.uni
+-  efidecompress\decompress.c
+-  
+-  err\ErrStrings.uni
+-  err\err.c
+-  
+-  guid\GuidStrings.uni
+-  guid\guid.c
+-  
+-  hexedit\HexeditStrings.uni
+-  hexedit\main.c
+-  hexedit\libBufferImage.c
+-  hexedit\libFileImage.c
+-  hexedit\libDiskImage.c
+-  hexedit\libMemImage.c
+-  hexedit\libEditor.c
+-  hexedit\libTitleBar.c
+-  hexedit\libStatusBar.c
+-  hexedit\libInputBar.c
+-  hexedit\libMenuBar.c
+-  hexedit\libClipBoard.c
+-  hexedit\libMisc.c
+-
+-  IfConfig\IfConfigStrings.uni
+-  IfConfig\IfConfig.c
+-  IfConfig\IfConfig.h
+-  IfConfig\ShellNetHelper.c
+-
+-  ipconfig\IpConfigStrings.uni
+-  ipconfig\IpConfig.c
+-  
+-  loadpcirom\LoadPciRomStrings.uni
+-  loadpcirom\LoadPciRom.c
+-  
+-  mem\MemStrings.uni
+-  mem\DebugStrings.uni  
+-  mem\mm.c
+-  mem\MemCommonPart.c
+-  mem\efidump.c  
+-  
+-  memmap\memmapStrings.uni
+-  memmap\memmap.c
+-  
+-  mm\MmStrings.uni
+-  mm\mm.c
+-  
+-  mode\ModeStrings.uni
+-  mode\mode.c
+-  
+-  mount\MountStrings.uni
+-  mount\mount.c
+-  
+-  openinfo\OPeninfoStrings.uni
+-  openinfo\openinfo.c
+-
+-  Ping\PingStrings.uni
+-  Ping\Ping.c
+-
+-  pci\PciStrings.uni
+-  pci\pci.c
+-  pci\pci_class.c
+-  
+-  sermode\SermodeStrings.uni
+-  sermode\sermode.c
+-  
+-  smbiosview\SmBiosViewStrings.uni
+-  smbiosview\QueryTable.c
+-  smbiosview\EventLogInfo.c
+-  smbiosview\PrintInfo.c
+-  smbiosview\LibSmbiosView.c
+-  smbiosview\smbiosview.c
+-  smbiosview\smbios.c
++  dmem/MemStrings.uni
++  dmem/DebugStrings.uni  
++  dmem/mem.c
++  dmem/MemCommonPart.c
++  dmem/efidump.c  
++  
++  dmpstore/DmpstoreStrings.uni
++  dmpstore/dmpstore.c
++  
++  edit/EditStrings.uni
++  edit/main.c
++  edit/libFileBuffer.c
++  edit/libEditor.c
++  edit/libTitleBar.c
++  edit/libStatusBar.c
++  edit/libInputBar.c
++  edit/libMenuBar.c
++  edit/libMisc.c 
++  
++  eficompress/CompressStrings.uni
++  eficompress/compressMain.c
++  eficompress/compress.c   
++  
++  efidecompress/DecompressStrings.uni
++  efidecompress/decompress.c
++  
++  err/ErrStrings.uni
++  err/err.c
++  
++  guid/GuidStrings.uni
++  guid/guid.c
++  
++  hexedit/HexeditStrings.uni
++  hexedit/main.c
++  hexedit/libBufferImage.c
++  hexedit/libFileImage.c
++  hexedit/libDiskImage.c
++  hexedit/libMemImage.c
++  hexedit/libEditor.c
++  hexedit/libTitleBar.c
++  hexedit/libStatusBar.c
++  hexedit/libInputBar.c
++  hexedit/libMenuBar.c
++  hexedit/libClipBoard.c
++  hexedit/libMisc.c
++
++  IfConfig/IfConfigStrings.uni
++  IfConfig/IfConfig.c
++  IfConfig/IfConfig.h
++  IfConfig/ShellNetHelper.c
++
++  ipconfig/IpConfigStrings.uni
++  ipconfig/IpConfig.c
++  
++  loadpcirom/LoadPciRomStrings.uni
++  loadpcirom/LoadPciRom.c
++  
++  mem/MemStrings.uni
++  mem/DebugStrings.uni  
++  mem/mm.c
++  mem/MemCommonPart.c
++  mem/efidump.c  
++  
++  memmap/memmapStrings.uni
++  memmap/memmap.c
++  
++  mm/MmStrings.uni
++  mm/mm.c
++  
++  mode/ModeStrings.uni
++  mode/mode.c
++  
++  mount/MountStrings.uni
++  mount/mount.c
++  
++  openinfo/OPeninfoStrings.uni
++  openinfo/openinfo.c
++
++  Ping/PingStrings.uni
++  Ping/Ping.c
++
++  pci/PciStrings.uni
++  pci/pci.c
++  pci/pci_class.c
++  
++  sermode/SermodeStrings.uni
++  sermode/sermode.c
++  
++  smbiosview/SmBiosViewStrings.uni
++  smbiosview/QueryTable.c
++  smbiosview/EventLogInfo.c
++  smbiosview/PrintInfo.c
++  smbiosview/LibSmbiosView.c
++  smbiosview/smbiosview.c
++  smbiosview/smbios.c
+   
+-  stall\stallStrings.uni
+-  stall\stall.c
++  stall/stallStrings.uni
++  stall/stall.c
+   
+-  telnetmgmt\TelnetMgmtStrings.uni
+-  telnetmgmt\TelnetMgmt.c
++  telnetmgmt/TelnetMgmtStrings.uni
++  telnetmgmt/TelnetMgmt.c
+   
+-  tzone\TZoneStrings.uni
+-  tzone\tzone.c
++  tzone/TZoneStrings.uni
++  tzone/tzone.c
+ [sources.ia32]
+-  ver\ia32\ver32.c
+-  Library\ia32\math.c
+-  Library\ia32\initplat.c
++  ver/ia32/ver32.c
++  Library/IA32/math.c
++  Library/IA32/initplat.c
++  Library/IA32/DivU64x32Remainder.S  | GCC
++  Library/IA32/LShiftU64.S           | GCC
++  Library/IA32/RShiftU64.S           | GCC
++  Library/IA32/MultU64x32.S          | GCC
+ [sources.ipf]
+-  ver\ipf\ver64.c
+-  Library\ipf\math.c
+-  Library\ipf\initplat.c
+-  Library\ipf\palproc.s
+-  Library\ipf\salpal.c
++  ver/ipf/ver64.c
++  Library/ipf/math.c
++  Library/ipf/initplat.c
++  Library/ipf/palproc.s
++  Library/ipf/salpal.c
+ [sources.EBC]
+-  ver\ebc\verEbc.c
+-  Library\EBC\math.c
+-  Library\EBC\initplat.c
++  ver/ebc/verEbc.c
++  Library/EBC/math.c
++  Library/EBC/initplat.c
+ [sources.x64]
+-  ver\ia32\ver32.c
+-  Library\ipf\math.c
+-  Library\ia32\initplat.c
++  ver/ia32/ver32.c
++  Library/ipf/math.c
++  Library/ia32/initplat.c
++
++[sources.ARM]
++  ver/ia32/ver32.c
++  Library/ipf/math.c
++  Library/ia32/initplat.c
+ [includes.common]
+   .
+-  .\Inc
+-  .\ver
+-  .\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(EDK_SOURCE)\Foundation\Library\Dxe\Include
++  ./Inc
++  ./ver
++  ./Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(EDK_SOURCE)/Foundation/Library/Dxe/Include
+   $(DEST_DIR)
+ [libraries.common]
+diff --ignore-file-name-case -Naur ShellR33/SmbiosView/EventLogInfo.c GccShellR33/SmbiosView/EventLogInfo.c
+--- ShellR33/SmbiosView/EventLogInfo.c 2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/SmbiosView/EventLogInfo.c      2009-11-05 13:49:56.000000000 -0800
+@@ -25,7 +25,7 @@
+ #include "PrintInfo.h"
+ #include "QueryTable.h"
+ #include "EventLogInfo.h"
+-#include "smbios.h"
++#include "Smbios.h"
+ #include STRING_DEFINES_FILE
+ VOID
+@@ -37,7 +37,7 @@
+   //
+   // Print prompt
+   //
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_ACCESS_METHOD), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_ACCESS_METHOD), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Key, Option);
+   //
+@@ -45,30 +45,30 @@
+   //
+   switch (Key) {
+   case 0:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_ONE_EIGHT_BIT), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_ONE_EIGHT_BIT), gSmbiosHiiHandle);
+     break;
+   case 1:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_TWO_EIGHT_BITS), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_TWO_EIGHT_BITS), gSmbiosHiiHandle);
+     break;
+   case 2:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_ONE_SIXTEEN_BIT), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_ONE_SIXTEEN_BIT), gSmbiosHiiHandle);
+     break;
+   case 3:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_MEM_MAPPED_PHYS), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_MEM_MAPPED_PHYS), gSmbiosHiiHandle);
+     break;
+   case 4:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_AVAIL_VIA_GENERAL), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_AVAIL_VIA_GENERAL), gSmbiosHiiHandle);
+     break;
+   default:
+     if (Key <= 0x7f) {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_AVAIL_FOR_FUTURE_ASSIGN), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_AVAIL_FOR_FUTURE_ASSIGN), gSmbiosHiiHandle);
+     } else {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_BIOS_VENDOR_OEM), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_BIOS_VENDOR_OEM), gSmbiosHiiHandle);
+     }
+   }
+ }
+@@ -82,26 +82,26 @@
+   //
+   // Print prompt
+   //
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_LOG_STATUS), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_LOG_STATUS), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Key, Option);
+   //
+   // Print value info
+   //
+   if ((Key & 0x01) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_LOG_AREA_VALID), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_LOG_AREA_VALID), gSmbiosHiiHandle);
+   } else {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_LOG_AREA_VALID), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_LOG_AREA_VALID), gSmbiosHiiHandle);
+   }
+   if ((Key & 0x02) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_LOG_AREA_FULL), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_LOG_AREA_FULL), gSmbiosHiiHandle);
+   } else {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_LOG_AREA_NOT_FULL), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_LOG_AREA_NOT_FULL), gSmbiosHiiHandle);
+   }
+   if ((Key & 0xFC) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_RES_BITS_NOT_ZERO), HiiHandle, Key & 0xFC);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_RES_BITS_NOT_ZERO), gSmbiosHiiHandle, Key & 0xFC);
+   }
+ }
+@@ -114,20 +114,20 @@
+   //
+   // Print prompt
+   //
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_LOG_HEADER_FORMAT), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_LOG_HEADER_FORMAT), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Key, Option);
+   //
+   // Print value info
+   //
+   if (Key == 0x00) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_NO_HEADER), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_NO_HEADER), gSmbiosHiiHandle);
+   } else if (Key == 0x01) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_TYPE_LOG_HEADER), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_TYPE_LOG_HEADER), gSmbiosHiiHandle);
+   } else if (Key <= 0x7f) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_AVAIL_FOR_FUTURE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_AVAIL_FOR_FUTURE), gSmbiosHiiHandle);
+   } else {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_BIOS_VENDOR), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_BIOS_VENDOR), gSmbiosHiiHandle);
+   }
+ }
+@@ -137,19 +137,19 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_LOG_HEADER_LEN), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_LOG_HEADER_LEN), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Key, Option);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_ONE_VAR_D), HiiHandle, Key & 0x7F);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_ONE_VAR_D), gSmbiosHiiHandle, Key & 0x7F);
+   //
+   // The most-significant bit of the field specifies
+   // whether (0) or not (1) the record has been read
+   //
+   if ((Key & 0x80) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_THIS_RECORD_READ), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_THIS_RECORD_READ), gSmbiosHiiHandle);
+   } else {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_THIS_RECORD_NOT_READ), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_THIS_RECORD_NOT_READ), gSmbiosHiiHandle);
+   }
+ }
+@@ -160,7 +160,7 @@
+ {
+   LOG_HEADER_TYPE1_FORMAT *Header;
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_SYSTEM_EVENT_LOG), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_SYSTEM_EVENT_LOG), gSmbiosHiiHandle);
+   //
+   // Print Log Header Type1 Format info
+@@ -169,27 +169,27 @@
+   PrintToken (
+     STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_OEM_RESERVED),
+-    HiiHandle,
++    gSmbiosHiiHandle,
+     Header->OEMReserved[0],
+     Header->OEMReserved[1],
+     Header->OEMReserved[2],
+     Header->OEMReserved[3],
+     Header->OEMReserved[4]
+     );
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_MULTIPLE_EVENT_TIME), HiiHandle, Header->METW);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_MULTIPLE_EVENT_COUNT), HiiHandle, Header->MECI);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_PREBOOT_ADDRESS), HiiHandle, Header->CMOSAddress);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_PREBOOT_INDEX), HiiHandle, Header->CMOSBitIndex);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_CHECKSUM_STARTING_OFF), HiiHandle, Header->StartingOffset);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_CHECKSUN_BYTE_COUNT), HiiHandle, Header->ChecksumOffset);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_MULTIPLE_EVENT_TIME), gSmbiosHiiHandle, Header->METW);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_MULTIPLE_EVENT_COUNT), gSmbiosHiiHandle, Header->MECI);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_PREBOOT_ADDRESS), gSmbiosHiiHandle, Header->CMOSAddress);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_PREBOOT_INDEX), gSmbiosHiiHandle, Header->CMOSBitIndex);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_CHECKSUM_STARTING_OFF), gSmbiosHiiHandle, Header->StartingOffset);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_CHECKSUN_BYTE_COUNT), gSmbiosHiiHandle, Header->ChecksumOffset);
+   PrintToken (
+     STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_RESERVED),
+-    HiiHandle,
++    gSmbiosHiiHandle,
+     Header->OEMReserved[0],
+     Header->OEMReserved[1],
+     Header->OEMReserved[2]
+     );
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_HEADER_REVISION), HiiHandle, Header->HeaderRevision);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_HEADER_REVISION), gSmbiosHiiHandle, Header->HeaderRevision);
+ }
+ VOID
+@@ -201,20 +201,20 @@
+   //
+   // Print prompt
+   //
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_LOG_HEADER), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_LOG_HEADER), gSmbiosHiiHandle);
+   //
+   // Print value info
+   //
+   if (LogHeaderFormat == 0x00) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_NO_HEADER), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_NO_HEADER), gSmbiosHiiHandle);
+   } else if (LogHeaderFormat == 0x01) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_TYPE_LOG_HEADER), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_TYPE_LOG_HEADER), gSmbiosHiiHandle);
+     DisplaySysEventLogHeaderType1 (LogHeader);
+   } else if (LogHeaderFormat <= 0x7f) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_AVAIL_FUTURE_ASSIGN), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_AVAIL_FUTURE_ASSIGN), gSmbiosHiiHandle);
+   } else {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_BIOS_VENDOR), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_BIOS_VENDOR), gSmbiosHiiHandle);
+   }
+ }
+@@ -237,29 +237,29 @@
+   //
+   switch (ElVdfType) {
+   case 0:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_NO_STD_FORMAT), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_NO_STD_FORMAT), gSmbiosHiiHandle);
+     break;
+   case 1:
+     Word = (UINT16 *) (VarData + 1);
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_SMBIOS_STRUCT_ASSOC), HiiHandle);
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_STRUCT_HANDLE), HiiHandle, *Word);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_SMBIOS_STRUCT_ASSOC), gSmbiosHiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_STRUCT_HANDLE), gSmbiosHiiHandle, *Word);
+     break;
+   case 2:
+     Dword = (UINT32 *) (VarData + 1);
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_MULT_EVENT_COUNTER), HiiHandle, *Dword);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_MULT_EVENT_COUNTER), gSmbiosHiiHandle, *Dword);
+     break;
+   case 3:
+     Word = (UINT16 *) (VarData + 1);
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_SMBIOS_STRUCT_ASSOC), HiiHandle);
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_STRUCT_HANDLE), HiiHandle, *Word);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_SMBIOS_STRUCT_ASSOC), gSmbiosHiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_STRUCT_HANDLE), gSmbiosHiiHandle, *Word);
+     //
+     // Followed by a multiple-event counter
+     //
+     Dword = (UINT32 *) (VarData + 1);
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_MULT_EVENT_COUNTER), HiiHandle, *Dword);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_MULT_EVENT_COUNTER), gSmbiosHiiHandle, *Dword);
+     break;
+   case 4:
+@@ -281,14 +281,14 @@
+     // Followed by a multiple-event counter
+     //
+     Dword = (UINT32 *) (VarData + 1);
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_MULT_EVENT_COUNTER), HiiHandle, *Dword);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_MULT_EVENT_COUNTER), gSmbiosHiiHandle, *Dword);
+     break;
+   default:
+     if (ElVdfType <= 0x7F) {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_UNUSED_AVAIL_FOR_ASSIGN), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_UNUSED_AVAIL_FOR_ASSIGN), gSmbiosHiiHandle);
+     } else {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_AVAIL_FOR_SYSTEM), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_AVAIL_FOR_SYSTEM), gSmbiosHiiHandle);
+     }
+   }
+ }
+@@ -309,7 +309,7 @@
+   //
+   // Print prompt
+   //
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_SYSTEM_EVENT_LOG_2), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_SYSTEM_EVENT_LOG_2), gSmbiosHiiHandle);
+   //
+   // Print Log info
+@@ -336,19 +336,19 @@
+     // (as read from CMOS) of the occurrence of the event
+     // So Print as hex and represent decimal
+     //
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_DATE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_DATE), gSmbiosHiiHandle);
+     if (Log->Year >= 80 && Log->Year <= 99) {
+       Print (L"19");
+-    } else if (Log->Year >= 0 && Log->Year <= 79) {
++    } else if (Log->Year <= 79) {
+       Print (L"20");
+     } else {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_ERROR), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_ERROR), gSmbiosHiiHandle);
+       continue;
+     }
+     PrintToken (
+       STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_TIME_SIX_VARS),
+-      HiiHandle,
++      gSmbiosHiiHandle,
+       Log->Year,
+       Log->Month,
+       Log->Day,
+diff --ignore-file-name-case -Naur ShellR33/SmbiosView/LibSmbiosView.c GccShellR33/SmbiosView/LibSmbiosView.c
+--- ShellR33/SmbiosView/LibSmbiosView.c        2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/SmbiosView/LibSmbiosView.c     2009-11-05 13:49:56.000000000 -0800
+@@ -22,10 +22,10 @@
+ --*/
+ #include "EfiShellLib.h"
+-#include "LIbSmbios.h"
++#include "LibSmbios.h"
+ #include "LibSmbiosView.h"
+ #include "smbiosview.h"
+-#include "smbios.h"
++#include "Smbios.h"
+ #include STRING_DEFINES_FILE
+ STATIC UINT8                    mInit         = 0;
+@@ -62,15 +62,15 @@
+   //
+   // Get SMBIOS table from System Configure table
+   //
+-  Status = LibGetSystemConfigurationTable (&gEfiSmbiosTableGuid, &mSmbiosTable);
++  Status = LibGetSystemConfigurationTable (&gEfiSmbiosTableGuid, (VOID **)&mSmbiosTable);
+   if (mSmbiosTable == NULL) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_LIBSMBIOSVIEW_CANNOT_GET_TABLE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_LIBSMBIOSVIEW_CANNOT_GET_TABLE), gSmbiosHiiHandle);
+     return EFI_NOT_FOUND;
+   }
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_LIBSMBIOSVIEW_GET_TABLE_ERROR), HiiHandle, Status);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_LIBSMBIOSVIEW_GET_TABLE_ERROR), gSmbiosHiiHandle, Status);
+     return Status;
+   }
+   //
+@@ -200,7 +200,7 @@
+   }
+   if (Buffer == NULL) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_LIBSMBIOSVIEW_NO_BUFF_SPEC), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_LIBSMBIOSVIEW_NO_BUFF_SPEC), gSmbiosHiiHandle);
+     return DMI_INVALID_HANDLE;
+   }
+@@ -342,7 +342,7 @@
+ {
+   CHAR8 *String;
+   if (Buffer == NULL) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_LIBSMBIOSVIEW_NO_BUF_SPEC_WHEN_STRUCT), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_LIBSMBIOSVIEW_NO_BUF_SPEC_WHEN_STRUCT), gSmbiosHiiHandle);
+     return ;
+   }
+   //
+diff --ignore-file-name-case -Naur ShellR33/SmbiosView/PrintInfo.c GccShellR33/SmbiosView/PrintInfo.c
+--- ShellR33/SmbiosView/PrintInfo.c    2008-10-06 00:03:04.000000000 -0700
++++ GccShellR33/SmbiosView/PrintInfo.c 2009-11-05 13:49:56.000000000 -0800
+@@ -26,7 +26,7 @@
+ #include "LibSmbiosView.h"
+ #include "QueryTable.h"
+ #include "EventLogInfo.h"
+-#include "smbios.h"
++#include "Smbios.h"
+ #include STRING_DEFINES_FILE
+ //
+@@ -70,17 +70,17 @@
+ #define PrintBitField(pStruct, type, element, size) \
+   do { \
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), HiiHandle); \
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gSmbiosHiiHandle); \
+     APrint (#element); \
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), HiiHandle, size); \
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gSmbiosHiiHandle, size); \
+     DumpHex (0, 0, size, &(pStruct->type->element)); \
+   } while (0);
+ #define PrintSmbiosBitField(pStruct, startaddress, element, size) \
+   do { \
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), HiiHandle); \
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DUMP), gSmbiosHiiHandle); \
+     APrint (#element); \
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), HiiHandle, size); \
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE), gSmbiosHiiHandle, size); \
+     DumpHex (0, 0, size, startaddress); \
+   } while (0);
+@@ -153,7 +153,7 @@
+   UINT8 InAnchor[6];
+   if (SmbiosTable == NULL) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL), gSmbiosHiiHandle);
+     return ;
+   }
+@@ -162,29 +162,29 @@
+   }
+   if (Option >= SHOW_NORMAL) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_SIGN), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_SIGN), gSmbiosHiiHandle);
+     MemToString (Anchor, SmbiosTable->AnchorString, 4);
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR), HiiHandle, Anchor);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR), gSmbiosHiiHandle, Anchor);
+     PrintToken (
+       STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM),
+-      HiiHandle,
++      gSmbiosHiiHandle,
+       SmbiosTable->EntryPointStructureChecksum
+       );
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN), HiiHandle, SmbiosTable->EntryPointLength);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN), gSmbiosHiiHandle, SmbiosTable->EntryPointLength);
+     PrintToken (
+       STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION),
+-      HiiHandle,
++      gSmbiosHiiHandle,
+       SmbiosTable->MajorVersion,
+       SmbiosTable->MinorVersion
+       );
+     PrintToken (
+       STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NUMBER_STRUCT),
+-      HiiHandle,
++      gSmbiosHiiHandle,
+       SmbiosTable->NumberOfSmbiosStructures
+       );
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_STRUCT_SIZE), HiiHandle, SmbiosTable->MaxStructureSize);
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR), HiiHandle, SmbiosTable->TableAddress);
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_LENGTH), HiiHandle, SmbiosTable->TableLength);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_STRUCT_SIZE), gSmbiosHiiHandle, SmbiosTable->MaxStructureSize);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR), gSmbiosHiiHandle, SmbiosTable->TableAddress);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_LENGTH), gSmbiosHiiHandle, SmbiosTable->TableLength);
+   }
+   //
+@@ -193,17 +193,17 @@
+   if (Option >= SHOW_DETAIL) {
+     PrintToken (
+       STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION),
+-      HiiHandle,
++      gSmbiosHiiHandle,
+       SmbiosTable->EntryPointRevision
+       );
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BCD_REVISION), HiiHandle, SmbiosTable->SmbiosBcdRevision);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BCD_REVISION), gSmbiosHiiHandle, SmbiosTable->SmbiosBcdRevision);
+     //
+     // Since raw data is not string, add a NULL terminater.
+     //
+     MemToString (InAnchor, SmbiosTable->IntermediateAnchorString, 5);
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_ACHOR), HiiHandle, InAnchor);
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_CHECKSUM), HiiHandle, SmbiosTable->IntermediateChecksum);
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMATTED_AREA), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_ACHOR), gSmbiosHiiHandle, InAnchor);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTER_CHECKSUM), gSmbiosHiiHandle, SmbiosTable->IntermediateChecksum);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMATTED_AREA), gSmbiosHiiHandle);
+     DumpHex (2, 0, 5, SmbiosTable->FormattedArea);
+   }
+@@ -247,8 +247,8 @@
+   // Display structure header
+   //
+   DisplayStructureTypeInfo (pStruct->Hdr->Type, SHOW_DETAIL);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMAT_PART_LEN), HiiHandle, pStruct->Hdr->Length);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_HANDLE), HiiHandle, pStruct->Hdr->Handle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FORMAT_PART_LEN), gSmbiosHiiHandle, pStruct->Hdr->Length);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_HANDLE), gSmbiosHiiHandle, pStruct->Hdr->Handle);
+   if (Option == SHOW_OUTLINE) {
+     return EFI_SUCCESS;
+@@ -263,7 +263,7 @@
+     PrintPendingString (pStruct, Type0, BiosVersion);
+     PrintStructValue (pStruct, Type0, BiosSegment);
+     PrintPendingString (pStruct, Type0, BiosReleaseDate);
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SIZE), HiiHandle, 64 * (pStruct->Type0->BiosSize + 1));
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SIZE), gSmbiosHiiHandle, 64 * (pStruct->Type0->BiosSize + 1));
+     if (Option < SHOW_DETAIL) {
+       PrintStructValueH (pStruct, Type0, BiosCharacteristics);
+@@ -325,13 +325,13 @@
+     PrintPendingString (pStruct, Type3, Version);
+     PrintPendingString (pStruct, Type3, SerialNumber);
+     PrintPendingString (pStruct, Type3, AssetTag);
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOTUP_STATE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOTUP_STATE), gSmbiosHiiHandle);
+     DisplaySystemEnclosureStatus (pStruct->Type3->BootupState, Option);
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_STATE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_STATE), gSmbiosHiiHandle);
+     DisplaySystemEnclosureStatus (pStruct->Type3->PowerSupplyState, Option);
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THERMAL_STATE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THERMAL_STATE), gSmbiosHiiHandle);
+     DisplaySystemEnclosureStatus (pStruct->Type3->ThermalState, Option);
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SECURITY_STATUS), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SECURITY_STATUS), gSmbiosHiiHandle);
+     DisplaySESecurityStatus (pStruct->Type3->SecurityStatus, Option);
+     PrintBitField (pStruct, Type3, OemDefined, 4);
+     break;
+@@ -384,9 +384,9 @@
+       DisplayMcErrorDetectMethod (pStruct->Type5->ErrDetectMethod, Option);
+       DisplayMcErrorCorrectCapability (pStruct->Type5->ErrCorrectCapability, Option);
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRT), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRT), gSmbiosHiiHandle);
+       DisplayMcInterleaveSupport (pStruct->Type5->SupportInterleave, Option);
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CURRENT), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CURRENT), gSmbiosHiiHandle);
+       DisplayMcInterleaveSupport (pStruct->Type5->CurrentInterleave, Option);
+       DisplayMaxMemoryModuleSize (pStruct->Type5->MaxMemoryModuleSize, SlotNum, Option);
+       DisplayMcMemorySpeeds (pStruct->Type5->SupportSpeed, Option);
+@@ -409,9 +409,9 @@
+     DisplayMmBankConnections (pStruct->Type6->BankConnections, Option);
+     PrintStructValue (pStruct, Type6, CurrentSpeed);
+     DisplayMmMemoryType (pStruct->Type6->CurrentMemoryType, Option);
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INSTALLED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INSTALLED), gSmbiosHiiHandle);
+     DisplayMmMemorySize (pStruct->Type6->InstalledSize, Option);
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED), gSmbiosHiiHandle);
+     DisplayMmMemorySize (pStruct->Type6->EnabledSize, Option);
+     DisplayMmErrorStatus (pStruct->Type6->ErrorStatus, Option);
+     break;
+@@ -441,7 +441,7 @@
+     Print (L"Internal ");
+     DisplayPortConnectorType (pStruct->Type8->InternalConnectorType, Option);
+     PrintPendingString (pStruct, Type8, ExternalReferenceDesignator);
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTERNAL), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EXTERNAL), gSmbiosHiiHandle);
+     DisplayPortConnectorType (pStruct->Type8->ExternalConnectorType, Option);
+     DisplayPortType (pStruct->Type8->PortType, Option);
+     break;
+@@ -478,7 +478,7 @@
+       NumOfDevice = (pStruct->Type10->Hdr.Length - sizeof (SMBIOS_HEADER)) / (2 * sizeof (UINT8));
+       for (Index = 0; Index < NumOfDevice; Index++) {
+         DisplayOnboardDeviceTypes (pStruct->Type10->Device[Index].DeviceType, Option);
+-        PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DESC_STRING), HiiHandle);
++        PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DESC_STRING), gSmbiosHiiHandle);
+         APrint (LibGetSmbiosString (pStruct, pStruct->Type10->Device[Index].DescriptionString));
+       }
+     }
+@@ -539,7 +539,7 @@
+         // Display all Event Log type descriptors supported by system
+         //
+         for (Index = 0; Index < Count; Index++, Ptr++) {
+-          PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRTED_EVENT), HiiHandle, Index + 1);
++          PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SUPOPRTED_EVENT), gSmbiosHiiHandle, Index + 1);
+           DisplaySELTypes (Ptr->LogType, Option);
+           DisplaySELVarDataFormatType (Ptr->DataFormatType, Option);
+         }
+@@ -557,7 +557,7 @@
+           default:
+             PrintToken (
+               STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACCESS_METHOD_NOT_SUPOPRTED),
+-              HiiHandle,
++              gSmbiosHiiHandle,
+               pStruct->Type15->AccessMethod
+               );
+             return EFI_UNSUPPORTED;
+@@ -788,7 +788,7 @@
+     break;
+   case 31:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE31), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE31), gSmbiosHiiHandle);
+     break;
+   case 32:
+@@ -849,9 +849,9 @@
+       Count = pStruct->Type37->MemoryDeviceCount;
+       Ptr   = pStruct->Type37->MemoryDevice;
+       for (Index = 0; Index < Count; Index++) {
+-        PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_DEVICE), HiiHandle, Index + 1);
+-        PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_LOAD), HiiHandle, Ptr->DeviceLoad);
+-        PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_HANDLE), HiiHandle, Ptr->DeviceHandle);
++        PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_DEVICE), gSmbiosHiiHandle, Index + 1);
++        PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_LOAD), gSmbiosHiiHandle, Ptr->DeviceLoad);
++        PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DEV_HANDLE), gSmbiosHiiHandle, Ptr->DeviceHandle);
+       }
+     }
+     break;
+@@ -906,9 +906,9 @@
+       
+       for (Index = 0; Index < NumberOfEntries; Index++) {
+         EntryLength = Entries->EntryLength;
+-        PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTRYLEN), HiiHandle, EntryLength);
+-        PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDHANDLE), HiiHandle, Entries->ReferencedHandle);
+-        PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDOFFSET), HiiHandle, Entries->ReferencedOffset);
++        PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTRYLEN), gSmbiosHiiHandle, EntryLength);
++        PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDHANDLE), gSmbiosHiiHandle, Entries->ReferencedHandle);
++        PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_REFERENCEDOFFSET), gSmbiosHiiHandle, Entries->ReferencedOffset);
+         PrintSmbiosString (pStruct, Entries->EntryString, String);
+         PrintSmbiosBitField (pStruct, Entries->Value, Value, EntryLength - 5);
+         Entries = (ADDITIONAL_INFORMATION_ENTRY *) ((UINT8 *)Entries + EntryLength);
+@@ -929,15 +929,15 @@
+     break;
+   case 126:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INACTIVE_STRUCT), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INACTIVE_STRUCT), gSmbiosHiiHandle);
+     break;
+   case 127:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THIS_STRUCT_END_TABLE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_THIS_STRUCT_END_TABLE), gSmbiosHiiHandle);
+     break;
+   default:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE_UNDEFINED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRUCT_TYPE_UNDEFINED), gSmbiosHiiHandle);
+     break;
+   }
+@@ -953,7 +953,7 @@
+   //
+   // Print header
+   //
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR), gSmbiosHiiHandle);
+   //
+   // print option
+   //
+@@ -965,137 +965,137 @@
+   //   are designed not to deal with UINT64
+   //
+   if (BIT (chara, 0) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 1) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 2) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN_BIT), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN_BIT), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 3) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_NOT_SUPPORTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_NOT_SUPPORTED), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 4) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ISA_SUPPORTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ISA_SUPPORTED), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 5) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MSA_SUPPORTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MSA_SUPPORTED), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 6) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EISA_SUPPORTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EISA_SUPPORTED), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 7) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PCI_SUPPORTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PCI_SUPPORTED), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 8) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PC_CARD_SUPPORTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PC_CARD_SUPPORTED), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 9) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PLUG_PLAY_SUPPORTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PLUG_PLAY_SUPPORTED), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 10) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_APM_SUPPORTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_APM_SUPPORTED), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 11) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_UPGRADEABLE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_UPGRADEABLE), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 12) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SHADOWING), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_SHADOWING), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 13) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VESA_SUPPORTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VESA_SUPPORTED), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 14) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ECSD_SUPPORT), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ECSD_SUPPORT), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 15) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FORM_CD_SUPPORTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FORM_CD_SUPPORTED), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 16) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SELECTED_BOOT_SUPPORTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SELECTED_BOOT_SUPPORTED), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 17) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_ROM_SOCKETED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_ROM_SOCKETED), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 18) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_PC_CARD), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_FROM_PC_CARD), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 19) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EDD_ENHANCED_DRIVER), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EDD_ENHANCED_DRIVER), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 20) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_NEC), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_NEC), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 21) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_TOSHIBA), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_JAPANESE_FLOPPY_TOSHIBA), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 22) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FLOPPY_SERVICES_SUPPORTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FLOPPY_SERVICES_SUPPORTED), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 23) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_POINT_TWO_MB), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_POINT_TWO_MB), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 24) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_720_KB), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_720_KB), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 25) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TWO_POINT_EIGHT_EIGHT_MB), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TWO_POINT_EIGHT_EIGHT_MB), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 26) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINT_SCREEN_SUPPORT), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINT_SCREEN_SUPPORT), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 27) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_SERV_SUPPORT), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_SERV_SUPPORT), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 28) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SERIAL_SERVICES_SUPPORT), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SERIAL_SERVICES_SUPPORT), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 29) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINTER_SERVICES_SUPPORT), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRINTER_SERVICES_SUPPORT), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 30) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONO_VIDEO_SUPPORT), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONO_VIDEO_SUPPORT), gSmbiosHiiHandle);
+   }
+   if (BIT (chara, 31) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NEC_PC_98), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NEC_PC_98), gSmbiosHiiHandle);
+   }
+   //
+   // Just print the reserved
+   //
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_32_47), HiiHandle);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_48_64), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_32_47), gSmbiosHiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_48_64), gSmbiosHiiHandle);
+ }
+ VOID
+@@ -1104,7 +1104,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION), gSmbiosHiiHandle);
+   //
+   // Print option
+   //
+@@ -1114,35 +1114,35 @@
+   // check bit and print
+   //
+   if (BIT (byte1, 0) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACPI_SUPPORTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ACPI_SUPPORTED), gSmbiosHiiHandle);
+   }
+   if (BIT (byte1, 1) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USB_LEGACY_SUPPORTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USB_LEGACY_SUPPORTED), gSmbiosHiiHandle);
+   }
+   if (BIT (byte1, 2) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AGP_SUPPORTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AGP_SUPPORTED), gSmbiosHiiHandle);
+   }
+   if (BIT (byte1, 3) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_I2O_BOOT_SUPPORTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_I2O_BOOT_SUPPORTED), gSmbiosHiiHandle);
+   }
+   if (BIT (byte1, 4) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LS_120_BOOT_SUPPORTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LS_120_BOOT_SUPPORTED), gSmbiosHiiHandle);
+   }
+   if (BIT (byte1, 5) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ATAPI_ZIP_DRIVE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ATAPI_ZIP_DRIVE), gSmbiosHiiHandle);
+   }
+   if (BIT (byte1, 6) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_1394_BOOT_SUPPORTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_1394_BOOT_SUPPORTED), gSmbiosHiiHandle);
+   }
+   if (BIT (byte1, 7) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMART_BATTERY_SUPPORTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMART_BATTERY_SUPPORTED), gSmbiosHiiHandle);
+   }
+ }
+@@ -1152,21 +1152,21 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION_2), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_CHAR_EXTENSION_2), gSmbiosHiiHandle);
+   //
+   // Print option
+   //
+   PRINT_INFO_OPTION (byte2, Option);
+   if (BIT (byte2, 0) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_BOOT_SPEC_SUPP), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIOS_BOOT_SPEC_SUPP), gSmbiosHiiHandle);
+   }
+   if (BIT (byte2, 1) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FUNCTION_KEY_INIT), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FUNCTION_KEY_INIT), gSmbiosHiiHandle);
+   }
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RSVD_FOR_FUTURE), gSmbiosHiiHandle);
+ }
+ VOID
+@@ -1178,7 +1178,7 @@
+   //
+   // Print prompt message
+   //
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY), gSmbiosHiiHandle);
+   //
+   // Print option
+   //
+@@ -1189,11 +1189,11 @@
+   //
+   switch (Family) {
+   case 0x01:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER), gSmbiosHiiHandle);
+     break;
+   case 0x02:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gSmbiosHiiHandle);
+     break;
+   case 0x03:
+@@ -1205,11 +1205,11 @@
+     break;
+   case 0x05:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL386_PROCESSOR), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL386_PROCESSOR), gSmbiosHiiHandle);
+     break;
+   case 0x06:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL486_PROCESSOR), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL486_PROCESSOR), gSmbiosHiiHandle);
+     break;
+   case 0x07:
+@@ -1229,35 +1229,35 @@
+     break;
+   case 0x0B:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_FAMILY), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_FAMILY), gSmbiosHiiHandle);
+     break;
+   case 0x0C:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PRO_PROC), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PRO_PROC), gSmbiosHiiHandle);
+     break;
+   case 0x0D:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_II_PROC), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_II_PROC), gSmbiosHiiHandle);
+     break;
+   case 0x0E:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_MMX), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_PROC_MMX), gSmbiosHiiHandle);
+     break;
+   case 0x0F:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CELERON_PROC), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CELERON_PROC), gSmbiosHiiHandle);
+     break;
+   case 0x10:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_XEON_PROC), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_XEON_PROC), gSmbiosHiiHandle);
+     break;
+   case 0x11:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_PROC), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_PROC), gSmbiosHiiHandle);
+     break;
+   case 0x12:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_M1_FAMILY), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_M1_FAMILY), gSmbiosHiiHandle);
+     break;
+   case 0x18:
+@@ -1265,27 +1265,27 @@
+     break;
+   case 0x19:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_K5_FAMILY), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_K5_FAMILY), gSmbiosHiiHandle);
+     break;
+   case 0x20:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_FAMILY), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_FAMILY), gSmbiosHiiHandle);
+     break;
+   case 0x21:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_601), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_601), gSmbiosHiiHandle);
+     break;
+   case 0x22:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603), gSmbiosHiiHandle);
+     break;
+   case 0x23:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603_PLUS), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_603_PLUS), gSmbiosHiiHandle);
+     break;
+   case 0x24:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_604), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_PC_604), gSmbiosHiiHandle);
+     break;
+   case 0x25:
+@@ -1301,7 +1301,7 @@
+     break;
+   case 0x30:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ALPHA_FAMILY_2), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ALPHA_FAMILY_2), gSmbiosHiiHandle);
+     break;
+   case 0x31:
+@@ -1333,7 +1333,7 @@
+     break;
+   case 0x40:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MIPS_FAMILY), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MIPS_FAMILY), gSmbiosHiiHandle);
+     break;
+   case 0x41:
+@@ -1357,7 +1357,7 @@
+     break;
+   case 0x50:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SPARC_FAMILY), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SPARC_FAMILY), gSmbiosHiiHandle);
+     break;
+   case 0x51:
+@@ -1393,7 +1393,7 @@
+     break;
+   case 0x60:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_68040_FAMILY), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_68040_FAMILY), gSmbiosHiiHandle);
+     break;
+   case 0x61:
+@@ -1417,7 +1417,7 @@
+     break;
+   case 0x70:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HOBBIT_FAMILY), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HOBBIT_FAMILY), gSmbiosHiiHandle);
+     break;
+   case 0x78:
+@@ -1433,7 +1433,7 @@
+     break;
+   case 0x80:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WEITEK), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WEITEK), gSmbiosHiiHandle);
+     break;
+   case 0x82:
+@@ -1469,15 +1469,15 @@
+     break;
+   case 0x90:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PA_RISC_FAMILY), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PA_RISC_FAMILY), gSmbiosHiiHandle);
+     break;
+   case 0xA0:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_V30_FAMILY), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_V30_FAMILY), gSmbiosHiiHandle);
+     break;
+   case 0xB0:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_XEON), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_XEON), gSmbiosHiiHandle);
+     break;
+   case 0xC8:
+@@ -1532,13 +1532,13 @@
+     // use if/else to check value.
+     //
+     if (Family >= 0x13 && Family <= 0x17) {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FOR_SPEC_M1), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FOR_SPEC_M1), gSmbiosHiiHandle);
+     } else if (Family >= 0x1A && Family <= 0x1F) {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FOR_SPEC_K5), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FOR_SPEC_K5), gSmbiosHiiHandle);
+     } else if (Family >= 0xB1 && Family <= 0xBF) {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FOR_SPEC_PENTIUM), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FOR_SPEC_PENTIUM), gSmbiosHiiHandle);
+     } else {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY), gSmbiosHiiHandle);
+     }
+   }
+   //
+@@ -1555,7 +1555,7 @@
+   //
+   // Print prompt message
+   //
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROCESSOR_FAMILY), gSmbiosHiiHandle);
+   
+   //
+   // Print option
+@@ -1607,7 +1607,7 @@
+       break;
+     
+     default:
+-     PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY), HiiHandle);
++     PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY), gSmbiosHiiHandle);
+   }
+   
+ }
+@@ -1643,43 +1643,43 @@
+ --*/
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_INFO), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_INFO), gSmbiosHiiHandle);
+   //
+   // Print option
+   //
+   PRINT_INFO_OPTION (Voltage, Option);
+   if (BIT (Voltage, 7) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_CURRENT_VOLTAGE), HiiHandle, (Voltage - 0x80));
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_CURRENT_VOLTAGE), gSmbiosHiiHandle, (Voltage - 0x80));
+   } else {
+     if (BIT (Voltage, 0) != 0) {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_5V_SUPOPRTED), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_5V_SUPOPRTED), gSmbiosHiiHandle);
+     }
+     if (BIT (Voltage, 1) != 0) {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_33V_SUPPORTED), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_33V_SUPPORTED), gSmbiosHiiHandle);
+     }
+     if (BIT (Voltage, 2) != 0) {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_29V_SUPPORTED), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_29V_SUPPORTED), gSmbiosHiiHandle);
+     }
+     //
+     // check the reserved zero bits:
+     //
+     if (BIT (Voltage, 3) != 0) {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT3_NOT_ZERO), gSmbiosHiiHandle);
+     }
+     if (BIT (Voltage, 4) != 0) {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO), gSmbiosHiiHandle);
+     }
+     if (BIT (Voltage, 5) != 0) {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT5_NOT_ZERO), gSmbiosHiiHandle);
+     }
+     if (BIT (Voltage, 6) != 0) {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT6_NOT_ZERO), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT6_NOT_ZERO), gSmbiosHiiHandle);
+     }
+   }
+ }
+@@ -1714,56 +1714,56 @@
+ --*/
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_STATUS), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PROC_STATUS), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Status, Option);
+   if (BIT (Status, 7) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_BIT7), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_BIT7), gSmbiosHiiHandle);
+   } else if (BIT (Status, 5) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_BIT5), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_BIT5), gSmbiosHiiHandle);
+   } else if (BIT (Status, 4) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_BIT4), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_BIT4), gSmbiosHiiHandle);
+   } else if (BIT (Status, 3) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_BIT3), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_BIT3), gSmbiosHiiHandle);
+   }
+   //
+   // Check BIT 6
+   //
+   if (BIT (Status, 6) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_POPULATED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_POPULATED), gSmbiosHiiHandle);
+   } else {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_UNPOPULATED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_SOCKET_UNPOPULATED), gSmbiosHiiHandle);
+   }
+   //
+   // Check BITs 2:0
+   //
+   switch (Status & 0x07) {
+   case 0:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gSmbiosHiiHandle);
+     break;
+   case 1:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_ENABLED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_ENABLED), gSmbiosHiiHandle);
+     break;
+   case 2:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DISABLED_BY_USER), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DISABLED_BY_USER), gSmbiosHiiHandle);
+     break;
+   case 3:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DIABLED_BY_BIOS), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_DIABLED_BY_BIOS), gSmbiosHiiHandle);
+     break;
+   case 4:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_IDLE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CPU_IDLE), gSmbiosHiiHandle);
+     break;
+   case 7:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHERS), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHERS), gSmbiosHiiHandle);
+     break;
+   default:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED), gSmbiosHiiHandle);
+   }
+ }
+@@ -1775,16 +1775,16 @@
+   )
+ {
+   UINTN MaxSize;
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE_LARGEST_MEM), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SIZE_LARGEST_MEM), gSmbiosHiiHandle);
+   //
+   // MaxSize is determined by follow formula
+   //
+   MaxSize = (UINTN) 1 << Size;
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB), HiiHandle, MaxSize);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB), gSmbiosHiiHandle, MaxSize);
+   if (Option >= SHOW_DETAIL) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_AMOUNT_MEM), HiiHandle);
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB), HiiHandle, MaxSize, SlotNum, MaxSize * SlotNum);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MAX_AMOUNT_MEM), gSmbiosHiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB), gSmbiosHiiHandle, MaxSize, SlotNum, MaxSize * SlotNum);
+   }
+ }
+@@ -1796,7 +1796,7 @@
+   )
+ {
+   UINT8 Index;
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_CONTROLLED), HiiHandle, SlotNum);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_CONTROLLED), gSmbiosHiiHandle, SlotNum);
+   if (Option >= SHOW_DETAIL) {
+     //
+@@ -1806,9 +1806,9 @@
+       return ;
+     }
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_LIST_CONTROLLED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLES_LIST_CONTROLLED), gSmbiosHiiHandle);
+     for (Index = 0; Index < SlotNum; Index++) {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLE), HiiHandle, Index + 1, Handles[Index]);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HANDLE), gSmbiosHiiHandle, Index + 1, Handles[Index]);
+     }
+   }
+ }
+@@ -1824,7 +1824,7 @@
+   UINT8 High;
+   UINT8 Low;
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_CONNECTIONS), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_CONNECTIONS), gSmbiosHiiHandle);
+   //
+   // Print option
+   //
+@@ -1837,15 +1837,15 @@
+   Low   = (UINT8) (BankConnections & 0x0F);
+   if (High != 0xF) {
+     if (Low != 0xF) {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS), HiiHandle, High, Low, High, Low);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS), gSmbiosHiiHandle, High, Low, High, Low);
+     } else {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2), HiiHandle, High, High);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2), gSmbiosHiiHandle, High, High);
+     }
+   } else {
+     if (Low != 0xF) {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2), HiiHandle, Low, Low);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BANK_RAS_2), gSmbiosHiiHandle, Low, Low);
+     } else {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BANKS_CONNECTED), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BANKS_CONNECTED), gSmbiosHiiHandle);
+     }
+   }
+ }
+@@ -1874,7 +1874,7 @@
+ --*/
+ {
+   UINT8 Value;
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEMORY_SIZE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEMORY_SIZE), gSmbiosHiiHandle);
+   //
+   // Print option
+   //
+@@ -1885,19 +1885,19 @@
+   //
+   Value = (UINT8) (Size & 0x7F);
+   if (Value == 0x7D) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE_NOT_DETERMINABLE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE_NOT_DETERMINABLE), gSmbiosHiiHandle);
+   } else if (Value == 0x7E) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MODULE_INSTALLED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MODULE_INSTALLED), gSmbiosHiiHandle);
+   } else if (Value == 0x7F) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_INSTALLED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_INSTALLED), gSmbiosHiiHandle);
+   } else {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE), HiiHandle, 1 << Value);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE), gSmbiosHiiHandle, 1 << Value);
+   }
+   if (BIT (Size, 7) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_DOUBLE_BANK), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_DOUBLE_BANK), gSmbiosHiiHandle);
+   } else {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_SINGLE_BANK), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_SINGLE_BANK), gSmbiosHiiHandle);
+   }
+ }
+@@ -1929,7 +1929,7 @@
+   //
+   DisplaySystemSlotType (SlotType, Option);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_ID), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SLOT_ID), gSmbiosHiiHandle);
+   //
+   // print option
+   //
+@@ -1940,11 +1940,11 @@
+   // Slot Type: MCA
+   //
+   case 0x04:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_MICRO_CHAN), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_MICRO_CHAN), gSmbiosHiiHandle);
+     if (SlotId > 0 && SlotId < 15) {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D), HiiHandle, SlotId);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D), gSmbiosHiiHandle, SlotId);
+     } else {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15), gSmbiosHiiHandle);
+     }
+     break;
+@@ -1952,11 +1952,11 @@
+   // EISA
+   //
+   case 0x05:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_EISA_NUM), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LOGICAL_EISA_NUM), gSmbiosHiiHandle);
+     if (SlotId > 0 && SlotId < 15) {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D), HiiHandle, SlotId);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D), gSmbiosHiiHandle, SlotId);
+     } else {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15), gSmbiosHiiHandle);
+     }
+     break;
+@@ -1964,28 +1964,28 @@
+   // Slot Type: PCI
+   //
+   case 0x06:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT), HiiHandle, SlotId);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT), gSmbiosHiiHandle, SlotId);
+     break;
+   //
+   // PCMCIA
+   //
+   case 0x07:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IDENTIFIES_ADAPTER_NUM), HiiHandle, SlotId);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IDENTIFIES_ADAPTER_NUM), gSmbiosHiiHandle, SlotId);
+     break;
+       
+   //
+   // Slot Type: PCI-E
+   //
+   case 0xA5:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT), HiiHandle, SlotId);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT), gSmbiosHiiHandle, SlotId);
+     break;
+   default:
+     if (SlotType >= 0x0E && SlotType <= 0x12) {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT), HiiHandle, SlotId);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VALUE_PRESENT), gSmbiosHiiHandle, SlotId);
+     } else {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_SLOT_ID), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_SLOT_ID), gSmbiosHiiHandle);
+     }
+   }
+ }
+@@ -1996,7 +1996,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_BOOT_STATUS), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_BOOT_STATUS), gSmbiosHiiHandle);
+   //
+   // Print option
+   //
+@@ -2006,31 +2006,31 @@
+   // Check value and print
+   //
+   if (Parameter == 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_ERRORS_DETECTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_ERRORS_DETECTED), gSmbiosHiiHandle);
+   } else if (Parameter == 1) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BOOTABLE_MEDIA), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NO_BOOTABLE_MEDIA), gSmbiosHiiHandle);
+   } else if (Parameter == 2) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NORMAL_OP_SYSTEM), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NORMAL_OP_SYSTEM), gSmbiosHiiHandle);
+   } else if (Parameter == 3) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_DETECTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_DETECTED), gSmbiosHiiHandle);
+   } else if (Parameter == 4) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM), gSmbiosHiiHandle);
+   } else if (Parameter == 5) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USER_REQUESTED_BOOT), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_USER_REQUESTED_BOOT), gSmbiosHiiHandle);
+   } else if (Parameter == 6) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_SECURITY_VIOLATION), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_SECURITY_VIOLATION), gSmbiosHiiHandle);
+   } else if (Parameter == 7) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PREV_REQ_IMAGE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PREV_REQ_IMAGE), gSmbiosHiiHandle);
+   } else if (Parameter == 8) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER), gSmbiosHiiHandle);
+   } else if (Parameter >= 9 && Parameter <= 127) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FUTURE_ASSIGNMENT), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FUTURE_ASSIGNMENT), gSmbiosHiiHandle);
+   } else if (Parameter >= 128 && Parameter <= 191) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VENDOR_OEM_SPECIFIC), HiiHandle);
+-  } else if (Parameter >= 192 && Parameter <= 255) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRODUCT_SPEC_IMPLMENTATION), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VENDOR_OEM_SPECIFIC), gSmbiosHiiHandle);
++  } else if (Parameter >= 192) {
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRODUCT_SPEC_IMPLMENTATION), gSmbiosHiiHandle);
+   } else {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_VALUE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_VALUE), gSmbiosHiiHandle);
+   }
+ }
+ //
+@@ -2062,7 +2062,7 @@
+   UINTN Month;
+   UINTN Year;
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SBDS_MANUFACTURE_DATE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SBDS_MANUFACTURE_DATE), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Date, Option);
+   //
+   // Print date
+@@ -2070,7 +2070,7 @@
+   Day   = Date & 0x001F;
+   Month = (Date & 0x00E0) >> 5;
+   Year  = ((Date & 0xFF00) >> 8) + 1980;
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONTH_DAY_YEAR), HiiHandle, Day, Month, Year);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MONTH_DAY_YEAR), gSmbiosHiiHandle, Day, Month, Year);
+ }
+ //
+@@ -2111,65 +2111,65 @@
+ {
+   UINTN Temp;
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_RESET_CAPABILITIES), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_RESET_CAPABILITIES), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Reset, Option);
+   //
+   // Check reserved bits 7:6
+   //
+   if ((Reset & 0xC0) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO), gSmbiosHiiHandle);
+   }
+   //
+   // Watch dog
+   //
+   if (BIT (Reset, 5) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER_2), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WATCHDOG_TIMER_2), gSmbiosHiiHandle);
+   } else {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_NOT_CONTAIN_TIMER), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_NOT_CONTAIN_TIMER), gSmbiosHiiHandle);
+   }
+   //
+   // Boot Option on Limit
+   //
+   Temp = (Reset & 0x18) >> 3;
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION_LIMIT), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION_LIMIT), gSmbiosHiiHandle);
+   switch (Temp) {
+   case 0:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED), gSmbiosHiiHandle);
+     break;
+   case 1:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2), gSmbiosHiiHandle);
+     break;
+   case 2:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL), gSmbiosHiiHandle);
+     break;
+   case 3:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT_BITS), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT_BITS), gSmbiosHiiHandle);
+     break;
+   }
+   //
+   // Boot Option
+   //
+   Temp = (Reset & 0x06) >> 1;
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BOOT_OPTION), gSmbiosHiiHandle);
+   switch (Temp) {
+   case 0:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED), gSmbiosHiiHandle);
+     break;
+   case 1:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OP_SYSTEM_2), gSmbiosHiiHandle);
+     break;
+   case 2:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SYSTEM_UTIL), gSmbiosHiiHandle);
+     break;
+   case 3:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DO_NOT_REBOOT), gSmbiosHiiHandle);
+     break;
+   }
+   //
+@@ -2224,95 +2224,95 @@
+ {
+   UINTN Temp;
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HARDWARE_SECURITY_SET), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_HARDWARE_SECURITY_SET), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Settings, Option);
+   //
+   // Power-on Password Status
+   //
+   Temp = (Settings & 0xC0) >> 6;
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_ON_PASSWORD), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_ON_PASSWORD), gSmbiosHiiHandle);
+   switch (Temp) {
+   case 0:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED), gSmbiosHiiHandle);
+     break;
+   case 1:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE), gSmbiosHiiHandle);
+     break;
+   case 2:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED), gSmbiosHiiHandle);
+     break;
+   case 3:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gSmbiosHiiHandle);
+     break;
+   }
+   //
+   // Keyboard Password Status
+   //
+   Temp = (Settings & 0x30) >> 4;
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_PASSWORD), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_KEYBOARD_PASSWORD), gSmbiosHiiHandle);
+   switch (Temp) {
+   case 0:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED), gSmbiosHiiHandle);
+     break;
+   case 1:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE), gSmbiosHiiHandle);
+     break;
+   case 2:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED), gSmbiosHiiHandle);
+     break;
+   case 3:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gSmbiosHiiHandle);
+     break;
+   }
+   //
+   // Administrator Password Status
+   //
+   Temp = (Settings & 0x0C) >> 2;
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ADMIN_PASSWORD_STATUS), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ADMIN_PASSWORD_STATUS), gSmbiosHiiHandle);
+   switch (Temp) {
+   case 0:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED), gSmbiosHiiHandle);
+     break;
+   case 1:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE), gSmbiosHiiHandle);
+     break;
+   case 2:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED), gSmbiosHiiHandle);
+     break;
+   case 3:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gSmbiosHiiHandle);
+     break;
+   }
+   //
+   // Front Panel Reset Status
+   //
+   Temp = Settings & 0x3;
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FRONT_PANEL_RESET), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FRONT_PANEL_RESET), gSmbiosHiiHandle);
+   switch (Temp) {
+   case 0:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED), gSmbiosHiiHandle);
+     break;
+   case 1:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED_NEWLINE), gSmbiosHiiHandle);
+     break;
+   case 2:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_IMPLEMENTED), gSmbiosHiiHandle);
+     break;
+   case 3:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gSmbiosHiiHandle);
+     break;
+   }
+ }
+@@ -2325,30 +2325,30 @@
+   UINT8   Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONNECTIONS), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONNECTIONS), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Connections, Option);
+   //
+   // Check reserved bits 7:2
+   //
+   if ((Connections & 0xFC) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO_2), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_RESERVED_ZERO_2), gSmbiosHiiHandle);
+   }
+   //
+   // Outbound Connection
+   //
+   if (BIT (Connections, 1) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OUTBOUND_CONN_ENABLED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OUTBOUND_CONN_ENABLED), gSmbiosHiiHandle);
+   } else {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTUBOUND_CONN_DISABLED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTUBOUND_CONN_DISABLED), gSmbiosHiiHandle);
+   }
+   //
+   // Inbound Connection
+   //
+   if (BIT (Connections, 0) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOIUND_CONN_ENABLED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOIUND_CONN_ENABLED), gSmbiosHiiHandle);
+   } else {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOUND_CONN_DISABLED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INBOUND_CONN_DISABLED), gSmbiosHiiHandle);
+   }
+ }
+ //
+@@ -2362,141 +2362,141 @@
+ {
+   UINTN Temp;
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_CHAR), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_CHAR), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Characteristics, Option);
+   //
+   // Check reserved bits 15:14
+   //
+   if ((Characteristics & 0xC000) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_15_14_RSVD), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_15_14_RSVD), gSmbiosHiiHandle);
+   }
+   //
+   // Bits 13:10 - DMTF Power Supply Type
+   //
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TYPE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TYPE), gSmbiosHiiHandle);
+   Temp = (Characteristics & 0x1C00) << 10;
+   switch (Temp) {
+   case 1:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE), gSmbiosHiiHandle);
+     break;
+   case 2:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gSmbiosHiiHandle);
+     break;
+   case 3:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LINEAR), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_LINEAR), gSmbiosHiiHandle);
+     break;
+   case 4:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SWITCHING), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SWITCHING), gSmbiosHiiHandle);
+     break;
+   case 5:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BATTERY), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BATTERY), gSmbiosHiiHandle);
+     break;
+   case 6:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UPS), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UPS), gSmbiosHiiHandle);
+     break;
+   case 7:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONVERTER), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CONVERTER), gSmbiosHiiHandle);
+     break;
+   case 8:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_REGULATOR), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_REGULATOR), gSmbiosHiiHandle);
+     break;
+   default:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_2), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_2), gSmbiosHiiHandle);
+   }
+   //
+   // Bits 9:7 - Status
+   //
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STATUS_DASH), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STATUS_DASH), gSmbiosHiiHandle);
+   Temp = (Characteristics & 0x380) << 7;
+   switch (Temp) {
+   case 1:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE), gSmbiosHiiHandle);
+     break;
+   case 2:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gSmbiosHiiHandle);
+     break;
+   case 3:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OK), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OK), gSmbiosHiiHandle);
+     break;
+   case 4:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NON_CRITICAL), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NON_CRITICAL), gSmbiosHiiHandle);
+     break;
+   case 5:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CRITICAL_POWER_SUPPLY), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CRITICAL_POWER_SUPPLY), gSmbiosHiiHandle);
+     break;
+   default:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNDEFINED), gSmbiosHiiHandle);
+   }
+   //
+   // Bits 6:3 - DMTF Input Voltage Range Switching
+   //
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INPUT_VOLTAGE_RANGE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INPUT_VOLTAGE_RANGE), gSmbiosHiiHandle);
+   Temp = (Characteristics & 0x78) << 3;
+   switch (Temp) {
+   case 1:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_OTHER_SPACE), gSmbiosHiiHandle);
+     break;
+   case 2:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gSmbiosHiiHandle);
+     break;
+   case 3:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MANUAL), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_MANUAL), gSmbiosHiiHandle);
+     break;
+   case 4:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AUTO_SWITCH), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AUTO_SWITCH), gSmbiosHiiHandle);
+     break;
+   case 5:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WIDE_RANGE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_WIDE_RANGE), gSmbiosHiiHandle);
+     break;
+   case 6:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_APPLICABLE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_NOT_APPLICABLE), gSmbiosHiiHandle);
+     break;
+   default:
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_3), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_3), gSmbiosHiiHandle);
+     break;
+   }
+   //
+   // Power supply is unplugged from the wall
+   //
+   if (BIT (Characteristics, 2) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_UNPLUGGED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_UNPLUGGED), gSmbiosHiiHandle);
+   } else {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PLUGGED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PLUGGED), gSmbiosHiiHandle);
+   }
+   //
+   // Power supply is present
+   //
+   if (BIT (Characteristics, 1) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PRESENT), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_PRESENT), gSmbiosHiiHandle);
+   } else {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_PRESENT), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_PRESENT), gSmbiosHiiHandle);
+   }
+   //
+   // hot replaceable
+   //
+   if (BIT (Characteristics, 0) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_REPLACE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_REPLACE), gSmbiosHiiHandle);
+   } else {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_REPLACE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_REPLACE), gSmbiosHiiHandle);
+   }
+ }
+diff --ignore-file-name-case -Naur ShellR33/SmbiosView/QueryTable.c GccShellR33/SmbiosView/QueryTable.c
+--- ShellR33/SmbiosView/QueryTable.c   2008-08-13 23:02:46.000000000 -0700
++++ GccShellR33/SmbiosView/QueryTable.c        2009-11-05 13:49:56.000000000 -0800
+@@ -23,7 +23,7 @@
+ #include "EfiShellLib.h"
+ #include "QueryTable.h"
+ #include "PrintInfo.h"
+-#include "smbios.h"
++#include "Smbios.h"
+ #include STRING_DEFINES_FILE
+@@ -2977,13 +2977,13 @@
+   }
+   if (NoInfo == TRUE) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_NO_INFO), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_NO_INFO), gSmbiosHiiHandle);
+   }
+   if (Value != 0) {
+     PrintToken (
+       STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_RSVD_BITS_SET),
+-      HiiHandle,
++      gSmbiosHiiHandle,
+       Value
+       );
+   }
+@@ -3025,7 +3025,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_WAKEUP_TYPE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_WAKEUP_TYPE), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Type, Option);
+   PRINT_TABLE_ITEM (SystemWakeupTypeTable, Type);
+ }
+@@ -3038,7 +3038,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_CHASSIS_TYPE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_CHASSIS_TYPE), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Type, Option);
+   //
+   // query table and print info
+@@ -3046,7 +3046,7 @@
+   PRINT_TABLE_ITEM (SystemEnclosureTypeTable, Type);
+   if (BIT (Type, 7) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CHASSIS_LOCK_PRESENT), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CHASSIS_LOCK_PRESENT), gSmbiosHiiHandle);
+   }
+ }
+@@ -3056,7 +3056,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_CHASSIS_STATUS), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_CHASSIS_STATUS), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Status, Option);
+   PRINT_TABLE_ITEM (SystemEnclosureStatusTable, Status);
+ }
+@@ -3067,7 +3067,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_CHASSIS_SECURITY), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_CHASSIS_SECURITY), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Status, Option);
+   PRINT_TABLE_ITEM (SESecurityStatusTable, Status);
+ }
+@@ -3080,7 +3080,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PROC_TYPE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PROC_TYPE), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Type, Option);
+   PRINT_TABLE_ITEM (ProcessorTypeTable, Type);
+ }
+@@ -3091,7 +3091,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PROC_UPDATE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PROC_UPDATE), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Upgrade, Option);
+   PRINT_TABLE_ITEM (ProcessorUpgradeTable, Upgrade);
+ }
+@@ -3104,7 +3104,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DETECTMETHOD), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DETECTMETHOD), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Method, Option);
+   PRINT_TABLE_ITEM (McErrorDetectMethodTable, Method);
+ }
+@@ -3115,7 +3115,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_CORRECT_CAPABILITY), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_CORRECT_CAPABILITY), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Capability, Option);
+   PRINT_BITS_INFO (McErrorCorrectCapabilityTable, Capability);
+ }
+@@ -3126,7 +3126,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_INTERLEAVE_SUPPORT), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_INTERLEAVE_SUPPORT), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Support, Option);
+   PRINT_TABLE_ITEM (McInterleaveSupportTable, Support);
+ }
+@@ -3137,7 +3137,7 @@
+   UINT8   Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_MEMORY_SPEED), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_MEMORY_SPEED), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Speed, Option);
+   PRINT_BITS_INFO (McMemorySpeedsTable, Speed);
+ }
+@@ -3148,7 +3148,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_REQUIRED_VOLTAGES), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_REQUIRED_VOLTAGES), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Voltage, Option);
+   PRINT_BITS_INFO (MemoryModuleVoltageTable, Voltage);
+ }
+@@ -3161,7 +3161,7 @@
+   UINT8   Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_MODULE_TYPE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_MODULE_TYPE), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Type, Option);
+   PRINT_BITS_INFO (MmMemoryTypeTable, Type);
+ }
+@@ -3172,7 +3172,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_MODULE_ERROR_STATUS), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_MODULE_ERROR_STATUS), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Status, Option);
+   PRINT_BITS_INFO (MmErrorStatusTable, Status);
+ }
+@@ -3185,7 +3185,7 @@
+   UINT8   Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CACHE_SRAM_TYPE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CACHE_SRAM_TYPE), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION ((UINT8) Type, Option);
+   PRINT_BITS_INFO (CacheSRAMTypeTable, (UINT8) Type);
+ }
+@@ -3196,7 +3196,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CACHE_ERROR_CORRECTING), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CACHE_ERROR_CORRECTING), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Type, Option);
+   PRINT_TABLE_ITEM (CacheErrCorrectingTypeTable, Type);
+ }
+@@ -3207,7 +3207,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CACHE_SYSTEM_TYPE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CACHE_SYSTEM_TYPE), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Type, Option);
+   PRINT_TABLE_ITEM (CacheSystemCacheTypeTable, Type);
+ }
+@@ -3218,7 +3218,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CACHE_ASSOCIATIVITY), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CACHE_ASSOCIATIVITY), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Associativity, Option);
+   PRINT_TABLE_ITEM (CacheAssociativityTable, Associativity);
+ }
+@@ -3231,7 +3231,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PORT_CONNECTOR_TYPE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PORT_CONNECTOR_TYPE), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Type, Option);
+   PRINT_TABLE_ITEM (PortConnectorTypeTable, Type);
+ }
+@@ -3242,7 +3242,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PORT_TYPE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PORT_TYPE), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Type, Option);
+   PRINT_TABLE_ITEM (PortTypeTable, Type);
+ }
+@@ -3255,7 +3255,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_TYPE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_TYPE), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Type, Option);
+   PRINT_TABLE_ITEM (SystemSlotTypeTable, Type);
+ }
+@@ -3266,7 +3266,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_DATA), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_DATA), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Width, Option);
+   PRINT_TABLE_ITEM (SystemSlotDataBusWidthTable, Width);
+ }
+@@ -3277,7 +3277,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_CURRENT_USAGE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_CURRENT_USAGE), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Usage, Option);
+   PRINT_TABLE_ITEM (SystemSlotCurrentUsageTable, Usage);
+ }
+@@ -3288,7 +3288,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_LENGTH), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_LENGTH), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Length, Option);
+   PRINT_TABLE_ITEM (SystemSlotLengthTable, Length);
+ }
+@@ -3299,7 +3299,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SLOT_CHARACTERISTICS), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SLOT_CHARACTERISTICS), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Chara1, Option);
+   PRINT_BITS_INFO (SlotCharacteristics1Table, Chara1);
+ }
+@@ -3310,7 +3310,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SLOT_CHARACTERISTICS_2), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SLOT_CHARACTERISTICS_2), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Chara2, Option);
+   PRINT_BITS_INFO (SlotCharacteristics2Table, Chara2);
+ }
+@@ -3323,7 +3323,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_ONBOARD_DEVICE_TYPE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_ONBOARD_DEVICE_TYPE), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Type, Option);
+   PRINT_TABLE_ITEM (OnboardDeviceTypesTable, Type);
+ }
+@@ -3336,7 +3336,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_EVENT_LOG_TYPE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_EVENT_LOG_TYPE), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Type, Option);
+   PRINT_TABLE_ITEM (SELTypesTable, Type);
+ }
+@@ -3347,7 +3347,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_EVENT_LOG_VAR_DATA_FORMAT), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_EVENT_LOG_VAR_DATA_FORMAT), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Type, Option);
+   PRINT_TABLE_ITEM (SELVarDataFormatTypeTable, Type);
+ }
+@@ -3358,7 +3358,7 @@
+   UINT8   Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_POST_RESULTS_BITMAP), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_POST_RESULTS_BITMAP), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Key, Option);
+   PRINT_BITS_INFO (PostResultsBitmapDw1Table, Key);
+ }
+@@ -3369,7 +3369,7 @@
+   UINT8   Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_POST_RESULTS_SECOND_DWORD), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_POST_RESULTS_SECOND_DWORD), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Key, Option);
+   PRINT_BITS_INFO (PostResultsBitmapDw2Table, Key);
+ }
+@@ -3382,20 +3382,20 @@
+ {
+   UINT8       Temp;
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_MANAGEMENT_TYPES), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_MANAGEMENT_TYPES), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (SMType, Option);
+   //
+   // Deal with wide range Value
+   //
+   if (SMType >= 0x80000000) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_OEM_ASSIGNED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_OEM_ASSIGNED), gSmbiosHiiHandle);
+   } else if (SMType >= 0x00020000) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_RSVD_FOR_FUTURE_ASSIGN), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_RSVD_FOR_FUTURE_ASSIGN), gSmbiosHiiHandle);
+   } else if (SMType >= 0x00010000) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_MANAGEMENT_PROBE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_MANAGEMENT_PROBE), gSmbiosHiiHandle);
+   } else if (SMType >= 0x31) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_RSVD_FOR_FUTURE_ASSIGN), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_RSVD_FOR_FUTURE_ASSIGN), gSmbiosHiiHandle);
+   } else {
+     //
+     // Deal with One byte data
+@@ -3413,7 +3413,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PHYS_MEM_ARRAY_LOCATION), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PHYS_MEM_ARRAY_LOCATION), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Location, Option);
+   PRINT_TABLE_ITEM (PMALocationTable, Location);
+ }
+@@ -3424,7 +3424,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PHYS_MEM_ARRAY_LOCATION), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PHYS_MEM_ARRAY_LOCATION), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Use, Option);
+   PRINT_TABLE_ITEM (PMAUseTable, Use);
+ }
+@@ -3435,7 +3435,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PHYS_MEM_ARRAY_ERROR), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PHYS_MEM_ARRAY_ERROR), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Type, Option);
+   PRINT_TABLE_ITEM (PMAErrorCorrectionTypesTable, Type);
+ }
+@@ -3448,7 +3448,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DEVICE_FORM_FACTOR), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DEVICE_FORM_FACTOR), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (FormFactor, Option);
+   PRINT_TABLE_ITEM (MemoryDeviceFormFactorTable, FormFactor);
+ }
+@@ -3459,7 +3459,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DEVICE_TYPE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DEVICE_TYPE), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Type, Option);
+   PRINT_TABLE_ITEM (MemoryDeviceTypeTable, Type);
+ }
+@@ -3470,7 +3470,7 @@
+   UINT8   Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DEVICE_TYPE_DETAIL), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DEVICE_TYPE_DETAIL), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (para, Option);
+   PRINT_BITS_INFO (MemoryDeviceTypeDetailTable, para);
+ }
+@@ -3483,7 +3483,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_ERROR_INFO), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_ERROR_INFO), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (ErrorType, Option);
+   PRINT_TABLE_ITEM (MemoryErrorTypeTable, ErrorType);
+ }
+@@ -3494,7 +3494,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_ERROR_GRANULARITY), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_ERROR_GRANULARITY), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Granularity, Option);
+   PRINT_TABLE_ITEM (MemoryErrorGranularityTable, Granularity);
+ }
+@@ -3505,7 +3505,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_ERROR_OP), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_ERROR_OP), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Operation, Option);
+   PRINT_TABLE_ITEM (MemoryErrorOperationTable, Operation);
+ }
+@@ -3518,7 +3518,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_POINTING_DEVICE_TYPE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_POINTING_DEVICE_TYPE), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Type, Option);
+   PRINT_TABLE_ITEM (PointingDeviceTypeTable, Type);
+ }
+@@ -3529,7 +3529,7 @@
+   UINT8   Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_POINTING_DEVICE_INTERFACE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_POINTING_DEVICE_INTERFACE), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Interface, Option);
+   PRINT_TABLE_ITEM (PointingDeviceInterfaceTable, Interface);
+ }
+@@ -3542,7 +3542,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PORTABLE_BATT_DEV_CHEM), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PORTABLE_BATT_DEV_CHEM), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Key, Option);
+   PRINT_TABLE_ITEM (PBDeviceChemistryTable, Key);
+ }
+@@ -3558,7 +3558,7 @@
+   UINT8       Loc;
+   Loc = (UINT8) ((Key & 0xE0) >> 5);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_VOLTAGE_PROBE_LOC), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_VOLTAGE_PROBE_LOC), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Loc, Option);
+   PRINT_TABLE_ITEM (VPLocationTable, Loc);
+ }
+@@ -3572,7 +3572,7 @@
+   UINT8       Status;
+   Status = (UINT8) (Key & 0x1F);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_VOLTAGE_PROBE_STATUS), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_VOLTAGE_PROBE_STATUS), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Status, Option);
+   PRINT_TABLE_ITEM (VPStatusTable, Status);
+ }
+@@ -3588,7 +3588,7 @@
+   UINT8       Status;
+   Status = (UINT8) ((Key & 0xE0) >> 5);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_COOLING_DEV_STATUS), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_COOLING_DEV_STATUS), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Status, Option);
+   PRINT_TABLE_ITEM (CoolingDeviceStatusTable, Status);
+ }
+@@ -3602,7 +3602,7 @@
+   UINT8       Type;
+   Type = (UINT8) (Key & 0x1F);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_COOLING_DEV_TYPE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_COOLING_DEV_TYPE), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Type, Option);
+   PRINT_TABLE_ITEM (CoolingDeviceTypeTable, Type);
+ }
+@@ -3618,7 +3618,7 @@
+   UINT8       Status;
+   Status = (UINT8) ((Key & 0xE0) >> 5);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_TEMP_PROBE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_TEMP_PROBE), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Status, Option);
+   PRINT_TABLE_ITEM (TemperatureProbeStatusTable, Status);
+ }
+@@ -3632,7 +3632,7 @@
+   UINT8       Loc;
+   Loc = (UINT8) (Key & 0x1F);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_VOLTAGE_PROBE_LOC), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_VOLTAGE_PROBE_LOC), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Loc, Option);
+   PRINT_TABLE_ITEM (TemperatureProbeLocTable, Loc);
+ }
+@@ -3648,7 +3648,7 @@
+   UINT8       Status;
+   Status = (UINT8) ((Key & 0xE0) >> 5);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_ELEC_PROBE_STATUS), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_ELEC_PROBE_STATUS), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Status, Option);
+   PRINT_TABLE_ITEM (ECPStatusTable, Status);
+ }
+@@ -3662,7 +3662,7 @@
+   UINT8       Loc;
+   Loc = (UINT8) (Key & 0x1F);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_ELEC_PROBE_LOC), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_ELEC_PROBE_LOC), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Loc, Option);
+   PRINT_TABLE_ITEM (ECPLocTable, Loc);
+ }
+@@ -3675,7 +3675,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MANAGEMENT_DEV_TYPE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MANAGEMENT_DEV_TYPE), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Key, Option);
+   PRINT_TABLE_ITEM (MDTypeTable, Key);
+ }
+@@ -3686,7 +3686,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MANAGEMENT_DEV_ADDR_TYPE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MANAGEMENT_DEV_ADDR_TYPE), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Key, Option);
+   PRINT_TABLE_ITEM (MDAddressTypeTable, Key);
+ }
+@@ -3699,7 +3699,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_CHANNEL_TYPE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_CHANNEL_TYPE), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Key, Option);
+   PRINT_TABLE_ITEM (MemoryChannelTypeTable, Key);
+ }
+@@ -3712,7 +3712,7 @@
+   UINT8 Option
+   )
+ {
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_BMC_INTERFACE_TYPE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_BMC_INTERFACE_TYPE), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Key, Option);
+   PRINT_TABLE_ITEM (IPMIDIBMCInterfaceTypeTable, Key);
+ }
+@@ -3726,7 +3726,7 @@
+   //
+   // display
+   //
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_STRUCT_TYPE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_STRUCT_TYPE), gSmbiosHiiHandle);
+   PRINT_INFO_OPTION (Key, Option);
+   PRINT_TABLE_ITEM (StructureTypeInfoTable, Key);
+ }
+diff --ignore-file-name-case -Naur ShellR33/SmbiosView/Smbios.h GccShellR33/SmbiosView/Smbios.h
+--- ShellR33/SmbiosView/Smbios.h       2008-10-06 00:03:04.000000000 -0700
++++ GccShellR33/SmbiosView/Smbios.h    2009-11-05 13:49:56.000000000 -0800
+@@ -32,7 +32,7 @@
+     0xda4ccda5, 0xe09d, 0x4f89, 0xb0, 0xf2, 0xdf, 0x84, 0x5c, 0xbb, 0x92, 0x80 \
+   }
+-extern EFI_HII_HANDLE HiiHandle;
++extern EFI_HII_HANDLE gSmbiosHiiHandle;
+diff --ignore-file-name-case -Naur ShellR33/SmbiosView/smbiosview.c GccShellR33/SmbiosView/smbiosview.c
+--- ShellR33/SmbiosView/smbiosview.c   2008-08-13 23:02:46.000000000 -0700
++++ GccShellR33/SmbiosView/smbiosview.c        2009-11-05 13:49:56.000000000 -0800
+@@ -26,7 +26,7 @@
+ #include "smbiosview.h"
+ #include "PrintInfo.h"
+ #include "QueryTable.h"
+-#include "smbios.h"
++#include "Smbios.h"
+ extern UINT8                STRING_ARRAY_NAME[];
+@@ -45,7 +45,7 @@
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE              HiiHandle;
++EFI_HII_HANDLE              gSmbiosHiiHandle;
+ EFI_GUID                    EfiSmbiosViewGuid = EFI_SMBIOS_GUID;
+ SHELL_VAR_CHECK_ITEM        SmbiosviewCheckList[] = {
+   {
+@@ -147,7 +147,7 @@
+   //
+   EnableOutputTabPause();
+-  Status = LibInitializeStrings (&HiiHandle, STRING_ARRAY_NAME, &EfiSmbiosViewGuid);
++  Status = LibInitializeStrings (&gSmbiosHiiHandle, STRING_ARRAY_NAME, &EfiSmbiosViewGuid);
+   if (EFI_ERROR (Status)) {
+     return Status;
+@@ -157,19 +157,19 @@
+   if (VarCheckOk != RetCode) {
+     switch (RetCode) {
+     case VarCheckLackValue:
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_LACK_ARG), HiiHandle, L"smbiosview", Useful);
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_LACK_ARG), gSmbiosHiiHandle, L"smbiosview", Useful);
+       break;
+     case VarCheckConflict:
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_FLAG_CONFLICT), HiiHandle, L"smbiosview", Useful);
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_FLAG_CONFLICT), gSmbiosHiiHandle, L"smbiosview", Useful);
+       break;
+     case VarCheckDuplicate:
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_DUP_FLAG), HiiHandle, L"smbiosview", Useful);
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_DUP_FLAG), gSmbiosHiiHandle, L"smbiosview", Useful);
+       break;
+     case VarCheckUnknown:
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_UNKNOWN_FLAG), HiiHandle, L"smbiosview", Useful);
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_UNKNOWN_FLAG), gSmbiosHiiHandle, L"smbiosview", Useful);
+       break;
+     default:
+@@ -191,10 +191,10 @@
+         ChkPck.FlagCount > 2 ||
+         (2 == ChkPck.FlagCount && !LibCheckVarGetFlag (&ChkPck, L"-b"))
+         ) {
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_MANY), HiiHandle, L"smbiosview");
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_MANY), gSmbiosHiiHandle, L"smbiosview");
+       Status = EFI_INVALID_PARAMETER;
+     } else {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_VERBOSE_HELP), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_VERBOSE_HELP), gSmbiosHiiHandle);
+       Status = EFI_SUCCESS;
+     }
+@@ -202,7 +202,7 @@
+   }
+   if (ChkPck.ValueCount > 0) {
+-    PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_MANY), HiiHandle, L"smbiosview");
++    PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_TOO_MANY), gSmbiosHiiHandle, L"smbiosview");
+     Status = EFI_INVALID_PARAMETER;
+     goto Done;
+   }
+@@ -233,7 +233,7 @@
+   if (Item) {
+     StructType = (UINT8) StrToUInteger (Item->VarStr, &Status);
+     if (EFI_ERROR (Status)) {
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), HiiHandle, L"smbiosview", Item->VarStr);
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), gSmbiosHiiHandle, L"smbiosview", Item->VarStr);
+       Status = EFI_INVALID_PARAMETER;
+       goto Done;
+     }
+@@ -244,7 +244,7 @@
+     RandomView   = FALSE;
+     StructHandle = (UINT16) (StrToUIntegerBase (Item->VarStr, 16, &Status));
+     if (EFI_ERROR (Status)) {
+-      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), HiiHandle, L"smbiosview", Item->VarStr);
++      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_INVALID_ARG), gSmbiosHiiHandle, L"smbiosview", Item->VarStr);
+       Status = EFI_INVALID_PARAMETER;
+       goto Done;
+     }
+@@ -324,7 +324,7 @@
+   SMBiosTable = NULL;
+   LibSmbiosGetEPS (&SMBiosTable);
+   if (SMBiosTable == NULL) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_CANNOT_ACCESS_TABLE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_CANNOT_ACCESS_TABLE), gSmbiosHiiHandle);
+     return EFI_BAD_BUFFER_SIZE;
+   }
+@@ -338,21 +338,21 @@
+     SmbiosMinorVersion = SMBiosTable->MinorVersion;
+     Print (L"=========================================================\n");
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_QUERY_STRUCT_COND), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_QUERY_STRUCT_COND), gSmbiosHiiHandle);
+     if (QueryType == STRUCTURE_TYPE_RANDOM) {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_QUERYTYPE_RANDOM), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_QUERYTYPE_RANDOM), gSmbiosHiiHandle);
+     } else {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_QUERYTYPE), HiiHandle, QueryType);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_QUERYTYPE), gSmbiosHiiHandle, QueryType);
+     }
+     if (RandomView) {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_QUERYHANDLE_RANDOM), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_QUERYHANDLE_RANDOM), gSmbiosHiiHandle);
+     } else {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_QUERYHANDLE), HiiHandle, QueryHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_QUERYHANDLE), gSmbiosHiiHandle, QueryHandle);
+     }
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_SHOWTYPE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_SHOWTYPE), gSmbiosHiiHandle);
+     Print (GetShowTypeString (gShowType));
+     Print (L"\n\n");
+@@ -401,15 +401,15 @@
+       Print (L"\n=========================================================\n");
+       PrintToken (
+         STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_TYPE_HANDLE_DUMP_STRUCT),
+-        HiiHandle,
++        gSmbiosHiiHandle,
+         pStruct.Hdr->Type,
+         pStruct.Hdr->Handle
+         );
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_INDEX_LENGTH), HiiHandle, Index, Length);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_INDEX_LENGTH), gSmbiosHiiHandle, Index, Length);
+       //
+       // Addr of structure in structure in table
+       //
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ADDR), HiiHandle, TableHead + Offset);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ADDR), gSmbiosHiiHandle, TableHead + Offset);
+       DumpHex (0, 0, Length, Buffer);
+       //
+@@ -473,7 +473,7 @@
+     return EFI_SUCCESS;
+   }
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTER_Q), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTER_Q), gSmbiosHiiHandle);
+   Input (L"$", InputStr, 3);
+   //
+@@ -507,7 +507,7 @@
+       //
+       gShowType = (UINT8) (InputStr[Index] - (CHAR16) (L'0'));
+     } else {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_UNKNOWN_INTERNAL_COMMAND), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_UNKNOWN_INTERNAL_COMMAND), gSmbiosHiiHandle);
+     }
+   } else if (InputStr[Index] == '/') {
+     Index++;
+@@ -521,7 +521,7 @@
+         return Status;
+       }
+     } else {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_UNKNOWN_INTERNAL_COMMAND), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_UNKNOWN_INTERNAL_COMMAND), gSmbiosHiiHandle);
+     }
+   } else {
+     Print (L"");
+@@ -539,25 +539,25 @@
+   // print help info
+   //
+   Print (L"\n============================================================\n");
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_SMBIOS_UTILITY), HiiHandle);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_USAGE), HiiHandle);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_HSMBIOSVIEW), HiiHandle);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_EXAMPLES), HiiHandle);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_SHOW_STAT_INFO), HiiHandle);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_SHOW_ALL_STRUCT_TYPE), HiiHandle);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_SHOW_STRUCT_HANDLE), HiiHandle);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_SHOW_ALL_OUTPUT_TO_FILE), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_SMBIOS_UTILITY), gSmbiosHiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_USAGE), gSmbiosHiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_HSMBIOSVIEW), gSmbiosHiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_EXAMPLES), gSmbiosHiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_SHOW_STAT_INFO), gSmbiosHiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_SHOW_ALL_STRUCT_TYPE), gSmbiosHiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_SHOW_STRUCT_HANDLE), gSmbiosHiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_SHOW_ALL_OUTPUT_TO_FILE), gSmbiosHiiHandle);
+   Print (L"\n");
+   //
+   // Internal command
+   //
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_INTERNAL_COMMANDS), HiiHandle);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_QUIT_SMBIOSVIEW), HiiHandle);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_CHANGE_DISPLAY_NONE), HiiHandle);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_CHANGE_DISPLAY_OUTLINE), HiiHandle);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_CHANGE_DISPLAY_NORMAL), HiiHandle);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_CHANGE_DISPLAY_DETAIL), HiiHandle);
+-  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_SHOW_HELP), HiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_INTERNAL_COMMANDS), gSmbiosHiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_QUIT_SMBIOSVIEW), gSmbiosHiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_CHANGE_DISPLAY_NONE), gSmbiosHiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_CHANGE_DISPLAY_OUTLINE), gSmbiosHiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_CHANGE_DISPLAY_NORMAL), gSmbiosHiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_CHANGE_DISPLAY_DETAIL), gSmbiosHiiHandle);
++  PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_SHOW_HELP), gSmbiosHiiHandle);
+   Print (L"\n============================================================\n");
+ }
+@@ -603,12 +603,12 @@
+   SMBiosTable = NULL;
+   LibSmbiosGetEPS (&SMBiosTable);
+   if (SMBiosTable == NULL) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_CANNOT_ACCESS_TABLE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_CANNOT_ACCESS_TABLE), gSmbiosHiiHandle);
+     return EFI_NOT_FOUND;
+   }
+   if (CompareMem (SMBiosTable->AnchorString, "_SM_", 4) != 0) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_SMBIOS_TABLE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_SMBIOS_TABLE), gSmbiosHiiHandle);
+     return EFI_INVALID_PARAMETER;
+   }
+   //
+@@ -622,7 +622,7 @@
+   mStatisticsTable = (STRUCTURE_STATISTICS *) AllocatePool (SMBiosTable->NumberOfSmbiosStructures * sizeof (STRUCTURE_STATISTICS));
+   if (mStatisticsTable == NULL) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_OUT_OF_MEM), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_OUT_OF_MEM), gSmbiosHiiHandle);
+     return EFI_OUT_OF_RESOURCES;
+   }
+@@ -686,7 +686,7 @@
+   //
+   LibSmbiosGetEPS (&SMBiosTable);
+   if (SMBiosTable == NULL) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_CANNOT_ACCESS_TABLE), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_CANNOT_ACCESS_TABLE), gSmbiosHiiHandle);
+     return EFI_UNSUPPORTED;
+   }
+@@ -698,7 +698,7 @@
+   }
+   if (mStatisticsTable == NULL) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_CANNOT_ACCESS_STATS), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_CANNOT_ACCESS_STATS), gSmbiosHiiHandle);
+     return EFI_NOT_FOUND;
+   }
+@@ -709,12 +709,12 @@
+   // display statistics table content
+   //
+   for (Index = 1; Index <= Num; Index++) {
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_INDEX), HiiHandle, pStatistics->Index);
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_TYPE), HiiHandle, pStatistics->Type);
+-    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_HANDLE), HiiHandle, pStatistics->Handle);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_INDEX), gSmbiosHiiHandle, pStatistics->Index);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_TYPE), gSmbiosHiiHandle, pStatistics->Type);
++    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_HANDLE), gSmbiosHiiHandle, pStatistics->Handle);
+     if (Option >= SHOW_DETAIL) {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_OFFSET), HiiHandle, pStatistics->Addr);
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_LENGTH), HiiHandle, pStatistics->Length);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_OFFSET), gSmbiosHiiHandle, pStatistics->Addr);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_LENGTH), gSmbiosHiiHandle, pStatistics->Length);
+     }
+     Print (L"\n");
+@@ -723,7 +723,7 @@
+     // Display 20 lines and wait for a page break
+     //
+     if (Index % 20 == 0) {
+-      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTER_CONTINUE), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTER_CONTINUE), gSmbiosHiiHandle);
+       Status = WaitEnter ();
+       if (EFI_ERROR (Status)) {
+         if (Status == EFI_ABORTED) {
+diff --ignore-file-name-case -Naur ShellR33/SmbiosView/Smbiosview.inf GccShellR33/SmbiosView/Smbiosview.inf
+--- ShellR33/SmbiosView/Smbiosview.inf 2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/SmbiosView/Smbiosview.inf      2009-09-22 15:37:05.000000000 -0700
+@@ -25,7 +25,7 @@
+ COMPONENT_TYPE       = APPLICATION
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   SmBiosViewStrings.uni
+   QueryTable.c
+   EventLogInfo.c
+@@ -36,19 +36,19 @@
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
+-  $(EFI_SOURCE)\Application\Shell\Inc
+-  $(EFI_SOURCE)\Application\Shell\Library
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
++  $(EFI_SOURCE)/Application/Shell/Inc
++  $(EFI_SOURCE)/Application/Shell/Library
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/stall/stall.inf GccShellR33/stall/stall.inf
+--- ShellR33/stall/stall.inf   2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/stall/stall.inf        2009-09-22 15:37:05.000000000 -0700
+@@ -40,24 +40,24 @@
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   stallStrings.uni
+   stall.c
+   stall.h
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/TelnetMgmt/TelnetMgmt.c GccShellR33/TelnetMgmt/TelnetMgmt.c
+--- ShellR33/TelnetMgmt/TelnetMgmt.c   2006-08-07 02:14:38.000000000 -0700
++++ GccShellR33/TelnetMgmt/TelnetMgmt.c        2009-11-05 13:49:56.000000000 -0800
+@@ -32,7 +32,7 @@
+ //
+ #include STRING_DEFINES_FILE
+-EFI_HII_HANDLE  HiiHandle;
++static EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiTelnetMgmtGuid = EFI_TELNETMGMT_GUID;
+ EFI_GUID        mEfiTelnetServerGuid = EFI_TELNET_SERVER_PROTOCOL_GUID;
+ SHELL_VAR_CHECK_ITEM        TelnetmgmtCheckList[] = {
+diff --ignore-file-name-case -Naur ShellR33/TelnetMgmt/TelnetMgmt.h GccShellR33/TelnetMgmt/TelnetMgmt.h
+--- ShellR33/TelnetMgmt/TelnetMgmt.h   2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/TelnetMgmt/TelnetMgmt.h        2009-11-05 13:49:56.000000000 -0800
+@@ -29,4 +29,4 @@
+     0x55d41b9a, 0x954d, 0x4fbb, 0x8d, 0x6d, 0x24, 0x75, 0xf5, 0x30, 0x9d, 0x37 \
+   }
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/TelnetMgmt/TelnetMgmt.inf GccShellR33/TelnetMgmt/TelnetMgmt.inf
+--- ShellR33/TelnetMgmt/TelnetMgmt.inf 2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/TelnetMgmt/TelnetMgmt.inf      2009-09-22 15:37:05.000000000 -0700
+@@ -25,23 +25,23 @@
+ COMPONENT_TYPE       = APPLICATION
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   TelnetMgmtStrings.uni
+   TelnetMgmt.c
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/TelnetMgmt/TelnetServer.h GccShellR33/TelnetMgmt/TelnetServer.h
+--- ShellR33/TelnetMgmt/TelnetServer.h 2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/TelnetMgmt/TelnetServer.h      2009-09-22 15:37:05.000000000 -0700
+@@ -69,11 +69,11 @@
+ //
+ #define EFI_TELNET_SERVER_REVISION  0x00010000
+-typedef struct _EFI_TELNET_SERVER_PROTOCOL {
++struct _EFI_TELNET_SERVER_PROTOCOL {
+   UINT64                        Revision;
+   UINT8                         TerminalType;
+   EFI_TELNET_SERVER_SET_OPTION  SetOption;
+-} EFI_TELNET_SERVER_PROTOCOL;
++};
+ //
+ // Global Variables
+diff --ignore-file-name-case -Naur ShellR33/time/time.c GccShellR33/time/time.c
+--- ShellR33/time/time.c       2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/time/time.c    2009-09-22 15:37:05.000000000 -0700
+@@ -93,8 +93,8 @@
+ {
+   EFI_STATUS              Status;
+   EFI_TIME                Time;
+-  UINTN                   Offset;
+-  UINTN                   Data;
++  INTN                    Offset;
++  INTN                    Data;
+   EFI_HII_HANDLE          HiiHandle;
+   INTN                    nValue;
+   UINTN                   uValueSize;
+diff --ignore-file-name-case -Naur ShellR33/time/time.inf GccShellR33/time/time.inf
+--- ShellR33/time/time.inf     2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/time/time.inf  2009-09-22 15:37:05.000000000 -0700
+@@ -40,24 +40,24 @@
+ [sources.common]
+-   ..\ShCommonStrings.uni   
++   ../ShCommonStrings.uni   
+    TimeStrings.uni
+    Time.c
+    Time.h 
+                                           
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/touch/touch.c GccShellR33/touch/touch.c
+--- ShellR33/touch/touch.c     2006-08-07 02:14:38.000000000 -0700
++++ GccShellR33/touch/touch.c  2009-11-05 13:49:56.000000000 -0800
+@@ -64,8 +64,8 @@
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
+-EFI_GUID        EfiTouchGuid = EFI_TOUCH_GUID;
++static EFI_HII_HANDLE   HiiHandle;
++EFI_GUID                EfiTouchGuid = EFI_TOUCH_GUID;
+ SHELL_VAR_CHECK_ITEM    TouchCheckList[] = {
+   {
+     L"-r",
+diff --ignore-file-name-case -Naur ShellR33/touch/touch.h GccShellR33/touch/touch.h
+--- ShellR33/touch/touch.h     2005-08-23 00:16:36.000000000 -0700
++++ GccShellR33/touch/touch.h  2009-11-05 13:49:56.000000000 -0800
+@@ -29,4 +29,4 @@
+     0xa16a4695, 0x5815, 0x4d4f, 0xb8, 0xe, 0x6a, 0xf, 0x88, 0xac, 0xdb, 0x6c \
+   }
+-#endif
+\ No newline at end of file
++#endif
+diff --ignore-file-name-case -Naur ShellR33/touch/touch.inf GccShellR33/touch/touch.inf
+--- ShellR33/touch/touch.inf   2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/touch/touch.inf        2009-09-22 15:37:05.000000000 -0700
+@@ -39,23 +39,23 @@
+ COMPONENT_TYPE       = APPLICATION
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   TouchStrings.uni
+   touch.c
+     
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/type/type.c GccShellR33/type/type.c
+--- ShellR33/type/type.c       2006-08-07 02:14:38.000000000 -0700
++++ GccShellR33/type/type.c    2009-11-05 13:49:56.000000000 -0800
+@@ -59,7 +59,7 @@
+ BOOLEAN         TypeUnicode;
+ BOOLEAN         TypeAuto;
+-EFI_HII_HANDLE  HiiHandle;
++static EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiTypeGuid = EFI_TYPE_GUID;
+ SHELL_VAR_CHECK_ITEM    TypeCheckList[] = {
+   {
+diff --ignore-file-name-case -Naur ShellR33/type/type.inf GccShellR33/type/type.inf
+--- ShellR33/type/type.inf     2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/type/type.inf  2009-09-22 15:37:05.000000000 -0700
+@@ -40,24 +40,24 @@
+ [sources.common]
+-   ..\ShCommonStrings.uni   
++   ../ShCommonStrings.uni   
+    TypeStrings.uni
+    type.c
+    type.h 
+                                           
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/tzone/timezone.inf GccShellR33/tzone/timezone.inf
+--- ShellR33/tzone/timezone.inf        2007-06-25 02:05:05.000000000 -0700
++++ GccShellR33/tzone/timezone.inf     2009-09-22 15:37:05.000000000 -0700
+@@ -25,24 +25,24 @@
+ COMPONENT_TYPE       = APPLICATION
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   TZoneStrings.uni
+   tzone.c
+   tzone.h
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/unload/unload.c GccShellR33/unload/unload.c
+--- ShellR33/unload/unload.c   2009-05-27 01:55:16.000000000 -0700
++++ GccShellR33/unload/unload.c        2009-09-22 15:37:05.000000000 -0700
+@@ -73,7 +73,7 @@
+ EFI_STATUS
+ _UnloadGetDriverName (
+   EFI_HANDLE                        DriverBindingHandle,
+-  UINT8                             *Language,
++  CHAR8                             *Language,
+   BOOLEAN                           ImageName,
+   CHAR16                            **DriverName
+   )
+@@ -184,7 +184,7 @@
+     DevicePath      = NULL;
+     BestDeviceName  = NULL;
+-    Status          = BS->HandleProtocol (Handle, &gEfiDevicePathProtocolGuid, &DevicePath);
++    Status          = BS->HandleProtocol (Handle, &gEfiDevicePathProtocolGuid, (VOID **)&DevicePath);
+     Print (L"\n");
+     PrintToken (STRING_TOKEN (STR_UNLOAD_CONTROLLER_NAME), HiiUnloadHandle);
+diff --ignore-file-name-case -Naur ShellR33/unload/unload.inf GccShellR33/unload/unload.inf
+--- ShellR33/unload/unload.inf 2007-03-15 20:07:49.000000000 -0700
++++ GccShellR33/unload/unload.inf      2009-09-22 15:37:05.000000000 -0700
+@@ -39,23 +39,23 @@
+ COMPONENT_TYPE       = APPLICATION
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   UnloadStrings.uni
+   unload.c
+     
+ [includes.common]
+   .
+-  ..\Inc
+-  ..\Library
+-  $(EDK_SOURCE)\Foundation
+-  $(EDK_SOURCE)\Foundation\Include
+-  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+-  $(EDK_SOURCE)\Foundation\Efi
+-  $(EDK_SOURCE)\Foundation\Efi\Include
+-  $(EDK_SOURCE)\Foundation\FrameWork
+-  $(EDK_SOURCE)\Foundation\FrameWork\Include
+-  $(EDK_SOURCE)\Foundation\Core\Dxe
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
++  $(EDK_SOURCE)/Foundation
++  $(EDK_SOURCE)/Foundation/Include
++  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
++  $(EDK_SOURCE)/Foundation/Efi
++  $(EDK_SOURCE)/Foundation/Efi/Include
++  $(EDK_SOURCE)/Foundation/FrameWork
++  $(EDK_SOURCE)/Foundation/FrameWork/Include
++  $(EDK_SOURCE)/Foundation/Core/Dxe
++  $(DEST_DIR)/
+ [libraries.common]  
+   EfiShellLib
+diff --ignore-file-name-case -Naur ShellR33/ver/Ver.inf GccShellR33/ver/Ver.inf
+--- ShellR33/ver/Ver.inf       2008-08-13 23:02:46.000000000 -0700
++++ GccShellR33/ver/Ver.inf    2009-11-04 15:23:34.000000000 -0800
+@@ -40,33 +40,35 @@
+ [sources.common]
+-   ..\ShCommonStrings.uni   
++   ../ShCommonStrings.uni   
+    VerStrings.uni
+    Ver.c
+    Ver.h 
+    
+-[sources.ia32,sources.x64]
+-   ia32\ver32.c
++[sources.ia32,sources.x64,sources.ARM]
++   ia32/ver32.c
+ [sources.ipf]
+-   ipf\ver64.c
++   ipf/ver64.c
+ [sources.ebc]
+-   ebc\verEbc.c
++   ebc/verEbc.c
++   
++   
+                        &n