]> git.proxmox.com Git - mirror_edk2.git/commitdiff
EdkShellPkg/ShellR64.patch: Adding missing files from the patch
authorOlivier Martin <olivier.martin@arm.com>
Tue, 14 Jan 2014 15:31:01 +0000 (15:31 +0000)
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 14 Jan 2014 15:31:01 +0000 (15:31 +0000)
Some files were missing from the newly generated patch:
- Library/Aarch64/efilibplat.h
- Library/Arm/efilibplat.h

Instructions have been written to correctly generate this patch:
https://sourceforge.net/apps/mediawiki/tianocore/index.php?title=ArmPkg/Binaries#EdkShellPkg

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15113 6f19259b-4bc3-4df7-8a09-765794883524

EdkShellPkg/ShellR64.patch

index d0578408bd9a6c9379b70c296bdb6d920036162c..477125e365f1344f83445e31515c93d78124ee6f 100644 (file)
-Index: EfiCompress/Compress.h
-===================================================================
---- EfiCompress/Compress.h     (revision 64)
-+++ EfiCompress/Compress.h     (working copy)
-@@ -57,4 +57,4 @@
- --*/
--#endif
-\ No newline at end of file
-+#endif
-Index: EfiCompress/CompressMain.c
-===================================================================
---- EfiCompress/CompressMain.c (revision 64)
-+++ EfiCompress/CompressMain.c (working copy)
-@@ -50,7 +50,7 @@
+From 6451e0daf7f733a27e1afb3c7ac662a620d8b93b Mon Sep 17 00:00:00 2001
+From: Olivier Martin <olivier.martin@arm.com>
+Date: Tue, 14 Jan 2014 14:43:50 +0000
+Subject: [PATCH] EDK Shell patch to support GCC
+
+---
+ DeviceTree/devicetree.c      |   4 +-
+ DeviceTree/devicetree.h      |   1 +
+ DeviceTree/devicetree.inf    |  28 +--
+ EfiCompress/Compress.h       |   2 +-
+ EfiCompress/CompressMain.c   |   2 +-
+ EfiCompress/compress.c       |   2 +-
+ EfiCompress/compress.inf     |  32 +--
+ EfiDecompress/Decompress.c   |   8 +-
+ EfiDecompress/Decompress.h   |   2 +-
+ EfiDecompress/Decompress.inf |  33 +--
+ IfConfig/IfConfig.c          |   6 +-
+ IfConfig/IfConfig.h          |   1 +
+ IfConfig/IfConfig.inf        |  34 +--
+ IfConfig/ShellNetHelper.h    |   1 +
+ IpConfig/IpConfig.c          |   4 +-
+ IpConfig/IpConfig.h          |   2 +-
+ IpConfig/IpConfig.inf        |  29 +--
+ Library/Aarch64/efilibplat.h |  38 ++++
+ Library/Arm/efilibplat.h     |  39 ++++
+ Library/CRC.c                |   2 +-
+ Library/CRC.h                |   4 +-
+ Library/ConsistMapping.c     |   2 +-
+ Library/ConsistMapping.h     |   4 +-
+ Library/DPath.c              |   6 +-
+ Library/DPath.h              |   3 +-
+ Library/Data.c               |   2 +-
+ Library/Ebc/EfiLibPlat.h     |   1 +
+ Library/EfiPart.h            |   1 +
+ Library/EfiShellLib.h        |  11 +-
+ Library/EfiShellLib.inf      |  51 +++--
+ Library/Event.c              |   2 +-
+ Library/Event.h              |   4 +-
+ Library/FileIO.c             |   6 +-
+ Library/FileIO.h             |   4 +-
+ Library/Handle.c             |   9 +-
+ Library/Handle.h             |   1 +
+ Library/HiiSupport.c         |   6 +-
+ Library/HiiSupport.h         |   1 +
+ Library/IA32/efilibplat.h    |   2 +-
+ Library/IO.c                 |  13 +-
+ Library/IO.h                 |   4 +-
+ Library/IPF/efilibplat.h     |   1 +
+ Library/IPF/libsalpal.h      |   2 +-
+ Library/IPF/palproc.h        |   1 +
+ Library/Init.c               |   2 +-
+ Library/LinkedList.h         |   4 +-
+ Library/Lock.c               |   2 +-
+ Library/Lock.h               |   4 +-
+ Library/Mem.c                |   2 +-
+ Library/Mem.h                |   4 +-
+ Library/Misc.c               |  15 +-
+ Library/Misc.h               |   1 +
+ Library/Perf.c               |   2 +-
+ Library/RtData.c             |   2 +-
+ Library/ShellDebug.c         |   2 +-
+ Library/ShellDebug.h         |   1 +
+ Library/ShellEnvInt.c        |   2 +-
+ Library/ShellEnvInt.h        |   4 +-
+ Library/Str.c                |   6 +-
+ Library/Str.h                |   1 +
+ Library/VarCheck.c           |   2 +-
+ Library/VarCheck.h           |   3 +-
+ Library/X64/efilibplat.h     |   1 +
+ LoadPciRom/LoadPciRom.c      |   8 +-
+ LoadPciRom/LoadPciRom.h      |   1 +
+ LoadPciRom/LoadPciRom.inf    |  28 +--
+ Ping/Ping.c                  |  27 ++-
+ Ping/Ping.h                  |   1 +
+ Ping/Ping.inf                |  34 +--
+ Shell.inf                    | 305 +++++++++++++-------------
+ ShellFull.inf                | 494 ++++++++++++++++++++++---------------------
+ SmbiosView/EventLogInfo.c    |   2 +-
+ SmbiosView/EventLogInfo.h    |   1 +
+ SmbiosView/LibSmbios.h       |   1 +
+ SmbiosView/LibSmbiosView.c   |  10 +-
+ SmbiosView/LibSmbiosView.h   |   3 +-
+ SmbiosView/PrintInfo.c       |   2 +-
+ SmbiosView/PrintInfo.h       |   1 +
+ SmbiosView/QueryTable.c      |   2 +-
+ SmbiosView/QueryTable.h      |   1 +
+ SmbiosView/Smbios.h          |   1 +
+ SmbiosView/Smbiosview.inf    |  33 +--
+ SmbiosView/smbiosview.c      |   4 +-
+ SmbiosView/smbiosview.h      |   1 +
+ TelnetMgmt/TelnetMgmt.c      |   4 +-
+ TelnetMgmt/TelnetMgmt.h      |   2 +-
+ TelnetMgmt/TelnetMgmt.inf    |  29 +--
+ TelnetMgmt/TelnetServer.h    |   1 +
+ attrib/attrib.c              |   6 +-
+ attrib/attrib.h              |   3 +-
+ attrib/attrib.inf            |  28 +--
+ cls/cls.c                    |   4 +-
+ cls/cls.h                    |   1 +
+ cls/cls.inf                  |  29 +--
+ comp/comp.c                  |   2 +-
+ comp/comp.h                  |   2 +-
+ comp/comp.inf                |  31 +--
+ cp/cp.c                      |  10 +-
+ cp/cp.h                      |   3 +-
+ cp/cp.inf                    |  29 +--
+ date/date.c                  |  10 +-
+ date/date.h                  |   1 +
+ date/date.inf                |  29 +--
+ dblk/dblk.c                  |   2 +-
+ dblk/dblk.h                  |   1 +
+ dblk/dblk.inf                |  31 +--
+ dblk/efidump.c               |  18 +-
+ devices/devices.c            |   4 +-
+ devices/devices.h            |   1 +
+ devices/devices.inf          |  28 +--
+ dmem/MemCommonPart.c         |  14 +-
+ dmem/MemCommonPart.h         |   2 +-
+ dmem/debug.h                 |   1 +
+ dmem/dmem.inf                |  30 +--
+ dmem/efidump.c               |  20 +-
+ dmpstore/dmpstore.c          |   4 +-
+ dmpstore/dmpstore.h          |   1 +
+ dmpstore/dmpstore.inf        |  31 +--
+ drivers/drivers.c            |   6 +-
+ drivers/drivers.h            |   1 +
+ drivers/drivers.inf          |  28 +--
+ drvcfg/drvcfg.c              |   4 +-
+ drvcfg/drvcfg.h              |   1 +
+ drvcfg/drvcfg.inf            |  28 +--
+ drvdiag/drvdiag.c            |   4 +-
+ drvdiag/drvdiag.h            |   1 +
+ drvdiag/drvdiag.inf          |  28 +--
+ edit/edit.inf                |  32 +--
+ edit/editor.h                |   5 +-
+ edit/editortype.h            |   7 +-
+ edit/libEditor.c             |  24 +--
+ edit/libFileBuffer.c         |  24 ++-
+ edit/libInputBar.c           |  26 +--
+ edit/libMenuBar.c            |   9 +-
+ edit/libMisc.h               |   1 +
+ edit/libStatusBar.c          |  11 +-
+ edit/libTitleBar.c           |  17 +-
+ edit/libeditor.h             |   1 +
+ edit/libfilebuffer.h         |   1 +
+ edit/libinputbar.h           |   1 +
+ edit/libmenubar.h            |   1 +
+ edit/libstatusbar.h          |   1 +
+ edit/libtitlebar.h           |   1 +
+ edit/main.c                  |  30 +--
+ err/DebugMask.h              |   1 +
+ err/err.c                    |  12 +-
+ err/err.h                    |   2 +-
+ err/err.inf                  |  31 +--
+ guid/guid.c                  |   4 +-
+ guid/guid.h                  |   2 +-
+ guid/guid.inf                |  33 +--
+ hexedit/heditor.h            |   5 +-
+ hexedit/heditortype.h        |   7 +-
+ hexedit/hexedit.inf          |  31 +--
+ hexedit/libBufferImage.c     |  37 ++--
+ hexedit/libEditor.c          |  33 +--
+ hexedit/libInputBar.c        |  11 +-
+ hexedit/libMemImage.c        |   8 +-
+ hexedit/libMenuBar.c         |  13 +-
+ hexedit/libMisc.h            |   3 +-
+ hexedit/libStatusBar.c       |   1 +
+ hexedit/libTitleBar.c        |  24 ++-
+ hexedit/libbufferimage.h     |   1 +
+ hexedit/libclipboard.h       |   1 +
+ hexedit/libdiskimage.c       |  17 +-
+ hexedit/libdiskimage.h       |   1 +
+ hexedit/libeditor.h          |   1 +
+ hexedit/libfileimage.h       |   1 +
+ hexedit/libinputbar.h        |   1 +
+ hexedit/libmemimage.h        |   1 +
+ hexedit/libmenubar.h         |   3 +-
+ hexedit/libstatusbar.h       |   1 +
+ hexedit/libtitlebar.h        |   1 +
+ hexedit/main.c               |  78 +++----
+ inc/shellenv.h               |   1 +
+ inc/shelltypes.h             |   3 +-
+ load/load.c                  |   2 +-
+ load/load.h                  |   1 +
+ load/load.inf                |  29 +--
+ ls/ls.c                      |  11 +-
+ ls/ls.h                      |   3 +-
+ ls/ls.inf                    |  28 +--
+ mem/MemCommonPart.c          |  14 +-
+ mem/MemCommonPart.h          |   2 +-
+ mem/debug.h                  |   1 +
+ mem/efidump.c                |  20 +-
+ mem/mem.inf                  |  30 +--
+ memmap/memmap.c              |   6 +-
+ memmap/memmap.h              |   1 +
+ memmap/memmap.inf            |  28 +--
+ mkdir/mkdir.c                |   4 +-
+ mkdir/mkdir.h                |   3 +-
+ mkdir/mkdir.inf              |  28 +--
+ mm/mm.c                      |  72 +++----
+ mm/mm.h                      |   1 +
+ mm/mm.inf                    |  28 +--
+ mode/mode.c                  |   2 +-
+ mode/mode.h                  |   1 +
+ mode/mode.inf                |  28 +--
+ mount/mount.c                |   4 +-
+ mount/mount.h                |   1 +
+ mount/mount.inf              |  28 +--
+ mv/mv.c                      |   4 +-
+ mv/mv.h                      |   2 +-
+ mv/mv.inf                    |  28 +--
+ newshell/FakeHii.c           |   6 +-
+ newshell/FakeHii.h           |   1 +
+ newshell/init.c              |  18 +-
+ newshell/nshell.h            |   3 +-
+ newshell/nshell.inf          |  34 +--
+ openinfo/openinfo.c          |   4 +-
+ openinfo/openinfo.h          |   1 +
+ openinfo/openinfo.inf        |  28 +--
+ pci/pci.c                    |  19 +-
+ pci/pci.h                    |   3 +-
+ pci/pci.inf                  |  28 +--
+ pci/pci_class.c              |   2 +-
+ pci/pci_class.h              |   3 +-
+ reset/reset.c                |   2 +-
+ reset/reset.h                |   1 +
+ reset/reset.inf              |  28 +--
+ rm/rm.c                      |   2 +-
+ rm/rm.h                      |   1 +
+ rm/rm.inf                    |  28 +--
+ sermode/sermode.c            |   8 +-
+ sermode/sermode.h            |   1 +
+ sermode/sermode.inf          |  28 +--
+ shellenv/Connect.c           |  20 +-
+ shellenv/ConsoleProxy.c      |   6 +-
+ shellenv/batch.c             |  15 +-
+ shellenv/conio.c             |   2 +-
+ shellenv/dprot.c             |   8 +-
+ shellenv/echo.c              |   2 +-
+ shellenv/exec.c              |  18 +-
+ shellenv/for.c               |   7 +-
+ shellenv/help.c              |   2 +-
+ shellenv/if.c                |   3 -
+ shellenv/init.c              |   2 +-
+ shellenv/map.c               |  16 +-
+ shellenv/parsecmd.h          |   3 +-
+ shellenv/pause.c             |   2 +-
+ shellenv/protid.c            |  22 +-
+ shellenv/shelle.h            |   1 +
+ shellenv/shellenvguid.h      |   1 +
+ shellenv/var.c               |   6 +-
+ stall/stall.c                |   2 +-
+ stall/stall.h                |   1 +
+ stall/stall.inf              |  28 +--
+ time/time.c                  |  10 +-
+ time/time.h                  |   1 +
+ time/time.inf                |  28 +--
+ touch/touch.c                |   2 +-
+ touch/touch.h                |   2 +-
+ touch/touch.inf              |  29 +--
+ type/type.c                  |   4 +-
+ type/type.h                  |   1 +
+ type/type.inf                |  28 +--
+ tzone/timezone.inf           |  32 +--
+ tzone/tzone.c                |   4 +-
+ tzone/tzone.h                |   1 +
+ unload/unload.c              |  18 +-
+ unload/unload.h              |   1 +
+ unload/unload.inf            |  29 +--
+ ver/Ebc/verEbc.c             |   2 +-
+ ver/Ver.inf                  |  36 ++--
+ ver/ver.c                    |   2 +-
+ ver/ver.h                    |   1 +
+ vol/Vol.inf                  |  28 +--
+ vol/vol.c                    |   4 +-
+ vol/vol.h                    |   1 +
+ 270 files changed, 1985 insertions(+), 1610 deletions(-)
+ create mode 100644 Library/Aarch64/efilibplat.h
+ create mode 100644 Library/Arm/efilibplat.h
+
+diff --git a/DeviceTree/devicetree.c b/DeviceTree/devicetree.c
+index 147e2cb..77e3cf4 100644
+--- a/DeviceTree/devicetree.c
++++ b/DeviceTree/devicetree.c
+@@ -36,7 +36,7 @@ extern UINT8  STRING_ARRAY_NAME[];
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++STATIC EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiDevicetreeGuid = EFI_DEVICETREE_GUID;
+ SHELL_VAR_CHECK_ITEM    DevicetreeCheckList[] = {
+   {
+@@ -67,7 +67,7 @@ SHELL_VAR_CHECK_ITEM    DevicetreeCheckList[] = {
      NULL,
      0,
      0,
 -    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE)0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
    }
  };
  
-Index: EfiCompress/compress.inf
-===================================================================
---- EfiCompress/compress.inf   (revision 64)
-+++ EfiCompress/compress.inf   (working copy)
-@@ -25,7 +25,7 @@
- COMPONENT_TYPE       = APPLICATION
+diff --git a/DeviceTree/devicetree.h b/DeviceTree/devicetree.h
+index c452fc7..07bb939 100644
+--- a/DeviceTree/devicetree.h
++++ b/DeviceTree/devicetree.h
+@@ -32,3 +32,4 @@ Revision History
+     0xf21044af, 0xeef6, 0x4d58, 0xb4, 0x56, 0x32, 0x86, 0xa0, 0x2b, 0x7c, 0x49 \
+   }
+ #endif
++
+diff --git a/DeviceTree/devicetree.inf b/DeviceTree/devicetree.inf
+index a86a1a0..7adc097 100644
+--- a/DeviceTree/devicetree.inf
++++ b/DeviceTree/devicetree.inf
+@@ -40,24 +40,24 @@ COMPONENT_TYPE       = APPLICATION
  
- [sources.common]
--..\ShCommonStrings.uni
-+../ShCommonStrings.uni
- CompressStrings.uni
- compressMain.c
- compress.c
-@@ -34,17 +34,17 @@
  
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   DevicetreeStrings.uni
+   devicetree.c
+   devicetree.h
+   
  [includes.common]
    .
 -  ..\Inc
@@ -64,72 +350,70 @@ Index: EfiCompress/compress.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -64,11 +64,13 @@
- # we will specify some additional DEFINEs on the compile command line.
- #
+@@ -72,7 +72,11 @@ COMPONENT_TYPE       = APPLICATION
  [nmake.common]
-+  IMAGE_ENTRY_POINT=InitializeCompress
+   IMAGE_ENTRY_POINT=DevicetreeMain
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-   C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
--  IMAGE_ENTRY_POINT=InitializeCompress
    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_BOOTSHELL
  
--
-- 
-\ No newline at end of file
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: EfiCompress/compress.c
-===================================================================
---- EfiCompress/compress.c     (revision 64)
-+++ EfiCompress/compress.c     (working copy)
-@@ -262,7 +262,7 @@
- STATIC UINT32 mCompSize, mOrigSize;
+diff --git a/EfiCompress/Compress.h b/EfiCompress/Compress.h
+index 6ce2bfc..4e8313f 100644
+--- a/EfiCompress/Compress.h
++++ b/EfiCompress/Compress.h
+@@ -57,4 +57,4 @@ Returns:
  
- 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;
-Index: load/load.c
-===================================================================
---- load/load.c        (revision 64)
-+++ load/load.c        (working copy)
-@@ -60,7 +60,7 @@
+-#endif
+\ No newline at end of file
++#endif
+diff --git a/EfiCompress/CompressMain.c b/EfiCompress/CompressMain.c
+index 3edb17e..082046e 100644
+--- a/EfiCompress/CompressMain.c
++++ b/EfiCompress/CompressMain.c
+@@ -50,7 +50,7 @@ SHELL_VAR_CHECK_ITEM    CompressCheckList[] = {
      NULL,
      0,
      0,
 -    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
++    (SHELL_VAR_CHECK_FLAG_TYPE)0
    }
  };
  
-Index: load/load.h
-===================================================================
---- load/load.h        (revision 64)
-+++ load/load.h        (working copy)
-@@ -33,3 +33,4 @@
-   }
+diff --git a/EfiCompress/compress.c b/EfiCompress/compress.c
+index e21c1f6..012bbef 100644
+--- a/EfiCompress/compress.c
++++ b/EfiCompress/compress.c
+@@ -262,7 +262,7 @@ STATIC UINT32 mBufSiz = 0, mOutputPos, mOutputMask, mSubBitBuf, mCrc;
+ STATIC UINT32 mCompSize, mOrigSize;
  
- #endif
-+
-Index: load/load.inf
-===================================================================
---- load/load.inf      (revision 64)
-+++ load/load.inf      (working copy)
-@@ -39,23 +39,23 @@
+ 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 --git a/EfiCompress/compress.inf b/EfiCompress/compress.inf
+index 2e62fbf..f3194b5 100644
+--- a/EfiCompress/compress.inf
++++ b/EfiCompress/compress.inf
+@@ -25,7 +25,7 @@ FILE_GUID            = A6A236DB-F3FB-4f7f-93BC-0AF7DAA583B9
  COMPONENT_TYPE       = APPLICATION
  
  [sources.common]
--  ..\ShCommonStrings.uni
-+  ../ShCommonStrings.uni
-   LoadStrings.uni
-   load.c
-     
+-..\ShCommonStrings.uni
++../ShCommonStrings.uni
+ CompressStrings.uni
+ compressMain.c
+ compress.c
+@@ -34,17 +34,17 @@ compress.h
  [includes.common]
    .
 -  ..\Inc
@@ -157,32 +441,47 @@ Index: load/load.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -70,6 +70,11 @@
+@@ -64,11 +64,13 @@ compress.h
+ # we will specify some additional DEFINEs on the compile command line.
+ #
  [nmake.common]
-   IMAGE_ENTRY_POINT=InitializeLoad
+-  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
+   IMAGE_ENTRY_POINT=InitializeCompress
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
++  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
    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_BOOTSHELL
-+
+-
+- 
+\ No newline at end of file
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: drvdiag/drvdiag.c
-===================================================================
---- drvdiag/drvdiag.c  (revision 64)
-+++ drvdiag/drvdiag.c  (working copy)
-@@ -41,7 +41,7 @@
- //
- // Global Variables
+diff --git a/EfiDecompress/Decompress.c b/EfiDecompress/Decompress.c
+index 918f673..2ee0404 100644
+--- a/EfiDecompress/Decompress.c
++++ b/EfiDecompress/Decompress.c
+@@ -22,7 +22,7 @@ Revision History
+ --*/
+ #include "EfiShellLib.h"
+-#include "decompress.h"
++#include "Decompress.h"
+ extern UINT8    STRING_ARRAY_NAME[];
+@@ -31,7 +31,7 @@ extern UINT8    STRING_ARRAY_NAME[];
  //
--EFI_HII_HANDLE  HiiHandle;
-+STATIC EFI_HII_HANDLE  HiiHandle;
- EFI_GUID        EfiDrvdiagGuid = EFI_DRVDIAG_GUID;
- SHELL_VAR_CHECK_ITEM  DrvdiagCheckList[] = {
-   {
-@@ -90,7 +90,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;
+@@ -52,7 +52,7 @@ SHELL_VAR_CHECK_ITEM    DecompressCheckList[] = {
      NULL,
      0,
      0,
@@ -191,30 +490,41 @@ Index: drvdiag/drvdiag.c
    }
  };
  
-Index: drvdiag/drvdiag.h
-===================================================================
---- drvdiag/drvdiag.h  (revision 64)
-+++ drvdiag/drvdiag.h  (working copy)
-@@ -33,3 +33,4 @@
+@@ -192,7 +192,7 @@ Returns:
+   //
+   //
+   //
+-  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 --git a/EfiDecompress/Decompress.h b/EfiDecompress/Decompress.h
+index abfae65..3d4520c 100644
+--- a/EfiDecompress/Decompress.h
++++ b/EfiDecompress/Decompress.h
+@@ -29,4 +29,4 @@ Revision History
+     0xe15963a9, 0xa05a, 0x480e, 0x91, 0x49, 0x32, 0xe9, 0x24, 0x5d, 0x98, 0xcb \
    }
  
- #endif
-+
-Index: drvdiag/drvdiag.inf
-===================================================================
---- drvdiag/drvdiag.inf        (revision 64)
-+++ drvdiag/drvdiag.inf        (working copy)
-@@ -40,7 +40,7 @@
+-#endif
+\ No newline at end of file
++#endif
+diff --git a/EfiDecompress/Decompress.inf b/EfiDecompress/Decompress.inf
+index f955220..7b2ff3d 100644
+--- a/EfiDecompress/Decompress.inf
++++ b/EfiDecompress/Decompress.inf
+@@ -25,7 +25,7 @@ FILE_GUID            = D9D42564-071C-4d73-8DB0-43C55C62DC4C
+ COMPONENT_TYPE       = APPLICATION
  
  [sources.common]
--  ..\ShCommonStrings.uni
-+  ../ShCommonStrings.uni
  DrvdiagStrings.uni
  drvdiag.c
  drvdiag.h
-@@ -48,17 +48,17 @@
-   
+-..\ShCommonStrings.uni
++../ShCommonStrings.uni
DecompressStrings.uni
decompress.c
decompress.h
+@@ -33,17 +33,17 @@ decompress.h
  [includes.common]
    .
 -  ..\Inc
@@ -242,32 +552,39 @@ Index: drvdiag/drvdiag.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -73,7 +73,11 @@
+@@ -63,11 +63,14 @@ decompress.h
+ # we will specify some additional DEFINEs on the compile command line.
+ #
  [nmake.common]
-   IMAGE_ENTRY_POINT=DrvdiagMain
+-  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
+   IMAGE_ENTRY_POINT=InitializeDecompress
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
++  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
    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_BOOTSHELL
  
+-
+- 
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: cls/cls.c
-===================================================================
---- cls/cls.c  (revision 64)
-+++ cls/cls.c  (working copy)
-@@ -30,7 +30,7 @@
++ 
+\ No newline at end of file
+diff --git a/IfConfig/IfConfig.c b/IfConfig/IfConfig.c
+index 07cedc2..52e1add 100644
+--- a/IfConfig/IfConfig.c
++++ b/IfConfig/IfConfig.c
+@@ -29,7 +29,7 @@ extern UINT8 STRING_ARRAY_NAME[];
  //
- #include STRING_DEFINES_FILE
+ #define NIC_ITEM_CONFIG_SIZE   sizeof (NIC_IP4_CONFIG_INFO) + sizeof (EFI_IP4_ROUTE_TABLE) * 16
  
 -EFI_HII_HANDLE  HiiHandle;
 +STATIC EFI_HII_HANDLE  HiiHandle;
- EFI_GUID        EfiClsGuid = EFI_CLS_GUID;
- SHELL_VAR_CHECK_ITEM    ClsCheckList[] = {
-   {
-@@ -49,7 +49,7 @@
+ EFI_GUID  EfiIfConfigGuid = EFI_IFCONFIG_GUID;
+@@ -75,7 +75,7 @@ SHELL_VAR_CHECK_ITEM  IfConfigCheckList[] = {
      NULL,
      0,
      0,
@@ -276,82 +593,140 @@ Index: cls/cls.c
    }
  };
  
-Index: cls/cls.h
-===================================================================
---- cls/cls.h  (revision 64)
-+++ cls/cls.h  (working copy)
-@@ -36,3 +36,4 @@
-   }
+@@ -669,7 +669,7 @@ Returns:
+   Status = BS->LocateProtocol (
+                 &gEfiHiiConfigRoutingProtocolGuid,
+                 NULL,
+-                &mHiiConfigRouting
++                (VOID**)&mHiiConfigRouting
+                 );
+   if (EFI_ERROR (Status)) {
+     return EFI_NOT_FOUND;
+diff --git a/IfConfig/IfConfig.h b/IfConfig/IfConfig.h
+index 4a9d3c5..b8f044e 100644
+--- a/IfConfig/IfConfig.h
++++ b/IfConfig/IfConfig.h
+@@ -60,3 +60,4 @@ typedef struct {
+ } ARP_REQUEST;
  
  #endif
 +
-Index: cls/cls.inf
-===================================================================
---- cls/cls.inf        (revision 64)
-+++ cls/cls.inf        (working copy)
-@@ -40,24 +40,24 @@
+diff --git a/IfConfig/IfConfig.inf b/IfConfig/IfConfig.inf
+index b2e4964..d8c5c23 100644
+--- a/IfConfig/IfConfig.inf
++++ b/IfConfig/IfConfig.inf
+@@ -25,7 +25,7 @@ FILE_GUID            = 6394CF3D-D3DC-4f69-926D-AF9FFE59F922
+ COMPONENT_TYPE       = APPLICATION
  
  [sources.common]
--   ..\ShCommonStrings.uni   
-+   ../ShCommonStrings.uni   
-    ClsStrings.uni
-    Cls.c
-    Cls.h 
-                                           
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   IfConfigStrings.uni
+   IfConfig.c
+   IfConfig.h
+@@ -33,30 +33,32 @@ COMPONENT_TYPE       = APPLICATION
+   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\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)\
 +  ../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/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]  
+ [libraries.common]
    EfiShellLib
-@@ -72,7 +72,12 @@
+   EdkProtocolLib
+   EfiProtocolLib
+   EdkGuidLib
+-  EfiDriverLib
  
  [nmake.common]
-   IMAGE_ENTRY_POINT=InitializeCls
+-  C_PROJ_FLAGS = $(C_PROJ_FLAGS)
+   IMAGE_ENTRY_POINT=IfConfig
+-  C_STD_FLAGS = $(C_STD_FLAGS) /DEFI_BOOTSHELL
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
    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_BOOTSHELL
++  C_STD_FLAGS = $(C_STD_FLAGS) /DEFI_BOOTSHELL
  
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
+diff --git a/IfConfig/ShellNetHelper.h b/IfConfig/ShellNetHelper.h
+index 9a33d3f..87e6886 100644
+--- a/IfConfig/ShellNetHelper.h
++++ b/IfConfig/ShellNetHelper.h
+@@ -87,3 +87,4 @@ ShellDestroyServiceChild (
+   IN  EFI_HANDLE  ChildHandle
+ );
+ #endif
 +
-Index: newshell/nshell.inf
-===================================================================
---- newshell/nshell.inf        (revision 64)
-+++ newshell/nshell.inf        (working copy)
-@@ -26,24 +26,24 @@
+diff --git a/IpConfig/IpConfig.c b/IpConfig/IpConfig.c
+index 0c3e4c3..474e5f1 100644
+--- a/IpConfig/IpConfig.c
++++ b/IpConfig/IpConfig.c
+@@ -39,7 +39,7 @@ extern UINT8  STRING_ARRAY_NAME[];
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++STATIC EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiIpConfigGuid = EFI_IPCONFIG_GUID;
+ SHELL_VAR_CHECK_ITEM  IpconfigCheckList[] = {
+   {
+@@ -76,7 +76,7 @@ SHELL_VAR_CHECK_ITEM  IpconfigCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   }
+ };
+diff --git a/IpConfig/IpConfig.h b/IpConfig/IpConfig.h
+index 1806435..5c975a9 100644
+--- a/IpConfig/IpConfig.h
++++ b/IpConfig/IpConfig.h
+@@ -29,4 +29,4 @@ Revision History
+     0x8252915c, 0xf1e9, 0x435c, 0x81, 0x91, 0xad, 0x2f, 0x82, 0x62, 0x23, 0x73 \
+   }
+-#endif
+\ No newline at end of file
++#endif
+diff --git a/IpConfig/IpConfig.inf b/IpConfig/IpConfig.inf
+index bc8271c..8cb1e0f 100644
+--- a/IpConfig/IpConfig.inf
++++ b/IpConfig/IpConfig.inf
+@@ -25,24 +25,24 @@ FILE_GUID            = 1D73AC03-AF05-44b3-B21E-93A174893FA6
+ COMPONENT_TYPE       = APPLICATION
  
  [sources.common]
-   NshellStrings.uni
 -  ..\ShCommonStrings.uni
 +  ../ShCommonStrings.uni
-   init.c
-   nshell.h
-   fakehii.c
+   IpConfigStrings.uni
+   IpConfig.c
+   IpConfig.h 
  
  [includes.common]
    .
@@ -380,959 +755,1049 @@ Index: newshell/nshell.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -63,11 +63,13 @@
- # we will specify some additional DEFINEs on the compile command line.
- #
+@@ -56,9 +56,12 @@ COMPONENT_TYPE       = APPLICATION
  [nmake.common]
-+  IMAGE_ENTRY_POINT=InitializeShell
+-  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
+   IMAGE_ENTRY_POINT=InitializeIpConfig
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-   C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
--  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) /DEFI_BOOTSHELL
+   C_STD_FLAGS = $(C_STD_FLAGS) /DEFI_BOOTSHELL
  
--
-- 
-\ No newline at end of file
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: newshell/FakeHii.c
-===================================================================
---- newshell/FakeHii.c (revision 64)
-+++ newshell/FakeHii.c (working copy)
-@@ -196,7 +196,7 @@
-     Status = BS->HandleProtocol (
-                   mFakeHiiHandle,
-                   &gEfiHiiProtocolGuid,
--                  &FakeHii
-+                  (VOID**)&FakeHii
-                   );
-     Status = BS->UninstallProtocolInterface (
-                   mFakeHiiHandle,
-@@ -320,7 +320,7 @@
-   if (Language == NULL) {
-     return EFI_OUT_OF_RESOURCES;
-   }
--  strcpya (Language, (UINT8 *) PackageHdr + HeaderSize - LanguageSize);
-+  strcpya (Language, (CHAR8*) ((UINT8 *) 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;
-     }
-Index: newshell/init.c
-===================================================================
---- newshell/init.c    (revision 64)
-+++ newshell/init.c    (working copy)
-@@ -23,7 +23,7 @@
- #include "nshell.h"
+diff --git a/Library/Aarch64/efilibplat.h b/Library/Aarch64/efilibplat.h
+new file mode 100644
+index 0000000..185c8b7
+--- /dev/null
++++ b/Library/Aarch64/efilibplat.h
+@@ -0,0 +1,38 @@
++/*++
++
++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  8
++
++#endif
++
+diff --git a/Library/Arm/efilibplat.h b/Library/Arm/efilibplat.h
+new file mode 100644
+index 0000000..791018d
+--- /dev/null
++++ b/Library/Arm/efilibplat.h
+@@ -0,0 +1,39 @@
++/*++
++
++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 --git a/Library/CRC.c b/Library/CRC.c
+index ce5387b..ebbdf70 100644
+--- a/Library/CRC.c
++++ b/Library/CRC.c
+@@ -21,7 +21,7 @@ Revision History
  
- 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)
-@@ -99,13 +99,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);
-@@ -220,7 +220,7 @@
-   //
-   Status = LibLocateProtocol (
-              &gEfiConsoleControlProtocolGuid,
--             &ConsoleControl
-+             (VOID**)&ConsoleControl
-              );
-   if (!EFI_ERROR (Status)) {
-     Status = ConsoleControl->GetMode (ConsoleControl, &mOldCurrentMode, NULL, NULL);
-@@ -342,7 +342,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 +372,7 @@
-     *IsRootInstance = TRUE;
-   }
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
  
--  Status = LibLocateProtocol (&ShellEnvProtocol, &SE);
-+  Status = LibLocateProtocol (&ShellEnvProtocol, (VOID**)&SE);
-   ASSERT (!EFI_ERROR (Status));
-   SI = SE->NewShell (ImageHandle);
+ UINT32  CRCTable[256] = {
+   0x00000000,
+diff --git a/Library/CRC.h b/Library/CRC.h
+index 326a5e1..db1f765 100644
+--- a/Library/CRC.h
++++ b/Library/CRC.h
+@@ -53,4 +53,6 @@ CalculateCrc (
+   UINTN Size
+   );
  
-@@ -543,7 +543,7 @@
-   //
-   ConsoleControlStatus = LibLocateProtocol (
-                            &gEfiConsoleControlProtocolGuid,
--                           &ConsoleControl
-+                           (VOID**)&ConsoleControl
-                            );
-   if (!EFI_ERROR (ConsoleControlStatus)) {
-     ConsoleControlStatus = ConsoleControl->GetMode (ConsoleControl, &CurrentMode, NULL, NULL);
-@@ -709,7 +709,7 @@
-   //
-   SE2->IncrementShellNestingLevel ();
+-#endif
+\ No newline at end of file
++#endif
++
++
+diff --git a/Library/ConsistMapping.c b/Library/ConsistMapping.c
+index b70fa06..61eda8b 100644
+--- a/Library/ConsistMapping.c
++++ b/Library/ConsistMapping.c
+@@ -21,7 +21,7 @@ Revision History
  
--  while (Status != -1) {
-+  while (Status != (EFI_STATUS) -1) {
-     Status = NShellPrompt (ImageHandle);
-     EFI_NT_EMULATOR_CODE (
-       //
-@@ -723,7 +723,7 @@
-         Status = BS->HandleProtocol (
-                       ImageHandle,
-                       &ShellInterfaceProtocol,
--                      &SI
-+                      (VOID**)&SI
-                       );
-         ASSERT (!EFI_ERROR (Status));
-       }
-Index: newshell/FakeHii.h
-===================================================================
---- newshell/FakeHii.h (revision 64)
-+++ newshell/FakeHii.h (working copy)
-@@ -479,3 +479,4 @@
- #endif
+ --*/
  
- #endif
-+
-Index: newshell/nshell.h
-===================================================================
---- newshell/nshell.h  (revision 64)
-+++ newshell/nshell.h  (working copy)
-@@ -58,4 +58,5 @@
- #define EFI_NO_MONOSHELL_CODE(code) code
- #endif
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ MTD_NAME  mMTDName[] = {
+   {
+diff --git a/Library/ConsistMapping.h b/Library/ConsistMapping.h
+index bc8d6f0..d520f31 100644
+--- a/Library/ConsistMapping.h
++++ b/Library/ConsistMapping.h
+@@ -79,4 +79,6 @@ DevicePathConsistMappingCompare (
+   IN  VOID *Buffer2
+   );
  
 -#endif
 \ No newline at end of file
 +#endif
 +
-Index: type/type.c
-===================================================================
---- type/type.c        (revision 64)
-+++ type/type.c        (working copy)
-@@ -59,7 +59,7 @@
- BOOLEAN         TypeUnicode;
- BOOLEAN         TypeAuto;
++
+diff --git a/Library/DPath.c b/Library/DPath.c
+index f0974ac..73086d7 100644
+--- a/Library/DPath.c
++++ b/Library/DPath.c
+@@ -20,7 +20,7 @@ Revision History
  
--EFI_HII_HANDLE  HiiHandle;
-+STATIC EFI_HII_HANDLE  HiiHandle;
- EFI_GUID        EfiTypeGuid = EFI_TYPE_GUID;
- SHELL_VAR_CHECK_ITEM    TypeCheckList[] = {
-   {
-@@ -90,7 +90,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
-   }
- };
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ EFI_GUID mEfiDevicePathMessagingUartFlowControlGuid = DEVICE_PATH_MESSAGING_UART_FLOW_CONTROL;
  
-Index: type/type.h
-===================================================================
---- type/type.h        (revision 64)
-+++ type/type.h        (working copy)
-@@ -30,3 +30,4 @@
+@@ -1468,7 +1468,7 @@ Returns:
+   
+   Status = LibLocateProtocol (
+              &gEfiDevicePathToTextProtocolGuid,
+-             &DevPathToText
++             (VOID**)&DevPathToText
+              );
+   if (!EFI_ERROR (Status)) {
+     ToText = DevPathToText->ConvertDevicePathToText (
+@@ -1766,7 +1766,7 @@ Returns:
+       Status = BS->HandleProtocol (
+                     Device,
+                     Protocol,
+-                    Interface
++                    (VOID**)Interface
+                     );
+     }
    }
+diff --git a/Library/DPath.h b/Library/DPath.h
+index 68da82b..0f2a33f 100644
+--- a/Library/DPath.h
++++ b/Library/DPath.h
+@@ -24,7 +24,7 @@ Revision History
+ #ifndef _D_PATH_H
+ #define _D_PATH_H
+-#define NextStrA(a) ((UINT8 *) (((UINT8 *) (a)) + strlena (a) + 1))
++#define NextStrA(a) (CHAR8*)((UINT8 *) (((UINT8 *) (a)) + strlena (a) + 1))
+ #include EFI_GUID_DEFINITION (PcAnsi)
+@@ -153,3 +153,4 @@ GetNameGuidFromFwVolDevicePathNode (
+   );
  
  #endif
 +
-Index: type/type.inf
-===================================================================
---- type/type.inf      (revision 64)
-+++ type/type.inf      (working copy)
-@@ -40,24 +40,24 @@
+diff --git a/Library/Data.c b/Library/Data.c
+index d2ffe4a..979b3dd 100644
+--- a/Library/Data.c
++++ b/Library/Data.c
+@@ -21,7 +21,7 @@ Revision History
  
+ --*/
  
- [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./
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
  
- [libraries.common]  
-   EfiShellLib
-@@ -72,7 +72,11 @@
+ //
+ // ShellLibInitialized - TRUE once InitializeShellLib() is called for the first time
+diff --git a/Library/Ebc/EfiLibPlat.h b/Library/Ebc/EfiLibPlat.h
+index 922c881..e4a8771 100644
+--- a/Library/Ebc/EfiLibPlat.h
++++ b/Library/Ebc/EfiLibPlat.h
+@@ -44,3 +44,4 @@ Returns:
+ ;
  
- [nmake.common]
-   IMAGE_ENTRY_POINT=InitializeType
+ #define MIN_ALIGNMENT_SIZE  8
 +
-+[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-   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_BOOTSHELL
-+[nmake.ARM, nmake.AARCH64]
-+  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: dmem/MemCommonPart.c
-===================================================================
---- dmem/MemCommonPart.c       (revision 64)
-+++ dmem/MemCommonPart.c       (working copy)
-@@ -58,7 +58,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
-   }
- };
+diff --git a/Library/EfiPart.h b/Library/EfiPart.h
+index a62cd15..e59ae77 100644
+--- a/Library/EfiPart.h
++++ b/Library/EfiPart.h
+@@ -56,3 +56,4 @@ typedef struct {
+ #pragma pack()
  
-@@ -148,7 +148,7 @@
-     return EFI_SUCCESS;
-   }
+ #endif
++
+diff --git a/Library/EfiShellLib.h b/Library/EfiShellLib.h
+index 6243d1d..e0ffe43 100644
+--- a/Library/EfiShellLib.h
++++ b/Library/EfiShellLib.h
+@@ -25,7 +25,7 @@ Revision History
+ #define _EFI_SHELL_LIB_INCLUDE_
  
--  Address = (AddressStr) ? Xtoi (AddressStr) : (UINT64) SystemTable;
-+  Address = (AddressStr) ? Xtoi (AddressStr) : (UINT64)(UINTN) SystemTable;
-   Size    = (SizeStr) ? Xtoi (SizeStr) : 512;
+ #include "Tiano.h"
+-#include "ShellEnv.h"
++#include "shellenv.h"
+ #include "pci22.h"
  
-   //
-@@ -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;
-@@ -171,7 +171,7 @@
-       return Status;
-     }
--    PciRootBridgeIo->Mem.Read (PciRootBridgeIo, EfiPciIoWidthUint8, Address, Size, Buffer);
-+    PciRootBridgeIo->Mem.Read (PciRootBridgeIo, EfiPciWidthUint8, Address, Size, Buffer);
-   } else {
-     Buffer = (UINT8 *) (UINTN) Address;
-   }
-@@ -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;
-@@ -331,7 +331,7 @@
-       return Status;
-     }
--    PciRootBridgeIo->Mem.Read (PciRootBridgeIo, EfiPciIoWidthUint8, Address, Size, Buffer);
-+    PciRootBridgeIo->Mem.Read (PciRootBridgeIo, EfiPciWidthUint8, Address, Size, Buffer);
-   } else {
-     Buffer = (UINT8 *) (UINTN) Address;
-   }
-Index: dmem/MemCommonPart.h
-===================================================================
---- dmem/MemCommonPart.h       (revision 64)
-+++ dmem/MemCommonPart.h       (working copy)
-@@ -61,4 +61,4 @@
-   IN  EFI_BLOCK_IO_PROTOCOL   *BlkIo
-   );
--#endif
-\ No newline at end of file
-+#endif
-Index: dmem/efidump.c
-===================================================================
---- dmem/efidump.c     (revision 64)
-+++ dmem/efidump.c     (working copy)
-@@ -24,7 +24,7 @@
- --*/
+ #include EFI_ARCH_PROTOCOL_DEFINITION (Bds)
+@@ -51,7 +51,7 @@ Revision History
+ #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 @@ Revision History
+ #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 @@ Revision History
+ #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)
+@@ -152,7 +152,7 @@ Revision History
+ #include EFI_PROTOCOL_DEFINITION (PlatformToDriverConfiguration)
  
- #include "debug.h"
--#include "Efipart.h"
+ #include "efilibplat.h"
+-#include "efipart.h"
 +#include "EfiPart.h"
- #include "EfiShellLib.h"
- #include STRING_DEFINES_FILE
-@@ -320,13 +320,11 @@
-   VOID                      *AcpiTable;
-   VOID                      *Acpi20Table;
-   VOID                      *SMBIOSTable;
--  VOID                      *SalSystemTable;
-   VOID                      *MpsTable;
-   AcpiTable       = NULL;
-   Acpi20Table     = NULL;
-   SMBIOSTable     = NULL;
--  SalSystemTable  = NULL;
-   MpsTable        = NULL;
-   PrintToken (
-@@ -352,11 +350,13 @@
-     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);
+ #include "ShellDebug.h"
+ #include "CRC.h"
+ #include "DPath.h"
+@@ -358,3 +358,4 @@ LibGetControllerName (
+   );
  
-   EFI64_CODE (
--    Status = LibGetSystemConfigurationTable(&gEfiSalSystemTableGuid, &SalSystemTable);
-+     VOID                      *SalSystemTable;
+ #endif
 +
-+     Status = LibGetSystemConfigurationTable(&gEfiSalSystemTableGuid, &SalSystemTable);
-     if (!EFI_ERROR(Status)) {
-       PrintToken (STRING_TOKEN(STR_DEBUG_SAL_SYSTEM_TABLE), HiiDmemHandle, (UINT64)SalSystemTable);
-     }
-@@ -364,22 +364,22 @@
-   
-   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);
-   }
+diff --git a/Library/EfiShellLib.inf b/Library/EfiShellLib.inf
+index d450f9d..a63406c 100644
+--- a/Library/EfiShellLib.inf
++++ b/Library/EfiShellLib.inf
+@@ -45,34 +45,42 @@ COMPONENT_TYPE  = LIBRARY
+   HiiSupport.c
  
-   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);
-   }
- }
+ [sources.ia32]
+-  ia32\math.c
+-  ia32\initplat.c
++  IA32/math.c
++  IA32/initplat.c
  
-Index: dmem/debug.h
-===================================================================
---- dmem/debug.h       (revision 64)
-+++ dmem/debug.h       (working copy)
-@@ -156,3 +156,4 @@
- extern EFI_HII_HANDLE HiiDmemHandle;
+ [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
  
- #endif
+ [sources.EBC]
+-  EBC\math.c
+-  EBC\initplat.c
+-  
++  Ebc/math.c
++  Ebc/initplat.c
 +
-Index: dmem/dmem.inf
-===================================================================
---- dmem/dmem.inf      (revision 64)
-+++ dmem/dmem.inf      (working copy)
-@@ -25,7 +25,7 @@
- COMPONENT_TYPE       = APPLICATION
+ [sources.x64]
+-  ipf\math.c
+-  ia32\initplat.c
++  IPF/math.c
++  IA32/initplat.c
++
++[sources.ARM]
++  IPF/math.c
++  IA32/initplat.c
++
++[sources.AARCH64]
++  IPF/math.c
++  IA32/initplat.c
  
- [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\Include\IndustryStandard
 -  $(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/Include/IndustryStandard
 +  $(EDK_SOURCE)/Foundation/Core/Dxe
-+  $(DEST_DIR./
  
- [libraries.common]  
-   EfiShellLib
-@@ -64,9 +64,13 @@
- # we will specify some additional DEFINEs on the compile command line.
- #
- [nmake.common]
-+  IMAGE_ENTRY_POINT=DumpMem
+ [libraries.common]
+   EdkFrameworkProtocolLib
+@@ -81,4 +89,7 @@ COMPONENT_TYPE  = LIBRARY
+   EfiGuidLib
+   EdkGuidLib
++[libraries.ARM]
++  CompilerIntrinsicsLib, CompilerIntrinsicsLib
 +
-+[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-   C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
--  IMAGE_ENTRY_POINT=DumpMem
-   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_BOOTSHELL
+ [nmake.common]
+diff --git a/Library/Event.c b/Library/Event.c
+index 4929e4b..a0cbdc2 100644
+--- a/Library/Event.c
++++ b/Library/Event.c
+@@ -21,7 +21,7 @@ Revision History
  
-+[nmake.ARM, nmake.AARCH64]
-+  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: devices/devices.c
-===================================================================
---- devices/devices.c  (revision 64)
-+++ devices/devices.c  (working copy)
-@@ -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[] = {
-   {
-@@ -61,7 +61,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
-   }
- };
+ --*/
  
-Index: devices/devices.h
-===================================================================
---- devices/devices.h  (revision 64)
-+++ devices/devices.h  (working copy)
-@@ -32,3 +32,4 @@
-     0x6fabed98, 0x2a7, 0x46a4, 0x84, 0xd1, 0x76, 0xcd, 0x5c, 0x49, 0x78, 0x74 \
-   }
- #endif
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ EFI_EVENT
+ LibCreateProtocolNotifyEvent (
+diff --git a/Library/Event.h b/Library/Event.h
+index b8df801..8e0e718 100644
+--- a/Library/Event.h
++++ b/Library/Event.h
+@@ -50,4 +50,6 @@ WaitForEventWithTimeout (
+   OUT EFI_INPUT_KEY                 *Key
+   );
+-#endif
+\ No newline at end of file
++#endif
 +
-Index: devices/devices.inf
-===================================================================
---- devices/devices.inf        (revision 64)
-+++ devices/devices.inf        (working copy)
-@@ -41,23 +41,23 @@
++
+diff --git a/Library/FileIO.c b/Library/FileIO.c
+index 40c67d1..8820c52 100644
+--- a/Library/FileIO.c
++++ b/Library/FileIO.c
+@@ -21,7 +21,7 @@ Revision History
  
- [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
-@@ -72,7 +72,11 @@
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
  
- [nmake.common]
-   IMAGE_ENTRY_POINT=DevicesMain
-+
-+[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-   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_BOOTSHELL
+ typedef struct _PATH_COMPONENTS {
+   CHAR16                  *Name;
+@@ -719,7 +719,6 @@ LibSplitFsAndPath (
+   IN OUT CHAR16                       **Path
+   )
+ {
+-  EFI_STATUS  Status;
+   CHAR16      *p;
+   UINTN       Size;
  
-+[nmake.ARM, nmake.AARCH64]
-+  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: mv/mv.c
-===================================================================
---- mv/mv.c    (revision 64)
-+++ mv/mv.c    (working copy)
-@@ -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[] = {
-   {
-@@ -55,7 +55,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
-   }
- };
+@@ -728,7 +727,6 @@ LibSplitFsAndPath (
+   *Fs     = NULL;
+   *Path   = NULL;
+-  Status  = EFI_SUCCESS;
  
-Index: mv/mv.h
-===================================================================
---- mv/mv.h    (revision 64)
-+++ mv/mv.h    (working copy)
-@@ -33,4 +33,4 @@
+   p       = AbPath;
+   while (*p) {
+@@ -1017,13 +1015,11 @@ Return:
+   EFI_LIST_ENTRY  SrcList;
+   EFI_LIST_ENTRY  DstList;
+   EFI_STATUS      Status;
+-  EFI_LIST_ENTRY  *Link;
+   SHELL_FILE_ARG  *SrcArg;
+   SHELL_FILE_ARG  *DstArg;
+   
+   ASSERT (IsSame != NULL);
  
- #define EFI_FILE_STRING_SIZE  260
+-  Link    = NULL;
+   SrcArg  = NULL;
+   DstArg  = NULL;
+   InitializeListHead (&SrcList);
+diff --git a/Library/FileIO.h b/Library/FileIO.h
+index bb07d91..e568e17 100644
+--- a/Library/FileIO.h
++++ b/Library/FileIO.h
+@@ -208,4 +208,6 @@ CloseSimpleReadFile (
+   IN SIMPLE_READ_FILE               SimpleReadHandle
+   );
  
 -#endif
 \ No newline at end of file
 +#endif
-Index: mv/mv.inf
-===================================================================
---- mv/mv.inf  (revision 64)
-+++ mv/mv.inf  (working copy)
-@@ -40,24 +40,24 @@
++
++
+diff --git a/Library/Handle.c b/Library/Handle.c
+index 25da2a1..45e623c 100644
+--- a/Library/Handle.c
++++ b/Library/Handle.c
+@@ -21,7 +21,7 @@ Revision History
  
+ --*/
  
- [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./
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
  
- [libraries.common]  
-   EfiShellLib
-@@ -72,7 +72,11 @@
+ EFI_STATUS
+ LibLocateHandle (
+@@ -131,7 +131,6 @@ Returns:
+   EFI_HANDLE                *BlockIoBuffer;
+   EFI_DEVICE_PATH_PROTOCOL  *DevicePath;
+   UINTN                     Index;
+-  EFI_DEVICE_PATH_PROTOCOL  *Start;
+   EFI_DEVICE_PATH_PROTOCOL  *Next;
+   EFI_DEVICE_PATH_PROTOCOL  *DevPath;
+   HARDDRIVE_DEVICE_PATH     *HardDriveDevicePath;
+@@ -204,7 +203,6 @@ Returns:
+       PreviousNodeIsHardDriveDevicePath = FALSE;
  
- [nmake.common]
-   IMAGE_ENTRY_POINT=InitializeMv
-+
-+[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-   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_BOOTSHELL
+       DevPath = DevicePath;
+-      Start = DevPath;
+       //
+       // Check for end of device path type
+       //
+@@ -796,14 +794,12 @@ LibScanHandleDatabase (
+   UINTN                               OpenInfoIndex;
+   UINTN                               ChildIndex;
+   BOOLEAN                             DriverBindingHandleIndexValid;
+-  BOOLEAN                             ControllerHandleIndexValid;
  
-+[nmake.ARM, nmake.AARCH64]
-+  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: unload/unload.c
-===================================================================
---- unload/unload.c    (revision 64)
-+++ unload/unload.c    (working copy)
-@@ -66,7 +66,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   DriverBindingHandleIndexValid = FALSE;
+   if (DriverBindingHandleIndex != NULL) {
+     *DriverBindingHandleIndex = 0xffffffff;
    }
- };
  
-@@ -110,7 +110,7 @@
-       *DriverName = LibDevicePathToStr (Image->FilePath);
-     }
-   } else {
--    LibGetDriverName(DriverBindingHandle, Language, DriverName);
-+    LibGetDriverName(DriverBindingHandle, (CHAR8*)Language, DriverName);
+-  ControllerHandleIndexValid = FALSE;
+   if (ControllerHandleIndex != NULL) {
+     *ControllerHandleIndex = 0xffffffff;
    }
+@@ -847,7 +843,6 @@ LibScanHandleDatabase (
  
-   return EFI_SUCCESS;
-@@ -184,7 +184,7 @@
-     DevicePath      = NULL;
-     BestDeviceName  = NULL;
--    Status          = BS->HandleProtocol (Handle, &gEfiDevicePathProtocolGuid, &DevicePath);
-+    Status          = BS->HandleProtocol (Handle, &gEfiDevicePathProtocolGuid, (VOID**)&DevicePath);
+     if (ControllerHandle != NULL && ControllerHandleIndex != NULL && (*HandleBuffer)[HandleIndex] == ControllerHandle) {
+       *ControllerHandleIndex      = (UINT32) HandleIndex;
+-      ControllerHandleIndexValid  = TRUE;
+     }
  
-     Print (L"\n");
-     PrintToken (STRING_TOKEN (STR_UNLOAD_CONTROLLER_NAME), HiiUnloadHandle);
-@@ -242,14 +242,14 @@
-         Image = FALSE;
-         Status = _UnloadGetDriverName (
-                   DriverBindingHandleBuffer[Index],
--                  Language,
-+                  (UINT8*)Language,
-                   FALSE,
-                   &DriverName
+   }
+@@ -1305,7 +1300,7 @@ Returns:
+     Status = BS->HandleProtocol (
+                   Handles[Index],
+                   ProtocolGuid,
+-                  Interface
++                  (VOID**)Interface
                    );
-         if (DriverName == NULL) {
-           Status = _UnloadGetDriverName (
-                     DriverBindingHandleBuffer[Index],
--                    Language,
-+                    (UINT8*)Language,
-                     TRUE,
-                     &DriverName
-                     );
-@@ -436,7 +436,7 @@
  
-   Status = _UnloadGetDriverName (
-             Handle,
--            Language,
-+            (UINT8*)Language,
-             FALSE,
-             &DriverName
-             );
-@@ -450,7 +450,7 @@
+     if (!EFI_ERROR (Status)) {
+diff --git a/Library/Handle.h b/Library/Handle.h
+index 40ad40b..010e2cf 100644
+--- a/Library/Handle.h
++++ b/Library/Handle.h
+@@ -161,3 +161,4 @@ ShellGetHandleNum (
+   );
  
-   Status = _UnloadGetDriverName (
-             Handle,
--            Language,
-+            (UINT8*)Language,
-             TRUE,
-             &DriverName
-             );
-@@ -628,7 +628,7 @@
+ #endif
++
+diff --git a/Library/HiiSupport.c b/Library/HiiSupport.c
+index bce645b..5f70712 100644
+--- a/Library/HiiSupport.c
++++ b/Library/HiiSupport.c
+@@ -21,7 +21,7 @@ Revision History
\r
+ --*/\r
\r
+-#include "EfiShelllib.h"\r
++#include "EfiShellLib.h"\r
\r
+ #if (EFI_SPECIFICATION_VERSION >= 0x0002000A)\r
\r
+@@ -56,11 +56,11 @@ Returns:
+     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 --git a/Library/HiiSupport.h b/Library/HiiSupport.h
+index b04c443..bfeb077 100644
+--- a/Library/HiiSupport.h
++++ b/Library/HiiSupport.h
+@@ -142,3 +142,4 @@ LibGetString (
+ ;\r
\r
+ #endif\r
++
+diff --git a/Library/IA32/efilibplat.h b/Library/IA32/efilibplat.h
+index 4e58f50..a6eb87f 100644
+--- a/Library/IA32/efilibplat.h
++++ b/Library/IA32/efilibplat.h
+@@ -34,4 +34,4 @@ InitializeLibPlatform (
  
-       if (Prot->Handles[Index] == Handle) {
-         Dump    = Verbose ? Prot->DumpInfo : Prot->DumpToken;
--        Status  = BS->HandleProtocol (Handle, &Prot->ProtocolId, &Interface);
-+        Status  = BS->HandleProtocol (Handle, &Prot->ProtocolId, (VOID**)&Interface);
-         if (!EFI_ERROR (Status)) {
-           if (Verbose) {
-             for (Index1 = 0; Index1 < ProtocolBufferCount; Index1++) {
-@@ -676,7 +676,7 @@
-           goto Done;
-         }
+ #define MIN_ALIGNMENT_SIZE  4
  
--        Status = BS->HandleProtocol (Handle, ProtocolBuffer[Index1], &Interface);
-+        Status = BS->HandleProtocol (Handle, ProtocolBuffer[Index1], (VOID**)&Interface);
-         if (!EFI_ERROR (Status)) {
-           PrintToken (STRING_TOKEN (STR_UNLOAD_TWO_VARS_HG_NEW), HiiUnloadHandle, ProtocolBuffer[Index1], Interface);
-         }
-Index: unload/unload.h
-===================================================================
---- unload/unload.h    (revision 64)
-+++ unload/unload.h    (working copy)
-@@ -36,3 +36,4 @@
-   }
+-#endif
+\ No newline at end of file
++#endif
+diff --git a/Library/IO.c b/Library/IO.c
+index 81f26fd..b976e32 100644
+--- a/Library/IO.c
++++ b/Library/IO.c
+@@ -21,7 +21,7 @@ Revision History
  
- #endif
-+
-Index: unload/unload.inf
-===================================================================
---- unload/unload.inf  (revision 64)
-+++ unload/unload.inf  (working copy)
-@@ -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./
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
  
- [libraries.common]  
-   EfiShellLib
-@@ -70,6 +70,11 @@
+ #define PRINT_STRING_LEN        1024
+ #define PRINT_ITEM_BUFFER_LEN   100
+@@ -86,8 +86,8 @@ typedef struct _pstate {
+ typedef struct {
+   BOOLEAN PageBreak;
+   BOOLEAN AutoWrap;
+-  INTN    MaxRow;
+-  INTN    MaxColumn;
++  UINTN   MaxRow;
++  UINTN   MaxColumn;
+   INTN    InitRow;
+   INTN    Row;
+   INTN    Column;
+@@ -1575,7 +1575,7 @@ Returns:
+ {
+   BOOLEAN       Done;
+   UINTN         Column;
+-  INTN          Row;
++  UINTN         Row;
+   UINTN         StartColumn;
+   UINTN         Update;
+   UINTN         Delete;
+@@ -1769,7 +1769,7 @@ Returns:
+     //
+     // If we need to update the output do so now
+     //
+-    if (Update != -1) {
++    if (Update != (UINTN)  -1) {
+       PrintAt (Column, Row, L"%s%.*s", InStr + Update, Delete, L"");
+       Len = StrLen (InStr);
  
- [nmake.common]
-   IMAGE_ENTRY_POINT=InitializeUnload
+@@ -1928,8 +1928,8 @@ LibGetPageBreak (
+   return mPrintMode.PageBreak;
+ }
++#if 0
+ STATIC
+-
+ BOOLEAN
+ GetOutputPause (
+   VOID
+@@ -1937,6 +1937,7 @@ GetOutputPause (
+ {
+   return mPrintMode.OutputPause;
+ }
++#endif
+ INTN
+ DbgPrint (
+diff --git a/Library/IO.h b/Library/IO.h
+index 7469c32..6dfc743 100644
+--- a/Library/IO.h
++++ b/Library/IO.h
+@@ -157,4 +157,6 @@ LibGetPageBreak (
+   );
+-#endif
+\ No newline at end of file
++#endif
 +
-+[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-   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_BOOTSHELL
 +
-+[nmake.ARM, nmake.AARCH64]
-+  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: mode/mode.inf
-===================================================================
---- mode/mode.inf      (revision 64)
-+++ mode/mode.inf      (working copy)
-@@ -40,24 +40,24 @@
+diff --git a/Library/IPF/efilibplat.h b/Library/IPF/efilibplat.h
+index 90659b4..aad0dd0 100644
+--- a/Library/IPF/efilibplat.h
++++ b/Library/IPF/efilibplat.h
+@@ -35,3 +35,4 @@ InitializeLibPlatform (
+ #define MIN_ALIGNMENT_SIZE  8
  
- [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./
+ #endif
++
+diff --git a/Library/IPF/libsalpal.h b/Library/IPF/libsalpal.h
+index fc25995..1461669 100644
+--- a/Library/IPF/libsalpal.h
++++ b/Library/IPF/libsalpal.h
+@@ -74,4 +74,4 @@ LibSalProc (
+   IN  UINT64    Arg8
+   );
  
- [libraries.common]  
-   EfiShellLib
-@@ -72,7 +72,11 @@
+-#endif
+\ No newline at end of file
++#endif
+diff --git a/Library/IPF/palproc.h b/Library/IPF/palproc.h
+index 6d1edf8..ea426bf 100644
+--- a/Library/IPF/palproc.h
++++ b/Library/IPF/palproc.h
+@@ -58,3 +58,4 @@
+ #define PAL_MC_REGISTER_MEM   0x001b
  
- [nmake.common]
-   IMAGE_ENTRY_POINT=InitializeMode
+ #endif // _PALPROC_H
 +
-+[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-   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_BOOTSHELL
+diff --git a/Library/Init.c b/Library/Init.c
+index 3ef0c8e..e791ff1 100644
+--- a/Library/Init.c
++++ b/Library/Init.c
+@@ -20,7 +20,7 @@ Revision History
  
-+[nmake.ARM, nmake.AARCH64]
-+  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: mode/mode.c
-===================================================================
---- mode/mode.c        (revision 64)
-+++ mode/mode.c        (working copy)
-@@ -53,7 +53,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
-   }
- };
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ extern EFI_UNICODE_COLLATION_PROTOCOL LibStubUnicodeInterface;
  
-Index: mode/mode.h
-===================================================================
---- mode/mode.h        (revision 64)
-+++ mode/mode.h        (working copy)
-@@ -30,3 +30,4 @@
+diff --git a/Library/LinkedList.h b/Library/LinkedList.h
+index d39e5a3..0c82b61 100644
+--- a/Library/LinkedList.h
++++ b/Library/LinkedList.h
+@@ -77,11 +77,10 @@ typedef struct _EFI_LIST_ENTRY {
    }
  
+ #define SwapListEntries(Entry1, Entry2) { \
+-    EFI_LIST_ENTRY  *Entry1Flink, *Entry1Blink; \
++    EFI_LIST_ENTRY  *Entry1Blink; \
+     EFI_LIST_ENTRY  *Entry2Flink, *Entry2Blink; \
+     Entry2Flink         = (Entry2)->Flink; \
+     Entry2Blink         = (Entry2)->Blink; \
+-    Entry1Flink         = (Entry1)->Flink; \
+     Entry1Blink         = (Entry1)->Blink; \
+     Entry2Blink->Flink  = Entry2Flink; \
+     Entry2Flink->Blink  = Entry2Blink; \
+@@ -100,3 +99,4 @@ typedef struct _EFI_LIST_ENTRY {
+ // A lock structure
+ //
  #endif
 +
-Index: attrib/attrib.inf
-===================================================================
---- attrib/attrib.inf  (revision 64)
-+++ attrib/attrib.inf  (working copy)
-@@ -41,24 +41,24 @@
+diff --git a/Library/Lock.c b/Library/Lock.c
+index 8a40db5..b3f9bad 100644
+--- a/Library/Lock.c
++++ b/Library/Lock.c
+@@ -21,7 +21,7 @@ Revision History
  
- [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./
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
  
- [libraries.common]  
-   EfiShellLib
-@@ -73,7 +73,11 @@
+ VOID
+ InitializeLock (
+diff --git a/Library/Lock.h b/Library/Lock.h
+index 9e35b92..bd5304e 100644
+--- a/Library/Lock.h
++++ b/Library/Lock.h
+@@ -45,4 +45,6 @@ ReleaseLock (
+   IN FLOCK    *Lock
+   );
  
- [nmake.common]
-   IMAGE_ENTRY_POINT=InitializeAttrib
+-#endif
+\ No newline at end of file
++#endif
 +
-+[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-   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_BOOTSHELL
++
+diff --git a/Library/Mem.c b/Library/Mem.c
+index f82cb52..9675b52 100644
+--- a/Library/Mem.c
++++ b/Library/Mem.c
+@@ -21,7 +21,7 @@ Revision History
  
-+[nmake.ARM, nmake.AARCH64]
-+  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: attrib/attrib.c
-===================================================================
---- attrib/attrib.c    (revision 64)
-+++ attrib/attrib.c    (working copy)
-@@ -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[] = {
-   {
-@@ -124,7 +124,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
-   }
- };
+ --*/
  
-@@ -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,
-Index: attrib/attrib.h
-===================================================================
---- attrib/attrib.h    (revision 64)
-+++ attrib/attrib.h    (working copy)
-@@ -29,4 +29,5 @@
-     0xcd691c77, 0xfc45, 0x4d7b, 0xb8, 0x92, 0x92, 0xa, 0x86, 0x2d, 0x67, 0xdc \
-   }
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ VOID
+ SetMem (
+diff --git a/Library/Mem.h b/Library/Mem.h
+index bca1e1d..1e0b331 100644
+--- a/Library/Mem.h
++++ b/Library/Mem.h
+@@ -73,4 +73,6 @@ ZeroMem (
+   IN UINTN    Size
+   );
  
 -#endif
 \ No newline at end of file
 +#endif
 +
-Index: err/err.inf
-===================================================================
---- err/err.inf        (revision 64)
-+++ err/err.inf        (working copy)
-@@ -25,7 +25,7 @@
- COMPONENT_TYPE       = APPLICATION
++
+diff --git a/Library/Misc.c b/Library/Misc.c
+index 1564c49..e3204ff 100644
+--- a/Library/Misc.c
++++ b/Library/Misc.c
+@@ -21,7 +21,7 @@ Revision History
  
- [sources.common]
--..\ShCommonStrings.uni
-+../ShCommonStrings.uni
- ErrStrings.uni
- err.c
- err.h
-@@ -33,17 +33,17 @@
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ #if (PLATFORM == NT32)
+ #define LOCAL_EFI_WIN_NT_THUNK_PROTOCOL_GUID \
+@@ -348,7 +348,7 @@ Returns:
+   ASSERT (Buffer != NULL);
+   if (mShellEnv == NULL) {
+-    Status = LibLocateProtocol (&ShellEnvProtocol, &mShellEnv);
++    Status = LibLocateProtocol (&ShellEnvProtocol, (VOID**)&mShellEnv);
+     if (EFI_ERROR (Status)) {
+       mShellEnv = NULL;
+     }
+@@ -1171,7 +1171,7 @@ Returns:
+       Status = BS->HandleProtocol (
+                     Image->DeviceHandle,
+                     &gEfiFirmwareVolumeProtocolGuid,
+-                    &FV
++                    (VOID**)&FV
+                     );
+       if (!EFI_ERROR (Status)) {
+         Status = FV->ReadSection (
+@@ -1192,7 +1192,7 @@ Returns:
+         Status = BS->HandleProtocol (
+                       Image->DeviceHandle,
+                       &gEfiFirmwareVolume2ProtocolGuid,
+-                      &FV2
++                      (VOID**)&FV2
+                       );
+         if (!EFI_ERROR (Status)) {
+           Status = FV2->ReadSection (
+@@ -1339,7 +1339,7 @@ LibCmdGetStringByToken (
+ {
+   EFI_STATUS      Status;
+   CHAR16          *String;
+-  EFI_HII_HANDLE  HiiHandle;
++  STATIC EFI_HII_HANDLE  HiiHandle;
+   ASSERT (Str);
+@@ -1730,6 +1730,8 @@ Returns:
+     return L"X64";
+   case EFI_IMAGE_MACHINE_IA64:
+     return L"IA64";
++  case EFI_IMAGE_MACHINE_AARCH64:
++    return L"AARCH64";
+   default:
+     return L"UNKNOWN";
+   }
+@@ -2544,4 +2546,5 @@ Returns:
+   }
+   return Status;
+-}
+\ No newline at end of file
++}
++
+diff --git a/Library/Misc.h b/Library/Misc.h
+index 7a99186..a7a6825 100644
+--- a/Library/Misc.h
++++ b/Library/Misc.h
+@@ -258,3 +258,4 @@ LibGetExitCode (
+   );
+ #endif
++
+diff --git a/Library/Perf.c b/Library/Perf.c
+index 43e09ea..87c4113 100644
+--- a/Library/Perf.c
++++ b/Library/Perf.c
+@@ -19,7 +19,7 @@ Abstract:
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ #include EFI_PROTOCOL_DEFINITION (Performance)
+diff --git a/Library/RtData.c b/Library/RtData.c
+index af55cb4..145e933 100644
+--- a/Library/RtData.c
++++ b/Library/RtData.c
+@@ -21,7 +21,7 @@ Revision History
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ //
+ // RT - pointer to the runtime table
+diff --git a/Library/ShellDebug.c b/Library/ShellDebug.c
+index b31ef06..c8b93d5 100644
+--- a/Library/ShellDebug.c
++++ b/Library/ShellDebug.c
+@@ -19,7 +19,7 @@ Abstract:
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ #include EFI_PROTOCOL_DEFINITION (DebugAssert)
+ EFI_DEBUG_ASSERT_PROTOCOL *mDebugAssert = NULL;
+diff --git a/Library/ShellDebug.h b/Library/ShellDebug.h
+index 039197e..aedb3fa 100644
+--- a/Library/ShellDebug.h
++++ b/Library/ShellDebug.h
+@@ -99,3 +99,4 @@ EFIDebugVariable (
+   );
+ #endif
+     
++
+diff --git a/Library/ShellEnvInt.c b/Library/ShellEnvInt.c
+index b99d973..53de481 100644
+--- a/Library/ShellEnvInt.c
++++ b/Library/ShellEnvInt.c
+@@ -21,7 +21,7 @@ Revision History
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ EFI_STATUS
+ ShellExecute (
+diff --git a/Library/ShellEnvInt.h b/Library/ShellEnvInt.h
+index 4182dff..653f997 100644
+--- a/Library/ShellEnvInt.h
++++ b/Library/ShellEnvInt.h
+@@ -196,4 +196,6 @@ ShellGetHandleNum (
+   VOID
+   );
+-#endif
+\ No newline at end of file
++#endif
++
++
+diff --git a/Library/Str.c b/Library/Str.c
+index ca0c76b..d881dae 100644
+--- a/Library/Str.c
++++ b/Library/Str.c
+@@ -22,7 +22,7 @@ Revision History
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ INTN
+ StrCmp (
+@@ -421,7 +421,7 @@ Returns:
+         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 @@ Returns:
+   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 --git a/Library/Str.h b/Library/Str.h
+index 3f73bc5..7b01848 100644
+--- a/Library/Str.h
++++ b/Library/Str.h
+@@ -248,3 +248,4 @@ LibStubStrUpr (
+   );
+ #endif
++
+diff --git a/Library/VarCheck.c b/Library/VarCheck.c
+index 53597ff..1abec9d 100644
+--- a/Library/VarCheck.c
++++ b/Library/VarCheck.c
+@@ -21,7 +21,7 @@ Revision History
+ --*/
+-#include "EfiShelllib.h"
++#include "EfiShellLib.h"
+ VOID
+ LibCheckVarFreeVarList (
+diff --git a/Library/VarCheck.h b/Library/VarCheck.h
+index bc1f412..d2bfa66 100644
+--- a/Library/VarCheck.h
++++ b/Library/VarCheck.h
+@@ -41,7 +41,7 @@ typedef enum {
+   ARG_PARTIALLY_QUOTED  = 0x2,
+   ARG_FIRST_HALF_QUOTED = 0x4,
+   ARG_FIRST_CHAR_IS_ESC = 0x8
+-};
++} SHELL_ARG_EXPR;
+ typedef struct {
+   CHAR16                    *FlagStr;
+@@ -116,3 +116,4 @@ LibGetErrRedirFilename (
+   );
+ #endif
++
+diff --git a/Library/X64/efilibplat.h b/Library/X64/efilibplat.h
+index 90659b4..aad0dd0 100644
+--- a/Library/X64/efilibplat.h
++++ b/Library/X64/efilibplat.h
+@@ -35,3 +35,4 @@ InitializeLibPlatform (
+ #define MIN_ALIGNMENT_SIZE  8
+ #endif
++
+diff --git a/LoadPciRom/LoadPciRom.c b/LoadPciRom/LoadPciRom.c
+index f8854b7..99fd99d 100644
+--- a/LoadPciRom/LoadPciRom.c
++++ b/LoadPciRom/LoadPciRom.c
+@@ -24,7 +24,7 @@ Revision History
+ #include "EfiShellLib.h"
+ #include "LoadPciRom.h"
+-#include "Pci22.h"
++#include "pci22.h"
+ extern UINT8    STRING_ARRAY_NAME[];
+@@ -56,7 +56,7 @@ LoadEfiDriversFromRomImage (
+   );
+ EFI_HANDLE      gMyImageHandle;
+-EFI_HII_HANDLE  HiiHandle;
++STATIC EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiLoadPciRomGuid = EFI_LOADPCIROM_GUID;
+ SHELL_VAR_CHECK_ITEM    LPRCheckList[] = {
+   {
+@@ -81,7 +81,7 @@ SHELL_VAR_CHECK_ITEM    LPRCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   }
+ };
+@@ -377,7 +377,7 @@ Returns:
+         }
+         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 --git a/LoadPciRom/LoadPciRom.h b/LoadPciRom/LoadPciRom.h
+index e9db96d..116bb89 100644
+--- a/LoadPciRom/LoadPciRom.h
++++ b/LoadPciRom/LoadPciRom.h
+@@ -30,3 +30,4 @@ Revision History
+   }
+ #endif
++
+diff --git a/LoadPciRom/LoadPciRom.inf b/LoadPciRom/LoadPciRom.inf
+index 8e79af7..83744ef 100644
+--- a/LoadPciRom/LoadPciRom.inf
++++ b/LoadPciRom/LoadPciRom.inf
+@@ -41,23 +41,23 @@ COMPONENT_TYPE       = APPLICATION
  
+ [sources.common]
+   LoadPciRomStrings.uni
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   LoadPciRom.c
+   LoadPciRom.h  
+   
  [includes.common]
    .
 -  ..\Inc
@@ -1360,47 +1825,40 @@ Index: err/err.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -63,11 +63,14 @@
- # we will specify some additional DEFINEs on the compile command line.
- #
+@@ -72,7 +72,11 @@ COMPONENT_TYPE       = APPLICATION
  [nmake.common]
-+  IMAGE_ENTRY_POINT=InitializeError
+   IMAGE_ENTRY_POINT=InitializeLoadPciRom
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-   C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
--  IMAGE_ENTRY_POINT=InitializeError
    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_BOOTSHELL
  
--
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-  
-\ No newline at end of file
-Index: err/DebugMask.h
-===================================================================
---- err/DebugMask.h    (revision 64)
-+++ err/DebugMask.h    (working copy)
-@@ -67,3 +67,4 @@
- extern EFI_GUID gEfiDebugMaskProtocolGuid;
+diff --git a/Ping/Ping.c b/Ping/Ping.c
+index 7d92881..65e45b7 100644
+--- a/Ping/Ping.c
++++ b/Ping/Ping.c
+@@ -20,14 +20,14 @@ Abstract:
+ --*/
+ #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[];
  
- #endif
-+
-Index: err/err.c
-===================================================================
---- err/err.c  (revision 64)
-+++ err/err.c  (working copy)
-@@ -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[] = {
  {
-@@ -60,7 +60,7 @@
+ EFI_GUID  EfiPingGuid = EFI_PING_GUID;
SHELL_VAR_CHECK_ITEM  PingCheckList[] = {
+@@ -59,7 +59,7 @@ SHELL_VAR_CHECK_ITEM  PingCheckList[] = {
      NULL,
      0,
      0,
@@ -1409,1432 +1867,1401 @@ Index: err/err.c
    }
  };
  
-@@ -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)) {
-@@ -170,13 +170,11 @@
-   UINTN       HandleNum;
-   UINTN       Index;
-   UINTN       DrvHandle;
--  BOOLEAN     Found;
-   HandleBuf = NULL;
-   HandleNum = 0;
-   DrvHandle = 0;
-   Status    = EFI_SUCCESS;
--  Found     = FALSE;
+@@ -114,6 +114,8 @@ UINT32            RttSum;
+ UINT32            RttMin;
+ UINT32            RttMax;
  
-   if (NULL != Handle) {
-     DrvHandle = (UINTN) StrToUIntegerBase (Handle, 16, &Status) - 1;
-@@ -278,7 +276,7 @@
-     goto Done;
-   }
++EFI_CPU_ARCH_PROTOCOL  *gCpu = NULL;
++
+ STATIC
+ UINT64
+ GetTimerValue (
+@@ -135,7 +137,22 @@ Returns:
  
--  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 +334,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);
-   }
+ --*/
+ {
+-  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;
+ }
  
-Index: err/err.h
-===================================================================
---- err/err.h  (revision 64)
-+++ err/err.h  (working copy)
-@@ -29,4 +29,4 @@
-     0xdaab229b, 0x7883, 0x4f5f, 0xac, 0x6e, 0x15, 0x20, 0xc7, 0xe7, 0x8f, 0xd4 \
+ STATIC
+@@ -168,7 +185,7 @@ Returns:
+   //
+   // Locate the Cpu Arch Protocol.
+   //
+-  Status = BS->LocateProtocol (&gEfiCpuArchProtocolGuid, NULL, &Cpu);
++  Status = BS->LocateProtocol (&gEfiCpuArchProtocolGuid, NULL, (VOID**)&Cpu);
+   if (EFI_ERROR (Status)) {
+     return Status;
    }
+diff --git a/Ping/Ping.h b/Ping/Ping.h
+index 7867caf..6f59a0c 100644
+--- a/Ping/Ping.h
++++ b/Ping/Ping.h
+@@ -78,3 +78,4 @@ typedef struct _ICMP_TX_INFO {
+ } ICMP_TX_INFO;
  
--#endif
-\ No newline at end of file
-+#endif
-Index: EfiDecompress/Decompress.inf
-===================================================================
---- EfiDecompress/Decompress.inf       (revision 64)
-+++ EfiDecompress/Decompress.inf       (working copy)
-@@ -25,7 +25,7 @@
+ #endif
++
+diff --git a/Ping/Ping.inf b/Ping/Ping.inf
+index 64dec5c..a678489 100644
+--- a/Ping/Ping.inf
++++ b/Ping/Ping.inf
+@@ -25,24 +25,24 @@ FILE_GUID            = FAAA94BA-7095-4c0f-8D69-8E00C8328863
  COMPONENT_TYPE       = APPLICATION
  
  [sources.common]
--..\ShCommonStrings.uni
-+../ShCommonStrings.uni
- DecompressStrings.uni
- decompress.c
- decompress.h
-@@ -33,17 +33,17 @@
+-  ..\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\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)\
 +  ../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/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]  
    EfiShellLib
-@@ -63,11 +63,14 @@
- # we will specify some additional DEFINEs on the compile command line.
- #
+@@ -52,7 +52,6 @@ COMPONENT_TYPE       = APPLICATION
+   ArchProtocolLib
+   EdkGuidLib
+   EdkFrameworkGuidLib
+-  EfiDriverLib
+ [libraries.Ia32]
+   CpuIA32Lib
+@@ -64,9 +63,12 @@ COMPONENT_TYPE       = APPLICATION
+   CpuIA32Lib
  [nmake.common]
-+  IMAGE_ENTRY_POINT=InitializeDecompress
+-  C_PROJ_FLAGS = $(C_PROJ_FLAGS)
+   IMAGE_ENTRY_POINT=Ping
+-  C_STD_FLAGS = $(C_STD_FLAGS) /DEFI_BOOTSHELL
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-   C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
--  IMAGE_ENTRY_POINT=InitializeDecompress
    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_BOOTSHELL
++  C_STD_FLAGS = $(C_STD_FLAGS) /DEFI_BOOTSHELL
  
--
-- 
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-+ 
-\ No newline at end of file
-Index: EfiDecompress/Decompress.c
-===================================================================
---- EfiDecompress/Decompress.c (revision 64)
-+++ EfiDecompress/Decompress.c (working copy)
-@@ -22,7 +22,7 @@
- --*/
- #include "EfiShellLib.h"
--#include "decompress.h"
-+#include "Decompress.h"
+diff --git a/Shell.inf b/Shell.inf
+index fee3558..b1dc90e 100644
+--- a/Shell.inf
++++ b/Shell.inf
+@@ -25,179 +25,189 @@ FILE_GUID            = c57ad6b7-0515-40a8-9d21-551652854e37
+ COMPONENT_TYPE       = APPLICATION
  
- extern UINT8    STRING_ARRAY_NAME[];
+ [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
  
-@@ -31,7 +31,7 @@
- //
- #include STRING_DEFINES_FILE
+   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/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/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
++  attrib/AttribStrings.uni
++  attrib/attrib.c
++  attrib/attrib.h
  
--#include EFI_PROTOCOL_DEFINITION (decompress)
-+#include EFI_PROTOCOL_DEFINITION (Decompress)
+-  cls\clsstrings.uni
+-  cls\cls.c
++  cls/clsstrings.uni
++  cls/cls.c
  
- EFI_HII_HANDLE  HiiDecompressHandle;
- EFI_GUID        EfiDecompressGuid = EFI_DECOMPRESS_GUID;
-@@ -52,7 +52,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
-   }
- };
+-  cp\CpStrings.uni
+-  cp\cp.h
+-  cp\cp.c
++  cp/CpStrings.uni
++  cp/cp.h
++  cp/cp.c
+  
+-  date\DateStrings.uni
+-  date\date.c
+-  date\date.h
++  date/DateStrings.uni
++  date/date.c
++  date/date.h
  
-@@ -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;
-Index: EfiDecompress/Decompress.h
-===================================================================
---- EfiDecompress/Decompress.h (revision 64)
-+++ EfiDecompress/Decompress.h (working copy)
-@@ -29,4 +29,4 @@
-     0xe15963a9, 0xa05a, 0x480e, 0x91, 0x49, 0x32, 0xe9, 0x24, 0x5d, 0x98, 0xcb \
-   }
+-  load\LoadStrings.uni
+-  load\load.c
+-  load\load.h
++  load/LoadStrings.uni
++  load/load.c
++  load/load.h
  
--#endif
-\ No newline at end of file
-+#endif
-Index: hexedit/libStatusBar.c
-===================================================================
---- hexedit/libStatusBar.c     (revision 64)
-+++ hexedit/libStatusBar.c     (working copy)
-@@ -173,6 +173,7 @@
-   // back up the screen attributes
-   //
-   Orig                  = HMainEditor.ColorAttributes;
-+  New.Data              = 0;
-   New.Colors.Foreground = Orig.Colors.Background;
-   New.Colors.Background = Orig.Colors.Foreground;
+-  ls\LsStrings.uni
+-  ls\ls.h
+-  ls\ls.c
++  ls/LsStrings.uni
++  ls/ls.h
++  ls/ls.c
  
-Index: hexedit/libtitlebar.h
-===================================================================
---- hexedit/libtitlebar.h      (revision 64)
-+++ hexedit/libtitlebar.h      (working copy)
-@@ -46,3 +46,4 @@
-   );
+-  mkdir\MkdirStrings.uni
+-  mkdir\mkdir.c
+-  mkdir\mkdir.h
++  mkdir/MkdirStrings.uni
++  mkdir/mkdir.c
++  mkdir/mkdir.h
  
- #endif
+-  mv\MvStrings.uni
+-  mv\mv.c
+-  mv\mv.h
++  mv/MvStrings.uni
++  mv/mv.c
++  mv/mv.h
+  
+-  reset\ResetStrings.uni
+-  reset\reset.c
+-  reset\reset.h
++  reset/ResetStrings.uni
++  reset/reset.c
++  reset/reset.h
+   
+-  rm\RmStrings.uni
+-  rm\rm.h
+-  rm\rm.c
++  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
++  type/TypeStrings.uni
++  type/type.c
++  type/type.h
++  time/TimeStrings.uni
++  time/time.c
++  time/time.h
 +
-Index: hexedit/heditor.h
-===================================================================
---- hexedit/heditor.h  (revision 64)
-+++ hexedit/heditor.h  (working copy)
-@@ -39,7 +39,7 @@
- #include "libinputbar.h"
- #include "libmenubar.h"
--#include "libmisc.h"
-+#include "libMisc.h"
- #include "libclipboard.h"
-@@ -52,9 +52,10 @@
- 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
- #endif // _HEDITOR_H
++  touch/TouchStrings.uni
++  touch/touch.c
++  touch/touch.h
 +
-Index: hexedit/libBufferImage.c
-===================================================================
---- hexedit/libBufferImage.c   (revision 64)
-+++ hexedit/libBufferImage.c   (working copy)
-@@ -203,6 +203,9 @@
-   case MEM_BUFFER:
-     HMemImageBackup ();
-     break;
++  vol/VolStrings.uni
++  vol/vol.c
++  vol/vol.h
 +
-+  case NO_BUFFER:
-+    break;
-   }
-   return EFI_SUCCESS;
-@@ -587,7 +590,7 @@
-   UINT8                   Value;
-   BOOLEAN                 HighBits;
--  Line = NULL;
-+  Line     = NULL;
-   if (HMainEditor.MouseSupported) {
++  ver/VerStrings.uni
++  ver/ver.c
++  ver/ver.h
+   
+-  drivers\driversStrings.uni
+-  drivers\drivers.c
+-  drivers\drivers.h
++  drivers/driversStrings.uni
++  drivers/drivers.c
++  drivers/drivers.h
+   
+-  drvcfg\DrvcfgStrings.uni
+-  drvcfg\drvcfg.c
+-  drvcfg\drvcfg.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
+  
  
-     if (HBufferImageMouseNeedRefresh) {
-@@ -610,6 +613,7 @@
-       // backup the old screen attributes
-       //
-       Orig                  = HMainEditor.ColorAttributes;
-+      New.Data              = 0;
-       New.Colors.Foreground = Orig.Colors.Background;
-       New.Colors.Background = Orig.Colors.Foreground;
  
-@@ -801,10 +805,10 @@
-   UINTN                   StartRow;
-   UINTN                   EndRow;
-   UINTN                   FStartRow;
--  UINTN                   FEndRow;
-   UINTN                   Tmp;
+ [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
  
-   Orig                  = HMainEditor.ColorAttributes;
-+  New.Data              = 0;
-   New.Colors.Foreground = Orig.Colors.Background;
-   New.Colors.Background = Orig.Colors.Foreground;
  
-@@ -870,7 +874,6 @@
-       }
+ [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
  
-       FStartRow = StartRow;
--      FEndRow   = EndRow;
+ [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
  
-       StartRow  = TEXT_START_ROW + StartRow - HBufferImage.LowVisibleRow;
-       EndRow    = TEXT_START_ROW + EndRow - HBufferImage.LowVisibleRow;
-@@ -980,6 +983,10 @@
-   case MEM_BUFFER:
-     Status = HMemImageRead (MemOffset, MemSize, Recover);
-     break;
+ [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
 +
-+  case NO_BUFFER:
-+    Status = EFI_UNSUPPORTED;
-+    break;
-   }
-   if (EFI_ERROR (Status)) {
-@@ -1030,6 +1037,10 @@
-   case MEM_BUFFER:
-     Status = HMemImageSave (MemOffset, MemSize);
-     break;
++[sources.ARM]
++  ver/ia32/ver32.c
++  Library/IPF/math.c
++  Library/IA32/initplat.c
 +
-+  case NO_BUFFER:
-+    Status = EFI_UNSUPPORTED;
-+    break;
-   }
++[sources.AARCH64]
++  ver/ia32/ver32.c
++  Library/IPF/math.c
++  Library/IA32/initplat.c
  
-   if (EFI_ERROR (Status)) {
-@@ -1967,14 +1978,11 @@
+ [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)
  
- --*/
- {
--  HEFI_EDITOR_LINE  *Line;
-   UINTN             FRow;
-   UINTN             FCol;
-   UINTN             Gap;
-   INTN              Retreat;
+ [libraries.common]
+@@ -216,17 +226,18 @@ COMPONENT_TYPE       = APPLICATION
+ # we will specify some additional DEFINEs on the compile command line.
+ #
+ [nmake.common]
+-  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
+   IMAGE_ENTRY_POINT=InitializeShell
+-  C_STD_FLAGS = $(C_STD_FLAGS) /DEFI_MONOSHELL
++
++[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
++  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
+   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
++
++[nmake.ARM, nmake.AARCH64]
++  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_MONOSHELL
  
--  Line  = HBufferImage.CurrentLine;
+ [nmake.ebc]
+   EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) /DEFI_MONOSHELL
+   EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) /DSTRING_ARRAY_NAME=$(BASE_NAME)Strings 
+   EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) /DSTRING_DEFINES_FILE=\"$(BASE_NAME)StrDefs.h\"
 -
-   FRow  = HBufferImage.BufferPosition.Row;
-   FCol  = HBufferImage.BufferPosition.Column;
-@@ -1996,7 +2004,7 @@
-   //
-   // get correct line
-   //
--  Line = HMoveLine (Retreat);
-+  HMoveLine (Retreat);
-   FRow -= Gap;
-@@ -2025,13 +2033,10 @@
- --*/
- {
--  HEFI_EDITOR_LINE  *Line;
-   UINTN             FRow;
-   UINTN             FCol;
-   BOOLEAN           HighBits;
--  Line = HBufferImage.CurrentLine;
 -
-   //
-   // curosr will at the high bit
-   //
-@@ -2157,7 +2162,6 @@
-   HEFI_EDITOR_LINE  *Line;
-   EFI_LIST_ENTRY    *Link;
--  UINTN             StartRow;
-   UINTN             OldFCol;
-   UINTN             OldFRow;
-@@ -2167,11 +2171,6 @@
-   EFI_STATUS        Status;
--  //
--  // get the line that start position is at
--  //
--  StartRow  = Pos / 0x10;
 -
-   Size      = HBufferImageGetTotalSize ();
-   if (Size < Count) {
-@@ -2300,7 +2299,6 @@
-   HEFI_EDITOR_LINE  *Line;
-   EFI_LIST_ENTRY    *Link;
--  UINTN             StartRow;
-   UINTN             OldFCol;
-   UINTN             OldFRow;
-@@ -2308,11 +2306,6 @@
+- 
+\ No newline at end of file
+diff --git a/ShellFull.inf b/ShellFull.inf
+index 832dc79..48fa7aa 100644
+--- a/ShellFull.inf
++++ b/ShellFull.inf
+@@ -20,300 +20,310 @@
+ #--*/
  
-   UINTN             NewPos;
+ [defines]
+-BASE_NAME            = Shell
+-FILE_GUID            = c57ad6b7-0515-40a8-9d21-551652854e37
++BASE_NAME            = ShellFull
++FILE_GUID            = 1903FB23-E526-4BDA-85E4-D68F2EEF0C20 
+ COMPONENT_TYPE       = APPLICATION
  
--  //
--  // get the line that start position is at
--  //
--  StartRow  = Pos / 0x10;
+ [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
 -
-   Size      = HBufferImageGetTotalSize ();
-   //
-Index: hexedit/libstatusbar.h
-===================================================================
---- hexedit/libstatusbar.h     (revision 64)
-+++ hexedit/libstatusbar.h     (working copy)
-@@ -55,3 +55,4 @@
-   );
- #endif
+-  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
 +
-Index: hexedit/heditortype.h
-===================================================================
---- hexedit/heditortype.h      (revision 64)
-+++ hexedit/heditortype.h      (working copy)
-@@ -30,7 +30,7 @@
- #define EDITOR_NAME           L"EFI Hex Editor\0"
- #define EDITOR_VERSION        L"0.99\0"
++  newshell/NshellStrings.uni
++  newshell/init.c
++  newshell/nshell.h
++  newshell/fakehii.c
  
--#define EFI_EDITOR_LINE_LIST  'eell'
-+#define EFI_EDITOR_LINE_LIST  EFI_SIGNATURE_32 ('e','e','l','l')
+   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/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/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
++  attrib/AttribStrings.uni
++  attrib/attrib.c
++  attrib/attrib.h
  
- #define FILE_ATTRIBUTES       EFI_FILE_MODE_READ | EFI_FILE_MODE_WRITE | EFI_FILE_MODE_CREATE
- #define FILE_READ_WRITE       EFI_FILE_MODE_READ | EFI_FILE_MODE_WRITE
-@@ -147,8 +147,8 @@
- } HEFI_EDITOR_MENU_ITEM;
+-  cls\clsstrings.uni
+-  cls\cls.c
++  cls/clsstrings.uni
++  cls/cls.c
  
- typedef struct {
--  UINT32  Foreground : 4;
--  UINT32  Background : 4;
-+  UINT8  Foreground : 4;
-+  UINT8  Background : 4;
- } HEFI_EDITOR_COLOR_ATTRIBUTES;
+-  cp\CpStrings.uni
+-  cp\cp.h
+-  cp\cp.c
++  cp/CpStrings.uni
++  cp/cp.h
++  cp/cp.c
+  
+-  date\DateStrings.uni
+-  date\date.c
+-  date\date.h
++  date/DateStrings.uni
++  date/date.c
++  date/date.h
  
- typedef union {
-@@ -251,3 +251,4 @@
- } HEFI_EDITOR_GLOBAL_EDITOR;
+-  load\LoadStrings.uni
+-  load\load.c
+-  load\load.h
++  load/LoadStrings.uni
++  load/load.c
++  load/load.h
  
- #endif
-+
-Index: hexedit/libMemImage.c
-===================================================================
---- hexedit/libMemImage.c      (revision 64)
-+++ hexedit/libMemImage.c      (working copy)
-@@ -91,7 +91,7 @@
-   Status = BS->LocateProtocol (
-                 &gEfiPciRootBridgeIoProtocolGuid,
-                 NULL,
--                &HMemImage.IoFncs
-+                (VOID**)&HMemImage.IoFncs
-                 );
-   if (Status == EFI_NOT_FOUND) {
-     //
-@@ -225,9 +225,6 @@
-   CHAR16                          *Str;
-   HEFI_EDITOR_LINE                *Line;
--  HEFI_EDITOR_ACTIVE_BUFFER_TYPE  BufferTypeBackup;
--
--  BufferTypeBackup        = HBufferImage.BufferType;
-   HBufferImage.BufferType = MEM_BUFFER;
+-  ls\LsStrings.uni
+-  ls\ls.h
+-  ls\ls.c
++  ls/LsStrings.uni
++  ls/ls.h
++  ls/ls.c
  
-   Buffer                  = AllocatePool (Size);
-@@ -344,8 +341,6 @@
-   EFI_STATUS                      Status;
-   VOID                            *Buffer;
+-  mkdir\MkdirStrings.uni
+-  mkdir\mkdir.c
+-  mkdir\mkdir.h
++  mkdir/MkdirStrings.uni
++  mkdir/mkdir.c
++  mkdir/mkdir.h
  
--  HEFI_EDITOR_ACTIVE_BUFFER_TYPE  BufferTypeBackup;
+-  mv\MvStrings.uni
+-  mv\mv.c
+-  mv\mv.h
++  mv/MvStrings.uni
++  mv/mv.c
++  mv/mv.h
+  
+-  reset\ResetStrings.uni
+-  reset\reset.c
+-  reset\reset.h
++  reset/ResetStrings.uni
++  reset/reset.c
++  reset/reset.h
+   
+-  rm\RmStrings.uni
+-  rm\rm.h
+-  rm\rm.c
++  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
 -
-   //
-   // not modified, so directly return
-   //
-@@ -353,7 +348,6 @@
-     return EFI_SUCCESS;
-   }
--  BufferTypeBackup        = HBufferImage.BufferType;
-   HBufferImage.BufferType = MEM_BUFFER;
-   Buffer                  = AllocatePool (Size);
-Index: hexedit/libbufferimage.h
-===================================================================
---- hexedit/libbufferimage.h   (revision 64)
-+++ hexedit/libbufferimage.h   (working copy)
-@@ -253,3 +253,4 @@
-   );
- #endif
-+
-Index: hexedit/libInputBar.c
-===================================================================
---- hexedit/libInputBar.c      (revision 64)
-+++ hexedit/libInputBar.c      (working copy)
-@@ -169,8 +169,6 @@
-   UINTN                   Size;
-   EFI_STATUS              Status;
-   BOOLEAN                 NoDisplay;
--  UINTN                   Limit;
--  UINTN                   PromptLen;
-   //
-   // variable initialization
-@@ -190,6 +188,7 @@
-   // back up the old screen attributes
-   //
-   Orig                  = HMainEditor.ColorAttributes;
-+  New.Data              = 0;
-   New.Colors.Foreground = Orig.Colors.Background;
-   New.Colors.Background = Orig.Colors.Foreground;
-@@ -201,15 +200,9 @@
-   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
--  //
--  PromptLen = StrLen (HMainInputBar.Prompt);
--  Limit     = HMainEditor.ScreenSize.Column - PromptLen;
+-  touch\TouchStrings.uni
+-  touch\touch.c
+-  touch\touch.h
 -
--  //
-   // this is a selection prompt, cursor will stay in edit area
-   // actually this is for search , search/replace
-   //
-Index: hexedit/libmemimage.h
-===================================================================
---- hexedit/libmemimage.h      (revision 64)
-+++ hexedit/libmemimage.h      (working copy)
-@@ -55,3 +55,4 @@
-   );
- #endif
-+
-Index: hexedit/libEditor.c
-===================================================================
---- hexedit/libEditor.c        (revision 64)
-+++ hexedit/libEditor.c        (working copy)
-@@ -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;
+-  vol\VolStrings.uni
+-  vol\vol.c
+-  vol\vol.h
+-
+-  ver\VerStrings.uni
+-  ver\ver.c
+-  ver\ver.h
++  type/TypeStrings.uni
++  type/type.c
++  type/type.h
++  time/TimeStrings.uni
++  time/time.c
++  time/time.h
 +
-+      default:
-+          break;
-         }
-         if (LengthChange == FALSE) {
-Index: hexedit/libfileimage.h
-===================================================================
---- hexedit/libfileimage.h     (revision 64)
-+++ hexedit/libfileimage.h     (working copy)
-@@ -59,3 +59,4 @@
-   );
- #endif
++  touch/TouchStrings.uni
++  touch/touch.c
++  touch/touch.h
 +
-Index: hexedit/libinputbar.h
-===================================================================
---- hexedit/libinputbar.h      (revision 64)
-+++ hexedit/libinputbar.h      (working copy)
-@@ -44,3 +44,4 @@
-   );
- #endif
++  vol/VolStrings.uni
++  vol/vol.c
++  vol/vol.h
 +
-Index: hexedit/libMenuBar.c
-===================================================================
---- hexedit/libMenuBar.c       (revision 64)
-+++ hexedit/libMenuBar.c       (working copy)
-@@ -222,7 +222,6 @@
-   CHAR16                *NameString;
-   CHAR16                *FunctionKeyString;
-   UINTN                 BufferSize;
--  EFI_STATUS            Status;
-   //
-   // variable initialization
-@@ -255,9 +254,9 @@
-     FunctionKeyString = AllocatePool (BufferSize);
- #if (EFI_SPECIFICATION_VERSION < 0x0002000A)
--    Status            = Hii->GetString (Hii, HiiHandle, Item->NameToken, FALSE, NULL, &BufferSize, NameString);
-+    Hii->GetString (Hii, gHexEditHiiHandle, Item->NameToken, FALSE, NULL, &BufferSize, NameString);
- #else
--    Status            = LibGetString (HiiHandle, Item->NameToken, NameString, &BufferSize);
-+    LibGetString (gHexEditHiiHandle, Item->NameToken, NameString, &BufferSize);
- #endif
-     Width             = max ((StrLen (NameString) + 6), 18);
-@@ -267,9 +266,9 @@
-     }
- #if (EFI_SPECIFICATION_VERSION < 0x0002000A)
--    Status = Hii->GetString (Hii, HiiHandle, Item->FunctionKeyToken, FALSE, NULL, &BufferSize, FunctionKeyString);
-+    Hii->GetString (Hii, gHexEditHiiHandle, Item->FunctionKeyToken, FALSE, NULL, &BufferSize, FunctionKeyString);
- #else
--    Status = LibGetString (HiiHandle, Item->FunctionKeyToken, FunctionKeyString, &BufferSize);
-+    LibGetString (gHexEditHiiHandle, Item->FunctionKeyToken, FunctionKeyString, &BufferSize);
- #endif
-     if (Index >= 10) {
-       PrintAt (Col - 1, Row - 1, L"%E%s%N %H%s%N  ", FunctionKeyString, NameString);
-@@ -1138,7 +1137,6 @@
-         // the file won't be saved
-         //
-         return EFI_SUCCESS;
--        break;
-       case L'c':
-       case L'C':
-@@ -1567,7 +1565,6 @@
- --*/
- {
-   UINTN             Index;
--  HEFI_EDITOR_LINE  *Line;
-   EFI_LIST_ENTRY    *Link;
-   UINT8             *Buffer;
-   UINTN             Count;
-@@ -1592,8 +1589,6 @@
-     Link = Link->Flink;
-   }
--  Line    = CR (Link, HEFI_EDITOR_LINE, Link, EFI_EDITOR_LINE_LIST);
--
-   Count   = HMainEditor.SelectEnd - HMainEditor.SelectStart + 1;
-   Buffer  = AllocatePool (Count);
-   if (Buffer == NULL) {
-Index: hexedit/libeditor.h
-===================================================================
---- hexedit/libeditor.h        (revision 64)
-+++ hexedit/libeditor.h        (working copy)
-@@ -47,3 +47,4 @@
-   );
- #endif
-+
-Index: hexedit/hexedit.inf
-===================================================================
---- hexedit/hexedit.inf        (revision 64)
-+++ hexedit/hexedit.inf        (working copy)
-@@ -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
-@@ -75,11 +75,14 @@
- # we will specify some additional DEFINEs on the compile command line.
- #
- [nmake.common]
-+  IMAGE_ENTRY_POINT=InitializeEFIHexEditor
-+
-+[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-   C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
--  IMAGE_ENTRY_POINT=InitializeEFIHexEditor
-   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_BOOTSHELL
--
-+[nmake.ARM, nmake.AARCH64]
-+  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
++  ver/VerStrings.uni
++  ver/ver.c
++  ver/ver.h
+   
+-  drivers\driversStrings.uni
+-  drivers\drivers.c
+-  drivers\drivers.h
++  drivers/driversStrings.uni
++  drivers/drivers.c
++  drivers/drivers.h
+   
+-  drvcfg\DrvcfgStrings.uni
+-  drvcfg\drvcfg.c
+-  drvcfg\drvcfg.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
+   
+-  comp\CompStrings.uni
+-  comp\comp.c
++  comp/CompStrings.uni
++  comp/comp.c
+   
+-  dblk\dblkStrings.uni
+-  dblk\dblk.c
+-  dblk\efidump.c
++  dblk/dblkStrings.uni
++  dblk/dblk.c
++  dblk/efidump.c
   
-\ No newline at end of file
-Index: hexedit/libdiskimage.c
-===================================================================
---- hexedit/libdiskimage.c     (revision 64)
-+++ hexedit/libdiskimage.c     (working copy)
-@@ -228,11 +228,7 @@
-   UINTN                           Bytes;
-   HEFI_EDITOR_LINE                *Line;
--  UINT64                          ByteOffset;
--  HEFI_EDITOR_ACTIVE_BUFFER_TYPE  BufferTypeBackup;
--
--  BufferTypeBackup        = HBufferImage.BufferType;
-   HBufferImage.BufferType = DISK_BUFFER;
-   DevicePath              = (EFI_DEVICE_PATH_PROTOCOL *) ShellGetMap (DeviceName);
-@@ -246,7 +242,7 @@
-   Status = LibDevicePathToInterface (
-             &gEfiBlockIoProtocolGuid,
-             DevicePath,
--            &BlkIo
-+            (VOID**)&BlkIo
-             );
-   if (EFI_ERROR (Status)) {
-     HMainStatusBarSetStatusString (L"Read Disk Failed");
-@@ -269,8 +265,6 @@
-     return EFI_OUT_OF_RESOURCES;
-   }
--  ByteOffset = MultU64x32 (Offset, BlkIo->Media->BlockSize);
--
-   //
-   // read from disk
-   //
-@@ -405,10 +399,6 @@
-   VOID                            *Buffer;
-   UINTN                           Bytes;
--  UINT64                          ByteOffset;
--
--  HEFI_EDITOR_ACTIVE_BUFFER_TYPE  BufferTypeBackup;
+-  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  
++  dmem/MemStrings.uni
++  dmem/DebugStrings.uni  
++  dmem/mem.c
++  dmem/MemCommonPart.c
++  dmem/efidump.c  
+   
+-  dmpstore\DmpstoreStrings.uni
+-  dmpstore\dmpstore.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 
++  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   
++  eficompress/CompressStrings.uni
++  eficompress/compressMain.c
++  eficompress/compress.c   
+   
+-  efidecompress\DecompressStrings.uni
+-  efidecompress\decompress.c
++  efidecompress/DecompressStrings.uni
++  efidecompress/decompress.c
+   
+-  err\ErrStrings.uni
+-  err\err.c
++  err/ErrStrings.uni
++  err/err.c
+   
+-  guid\GuidStrings.uni
+-  guid\guid.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
 -
-   //
-   // if not modified, directly return
-   //
-@@ -416,7 +406,6 @@
-     return EFI_SUCCESS;
-   }
--  BufferTypeBackup        = HBufferImage.BufferType;
-   HBufferImage.BufferType = DISK_BUFFER;
-   DevicePath              = (EFI_DEVICE_PATH_PROTOCOL *) ShellGetMap (DeviceName);
-@@ -427,7 +416,7 @@
-   Status = LibDevicePathToInterface (
-             &gEfiBlockIoProtocolGuid,
-             DevicePath,
--            &BlkIo
-+            (VOID**)&BlkIo
-             );
-   if (EFI_ERROR (Status)) {
-     return Status;
-@@ -448,8 +437,6 @@
-     return Status;
-   }
--  ByteOffset = MultU64x32 (Offset, BlkIo->Media->BlockSize);
+-  IfConfig\IfConfigStrings.uni
+-  IfConfig\IfConfig.c
+-  IfConfig\IfConfig.h
+-  IfConfig\ShellNetHelper.c
 -
-   //
-   // write the buffer to disk
-   //
-Index: hexedit/main.c
-===================================================================
---- hexedit/main.c     (revision 64)
-+++ hexedit/main.c     (working copy)
-@@ -27,7 +27,7 @@
- //
- // Global Variables
- //
--EFI_HII_HANDLE    HiiHandle;
-+EFI_HII_HANDLE    gHexEditHiiHandle;
- #if (EFI_SPECIFICATION_VERSION < 0x0002000A)
- EFI_HII_PROTOCOL  *Hii;
- #endif
-@@ -67,7 +67,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE)0
-   }
- };
-@@ -93,10 +93,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");
- }
-@@ -147,7 +147,7 @@
-   EFI_SHELL_APP_INIT (ImageHandle, SystemTable);
- #if (EFI_SPECIFICATION_VERSION < 0x0002000A)
--  Status = LibLocateProtocol (&gEfiHiiProtocolGuid, &Hii);
-+  Status = LibLocateProtocol (&gEfiHiiProtocolGuid, (VOID**)&Hii);
-   if (EFI_ERROR (Status)) {
-     return Status;
-   }
-@@ -158,12 +158,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
-       );
-@@ -187,17 +187,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;
+-  ipconfig\IpConfigStrings.uni
+-  ipconfig\IpConfig.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
++  loadpcirom/LoadPciRomStrings.uni
++  loadpcirom/LoadPciRom.c
+   
+-  mem\MemStrings.uni
+-  mem\DebugStrings.uni  
+-  mem\mm.c
+-  mem\MemCommonPart.c
+-  mem\efidump.c  
++  mem/MemStrings.uni
++  mem/DebugStrings.uni  
++  mem/mm.c
++  mem/MemCommonPart.c
++  mem/efidump.c  
+   
+-  memmap\memmapStrings.uni
+-  memmap\memmap.c
++  memmap/memmapStrings.uni
++  memmap/memmap.c
+   
+-  mm\MmStrings.uni
+-  mm\mm.c
++  mm/MmStrings.uni
++  mm/mm.c
+   
+-  mode\ModeStrings.uni
+-  mode\mode.c
++  mode/ModeStrings.uni
++  mode/mode.c
+   
+-  mount\MountStrings.uni
+-  mount\mount.c
++  mount/MountStrings.uni
++  mount/mount.c
+   
+-  openinfo\OPeninfoStrings.uni
+-  openinfo\openinfo.c
++  openinfo/OPeninfoStrings.uni
++  openinfo/openinfo.c
  
-     case VarCheckUnknown:
+-  Ping\PingStrings.uni
+-  Ping\Ping.c
++  Ping/PingStrings.uni
++  Ping/Ping.c
  
--      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;
+-  pci\PciStrings.uni
+-  pci\pci.c
+-  pci\pci_class.c
++  pci/PciStrings.uni
++  pci/pci.c
++  pci/pci_class.c
+   
+-  sermode\SermodeStrings.uni
+-  sermode\sermode.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
++  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
  
-     default:
-@@ -220,10 +220,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;
-     }
+ [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
  
-@@ -233,13 +233,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;
-     }
+ [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
  
-     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;
-     }
-@@ -249,7 +249,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;
-     }
-@@ -257,13 +257,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;
-     }
+ [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
  
-     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;
-     }
-@@ -274,13 +274,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;
-     }
+ [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
++
++[sources.AARCH64]
++  ver/ia32/ver32.c
++  Library/IPF/math.c
++  Library/IA32/initplat.c
  
-     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;
-     }
-@@ -288,7 +288,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;
-     }
-@@ -296,20 +296,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;
-     }
+ [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)
  
-     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;
-     }
+ [libraries.common]
+@@ -341,16 +351,18 @@ COMPONENT_TYPE       = APPLICATION
+ # we will specify some additional DEFINEs on the compile command line.
+ #
+ [nmake.common]
+-  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
+   IMAGE_ENTRY_POINT=InitializeShell
+-  C_STD_FLAGS = $(C_STD_FLAGS) /DEFI_MONOSHELL /DEFI_FULLSHELL
++
++[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
++  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
+   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 /DEFI_FULLSHELL
++
++[nmake.ARM, nmake.AARCH64]
++  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_MONOSHELL -DEFI_FULLSHELL
  
-     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;
-     }
+ [nmake.ebc]
+   EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) /DEFI_MONOSHELL /DEFI_FULLSHELL
+   EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) /DSTRING_ARRAY_NAME=$(BASE_NAME)Strings 
+   EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) /DSTRING_DEFINES_FILE=\"$(BASE_NAME)StrDefs.h\"
+-
+-
+- 
+\ No newline at end of file
+diff --git a/SmbiosView/EventLogInfo.c b/SmbiosView/EventLogInfo.c
+index 7f9b726..33e3549 100644
+--- a/SmbiosView/EventLogInfo.c
++++ b/SmbiosView/EventLogInfo.c
+@@ -25,7 +25,7 @@ Revision History
+ #include "PrintInfo.h"
+ #include "QueryTable.h"
+ #include "EventLogInfo.h"
+-#include "smbios.h"
++#include "Smbios.h"
+ #include STRING_DEFINES_FILE
  
-@@ -319,13 +319,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;
-     }
+ VOID
+diff --git a/SmbiosView/EventLogInfo.h b/SmbiosView/EventLogInfo.h
+index d1591c0..ca58380 100644
+--- a/SmbiosView/EventLogInfo.h
++++ b/SmbiosView/EventLogInfo.h
+@@ -85,3 +85,4 @@ DisplaySysEventLogData (
+   );
  
-     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;
-     }
-@@ -333,7 +333,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,20 +345,20 @@
-       if (Name != NULL) {
-         FreeName  = TRUE;
-       } else {
--        PrintToken(STRING_TOKEN (STR_HEXEDIT_INVALID_DIRECTORY), HiiHandle, L"hexedit");
-+        PrintToken(STRING_TOKEN (STR_HEXEDIT_INVALID_DIRECTORY), gHexEditHiiHandle, L"hexedit");
-         Status = EFI_INVALID_PARAMETER;
-         goto done ;
-       }
-     } 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;
-     }
+ #endif
++
+diff --git a/SmbiosView/LibSmbios.h b/SmbiosView/LibSmbios.h
+index b13fd6b..c2e6b5e 100644
+--- a/SmbiosView/LibSmbios.h
++++ b/SmbiosView/LibSmbios.h
+@@ -642,3 +642,4 @@ LibGetSmbiosSystemGuidAndSerialNumber (
  
-     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;
-     }
-@@ -367,7 +367,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;
-   }
-@@ -376,7 +376,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;
-   }
+ #endif
++
+diff --git a/SmbiosView/LibSmbiosView.c b/SmbiosView/LibSmbiosView.c
+index d31ed01..f1438bc 100644
+--- a/SmbiosView/LibSmbiosView.c
++++ b/SmbiosView/LibSmbiosView.c
+@@ -22,10 +22,10 @@ Revision History
+ --*/
  
-@@ -421,7 +421,9 @@
-               FALSE
-               );
-     break;
--
-+  case NEW_FILE:
-+    Status = EFI_UNSUPPORTED;
-+    break;
-   }
+ #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
  
-   if (!EFI_ERROR (Status)) {
-@@ -453,19 +455,19 @@
+ STATIC UINT8                    mInit         = 0;
+@@ -62,7 +62,7 @@ Returns:
    //
-   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);
-     }
-   }
+   // Get SMBIOS table from System Configure table
+   //
+-  Status = LibGetSystemConfigurationTable (&gEfiSmbiosTableGuid, &mSmbiosTable);
++  Status = LibGetSystemConfigurationTable (&gEfiSmbiosTableGuid, (VOID**)&mSmbiosTable);
  
-Index: hexedit/libmenubar.h
-===================================================================
---- hexedit/libmenubar.h       (revision 64)
-+++ hexedit/libmenubar.h       (working copy)
-@@ -20,7 +20,7 @@
- #ifndef _LIB_MENU_BAR_H_
- #define _LIB_MENU_BAR_H_
+   if (mSmbiosTable == NULL) {
+     PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_LIBSMBIOSVIEW_CANNOT_GET_TABLE), HiiHandle);
+@@ -110,13 +110,13 @@ LibSmbiosGetEPS (
  
--#include "Heditortype.h"
-+#include "heditortype.h"
+ VOID
+ LibSmbiosGetStructHead (
+-  SMBIOS_STRUCTURE_POINTER *pHead
++  SMBIOS_STRUCTURE_POINTER **pHead
+   )
+ {
+   //
+   // return SMBIOS structure table address
+   //
+-  pHead = mSmbiosStruct;
++  *pHead = mSmbiosStruct;
+ }
  
  EFI_STATUS
- HMainMenuBarInit (
-@@ -94,3 +94,4 @@
+diff --git a/SmbiosView/LibSmbiosView.h b/SmbiosView/LibSmbiosView.h
+index d763937..b7f7989 100644
+--- a/SmbiosView/LibSmbiosView.h
++++ b/SmbiosView/LibSmbiosView.h
+@@ -66,7 +66,7 @@ LibSmbiosGetEPS (
+ VOID
+ LibSmbiosGetStructHead (
+-  SMBIOS_STRUCTURE_POINTER *pHead
++  SMBIOS_STRUCTURE_POINTER **pHead
+   );
+ EFI_STATUS
+@@ -128,3 +128,4 @@ SmbiosCheckStructure (
    );
  
  #endif
 +
-Index: hexedit/libMisc.h
-===================================================================
---- hexedit/libMisc.h  (revision 64)
-+++ hexedit/libMisc.h  (working copy)
-@@ -20,7 +20,7 @@
- #ifndef _LIB_MISC_H_
- #define _LIB_MISC_H_
--#include "Heditortype.h"
-+#include "heditortype.h"
+diff --git a/SmbiosView/PrintInfo.c b/SmbiosView/PrintInfo.c
+index ff1f63c..1789ef6 100644
+--- a/SmbiosView/PrintInfo.c
++++ b/SmbiosView/PrintInfo.c
+@@ -26,7 +26,7 @@ Revision History
+ #include "LibSmbiosView.h"
+ #include "QueryTable.h"
+ #include "EventLogInfo.h"
+-#include "smbios.h"
++#include "Smbios.h"
+ #include STRING_DEFINES_FILE
  
- VOID
- HEditorClearLine (
-@@ -108,3 +108,4 @@
+ //
+diff --git a/SmbiosView/PrintInfo.h b/SmbiosView/PrintInfo.h
+index 608dfb1..10faf21 100644
+--- a/SmbiosView/PrintInfo.h
++++ b/SmbiosView/PrintInfo.h
+@@ -199,3 +199,4 @@ DisplaySPSCharacteristics (
    );
  
  #endif
 +
-Index: hexedit/libdiskimage.h
-===================================================================
---- hexedit/libdiskimage.h     (revision 64)
-+++ hexedit/libdiskimage.h     (working copy)
-@@ -58,3 +58,4 @@
+diff --git a/SmbiosView/QueryTable.c b/SmbiosView/QueryTable.c
+index 4570938..1d9d60f 100644
+--- a/SmbiosView/QueryTable.c
++++ b/SmbiosView/QueryTable.c
+@@ -23,7 +23,7 @@ Revision History
+ #include "EfiShellLib.h"
+ #include "QueryTable.h"
+ #include "PrintInfo.h"
+-#include "smbios.h"
++#include "Smbios.h"
+ #include STRING_DEFINES_FILE
+diff --git a/SmbiosView/QueryTable.h b/SmbiosView/QueryTable.h
+index 727a053..ceb02fe 100644
+--- a/SmbiosView/QueryTable.h
++++ b/SmbiosView/QueryTable.h
+@@ -437,3 +437,4 @@ DisplayIPMIDIBMCInterfaceType (
    );
  
  #endif
 +
-Index: hexedit/libclipboard.h
-===================================================================
---- hexedit/libclipboard.h     (revision 64)
-+++ hexedit/libclipboard.h     (working copy)
-@@ -43,3 +43,4 @@
-   );
+diff --git a/SmbiosView/Smbios.h b/SmbiosView/Smbios.h
+index 8a91b9e..15eb89c 100644
+--- a/SmbiosView/Smbios.h
++++ b/SmbiosView/Smbios.h
+@@ -37,3 +37,4 @@ extern EFI_HII_HANDLE HiiHandle;
  
  #endif
 +
-Index: hexedit/libTitleBar.c
-===================================================================
---- hexedit/libTitleBar.c      (revision 64)
-+++ hexedit/libTitleBar.c      (working copy)
-@@ -166,6 +166,7 @@
-   // backup the old screen attributes
-   //
-   Orig                  = HMainEditor.ColorAttributes;
-+  New.Data              = 0;
-   New.Colors.Foreground = Orig.Colors.Background;
-   New.Colors.Background = Orig.Colors.Foreground;
+diff --git a/SmbiosView/Smbiosview.inf b/SmbiosView/Smbiosview.inf
+index f9e8c0b..d35b669 100644
+--- a/SmbiosView/Smbiosview.inf
++++ b/SmbiosView/Smbiosview.inf
+@@ -25,7 +25,7 @@ FILE_GUID            = 0F4C0280-B581-4940-AF19-D0CB5559CC95
+ COMPONENT_TYPE       = APPLICATION
  
-@@ -212,7 +213,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);
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   SmBiosViewStrings.uni
+   QueryTable.c
+   QueryTable.h
+@@ -43,19 +43,19 @@ COMPONENT_TYPE       = APPLICATION
  
-       for (Index = StrLen (FileNameTmp); Index < 35; Index++) {
-         Print (L" ");
-@@ -220,7 +221,7 @@
+ [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)/Applicatio./Shels/Inc
++  $(EFI_SOURCE)/Applicatio./Shels/Library
  
-     } 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 +235,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 +254,7 @@
+ [libraries.common]  
+   EfiShellLib
+@@ -70,7 +70,12 @@ COMPONENT_TYPE       = APPLICATION
  
-     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 +270,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,22 +281,27 @@
+ [nmake.common]
+   IMAGE_ENTRY_POINT=InitializeSmbiosViewApplication
++
++[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
+   L_PROJ_FLAGS=/align:4096
+   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_BOOTSHELL
++
++[nmake.ARM, nmake.AARCH64]
++  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
+diff --git a/SmbiosView/smbiosview.c b/SmbiosView/smbiosview.c
+index 13b4fb7..79716d3 100644
+--- a/SmbiosView/smbiosview.c
++++ b/SmbiosView/smbiosview.c
+@@ -26,7 +26,7 @@ Revision History
+ #include "smbiosview.h"
+ #include "PrintInfo.h"
+ #include "QueryTable.h"
+-#include "smbios.h"
++#include "Smbios.h"
  
    break;
extern UINT8                STRING_ARRAY_NAME[];
  
-+  default:
-+    break;
+@@ -88,7 +88,7 @@ SHELL_VAR_CHECK_ITEM        SmbiosviewCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE)0
    }
-   //
-   // 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;
+diff --git a/SmbiosView/smbiosview.h b/SmbiosView/smbiosview.h
+index dd65bc1..2101551 100644
+--- a/SmbiosView/smbiosview.h
++++ b/SmbiosView/smbiosview.h
+@@ -84,3 +84,4 @@ GetShowTypeString (
+ extern UINT8  gShowType;
+ #endif
++
+diff --git a/TelnetMgmt/TelnetMgmt.c b/TelnetMgmt/TelnetMgmt.c
+index 9d779df..04088d1 100644
+--- a/TelnetMgmt/TelnetMgmt.c
++++ b/TelnetMgmt/TelnetMgmt.c
+@@ -32,7 +32,7 @@ extern UINT8    STRING_ARRAY_NAME[];
+ //
+ #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[] = {
+@@ -58,7 +58,7 @@ SHELL_VAR_CHECK_ITEM        TelnetmgmtCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   }
+ };
  
-   case MEM_BUFFER:
--    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBTITLEBAR_MEM), HiiHandle);
-+    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBTITLEBAR_MEM), gHexEditHiiHandle);
-     break;
-+
-+  default:
-+    break;
+diff --git a/TelnetMgmt/TelnetMgmt.h b/TelnetMgmt/TelnetMgmt.h
+index 224fc3b..ed3c2f2 100644
+--- a/TelnetMgmt/TelnetMgmt.h
++++ b/TelnetMgmt/TelnetMgmt.h
+@@ -29,4 +29,4 @@ Revision History
+     0x55d41b9a, 0x954d, 0x4fbb, 0x8d, 0x6d, 0x24, 0x75, 0xf5, 0x30, 0x9d, 0x37 \
    }
-   //
-   // print modified field
-Index: Ping/Ping.h
-===================================================================
---- Ping/Ping.h        (revision 64)
-+++ Ping/Ping.h        (working copy)
-@@ -78,3 +78,4 @@
- } ICMP_TX_INFO;
  
- #endif
-+
-Index: Ping/Ping.inf
-===================================================================
---- Ping/Ping.inf      (revision 64)
-+++ Ping/Ping.inf      (working copy)
-@@ -25,24 +25,24 @@
+-#endif
+\ No newline at end of file
++#endif
+diff --git a/TelnetMgmt/TelnetMgmt.inf b/TelnetMgmt/TelnetMgmt.inf
+index ad8b8bd..d2d9edb 100644
+--- a/TelnetMgmt/TelnetMgmt.inf
++++ b/TelnetMgmt/TelnetMgmt.inf
+@@ -25,23 +25,23 @@ FILE_GUID            = 0C6282F4-F575-469d-BD55-7693AAC9D812
  COMPONENT_TYPE       = APPLICATION
  
  [sources.common]
 -  ..\ShCommonStrings.uni
 +  ../ShCommonStrings.uni
-   PingStrings.uni
-   Ping.h
-   Ping.c
+   TelnetMgmtStrings.uni
+   TelnetMgmt.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\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)\
 +  ../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/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]  
    EfiShellLib
-@@ -52,7 +52,6 @@
-   ArchProtocolLib
-   EdkGuidLib
-   EdkFrameworkGuidLib
--  EfiDriverLib
- [libraries.Ia32]
-   CpuIA32Lib
-@@ -64,9 +63,12 @@
-   CpuIA32Lib
+@@ -55,6 +55,11 @@ COMPONENT_TYPE       = APPLICATION
  
  [nmake.common]
--  C_PROJ_FLAGS = $(C_PROJ_FLAGS)
-   IMAGE_ENTRY_POINT=Ping
--  C_STD_FLAGS = $(C_STD_FLAGS) /DEFI_BOOTSHELL
+   IMAGE_ENTRY_POINT=InitializeTelnetMgmt
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
    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_BOOTSHELL
+   C_STD_FLAGS = $(C_STD_FLAGS) /DEFI_BOOTSHELL
++
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: Ping/Ping.c
-===================================================================
---- Ping/Ping.c        (revision 64)
-+++ Ping/Ping.c        (working copy)
-@@ -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[];
+diff --git a/TelnetMgmt/TelnetServer.h b/TelnetMgmt/TelnetServer.h
+index 5eca179..8e0610f 100644
+--- a/TelnetMgmt/TelnetServer.h
++++ b/TelnetMgmt/TelnetServer.h
+@@ -81,3 +81,4 @@ typedef struct _EFI_TELNET_SERVER_PROTOCOL {
+ extern EFI_GUID gEfiTelnetServerGuid;
  
+ #endif
++
+diff --git a/attrib/attrib.c b/attrib/attrib.c
+index 3599d6d..6d1e677 100644
+--- a/attrib/attrib.c
++++ b/attrib/attrib.c
+@@ -57,7 +57,7 @@ AttribFile (
+ //
+ // Global Variables
+ //
 -EFI_HII_HANDLE  HiiHandle;
 +STATIC EFI_HII_HANDLE  HiiHandle;
- EFI_GUID  EfiPingGuid = EFI_PING_GUID;
- SHELL_VAR_CHECK_ITEM  PingCheckList[] = {
-@@ -59,7 +59,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
-   }
- };
-@@ -114,6 +114,8 @@
- UINT32            RttMin;
- UINT32            RttMax;
-+EFI_CPU_ARCH_PROTOCOL  *gCpu = NULL;
-+
- STATIC
- UINT64
- GetTimerValue (
-@@ -135,7 +137,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
-@@ -168,7 +185,7 @@
-   //
-   // Locate the Cpu Arch Protocol.
-   //
--  Status = BS->LocateProtocol (&gEfiCpuArchProtocolGuid, NULL, &Cpu);
-+  Status = BS->LocateProtocol (&gEfiCpuArchProtocolGuid, NULL, (VOID**)&Cpu);
-   if (EFI_ERROR (Status)) {
-     return Status;
-   }
-Index: time/time.c
-===================================================================
---- time/time.c        (revision 64)
-+++ time/time.c        (working copy)
-@@ -49,7 +49,7 @@
+ EFI_GUID        EfiAttribGuid = EFI_ATTRIB_GUID;
+ SHELL_VAR_CHECK_ITEM    AttribCheckList[] = {
+   {
+@@ -124,7 +124,7 @@ SHELL_VAR_CHECK_ITEM    AttribCheckList[] = {
      NULL,
      0,
      0,
@@ -2843,51 +3270,41 @@ Index: time/time.c
    }
  };
  
-@@ -64,8 +64,8 @@
- BOOLEAN
- GetNumber (
-   IN      CHAR16  *Str,
--  IN OUT  INTN    *Offset,
--  IN OUT  INTN    *number,
-+  IN OUT  UINTN   *Offset,
-+  IN OUT  UINTN   *number,
-   IN      BOOLEAN GetSecond
-   );
-@@ -296,8 +296,8 @@
- BOOLEAN
- GetNumber (
-   IN      CHAR16  *Str,
--  IN OUT  INTN    *Offset,
--  IN OUT  INTN    *Number,
-+  IN OUT  UINTN   *Offset,
-+  IN OUT  UINTN   *Number,
-   IN    BOOLEAN   GetSecond
-   )
- {
-Index: time/time.h
-===================================================================
---- time/time.h        (revision 64)
-+++ time/time.h        (working copy)
-@@ -32,3 +32,4 @@
+@@ -438,7 +438,7 @@ Returns:
+     //
+     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 --git a/attrib/attrib.h b/attrib/attrib.h
+index 69ebd2f..c40c2df 100644
+--- a/attrib/attrib.h
++++ b/attrib/attrib.h
+@@ -29,4 +29,5 @@ Revision History
+     0xcd691c77, 0xfc45, 0x4d7b, 0xb8, 0x92, 0x92, 0xa, 0x86, 0x2d, 0x67, 0xdc \
    }
  
- #endif
+-#endif
+\ No newline at end of file
++#endif
 +
-Index: time/time.inf
-===================================================================
---- time/time.inf      (revision 64)
-+++ time/time.inf      (working copy)
-@@ -40,24 +40,24 @@
+diff --git a/attrib/attrib.inf b/attrib/attrib.inf
+index 38cc094..a35f1a7 100644
+--- a/attrib/attrib.inf
++++ b/attrib/attrib.inf
+@@ -41,24 +41,24 @@ COMPONENT_TYPE       = APPLICATION
  
  [sources.common]
+    AttribStrings.uni      
 -   ..\ShCommonStrings.uni   
 +   ../ShCommonStrings.uni   
-    TimeStrings.uni
-    Time.c
-    Time.h 
-                                           
+    attrib.c             
+    attrib.h             
+     
  [includes.common]
    .
 -  ..\Inc
@@ -2915,10 +3332,10 @@ Index: time/time.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -72,7 +72,11 @@
+@@ -73,7 +73,11 @@ COMPONENT_TYPE       = APPLICATION
  
  [nmake.common]
-   IMAGE_ENTRY_POINT=InitializeTime
+   IMAGE_ENTRY_POINT=InitializeAttrib
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
    C_STD_FLAGS = $(C_STD_FLAGS) /DSTRING_ARRAY_NAME=$(BASE_NAME)Strings 
@@ -2927,20 +3344,20 @@ Index: time/time.inf
  
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: mount/mount.c
-===================================================================
---- mount/mount.c      (revision 64)
-+++ mount/mount.c      (working copy)
-@@ -36,7 +36,7 @@
- //
- // Global Variables
+diff --git a/cls/cls.c b/cls/cls.c
+index 572cc82..bd9826a 100644
+--- a/cls/cls.c
++++ b/cls/cls.c
+@@ -30,7 +30,7 @@ extern UINT8    STRING_ARRAY_NAME[];
  //
+ #include STRING_DEFINES_FILE
 -EFI_HII_HANDLE  HiiHandle;
 +STATIC EFI_HII_HANDLE  HiiHandle;
- EFI_GUID        EfiMountGuid = EFI_MOUNT_GUID;
- SHELL_VAR_CHECK_ITEM      MountCheckList[] = {
+ EFI_GUID        EfiClsGuid = EFI_CLS_GUID;
+ SHELL_VAR_CHECK_ITEM    ClsCheckList[] = {
    {
-@@ -55,7 +55,7 @@
+@@ -49,7 +49,7 @@ SHELL_VAR_CHECK_ITEM    ClsCheckList[] = {
      NULL,
      0,
      0,
@@ -2949,29 +3366,29 @@ Index: mount/mount.c
    }
  };
  
-Index: mount/mount.h
-===================================================================
---- mount/mount.h      (revision 64)
-+++ mount/mount.h      (working copy)
-@@ -33,3 +33,4 @@
+diff --git a/cls/cls.h b/cls/cls.h
+index eab21eb..31361c7 100644
+--- a/cls/cls.h
++++ b/cls/cls.h
+@@ -36,3 +36,4 @@ Revision History
    }
  
  #endif
 +
-Index: mount/mount.inf
-===================================================================
---- mount/mount.inf    (revision 64)
-+++ mount/mount.inf    (working copy)
-@@ -40,24 +40,24 @@
+diff --git a/cls/cls.inf b/cls/cls.inf
+index 1e5ef66..70e676a 100644
+--- a/cls/cls.inf
++++ b/cls/cls.inf
+@@ -40,24 +40,24 @@ COMPONENT_TYPE       = APPLICATION
  
  
  [sources.common]
--  ..\ShCommonStrings.uni
-+  ../ShCommonStrings.uni
-   MountStrings.uni
-   mount.c
-   mount.h
-   
+-   ..\ShCommonStrings.uni   
++   ../ShCommonStrings.uni   
+    ClsStrings.uni
+    Cls.c
+    Cls.h 
+                                           
  [includes.common]
    .
 -  ..\Inc
@@ -2999,10 +3416,10 @@ Index: mount/mount.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -72,7 +72,11 @@
+@@ -72,7 +72,12 @@ COMPONENT_TYPE       = APPLICATION
  
  [nmake.common]
-   IMAGE_ENTRY_POINT=MountMain
+   IMAGE_ENTRY_POINT=InitializeCls
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
    C_STD_FLAGS = $(C_STD_FLAGS) /DSTRING_ARRAY_NAME=$(BASE_NAME)Strings 
@@ -3011,19 +3428,42 @@ Index: mount/mount.inf
  
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: mkdir/mkdir.inf
-===================================================================
---- mkdir/mkdir.inf    (revision 64)
-+++ mkdir/mkdir.inf    (working copy)
-@@ -41,23 +41,23 @@
++
+diff --git a/comp/comp.c b/comp/comp.c
+index 734bbe7..888f53f 100644
+--- a/comp/comp.c
++++ b/comp/comp.c
+@@ -50,7 +50,7 @@ SHELL_VAR_CHECK_ITEM    CompCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   }
+ };
  
- [sources.common]
-   MkdirStrings.uni
--  ..\ShCommonStrings.uni     
-+  ../ShCommonStrings.uni     
-   mkdir.c              
-   mkdir.h              
-  
+diff --git a/comp/comp.h b/comp/comp.h
+index 4dd667c..4d6c647 100644
+--- a/comp/comp.h
++++ b/comp/comp.h
+@@ -29,4 +29,4 @@ Revision History
+     0x7761e2c2, 0x7297, 0x434d, 0xb6, 0x52, 0xa9, 0x76, 0x91, 0xb8, 0x66, 0xf3 \
+   }
+-#endif
+\ No newline at end of file
++#endif
+diff --git a/comp/comp.inf b/comp/comp.inf
+index 7a525e4..86c464d 100644
+--- a/comp/comp.inf
++++ b/comp/comp.inf
+@@ -28,21 +28,21 @@ COMPONENT_TYPE       = APPLICATION
+ CompStrings.uni
+ comp.c
+ comp.h
+-..\ShCommonStrings.uni
++../ShCommonStrings.uni
+   
  [includes.common]
    .
 -  ..\Inc
@@ -3051,32 +3491,30 @@ Index: mkdir/mkdir.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -72,7 +72,11 @@
+@@ -61,11 +61,16 @@ comp.h
+ # we will specify some additional DEFINEs on the compile command line.
+ #
  [nmake.common]
-   IMAGE_ENTRY_POINT=InitializeMkDir
+-  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
+   IMAGE_ENTRY_POINT=InitializeComp
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
++  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
    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_BOOTSHELL
  
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: mkdir/mkdir.c
-===================================================================
---- mkdir/mkdir.c      (revision 64)
-+++ mkdir/mkdir.c      (working copy)
-@@ -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[] = {
-   {
-@@ -68,7 +68,7 @@
++
+  
+\ No newline at end of file
+diff --git a/cp/cp.c b/cp/cp.c
+index 25ac3cf..9299af4 100644
+--- a/cp/cp.c
++++ b/cp/cp.c
+@@ -66,7 +66,7 @@ SHELL_VAR_CHECK_ITEM      CpCheckList[] = {
      NULL,
      0,
      0,
@@ -3085,64 +3523,74 @@ Index: mkdir/mkdir.c
    }
  };
  
-Index: mkdir/mkdir.h
-===================================================================
---- mkdir/mkdir.h      (revision 64)
-+++ mkdir/mkdir.h      (working copy)
-@@ -29,4 +29,5 @@
-     0x75ecb57f, 0x4264, 0x49d2, 0x98, 0xe6, 0x39, 0x1a, 0x32, 0x17, 0x9d, 0xf2 \
-   }
+@@ -578,7 +578,7 @@ Returns:
+     //
+     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 @@ Returns:
+     // 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);
+       }
+@@ -869,7 +869,6 @@ Returns:
+   EFI_STATUS                      Status;
+   EFI_FILE_INFO                   *SrcInfo;
+   EFI_FILE_INFO                   *DstInfo;
+-  EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *DstVol;
+   EFI_FILE_SYSTEM_INFO            *DstFsInfo;
+   CHAR16                          InputString[10];
+   UINTN                           BufSize;
+@@ -894,7 +893,6 @@ Returns:
+   SrcInfo           = NULL;
+   DstInfo           = NULL;
+   FileInfo          = NULL;
+-  DstVol            = NULL;
+   DstFsInfo         = NULL;
+   InputString[0]    = 0;
+   BufSize           = 0;
+@@ -1789,7 +1787,7 @@ Returns:
+     //
+     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 --git a/cp/cp.h b/cp/cp.h
+index 338cdaa..89d22dd 100644
+--- a/cp/cp.h
++++ b/cp/cp.h
+@@ -67,4 +67,5 @@ CPMainProcOld (
+   IN EFI_SYSTEM_TABLE     *SystemTable
+   );
  
 -#endif
 \ No newline at end of file
 +#endif
 +
-Index: pci/pci.h
-===================================================================
---- pci/pci.h  (revision 64)
-+++ pci/pci.h  (working copy)
-@@ -30,7 +30,7 @@
-     0x388da6c3, 0x3447, 0x4b1f, 0xa0, 0xba, 0xa9, 0xe8, 0xa2, 0x87, 0xf1, 0x76 \
-   }
--#include "TIANO.h"
-+#include "Tiano.h"
- typedef enum {
-   PciDevice,
-@@ -477,3 +477,4 @@
- #pragma pack()
- #endif // _PCI_H_
-+
-Index: pci/pci_class.c
-===================================================================
---- pci/pci_class.c    (revision 64)
-+++ pci/pci_class.c    (working copy)
-@@ -30,7 +30,7 @@
- //
- // Global Variables
- //
--EFI_HII_HANDLE  HiiHandle;
-+STATIC EFI_HII_HANDLE  HiiHandle;
- PCI_CLASS_ENTRY gClassStringList[];
-Index: pci/pci.inf
-===================================================================
---- pci/pci.inf        (revision 64)
-+++ pci/pci.inf        (working copy)
-@@ -41,7 +41,7 @@
+diff --git a/cp/cp.inf b/cp/cp.inf
+index 714c7bb..160434c 100644
+--- a/cp/cp.inf
++++ b/cp/cp.inf
+@@ -41,23 +41,23 @@ COMPONENT_TYPE       = APPLICATION
  
  [sources.common]
-   PciStrings.uni
+   CpStrings.uni
 -  ..\ShCommonStrings.uni
 +  ../ShCommonStrings.uni
-   pci.c
-   pci.h
-   pci_class.h
-@@ -49,17 +49,17 @@
+   cp.h
+   cp.c
+   
  [includes.common]
    .
 -  ..\Inc
@@ -3170,10 +3618,10 @@ Index: pci/pci.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -74,7 +74,11 @@
+@@ -72,7 +72,12 @@ COMPONENT_TYPE       = APPLICATION
  
  [nmake.common]
-   IMAGE_ENTRY_POINT=PciDump
+   IMAGE_ENTRY_POINT=InitializeCP
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
    C_STD_FLAGS = $(C_STD_FLAGS) /DSTRING_ARRAY_NAME=$(BASE_NAME)Strings 
@@ -3182,47 +3630,23 @@ Index: pci/pci.inf
  
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: pci/pci_class.h
-===================================================================
---- pci/pci_class.h    (revision 64)
-+++ pci/pci_class.h    (working copy)
-@@ -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
-@@ -58,3 +58,4 @@
++
+diff --git a/date/date.c b/date/date.c
+index fb2f765..0416abe 100644
+--- a/date/date.c
++++ b/date/date.c
+@@ -53,8 +53,8 @@ STATIC
+ BOOLEAN
+ GetNumber (
+   IN      CHAR16  *Str,
+-  IN OUT  INTN    *Position,
+-  IN OUT  INTN    *Number,
++  IN OUT  UINTN   *Position,
++  IN OUT  UINTN   *Number,
+   IN BOOLEAN      EndNum
    );
  
- #endif // _PCI_CLASS_H_
-+
-Index: pci/pci.c
-===================================================================
---- pci/pci.c  (revision 64)
-+++ pci/pci.c  (working copy)
-@@ -334,7 +334,7 @@
-   {
-     0,
-     0,
--    0,
-+    (PCIE_CAPREG_FIELD_WIDTH)0,
-     NULL,
-     PcieExplainTypeMax
-   }
-@@ -344,7 +344,7 @@
- // Global Variables
- //
- PCI_CONFIG_SPACE  *mConfigSpace;
--EFI_HII_HANDLE    HiiHandle;
-+STATIC EFI_HII_HANDLE    HiiHandle;
- EFI_GUID          EfiPciGuid = EFI_PCI_GUID;
- SHELL_VAR_CHECK_ITEM    PciCheckList[] = {
-   {
-@@ -375,7 +375,7 @@
+@@ -92,7 +92,7 @@ SHELL_VAR_CHECK_ITEM    DateCheckList[] = {
      NULL,
      0,
      0,
@@ -3231,85 +3655,40 @@ Index: pci/pci.c
    }
  };
  
-@@ -1034,7 +1034,7 @@
-   Status = BS->HandleProtocol (
-                 Handle,
-                 &gEfiPciRootBridgeIoProtocolGuid,
--                IoDev
-+                (VOID**)IoDev
-                 );
-   if (EFI_ERROR (Status)) {
-@@ -1043,7 +1043,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;
-@@ -1237,7 +1237,7 @@
-     PrintToken (STRING_TOKEN (STR_PCI2_SINGLE_FUNCTION), HiiHandle);
-   }
--  HeaderType = (UINT8) (Common->HeaderType & 0x7f);
-+  HeaderType = (PCI_HEADER_TYPE) (Common->HeaderType & 0x7f);
-   switch (HeaderType) {
-   case PciDevice:
-     PrintToken (STRING_TOKEN (STR_PCI2_PCI_DEVICE), HiiHandle);
-@@ -1300,6 +1300,9 @@
-               );
-     CapPtr = ConfigSpace->NonCommon.CardBus.CapabilitiesPtr;
-     break;
-+
-+  default:
-+    Status = EFI_UNSUPPORTED;
-   }
-   //
-   // If Status bit4 is 1, dump or explain capability structure
-@@ -1956,7 +1959,7 @@
-     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);
-@@ -1966,7 +1969,7 @@
-     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
-     );
-   //
-Index: memmap/memmap.h
-===================================================================
---- memmap/memmap.h    (revision 64)
-+++ memmap/memmap.h    (working copy)
-@@ -33,3 +33,4 @@
+@@ -330,8 +330,8 @@ STATIC
+ BOOLEAN
+ GetNumber (
+   IN      CHAR16    *Str,
+-  IN OUT  INTN      *Position,
+-  IN OUT  INTN      *Number,
++  IN OUT  UINTN     *Position,
++  IN OUT  UINTN     *Number,
+   IN BOOLEAN        EndNum
+   )
+ {
+diff --git a/date/date.h b/date/date.h
+index c95ac4d..d327c33 100644
+--- a/date/date.h
++++ b/date/date.h
+@@ -32,3 +32,4 @@ Revision History
    }
  
  #endif
 +
-Index: memmap/memmap.inf
-===================================================================
---- memmap/memmap.inf  (revision 64)
-+++ memmap/memmap.inf  (working copy)
-@@ -40,7 +40,7 @@
+diff --git a/date/date.inf b/date/date.inf
+index 2c40f72..affbb73 100644
+--- a/date/date.inf
++++ b/date/date.inf
+@@ -40,24 +40,24 @@ COMPONENT_TYPE       = APPLICATION
  
  
  [sources.common]
--  ..\ShCommonStrings.uni
-+  ../ShCommonStrings.uni
-   memmapStrings.uni
-   memmap.c
-   memmap.h
-@@ -48,17 +48,17 @@
-   
+-   ..\ShCommonStrings.uni   
++   ../ShCommonStrings.uni   
+    DateStrings.uni
+    Date.c
+    Date.h 
+                                           
  [includes.common]
    .
 -  ..\Inc
@@ -3337,10 +3716,10 @@ Index: memmap/memmap.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -73,7 +73,11 @@
+@@ -71,7 +71,12 @@ COMPONENT_TYPE       = APPLICATION
  
  [nmake.common]
-   IMAGE_ENTRY_POINT=InitializeMemmap
+   IMAGE_ENTRY_POINT=InitializeDate
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
    C_STD_FLAGS = $(C_STD_FLAGS) /DSTRING_ARRAY_NAME=$(BASE_NAME)Strings 
@@ -3349,20 +3728,12 @@ Index: memmap/memmap.inf
  
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: memmap/memmap.c
-===================================================================
---- memmap/memmap.c    (revision 64)
-+++ memmap/memmap.c    (working copy)
-@@ -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[] = {
-   {
-@@ -54,7 +54,7 @@
++
+diff --git a/dblk/dblk.c b/dblk/dblk.c
+index 3019627..21c841e 100644
+--- a/dblk/dblk.c
++++ b/dblk/dblk.c
+@@ -52,7 +52,7 @@ SHELL_VAR_CHECK_ITEM      DblkCheckList[] = {
      NULL,
      0,
      0,
@@ -3371,29 +3742,20 @@ Index: memmap/memmap.c
    }
  };
  
-@@ -216,7 +216,7 @@
-     }
-     Bytes = LShiftU64 (Desc->NumberOfPages, 12);
--    Ptr   = MemoryTypeStr (Desc->Type);
-+    Ptr   = MemoryTypeStr ((EFI_MEMORY_TYPE)Desc->Type);
-     PrintToken (
-       STRING_TOKEN (STR_MEMMAP_FIVE_ARGS),
-       HiiHandle,
-Index: dblk/dblk.h
-===================================================================
---- dblk/dblk.h        (revision 64)
-+++ dblk/dblk.h        (working copy)
-@@ -168,3 +168,4 @@
+diff --git a/dblk/dblk.h b/dblk/dblk.h
+index 0341aeb..d7ec371 100644
+--- a/dblk/dblk.h
++++ b/dblk/dblk.h
+@@ -168,3 +168,4 @@ DblkStructsPrint (
  extern EFI_HII_HANDLE HiiDblkHandle;
  
  #endif
 +
-Index: dblk/dblk.inf
-===================================================================
---- dblk/dblk.inf      (revision 64)
-+++ dblk/dblk.inf      (working copy)
-@@ -26,23 +26,23 @@
+diff --git a/dblk/dblk.inf b/dblk/dblk.inf
+index f15392c..3c5dd45 100644
+--- a/dblk/dblk.inf
++++ b/dblk/dblk.inf
+@@ -26,23 +26,23 @@ COMPONENT_TYPE       = APPLICATION
  
  [sources.common]
    DblkStrings.uni
@@ -3429,30 +3791,30 @@ Index: dblk/dblk.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -61,11 +61,16 @@
+@@ -61,11 +61,16 @@ COMPONENT_TYPE       = APPLICATION
  # we will specify some additional DEFINEs on the compile command line.
  #
  [nmake.common]
-+  IMAGE_ENTRY_POINT=DumpBlockDev
+-  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
+   IMAGE_ENTRY_POINT=DumpBlockDev
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-   C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
--  IMAGE_ENTRY_POINT=DumpBlockDev
++  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
    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_BOOTSHELL
  
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
 +
   
 \ No newline at end of file
-Index: dblk/efidump.c
-===================================================================
---- dblk/efidump.c     (revision 64)
-+++ dblk/efidump.c     (working copy)
-@@ -24,7 +24,7 @@
+diff --git a/dblk/efidump.c b/dblk/efidump.c
+index 7fc0337..c18b826 100644
+--- a/dblk/efidump.c
++++ b/dblk/efidump.c
+@@ -24,7 +24,7 @@ Revision History
  --*/
  
  #include "dblk.h"
@@ -3461,7 +3823,7 @@ Index: dblk/efidump.c
  #include "EfiShellLib.h"
  
  #include STRING_DEFINES_FILE
-@@ -320,13 +320,11 @@
+@@ -320,13 +320,11 @@ DblkDumpSystemTable (
    VOID                      *AcpiTable;
    VOID                      *Acpi20Table;
    VOID                      *SMBIOSTable;
@@ -3475,7 +3837,7 @@ Index: dblk/efidump.c
    MpsTable        = NULL;
  
    PrintToken (
-@@ -352,10 +350,12 @@
+@@ -352,10 +350,12 @@ DblkDumpSystemTable (
      PrintToken (STRING_TOKEN (STR_DEBUG_STD_ERROR_ON), HiiDblkHandle, LibDevicePathToStr (DevicePath));
    }
  
@@ -3490,7 +3852,7 @@ Index: dblk/efidump.c
      Status = LibGetSystemConfigurationTable(&gEfiSalSystemTableGuid, &SalSystemTable);
      if (!EFI_ERROR(Status)) {
        PrintToken (STRING_TOKEN(STR_DEBUG_SAL_SYSTEM_TABLE), HiiDblkHandle, (UINT64)SalSystemTable);
-@@ -364,22 +364,22 @@
+@@ -364,22 +364,22 @@ DblkDumpSystemTable (
  
    Status = LibGetSystemConfigurationTable (&gEfiAcpiTableGuid, &AcpiTable);
    if (!EFI_ERROR (Status)) {
@@ -3504,111 +3866,33 @@ Index: dblk/efidump.c
 +    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);
-   }
- }
-Index: dblk/dblk.c
-===================================================================
---- dblk/dblk.c        (revision 64)
-+++ dblk/dblk.c        (working copy)
-@@ -52,7 +52,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
-   }
- };
-Index: date/date.h
-===================================================================
---- date/date.h        (revision 64)
-+++ date/date.h        (working copy)
-@@ -32,3 +32,4 @@
-   }
- #endif
-+
-Index: date/date.inf
-===================================================================
---- date/date.inf      (revision 64)
-+++ date/date.inf      (working copy)
-@@ -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
-@@ -71,7 +71,12 @@
- [nmake.common]
-   IMAGE_ENTRY_POINT=InitializeDate
-+
-+[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-   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_BOOTSHELL
-+[nmake.ARM, nmake.AARCH64]
-+  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-+
-Index: date/date.c
-===================================================================
---- date/date.c        (revision 64)
-+++ date/date.c        (working copy)
-@@ -53,8 +53,8 @@
- BOOLEAN
- GetNumber (
-   IN      CHAR16  *Str,
--  IN OUT  INTN    *Position,
--  IN OUT  INTN    *Number,
-+  IN OUT  UINTN   *Position,
-+  IN OUT  UINTN   *Number,
-   IN BOOLEAN      EndNum
-   );
-@@ -92,7 +92,7 @@
+   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 --git a/devices/devices.c b/devices/devices.c
+index bcc8beb..1934ef5 100644
+--- a/devices/devices.c
++++ b/devices/devices.c
+@@ -36,7 +36,7 @@ extern UINT8  STRING_ARRAY_NAME[];
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++STATIC EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiDevicesGuid = EFI_DEVICES_GUID;
+ SHELL_VAR_CHECK_ITEM    DevicesCheckList[] = {
+   {
+@@ -61,7 +61,7 @@ SHELL_VAR_CHECK_ITEM    DevicesCheckList[] = {
      NULL,
      0,
      0,
@@ -3617,52 +3901,28 @@ Index: date/date.c
    }
  };
  
-@@ -330,8 +330,8 @@
- BOOLEAN
- GetNumber (
-   IN      CHAR16    *Str,
--  IN OUT  INTN      *Position,
--  IN OUT  INTN      *Number,
-+  IN OUT  UINTN     *Position,
-+  IN OUT  UINTN     *Number,
-   IN BOOLEAN        EndNum
-   )
- {
-Index: rm/rm.c
-===================================================================
---- rm/rm.c    (revision 64)
-+++ rm/rm.c    (working copy)
-@@ -54,7 +54,7 @@
-     NULL,
-     0,
-     0,
--    FALSE
-+    (SHELL_VAR_CHECK_FLAG_TYPE) FALSE
+diff --git a/devices/devices.h b/devices/devices.h
+index 19e0983..6aff8bf 100644
+--- a/devices/devices.h
++++ b/devices/devices.h
+@@ -32,3 +32,4 @@ Revision History
+     0x6fabed98, 0x2a7, 0x46a4, 0x84, 0xd1, 0x76, 0xcd, 0x5c, 0x49, 0x78, 0x74 \
    }
- };
-Index: rm/rm.h
-===================================================================
---- rm/rm.h    (revision 64)
-+++ rm/rm.h    (working copy)
-@@ -59,3 +59,4 @@
-   );
  #endif
 +
-Index: rm/rm.inf
-===================================================================
---- rm/rm.inf  (revision 64)
-+++ rm/rm.inf  (working copy)
-@@ -41,23 +41,23 @@
+diff --git a/devices/devices.inf b/devices/devices.inf
+index c380f7d..f9356da 100644
+--- a/devices/devices.inf
++++ b/devices/devices.inf
+@@ -41,23 +41,23 @@ COMPONENT_TYPE       = APPLICATION
  
  [sources.common]
-    RmStrings.uni      
--   ..\ShCommonStrings.uni   
-+   ../ShCommonStrings.uni   
-    rm.h                        
-    rm.c                 
+   DevicesStrings.uni
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   devices.c
+   devices.h
+     
  [includes.common]
    .
 -  ..\Inc
@@ -3690,10 +3950,10 @@ Index: rm/rm.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -72,7 +72,11 @@
+@@ -72,7 +72,11 @@ COMPONENT_TYPE       = APPLICATION
  
  [nmake.common]
-   IMAGE_ENTRY_POINT=InitializeRM
+   IMAGE_ENTRY_POINT=DevicesMain
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
    C_STD_FLAGS = $(C_STD_FLAGS) /DSTRING_ARRAY_NAME=$(BASE_NAME)Strings 
@@ -3702,11 +3962,11 @@ Index: rm/rm.inf
  
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: mem/MemCommonPart.c
-===================================================================
---- mem/MemCommonPart.c        (revision 64)
-+++ mem/MemCommonPart.c        (working copy)
-@@ -58,7 +58,7 @@
+diff --git a/dmem/MemCommonPart.c b/dmem/MemCommonPart.c
+index 377da17..c4807a3 100644
+--- a/dmem/MemCommonPart.c
++++ b/dmem/MemCommonPart.c
+@@ -58,7 +58,7 @@ SHELL_VAR_CHECK_ITEM    DmemCheckList[] = {
      NULL,
      0,
      0,
@@ -3715,7 +3975,7 @@ Index: mem/MemCommonPart.c
    }
  };
  
-@@ -149,7 +149,7 @@
+@@ -148,7 +148,7 @@ Return:
      return EFI_SUCCESS;
    }
  
@@ -3724,16 +3984,16 @@ Index: mem/MemCommonPart.c
    Size    = (SizeStr) ? Xtoi (SizeStr) : 512;
  
    //
-@@ -157,7 +157,7 @@
+@@ -156,7 +156,7 @@ Return:
    //
-   PrintToken (STRING_TOKEN (STR_MEM_MEMORY_ADDR), HiiMemHandle, 2 * sizeof (UINTN), Address, Size);
+   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), HiiMemHandle, L"mem", L"PciRootBridgeIo");
+       PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_LOC_PROT_ERR_EX), HiiDmemHandle, L"dmem", L"PciRootBridgeIo");
        return Status;
-@@ -172,7 +172,7 @@
+@@ -171,7 +171,7 @@ Return:
        return Status;
      }
  
@@ -3742,25 +4002,25 @@ Index: mem/MemCommonPart.c
    } else {
      Buffer = (UINT8 *) (UINTN) Address;
    }
-@@ -233,7 +233,7 @@
+@@ -233,7 +233,7 @@ Return:
+   //
    MMIo                  = FALSE;
-   AddressStr            = NULL;
-   SizeStr               = NULL;
+   AddressStr            = SizeStr = NULL;
 -  Address               = (UINT64) SystemTable;
 +  Address               = (UINT64)(UINTN) SystemTable;
    Size                  = 512;
-   RetCode               = LibCheckVariables (SI, MemCheckList, &ChkPck, &Useful);
+   RetCode               = LibCheckVariables (SI, DmemCheckList, &ChkPck, &Useful);
    if (VarCheckOk != RetCode) {
-@@ -312,7 +312,7 @@
+@@ -316,7 +316,7 @@ Return:
    //
-   PrintToken (STRING_TOKEN (STR_MEM_NEW_MEMORY_ADDR), HiiMemHandle, 2 * sizeof (UINTN), Address, Size);
+   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), HiiMemHandle, L"mem", L"PciRootBridgeIo");
+       PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_LOC_PROT_ERR_EX), HiiDmemHandle, L"dmem", L"PciRootBridgeIo");
        return Status;
-@@ -327,7 +327,7 @@
+@@ -331,7 +331,7 @@ Return:
        return Status;
      }
  
@@ -3769,22 +4029,31 @@ Index: mem/MemCommonPart.c
    } else {
      Buffer = (UINT8 *) (UINTN) Address;
    }
-Index: mem/MemCommonPart.h
-===================================================================
---- mem/MemCommonPart.h        (revision 64)
-+++ mem/MemCommonPart.h        (working copy)
-@@ -62,4 +62,4 @@
+diff --git a/dmem/MemCommonPart.h b/dmem/MemCommonPart.h
+index f57e32a..f094fbb 100644
+--- a/dmem/MemCommonPart.h
++++ b/dmem/MemCommonPart.h
+@@ -61,4 +61,4 @@ EFIStructsPrint (
    IN  EFI_BLOCK_IO_PROTOCOL   *BlkIo
    );
  
 -#endif
 \ No newline at end of file
 +#endif
-Index: mem/mem.inf
-===================================================================
---- mem/mem.inf        (revision 64)
-+++ mem/mem.inf        (working copy)
-@@ -25,7 +25,7 @@
+diff --git a/dmem/debug.h b/dmem/debug.h
+index 50df0ed..8d5cd4e 100644
+--- a/dmem/debug.h
++++ b/dmem/debug.h
+@@ -156,3 +156,4 @@ EFIStructsPrint (
+ extern EFI_HII_HANDLE HiiDmemHandle;
+ #endif
++
+diff --git a/dmem/dmem.inf b/dmem/dmem.inf
+index ca0dcaf..acdf279 100644
+--- a/dmem/dmem.inf
++++ b/dmem/dmem.inf
+@@ -25,7 +25,7 @@ FILE_GUID            = 644E259E-FF88-4d31-8092-B99D8777F1C4
  COMPONENT_TYPE       = APPLICATION
  
  [sources.common]
@@ -3792,8 +4061,8 @@ Index: mem/mem.inf
 +  ../ShCommonStrings.uni
    MemStrings.uni
    DebugStrings.uni  
-   mm.c
-@@ -34,17 +34,17 @@
+   mem.c
+@@ -34,17 +34,17 @@ COMPONENT_TYPE       = APPLICATION
    
  [includes.common]
    .
@@ -3822,26 +4091,26 @@ Index: mem/mem.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -63,9 +63,13 @@
+@@ -64,9 +64,13 @@ COMPONENT_TYPE       = APPLICATION
  # we will specify some additional DEFINEs on the compile command line.
  #
  [nmake.common]
-+  IMAGE_ENTRY_POINT=DumpMm
+-  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
+   IMAGE_ENTRY_POINT=DumpMem
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-   C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
--  IMAGE_ENTRY_POINT=DumpMm
++  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
    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_BOOTSHELL
  
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: mem/efidump.c
-===================================================================
---- mem/efidump.c      (revision 64)
-+++ mem/efidump.c      (working copy)
-@@ -24,7 +24,7 @@
+diff --git a/dmem/efidump.c b/dmem/efidump.c
+index 051f6a0..11526f2 100644
+--- a/dmem/efidump.c
++++ b/dmem/efidump.c
+@@ -24,7 +24,7 @@ Revision History
  --*/
  
  #include "debug.h"
@@ -3850,7 +4119,7 @@ Index: mem/efidump.c
  #include "EfiShellLib.h"
  
  #include STRING_DEFINES_FILE
-@@ -320,13 +320,11 @@
+@@ -320,13 +320,11 @@ DumpSystemTable (
    VOID                      *AcpiTable;
    VOID                      *Acpi20Table;
    VOID                      *SMBIOSTable;
@@ -3864,64 +4133,64 @@ Index: mem/efidump.c
    MpsTable        = NULL;
  
    PrintToken (
-@@ -352,11 +350,13 @@
-     PrintToken (STRING_TOKEN (STR_DEBUG_STD_ERROR_ON), HiiMemHandle, LibDevicePathToStr (DevicePath));
+@@ -352,11 +350,13 @@ DumpSystemTable (
+     PrintToken (STRING_TOKEN (STR_DEBUG_STD_ERROR_ON), HiiDmemHandle, 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);
+-  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);
 +     VOID                      *SalSystemTable;
-+  
++
 +     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), HiiDmemHandle, (UINT64)SalSystemTable);
      }
-@@ -364,22 +364,22 @@
+@@ -364,22 +364,22 @@ DumpSystemTable (
    
    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);
+-    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), HiiMemHandle, (UINT64) Acpi20Table);
-+    PrintToken (STRING_TOKEN (STR_DEBUG_APCI_2_TABLE), HiiMemHandle, (UINT64)(UINTN) Acpi20Table);
+-    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), HiiMemHandle, (UINT64) MpsTable);
-+    PrintToken (STRING_TOKEN (STR_DEBUG_MPS_TABLE), HiiMemHandle, (UINT64)(UINTN) MpsTable);
+-    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), HiiMemHandle, (UINT64) SMBIOSTable);
-+    PrintToken (STRING_TOKEN (STR_DEBUG_SMBIOS_TABLE), HiiMemHandle, (UINT64)(UINTN) SMBIOSTable);
+-    PrintToken (STRING_TOKEN (STR_DEBUG_SMBIOS_TABLE), HiiDmemHandle, (UINT64) SMBIOSTable);
++    PrintToken (STRING_TOKEN (STR_DEBUG_SMBIOS_TABLE), HiiDmemHandle, (UINT64)(UINTN) SMBIOSTable);
    }
  }
  
-Index: mem/debug.h
-===================================================================
---- mem/debug.h        (revision 64)
-+++ mem/debug.h        (working copy)
-@@ -156,3 +156,4 @@
- extern EFI_HII_HANDLE HiiMemHandle;
- #endif
-+
-Index: ls/ls.c
-===================================================================
---- ls/ls.c    (revision 64)
-+++ ls/ls.c    (working copy)
-@@ -59,7 +59,7 @@
+diff --git a/dmpstore/dmpstore.c b/dmpstore/dmpstore.c
+index 747762e..3473d19 100644
+--- a/dmpstore/dmpstore.c
++++ b/dmpstore/dmpstore.c
+@@ -95,7 +95,7 @@ SetFileVariable (
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++STATIC EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiDmpstoreGuid = EFI_DMPSTORE_GUID;
+ SHELL_VAR_CHECK_ITEM    DmpstoreCheckList[] = {
+   {
+@@ -132,7 +132,7 @@ SHELL_VAR_CHECK_ITEM    DmpstoreCheckList[] = {
      NULL,
      0,
      0,
@@ -3930,82 +4199,136 @@ Index: ls/ls.c
    }
  };
  
-@@ -199,7 +199,6 @@
-   CHAR16                  *PtrTwo;
-   CHAR16                  *Path;
-   EFI_LIST_ENTRY          DirList;
--  EFI_LIST_ENTRY          *Link;
-   SHELL_FILE_ARG          *Arg;
-   BOOLEAN                 WildcardsEncountered;
-   CHAR16                  *Pattern;
-@@ -210,7 +209,6 @@
-   Argv    = SI->Argv;
-   PtrTwo  = NULL;
-   InitializeListHead (&DirList);
--  Link                = NULL;
-   Arg                 = NULL;
-   Pattern             = NULL;
-   Status              = EFI_SUCCESS;
-@@ -815,8 +813,6 @@
-   CHAR16 *Path
-   )
- {
--
--  EFI_STATUS  Status;
-   CHAR16      *PtrOne;
-   CHAR16      *PtrTwo;
-   UINTN       Index1;
-@@ -825,7 +821,6 @@
-   BOOLEAN     LeadingBlanks;
+diff --git a/dmpstore/dmpstore.h b/dmpstore/dmpstore.h
+index 32d72ec..278fb59 100644
+--- a/dmpstore/dmpstore.h
++++ b/dmpstore/dmpstore.h
+@@ -40,3 +40,4 @@ typedef struct {
+ } DMPSTORE_VARIABLE;
  
-   LeadingBlanks = TRUE;
--  Status        = EFI_SUCCESS;
+ #endif
++
+diff --git a/dmpstore/dmpstore.inf b/dmpstore/dmpstore.inf
+index f380759..4a5563d 100644
+--- a/dmpstore/dmpstore.inf
++++ b/dmpstore/dmpstore.inf
+@@ -25,24 +25,24 @@ FILE_GUID            = 7185D15A-A0AE-4dd1-A58F-C6EAD28EC9A8
+ COMPONENT_TYPE       = APPLICATION
  
-   for (PtrOne = PtrTwo = Path; PtrOne < Path + StrLen (Path); PtrOne++) {
-     if ((*PtrOne) == ' ' && LeadingBlanks) {
-@@ -917,14 +912,14 @@
+ [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./
  
-   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) &&
-       (mAttribH ? (Info->Attribute & EFI_FILE_HIDDEN ? TRUE : FALSE) : TRUE) &&
-       (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)
-+      (mAttribD ? (Info->Attribute & EFI_FILE_DIRECTORY ? TRUE : FALSE) : TRUE))
-     )
-       ) {
-     IsMatch = TRUE;
-Index: ls/ls.h
-===================================================================
---- ls/ls.h    (revision 64)
-+++ ls/ls.h    (working copy)
-@@ -91,4 +91,5 @@
-   IN UINT16               VHlpToken
-   );
+ [libraries.common]  
+   EfiShellLib
+@@ -61,11 +61,14 @@ COMPONENT_TYPE       = APPLICATION
+ # we will specify some additional DEFINEs on the compile command line.
+ #
+ [nmake.common]
+-  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
+   IMAGE_ENTRY_POINT=InitializeDumpStore
++
++[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
++  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
+   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_BOOTSHELL
  
--#endif
+-
++[nmake.ARM, nmake.AARCH64]
++  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
+  
 \ No newline at end of file
-+#endif
+diff --git a/drivers/drivers.c b/drivers/drivers.c
+index 0c6cfc0..84271b9 100644
+--- a/drivers/drivers.c
++++ b/drivers/drivers.c
+@@ -43,7 +43,7 @@ extern UINT8  STRING_ARRAY_NAME[];
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++STATIC EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiDriversGuid = EFI_DRIVERS_GUID;
+ SHELL_VAR_CHECK_ITEM    DriversCheckList[] = {
+   {
+@@ -68,7 +68,7 @@ SHELL_VAR_CHECK_ITEM    DriversCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   }
+ };
+@@ -133,7 +133,6 @@ Returns:
+   EFI_HANDLE                   *ControllerHandleBuffer;
+   UINTN                        ChildControllerHandleCount;
+   CHAR16                       *ImageName;
+-  BOOLEAN                      IsHelp;
+   SHELL_VAR_CHECK_CODE         RetCode;
+   CHAR16                       *Useful;
+   SHELL_ARG_LIST               *Item;
+@@ -143,7 +142,6 @@ Returns:
+   Language                = NULL;
+   DriverImageHandleCount  = 0;
+   DriverImageHandleBuffer = NULL;
+-  IsHelp                  = FALSE;
+   ZeroMem (&ChkPck, sizeof (SHELL_VAR_CHECK_PACKAGE));
+   EFI_SHELL_APP_INIT (ImageHandle, SystemTable);
+diff --git a/drivers/drivers.h b/drivers/drivers.h
+index 6ef5e12..7c29cb0 100644
+--- a/drivers/drivers.h
++++ b/drivers/drivers.h
+@@ -33,3 +33,4 @@ Revision History
+   }
+ #endif
 +
-Index: ls/ls.inf
-===================================================================
---- ls/ls.inf  (revision 64)
-+++ ls/ls.inf  (working copy)
-@@ -40,24 +40,24 @@
+diff --git a/drivers/drivers.inf b/drivers/drivers.inf
+index befa6cd..056bf90 100644
+--- a/drivers/drivers.inf
++++ b/drivers/drivers.inf
+@@ -40,7 +40,7 @@ COMPONENT_TYPE       = APPLICATION
  
  
  [sources.common]
--   ..\ShCommonStrings.uni   
-+   ../ShCommonStrings.uni   
-    LsStrings.uni        
-    ls.c                 
-    ls.h    
-                                          
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   DriversStrings.uni
+   drivers.c
+   drivers.h
+@@ -48,17 +48,17 @@ COMPONENT_TYPE       = APPLICATION
+   
  [includes.common]
    .
 -  ..\Inc
@@ -4033,10 +4356,10 @@ Index: ls/ls.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -72,7 +72,11 @@
+@@ -73,7 +73,11 @@ COMPONENT_TYPE       = APPLICATION
  
  [nmake.common]
-   IMAGE_ENTRY_POINT=InitializeLS
+   IMAGE_ENTRY_POINT=DriversMain
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
    C_STD_FLAGS = $(C_STD_FLAGS) /DSTRING_ARRAY_NAME=$(BASE_NAME)Strings 
@@ -4045,11 +4368,20 @@ Index: ls/ls.inf
  
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: stall/stall.c
-===================================================================
---- stall/stall.c      (revision 64)
-+++ stall/stall.c      (working copy)
-@@ -50,7 +50,7 @@
+diff --git a/drvcfg/drvcfg.c b/drvcfg/drvcfg.c
+index b604432..a037ac6 100644
+--- a/drvcfg/drvcfg.c
++++ b/drvcfg/drvcfg.c
+@@ -38,7 +38,7 @@ extern UINT8  STRING_ARRAY_NAME[];
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++STATIC EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiDrvcfgGuid = EFI_DRVCFG_GUID;
+ SHELL_VAR_CHECK_ITEM  DrvcfgCheckList[] = {
+   {
+@@ -87,7 +87,7 @@ SHELL_VAR_CHECK_ITEM  DrvcfgCheckList[] = {
      NULL,
      0,
      0,
@@ -4058,29 +4390,29 @@ Index: stall/stall.c
    }
  };
  
-Index: stall/stall.h
-===================================================================
---- stall/stall.h      (revision 64)
-+++ stall/stall.h      (working copy)
-@@ -30,3 +30,4 @@
+diff --git a/drvcfg/drvcfg.h b/drvcfg/drvcfg.h
+index 9e14b9f..4255940 100644
+--- a/drvcfg/drvcfg.h
++++ b/drvcfg/drvcfg.h
+@@ -33,3 +33,4 @@ Revision History
    }
  
  #endif
 +
-Index: stall/stall.inf
-===================================================================
---- stall/stall.inf    (revision 64)
-+++ stall/stall.inf    (working copy)
-@@ -40,24 +40,24 @@
+diff --git a/drvcfg/drvcfg.inf b/drvcfg/drvcfg.inf
+index 71b2778..1abd9f2 100644
+--- a/drvcfg/drvcfg.inf
++++ b/drvcfg/drvcfg.inf
+@@ -40,24 +40,24 @@ COMPONENT_TYPE       = APPLICATION
  
  
  [sources.common]
 -  ..\ShCommonStrings.uni
 +  ../ShCommonStrings.uni
-   stallStrings.uni
-   stall.c
-   stall.h
+   DrvcfgStrings.uni
+   drvcfg.c
+   drvcfg.h
+     
  [includes.common]
    .
 -  ..\Inc
@@ -4108,10 +4440,10 @@ Index: stall/stall.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -72,7 +72,11 @@
+@@ -72,7 +72,11 @@ COMPONENT_TYPE       = APPLICATION
  
  [nmake.common]
-   IMAGE_ENTRY_POINT=InitializeStall
+   IMAGE_ENTRY_POINT=DrvcfgMain
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
    C_STD_FLAGS = $(C_STD_FLAGS) /DSTRING_ARRAY_NAME=$(BASE_NAME)Strings 
@@ -4120,20 +4452,20 @@ Index: stall/stall.inf
  
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: DeviceTree/devicetree.c
-===================================================================
---- DeviceTree/devicetree.c    (revision 64)
-+++ DeviceTree/devicetree.c    (working copy)
-@@ -36,7 +36,7 @@
+diff --git a/drvdiag/drvdiag.c b/drvdiag/drvdiag.c
+index 3a9435c..0db01de 100644
+--- a/drvdiag/drvdiag.c
++++ b/drvdiag/drvdiag.c
+@@ -41,7 +41,7 @@ extern UINT8  STRING_ARRAY_NAME[];
  //
  // Global Variables
  //
 -EFI_HII_HANDLE  HiiHandle;
 +STATIC EFI_HII_HANDLE  HiiHandle;
- EFI_GUID        EfiDevicetreeGuid = EFI_DEVICETREE_GUID;
- SHELL_VAR_CHECK_ITEM    DevicetreeCheckList[] = {
+ EFI_GUID        EfiDrvdiagGuid = EFI_DRVDIAG_GUID;
+ SHELL_VAR_CHECK_ITEM  DrvdiagCheckList[] = {
    {
-@@ -67,7 +67,7 @@
+@@ -90,7 +90,7 @@ SHELL_VAR_CHECK_ITEM  DrvdiagCheckList[] = {
      NULL,
      0,
      0,
@@ -4142,28 +4474,29 @@ Index: DeviceTree/devicetree.c
    }
  };
  
-Index: DeviceTree/devicetree.h
-===================================================================
---- DeviceTree/devicetree.h    (revision 64)
-+++ DeviceTree/devicetree.h    (working copy)
-@@ -32,3 +32,4 @@
-     0xf21044af, 0xeef6, 0x4d58, 0xb4, 0x56, 0x32, 0x86, 0xa0, 0x2b, 0x7c, 0x49 \
+diff --git a/drvdiag/drvdiag.h b/drvdiag/drvdiag.h
+index 53d0478..8e10686 100644
+--- a/drvdiag/drvdiag.h
++++ b/drvdiag/drvdiag.h
+@@ -33,3 +33,4 @@ Revision History
    }
  #endif
 +
-Index: DeviceTree/devicetree.inf
-===================================================================
---- DeviceTree/devicetree.inf  (revision 64)
-+++ DeviceTree/devicetree.inf  (working copy)
-@@ -40,24 +40,24 @@
+diff --git a/drvdiag/drvdiag.inf b/drvdiag/drvdiag.inf
+index f27c238..097b31b 100644
+--- a/drvdiag/drvdiag.inf
++++ b/drvdiag/drvdiag.inf
+@@ -40,7 +40,7 @@ COMPONENT_TYPE       = APPLICATION
  
  
  [sources.common]
 -  ..\ShCommonStrings.uni
 +  ../ShCommonStrings.uni
-   DevicetreeStrings.uni
-   devicetree.c
-   devicetree.h
+   DrvdiagStrings.uni
+   drvdiag.c
+   drvdiag.h
+@@ -48,17 +48,17 @@ COMPONENT_TYPE       = APPLICATION
    
  [includes.common]
    .
@@ -4192,10 +4525,10 @@ Index: DeviceTree/devicetree.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -72,7 +72,11 @@
+@@ -73,7 +73,11 @@ COMPONENT_TYPE       = APPLICATION
  
  [nmake.common]
-   IMAGE_ENTRY_POINT=DevicetreeMain
+   IMAGE_ENTRY_POINT=DrvdiagMain
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
    C_STD_FLAGS = $(C_STD_FLAGS) /DSTRING_ARRAY_NAME=$(BASE_NAME)Strings 
@@ -4204,60 +4537,20 @@ Index: DeviceTree/devicetree.inf
  
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: TelnetMgmt/TelnetMgmt.c
-===================================================================
---- TelnetMgmt/TelnetMgmt.c    (revision 64)
-+++ TelnetMgmt/TelnetMgmt.c    (working copy)
-@@ -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[] = {
-@@ -58,7 +58,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
-   }
- };
-Index: TelnetMgmt/TelnetMgmt.h
-===================================================================
---- TelnetMgmt/TelnetMgmt.h    (revision 64)
-+++ TelnetMgmt/TelnetMgmt.h    (working copy)
-@@ -29,4 +29,4 @@
-     0x55d41b9a, 0x954d, 0x4fbb, 0x8d, 0x6d, 0x24, 0x75, 0xf5, 0x30, 0x9d, 0x37 \
-   }
--#endif
-\ No newline at end of file
-+#endif
-Index: TelnetMgmt/TelnetServer.h
-===================================================================
---- TelnetMgmt/TelnetServer.h  (revision 64)
-+++ TelnetMgmt/TelnetServer.h  (working copy)
-@@ -81,3 +81,4 @@
- extern EFI_GUID gEfiTelnetServerGuid;
- #endif
-+
-Index: TelnetMgmt/TelnetMgmt.inf
-===================================================================
---- TelnetMgmt/TelnetMgmt.inf  (revision 64)
-+++ TelnetMgmt/TelnetMgmt.inf  (working copy)
-@@ -25,23 +25,23 @@
+diff --git a/edit/edit.inf b/edit/edit.inf
+index 0a48e87..3d69d4b 100644
+--- a/edit/edit.inf
++++ b/edit/edit.inf
+@@ -25,7 +25,7 @@ FILE_GUID            = 51A60577-F1F6-444a-A372-244BED272023
  COMPONENT_TYPE       = APPLICATION
  
  [sources.common]
--  ..\ShCommonStrings.uni
-+  ../ShCommonStrings.uni
-   TelnetMgmtStrings.uni
-   TelnetMgmt.c
+- ..\ShCommonStrings.uni
++ ../ShCommonStrings.uni
+  EditStrings.uni
+  editor.h
+  editortype.h
+@@ -41,17 +41,17 @@ COMPONENT_TYPE       = APPLICATION
  
  [includes.common]
    .
@@ -4286,445 +4579,498 @@ Index: TelnetMgmt/TelnetMgmt.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -55,6 +55,11 @@
+@@ -70,11 +70,13 @@ COMPONENT_TYPE       = APPLICATION
+ # we will specify some additional DEFINEs on the compile command line.
+ #
  [nmake.common]
-   IMAGE_ENTRY_POINT=InitializeTelnetMgmt
+-  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
+   IMAGE_ENTRY_POINT=InitializeEFIEditor
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
++  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
    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_BOOTSHELL
-+
+-
+- 
+\ No newline at end of file
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: shellenv/if.c
-===================================================================
---- shellenv/if.c      (revision 64)
-+++ shellenv/if.c      (working copy)
-@@ -59,7 +59,6 @@
-   BOOLEAN     ExistNot;
-   UINTN       NotPos;
-   BOOLEAN     ExistI;
--  UINTN       IPos;
-   EFI_STATUS  Status;
-   CHAR16      *FileName;
-   BOOLEAN     FileExists;
-@@ -122,10 +121,8 @@
+diff --git a/edit/editor.h b/edit/editor.h
+index c18db6a..f41b5b1 100644
+--- a/edit/editor.h
++++ b/edit/editor.h
+@@ -33,7 +33,7 @@ Abstract:
+ #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,9 +43,10 @@ extern EFI_EDITOR_GLOBAL_EDITOR MainEditor;
+ 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
+ #endif // _EFI_EDITOR_H_
++
+diff --git a/edit/editortype.h b/edit/editortype.h
+index 674f120..861b6c1 100644
+--- a/edit/editortype.h
++++ b/edit/editortype.h
+@@ -28,7 +28,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+ #define EDITOR_NAME           L"EFI Editor\0"
+ #define EDITOR_VERSION        L"0.99\0"
+-#define EFI_EDITOR_LINE_LIST  'eell'
++#define EFI_EDITOR_LINE_LIST  EFI_SIGNATURE_32 ('e','e','l','l')
+ #define INSERT_MODE_STR       L"INS"
+ #define OVERWR_MODE_STR       L"OVR"
+@@ -149,8 +149,8 @@ typedef struct _EFI_EDITOR_MENU_ITEM {
+ } EFI_EDITOR_MENU_ITEM;
+ typedef struct {
+-  UINT32  Foreground : 4;
+-  UINT32  Background : 4;
++  UINT8  Foreground : 4;
++  UINT8  Background : 4;
+ } EFI_EDITOR_COLOR_ATTRIBUTES;
+ typedef union {
+@@ -223,3 +223,4 @@ typedef struct {
+ } EFI_EDITOR_GLOBAL_EDITOR;
+ #endif
++
+diff --git a/edit/libEditor.c b/edit/libEditor.c
+index b39a2f0..7f32ce1 100644
+--- a/edit/libEditor.c
++++ b/edit/libEditor.c
+@@ -123,7 +123,7 @@ MainEditorInit (
+   Status = BS->HandleProtocol (
+                 In,
+                 &gEfiSimplePointerProtocolGuid,
+-                &MainEditor.MouseInterface
++                (VOID**)&MainEditor.MouseInterface
+                 );
+   if (EFI_ERROR (Status)) {
      //
-     if ((StriCmp (SI->Argv[1], L"/i") == 0)) {
-       ExistI  = TRUE;
--      IPos    = 1;
-     } else {
-       ExistI  = FALSE;
--      IPos    = 0;
-     }
+@@ -146,7 +146,7 @@ MainEditorInit (
+         Status = BS->HandleProtocol (
+                       HandleBuffer[Index],
+                       &gEfiSimplePointerProtocolGuid,
+-                      &MainEditor.MouseInterface
++                      (VOID**)&MainEditor.MouseInterface
+                       );
+         if (!EFI_ERROR (Status)) {
+           break;
+@@ -169,31 +169,31 @@ MainEditorInit (
+   //
+   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;
+   }
  
-     NotPos = ExistI ? 2 : 1;
-Index: shellenv/init.c
-===================================================================
---- shellenv/init.c    (revision 64)
-+++ shellenv/init.c    (working copy)
-@@ -143,7 +143,7 @@
-     Status = BS->HandleProtocol (
-                   mOldSEnv->Handle,
-                   &ShellEnvProtocol,
--                  &(mOldSEnv->Interface)
-+                  (VOID**)&(mOldSEnv->Interface)
-                   );
-     ASSERT (!EFI_ERROR (Status));
-     Status = BS->ReinstallProtocolInterface (
-Index: shellenv/echo.c
-===================================================================
---- shellenv/echo.c    (revision 64)
-+++ shellenv/echo.c    (working copy)
-@@ -52,7 +52,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   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;
    }
- };
  
-Index: shellenv/shelle.h
-===================================================================
---- shellenv/shelle.h  (revision 64)
-+++ shellenv/shelle.h  (working copy)
-@@ -2074,3 +2074,4 @@
-   );
+   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 @@ MainEditorCleanup (
+   //
+   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 --git a/edit/libFileBuffer.c b/edit/libFileBuffer.c
+index 1f1e2aa..1be2124 100644
+--- a/edit/libFileBuffer.c
++++ b/edit/libFileBuffer.c
+@@ -196,8 +196,9 @@ FileBufferRestoreMousePosition (
+       // backup the old screen attributes
+       //
+       Orig                  = MainEditor.ColorAttributes;
+-      New.Colors.Foreground = Orig.Colors.Background;
+-      New.Colors.Background = Orig.Colors.Foreground;
++      New.Data              = 0;
++      New.Colors.Foreground = Orig.Colors.Foreground;
++      New.Colors.Background = Orig.Colors.Background;
+       //
+       // clear the old mouse position
+@@ -235,10 +236,14 @@ FileBufferRestoreMousePosition (
+           Value
+           );
+       }
++
+       //
+       // set the new mouse position
+       //
+-      Out->SetAttribute (Out, New.Data);
++      Out->SetAttribute (
++             Out, 
++             EFI_TEXT_ATTR (New.Colors.Background, New.Colors.Foreground)
++             );
  
- #endif // _SHELLE_H_
-+
-Index: shellenv/batch.c
-===================================================================
---- shellenv/batch.c   (revision 64)
-+++ shellenv/batch.c   (working copy)
-@@ -2388,7 +2388,6 @@
+       //
+       // clear the old mouse position
+@@ -278,7 +283,10 @@ FileBufferRestoreMousePosition (
+       //
+       // end of HasCharacter
+       //
+-      Out->SetAttribute (Out, Orig.Data);
++      Out->SetAttribute (
++             Out,
++             EFI_TEXT_ATTR (Orig.Colors.Foreground, Orig.Colors.Background)
++             );
+     }
+     //
+     // end of MouseNeedRefresh
+@@ -768,7 +776,7 @@ Returns:
+   Handle        = NULL;
+   FileSize      = 0;
+   UnicodeBuffer = NULL;
+-  Type          = 0;
++  Type          = DEFAULT_TYPE;
  
- --*/
- {
--  BOOLEAN             EndOfFile;
-   EFI_STATUS          Status;
-   UINTN               BufSize;
-   CHAR16              *CommandLine;
-@@ -2396,7 +2395,6 @@
-   EFI_BATCH_STATEMENT *Stmt;
-   ENV_SHELL_INTERFACE NewShell;
-   UINTN               GotoTargetStatus;
--  UINTN               SkippedIfCount;
-   BOOLEAN             EchoStateValid;
-   BOOLEAN             EchoState;
-   EFI_STATUS          ExecuteResult;
-@@ -2409,7 +2407,6 @@
-   //  Initialize
    //
-   Status          = EFI_SUCCESS;
--  EndOfFile       = FALSE;
-   BufSize         = 0;
-   EchoStateValid  = FALSE;
-   EchoState       = FALSE;
-@@ -2468,14 +2465,6 @@
-             EFI_BATCH_SCRIPT_SIGNATURE
-             );
+   // in this function, when you return error ( except EFI_OUT_OF_RESOURCES )
+@@ -2624,15 +2632,9 @@ FileBufferHome (
+   VOID
+   )
+ {
+-  EFI_EDITOR_LINE *Line;
+   UINTN           FRow;
+   UINTN           FCol;
  
 -  //
--  // Iterate through the file, reading a line at a time and executing each
--  // line as a shell command.  Nested shell scripts will come through
--  // this code path recursively.
+-  // go to the first column of the line
 -  //
--  EndOfFile       = FALSE;
--  SkippedIfCount  = 0;
+-  Line  = FileBuffer.CurrentLine;
 -
-   while (1) {
-     //
-     // Read a command line from the file
-@@ -2681,7 +2670,7 @@
-       LastError = ExecuteResult;
-     }
--    if (ExecuteResult == -1) {
-+    if (ExecuteResult == (EFI_STATUS) -1) {
-       SE2->DecrementShellNestingLevel ();
-       if (SE2->IsRootShell ()) {
-         goto Done;
-@@ -2774,7 +2763,7 @@
-     Status = _ResumePreviousMode ();
-   }
--  if (LastError == -1) {
-+  if (LastError == (UINTN) -1) {
-     return LastError;
-   } else {
-     return Status;
-Index: shellenv/dprot.c
-===================================================================
---- shellenv/dprot.c   (revision 64)
-+++ shellenv/dprot.c   (working copy)
-@@ -23,7 +23,7 @@
- #include "shelle.h"
- #include "shellenvguid.h"
--#include "acpi.h"
-+#include "Acpi.h"
- STATIC CHAR16 *SEnvDP_IlleagalStr[] = { L"Illegal" };
+   FRow  = FileBuffer.FilePosition.Row;
+   FCol  = 1;
  
-@@ -328,7 +328,6 @@
-   I2O_DEVICE_PATH           *I2ODevicePath;
-   MAC_ADDR_DEVICE_PATH      *MacAddrDevicePath;
-   IPv4_DEVICE_PATH          *IPv4DevicePath;
--  IPv6_DEVICE_PATH          *IPv6DevicePath;
-   INFINIBAND_DEVICE_PATH    *InfinibandDevicePath;
-   UART_DEVICE_PATH          *UartDevicePath;
-   VENDOR_DEVICE_PATH        *VendorDevicePath;
-@@ -464,7 +463,6 @@
-     break;
+diff --git a/edit/libInputBar.c b/edit/libInputBar.c
+index 0ec6858..f868ffb 100644
+--- a/edit/libInputBar.c
++++ b/edit/libInputBar.c
+@@ -141,8 +141,6 @@ Returns:
+   UINTN                   Size;
+   EFI_STATUS              Status;
+   BOOLEAN                 NoDisplay;
+-  UINTN                   Limit;
+-  UINTN                   PromptLen;
  
-   case MSG_IPv6_DP:
--    IPv6DevicePath = (IPv6_DEVICE_PATH *) DevicePath;
-     PrintToken (STRING_TOKEN (STR_SHELLENV_DPROT_NOT_AVAIL), HiiEnvHandle);
-     break;
+   //
+   // variable initialization
+@@ -162,10 +160,14 @@ Returns:
+   // back up the old screen attributes
+   //
+   Orig                  = MainEditor.ColorAttributes;
++  New.Data              = 0;
+   New.Colors.Foreground = Orig.Colors.Background;
+   New.Colors.Background = Orig.Colors.Foreground;
  
-@@ -1054,6 +1052,8 @@
-       Magic = EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC;
-     } else if (NtHdr->FileHeader.Machine == EFI_IMAGE_MACHINE_X64) {
-       Magic = EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC;
-+    } else if (NtHdr->FileHeader.Machine == EFI_IMAGE_MACHINE_AARCH64) {
-+      Magic = EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC;
-     } else {
-       Magic = NtHdr->OptionalHeader.Magic;
-     }
-@@ -1294,6 +1294,8 @@
-     case EfiIsaAcpiResourceInterrupt:
-       PrintToken (STRING_TOKEN (STR_SHELLENV_DPROT_INT), HiiEnvHandle);
-       break;
-+    case EfiIsaAcpiResourceEndOfList:
-+      return;
-     }
+-  Out->SetAttribute (Out, New.Data);
++  Out->SetAttribute (
++         Out,
++         EFI_TEXT_ATTR (New.Colors.Foreground, New.Colors.Background)
++         );
  
-     if (IsaIo->ResourceList->ResourceItem[Index].StartRange == IsaIo->ResourceList->ResourceItem[Index].EndRange) {
-Index: shellenv/Connect.c
-===================================================================
---- shellenv/Connect.c (revision 64)
-+++ shellenv/Connect.c (working copy)
-@@ -51,7 +51,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
-   }
- };
+   //
+   // clear input bar
+@@ -173,13 +175,7 @@ Returns:
+   EditorClearLine (INPUT_BAR_LOCATION);
  
-@@ -78,7 +78,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
-   }
- };
+   Out->SetCursorPosition (Out, 0, INPUT_BAR_LOCATION - 1);
+-  PrintToken (STRING_TOKEN (STR_EDIT_LIBINPUTBAR_MAININPUTBAR), HiiHandle, MainInputBar.Prompt);
+-
+-  //
+-  // that's the maximum input length that can be displayed on screen
+-  //
+-  PromptLen = StrLen (MainInputBar.Prompt);
+-  Limit     = MainEditor.ScreenSize.Column - PromptLen;
++  PrintToken (STRING_TOKEN (STR_EDIT_LIBINPUTBAR_MAININPUTBAR), gEditHiiHandle, MainInputBar.Prompt);
  
-@@ -105,7 +105,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   //
+   // this is a selection prompt, cursor will stay in edit area
+@@ -188,7 +184,10 @@ Returns:
+   if (StrStr (MainInputBar.Prompt, L"Yes/No")) {
+     NoDisplay = TRUE;
+     FileBufferRestorePosition ();
+-    Out->SetAttribute (Out, Orig.Data);
++    Out->SetAttribute (
++           Out,
++           EFI_TEXT_ATTR (Orig.Colors.Foreground, Orig.Colors.Background)
++           );
+   } else {
+     NoDisplay = FALSE;
    }
- };
+@@ -265,7 +264,10 @@ Returns:
+   //
+   // restore screen attributes
+   //
+-  Out->SetAttribute (Out, Orig.Data);
++  Out->SetAttribute (
++         Out,
++         EFI_TEXT_ATTR (Orig.Colors.Foreground, Orig.Colors.Background)
++         );
  
-@@ -333,7 +333,7 @@
-     Status = BS->HandleProtocol (
-                   HandleBuffer[0],
-                   &gEfiDevicePathProtocolGuid,
--                  &Instance
-+                  (VOID**)&Instance
-                   );
-     if (EFI_ERROR (Status)) {
-       DriverBindingHandleCount  = 1;
-@@ -349,7 +349,7 @@
-     Status = BS->HandleProtocol (
-                   HandleBuffer[0],
-                   &gEfiDevicePathProtocolGuid,
--                  &Instance
-+                  (VOID**)&Instance
-                   );
-     if (EFI_ERROR (Status)) {
-       PrintToken (
-@@ -368,7 +368,7 @@
-     Status = BS->HandleProtocol (
-                   HandleBuffer[1],
-                   &gEfiDriverBindingProtocolGuid,
--                  &Instance
-+                  (VOID**)&Instance
-                   );
-     if (EFI_ERROR (Status)) {
-       PrintToken (
-@@ -407,7 +407,7 @@
-       Status = BS->HandleProtocol (
-                     AllHandleBuffer[Index],
-                     &gEfiDriverBindingProtocolGuid,
--                    &Instance
-+                    (VOID**)&Instance
-                     );
-       if (EFI_ERROR (Status)) {
-         DeviceHandleBuffer[DeviceHandleCount++] = AllHandleBuffer[Index];
-@@ -1052,7 +1052,7 @@
-     Status = BS->HandleProtocol (
-                   *ConsoleHandle,
-                   ConsoleGuid,
--                  &Interface
-+                  (VOID**)&Interface
-                   );
-   } 
+   StatusBarNeedRefresh = TRUE;
  
-@@ -1079,7 +1079,7 @@
-         Status = BS->HandleProtocol (
-                       AllHandleBuffer[Index],
-                       &gEfiDevicePathProtocolGuid,
--                      &Interface
-+                      (VOID**)&Interface
-                       );
-         if (!EFI_ERROR (Status)) {
-           ConsoleIndex = Index;
-@@ -1095,7 +1095,7 @@
-     BS->HandleProtocol (
-           *ConsoleHandle,
-           ConsoleGuid,
--          ConsoleInterface
-+          (VOID**)ConsoleInterface
-           );
-   }
+diff --git a/edit/libMenuBar.c b/edit/libMenuBar.c
+index 32fef4e..5ab13e6 100644
+--- a/edit/libMenuBar.c
++++ b/edit/libMenuBar.c
+@@ -189,7 +189,6 @@ MainMenuBarRefresh (
+   CHAR16                *NameString;
+   CHAR16                *FunctionKeyString;
+   UINTN                 BufferSize;
+-  EFI_STATUS            Status;
  
-Index: shellenv/shellenvguid.h
-===================================================================
---- shellenv/shellenvguid.h    (revision 64)
-+++ shellenv/shellenvguid.h    (working copy)
-@@ -37,3 +37,4 @@
- extern EFI_HII_HANDLE HiiEnvHandle;
+   //
+   // variable initialization
+@@ -220,9 +219,9 @@ MainMenuBarRefresh (
+     FunctionKeyString = AllocatePool (BufferSize);
  
- #endif
-+
-Index: shellenv/protid.c
-===================================================================
---- shellenv/protid.c  (revision 64)
-+++ shellenv/protid.c  (working copy)
-@@ -628,7 +628,7 @@
-     NULL,
-     0,
-     0,
--    FALSE
-+    (SHELL_VAR_CHECK_FLAG_TYPE) FALSE
-   }
- };
+ #if (EFI_SPECIFICATION_VERSION < 0x0002000A)
+-    Status            = Hii->GetString (Hii, HiiHandle, Item->NameToken, FALSE, NULL, &BufferSize, NameString);
++    Hii->GetString (Hii, gEditHiiHandle, Item->NameToken, FALSE, NULL, &BufferSize, NameString);
+ #else
+-    Status            = LibGetString (HiiHandle, Item->NameToken, NameString, &BufferSize);
++    LibGetString (gEditHiiHandle, Item->NameToken, NameString, &BufferSize);
+ #endif
  
-@@ -1183,7 +1183,7 @@
-       *DriverName = LibDevicePathToStr (Image->FilePath);
+     Width             = max ((StrLen (NameString) + 6), 20);
+@@ -232,9 +231,9 @@ MainMenuBarRefresh (
      }
-   } else {
--    LibGetDriverName (DriverBindingHandle, Language, DriverName);
-+    LibGetDriverName (DriverBindingHandle, (CHAR8*)Language, DriverName);
-   }
  
-   return EFI_SUCCESS;
-@@ -1539,7 +1539,7 @@
+ #if (EFI_SPECIFICATION_VERSION < 0x0002000A)
+-    Status = Hii->GetString (Hii, HiiHandle, Item->FunctionKeyToken, FALSE, NULL, &BufferSize, FunctionKeyString);
++    Hii->GetString (Hii, gEditHiiHandle, Item->FunctionKeyToken, FALSE, NULL, &BufferSize, FunctionKeyString);
+ #else
+-    Status = LibGetString (HiiHandle, Item->FunctionKeyToken, FunctionKeyString, &BufferSize);
++    LibGetString (gEditHiiHandle, Item->FunctionKeyToken, FunctionKeyString, &BufferSize);
+ #endif    
+     PrintAt (Col - 1, Row - 1, L"%E%s%N  %H%s%N  ", FunctionKeyString, NameString);
  
-     DevicePath      = NULL;
-     BestDeviceName  = NULL;
--    Status          = BS->HandleProtocol (Handle, &gEfiDevicePathProtocolGuid, &DevicePath);
-+    Status          = BS->HandleProtocol (Handle, &gEfiDevicePathProtocolGuid, (VOID**)&DevicePath);
+diff --git a/edit/libMisc.h b/edit/libMisc.h
+index b7a438b..38cabf3 100644
+--- a/edit/libMisc.h
++++ b/edit/libMisc.h
+@@ -96,3 +96,4 @@ GetTextY (
+   ) ;
  
-     Print (L"\n");
-     PrintToken (STRING_TOKEN (STR_SHELLENV_PROTID_CONTROLLER_NAME), HiiEnvHandle);
-@@ -1598,14 +1598,14 @@
-         Image = FALSE;
-         Status = GetDriverName (
-                   DriverBindingHandleBuffer[Index],
--                  Language,
-+                  (UINT8*)Language,
-                   FALSE,
-                   &DriverName
-                   );
-         if (DriverName == NULL) {
-           Status = GetDriverName (
-                     DriverBindingHandleBuffer[Index],
--                    Language,
-+                    (UINT8*)Language,
-                     TRUE,
-                     &DriverName
-                     );
-@@ -1792,7 +1792,7 @@
+ #endif
++
+diff --git a/edit/libStatusBar.c b/edit/libStatusBar.c
+index 1527c6e..88a24c9 100644
+--- a/edit/libStatusBar.c
++++ b/edit/libStatusBar.c
+@@ -157,11 +157,15 @@ Returns:
+   // back up the screen attributes
+   //
+   Orig                  = MainEditor.ColorAttributes;
++  New.Data              = 0;
+   New.Colors.Foreground = Orig.Colors.Background;
+   New.Colors.Background = Orig.Colors.Foreground;
  
-   Status = GetDriverName (
-             Handle,
--            Language,
-+            (UINT8*)Language,
-             FALSE,
-             &DriverName
-             );
-@@ -1806,7 +1806,7 @@
+   Out->EnableCursor (Out, FALSE);
+-  Out->SetAttribute (Out, New.Data);
++  Out->SetAttribute (
++         Out,
++         EFI_TEXT_ATTR (New.Colors.Foreground, New.Colors.Background)
++         );
  
-   Status = GetDriverName (
-             Handle,
--            Language,
-+            (UINT8*)Language,
-             TRUE,
-             &DriverName
-             );
-@@ -1979,7 +1979,7 @@
+   //
+   // clear status bar
+@@ -191,7 +195,10 @@ Returns:
+   //
+   // restore the old screen attributes
+   //
+-  Out->SetAttribute (Out, Orig.Data);
++  Out->SetAttribute (
++         Out,
++         EFI_TEXT_ATTR (Orig.Colors.Foreground, Orig.Colors.Background)
++         );
  
-       if (Prot->Handles[Index] == Handle) {
-         Dump    = Verbose ? Prot->DumpInfo : Prot->DumpToken;
--        Status  = BS->HandleProtocol (Handle, &Prot->ProtocolId, &Interface);
-+        Status  = BS->HandleProtocol (Handle, &Prot->ProtocolId, (VOID**)&Interface);
-         if (!EFI_ERROR (Status)) {
-           if (Verbose) {
-             for (Index1 = 0; Index1 < ProtocolBufferCount; Index1++) {
-@@ -2027,7 +2027,7 @@
-           goto Done;
-         }
+   //
+   // restore position in edit area
+diff --git a/edit/libTitleBar.c b/edit/libTitleBar.c
+index d5d1ad9..8b432a2 100644
+--- a/edit/libTitleBar.c
++++ b/edit/libTitleBar.c
+@@ -120,10 +120,15 @@ Returns:
+   // backup the old screen attributes
+   //
+   Orig                  = MainEditor.ColorAttributes;
++
++  New.Data              = 0;
+   New.Colors.Foreground = Orig.Colors.Background;
+   New.Colors.Background = Orig.Colors.Foreground;
  
--        Status = BS->HandleProtocol (Handle, ProtocolBuffer[Index1], &Interface);
-+        Status = BS->HandleProtocol (Handle, ProtocolBuffer[Index1], (VOID**)&Interface);
-         if (!EFI_ERROR (Status)) {
-           PrintToken (
-             STRING_TOKEN (STR_SHELLENV_PROTID_TWO_VARS_HG_NEW),
-@@ -2660,8 +2660,6 @@
+-  Out->SetAttribute (Out, New.Data);
++  Out->SetAttribute (
++         Out,
++         EFI_TEXT_ATTR (New.Colors.Foreground, New.Colors.Background)
++         );
  
- --*/
- {
--  EFI_STATUS                Status;
--
-   DEVICEPATH_INFO           *DevicePathInfo;
+   //
+   // clear the old title bar
+@@ -142,7 +147,10 @@ Returns:
+     );
  
-   UINTN                     Index;
-@@ -2688,7 +2686,7 @@
+   if (MainEditor.FileBuffer->FileName == NULL) {
+-    Out->SetAttribute (Out, Orig.Data);
++    Out->SetAttribute (
++           Out,
++           EFI_TEXT_ATTR (Orig.Colors.Foreground, Orig.Colors.Background)
++           );
+     FileBufferRestorePosition ();
+     return EFI_SUCCESS;
+   }
+@@ -204,7 +212,10 @@ Returns:
    //
-   // Establish current device path info list
+   // restore the old attribute
    //
--  Status = LibLocateHandle (
-+  LibLocateHandle (
-             ByProtocol,
-             Protocol,
-             NULL,
-Index: shellenv/parsecmd.h
-===================================================================
---- shellenv/parsecmd.h        (revision 64)
-+++ shellenv/parsecmd.h        (working copy)
-@@ -103,4 +103,5 @@
-   IN OUT SHELL_PARSED_ARGS    *args
+-  Out->SetAttribute (Out, Orig.Data);
++  Out->SetAttribute (
++         Out,
++         EFI_TEXT_ATTR (Orig.Colors.Foreground, Orig.Colors.Background)
++         );
+   //
+   // restore edit area cursor position
+diff --git a/edit/libeditor.h b/edit/libeditor.h
+index 9c84059..e6a174c 100644
+--- a/edit/libeditor.h
++++ b/edit/libeditor.h
+@@ -52,3 +52,4 @@ MainEditorSetCutLine (
    );
  
--#endif
-\ No newline at end of file
-+#endif
+ #endif
 +
-Index: shellenv/ConsoleProxy.c
-===================================================================
---- shellenv/ConsoleProxy.c    (revision 64)
-+++ shellenv/ConsoleProxy.c    (working copy)
-@@ -1483,7 +1483,7 @@
+diff --git a/edit/libfilebuffer.h b/edit/libfilebuffer.h
+index d2b519b..79ecd1b 100644
+--- a/edit/libfilebuffer.h
++++ b/edit/libfilebuffer.h
+@@ -209,3 +209,4 @@ EditGetDefaultFileName (
+   );
  
-   if (!EFI_ERROR (TimerStatus)) {
-     mConInProxy.InputState = INPUT_STATE_DEFAULT;
--    BS->SetTimer (
-+    Status = BS->SetTimer (
-           mConInProxy.TwoSecondTimeOut,
-           TimerCancel,
-           0
-@@ -1496,9 +1496,11 @@
-                   (UINT64) 20000000
-                   );
-     mConInProxy.InputState = INPUT_STATE_ESC;
-+  } else {
-+    Status = EFI_UNSUPPORTED;
-   }
+ #endif
++
+diff --git a/edit/libinputbar.h b/edit/libinputbar.h
+index bdbe9bf..3768306 100644
+--- a/edit/libinputbar.h
++++ b/edit/libinputbar.h
+@@ -44,3 +44,4 @@ MainInputBarSetStringSize (
+   );
  
--  return EFI_SUCCESS;
-+  return Status;
- }
+ #endif
++
+diff --git a/edit/libmenubar.h b/edit/libmenubar.h
+index 486aa81..27a89d8 100644
+--- a/edit/libmenubar.h
++++ b/edit/libmenubar.h
+@@ -85,3 +85,4 @@ MainCommandGotoLine (
+   );
  
- EFI_STATUS
-Index: shellenv/conio.c
-===================================================================
---- shellenv/conio.c   (revision 64)
-+++ shellenv/conio.c   (working copy)
-@@ -889,7 +889,7 @@
-     //
-     // If we need to update the output do so now
-     //
--    if (Update != -1) {
-+    if (Update != (UINTN) -1) {
-       if ((ConOut->Mode->CursorColumn != (INT32) Column) ||  (ConOut->Mode->CursorRow != (INT32) Row)) {
-         PrintAt (Column, Row, L"%s%.*s", Str + Update, Delete, L"");
-       } else {
-Index: shellenv/map.c
-===================================================================
---- shellenv/map.c     (revision 64)
-+++ shellenv/map.c     (working copy)
-@@ -185,7 +185,7 @@
+ #endif
++
+diff --git a/edit/libstatusbar.h b/edit/libstatusbar.h
+index bcc6997..05ccdef 100644
+--- a/edit/libstatusbar.h
++++ b/edit/libstatusbar.h
+@@ -53,3 +53,4 @@ MainStatusBarBackup (
+   );
+ #endif
++
+diff --git a/edit/libtitlebar.h b/edit/libtitlebar.h
+index eb7c1a3..3946ca7 100644
+--- a/edit/libtitlebar.h
++++ b/edit/libtitlebar.h
+@@ -46,3 +46,4 @@ MainTitleBarBackup (
+   );
+ #endif
++
+diff --git a/edit/main.c b/edit/main.c
+index 9f1c987..a69a1bc 100644
+--- a/edit/main.c
++++ b/edit/main.c
+@@ -34,7 +34,7 @@ EFI_BOOTSHELL_CODE(
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE    HiiHandle;
++EFI_HII_HANDLE    gEditHiiHandle;
+ #if (EFI_SPECIFICATION_VERSION < 0x0002000A)
+ EFI_HII_PROTOCOL  *Hii;
+ #endif
+@@ -56,7 +56,7 @@ SHELL_VAR_CHECK_ITEM    EditCheckList[] = {
      NULL,
      0,
      0,
@@ -4733,76 +5079,125 @@ Index: shellenv/map.c
    }
  };
  
-@@ -206,7 +206,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+@@ -121,13 +121,13 @@ Returns:
+   //
+   // There should only be one HII protocol
+   //
+-  Status = LibLocateProtocol (&gEfiHiiProtocolGuid, &Hii);
++  Status = LibLocateProtocol (&gEfiHiiProtocolGuid, (VOID**)&Hii);
+   if (EFI_ERROR (Status) || NULL == Hii) {
+     return EFI_ABORTED;
    }
- };
+ #endif
  
-@@ -2038,13 +2038,13 @@
-     goto Done;
+-  Status = LibInitializeStrings (&HiiHandle, STRING_ARRAY_NAME, &EfiEditGuid);
++  Status = LibInitializeStrings (&gEditHiiHandle, STRING_ARRAY_NAME, &EfiEditGuid);
+   if (EFI_ERROR (Status)) {
+     return Status;
+@@ -137,7 +137,7 @@ Returns:
+   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 @@ Returns:
+         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 @@ Returns:
+   }
+   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;
    }
--  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
-   //
+@@ -195,7 +195,7 @@ Returns:
    if (EFI_ERROR (Status)) {
--    Status = BS->HandleProtocol (Handle, &gEfiSimpleFileSystemProtocolGuid, &BlockIo);
-+    Status = BS->HandleProtocol (Handle, &gEfiSimpleFileSystemProtocolGuid, (VOID**)&BlockIo);
+     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;
    }
  
-   if (EFI_ERROR (Status)) {
-@@ -2630,7 +2630,6 @@
-   UINTN           Index;
-   UINTN           HandleNo;
-   BOOLEAN         EchoStatus;
--  BOOLEAN         Same;
-   CHAR16          MapStr[8];
-   EFI_LIST_ENTRY  *Link;
-   EFI_LIST_ENTRY  *Head;
-@@ -2729,11 +2728,6 @@
+@@ -240,19 +240,19 @@ Returns:
+   //
+   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);
      }
    }
--  //
--  // New code, try to make mapping list sequence unchanged if current device
--  // paths and original device paths are the same
--  //
--  Same = FALSE;
  
-   //
-   // Load handle table and handle protocol info so that we can get
-@@ -3410,4 +3404,4 @@
-     FreePool (HistoryNode->DevicePath);
-     FreePool (HistoryNode);
-   }
--}
-\ No newline at end of file
-+}
-Index: shellenv/pause.c
-===================================================================
---- shellenv/pause.c   (revision 64)
-+++ shellenv/pause.c   (working copy)
-@@ -47,7 +47,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
-   }
- };
+diff --git a/err/DebugMask.h b/err/DebugMask.h
+index 61136aa..9ce362f 100644
+--- a/err/DebugMask.h
++++ b/err/DebugMask.h
+@@ -67,3 +67,4 @@ typedef struct _EFI_DEBUG_MASK_PROTOCOL {
+ extern EFI_GUID gEfiDebugMaskProtocolGuid;
  
-Index: shellenv/exec.c
-===================================================================
---- shellenv/exec.c    (revision 64)
-+++ shellenv/exec.c    (working copy)
-@@ -105,7 +105,7 @@
+ #endif
++
+diff --git a/err/err.c b/err/err.c
+index e41a9d6..6062ddb 100644
+--- a/err/err.c
++++ b/err/err.c
+@@ -35,7 +35,7 @@ extern UINTN  EFIDebug;
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++STATIC EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiErrGuid = EFI_ERR_GUID;
+ SHELL_VAR_CHECK_ITEM    ErrCheckList[] = {
+   {
+@@ -60,7 +60,7 @@ SHELL_VAR_CHECK_ITEM    ErrCheckList[] = {
      NULL,
      0,
      0,
@@ -4811,203 +5206,278 @@ Index: shellenv/exec.c
    }
  };
  
-@@ -126,7 +126,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
-   }
- };
+@@ -149,7 +149,7 @@ _DumpHandleMask (
+   EFI_DEBUG_MASK_PROTOCOL *dmp;
+   UINTN                   Mask;
  
-@@ -1270,7 +1270,6 @@
-   SHELLENV_INTERNAL_COMMAND     InternalCommand;
-   EFI_HANDLE                    NewImage;
-   EFI_FILE_HANDLE               Script;
--  BOOLEAN                       ShowHelp;
-   BOOLEAN                       ConsoleContextSaved;
-   EFI_HANDLE                    SavedConsoleInHandle;
-   EFI_HANDLE                    SavedConsoleOutHandle;
-@@ -1292,7 +1291,6 @@
-   //
-   Status                        = EFI_SUCCESS;
-   ParentShell                   = NULL;
--  ShowHelp                      = FALSE;
-   ConsoleContextSaved           = FALSE;
-   SavedConIn                    = NULL;
-   SavedConOut                   = NULL;
-@@ -1557,7 +1555,7 @@
-           );
+-  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)) {
+@@ -170,13 +170,11 @@ _DumpDriverMask (
+   UINTN       HandleNum;
+   UINTN       Index;
+   UINTN       DrvHandle;
+-  BOOLEAN     Found;
  
-     EFI_SHELL_APP_INIT (ParentImageHandle, ParentSystemTable);
--    if (-2 == Status) {
-+    if ((EFI_STATUS) -2 == Status) {
-       //
-       // if status = -2 we assume that a nested shell has just exited.
-       //
-@@ -1613,7 +1611,9 @@
- Done:
-   DEBUG_CODE (
-     if (EFI_ERROR (Status) && Output) {
--      if ((Status == -1) || (Status == -2) || (Status == EFI_REDIRECTION_NOT_ALLOWED)
-+      if ((Status == (EFI_STATUS) -1) 
-+          || (Status == (EFI_STATUS) -2) 
-+          || (Status == EFI_REDIRECTION_NOT_ALLOWED)
-           || (Status == EFI_REDIRECTION_SAME)) {
-       } else {
-         PrintToken (STRING_TOKEN (STR_SHELLENV_EXEC_EXIT_STATUS_CODE), HiiEnvHandle, Status);
-@@ -1674,7 +1674,7 @@
-     PrintToken (STRING_TOKEN (STR_SHELLENV_REDIR_NOT_ALLOWED), HiiEnvHandle);
+   HandleBuf = NULL;
+   HandleNum = 0;
+   DrvHandle = 0;
+   Status    = EFI_SUCCESS;
+-  Found     = FALSE;
+   if (NULL != Handle) {
+     DrvHandle = (UINTN) StrToUIntegerBase (Handle, 16, &Status) - 1;
+@@ -278,7 +276,7 @@ _SetDriverMask (
+     goto Done;
    }
  
--  if (Status != -1) {
-+  if (Status != (EFI_STATUS) -1) {
-     //
-     // Don't Print on a "Disconnect All" exit. The ConOut device may not exist
-     //
-@@ -1872,7 +1872,7 @@
-     return Status;
+-  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 +334,7 @@ _SetAllDriverMask (
+   }
+   
+   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);
    }
-   //
--  // Processing foo: or foo:\
-+  // Processing foo:\ or foo:
-   //
-   if (PathPos != -1 && Ptr1 == NULL) {
-     return Status;
-@@ -2638,7 +2638,6 @@
-   EFI_STATUS          Status;
-   CHAR16              *Alias;
-   CHAR16              *SubstituteStr;
--  CHAR16              *OldSubstituteStr;
-   BOOLEAN             Literal;
-   BOOLEAN             Comment;
-   BOOLEAN             IsVariable;
-@@ -2735,7 +2734,6 @@
-         // Try to find a shell enviroment variable
-         //
-         QuoteCount        = 0;
--        OldSubstituteStr  = SubstituteStr;
-         SubstituteStr     = Str + 1;
-         while (*SubstituteStr != '%' && *SubstituteStr != 0 && (!IsWhiteSpace (*SubstituteStr) || ParseState->Quote)) {
-           if (*SubstituteStr == '"') {
-Index: shellenv/for.c
-===================================================================
---- shellenv/for.c     (revision 64)
-+++ shellenv/for.c     (working copy)
-@@ -24,7 +24,7 @@
- #include "shelle.h"
- #include "shellenvguid.h"
  
--/*
-+#if 0
- BOOLEAN
- CheckInterValue (
-   IN CHAR16                        *wszValueStr,
-@@ -190,7 +190,7 @@
- Returns:
-   EFI_SUCCESS      The function finished sucessfully
+diff --git a/err/err.h b/err/err.h
+index f42e503..133006a 100644
+--- a/err/err.h
++++ b/err/err.h
+@@ -29,4 +29,4 @@ Revision History
+     0xdaab229b, 0x7883, 0x4f5f, 0xac, 0x6e, 0x15, 0x20, 0xc7, 0xe7, 0x8f, 0xd4 \
+   }
  
----
-+--*/
- {
-   EFI_BATCH_STATEMENT                *Stmt;
-   EFI_LIST_ENTRY                     FileList;
-@@ -326,7 +326,8 @@
-     
-   return Status;
- }
--*/
+-#endif
+\ No newline at end of file
 +#endif
+diff --git a/err/err.inf b/err/err.inf
+index 467e734..3afd967 100644
+--- a/err/err.inf
++++ b/err/err.inf
+@@ -25,7 +25,7 @@ FILE_GUID            = 7ED86F56-5558-4d4f-A972-9307909AE9BA
+ COMPONENT_TYPE       = APPLICATION
+ [sources.common]
+-..\ShCommonStrings.uni
++../ShCommonStrings.uni
+ ErrStrings.uni
+ err.c
+ err.h
+@@ -33,17 +33,17 @@ err.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
+@@ -63,11 +63,14 @@ err.h
+ # we will specify some additional DEFINEs on the compile command line.
+ #
+ [nmake.common]
+-  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
+   IMAGE_ENTRY_POINT=InitializeError
 +
- EFI_STATUS
- SEnvCmdForRun (
-   IN EFI_HANDLE                         hImageHandle,
-Index: shellenv/help.c
-===================================================================
---- shellenv/help.c    (revision 64)
-+++ shellenv/help.c    (working copy)
-@@ -52,7 +52,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
-   }
- };
++[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
++  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
+   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_BOOTSHELL
  
-Index: shellenv/var.c
-===================================================================
---- shellenv/var.c     (revision 64)
-+++ shellenv/var.c     (working copy)
-@@ -110,7 +110,7 @@
+-
++[nmake.ARM, nmake.AARCH64]
++  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
+  
+\ No newline at end of file
+diff --git a/guid/guid.c b/guid/guid.c
+index 7f26e7d..78ec5eb 100644
+--- a/guid/guid.c
++++ b/guid/guid.c
+@@ -36,7 +36,7 @@ extern UINT8  STRING_ARRAY_NAME[];
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++STATIC EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiGuidGuid = EFI_GUID_GUID;
+ SHELL_VAR_CHECK_ITEM    GuidCheckList[] = {
+   {
+@@ -55,7 +55,7 @@ SHELL_VAR_CHECK_ITEM    GuidCheckList[] = {
      NULL,
      0,
      0,
 -    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
++    (SHELL_VAR_CHECK_FLAG_TYPE)0
    }
  };
  
-@@ -144,7 +144,6 @@
-   EFI_LIST_ENTRY  *ListHead;
-   VARIABLE_ID     *Var;
-   EFI_STATUS      Status;
--  BOOLEAN         IsString;
-   UINT32          Attributes;
+diff --git a/guid/guid.h b/guid/guid.h
+index af7560a..e6cf872 100644
+--- a/guid/guid.h
++++ b/guid/guid.h
+@@ -31,4 +31,4 @@ Revision History
+     0x425bff44, 0x1cae, 0x4c27, 0x98, 0x2c, 0x25, 0xc8, 0x74, 0x59, 0xdf, 0xd6 \
+   }
  
-   //
-@@ -175,15 +174,12 @@
-     // See if it's a shellenv variable
-     //
-     ListHead  = NULL;
--    IsString  = FALSE;
-     if (CompareGuid (&Id, &SEnvEnvId) == 0) {
-       ListHead  = &SEnvEnv;
--      IsString  = TRUE;
-     }
+-#endif
+\ No newline at end of file
++#endif
+diff --git a/guid/guid.inf b/guid/guid.inf
+index 60639d2..621fab4 100644
+--- a/guid/guid.inf
++++ b/guid/guid.inf
+@@ -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
+@@ -63,8 +63,15 @@
+   EdkGuidLib
+   EdkFrameworkGuidLib
+   EfiGuidLib
++
+ [nmake.common]
+   IMAGE_ENTRY_POINT=GuidMain
+-  C_STD_FLAGS = $(C_STD_FLAGS) /DSTRING_ARRAY_NAME=$(BASE_NAME)Strings
++
++[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
++  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_BOOTSHELL
++
++[nmake.ARM, nmake.AARCH64]
++  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
++ 
+\ No newline at end of file
+diff --git a/hexedit/heditor.h b/hexedit/heditor.h
+index 09196d6..74a3160 100644
+--- a/hexedit/heditor.h
++++ b/hexedit/heditor.h
+@@ -39,7 +39,7 @@ Abstract:
+ #include "libinputbar.h"
+ #include "libmenubar.h"
  
-     if (CompareGuid (&Id, &SEnvAliasId) == 0) {
-       ListHead  = &SEnvAlias;
--      IsString  = TRUE;
-     }
+-#include "libmisc.h"
++#include "libMisc.h"
  
-     if (ListHead) {
-Index: reset/reset.c
-===================================================================
---- reset/reset.c      (revision 64)
-+++ reset/reset.c      (working copy)
-@@ -61,7 +61,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
-   }
- };
+ #include "libclipboard.h"
  
-Index: reset/reset.h
-===================================================================
---- reset/reset.h      (revision 64)
-+++ reset/reset.h      (working copy)
-@@ -32,3 +32,4 @@
-   }
+@@ -52,9 +52,10 @@ extern HEFI_EDITOR_GLOBAL_EDITOR  HMainEditor;
+ 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
+ #endif // _HEDITOR_H
 +
-Index: reset/reset.inf
-===================================================================
---- reset/reset.inf    (revision 64)
-+++ reset/reset.inf    (working copy)
-@@ -40,24 +40,24 @@
+diff --git a/hexedit/heditortype.h b/hexedit/heditortype.h
+index 59317a9..d3936d0 100644
+--- a/hexedit/heditortype.h
++++ b/hexedit/heditortype.h
+@@ -30,7 +30,7 @@ Abstract:
+ #define EDITOR_NAME           L"EFI Hex Editor\0"
+ #define EDITOR_VERSION        L"0.99\0"
+-#define EFI_EDITOR_LINE_LIST  'eell'
++#define EFI_EDITOR_LINE_LIST  EFI_SIGNATURE_32 ('e','e','l','l')
+ #define FILE_ATTRIBUTES       EFI_FILE_MODE_READ | EFI_FILE_MODE_WRITE | EFI_FILE_MODE_CREATE
+ #define FILE_READ_WRITE       EFI_FILE_MODE_READ | EFI_FILE_MODE_WRITE
+@@ -147,8 +147,8 @@ typedef struct _HEFI_EDITOR_MENU_ITEM {
+ } HEFI_EDITOR_MENU_ITEM;
+ typedef struct {
+-  UINT32  Foreground : 4;
+-  UINT32  Background : 4;
++  UINT8  Foreground : 4;
++  UINT8  Background : 4;
+ } HEFI_EDITOR_COLOR_ATTRIBUTES;
  
+ typedef union {
+@@ -251,3 +251,4 @@ typedef struct {
+ } HEFI_EDITOR_GLOBAL_EDITOR;
+ #endif
++
+diff --git a/hexedit/hexedit.inf b/hexedit/hexedit.inf
+index cf89b9e..aa44590 100644
+--- a/hexedit/hexedit.inf
++++ b/hexedit/hexedit.inf
+@@ -25,7 +25,7 @@ FILE_GUID            = A5A41A42-5B2B-4de6-9556-DDC6DC31231C
+ COMPONENT_TYPE       = APPLICATION
  
  [sources.common]
--   ..\ShCommonStrings.uni   
-+   ../ShCommonStrings.uni   
-    ResetStrings.uni
-    Reset.c
-    Reset.h 
-                                           
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   HexeditStrings.uni
+   heditor.h
+   heditortype.h
+@@ -45,17 +45,17 @@ COMPONENT_TYPE       = APPLICATION
  [includes.common]
    .
 -  ..\Inc
@@ -5035,1447 +5505,1080 @@ Index: reset/reset.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -72,7 +72,11 @@
+@@ -75,11 +75,14 @@ COMPONENT_TYPE       = APPLICATION
+ # we will specify some additional DEFINEs on the compile command line.
+ #
  [nmake.common]
-   IMAGE_ENTRY_POINT=InitializeReset
+-  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
+   IMAGE_ENTRY_POINT=InitializeEFIHexEditor
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
++  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
    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_BOOTSHELL
  
+-
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: touch/touch.c
-===================================================================
---- touch/touch.c      (revision 64)
-+++ touch/touch.c      (working copy)
-@@ -64,7 +64,7 @@
- //
- // Global Variables
- //
--EFI_HII_HANDLE  HiiHandle;
-+STATIC EFI_HII_HANDLE  HiiHandle;
- EFI_GUID        EfiTouchGuid = EFI_TOUCH_GUID;
- SHELL_VAR_CHECK_ITEM    TouchCheckList[] = {
-   {
-Index: touch/touch.h
-===================================================================
---- touch/touch.h      (revision 64)
-+++ touch/touch.h      (working copy)
-@@ -29,4 +29,4 @@
-     0xa16a4695, 0x5815, 0x4d4f, 0xb8, 0xe, 0x6a, 0xf, 0x88, 0xac, 0xdb, 0x6c \
+  
+\ No newline at end of file
+diff --git a/hexedit/libBufferImage.c b/hexedit/libBufferImage.c
+index 8a91058..2481dd3 100644
+--- a/hexedit/libBufferImage.c
++++ b/hexedit/libBufferImage.c
+@@ -203,6 +203,9 @@ Returns:
+   case MEM_BUFFER:
+     HMemImageBackup ();
+     break;
++
++  case NO_BUFFER:
++    break;
+   }
+   return EFI_SUCCESS;
+@@ -587,7 +590,7 @@ HBufferImageRestoreMousePosition (
+   UINT8                   Value;
+   BOOLEAN                 HighBits;
+-  Line = NULL;
++  Line     = NULL;
+   if (HMainEditor.MouseSupported) {
+     if (HBufferImageMouseNeedRefresh) {
+@@ -610,6 +613,7 @@ HBufferImageRestoreMousePosition (
+       // backup the old screen attributes
+       //
+       Orig                  = HMainEditor.ColorAttributes;
++      New.Data              = 0;
+       New.Colors.Foreground = Orig.Colors.Background;
+       New.Colors.Background = Orig.Colors.Foreground;
+@@ -801,10 +805,10 @@ Returns:
+   UINTN                   StartRow;
+   UINTN                   EndRow;
+   UINTN                   FStartRow;
+-  UINTN                   FEndRow;
+   UINTN                   Tmp;
+   Orig                  = HMainEditor.ColorAttributes;
++  New.Data              = 0;
+   New.Colors.Foreground = Orig.Colors.Background;
+   New.Colors.Background = Orig.Colors.Foreground;
+@@ -870,7 +874,6 @@ Returns:
+       }
+       FStartRow = StartRow;
+-      FEndRow   = EndRow;
+       StartRow  = TEXT_START_ROW + StartRow - HBufferImage.LowVisibleRow;
+       EndRow    = TEXT_START_ROW + EndRow - HBufferImage.LowVisibleRow;
+@@ -980,6 +983,10 @@ HBufferImageRead (
+   case MEM_BUFFER:
+     Status = HMemImageRead (MemOffset, MemSize, Recover);
+     break;
++
++  case NO_BUFFER:
++    Status = EFI_UNSUPPORTED;
++    break;
+   }
+   if (EFI_ERROR (Status)) {
+@@ -1030,6 +1037,10 @@ HBufferImageSave (
+   case MEM_BUFFER:
+     Status = HMemImageSave (MemOffset, MemSize);
+     break;
++
++  case NO_BUFFER:
++    Status = EFI_UNSUPPORTED;
++    break;
    }
  
--#endif
-\ No newline at end of file
-+#endif
-Index: touch/touch.inf
-===================================================================
---- touch/touch.inf    (revision 64)
-+++ touch/touch.inf    (working copy)
-@@ -39,23 +39,23 @@
- COMPONENT_TYPE       = APPLICATION
+   if (EFI_ERROR (Status)) {
+@@ -1967,14 +1978,11 @@ Returns:
+ --*/
+ {
+-  HEFI_EDITOR_LINE  *Line;
+   UINTN             FRow;
+   UINTN             FCol;
+   UINTN             Gap;
+   INTN              Retreat;
+-  Line  = HBufferImage.CurrentLine;
+-
+   FRow  = HBufferImage.BufferPosition.Row;
+   FCol  = HBufferImage.BufferPosition.Column;
+@@ -1996,7 +2004,7 @@ Returns:
+   //
+   // get correct line
+   //
+-  Line = HMoveLine (Retreat);
++  HMoveLine (Retreat);
+   FRow -= Gap;
+@@ -2025,13 +2033,10 @@ Returns:
+ --*/
+ {
+-  HEFI_EDITOR_LINE  *Line;
+   UINTN             FRow;
+   UINTN             FCol;
+   BOOLEAN           HighBits;
+-  Line = HBufferImage.CurrentLine;
+-
+   //
+   // curosr will at the high bit
+   //
+@@ -2157,7 +2162,6 @@ Returns:
+   HEFI_EDITOR_LINE  *Line;
+   EFI_LIST_ENTRY    *Link;
+-  UINTN             StartRow;
+   UINTN             OldFCol;
+   UINTN             OldFRow;
+@@ -2167,11 +2171,6 @@ Returns:
+   EFI_STATUS        Status;
  
- [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./
+-  //
+-  // get the line that start position is at
+-  //
+-  StartRow  = Pos / 0x10;
+-
+   Size      = HBufferImageGetTotalSize ();
  
- [libraries.common]  
-   EfiShellLib
-@@ -70,6 +70,11 @@
+   if (Size < Count) {
+@@ -2300,7 +2299,6 @@ Returns:
+   HEFI_EDITOR_LINE  *Line;
  
- [nmake.common]
-   IMAGE_ENTRY_POINT=InitializeTouch
-+
-+[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-   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_BOOTSHELL
-+
-+[nmake.ARM, nmake.AARCH64]
-+  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: Shell.inf
-===================================================================
---- Shell.inf  (revision 64)
-+++ Shell.inf  (working copy)
-@@ -25,179 +25,189 @@
- COMPONENT_TYPE       = APPLICATION
+   EFI_LIST_ENTRY    *Link;
+-  UINTN             StartRow;
  
- [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  
-+  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  
+   UINTN             OldFCol;
+   UINTN             OldFRow;
+@@ -2308,11 +2306,6 @@ Returns:
  
--  newshell\NshellStrings.uni
--  newshell\init.c
--  newshell\nshell.h
--  newshell\fakehii.c
-+  newshell/NshellStrings.uni
-+  newshell/init.c
-+  newshell/nshell.h
-+  newshell/fakehii.c
+   UINTN             NewPos;
  
-   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/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/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
-+  attrib/AttribStrings.uni
-+  attrib/attrib.c
-+  attrib/attrib.h
+-  //
+-  // get the line that start position is at
+-  //
+-  StartRow  = Pos / 0x10;
+-
+   Size      = HBufferImageGetTotalSize ();
  
--  cls\clsstrings.uni
--  cls\cls.c
-+  cls/clsstrings.uni
-+  cls/cls.c
+   //
+diff --git a/hexedit/libEditor.c b/hexedit/libEditor.c
+index f511020..ac085b7 100644
+--- a/hexedit/libEditor.c
++++ b/hexedit/libEditor.c
+@@ -20,7 +20,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
  
--  cp\CpStrings.uni
--  cp\cp.h
--  cp\cp.c
-+  cp/CpStrings.uni
-+  cp/cp.h
-+  cp/cp.c
-  
--  date\DateStrings.uni
--  date\date.c
--  date\date.h
-+  date/DateStrings.uni
-+  date/date.c
-+  date/date.h
+ --*/
  
--  load\LoadStrings.uni
--  load\load.c
--  load\load.h
-+  load/LoadStrings.uni
-+  load/load.c
-+  load/load.h
+-#include "Heditor.h"
++#include "heditor.h"
+ HEFI_EDITOR_COLOR_ATTRIBUTES    HOriginalColors;
+ INTN                            HOriginalMode;
+@@ -136,7 +136,7 @@ Returns:
+   Status = BS->HandleProtocol (
+                 In,
+                 &gEfiSimplePointerProtocolGuid,
+-                &HMainEditor.MouseInterface
++                (VOID**)&HMainEditor.MouseInterface
+                 );
+   if (EFI_ERROR (Status)) {
+     //
+@@ -159,7 +159,7 @@ Returns:
+         Status = BS->HandleProtocol (
+                       HandleBuffer[Index],
+                       &gEfiSimplePointerProtocolGuid,
+-                      &HMainEditor.MouseInterface
++                      (VOID**)&HMainEditor.MouseInterface
+                       );
+         if (!EFI_ERROR (Status)) {
+           break;
+@@ -182,37 +182,37 @@ Returns:
+   //
+   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;
+   }
  
--  ls\LsStrings.uni
--  ls\ls.h
--  ls\ls.c
-+  ls/LsStrings.uni
-+  ls/ls.h
-+  ls/ls.c
+   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;
+   }
  
--  mkdir\MkdirStrings.uni
--  mkdir\mkdir.c
--  mkdir\mkdir.h
-+  mkdir/MkdirStrings.uni
-+  mkdir/mkdir.c
-+  mkdir/mkdir.h
+   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;
+   }
  
--  mv\MvStrings.uni
--  mv\mv.c
--  mv\mv.h
-+  mv/MvStrings.uni
-+  mv/mv.c
-+  mv/mv.h
-  
--  reset\ResetStrings.uni
--  reset\reset.c
--  reset\reset.h
-+  reset/ResetStrings.uni
-+  reset/reset.c
-+  reset/reset.h
-   
--  rm\RmStrings.uni
--  rm\rm.h
--  rm\rm.c
-+  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
-+  type/TypeStrings.uni
-+  type/type.c
-+  type/type.h
-+  time/TimeStrings.uni
-+  time/time.c
-+  time/time.h
+   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;
+   }
  
--  touch\TouchStrings.uni
--  touch\touch.c
--  touch\touch.h
-+  touch/TouchStrings.uni
-+  touch/touch.c
-+  touch/touch.h
+   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 @@ Returns:
+   //
+   Status = HMainTitleBarCleanup ();
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_TITLEBAR_CLEAN), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_TITLEBAR_CLEAN), gHexEditHiiHandle);
+   }
  
--  vol\VolStrings.uni
--  vol\vol.c
--  vol\vol.h
-+  vol/VolStrings.uni
-+  vol/vol.c
-+  vol/vol.h
+   Status = HMainMenuBarCleanup ();
+   if (EFI_ERROR (Status)) {
+-    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_MENUBAR_CLEAN), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBEDITOR_MENUBAR_CLEAN), gHexEditHiiHandle);
+   }
  
--  ver\VerStrings.uni
--  ver\ver.c
--  ver\ver.h
-+  ver/VerStrings.uni
-+  ver/ver.c
-+  ver/ver.h
-   
--  drivers\driversStrings.uni
--  drivers\drivers.c
--  drivers\drivers.h
-+  drivers/driversStrings.uni
-+  drivers/drivers.c
-+  drivers/drivers.h
-   
--  drvcfg\DrvcfgStrings.uni
--  drvcfg\drvcfg.c
--  drvcfg\drvcfg.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
-  
+   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);
+   }
  
- [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
+   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 @@ Returns:
+         case MEM_BUFFER:
+           OldSize = HBufferImage.MemImage->Size;
+           break;
++
++      default:
++          break;
+         }
  
- [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
+         if (LengthChange == FALSE) {
+diff --git a/hexedit/libInputBar.c b/hexedit/libInputBar.c
+index 3a4cc7e..1cb911f 100644
+--- a/hexedit/libInputBar.c
++++ b/hexedit/libInputBar.c
+@@ -169,8 +169,6 @@ Returns:
+   UINTN                   Size;
+   EFI_STATUS              Status;
+   BOOLEAN                 NoDisplay;
+-  UINTN                   Limit;
+-  UINTN                   PromptLen;
  
- [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
+   //
+   // variable initialization
+@@ -190,6 +188,7 @@ Returns:
+   // back up the old screen attributes
+   //
+   Orig                  = HMainEditor.ColorAttributes;
++  New.Data              = 0;
+   New.Colors.Foreground = Orig.Colors.Background;
+   New.Colors.Background = Orig.Colors.Foreground;
  
- [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
+@@ -201,13 +200,7 @@ Returns:
+   HEditorClearLine (INPUT_BAR_LOCATION);
  
-+[sources.ARM]
-+  ver/ia32/ver32.c
-+  Library/IPF/math.c
-+  Library/IA32/initplat.c
-+
-+[sources.AARCH64]
-+  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)
+   Out->SetCursorPosition (Out, 0, INPUT_BAR_LOCATION - 1);
+-  PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBINPUTBAR_MAININPUTBAR), HiiHandle, HMainInputBar.Prompt);
+-
+-  //
+-  // that's the maximum input length that can be displayed on screen
+-  //
+-  PromptLen = StrLen (HMainInputBar.Prompt);
+-  Limit     = HMainEditor.ScreenSize.Column - PromptLen;
++  PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBINPUTBAR_MAININPUTBAR), gHexEditHiiHandle, HMainInputBar.Prompt);
  
- [libraries.common]
-@@ -216,17 +226,18 @@
- # we will specify some additional DEFINEs on the compile command line.
- #
- [nmake.common]
-+  IMAGE_ENTRY_POINT=InitializeShell
-+
-+[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-   C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
--  IMAGE_ENTRY_POINT=InitializeShell
--  C_STD_FLAGS = $(C_STD_FLAGS) /DEFI_MONOSHELL
-   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
+   //
+   // this is a selection prompt, cursor will stay in edit area
+diff --git a/hexedit/libMemImage.c b/hexedit/libMemImage.c
+index 407bb2e..2fed45b 100644
+--- a/hexedit/libMemImage.c
++++ b/hexedit/libMemImage.c
+@@ -91,7 +91,7 @@ Returns:
+   Status = BS->LocateProtocol (
+                 &gEfiPciRootBridgeIoProtocolGuid,
+                 NULL,
+-                &HMemImage.IoFncs
++                (VOID**)&HMemImage.IoFncs
+                 );
+   if (Status == EFI_NOT_FOUND) {
+     //
+@@ -225,9 +225,6 @@ Returns:
+   CHAR16                          *Str;
+   HEFI_EDITOR_LINE                *Line;
  
-+[nmake.ARM, nmake.AARCH64]
-+  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_MONOSHELL
-+
- [nmake.ebc]
-   EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) /DEFI_MONOSHELL
-   EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) /DSTRING_ARRAY_NAME=$(BASE_NAME)Strings 
-   EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) /DSTRING_DEFINES_FILE=\"$(BASE_NAME)StrDefs.h\"
--
+-  HEFI_EDITOR_ACTIVE_BUFFER_TYPE  BufferTypeBackup;
 -
+-  BufferTypeBackup        = HBufferImage.BufferType;
+   HBufferImage.BufferType = MEM_BUFFER;
+   Buffer                  = AllocatePool (Size);
+@@ -344,8 +341,6 @@ Returns:
+   EFI_STATUS                      Status;
+   VOID                            *Buffer;
+-  HEFI_EDITOR_ACTIVE_BUFFER_TYPE  BufferTypeBackup;
 -
-- 
-\ No newline at end of file
-Index: IfConfig/IfConfig.inf
-===================================================================
---- IfConfig/IfConfig.inf      (revision 64)
-+++ IfConfig/IfConfig.inf      (working copy)
-@@ -25,7 +25,7 @@
- COMPONENT_TYPE       = APPLICATION
+   //
+   // not modified, so directly return
+   //
+@@ -353,7 +348,6 @@ Returns:
+     return EFI_SUCCESS;
+   }
  
- [sources.common]
--  ..\ShCommonStrings.uni
-+  ../ShCommonStrings.uni
-   IfConfigStrings.uni
-   IfConfig.c
-   IfConfig.h
-@@ -33,30 +33,32 @@
-   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./
+-  BufferTypeBackup        = HBufferImage.BufferType;
+   HBufferImage.BufferType = MEM_BUFFER;
  
- [libraries.common]
-   EfiShellLib
-   EdkProtocolLib
-   EfiProtocolLib
-   EdkGuidLib
--  EfiDriverLib
+   Buffer                  = AllocatePool (Size);
+diff --git a/hexedit/libMenuBar.c b/hexedit/libMenuBar.c
+index 5ecb694..00bfa99 100644
+--- a/hexedit/libMenuBar.c
++++ b/hexedit/libMenuBar.c
+@@ -222,7 +222,6 @@ Returns:
+   CHAR16                *NameString;
+   CHAR16                *FunctionKeyString;
+   UINTN                 BufferSize;
+-  EFI_STATUS            Status;
  
- [nmake.common]
--  C_PROJ_FLAGS = $(C_PROJ_FLAGS)
-   IMAGE_ENTRY_POINT=IfConfig
--  C_STD_FLAGS = $(C_STD_FLAGS) /DEFI_BOOTSHELL
-+
-+[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-   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_BOOTSHELL
+   //
+   // variable initialization
+@@ -255,9 +254,9 @@ Returns:
+     FunctionKeyString = AllocatePool (BufferSize);
  
-+[nmake.ARM, nmake.AARCH64]
-+  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: IfConfig/ShellNetHelper.h
-===================================================================
---- IfConfig/ShellNetHelper.h  (revision 64)
-+++ IfConfig/ShellNetHelper.h  (working copy)
-@@ -87,3 +87,4 @@
-   IN  EFI_HANDLE  ChildHandle
- );
+ #if (EFI_SPECIFICATION_VERSION < 0x0002000A)
+-    Status            = Hii->GetString (Hii, HiiHandle, Item->NameToken, FALSE, NULL, &BufferSize, NameString);
++    Hii->GetString (Hii, gHexEditHiiHandle, Item->NameToken, FALSE, NULL, &BufferSize, NameString);
+ #else
+-    Status            = LibGetString (HiiHandle, Item->NameToken, NameString, &BufferSize);
++    LibGetString (gHexEditHiiHandle, Item->NameToken, NameString, &BufferSize);
  #endif
-+
-Index: IfConfig/IfConfig.c
-===================================================================
---- IfConfig/IfConfig.c        (revision 64)
-+++ IfConfig/IfConfig.c        (working copy)
-@@ -29,7 +29,7 @@
- //
- #define NIC_ITEM_CONFIG_SIZE   sizeof (NIC_IP4_CONFIG_INFO) + sizeof (EFI_IP4_ROUTE_TABLE) * 16
  
--EFI_HII_HANDLE  HiiHandle;
-+STATIC EFI_HII_HANDLE  HiiHandle;
+     Width             = max ((StrLen (NameString) + 6), 18);
+@@ -267,9 +266,9 @@ Returns:
+     }
  
- EFI_GUID  EfiIfConfigGuid = EFI_IFCONFIG_GUID;
+ #if (EFI_SPECIFICATION_VERSION < 0x0002000A)
+-    Status = Hii->GetString (Hii, HiiHandle, Item->FunctionKeyToken, FALSE, NULL, &BufferSize, FunctionKeyString);
++    Hii->GetString (Hii, gHexEditHiiHandle, Item->FunctionKeyToken, FALSE, NULL, &BufferSize, FunctionKeyString);
+ #else
+-    Status = LibGetString (HiiHandle, Item->FunctionKeyToken, FunctionKeyString, &BufferSize);
++    LibGetString (gHexEditHiiHandle, Item->FunctionKeyToken, FunctionKeyString, &BufferSize);
+ #endif
+     if (Index >= 10) {
+       PrintAt (Col - 1, Row - 1, L"%E%s%N %H%s%N  ", FunctionKeyString, NameString);
+@@ -1138,7 +1137,6 @@ Returns:
+         // the file won't be saved
+         //
+         return EFI_SUCCESS;
+-        break;
  
-@@ -75,7 +75,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+       case L'c':
+       case L'C':
+@@ -1567,7 +1565,6 @@ Returns:
+ --*/
+ {
+   UINTN             Index;
+-  HEFI_EDITOR_LINE  *Line;
+   EFI_LIST_ENTRY    *Link;
+   UINT8             *Buffer;
+   UINTN             Count;
+@@ -1592,8 +1589,6 @@ Returns:
+     Link = Link->Flink;
    }
- };
  
-@@ -669,7 +669,7 @@
-   Status = BS->LocateProtocol (
-                 &gEfiHiiConfigRoutingProtocolGuid,
-                 NULL,
--                &mHiiConfigRouting
-+                (VOID**)&mHiiConfigRouting
-                 );
-   if (EFI_ERROR (Status)) {
-     return EFI_NOT_FOUND;
-Index: IfConfig/IfConfig.h
-===================================================================
---- IfConfig/IfConfig.h        (revision 64)
-+++ IfConfig/IfConfig.h        (working copy)
-@@ -60,3 +60,4 @@
- } ARP_REQUEST;
+-  Line    = CR (Link, HEFI_EDITOR_LINE, Link, EFI_EDITOR_LINE_LIST);
+-
+   Count   = HMainEditor.SelectEnd - HMainEditor.SelectStart + 1;
+   Buffer  = AllocatePool (Count);
+   if (Buffer == NULL) {
+diff --git a/hexedit/libMisc.h b/hexedit/libMisc.h
+index 979a7f0..5c2216b 100644
+--- a/hexedit/libMisc.h
++++ b/hexedit/libMisc.h
+@@ -20,7 +20,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+ #ifndef _LIB_MISC_H_
+ #define _LIB_MISC_H_
+-#include "Heditortype.h"
++#include "heditortype.h"
+ VOID
+ HEditorClearLine (
+@@ -108,3 +108,4 @@ HXtoi (
+   );
  
  #endif
 +
-Index: edit/libStatusBar.c
-===================================================================
---- edit/libStatusBar.c        (revision 64)
-+++ edit/libStatusBar.c        (working copy)
-@@ -157,11 +157,15 @@
+diff --git a/hexedit/libStatusBar.c b/hexedit/libStatusBar.c
+index 59d3d4b..278b3ba 100644
+--- a/hexedit/libStatusBar.c
++++ b/hexedit/libStatusBar.c
+@@ -173,6 +173,7 @@ Returns:
    // back up the screen attributes
    //
-   Orig                  = MainEditor.ColorAttributes;
+   Orig                  = HMainEditor.ColorAttributes;
 +  New.Data              = 0;
    New.Colors.Foreground = Orig.Colors.Background;
    New.Colors.Background = Orig.Colors.Foreground;
  
-   Out->EnableCursor (Out, FALSE);
--  Out->SetAttribute (Out, New.Data);
-+  Out->SetAttribute (
-+         Out,
-+         EFI_TEXT_ATTR (New.Colors.Foreground, New.Colors.Background)
-+         );
-   //
-   // clear status bar
-@@ -191,7 +195,10 @@
-   //
-   // restore the old screen attributes
+diff --git a/hexedit/libTitleBar.c b/hexedit/libTitleBar.c
+index 9e7b9e9..cf010f5 100644
+--- a/hexedit/libTitleBar.c
++++ b/hexedit/libTitleBar.c
+@@ -166,6 +166,7 @@ Returns:
+   // backup the old screen attributes
    //
--  Out->SetAttribute (Out, Orig.Data);
-+  Out->SetAttribute (
-+         Out,
-+         EFI_TEXT_ATTR (Orig.Colors.Foreground, Orig.Colors.Background)
-+         );
+   Orig                  = HMainEditor.ColorAttributes;
++  New.Data              = 0;
+   New.Colors.Foreground = Orig.Colors.Background;
+   New.Colors.Background = Orig.Colors.Foreground;
  
-   //
-   // restore position in edit area
-Index: edit/libFileBuffer.c
-===================================================================
---- edit/libFileBuffer.c       (revision 64)
-+++ edit/libFileBuffer.c       (working copy)
-@@ -196,8 +196,9 @@
-       // backup the old screen attributes
-       //
-       Orig                  = MainEditor.ColorAttributes;
--      New.Colors.Foreground = Orig.Colors.Background;
--      New.Colors.Background = Orig.Colors.Foreground;
-+      New.Data              = 0;
-+      New.Colors.Foreground = Orig.Colors.Foreground;
-+      New.Colors.Background = Orig.Colors.Background;
+@@ -212,7 +213,7 @@ Returns:
+     // 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 +221,7 @@ Returns:
+     } 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]);
+       }
        //
-       // clear the old mouse position
-@@ -235,10 +236,14 @@
-           Value
+       // print "..."
+@@ -234,14 +235,14 @@ Returns:
+     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]
            );
        }
-+
-       //
-       // set the new mouse position
-       //
--      Out->SetAttribute (Out, New.Data);
-+      Out->SetAttribute (
-+             Out, 
-+             EFI_TEXT_ATTR (New.Colors.Background, New.Colors.Foreground)
-+             );
+@@ -253,7 +254,7 @@ Returns:
  
-       //
-       // clear the old mouse position
-@@ -278,7 +283,10 @@
-       //
-       // end of HasCharacter
-       //
--      Out->SetAttribute (Out, Orig.Data);
-+      Out->SetAttribute (
-+             Out,
-+             EFI_TEXT_ATTR (Orig.Colors.Foreground, Orig.Colors.Background)
-+             );
-     }
-     //
-     // end of MouseNeedRefresh
-@@ -768,7 +776,7 @@
-   Handle        = NULL;
-   FileSize      = 0;
-   UnicodeBuffer = NULL;
--  Type          = 0;
-+  Type          = DEFAULT_TYPE;
+     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 +270,7 @@ Returns:
+   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 +281,26 @@ Returns:
  
-   //
-   // in this function, when you return error ( except EFI_OUT_OF_RESOURCES )
-@@ -2624,15 +2632,9 @@
-   VOID
-   )
- {
--  EFI_EDITOR_LINE *Line;
-   UINTN           FRow;
-   UINTN           FCol;
+     break;
  
--  //
--  // go to the first column of the line
--  //
--  Line  = FileBuffer.CurrentLine;
--
-   FRow  = FileBuffer.FilePosition.Row;
-   FCol  = 1;
++  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;
  
-Index: edit/libtitlebar.h
-===================================================================
---- edit/libtitlebar.h (revision 64)
-+++ edit/libtitlebar.h (working copy)
-@@ -46,3 +46,4 @@
-   );
+   case DISK_BUFFER:
+-    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBTITLEBAR_DISK), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBTITLEBAR_DISK), gHexEditHiiHandle);
+     break;
  
- #endif
+   case MEM_BUFFER:
+-    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBTITLEBAR_MEM), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_HEXEDIT_LIBTITLEBAR_MEM), gHexEditHiiHandle);
++    break;
 +
-Index: edit/libstatusbar.h
-===================================================================
---- edit/libstatusbar.h        (revision 64)
-+++ edit/libstatusbar.h        (working copy)
-@@ -53,3 +53,4 @@
++  default:
+     break;
+   }
+   //
+diff --git a/hexedit/libbufferimage.h b/hexedit/libbufferimage.h
+index 71b48c2..ed8c673 100644
+--- a/hexedit/libbufferimage.h
++++ b/hexedit/libbufferimage.h
+@@ -253,3 +253,4 @@ HBufferImageIsInSelectedArea (
    );
  
  #endif
 +
-Index: edit/libfilebuffer.h
-===================================================================
---- edit/libfilebuffer.h       (revision 64)
-+++ edit/libfilebuffer.h       (working copy)
-@@ -209,3 +209,4 @@
+diff --git a/hexedit/libclipboard.h b/hexedit/libclipboard.h
+index 1604fc5..766f089 100644
+--- a/hexedit/libclipboard.h
++++ b/hexedit/libclipboard.h
+@@ -43,3 +43,4 @@ HClipBoardGet (
    );
  
  #endif
 +
-Index: edit/libInputBar.c
-===================================================================
---- edit/libInputBar.c (revision 64)
-+++ edit/libInputBar.c (working copy)
-@@ -141,8 +141,6 @@
-   UINTN                   Size;
-   EFI_STATUS              Status;
-   BOOLEAN                 NoDisplay;
--  UINTN                   Limit;
--  UINTN                   PromptLen;
-   //
-   // variable initialization
-@@ -162,10 +160,14 @@
-   // back up the old screen attributes
-   //
-   Orig                  = MainEditor.ColorAttributes;
-+  New.Data              = 0;
-   New.Colors.Foreground = Orig.Colors.Background;
-   New.Colors.Background = Orig.Colors.Foreground;
--  Out->SetAttribute (Out, New.Data);
-+  Out->SetAttribute (
-+         Out,
-+         EFI_TEXT_ATTR (New.Colors.Foreground, New.Colors.Background)
-+         );
-   //
-   // clear input bar
-@@ -173,22 +175,19 @@
-   EditorClearLine (INPUT_BAR_LOCATION);
+diff --git a/hexedit/libdiskimage.c b/hexedit/libdiskimage.c
+index 7e11ad0..5b67a76 100644
+--- a/hexedit/libdiskimage.c
++++ b/hexedit/libdiskimage.c
+@@ -228,11 +228,7 @@ Returns:
+   UINTN                           Bytes;
  
-   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);
+   HEFI_EDITOR_LINE                *Line;
+-  UINT64                          ByteOffset;
  
-   //
--  // that's the maximum input length that can be displayed on screen
--  //
--  PromptLen = StrLen (MainInputBar.Prompt);
--  Limit     = MainEditor.ScreenSize.Column - PromptLen;
+-  HEFI_EDITOR_ACTIVE_BUFFER_TYPE  BufferTypeBackup;
 -
--  //
-   // this is a selection prompt, cursor will stay in edit area
-   // actually this is for search , search/replace
-   //
-   if (StrStr (MainInputBar.Prompt, L"Yes/No")) {
-     NoDisplay = TRUE;
-     FileBufferRestorePosition ();
--    Out->SetAttribute (Out, Orig.Data);
-+    Out->SetAttribute (
-+           Out,
-+           EFI_TEXT_ATTR (Orig.Colors.Foreground, Orig.Colors.Background)
-+           );
-   } else {
-     NoDisplay = FALSE;
-   }
-@@ -265,7 +264,10 @@
-   //
-   // restore screen attributes
-   //
--  Out->SetAttribute (Out, Orig.Data);
-+  Out->SetAttribute (
-+         Out,
-+         EFI_TEXT_ATTR (Orig.Colors.Foreground, Orig.Colors.Background)
-+         );
-   StatusBarNeedRefresh = TRUE;
-Index: edit/libEditor.c
-===================================================================
---- edit/libEditor.c   (revision 64)
-+++ edit/libEditor.c   (working copy)
-@@ -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;
-   }
+-  BufferTypeBackup        = HBufferImage.BufferType;
+   HBufferImage.BufferType = DISK_BUFFER;
  
-   Status = MainInputBarInit ();
+   DevicePath              = (EFI_DEVICE_PATH_PROTOCOL *) ShellGetMap (DeviceName);
+@@ -246,7 +242,7 @@ Returns:
+   Status = LibDevicePathToInterface (
+             &gEfiBlockIoProtocolGuid,
+             DevicePath,
+-            &BlkIo
++            (VOID**)&BlkIo
+             );
    if (EFI_ERROR (Status)) {
--    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_INPUTBAR), HiiHandle);
-+    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_INPUTBAR), gEditHiiHandle);
-     return EFI_LOAD_ERROR;
+     HMainStatusBarSetStatusString (L"Read Disk Failed");
+@@ -269,8 +265,6 @@ Returns:
+     return EFI_OUT_OF_RESOURCES;
    }
  
-   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;
-   }
+-  ByteOffset = MultU64x32 (Offset, BlkIo->Media->BlockSize);
+-
    //
-@@ -234,27 +234,27 @@
+   // read from disk
    //
-   Status = MainTitleBarCleanup ();
-   if (EFI_ERROR (Status)) {
--    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_TILEBAR_CLEANUP), HiiHandle);
-+    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_TILEBAR_CLEANUP), gEditHiiHandle);
-   }
+@@ -405,10 +399,6 @@ Returns:
+   VOID                            *Buffer;
+   UINTN                           Bytes;
  
-   Status = MainMenuBarCleanup ();
-   if (EFI_ERROR (Status)) {
--    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_MENUBAR_CLEANUP), HiiHandle);
-+    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_MENUBAR_CLEANUP), gEditHiiHandle);
+-  UINT64                          ByteOffset;
+-
+-  HEFI_EDITOR_ACTIVE_BUFFER_TYPE  BufferTypeBackup;
+-
+   //
+   // if not modified, directly return
+   //
+@@ -416,7 +406,6 @@ Returns:
+     return EFI_SUCCESS;
    }
  
-   Status = MainStatusBarCleanup ();
-   if (EFI_ERROR (Status)) {
--    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_STATUSBAR_CLEANUP), HiiHandle);
-+    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_STATUSBAR_CLEANUP), gEditHiiHandle);
-   }
+-  BufferTypeBackup        = HBufferImage.BufferType;
+   HBufferImage.BufferType = DISK_BUFFER;
  
-   Status = MainInputBarCleanup ();
+   DevicePath              = (EFI_DEVICE_PATH_PROTOCOL *) ShellGetMap (DeviceName);
+@@ -427,7 +416,7 @@ Returns:
+   Status = LibDevicePathToInterface (
+             &gEfiBlockIoProtocolGuid,
+             DevicePath,
+-            &BlkIo
++            (VOID**)&BlkIo
+             );
    if (EFI_ERROR (Status)) {
--    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_INPUTBAR_CLEANUP), HiiHandle);
-+    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_INPUTBAR_CLEANUP), gEditHiiHandle);
+     return Status;
+@@ -448,8 +437,6 @@ Returns:
+     return Status;
    }
  
-   Status = FileBufferCleanup ();
-   if (EFI_ERROR (Status)) {
--    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_FILEBUFFER_CLEANUP), HiiHandle);
-+    PrintToken (STRING_TOKEN (STR_EDIT_LIBEDITOR_FILEBUFFER_CLEANUP), gEditHiiHandle);
-   }
+-  ByteOffset = MultU64x32 (Offset, BlkIo->Media->BlockSize);
+-
    //
-   // restore old mode
-Index: edit/edit.inf
-===================================================================
---- edit/edit.inf      (revision 64)
-+++ edit/edit.inf      (working copy)
-@@ -25,7 +25,7 @@
- COMPONENT_TYPE       = APPLICATION
- [sources.common]
-- ..\ShCommonStrings.uni
-+ ../ShCommonStrings.uni
-  EditStrings.uni
-  editor.h
-  editortype.h
-@@ -41,17 +41,17 @@
+   // write the buffer to disk
+   //
+diff --git a/hexedit/libdiskimage.h b/hexedit/libdiskimage.h
+index 505c857..4effe6c 100644
+--- a/hexedit/libdiskimage.h
++++ b/hexedit/libdiskimage.h
+@@ -58,3 +58,4 @@ HDiskImageSave (
+   );
  
- [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./
+ #endif
++
+diff --git a/hexedit/libeditor.h b/hexedit/libeditor.h
+index 6c2e3d9..573eca6 100644
+--- a/hexedit/libeditor.h
++++ b/hexedit/libeditor.h
+@@ -47,3 +47,4 @@ HMainEditorBackup (
+   );
  
- [libraries.common]  
-   EfiShellLib
-@@ -70,11 +70,13 @@
- # we will specify some additional DEFINEs on the compile command line.
- #
- [nmake.common]
-+  IMAGE_ENTRY_POINT=InitializeEFIEditor
+ #endif
 +
-+[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-   C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
--  IMAGE_ENTRY_POINT=InitializeEFIEditor
-   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_BOOTSHELL
+diff --git a/hexedit/libfileimage.h b/hexedit/libfileimage.h
+index baff90c..5ae42b3 100644
+--- a/hexedit/libfileimage.h
++++ b/hexedit/libfileimage.h
+@@ -59,3 +59,4 @@ HFileImageSave (
+   );
  
--
-- 
-\ No newline at end of file
-+[nmake.ARM, nmake.AARCH64]
-+  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: edit/libMenuBar.c
-===================================================================
---- edit/libMenuBar.c  (revision 64)
-+++ edit/libMenuBar.c  (working copy)
-@@ -189,7 +189,6 @@
-   CHAR16                *NameString;
-   CHAR16                *FunctionKeyString;
-   UINTN                 BufferSize;
--  EFI_STATUS            Status;
+ #endif
++
+diff --git a/hexedit/libinputbar.h b/hexedit/libinputbar.h
+index 24a8973..f7f14ca 100644
+--- a/hexedit/libinputbar.h
++++ b/hexedit/libinputbar.h
+@@ -44,3 +44,4 @@ HMainInputBarSetStringSize (
+   );
  
-   //
-   // variable initialization
-@@ -220,9 +219,9 @@
-     FunctionKeyString = AllocatePool (BufferSize);
+ #endif
++
+diff --git a/hexedit/libmemimage.h b/hexedit/libmemimage.h
+index 98c0c08..7cae8b7 100644
+--- a/hexedit/libmemimage.h
++++ b/hexedit/libmemimage.h
+@@ -55,3 +55,4 @@ HMemImageSave (
+   );
  
- #if (EFI_SPECIFICATION_VERSION < 0x0002000A)
--    Status            = Hii->GetString (Hii, HiiHandle, Item->NameToken, FALSE, NULL, &BufferSize, NameString);
-+    Hii->GetString (Hii, gEditHiiHandle, Item->NameToken, FALSE, NULL, &BufferSize, NameString);
- #else
--    Status            = LibGetString (HiiHandle, Item->NameToken, NameString, &BufferSize);
-+    LibGetString (gEditHiiHandle, Item->NameToken, NameString, &BufferSize);
  #endif
++
+diff --git a/hexedit/libmenubar.h b/hexedit/libmenubar.h
+index e3766e2..2ee2033 100644
+--- a/hexedit/libmenubar.h
++++ b/hexedit/libmenubar.h
+@@ -20,7 +20,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+ #ifndef _LIB_MENU_BAR_H_
+ #define _LIB_MENU_BAR_H_
  
-     Width             = max ((StrLen (NameString) + 6), 20);
-@@ -232,9 +231,9 @@
-     }
+-#include "Heditortype.h"
++#include "heditortype.h"
  
- #if (EFI_SPECIFICATION_VERSION < 0x0002000A)
--    Status = Hii->GetString (Hii, HiiHandle, Item->FunctionKeyToken, FALSE, NULL, &BufferSize, FunctionKeyString);
-+    Hii->GetString (Hii, gEditHiiHandle, Item->FunctionKeyToken, FALSE, NULL, &BufferSize, FunctionKeyString);
- #else
--    Status = LibGetString (HiiHandle, Item->FunctionKeyToken, FunctionKeyString, &BufferSize);
-+    LibGetString (gEditHiiHandle, Item->FunctionKeyToken, FunctionKeyString, &BufferSize);
- #endif    
-     PrintAt (Col - 1, Row - 1, L"%E%s%N  %H%s%N  ", FunctionKeyString, NameString);
+ EFI_STATUS
+ HMainMenuBarInit (
+@@ -94,3 +94,4 @@ HMainCommandExit (
+   );
  
-Index: edit/libinputbar.h
-===================================================================
---- edit/libinputbar.h (revision 64)
-+++ edit/libinputbar.h (working copy)
-@@ -44,3 +44,4 @@
+ #endif
++
+diff --git a/hexedit/libstatusbar.h b/hexedit/libstatusbar.h
+index eade183..6ee05a3 100644
+--- a/hexedit/libstatusbar.h
++++ b/hexedit/libstatusbar.h
+@@ -55,3 +55,4 @@ HMainStatusBarBackup (
    );
  
  #endif
 +
-Index: edit/libeditor.h
-===================================================================
---- edit/libeditor.h   (revision 64)
-+++ edit/libeditor.h   (working copy)
-@@ -52,3 +52,4 @@
+diff --git a/hexedit/libtitlebar.h b/hexedit/libtitlebar.h
+index b6045ab..948cd43 100644
+--- a/hexedit/libtitlebar.h
++++ b/hexedit/libtitlebar.h
+@@ -46,3 +46,4 @@ HMainTitleBarBackup (
    );
  
  #endif
 +
-Index: edit/main.c
-===================================================================
---- edit/main.c        (revision 64)
-+++ edit/main.c        (working copy)
-@@ -34,7 +34,7 @@
+diff --git a/hexedit/main.c b/hexedit/main.c
+index 9c2a032..43340d8 100644
+--- a/hexedit/main.c
++++ b/hexedit/main.c
+@@ -27,7 +27,7 @@ extern UINT8      STRING_ARRAY_NAME[];
  //
  // Global Variables
  //
 -EFI_HII_HANDLE    HiiHandle;
-+EFI_HII_HANDLE    gEditHiiHandle;
++EFI_HII_HANDLE    gHexEditHiiHandle;
  #if (EFI_SPECIFICATION_VERSION < 0x0002000A)
  EFI_HII_PROTOCOL  *Hii;
  #endif
-@@ -56,7 +56,7 @@
+@@ -67,7 +67,7 @@ SHELL_VAR_CHECK_ITEM    HexeditCheckList[] = {
      NULL,
      0,
      0,
 -    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
++    (SHELL_VAR_CHECK_FLAG_TYPE)0
    }
  };
  
-@@ -121,13 +121,13 @@
-   //
-   // There should only be one HII protocol
-   //
--  Status = LibLocateProtocol (&gEfiHiiProtocolGuid, &Hii);
-+  Status = LibLocateProtocol (&gEfiHiiProtocolGuid, (VOID**)&Hii);
-   if (EFI_ERROR (Status) || NULL == Hii) {
-     return EFI_ABORTED;
-   }
- #endif
+@@ -93,10 +93,10 @@ PrintUsage (
+   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");
+ }
  
--  Status = LibInitializeStrings (&HiiHandle, STRING_ARRAY_NAME, &EfiEditGuid);
-+  Status = LibInitializeStrings (&gEditHiiHandle, STRING_ARRAY_NAME, &EfiEditGuid);
+@@ -147,7 +147,7 @@ Returns:
+   EFI_SHELL_APP_INIT (ImageHandle, SystemTable);
  
+ #if (EFI_SPECIFICATION_VERSION < 0x0002000A)
+-  Status = LibLocateProtocol (&gEfiHiiProtocolGuid, &Hii);
++  Status = LibLocateProtocol (&gEfiHiiProtocolGuid, (VOID**)&Hii);
    if (EFI_ERROR (Status)) {
      return Status;
-@@ -137,7 +137,7 @@
-   if (VarCheckOk != RetCode) {
+   }
+@@ -158,12 +158,12 @@ Returns:
+   // 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
+       );
+@@ -187,17 +187,17 @@ Returns:
      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"edit", Useful);
-+      PrintToken (STRING_TOKEN (STR_SHELLENV_GNC_UNKNOWN_FLAG), gEditHiiHandle, L"edit", Useful);
+-      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:
-@@ -161,10 +161,10 @@
+@@ -220,10 +220,10 @@ Returns:
          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");
+-      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_EDIT_VERBOSE_HELP), HiiHandle);
-+      PrintToken (STRING_TOKEN (STR_EDIT_VERBOSE_HELP), gEditHiiHandle);
+-      PrintToken (STRING_TOKEN (STR_HEXEDIT_VERBOSE_HELP), HiiHandle);
++      PrintToken (STRING_TOKEN (STR_HEXEDIT_VERBOSE_HELP), gHexEditHiiHandle);
        Status = EFI_SUCCESS;
      }
  
-@@ -172,21 +172,21 @@
-   }
+@@ -233,13 +233,13 @@ Returns:
+   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 (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 (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;
+     }
+@@ -249,7 +249,7 @@ Returns:
+     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;
+     }
+@@ -257,13 +257,13 @@ Returns:
+     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;
+     }
+@@ -274,13 +274,13 @@ Returns:
+   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;
+     }
+@@ -288,7 +288,7 @@ Returns:
+     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;
+     }
+@@ -296,20 +296,20 @@ Returns:
+     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;
+     }
+@@ -319,13 +319,13 @@ Returns:
+   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;
+     }
+@@ -333,7 +333,7 @@ Returns:
+     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,20 +345,20 @@ Returns:
+       if (Name != NULL) {
+         FreeName  = TRUE;
+       } else {
+-        PrintToken(STRING_TOKEN (STR_HEXEDIT_INVALID_DIRECTORY), HiiHandle, L"hexedit");
++        PrintToken(STRING_TOKEN (STR_HEXEDIT_INVALID_DIRECTORY), gHexEditHiiHandle, L"hexedit");
+         Status = EFI_INVALID_PARAMETER;
+         goto done ;
+       }
+     } 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 (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);
+     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;
      }
+@@ -367,7 +367,7 @@ Returns:
    }
  
    if (SI->RedirArgc != 0) {
--    PrintToken (STRING_TOKEN (STR_EDIT_NOREDIRECT), HiiHandle);
-+    PrintToken (STRING_TOKEN (STR_EDIT_NOREDIRECT), gEditHiiHandle);
+-    PrintToken (STRING_TOKEN (STR_HEXEDIT_NOREDIRECT), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_HEXEDIT_NOREDIRECT), gHexEditHiiHandle);
      Status = EFI_INVALID_PARAMETER;
      goto done;
    }
-@@ -195,7 +195,7 @@
+@@ -376,7 +376,7 @@ Returns:
    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);
+-    PrintToken (STRING_TOKEN (STR_HEXEDIT_INIT_FAILED), HiiHandle);
++    PrintToken (STRING_TOKEN (STR_HEXEDIT_INIT_FAILED), gHexEditHiiHandle);
      goto done;
    }
  
-@@ -240,19 +240,19 @@
+@@ -421,7 +421,9 @@ Returns:
+               FALSE
+               );
+     break;
+-
++  case NEW_FILE:
++    Status = EFI_UNSUPPORTED;
++    break;
+   }
+   if (!EFI_ERROR (Status)) {
+@@ -453,19 +455,19 @@ Returns:
    //
    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");
+-    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_EDIT_MAIN_BUFFER), HiiHandle, Buffer);
-+        PrintToken (STRING_TOKEN (STR_EDIT_MAIN_BUFFER), gEditHiiHandle, Buffer);
+-        PrintToken (STRING_TOKEN (STR_HEXEDIT_ONE_VAR), HiiHandle, Buffer);
++        PrintToken (STRING_TOKEN (STR_HEXEDIT_ONE_VAR), gHexEditHiiHandle, 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);
-     }
-   }
-Index: edit/libmenubar.h
-===================================================================
---- edit/libmenubar.h  (revision 64)
-+++ edit/libmenubar.h  (working copy)
-@@ -85,3 +85,4 @@
-   );
- #endif
-+
-Index: edit/libMisc.h
-===================================================================
---- edit/libMisc.h     (revision 64)
-+++ edit/libMisc.h     (working copy)
-@@ -96,3 +96,4 @@
-   ) ;
- #endif
-+
-Index: edit/editor.h
-===================================================================
---- edit/editor.h      (revision 64)
-+++ edit/editor.h      (working copy)
-@@ -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,9 +43,10 @@
- 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
- #endif // _EFI_EDITOR_H_
-+
-Index: edit/libTitleBar.c
-===================================================================
---- edit/libTitleBar.c (revision 64)
-+++ edit/libTitleBar.c (working copy)
-@@ -120,10 +120,15 @@
-   // backup the old screen attributes
-   //
-   Orig                  = MainEditor.ColorAttributes;
-+
-+  New.Data              = 0;
-   New.Colors.Foreground = Orig.Colors.Background;
-   New.Colors.Background = Orig.Colors.Foreground;
--  Out->SetAttribute (Out, New.Data);
-+  Out->SetAttribute (
-+         Out,
-+         EFI_TEXT_ATTR (New.Colors.Foreground, New.Colors.Background)
-+         );
-   //
-   // clear the old title bar
-@@ -142,7 +147,10 @@
-     );
-   if (MainEditor.FileBuffer->FileName == NULL) {
--    Out->SetAttribute (Out, Orig.Data);
-+    Out->SetAttribute (
-+           Out,
-+           EFI_TEXT_ATTR (Orig.Colors.Foreground, Orig.Colors.Background)
-+           );
-     FileBufferRestorePosition ();
-     return EFI_SUCCESS;
-   }
-@@ -204,7 +212,10 @@
-   //
-   // restore the old attribute
-   //
--  Out->SetAttribute (Out, Orig.Data);
-+  Out->SetAttribute (
-+         Out,
-+         EFI_TEXT_ATTR (Orig.Colors.Foreground, Orig.Colors.Background)
-+         );
-   //
-   // restore edit area cursor position
-Index: edit/editortype.h
-===================================================================
---- edit/editortype.h  (revision 64)
-+++ edit/editortype.h  (working copy)
-@@ -28,7 +28,7 @@
- #define EDITOR_NAME           L"EFI Editor\0"
- #define EDITOR_VERSION        L"0.99\0"
--#define EFI_EDITOR_LINE_LIST  'eell'
-+#define EFI_EDITOR_LINE_LIST  EFI_SIGNATURE_32 ('e','e','l','l')
- #define INSERT_MODE_STR       L"INS"
- #define OVERWR_MODE_STR       L"OVR"
-@@ -149,8 +149,8 @@
- } EFI_EDITOR_MENU_ITEM;
- typedef struct {
--  UINT32  Foreground : 4;
--  UINT32  Background : 4;
-+  UINT8  Foreground : 4;
-+  UINT8  Background : 4;
- } EFI_EDITOR_COLOR_ATTRIBUTES;
- typedef union {
-@@ -223,3 +223,4 @@
- } EFI_EDITOR_GLOBAL_EDITOR;
- #endif
-+
-Index: SmbiosView/EventLogInfo.c
-===================================================================
---- SmbiosView/EventLogInfo.c  (revision 64)
-+++ SmbiosView/EventLogInfo.c  (working copy)
-@@ -25,7 +25,7 @@
- #include "PrintInfo.h"
- #include "QueryTable.h"
- #include "EventLogInfo.h"
--#include "smbios.h"
-+#include "Smbios.h"
- #include STRING_DEFINES_FILE
- VOID
-Index: SmbiosView/Smbios.h
-===================================================================
---- SmbiosView/Smbios.h        (revision 64)
-+++ SmbiosView/Smbios.h        (working copy)
-@@ -37,3 +37,4 @@
- #endif
-+
-Index: SmbiosView/EventLogInfo.h
-===================================================================
---- SmbiosView/EventLogInfo.h  (revision 64)
-+++ SmbiosView/EventLogInfo.h  (working copy)
-@@ -85,3 +85,4 @@
-   );
- #endif
-+
-Index: SmbiosView/PrintInfo.c
-===================================================================
---- SmbiosView/PrintInfo.c     (revision 64)
-+++ SmbiosView/PrintInfo.c     (working copy)
-@@ -26,7 +26,7 @@
- #include "LibSmbiosView.h"
- #include "QueryTable.h"
- #include "EventLogInfo.h"
--#include "smbios.h"
-+#include "Smbios.h"
- #include STRING_DEFINES_FILE
- //
-Index: SmbiosView/PrintInfo.h
-===================================================================
---- SmbiosView/PrintInfo.h     (revision 64)
-+++ SmbiosView/PrintInfo.h     (working copy)
-@@ -199,3 +199,4 @@
-   );
- #endif
-+
-Index: SmbiosView/QueryTable.c
-===================================================================
---- SmbiosView/QueryTable.c    (revision 64)
-+++ SmbiosView/QueryTable.c    (working copy)
-@@ -23,7 +23,7 @@
- #include "EfiShellLib.h"
- #include "QueryTable.h"
- #include "PrintInfo.h"
--#include "smbios.h"
-+#include "Smbios.h"
- #include STRING_DEFINES_FILE
-Index: SmbiosView/LibSmbiosView.c
-===================================================================
---- SmbiosView/LibSmbiosView.c (revision 64)
-+++ SmbiosView/LibSmbiosView.c (working copy)
-@@ -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,7 +62,7 @@
-   //
-   // 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);
-@@ -110,13 +110,13 @@
- VOID
- LibSmbiosGetStructHead (
--  SMBIOS_STRUCTURE_POINTER *pHead
-+  SMBIOS_STRUCTURE_POINTER **pHead
-   )
- {
-   //
-   // return SMBIOS structure table address
-   //
--  pHead = mSmbiosStruct;
-+  *pHead = mSmbiosStruct;
- }
- EFI_STATUS
-Index: SmbiosView/Smbiosview.inf
-===================================================================
---- SmbiosView/Smbiosview.inf  (revision 64)
-+++ SmbiosView/Smbiosview.inf  (working copy)
-@@ -25,7 +25,7 @@
- COMPONENT_TYPE       = APPLICATION
- [sources.common]
--  ..\ShCommonStrings.uni
-+  ../ShCommonStrings.uni
-   SmBiosViewStrings.uni
-   QueryTable.c
-   QueryTable.h
-@@ -43,19 +43,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)/Applicatio./Shels/Inc
-+  $(EFI_SOURCE)/Applicatio./Shels/Library
- [libraries.common]  
-   EfiShellLib
-@@ -70,7 +70,12 @@
- [nmake.common]
-   IMAGE_ENTRY_POINT=InitializeSmbiosViewApplication
-+
-+[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-   L_PROJ_FLAGS=/align:4096
-   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_BOOTSHELL
-+
-+[nmake.ARM, nmake.AARCH64]
-+  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: SmbiosView/QueryTable.h
-===================================================================
---- SmbiosView/QueryTable.h    (revision 64)
-+++ SmbiosView/QueryTable.h    (working copy)
-@@ -437,3 +437,4 @@
-   );
+-        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 --git a/inc/shellenv.h b/inc/shellenv.h
+index 1334f2c..10b28c9 100644
+--- a/inc/shellenv.h
++++ b/inc/shellenv.h
+@@ -492,3 +492,4 @@ UnInstallShellEnvironment (
  #endif
+ #endif // _SHELLENV_H_
 +
-Index: SmbiosView/LibSmbiosView.h
-===================================================================
---- SmbiosView/LibSmbiosView.h (revision 64)
-+++ SmbiosView/LibSmbiosView.h (working copy)
-@@ -66,7 +66,7 @@
+diff --git a/inc/shelltypes.h b/inc/shelltypes.h
+index 1b6cc38..36de6c7 100644
+--- a/inc/shelltypes.h
++++ b/inc/shelltypes.h
+@@ -36,7 +36,7 @@ extern "C"
+ #endif
  
- VOID
- LibSmbiosGetStructHead (
--  SMBIOS_STRUCTURE_POINTER *pHead
-+  SMBIOS_STRUCTURE_POINTER **pHead
-   );
+ #include "Tiano.h"
+-#include "linkedlist.h"
++#include "LinkedList.h"
  
- EFI_STATUS
-@@ -128,3 +128,4 @@
-   );
+ #include EFI_PROTOCOL_DEFINITION (FileInfo)
+ #include EFI_PROTOCOL_DEFINITION (SimpleFileSystem)
+@@ -183,3 +183,4 @@ typedef struct {
+ #endif
  
  #endif
 +
-Index: SmbiosView/smbiosview.c
-===================================================================
---- SmbiosView/smbiosview.c    (revision 64)
-+++ SmbiosView/smbiosview.c    (working copy)
-@@ -26,7 +26,7 @@
- #include "smbiosview.h"
- #include "PrintInfo.h"
- #include "QueryTable.h"
--#include "smbios.h"
-+#include "Smbios.h"
- extern UINT8                STRING_ARRAY_NAME[];
-@@ -88,7 +88,7 @@
+diff --git a/load/load.c b/load/load.c
+index 44247cc..b268c58 100644
+--- a/load/load.c
++++ b/load/load.c
+@@ -60,7 +60,7 @@ SHELL_VAR_CHECK_ITEM    LoadCheckList[] = {
      NULL,
      0,
      0,
 -    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE)0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
    }
  };
  
-Index: SmbiosView/LibSmbios.h
-===================================================================
---- SmbiosView/LibSmbios.h     (revision 64)
-+++ SmbiosView/LibSmbios.h     (working copy)
-@@ -642,3 +642,4 @@
+diff --git a/load/load.h b/load/load.h
+index 477c816..746aa89 100644
+--- a/load/load.h
++++ b/load/load.h
+@@ -33,3 +33,4 @@ Revision History
+   }
  
  #endif
 +
-Index: SmbiosView/smbiosview.h
-===================================================================
---- SmbiosView/smbiosview.h    (revision 64)
-+++ SmbiosView/smbiosview.h    (working copy)
-@@ -84,3 +84,4 @@
- extern UINT8  gShowType;
+diff --git a/load/load.inf b/load/load.inf
+index 3ba1dbf..6d1785d 100644
+--- a/load/load.inf
++++ b/load/load.inf
+@@ -39,23 +39,23 @@ FILE_GUID            = 5B93B225-2E47-4a61-8EE5-B8EA42EE3EA8
+ COMPONENT_TYPE       = APPLICATION
  
- #endif
-+
-Index: guid/guid.inf
-===================================================================
---- guid/guid.inf      (revision 64)
-+++ guid/guid.inf      (working copy)
-@@ -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
+   LoadStrings.uni
+   load.c
+     
  [includes.common]
    .
 -  ..\Inc
@@ -6500,82 +6603,110 @@ Index: guid/guid.inf
 +  $(EDK_SOURCE)/Foundation/FrameWork/Include
 +  $(EDK_SOURCE)/Foundation/Core/Dxe
 +  $(DEST_DIR./
- [libraries.common]
+ [libraries.common]  
    EfiShellLib
-   EdkProtocolLib
-@@ -63,8 +63,15 @@
-   EdkGuidLib
-   EdkFrameworkGuidLib
-   EfiGuidLib
-+
+@@ -70,6 +70,11 @@ COMPONENT_TYPE       = APPLICATION
  [nmake.common]
-   IMAGE_ENTRY_POINT=GuidMain
--  C_STD_FLAGS = $(C_STD_FLAGS) /DSTRING_ARRAY_NAME=$(BASE_NAME)Strings
+   IMAGE_ENTRY_POINT=InitializeLoad
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-+  C_STD_FLAGS = $(C_STD_FLAGS) /DSTRING_ARRAY_NAME=$(BASE_NAME)Strings 
+   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_BOOTSHELL
 +
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-+ 
-\ No newline at end of file
-Index: guid/guid.c
-===================================================================
---- guid/guid.c        (revision 64)
-+++ guid/guid.c        (working copy)
-@@ -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[] = {
-   {
-@@ -55,7 +55,7 @@
+diff --git a/ls/ls.c b/ls/ls.c
+index bfb4f9c..0d731d7 100644
+--- a/ls/ls.c
++++ b/ls/ls.c
+@@ -59,7 +59,7 @@ SHELL_VAR_CHECK_ITEM    LsCheckList[] = {
      NULL,
      0,
      0,
 -    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE)0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
    }
  };
  
-Index: guid/guid.h
-===================================================================
---- guid/guid.h        (revision 64)
-+++ guid/guid.h        (working copy)
-@@ -31,4 +31,4 @@
-     0x425bff44, 0x1cae, 0x4c27, 0x98, 0x2c, 0x25, 0xc8, 0x74, 0x59, 0xdf, 0xd6 \
-   }
+@@ -199,7 +199,6 @@ Returns:
+   CHAR16                  *PtrTwo;
+   CHAR16                  *Path;
+   EFI_LIST_ENTRY          DirList;
+-  EFI_LIST_ENTRY          *Link;
+   SHELL_FILE_ARG          *Arg;
+   BOOLEAN                 WildcardsEncountered;
+   CHAR16                  *Pattern;
+@@ -210,7 +209,6 @@ Returns:
+   Argv    = SI->Argv;
+   PtrTwo  = NULL;
+   InitializeListHead (&DirList);
+-  Link                = NULL;
+   Arg                 = NULL;
+   Pattern             = NULL;
+   Status              = EFI_SUCCESS;
+@@ -815,8 +813,6 @@ GetPattern (
+   CHAR16 *Path
+   )
+ {
+-
+-  EFI_STATUS  Status;
+   CHAR16      *PtrOne;
+   CHAR16      *PtrTwo;
+   UINTN       Index1;
+@@ -825,7 +821,6 @@ GetPattern (
+   BOOLEAN     LeadingBlanks;
+   LeadingBlanks = TRUE;
+-  Status        = EFI_SUCCESS;
+   for (PtrOne = PtrTwo = Path; PtrOne < Path + StrLen (Path); PtrOne++) {
+     if ((*PtrOne) == ' ' && LeadingBlanks) {
+@@ -917,14 +912,14 @@ IsMatch (
+   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) &&
+       (mAttribH ? (Info->Attribute & EFI_FILE_HIDDEN ? TRUE : FALSE) : TRUE) &&
+       (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)
++      (mAttribD ? (Info->Attribute & EFI_FILE_DIRECTORY ? TRUE : FALSE) : TRUE))
+     )
+       ) {
+     IsMatch = TRUE;
+diff --git a/ls/ls.h b/ls/ls.h
+index e967235..f0a5151 100644
+--- a/ls/ls.h
++++ b/ls/ls.h
+@@ -91,4 +91,5 @@ MainProc (
+   IN UINT16               VHlpToken
+   );
  
 -#endif
 \ No newline at end of file
 +#endif
-Index: LoadPciRom/LoadPciRom.h
-===================================================================
---- LoadPciRom/LoadPciRom.h    (revision 64)
-+++ LoadPciRom/LoadPciRom.h    (working copy)
-@@ -30,3 +30,4 @@
-   }
- #endif
 +
-Index: LoadPciRom/LoadPciRom.inf
-===================================================================
---- LoadPciRom/LoadPciRom.inf  (revision 64)
-+++ LoadPciRom/LoadPciRom.inf  (working copy)
-@@ -41,23 +41,23 @@
+diff --git a/ls/ls.inf b/ls/ls.inf
+index 854a5b1..547fce8 100644
+--- a/ls/ls.inf
++++ b/ls/ls.inf
+@@ -40,24 +40,24 @@ COMPONENT_TYPE       = APPLICATION
  
  [sources.common]
-   LoadPciRomStrings.uni
--  ..\ShCommonStrings.uni
-+  ../ShCommonStrings.uni
-   LoadPciRom.c
-   LoadPciRom.h  
-   
+-   ..\ShCommonStrings.uni   
++   ../ShCommonStrings.uni   
+    LsStrings.uni        
+    ls.c                 
+    ls.h    
+                                          
  [includes.common]
    .
 -  ..\Inc
@@ -6603,10 +6734,10 @@ Index: LoadPciRom/LoadPciRom.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -72,7 +72,11 @@
+@@ -72,7 +72,11 @@ COMPONENT_TYPE       = APPLICATION
  
  [nmake.common]
-   IMAGE_ENTRY_POINT=InitializeLoadPciRom
+   IMAGE_ENTRY_POINT=InitializeLS
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
    C_STD_FLAGS = $(C_STD_FLAGS) /DSTRING_ARRAY_NAME=$(BASE_NAME)Strings 
@@ -6615,82 +6746,179 @@ Index: LoadPciRom/LoadPciRom.inf
  
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: LoadPciRom/LoadPciRom.c
-===================================================================
---- LoadPciRom/LoadPciRom.c    (revision 64)
-+++ LoadPciRom/LoadPciRom.c    (working copy)
-@@ -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[] = {
-   {
-@@ -81,7 +81,7 @@
+diff --git a/mem/MemCommonPart.c b/mem/MemCommonPart.c
+index 54af027..b5ccc17 100644
+--- a/mem/MemCommonPart.c
++++ b/mem/MemCommonPart.c
+@@ -58,7 +58,7 @@ SHELL_VAR_CHECK_ITEM    MemCheckList[] = {
      NULL,
      0,
      0,
 -    0
 +    (SHELL_VAR_CHECK_FLAG_TYPE) 0
    }
- };
-@@ -377,7 +377,7 @@
-         }
+ };
+@@ -149,7 +149,7 @@ Returns:
+     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 @@ Returns:
+   //
+   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;
+@@ -172,7 +172,7 @@ Returns:
+       return Status;
+     }
+-    PciRootBridgeIo->Mem.Read (PciRootBridgeIo, EfiPciIoWidthUint8, Address, Size, Buffer);
++    PciRootBridgeIo->Mem.Read (PciRootBridgeIo, EfiPciWidthUint8, Address, Size, Buffer);
+   } else {
+     Buffer = (UINT8 *) (UINTN) Address;
+   }
+@@ -233,7 +233,7 @@ Returns:
+   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 @@ Returns:
+   //
+   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;
+@@ -327,7 +327,7 @@ Returns:
+       return Status;
+     }
+-    PciRootBridgeIo->Mem.Read (PciRootBridgeIo, EfiPciIoWidthUint8, Address, Size, Buffer);
++    PciRootBridgeIo->Mem.Read (PciRootBridgeIo, EfiPciWidthUint8, Address, Size, Buffer);
+   } else {
+     Buffer = (UINT8 *) (UINTN) Address;
+   }
+diff --git a/mem/MemCommonPart.h b/mem/MemCommonPart.h
+index 3b34908..f1fd015 100644
+--- a/mem/MemCommonPart.h
++++ b/mem/MemCommonPart.h
+@@ -62,4 +62,4 @@ EFIMemStructsPrint (
+   IN  EFI_BLOCK_IO_PROTOCOL   *BlkIo
+   );
+-#endif
+\ No newline at end of file
++#endif
+diff --git a/mem/debug.h b/mem/debug.h
+index 2b02c89..8db1a9f 100644
+--- a/mem/debug.h
++++ b/mem/debug.h
+@@ -156,3 +156,4 @@ EFIStructsPrint (
+ extern EFI_HII_HANDLE HiiMemHandle;
+ #endif
++
+diff --git a/mem/efidump.c b/mem/efidump.c
+index d7b22cb..cf5382a 100644
+--- a/mem/efidump.c
++++ b/mem/efidump.c
+@@ -24,7 +24,7 @@ Revision History
+ --*/
+ #include "debug.h"
+-#include "Efipart.h"
++#include "EfiPart.h"
+ #include "EfiShellLib.h"
+ #include STRING_DEFINES_FILE
+@@ -320,13 +320,11 @@ DumpMemSystemTable (
+   VOID                      *AcpiTable;
+   VOID                      *Acpi20Table;
+   VOID                      *SMBIOSTable;
+-  VOID                      *SalSystemTable;
+   VOID                      *MpsTable;
+   AcpiTable       = NULL;
+   Acpi20Table     = NULL;
+   SMBIOSTable     = NULL;
+-  SalSystemTable  = NULL;
+   MpsTable        = NULL;
+   PrintToken (
+@@ -352,11 +350,13 @@ DumpMemSystemTable (
+     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);
++     VOID                      *SalSystemTable;
++  
++     Status = LibGetSystemConfigurationTable(&gEfiSalSystemTableGuid, &SalSystemTable);
+     if (!EFI_ERROR(Status)) {
+       PrintToken (STRING_TOKEN(STR_DEBUG_SAL_SYSTEM_TABLE), HiiMemHandle, (UINT64)SalSystemTable);
+     }
+@@ -364,22 +364,22 @@ DumpMemSystemTable (
+   
+   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);
+   }
  
-         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;
-Index: ver/ver.h
-===================================================================
---- ver/ver.h  (revision 64)
-+++ ver/ver.h  (working copy)
-@@ -37,3 +37,4 @@
-   IN EFI_SYSTEM_TABLE   *SystemTable
-   );
- #endif
-+
-Index: ver/Ver.inf
-===================================================================
---- ver/Ver.inf        (revision 64)
-+++ ver/Ver.inf        (working copy)
-@@ -40,33 +40,33 @@
+   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);
+   }
  
- [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,sources.AARCH64]
-+   ia32/ver32.c
+   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);
+   }
+ }
  
- [sources.ipf]
--   ipf\ver64.c
-+   IPF/ver64.c
+diff --git a/mem/mem.inf b/mem/mem.inf
+index 0561176..4ba34ad 100644
+--- a/mem/mem.inf
++++ b/mem/mem.inf
+@@ -25,7 +25,7 @@ FILE_GUID            = 1B0B8206-74DC-4681-AA0D-039A9699EA56
+ COMPONENT_TYPE       = APPLICATION
  
- [sources.ebc]
--   ebc\verEbc.c
-+   eb./verEbc.c
-                                           
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   MemStrings.uni
+   DebugStrings.uni  
+   mm.c
+@@ -34,17 +34,17 @@ COMPONENT_TYPE       = APPLICATION
+   
  [includes.common]
    .
 -  ..\Inc
@@ -6718,36 +6946,35 @@ Index: ver/Ver.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -82,7 +82,11 @@
+@@ -63,9 +63,13 @@ COMPONENT_TYPE       = APPLICATION
+ # we will specify some additional DEFINEs on the compile command line.
+ #
  [nmake.common]
-   IMAGE_ENTRY_POINT=InitializeVer
+-  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
+   IMAGE_ENTRY_POINT=DumpMm
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
++  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
    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_BOOTSHELL
  
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: ver/Ebc/verEbc.c
-===================================================================
---- ver/Ebc/verEbc.c   (revision 64)
-+++ ver/Ebc/verEbc.c   (working copy)
-@@ -45,7 +45,7 @@
-   Status = BS->LocateProtocol (\r
-                  &gEfiEbcProtocolGuid,\r
-                  NULL,\r
--                 &Ebc\r
-+                 (VOID**)&Ebc\r
-                  );\r
-   if (EFI_ERROR (Status)) {\r
-     return ;\r
-Index: ver/ver.c
-===================================================================
---- ver/ver.c  (revision 64)
-+++ ver/ver.c  (working copy)
-@@ -57,7 +57,7 @@
+diff --git a/memmap/memmap.c b/memmap/memmap.c
+index f7353ff..24da6e2 100644
+--- a/memmap/memmap.c
++++ b/memmap/memmap.c
+@@ -35,7 +35,7 @@ extern UINT8  STRING_ARRAY_NAME[];
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++STATIC EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiMemmapGuid = EFI_MEMMAP_GUID;
+ SHELL_VAR_CHECK_ITEM    MemmapCheckList[] = {
+   {
+@@ -54,7 +54,7 @@ SHELL_VAR_CHECK_ITEM    MemmapCheckList[] = {
      NULL,
      0,
      0,
@@ -6756,28 +6983,38 @@ Index: ver/ver.c
    }
  };
  
-Index: dmpstore/dmpstore.h
-===================================================================
---- dmpstore/dmpstore.h        (revision 64)
-+++ dmpstore/dmpstore.h        (working copy)
-@@ -40,3 +40,4 @@
- } DMPSTORE_VARIABLE;
+@@ -216,7 +216,7 @@ Returns:
+     }
+     Bytes = LShiftU64 (Desc->NumberOfPages, 12);
+-    Ptr   = MemoryTypeStr (Desc->Type);
++    Ptr   = MemoryTypeStr ((EFI_MEMORY_TYPE)Desc->Type);
+     PrintToken (
+       STRING_TOKEN (STR_MEMMAP_FIVE_ARGS),
+       HiiHandle,
+diff --git a/memmap/memmap.h b/memmap/memmap.h
+index d9f5d72..e32a0aa 100644
+--- a/memmap/memmap.h
++++ b/memmap/memmap.h
+@@ -33,3 +33,4 @@ Revision History
+   }
  
  #endif
 +
-Index: dmpstore/dmpstore.inf
-===================================================================
---- dmpstore/dmpstore.inf      (revision 64)
-+++ dmpstore/dmpstore.inf      (working copy)
-@@ -25,24 +25,24 @@
- COMPONENT_TYPE       = APPLICATION
+diff --git a/memmap/memmap.inf b/memmap/memmap.inf
+index 1d68c61..48af15c 100644
+--- a/memmap/memmap.inf
++++ b/memmap/memmap.inf
+@@ -40,7 +40,7 @@ COMPONENT_TYPE       = APPLICATION
  
  [sources.common]
 -  ..\ShCommonStrings.uni
 +  ../ShCommonStrings.uni
-   DmpstoreStrings.uni
-   dmpstore.c
-   dmpstore.h
+   memmapStrings.uni
+   memmap.c
+   memmap.h
+@@ -48,17 +48,17 @@ COMPONENT_TYPE       = APPLICATION
    
  [includes.common]
    .
@@ -6806,51 +7043,32 @@ Index: dmpstore/dmpstore.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -61,11 +61,14 @@
- # we will specify some additional DEFINEs on the compile command line.
- #
+@@ -73,7 +73,11 @@ COMPONENT_TYPE       = APPLICATION
  [nmake.common]
-+  IMAGE_ENTRY_POINT=InitializeDumpStore
+   IMAGE_ENTRY_POINT=InitializeMemmap
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-   C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
--  IMAGE_ENTRY_POINT=InitializeDumpStore
    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_BOOTSHELL
  
--
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-  
-\ No newline at end of file
-Index: dmpstore/dmpstore.c
-===================================================================
---- dmpstore/dmpstore.c        (revision 64)
-+++ dmpstore/dmpstore.c        (working copy)
-@@ -95,7 +95,7 @@
+diff --git a/mkdir/mkdir.c b/mkdir/mkdir.c
+index 79a08ca..5d8c5f5 100644
+--- a/mkdir/mkdir.c
++++ b/mkdir/mkdir.c
+@@ -49,7 +49,7 @@ MkDir (
  //
  // Global Variables
  //
 -EFI_HII_HANDLE  HiiHandle;
 +STATIC EFI_HII_HANDLE  HiiHandle;
- EFI_GUID        EfiDmpstoreGuid = EFI_DMPSTORE_GUID;
- SHELL_VAR_CHECK_ITEM    DmpstoreCheckList[] = {
+ EFI_GUID        EfiMkdirGuid = EFI_MKDIR_GUID;
+ SHELL_VAR_CHECK_ITEM    MkdirCheckList[] = {
    {
-@@ -132,7 +132,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
-   }
- };
-Index: comp/comp.c
-===================================================================
---- comp/comp.c        (revision 64)
-+++ comp/comp.c        (working copy)
-@@ -50,7 +50,7 @@
+@@ -68,7 +68,7 @@ SHELL_VAR_CHECK_ITEM    MkdirCheckList[] = {
      NULL,
      0,
      0,
@@ -6859,28 +7077,31 @@ Index: comp/comp.c
    }
  };
  
-Index: comp/comp.h
-===================================================================
---- comp/comp.h        (revision 64)
-+++ comp/comp.h        (working copy)
-@@ -29,4 +29,4 @@
-     0x7761e2c2, 0x7297, 0x434d, 0xb6, 0x52, 0xa9, 0x76, 0x91, 0xb8, 0x66, 0xf3 \
+diff --git a/mkdir/mkdir.h b/mkdir/mkdir.h
+index 20f8068..2da2b13 100644
+--- a/mkdir/mkdir.h
++++ b/mkdir/mkdir.h
+@@ -29,4 +29,5 @@ Revision History
+     0x75ecb57f, 0x4264, 0x49d2, 0x98, 0xe6, 0x39, 0x1a, 0x32, 0x17, 0x9d, 0xf2 \
    }
  
 -#endif
 \ No newline at end of file
 +#endif
-Index: comp/comp.inf
-===================================================================
---- comp/comp.inf      (revision 64)
-+++ comp/comp.inf      (working copy)
-@@ -28,21 +28,21 @@
- CompStrings.uni
- comp.c
- comp.h
--..\ShCommonStrings.uni
-+../ShCommonStrings.uni
-   
++
+diff --git a/mkdir/mkdir.inf b/mkdir/mkdir.inf
+index e49daac..4f98af0 100644
+--- a/mkdir/mkdir.inf
++++ b/mkdir/mkdir.inf
+@@ -41,23 +41,23 @@ COMPONENT_TYPE       = APPLICATION
+ [sources.common]
+   MkdirStrings.uni
+-  ..\ShCommonStrings.uni     
++  ../ShCommonStrings.uni     
+   mkdir.c              
+   mkdir.h              
+  
  [includes.common]
    .
 -  ..\Inc
@@ -6908,39 +7129,59 @@ Index: comp/comp.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -61,11 +61,16 @@
- # we will specify some additional DEFINEs on the compile command line.
- #
+@@ -72,7 +72,11 @@ COMPONENT_TYPE       = APPLICATION
  [nmake.common]
-+  IMAGE_ENTRY_POINT=InitializeComp
+   IMAGE_ENTRY_POINT=InitializeMkDir
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-   C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
--  IMAGE_ENTRY_POINT=InitializeComp
    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_BOOTSHELL
  
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
+diff --git a/mm/mm.c b/mm/mm.c
+index 033849b..cb53465 100644
+--- a/mm/mm.c
++++ b/mm/mm.c
+@@ -49,18 +49,18 @@ DumpIoModify (
  
-+
-  
-\ No newline at end of file
-Index: IpConfig/IpConfig.c
-===================================================================
---- IpConfig/IpConfig.c        (revision 64)
-+++ IpConfig/IpConfig.c        (working copy)
-@@ -39,7 +39,7 @@
+ VOID
+ ReadMem (
+-  IN  EFI_IO_WIDTH  Width,
+-  IN  UINT64        Address,
+-  IN  UINTN         Size,
+-  IN  VOID          *Buffer
++  IN  EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH  Width,
++  IN  UINT64                                 Address,
++  IN  UINTN                                  Size,
++  IN  VOID                                   *Buffer
+   );
+ VOID
+ WriteMem (
+-  IN  EFI_IO_WIDTH  Width,
+-  IN  UINT64        Address,
+-  IN  UINTN         Size,
+-  IN  VOID          *Buffer
++  IN  EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH  Width,
++  IN  UINT64                                 Address,
++  IN  UINTN                                  Size,
++  IN  VOID                                   *Buffer
+   );
+ STATIC
+@@ -73,7 +73,7 @@ GetHex (
  //
  // Global Variables
  //
--EFI_HII_HANDLE  HiiHandle;
-+STATIC EFI_HII_HANDLE  HiiHandle;
- EFI_GUID        EfiIpConfigGuid = EFI_IPCONFIG_GUID;
- SHELL_VAR_CHECK_ITEM  IpconfigCheckList[] = {
+-EFI_HII_HANDLE HiiHandle;
++STATIC EFI_HII_HANDLE HiiHandle;
+ EFI_GUID EfiIomodGuid = EFI_IOMOD_GUID;
+ SHELL_VAR_CHECK_ITEM    IomodCheckList[] = {
    {
-@@ -76,7 +76,7 @@
+@@ -134,7 +134,7 @@ SHELL_VAR_CHECK_ITEM    IomodCheckList[] = {
      NULL,
      0,
      0,
@@ -6949,31 +7190,140 @@ Index: IpConfig/IpConfig.c
    }
  };
  
-Index: IpConfig/IpConfig.h
-===================================================================
---- IpConfig/IpConfig.h        (revision 64)
-+++ IpConfig/IpConfig.h        (working copy)
-@@ -29,4 +29,4 @@
-     0x8252915c, 0xf1e9, 0x435c, 0x81, 0x91, 0xad, 0x2f, 0x82, 0x62, 0x23, 0x73 \
+@@ -146,13 +146,13 @@ EFI_BOOTSHELL_CODE(
+ EFI_STATUS
+ OldShellParserMM (
+-  OUT EFI_IO_WIDTH       *Width,
+-  OUT EFI_ACCESS_TYPE    *AccessType,
+-  OUT UINT64             *Address,
+-  OUT UINT64             *Value,
+-  OUT UINTN              *Size,
+-  OUT BOOLEAN            *Interactive,
+-  OUT CHAR16             **ValueStr
++  OUT EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH *Width,
++  OUT EFI_ACCESS_TYPE                       *AccessType,
++  OUT UINT64                                *Address,
++  OUT UINT64                                *Value,
++  OUT UINTN                                 *Size,
++  OUT BOOLEAN                               *Interactive,
++  OUT CHAR16                               **ValueStr
+   );
+ EFI_STATUS
+@@ -207,12 +207,11 @@ Notes:
+   UINT64                          PciEAddress;
+   UINT64                          Value;
+   UINT32                          SegmentNumber;
+-  EFI_IO_WIDTH                    Width;
++  EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH Width;
+   EFI_ACCESS_TYPE                 AccessType;
+   UINT64                          Buffer;
+   UINTN                           Index;
+   UINTN                           Size;
+-  CHAR16                          *AddressStr;
+   CHAR16                          *ValueStr;
+   BOOLEAN                         Complete;
+   CHAR16                          InputStr[80];
+@@ -261,7 +260,7 @@ Notes:
+   if (IS_OLD_SHELL) {
+     Status = OldShellParserMM (&Width, &AccessType, &Address, &Value, &Size, &Interactive, &ValueStr);
+     if (EFI_ERROR (Status)) {
+-      if (-1 == Status) {
++      if ((EFI_STATUS)-1 == Status) {
+         PrintToken (STRING_TOKEN (STR_HELPINFO_MM_VERBOSEHELP), HiiHandle);
+         Status = EFI_SUCCESS;
+       }
+@@ -274,7 +273,6 @@ Notes:
+     Width       = EfiPciWidthUint8;
+     Size        = 1;
+     AccessType  = EfiMemory;
+-    AddressStr  = NULL;
+     ValueStr    = NULL;
+     Interactive = TRUE;
+@@ -662,10 +660,10 @@ Done:
+ VOID
+ ReadMem (
+-  IN  EFI_IO_WIDTH  Width,
+-  IN  UINT64        Address,
+-  IN  UINTN         Size,
+-  IN  VOID          *Buffer
++  IN  EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH  Width,
++  IN  UINT64                                 Address,
++  IN  UINTN                                  Size,
++  IN  VOID                                   *Buffer
+   )
+ {
+   do {
+@@ -694,10 +692,10 @@ ReadMem (
+ VOID
+ WriteMem (
+-  IN  EFI_IO_WIDTH  Width,
+-  IN  UINT64        Address,
+-  IN  UINTN         Size,
+-  IN  VOID          *Buffer
++  IN  EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH  Width,
++  IN  UINT64                                 Address,
++  IN  UINTN                                  Size,
++  IN  VOID                                   *Buffer
+   )
+ {
+   do {
+@@ -750,7 +748,7 @@ GetHex (
+     }
+     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 {
+@@ -766,13 +764,13 @@ GetHex (
+ EFI_STATUS
+ OldShellParserMM (
+-  OUT EFI_IO_WIDTH       *Width,
+-  OUT EFI_ACCESS_TYPE    *AccessType,
+-  OUT UINT64             *Address,
+-  OUT UINT64             *Value,
+-  OUT UINTN              *Size,
+-  OUT BOOLEAN            *Interactive,
+-  OUT CHAR16             **ValueStr
++  OUT EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH *Width,
++  OUT EFI_ACCESS_TYPE                       *AccessType,
++  OUT UINT64                                *Address,
++  OUT UINT64                                *Value,
++  OUT UINTN                                 *Size,
++  OUT BOOLEAN                               *Interactive,
++  OUT CHAR16                               **ValueStr
+   )
+ /*++
+diff --git a/mm/mm.h b/mm/mm.h
+index 8306f4c..0890e50 100644
+--- a/mm/mm.h
++++ b/mm/mm.h
+@@ -33,3 +33,4 @@ Revision History
    }
  
--#endif
-\ No newline at end of file
-+#endif
-Index: IpConfig/IpConfig.inf
-===================================================================
---- IpConfig/IpConfig.inf      (revision 64)
-+++ IpConfig/IpConfig.inf      (working copy)
-@@ -25,24 +25,24 @@
- COMPONENT_TYPE       = APPLICATION
+ #endif
++
+diff --git a/mm/mm.inf b/mm/mm.inf
+index 4857d9e..97221eb 100644
+--- a/mm/mm.inf
++++ b/mm/mm.inf
+@@ -41,23 +41,23 @@ COMPONENT_TYPE       = APPLICATION
  
  [sources.common]
+   MmStrings.uni
 -  ..\ShCommonStrings.uni
 +  ../ShCommonStrings.uni
-   IpConfigStrings.uni
-   IpConfig.c
-   IpConfig.h 
+   mm.c
+   mm.h
+   
  [includes.common]
    .
 -  ..\Inc
@@ -7001,12 +7351,10 @@ Index: IpConfig/IpConfig.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -56,9 +56,12 @@
+@@ -72,7 +72,11 @@ COMPONENT_TYPE       = APPLICATION
  
  [nmake.common]
--  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
-   IMAGE_ENTRY_POINT=InitializeIpConfig
+   IMAGE_ENTRY_POINT=DumpIoModify
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
    C_STD_FLAGS = $(C_STD_FLAGS) /DSTRING_ARRAY_NAME=$(BASE_NAME)Strings 
@@ -7015,20 +7363,11 @@ Index: IpConfig/IpConfig.inf
  
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: sermode/sermode.c
-===================================================================
---- sermode/sermode.c  (revision 64)
-+++ sermode/sermode.c  (working copy)
-@@ -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[] = {
-   {
-@@ -54,7 +54,7 @@
+diff --git a/mode/mode.c b/mode/mode.c
+index becf429..e49df84 100644
+--- a/mode/mode.c
++++ b/mode/mode.c
+@@ -53,7 +53,7 @@ SHELL_VAR_CHECK_ITEM    ModeCheckList[] = {
      NULL,
      0,
      0,
@@ -7037,47 +7376,29 @@ Index: sermode/sermode.c
    }
  };
  
-@@ -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,
-Index: sermode/sermode.h
-===================================================================
---- sermode/sermode.h  (revision 64)
-+++ sermode/sermode.h  (working copy)
-@@ -32,3 +32,4 @@
+diff --git a/mode/mode.h b/mode/mode.h
+index eadbac1..3c4560b 100644
+--- a/mode/mode.h
++++ b/mode/mode.h
+@@ -30,3 +30,4 @@ Revision History
    }
  
  #endif
 +
-Index: sermode/sermode.inf
-===================================================================
---- sermode/sermode.inf        (revision 64)
-+++ sermode/sermode.inf        (working copy)
-@@ -40,24 +40,24 @@
+diff --git a/mode/mode.inf b/mode/mode.inf
+index 47e5c80..98ea62e 100644
+--- a/mode/mode.inf
++++ b/mode/mode.inf
+@@ -40,24 +40,24 @@ COMPONENT_TYPE       = APPLICATION
  
  
  [sources.common]
 -  ..\ShCommonStrings.uni
 +  ../ShCommonStrings.uni
-   SermodeStrings.uni
-   sermode.c
-   sermode.h
-  
+   ModeStrings.uni
+   mode.c
+   mode.h
+   
  [includes.common]
    .
 -  ..\Inc
@@ -7105,10 +7426,10 @@ Index: sermode/sermode.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -72,7 +72,11 @@
+@@ -72,7 +72,11 @@ COMPONENT_TYPE       = APPLICATION
  
  [nmake.common]
-   IMAGE_ENTRY_POINT=InitializeSerialMode
+   IMAGE_ENTRY_POINT=InitializeMode
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
    C_STD_FLAGS = $(C_STD_FLAGS) /DSTRING_ARRAY_NAME=$(BASE_NAME)Strings 
@@ -7117,11 +7438,20 @@ Index: sermode/sermode.inf
  
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: tzone/tzone.c
-===================================================================
---- tzone/tzone.c      (revision 64)
-+++ tzone/tzone.c      (working copy)
-@@ -65,7 +65,7 @@
+diff --git a/mount/mount.c b/mount/mount.c
+index fa32b1f..6825511 100644
+--- a/mount/mount.c
++++ b/mount/mount.c
+@@ -36,7 +36,7 @@ extern UINT8  STRING_ARRAY_NAME[];
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++STATIC EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiMountGuid = EFI_MOUNT_GUID;
+ SHELL_VAR_CHECK_ITEM      MountCheckList[] = {
+   {
+@@ -55,7 +55,7 @@ SHELL_VAR_CHECK_ITEM      MountCheckList[] = {
      NULL,
      0,
      0,
@@ -7130,36 +7460,29 @@ Index: tzone/tzone.c
    }
  };
  
-@@ -258,7 +258,6 @@
-   BOOLEAN                 bList;
-   BOOLEAN                 bSet;
-   INT16                   nValue;
--  UINTN                   uValueSize;
-   SHELL_VAR_CHECK_CODE    RetCode;
-   CHAR16                  *Useful;
-   SHELL_VAR_CHECK_PACKAGE ChkPck;
-@@ -269,7 +268,6 @@
-   bList         = FALSE;
-   bSet          = FALSE;
-   nValue        = 0;
--  uValueSize    = sizeof (INTN);
-   ZeroMem (&ChkPck, sizeof (SHELL_VAR_CHECK_PACKAGE));
-   ZeroMem (&Time, sizeof (EFI_TIME));
-   //
-Index: tzone/timezone.inf
-===================================================================
---- tzone/timezone.inf (revision 64)
-+++ tzone/timezone.inf (working copy)
-@@ -25,24 +25,24 @@
- COMPONENT_TYPE       = APPLICATION
+diff --git a/mount/mount.h b/mount/mount.h
+index afd795e..ce65e8e 100644
+--- a/mount/mount.h
++++ b/mount/mount.h
+@@ -33,3 +33,4 @@ Revision History
+   }
+ #endif
++
+diff --git a/mount/mount.inf b/mount/mount.inf
+index 922c490..e0154e2 100644
+--- a/mount/mount.inf
++++ b/mount/mount.inf
+@@ -40,24 +40,24 @@ COMPONENT_TYPE       = APPLICATION
  
  [sources.common]
 -  ..\ShCommonStrings.uni
 +  ../ShCommonStrings.uni
-   TZoneStrings.uni
-   tzone.c
-   tzone.h
+   MountStrings.uni
+   mount.c
+   mount.h
+   
  [includes.common]
    .
 -  ..\Inc
@@ -7187,47 +7510,32 @@ Index: tzone/timezone.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -62,11 +62,13 @@
- # we will specify some additional DEFINEs on the compile command line.
- #
+@@ -72,7 +72,11 @@ COMPONENT_TYPE       = APPLICATION
  [nmake.common]
-+  IMAGE_ENTRY_POINT=InitializeTZone
+   IMAGE_ENTRY_POINT=MountMain
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-   C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
--  IMAGE_ENTRY_POINT=InitializeTZone
    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_BOOTSHELL
  
--
-- 
-\ No newline at end of file
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: tzone/tzone.h
-===================================================================
---- tzone/tzone.h      (revision 64)
-+++ tzone/tzone.h      (working copy)
-@@ -35,3 +35,4 @@
-   }
- #endif
-+
-Index: vol/vol.c
-===================================================================
---- vol/vol.c  (revision 64)
-+++ vol/vol.c  (working copy)
-@@ -32,7 +32,7 @@
+diff --git a/mv/mv.c b/mv/mv.c
+index 3b04021..9eefd23 100644
+--- a/mv/mv.c
++++ b/mv/mv.c
+@@ -36,7 +36,7 @@ extern UINT8  STRING_ARRAY_NAME[];
+ //
+ // Global Variables
  //
- #include STRING_DEFINES_FILE
 -EFI_HII_HANDLE  HiiHandle;
 +STATIC EFI_HII_HANDLE  HiiHandle;
- EFI_GUID        EfiVolGuid = EFI_VOL_GUID;
- SHELL_VAR_CHECK_ITEM    VolCheckList[] = {
+ EFI_GUID        EfiMvGuid = EFI_MV_GUID;
+ SHELL_VAR_CHECK_ITEM      MvCheckList[] = {
    {
-@@ -63,7 +63,7 @@
+@@ -55,7 +55,7 @@ SHELL_VAR_CHECK_ITEM      MvCheckList[] = {
      NULL,
      0,
      0,
@@ -7236,28 +7544,30 @@ Index: vol/vol.c
    }
  };
  
-Index: vol/vol.h
-===================================================================
---- vol/vol.h  (revision 64)
-+++ vol/vol.h  (working copy)
-@@ -32,3 +32,4 @@
-   }
+diff --git a/mv/mv.h b/mv/mv.h
+index 6ed33eb..2dbf314 100644
+--- a/mv/mv.h
++++ b/mv/mv.h
+@@ -33,4 +33,4 @@ Revision History
  
- #endif
-+
-Index: vol/Vol.inf
-===================================================================
---- vol/Vol.inf        (revision 64)
-+++ vol/Vol.inf        (working copy)
-@@ -40,24 +40,24 @@
+ #define EFI_FILE_STRING_SIZE  260
+-#endif
+\ No newline at end of file
++#endif
+diff --git a/mv/mv.inf b/mv/mv.inf
+index b52e28d..46000f0 100644
+--- a/mv/mv.inf
++++ b/mv/mv.inf
+@@ -40,24 +40,24 @@ COMPONENT_TYPE       = APPLICATION
  
  
  [sources.common]
 -   ..\ShCommonStrings.uni   
 +   ../ShCommonStrings.uni   
-    VolStrings.uni
-    Vol.c
-    Vol.h 
+    MvStrings.uni        
+    mv.c                 
+    mv.h                 
                                            
  [includes.common]
    .
@@ -7286,10 +7596,10 @@ Index: vol/Vol.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -72,7 +72,11 @@
+@@ -72,7 +72,11 @@ COMPONENT_TYPE       = APPLICATION
  
  [nmake.common]
-   IMAGE_ENTRY_POINT=InitializeVol
+   IMAGE_ENTRY_POINT=InitializeMv
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
    C_STD_FLAGS = $(C_STD_FLAGS) /DSTRING_ARRAY_NAME=$(BASE_NAME)Strings 
@@ -7298,87 +7608,155 @@ Index: vol/Vol.inf
  
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: cp/cp.c
-===================================================================
---- cp/cp.c    (revision 64)
-+++ cp/cp.c    (working copy)
-@@ -66,7 +66,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+diff --git a/newshell/FakeHii.c b/newshell/FakeHii.c
+index c187b47..5dff3ad 100644
+--- a/newshell/FakeHii.c
++++ b/newshell/FakeHii.c
+@@ -196,7 +196,7 @@ FakeUninstallHiiDatabase (
+     Status = BS->HandleProtocol (
+                   mFakeHiiHandle,
+                   &gEfiHiiProtocolGuid,
+-                  &FakeHii
++                  (VOID**)&FakeHii
+                   );
+     Status = BS->UninstallProtocolInterface (
+                   mFakeHiiHandle,
+@@ -320,7 +320,7 @@ InsertStringPackage (
+   if (Language == NULL) {
+     return EFI_OUT_OF_RESOURCES;
    }
- };
+-  strcpya (Language, (UINT8 *) PackageHdr + HeaderSize - LanguageSize);
++  strcpya (Language, (CHAR8*) ((UINT8 *) 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 @@ FakeHiiGetString (
+   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 --git a/newshell/FakeHii.h b/newshell/FakeHii.h
+index a73332b..4c34460 100644
+--- a/newshell/FakeHii.h
++++ b/newshell/FakeHii.h
+@@ -479,3 +479,4 @@ extern BOOLEAN  gHiiInitialized;
+ #endif
  
-@@ -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);
+ #endif
++
+diff --git a/newshell/init.c b/newshell/init.c
+index fd4adf6..fe73711 100644
+--- a/newshell/init.c
++++ b/newshell/init.c
+@@ -23,7 +23,7 @@ Abstract:
+ #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)
+@@ -99,13 +99,13 @@ _GetFsDpOfImg (
+   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);
+@@ -220,7 +220,7 @@ _DoInit (
+   //
+   Status = LibLocateProtocol (
+              &gEfiConsoleControlProtocolGuid,
+-             &ConsoleControl
++             (VOID**)&ConsoleControl
+              );
+   if (!EFI_ERROR (Status)) {
+     Status = ConsoleControl->GetMode (ConsoleControl, &mOldCurrentMode, NULL, NULL);
+@@ -342,7 +342,7 @@ _EnableShellEnv (
+       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 +372,7 @@ _InstallShellInterface (
+     *IsRootInstance = TRUE;
+   }
+-  Status = LibLocateProtocol (&ShellEnvProtocol, &SE);
++  Status = LibLocateProtocol (&ShellEnvProtocol, (VOID**)&SE);
+   ASSERT (!EFI_ERROR (Status));
+   SI = SE->NewShell (ImageHandle);
+@@ -543,7 +543,7 @@ _CleanUpOnExit (
+   //
+   ConsoleControlStatus = LibLocateProtocol (
+                            &gEfiConsoleControlProtocolGuid,
+-                           &ConsoleControl
++                           (VOID**)&ConsoleControl
+                            );
+   if (!EFI_ERROR (ConsoleControlStatus)) {
+     ConsoleControlStatus = ConsoleControl->GetMode (ConsoleControl, &CurrentMode, NULL, NULL);
+@@ -709,7 +709,7 @@ Returns:
+   //
+   SE2->IncrementShellNestingLevel ();
+-  while (Status != -1) {
++  while (Status != (EFI_STATUS) -1) {
+     Status = NShellPrompt (ImageHandle);
+     EFI_NT_EMULATOR_CODE (
+       //
+@@ -723,7 +723,7 @@ Returns:
+         Status = BS->HandleProtocol (
+                       ImageHandle,
+                       &ShellInterfaceProtocol,
+-                      &SI
++                      (VOID**)&SI
+                       );
+         ASSERT (!EFI_ERROR (Status));
        }
-@@ -869,7 +869,6 @@
-   EFI_STATUS                      Status;
-   EFI_FILE_INFO                   *SrcInfo;
-   EFI_FILE_INFO                   *DstInfo;
--  EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *DstVol;
-   EFI_FILE_SYSTEM_INFO            *DstFsInfo;
-   CHAR16                          InputString[10];
-   UINTN                           BufSize;
-@@ -894,7 +893,6 @@
-   SrcInfo           = NULL;
-   DstInfo           = NULL;
-   FileInfo          = NULL;
--  DstVol            = NULL;
-   DstFsInfo         = NULL;
-   InputString[0]    = 0;
-   BufSize           = 0;
-@@ -1789,7 +1787,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);
-Index: cp/cp.h
-===================================================================
---- cp/cp.h    (revision 64)
-+++ cp/cp.h    (working copy)
-@@ -67,4 +67,5 @@
-   IN EFI_SYSTEM_TABLE     *SystemTable
-   );
+diff --git a/newshell/nshell.h b/newshell/nshell.h
+index 5c58410..c2a3a9e 100644
+--- a/newshell/nshell.h
++++ b/newshell/nshell.h
+@@ -58,4 +58,5 @@ extern EFI_SHELL_ENVIRONMENT  *SE;
+ #define EFI_NO_MONOSHELL_CODE(code) code
+ #endif
  
 -#endif
 \ No newline at end of file
 +#endif
 +
-Index: cp/cp.inf
-===================================================================
---- cp/cp.inf  (revision 64)
-+++ cp/cp.inf  (working copy)
-@@ -41,23 +41,23 @@
+diff --git a/newshell/nshell.inf b/newshell/nshell.inf
+index 22479b0..405e23c 100644
+--- a/newshell/nshell.inf
++++ b/newshell/nshell.inf
+@@ -26,24 +26,24 @@ COMPONENT_TYPE       = APPLICATION
  
  [sources.common]
-   CpStrings.uni
+   NshellStrings.uni
 -  ..\ShCommonStrings.uni
 +  ../ShCommonStrings.uni
-   cp.h
-   cp.c
-   
+   init.c
+   nshell.h
+   fakehii.c
  [includes.common]
    .
 -  ..\Inc
@@ -7406,1418 +7784,1436 @@ Index: cp/cp.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -72,7 +72,12 @@
+@@ -63,11 +63,13 @@ COMPONENT_TYPE       = APPLICATION
+ # we will specify some additional DEFINEs on the compile command line.
+ #
  [nmake.common]
-   IMAGE_ENTRY_POINT=InitializeCP
+-  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
+   IMAGE_ENTRY_POINT=InitializeShell
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
++  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
    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_BOOTSHELL
+-  C_STD_FLAGS = $(C_STD_FLAGS) /DEFI_MONOSHELL=2
+-
++  C_STD_FLAGS = $(C_STD_FLAGS) /DEFI_BOOTSHELL
  
+- 
+\ No newline at end of file
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-+
-Index: Library/EfiPart.h
-===================================================================
---- Library/EfiPart.h  (revision 64)
-+++ Library/EfiPart.h  (working copy)
-@@ -56,3 +56,4 @@
- #pragma pack()
- #endif
-+
-Index: Library/X64/efilibplat.h
-===================================================================
---- Library/X64/efilibplat.h   (revision 64)
-+++ Library/X64/efilibplat.h   (working copy)
-@@ -35,3 +35,4 @@
- #define MIN_ALIGNMENT_SIZE  8
- #endif
-+
-Index: Library/ShellEnvInt.h
-===================================================================
---- Library/ShellEnvInt.h      (revision 64)
-+++ Library/ShellEnvInt.h      (working copy)
-@@ -196,4 +196,6 @@
-   VOID
-   );
--#endif
-\ No newline at end of file
-+#endif
-+
-+
-Index: Library/LinkedList.h
-===================================================================
---- Library/LinkedList.h       (revision 64)
-+++ Library/LinkedList.h       (working copy)
-@@ -77,11 +77,10 @@
-   }
- #define SwapListEntries(Entry1, Entry2) { \
--    EFI_LIST_ENTRY  *Entry1Flink, *Entry1Blink; \
-+    EFI_LIST_ENTRY  *Entry1Blink; \
-     EFI_LIST_ENTRY  *Entry2Flink, *Entry2Blink; \
-     Entry2Flink         = (Entry2)->Flink; \
-     Entry2Blink         = (Entry2)->Blink; \
--    Entry1Flink         = (Entry1)->Flink; \
-     Entry1Blink         = (Entry1)->Blink; \
-     Entry2Blink->Flink  = Entry2Flink; \
-     Entry2Flink->Blink  = Entry2Blink; \
-@@ -100,3 +99,4 @@
- // A lock structure
+diff --git a/openinfo/openinfo.c b/openinfo/openinfo.c
+index 9b3356c..16274fe 100644
+--- a/openinfo/openinfo.c
++++ b/openinfo/openinfo.c
+@@ -36,7 +36,7 @@ extern UINT8  STRING_ARRAY_NAME[];
  //
- #endif
-+
-Index: Library/IO.c
-===================================================================
---- Library/IO.c       (revision 64)
-+++ Library/IO.c       (working copy)
-@@ -21,7 +21,7 @@
- --*/
--#include "EfiShelllib.h"
-+#include "EfiShellLib.h"
- #define PRINT_STRING_LEN        1024
- #define PRINT_ITEM_BUFFER_LEN   100
-@@ -86,8 +86,8 @@
- typedef struct {
-   BOOLEAN PageBreak;
-   BOOLEAN AutoWrap;
--  INTN    MaxRow;
--  INTN    MaxColumn;
-+  UINTN   MaxRow;
-+  UINTN   MaxColumn;
-   INTN    InitRow;
-   INTN    Row;
-   INTN    Column;
-@@ -1575,7 +1575,7 @@
- {
-   BOOLEAN       Done;
-   UINTN         Column;
--  INTN          Row;
-+  UINTN         Row;
-   UINTN         StartColumn;
-   UINTN         Update;
-   UINTN         Delete;
-@@ -1769,7 +1769,7 @@
-     //
-     // If we need to update the output do so now
-     //
--    if (Update != -1) {
-+    if (Update != (UINTN)  -1) {
-       PrintAt (Column, Row, L"%s%.*s", InStr + Update, Delete, L"");
-       Len = StrLen (InStr);
-@@ -1928,8 +1928,8 @@
-   return mPrintMode.PageBreak;
- }
-+#if 0
- STATIC
--
- BOOLEAN
- GetOutputPause (
-   VOID
-@@ -1937,6 +1937,7 @@
- {
-   return mPrintMode.OutputPause;
- }
-+#endif
- INTN
- DbgPrint (
-Index: Library/FileIO.c
-===================================================================
---- Library/FileIO.c   (revision 64)
-+++ Library/FileIO.c   (working copy)
-@@ -21,7 +21,7 @@
- --*/
--#include "EfiShelllib.h"
-+#include "EfiShellLib.h"
- typedef struct _PATH_COMPONENTS {
-   CHAR16                  *Name;
-@@ -719,7 +719,6 @@
-   IN OUT CHAR16                       **Path
-   )
- {
--  EFI_STATUS  Status;
-   CHAR16      *p;
-   UINTN       Size;
-@@ -728,7 +727,6 @@
-   *Fs     = NULL;
-   *Path   = NULL;
--  Status  = EFI_SUCCESS;
-   p       = AbPath;
-   while (*p) {
-@@ -1017,13 +1015,11 @@
-   EFI_LIST_ENTRY  SrcList;
-   EFI_LIST_ENTRY  DstList;
-   EFI_STATUS      Status;
--  EFI_LIST_ENTRY  *Link;
-   SHELL_FILE_ARG  *SrcArg;
-   SHELL_FILE_ARG  *DstArg;
-   
-   ASSERT (IsSame != NULL);
--  Link    = NULL;
-   SrcArg  = NULL;
-   DstArg  = NULL;
-   InitializeListHead (&SrcList);
-Index: Library/Ebc/EfiLibPlat.h
-===================================================================
---- Library/Ebc/EfiLibPlat.h   (revision 64)
-+++ Library/Ebc/EfiLibPlat.h   (working copy)
-@@ -44,3 +44,4 @@
- ;
- #define MIN_ALIGNMENT_SIZE  8
-+
-Index: Library/Str.c
-===================================================================
---- Library/Str.c      (revision 64)
-+++ Library/Str.c      (working copy)
-@@ -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;
-       }
-Index: Library/Data.c
-===================================================================
---- Library/Data.c     (revision 64)
-+++ Library/Data.c     (working copy)
-@@ -21,7 +21,7 @@
- --*/
--#include "EfiShelllib.h"
-+#include "EfiShellLib.h"
+ // Global Variables
  //
- // ShellLibInitialized - TRUE once InitializeShellLib() is called for the first time
-Index: Library/IO.h
-===================================================================
---- Library/IO.h       (revision 64)
-+++ Library/IO.h       (working copy)
-@@ -157,4 +157,6 @@
-   );
--#endif
-\ No newline at end of file
-+#endif
-+
-+
-Index: Library/FileIO.h
-===================================================================
---- Library/FileIO.h   (revision 64)
-+++ Library/FileIO.h   (working copy)
-@@ -208,4 +208,6 @@
-   IN SIMPLE_READ_FILE               SimpleReadHandle
-   );
--#endif
-\ No newline at end of file
-+#endif
-+
-+
-Index: Library/Str.h
-===================================================================
---- Library/Str.h      (revision 64)
-+++ Library/Str.h      (working copy)
-@@ -248,3 +248,4 @@
-   );
- #endif
-+
-Index: Library/Mem.c
-===================================================================
---- Library/Mem.c      (revision 64)
-+++ Library/Mem.c      (working copy)
-@@ -21,7 +21,7 @@
- --*/
--#include "EfiShelllib.h"
-+#include "EfiShellLib.h"
- VOID
- SetMem (
-Index: Library/RtData.c
-===================================================================
---- Library/RtData.c   (revision 64)
-+++ Library/RtData.c   (working copy)
-@@ -21,7 +21,7 @@
- --*/
--#include "EfiShelllib.h"
-+#include "EfiShellLib.h"
+-EFI_HII_HANDLE  HiiHandle;
++STATIC EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiOpeninfoGuid = EFI_OPENINFO_GUID;
+ SHELL_VAR_CHECK_ITEM    OpeninfoCheckList[] = {
+   {
+@@ -55,7 +55,7 @@ SHELL_VAR_CHECK_ITEM    OpeninfoCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   }
+ };
  
- //
- // RT - pointer to the runtime table
-Index: Library/Event.c
-===================================================================
---- Library/Event.c    (revision 64)
-+++ Library/Event.c    (working copy)
-@@ -21,7 +21,7 @@
+diff --git a/openinfo/openinfo.h b/openinfo/openinfo.h
+index fdd070d..56ed64a 100644
+--- a/openinfo/openinfo.h
++++ b/openinfo/openinfo.h
+@@ -33,3 +33,4 @@ Revision History
+   }
  
- --*/
+ #endif
++
+diff --git a/openinfo/openinfo.inf b/openinfo/openinfo.inf
+index 638462d..8bc1e18 100644
+--- a/openinfo/openinfo.inf
++++ b/openinfo/openinfo.inf
+@@ -41,24 +41,24 @@ COMPONENT_TYPE       = APPLICATION
  
--#include "EfiShelllib.h"
-+#include "EfiShellLib.h"
+ [sources.common]
+   OPeninfoStrings.uni
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   openinfo.c
+   openinfo.h
  
- EFI_EVENT
- LibCreateProtocolNotifyEvent (
-Index: Library/Mem.h
-===================================================================
---- Library/Mem.h      (revision 64)
-+++ Library/Mem.h      (working copy)
-@@ -73,4 +73,6 @@
-   IN UINTN    Size
-   );
+   
+ [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./
  
--#endif
-\ No newline at end of file
-+#endif
-+
-+
-Index: Library/Event.h
-===================================================================
---- Library/Event.h    (revision 64)
-+++ Library/Event.h    (working copy)
-@@ -50,4 +50,6 @@
-   OUT EFI_INPUT_KEY                 *Key
-   );
+ [libraries.common]  
+   EfiShellLib
+@@ -73,7 +73,11 @@ COMPONENT_TYPE       = APPLICATION
  
--#endif
-\ No newline at end of file
-+#endif
-+
+ [nmake.common]
+   IMAGE_ENTRY_POINT=OpeninfoMain
 +
-Index: Library/EfiShellLib.h
-===================================================================
---- Library/EfiShellLib.h      (revision 64)
-+++ Library/EfiShellLib.h      (working copy)
-@@ -25,7 +25,7 @@
- #define _EFI_SHELL_LIB_INCLUDE_
++[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
+   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_BOOTSHELL
  
- #include "Tiano.h"
--#include "ShellEnv.h"
-+#include "shellenv.h"
- #include "pci22.h"
++[nmake.ARM, nmake.AARCH64]
++  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
+diff --git a/pci/pci.c b/pci/pci.c
+index 8dc0dba..bb587c9 100644
+--- a/pci/pci.c
++++ b/pci/pci.c
+@@ -334,7 +334,7 @@ PCIE_EXPLAIN_STRUCT PcieExplainList[] = {
+   {
+     0,
+     0,
+-    0,
++    (PCIE_CAPREG_FIELD_WIDTH)0,
+     NULL,
+     PcieExplainTypeMax
+   }
+@@ -344,7 +344,7 @@ PCIE_EXPLAIN_STRUCT PcieExplainList[] = {
+ // Global Variables
+ //
+ PCI_CONFIG_SPACE  *mConfigSpace;
+-EFI_HII_HANDLE    HiiHandle;
++STATIC EFI_HII_HANDLE    HiiHandle;
+ EFI_GUID          EfiPciGuid = EFI_PCI_GUID;
+ SHELL_VAR_CHECK_ITEM    PciCheckList[] = {
+   {
+@@ -375,7 +375,7 @@ SHELL_VAR_CHECK_ITEM    PciCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   }
+ };
  
- #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)
-@@ -152,7 +152,7 @@
- #include EFI_PROTOCOL_DEFINITION (PlatformToDriverConfiguration)
+@@ -1034,7 +1034,7 @@ Returns:
+   Status = BS->HandleProtocol (
+                 Handle,
+                 &gEfiPciRootBridgeIoProtocolGuid,
+-                IoDev
++                (VOID**)IoDev
+                 );
  
- #include "efilibplat.h"
--#include "efipart.h"
-+#include "EfiPart.h"
- #include "ShellDebug.h"
- #include "CRC.h"
- #include "DPath.h"
-@@ -358,3 +358,4 @@
-   );
+   if (EFI_ERROR (Status)) {
+@@ -1043,7 +1043,7 @@ Returns:
+   //
+   // 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;
+@@ -1237,7 +1237,7 @@ Returns:
+     PrintToken (STRING_TOKEN (STR_PCI2_SINGLE_FUNCTION), HiiHandle);
+   }
  
- #endif
+-  HeaderType = (UINT8) (Common->HeaderType & 0x7f);
++  HeaderType = (PCI_HEADER_TYPE) (Common->HeaderType & 0x7f);
+   switch (HeaderType) {
+   case PciDevice:
+     PrintToken (STRING_TOKEN (STR_PCI2_PCI_DEVICE), HiiHandle);
+@@ -1300,6 +1300,9 @@ Returns:
+               );
+     CapPtr = ConfigSpace->NonCommon.CardBus.CapabilitiesPtr;
+     break;
 +
-Index: Library/Handle.c
-===================================================================
---- Library/Handle.c   (revision 64)
-+++ Library/Handle.c   (working copy)
-@@ -21,7 +21,7 @@
- --*/
++  default:
++    Status = EFI_UNSUPPORTED;
+   }
+   //
+   // If Status bit4 is 1, dump or explain capability structure
+@@ -1956,7 +1959,7 @@ Returns:
+     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
+     );
  
--#include "EfiShelllib.h"
-+#include "EfiShellLib.h"
+   Io32Bit = (BOOLEAN) (CardBus->IoBase1 & PCI_BIT_0);
+@@ -1966,7 +1969,7 @@ Returns:
+     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
+     );
  
- EFI_STATUS
- LibLocateHandle (
-@@ -131,7 +131,6 @@
-   EFI_HANDLE                *BlockIoBuffer;
-   EFI_DEVICE_PATH_PROTOCOL  *DevicePath;
-   UINTN                     Index;
--  EFI_DEVICE_PATH_PROTOCOL  *Start;
-   EFI_DEVICE_PATH_PROTOCOL  *Next;
-   EFI_DEVICE_PATH_PROTOCOL  *DevPath;
-   HARDDRIVE_DEVICE_PATH     *HardDriveDevicePath;
-@@ -204,7 +203,6 @@
-       PreviousNodeIsHardDriveDevicePath = FALSE;
+   //
+diff --git a/pci/pci.h b/pci/pci.h
+index 0716bee..42a5870 100644
+--- a/pci/pci.h
++++ b/pci/pci.h
+@@ -30,7 +30,7 @@ Revision History
+     0x388da6c3, 0x3447, 0x4b1f, 0xa0, 0xba, 0xa9, 0xe8, 0xa2, 0x87, 0xf1, 0x76 \
+   }
  
-       DevPath = DevicePath;
--      Start = DevPath;
-       //
-       // Check for end of device path type
-       //
-@@ -796,14 +794,12 @@
-   UINTN                               OpenInfoIndex;
-   UINTN                               ChildIndex;
-   BOOLEAN                             DriverBindingHandleIndexValid;
--  BOOLEAN                             ControllerHandleIndexValid;
+-#include "TIANO.h"
++#include "Tiano.h"
  
-   DriverBindingHandleIndexValid = FALSE;
-   if (DriverBindingHandleIndex != NULL) {
-     *DriverBindingHandleIndex = 0xffffffff;
-   }
+ typedef enum {
+   PciDevice,
+@@ -477,3 +477,4 @@ typedef struct {
+ #pragma pack()
  
--  ControllerHandleIndexValid = FALSE;
-   if (ControllerHandleIndex != NULL) {
-     *ControllerHandleIndex = 0xffffffff;
-   }
-@@ -847,7 +843,6 @@
+ #endif // _PCI_H_
++
+diff --git a/pci/pci.inf b/pci/pci.inf
+index d4499d6..2c559a5 100644
+--- a/pci/pci.inf
++++ b/pci/pci.inf
+@@ -41,7 +41,7 @@ COMPONENT_TYPE       = APPLICATION
  
-     if (ControllerHandle != NULL && ControllerHandleIndex != NULL && (*HandleBuffer)[HandleIndex] == ControllerHandle) {
-       *ControllerHandleIndex      = (UINT32) HandleIndex;
--      ControllerHandleIndexValid  = TRUE;
-     }
+ [sources.common]
+   PciStrings.uni
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   pci.c
+   pci.h
+   pci_class.h
+@@ -49,17 +49,17 @@ COMPONENT_TYPE       = APPLICATION
  
-   }
-@@ -1305,7 +1300,7 @@
-     Status = BS->HandleProtocol (
-                   Handles[Index],
-                   ProtocolGuid,
--                  Interface
-+                  (VOID**)Interface
-                   );
+ [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./
  
-     if (!EFI_ERROR (Status)) {
-Index: Library/Misc.c
-===================================================================
---- Library/Misc.c     (revision 64)
-+++ Library/Misc.c     (working copy)
-@@ -21,7 +21,7 @@
+ [libraries.common]  
+   EfiShellLib
+@@ -74,7 +74,11 @@ COMPONENT_TYPE       = APPLICATION
  
- --*/
+ [nmake.common]
+   IMAGE_ENTRY_POINT=PciDump
++
++[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
+   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_BOOTSHELL
  
--#include "EfiShelllib.h"
-+#include "EfiShellLib.h"
++[nmake.ARM, nmake.AARCH64]
++  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
+diff --git a/pci/pci_class.c b/pci/pci_class.c
+index caffe6d..14aa88d 100644
+--- a/pci/pci_class.c
++++ b/pci/pci_class.c
+@@ -30,7 +30,7 @@ Revision History
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++STATIC EFI_HII_HANDLE  HiiHandle;
  
- #if (PLATFORM == NT32)
- #define LOCAL_EFI_WIN_NT_THUNK_PROTOCOL_GUID \
-@@ -348,7 +348,7 @@
-   ASSERT (Buffer != NULL);
+ PCI_CLASS_ENTRY gClassStringList[];
  
-   if (mShellEnv == NULL) {
--    Status = LibLocateProtocol (&ShellEnvProtocol, &mShellEnv);
-+    Status = LibLocateProtocol (&ShellEnvProtocol, (VOID**)&mShellEnv);
-     if (EFI_ERROR (Status)) {
-       mShellEnv = NULL;
-     }
-@@ -1171,7 +1171,7 @@
-       Status = BS->HandleProtocol (
-                     Image->DeviceHandle,
-                     &gEfiFirmwareVolumeProtocolGuid,
--                    &FV
-+                    (VOID**)&FV
-                     );
-       if (!EFI_ERROR (Status)) {
-         Status = FV->ReadSection (
-@@ -1192,7 +1192,7 @@
-         Status = BS->HandleProtocol (
-                       Image->DeviceHandle,
-                       &gEfiFirmwareVolume2ProtocolGuid,
--                      &FV2
-+                      (VOID**)&FV2
-                       );
-         if (!EFI_ERROR (Status)) {
-           Status = FV2->ReadSection (
-@@ -1339,7 +1339,7 @@
- {
-   EFI_STATUS      Status;
-   CHAR16          *String;
--  EFI_HII_HANDLE  HiiHandle;
-+  STATIC EFI_HII_HANDLE  HiiHandle;
+diff --git a/pci/pci_class.h b/pci/pci_class.h
+index c7fff0c..0d6bea6 100644
+--- a/pci/pci_class.h
++++ b/pci/pci_class.h
+@@ -24,7 +24,7 @@ Revision History
+ #ifndef _PCI_CLASS_H_
+ #define _PCI_CLASS_H_
  
-   ASSERT (Str);
+-#include "TIANO.h"  // for UINT32 etc.
++#include "Tiano.h"  // for UINT32 etc.
+ #define PCI_CLASS_STRING_LIMIT  54
+ //
+ // Printable strings for Pci class code
+@@ -58,3 +58,4 @@ PciPrintClassCode (
+   );
  
-@@ -1730,6 +1730,8 @@
-     return L"X64";
-   case EFI_IMAGE_MACHINE_IA64:
-     return L"IA64";
-+  case EFI_IMAGE_MACHINE_AARCH64:
-+    return L"AARCH64";
-   default:
-     return L"UNKNOWN";
+ #endif // _PCI_CLASS_H_
++
+diff --git a/reset/reset.c b/reset/reset.c
+index 497b693..a5208b9 100644
+--- a/reset/reset.c
++++ b/reset/reset.c
+@@ -61,7 +61,7 @@ SHELL_VAR_CHECK_ITEM    ResetCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
    }
-@@ -2544,4 +2546,5 @@
+ };
+diff --git a/reset/reset.h b/reset/reset.h
+index 737fa11..e81c69a 100644
+--- a/reset/reset.h
++++ b/reset/reset.h
+@@ -32,3 +32,4 @@ Revision History
    }
  
-   return Status;
--}
-\ No newline at end of file
-+}
+ #endif
 +
-Index: Library/Perf.c
-===================================================================
---- Library/Perf.c     (revision 64)
-+++ Library/Perf.c     (working copy)
-@@ -19,7 +19,7 @@
+diff --git a/reset/reset.inf b/reset/reset.inf
+index 3af6b2c..5d36446 100644
+--- a/reset/reset.inf
++++ b/reset/reset.inf
+@@ -40,24 +40,24 @@ COMPONENT_TYPE       = APPLICATION
  
- --*/
  
--#include "EfiShelllib.h"
-+#include "EfiShellLib.h"
+ [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./
  
- #include EFI_PROTOCOL_DEFINITION (Performance)
+ [libraries.common]  
+   EfiShellLib
+@@ -72,7 +72,11 @@ COMPONENT_TYPE       = APPLICATION
  
-Index: Library/IPF/efilibplat.h
-===================================================================
---- Library/IPF/efilibplat.h   (revision 64)
-+++ Library/IPF/efilibplat.h   (working copy)
-@@ -35,3 +35,4 @@
- #define MIN_ALIGNMENT_SIZE  8
+ [nmake.common]
+   IMAGE_ENTRY_POINT=InitializeReset
++
++[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
+   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_BOOTSHELL
++[nmake.ARM, nmake.AARCH64]
++  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
+diff --git a/rm/rm.c b/rm/rm.c
+index 792a5dc..7d0c2c8 100644
+--- a/rm/rm.c
++++ b/rm/rm.c
+@@ -54,7 +54,7 @@ SHELL_VAR_CHECK_ITEM    RmCheckList[] = {
+     NULL,
+     0,
+     0,
+-    FALSE
++    (SHELL_VAR_CHECK_FLAG_TYPE) FALSE
+   }
+ };
+diff --git a/rm/rm.h b/rm/rm.h
+index 837ca7c..e2d5117 100644
+--- a/rm/rm.h
++++ b/rm/rm.h
+@@ -59,3 +59,4 @@ RemoveRM (
+   );
  
  #endif
 +
-Index: Library/IPF/palproc.h
-===================================================================
---- Library/IPF/palproc.h      (revision 64)
-+++ Library/IPF/palproc.h      (working copy)
-@@ -58,3 +58,4 @@
- #define PAL_MC_REGISTER_MEM   0x001b
+diff --git a/rm/rm.inf b/rm/rm.inf
+index 0da05e0..45b5edb 100644
+--- a/rm/rm.inf
++++ b/rm/rm.inf
+@@ -41,23 +41,23 @@ COMPONENT_TYPE       = APPLICATION
  
- #endif // _PALPROC_H
-+
-Index: Library/IPF/libsalpal.h
-===================================================================
---- Library/IPF/libsalpal.h    (revision 64)
-+++ Library/IPF/libsalpal.h    (working copy)
-@@ -74,4 +74,4 @@
-   IN  UINT64    Arg8
-   );
+ [sources.common]
+    RmStrings.uni      
+-   ..\ShCommonStrings.uni   
++   ../ShCommonStrings.uni   
+    rm.h                        
+    rm.c                 
  
--#endif
-\ No newline at end of file
-+#endif
-Index: Library/ConsistMapping.c
-===================================================================
---- Library/ConsistMapping.c   (revision 64)
-+++ Library/ConsistMapping.c   (working copy)
-@@ -21,7 +21,7 @@
+ [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
+@@ -72,7 +72,11 @@ COMPONENT_TYPE       = APPLICATION
  
--#include "EfiShelllib.h"
-+#include "EfiShellLib.h"
+ [nmake.common]
+   IMAGE_ENTRY_POINT=InitializeRM
++
++[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
+   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_BOOTSHELL
  
- MTD_NAME  mMTDName[] = {
-   {
-Index: Library/DPath.c
-===================================================================
---- Library/DPath.c    (revision 64)
-+++ Library/DPath.c    (working copy)
-@@ -20,7 +20,7 @@
++[nmake.ARM, nmake.AARCH64]
++  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
+diff --git a/sermode/sermode.c b/sermode/sermode.c
+index b59e801..d03c621 100644
+--- a/sermode/sermode.c
++++ b/sermode/sermode.c
+@@ -35,7 +35,7 @@ extern UINT8    STRING_ARRAY_NAME[];
  
- --*/
+ #include EFI_PROTOCOL_DEFINITION (SerialIo)
  
--#include "EfiShelllib.h"
-+#include "EfiShellLib.h"
+-EFI_HII_HANDLE  HiiHandle;
++STATIC EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiSermodeGuid = EFI_SERMODEB_GUID;
+ SHELL_VAR_CHECK_ITEM    SermodeCheckList[] = {
+   {
+@@ -54,7 +54,7 @@ SHELL_VAR_CHECK_ITEM    SermodeCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   }
+ };
  
- EFI_GUID mEfiDevicePathMessagingUartFlowControlGuid = DEVICE_PATH_MESSAGING_UART_FLOW_CONTROL;
+@@ -104,7 +104,7 @@ iDisplaySettings (
  
-@@ -1468,7 +1468,7 @@
-   
-   Status = LibLocateProtocol (
-              &gEfiDevicePathToTextProtocolGuid,
--             &DevPathToText
-+             (VOID**)&DevPathToText
-              );
-   if (!EFI_ERROR (Status)) {
-     ToText = DevPathToText->ConvertDevicePathToText (
-@@ -1766,7 +1766,7 @@
-       Status = BS->HandleProtocol (
-                     Device,
-                     Protocol,
--                    Interface
-+                    (VOID**)Interface
-                     );
      }
+-    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 @@ Returns:
+       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 --git a/sermode/sermode.h b/sermode/sermode.h
+index 71a719b..7f38d4c 100644
+--- a/sermode/sermode.h
++++ b/sermode/sermode.h
+@@ -32,3 +32,4 @@ Revision History
    }
-Index: Library/Handle.h
-===================================================================
---- Library/Handle.h   (revision 64)
-+++ Library/Handle.h   (working copy)
-@@ -161,3 +161,4 @@
-   );
  
- #endif
-+
-Index: Library/Misc.h
-===================================================================
---- Library/Misc.h     (revision 64)
-+++ Library/Misc.h     (working copy)
-@@ -258,3 +258,4 @@
-   );
+ #endif
++
+diff --git a/sermode/sermode.inf b/sermode/sermode.inf
+index 71f3c66..4954400 100644
+--- a/sermode/sermode.inf
++++ b/sermode/sermode.inf
+@@ -40,24 +40,24 @@ COMPONENT_TYPE       = APPLICATION
+ [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
+@@ -72,7 +72,11 @@ COMPONENT_TYPE       = APPLICATION
  
- #endif
+ [nmake.common]
+   IMAGE_ENTRY_POINT=InitializeSerialMode
 +
-Index: Library/ConsistMapping.h
-===================================================================
---- Library/ConsistMapping.h   (revision 64)
-+++ Library/ConsistMapping.h   (working copy)
-@@ -79,4 +79,6 @@
-   IN  VOID *Buffer2
-   );
++[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
+   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_BOOTSHELL
  
--#endif
-\ No newline at end of file
-+#endif
-+
-+
-Index: Library/Init.c
-===================================================================
---- Library/Init.c     (revision 64)
-+++ Library/Init.c     (working copy)
-@@ -20,7 +20,7 @@
++[nmake.ARM, nmake.AARCH64]
++  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
+diff --git a/shellenv/Connect.c b/shellenv/Connect.c
+index 71ecf0b..51ec714 100644
+--- a/shellenv/Connect.c
++++ b/shellenv/Connect.c
+@@ -51,7 +51,7 @@ SHELL_VAR_CHECK_ITEM    ConnectCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   }
+ };
  
- --*/
+@@ -78,7 +78,7 @@ SHELL_VAR_CHECK_ITEM          DisconnectCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   }
+ };
  
--#include "EfiShelllib.h"
-+#include "EfiShellLib.h"
+@@ -105,7 +105,7 @@ SHELL_VAR_CHECK_ITEM          ReconnectCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   }
+ };
  
- extern EFI_UNICODE_COLLATION_PROTOCOL LibStubUnicodeInterface;
+@@ -333,7 +333,7 @@ Returns:
+     Status = BS->HandleProtocol (
+                   HandleBuffer[0],
+                   &gEfiDevicePathProtocolGuid,
+-                  &Instance
++                  (VOID**)&Instance
+                   );
+     if (EFI_ERROR (Status)) {
+       DriverBindingHandleCount  = 1;
+@@ -349,7 +349,7 @@ Returns:
+     Status = BS->HandleProtocol (
+                   HandleBuffer[0],
+                   &gEfiDevicePathProtocolGuid,
+-                  &Instance
++                  (VOID**)&Instance
+                   );
+     if (EFI_ERROR (Status)) {
+       PrintToken (
+@@ -368,7 +368,7 @@ Returns:
+     Status = BS->HandleProtocol (
+                   HandleBuffer[1],
+                   &gEfiDriverBindingProtocolGuid,
+-                  &Instance
++                  (VOID**)&Instance
+                   );
+     if (EFI_ERROR (Status)) {
+       PrintToken (
+@@ -407,7 +407,7 @@ Returns:
+       Status = BS->HandleProtocol (
+                     AllHandleBuffer[Index],
+                     &gEfiDriverBindingProtocolGuid,
+-                    &Instance
++                    (VOID**)&Instance
+                     );
+       if (EFI_ERROR (Status)) {
+         DeviceHandleBuffer[DeviceHandleCount++] = AllHandleBuffer[Index];
+@@ -1052,7 +1052,7 @@ SEnvConnectConsole (
+     Status = BS->HandleProtocol (
+                   *ConsoleHandle,
+                   ConsoleGuid,
+-                  &Interface
++                  (VOID**)&Interface
+                   );
+   } 
  
-Index: Library/DPath.h
-===================================================================
---- Library/DPath.h    (revision 64)
-+++ Library/DPath.h    (working copy)
-@@ -24,7 +24,7 @@
- #ifndef _D_PATH_H
- #define _D_PATH_H
+@@ -1079,7 +1079,7 @@ SEnvConnectConsole (
+         Status = BS->HandleProtocol (
+                       AllHandleBuffer[Index],
+                       &gEfiDevicePathProtocolGuid,
+-                      &Interface
++                      (VOID**)&Interface
+                       );
+         if (!EFI_ERROR (Status)) {
+           ConsoleIndex = Index;
+@@ -1095,7 +1095,7 @@ SEnvConnectConsole (
+     BS->HandleProtocol (
+           *ConsoleHandle,
+           ConsoleGuid,
+-          ConsoleInterface
++          (VOID**)ConsoleInterface
+           );
+   }
  
--#define NextStrA(a) ((UINT8 *) (((UINT8 *) (a)) + strlena (a) + 1))
-+#define NextStrA(a) (CHAR8*)((UINT8 *) (((UINT8 *) (a)) + strlena (a) + 1))
+diff --git a/shellenv/ConsoleProxy.c b/shellenv/ConsoleProxy.c
+index 15e6bfe..0978251 100644
+--- a/shellenv/ConsoleProxy.c
++++ b/shellenv/ConsoleProxy.c
+@@ -1483,7 +1483,7 @@ ProxyConInFlashState (
  
- #include EFI_GUID_DEFINITION (PcAnsi)
+   if (!EFI_ERROR (TimerStatus)) {
+     mConInProxy.InputState = INPUT_STATE_DEFAULT;
+-    BS->SetTimer (
++    Status = BS->SetTimer (
+           mConInProxy.TwoSecondTimeOut,
+           TimerCancel,
+           0
+@@ -1496,9 +1496,11 @@ ProxyConInFlashState (
+                   (UINT64) 20000000
+                   );
+     mConInProxy.InputState = INPUT_STATE_ESC;
++  } else {
++    Status = EFI_UNSUPPORTED;
+   }
  
-@@ -153,3 +153,4 @@
-   );
+-  return EFI_SUCCESS;
++  return Status;
+ }
  
- #endif
-+
-Index: Library/HiiSupport.c
-===================================================================
---- Library/HiiSupport.c       (revision 64)
-+++ Library/HiiSupport.c       (working copy)
-@@ -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
-Index: Library/CRC.c
-===================================================================
---- Library/CRC.c      (revision 64)
-+++ Library/CRC.c      (working copy)
-@@ -21,7 +21,7 @@
+ EFI_STATUS
+diff --git a/shellenv/batch.c b/shellenv/batch.c
+index 24fef35..f725630 100644
+--- a/shellenv/batch.c
++++ b/shellenv/batch.c
+@@ -2388,7 +2388,6 @@ Returns:
  
  --*/
+ {
+-  BOOLEAN             EndOfFile;
+   EFI_STATUS          Status;
+   UINTN               BufSize;
+   CHAR16              *CommandLine;
+@@ -2396,7 +2395,6 @@ Returns:
+   EFI_BATCH_STATEMENT *Stmt;
+   ENV_SHELL_INTERFACE NewShell;
+   UINTN               GotoTargetStatus;
+-  UINTN               SkippedIfCount;
+   BOOLEAN             EchoStateValid;
+   BOOLEAN             EchoState;
+   EFI_STATUS          ExecuteResult;
+@@ -2409,7 +2407,6 @@ Returns:
+   //  Initialize
+   //
+   Status          = EFI_SUCCESS;
+-  EndOfFile       = FALSE;
+   BufSize         = 0;
+   EchoStateValid  = FALSE;
+   EchoState       = FALSE;
+@@ -2468,14 +2465,6 @@ Returns:
+             EFI_BATCH_SCRIPT_SIGNATURE
+             );
  
--#include "EfiShelllib.h"
-+#include "EfiShellLib.h"
- UINT32  CRCTable[256] = {
-   0x00000000,
-Index: Library/HiiSupport.h
-===================================================================
---- Library/HiiSupport.h       (revision 64)
-+++ Library/HiiSupport.h       (working copy)
-@@ -142,3 +142,4 @@
- ;\r
\r
- #endif\r
-+
-Index: Library/CRC.h
-===================================================================
---- Library/CRC.h      (revision 64)
-+++ Library/CRC.h      (working copy)
-@@ -53,4 +53,6 @@
-   UINTN Size
-   );
--#endif
-\ No newline at end of file
-+#endif
-+
-+
-Index: Library/EfiShellLib.inf
-===================================================================
---- Library/EfiShellLib.inf    (revision 64)
-+++ Library/EfiShellLib.inf    (working copy)
-@@ -45,34 +45,42 @@
-   HiiSupport.c
- [sources.ia32]
--  ia32\math.c
--  ia32\initplat.c
-+  IA32/math.c
-+  IA32/initplat.c
+-  //
+-  // Iterate through the file, reading a line at a time and executing each
+-  // line as a shell command.  Nested shell scripts will come through
+-  // this code path recursively.
+-  //
+-  EndOfFile       = FALSE;
+-  SkippedIfCount  = 0;
+-
+   while (1) {
+     //
+     // Read a command line from the file
+@@ -2681,7 +2670,7 @@ Returns:
+       LastError = ExecuteResult;
+     }
  
- [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
+-    if (ExecuteResult == -1) {
++    if (ExecuteResult == (EFI_STATUS) -1) {
+       SE2->DecrementShellNestingLevel ();
+       if (SE2->IsRootShell ()) {
+         goto Done;
+@@ -2774,7 +2763,7 @@ Done:
+     Status = _ResumePreviousMode ();
+   }
  
- [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
+-  if (LastError == -1) {
++  if (LastError == (UINTN) -1) {
+     return LastError;
+   } else {
+     return Status;
+diff --git a/shellenv/conio.c b/shellenv/conio.c
+index 2c963f5..8da67a1 100644
+--- a/shellenv/conio.c
++++ b/shellenv/conio.c
+@@ -889,7 +889,7 @@ Returns:
+     //
+     // If we need to update the output do so now
+     //
+-    if (Update != -1) {
++    if (Update != (UINTN) -1) {
+       if ((ConOut->Mode->CursorColumn != (INT32) Column) ||  (ConOut->Mode->CursorRow != (INT32) Row)) {
+         PrintAt (Column, Row, L"%s%.*s", Str + Update, Delete, L"");
+       } else {
+diff --git a/shellenv/dprot.c b/shellenv/dprot.c
+index 91faa50..9042b72 100644
+--- a/shellenv/dprot.c
++++ b/shellenv/dprot.c
+@@ -23,7 +23,7 @@ Revision History
  
-+[sources.ARM]
-+  IPF/math.c
-+  IA32/initplat.c
-+
-+[sources.AARCH64]
-+  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
+ #include "shelle.h"
+ #include "shellenvguid.h"
+-#include "acpi.h"
++#include "Acpi.h"
  
- [libraries.common]
-   EdkFrameworkProtocolLib
-@@ -81,4 +89,7 @@
-   EfiGuidLib
-   EdkGuidLib
+ STATIC CHAR16 *SEnvDP_IlleagalStr[] = { L"Illegal" };
  
-+[libraries.ARM]
-+  CompilerIntrinsicsLib, CompilerIntrinsicsLib
-+
- [nmake.common]
-Index: Library/IA32/efilibplat.h
-===================================================================
---- Library/IA32/efilibplat.h  (revision 64)
-+++ Library/IA32/efilibplat.h  (working copy)
-@@ -34,4 +34,4 @@
+@@ -328,7 +328,6 @@ Returns:
+   I2O_DEVICE_PATH           *I2ODevicePath;
+   MAC_ADDR_DEVICE_PATH      *MacAddrDevicePath;
+   IPv4_DEVICE_PATH          *IPv4DevicePath;
+-  IPv6_DEVICE_PATH          *IPv6DevicePath;
+   INFINIBAND_DEVICE_PATH    *InfinibandDevicePath;
+   UART_DEVICE_PATH          *UartDevicePath;
+   VENDOR_DEVICE_PATH        *VendorDevicePath;
+@@ -464,7 +463,6 @@ Returns:
+     break;
  
- #define MIN_ALIGNMENT_SIZE  4
+   case MSG_IPv6_DP:
+-    IPv6DevicePath = (IPv6_DEVICE_PATH *) DevicePath;
+     PrintToken (STRING_TOKEN (STR_SHELLENV_DPROT_NOT_AVAIL), HiiEnvHandle);
+     break;
  
--#endif
-\ No newline at end of file
-+#endif
-Index: Library/ShellDebug.c
-===================================================================
---- Library/ShellDebug.c       (revision 64)
-+++ Library/ShellDebug.c       (working copy)
-@@ -19,7 +19,7 @@
+@@ -1054,6 +1052,8 @@ Returns:
+       Magic = EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC;
+     } else if (NtHdr->FileHeader.Machine == EFI_IMAGE_MACHINE_X64) {
+       Magic = EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC;
++    } else if (NtHdr->FileHeader.Machine == EFI_IMAGE_MACHINE_AARCH64) {
++      Magic = EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC;
+     } else {
+       Magic = NtHdr->OptionalHeader.Magic;
+     }
+@@ -1294,6 +1294,8 @@ Returns:
+     case EfiIsaAcpiResourceInterrupt:
+       PrintToken (STRING_TOKEN (STR_SHELLENV_DPROT_INT), HiiEnvHandle);
+       break;
++    case EfiIsaAcpiResourceEndOfList:
++      return;
+     }
  
- --*/
+     if (IsaIo->ResourceList->ResourceItem[Index].StartRange == IsaIo->ResourceList->ResourceItem[Index].EndRange) {
+diff --git a/shellenv/echo.c b/shellenv/echo.c
+index 52b5464..9cf3482 100644
+--- a/shellenv/echo.c
++++ b/shellenv/echo.c
+@@ -52,7 +52,7 @@ SHELL_VAR_CHECK_ITEM    EchoCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   }
+ };
  
--#include "EfiShelllib.h"
-+#include "EfiShellLib.h"
- #include EFI_PROTOCOL_DEFINITION (DebugAssert)
+diff --git a/shellenv/exec.c b/shellenv/exec.c
+index a6c1b73..5e4ea8e 100644
+--- a/shellenv/exec.c
++++ b/shellenv/exec.c
+@@ -105,7 +105,7 @@ SHELL_VAR_CHECK_ITEM    RedirCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   }
+ };
  
- EFI_DEBUG_ASSERT_PROTOCOL *mDebugAssert = NULL;
-Index: Library/ShellDebug.h
-===================================================================
---- Library/ShellDebug.h       (revision 64)
-+++ Library/ShellDebug.h       (working copy)
-@@ -99,3 +99,4 @@
-   );
- #endif
-     
-+
-Index: Library/VarCheck.c
-===================================================================
---- Library/VarCheck.c (revision 64)
-+++ Library/VarCheck.c (working copy)
-@@ -21,7 +21,7 @@
+@@ -126,7 +126,7 @@ SHELL_VAR_CHECK_ITEM    ExitCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   }
+ };
  
- --*/
+@@ -1270,7 +1270,6 @@ Returns:
+   SHELLENV_INTERNAL_COMMAND     InternalCommand;
+   EFI_HANDLE                    NewImage;
+   EFI_FILE_HANDLE               Script;
+-  BOOLEAN                       ShowHelp;
+   BOOLEAN                       ConsoleContextSaved;
+   EFI_HANDLE                    SavedConsoleInHandle;
+   EFI_HANDLE                    SavedConsoleOutHandle;
+@@ -1292,7 +1291,6 @@ Returns:
+   //
+   Status                        = EFI_SUCCESS;
+   ParentShell                   = NULL;
+-  ShowHelp                      = FALSE;
+   ConsoleContextSaved           = FALSE;
+   SavedConIn                    = NULL;
+   SavedConOut                   = NULL;
+@@ -1557,7 +1555,7 @@ Returns:
+           );
  
--#include "EfiShelllib.h"
-+#include "EfiShellLib.h"
+     EFI_SHELL_APP_INIT (ParentImageHandle, ParentSystemTable);
+-    if (-2 == Status) {
++    if ((EFI_STATUS) -2 == Status) {
+       //
+       // if status = -2 we assume that a nested shell has just exited.
+       //
+@@ -1613,7 +1611,9 @@ Returns:
+ Done:
+   DEBUG_CODE (
+     if (EFI_ERROR (Status) && Output) {
+-      if ((Status == -1) || (Status == -2) || (Status == EFI_REDIRECTION_NOT_ALLOWED)
++      if ((Status == (EFI_STATUS) -1) 
++          || (Status == (EFI_STATUS) -2) 
++          || (Status == EFI_REDIRECTION_NOT_ALLOWED)
+           || (Status == EFI_REDIRECTION_SAME)) {
+       } else {
+         PrintToken (STRING_TOKEN (STR_SHELLENV_EXEC_EXIT_STATUS_CODE), HiiEnvHandle, Status);
+@@ -1674,7 +1674,7 @@ Done:
+     PrintToken (STRING_TOKEN (STR_SHELLENV_REDIR_NOT_ALLOWED), HiiEnvHandle);
+   }
  
- VOID
- LibCheckVarFreeVarList (
-Index: Library/Lock.c
-===================================================================
---- Library/Lock.c     (revision 64)
-+++ Library/Lock.c     (working copy)
-@@ -21,7 +21,7 @@
+-  if (Status != -1) {
++  if (Status != (EFI_STATUS) -1) {
+     //
+     // Don't Print on a "Disconnect All" exit. The ConOut device may not exist
+     //
+@@ -1872,7 +1872,7 @@ Returns:
+     return Status;
+   }
+   //
+-  // Processing foo: or foo:\
++  // Processing foo:\ or foo:
+   //
+   if (PathPos != -1 && Ptr1 == NULL) {
+     return Status;
+@@ -2638,7 +2638,6 @@ Returns:
+   EFI_STATUS          Status;
+   CHAR16              *Alias;
+   CHAR16              *SubstituteStr;
+-  CHAR16              *OldSubstituteStr;
+   BOOLEAN             Literal;
+   BOOLEAN             Comment;
+   BOOLEAN             IsVariable;
+@@ -2735,7 +2734,6 @@ Returns:
+         // Try to find a shell enviroment variable
+         //
+         QuoteCount        = 0;
+-        OldSubstituteStr  = SubstituteStr;
+         SubstituteStr     = Str + 1;
+         while (*SubstituteStr != '%' && *SubstituteStr != 0 && (!IsWhiteSpace (*SubstituteStr) || ParseState->Quote)) {
+           if (*SubstituteStr == '"') {
+diff --git a/shellenv/for.c b/shellenv/for.c
+index 99664ad..93ab1f2 100644
+--- a/shellenv/for.c
++++ b/shellenv/for.c
+@@ -24,7 +24,7 @@ Revision History
+ #include "shelle.h"
+ #include "shellenvguid.h"
  
- --*/
+-/*
++#if 0
+ BOOLEAN
+ CheckInterValue (
+   IN CHAR16                        *wszValueStr,
+@@ -190,7 +190,7 @@ Arguments:
+ Returns:
+   EFI_SUCCESS      The function finished sucessfully
  
--#include "EfiShelllib.h"
-+#include "EfiShellLib.h"
+---
++--*/
+ {
+   EFI_BATCH_STATEMENT                *Stmt;
+   EFI_LIST_ENTRY                     FileList;
+@@ -326,7 +326,8 @@ Done:
+     
+   return Status;
+ }
+-*/
++#endif
++
+ EFI_STATUS
+ SEnvCmdForRun (
+   IN EFI_HANDLE                         hImageHandle,
+diff --git a/shellenv/help.c b/shellenv/help.c
+index b5e1673..ecb52fd 100644
+--- a/shellenv/help.c
++++ b/shellenv/help.c
+@@ -52,7 +52,7 @@ SHELL_VAR_CHECK_ITEM    HelpCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   }
+ };
  
- VOID
- InitializeLock (
-Index: Library/ShellEnvInt.c
-===================================================================
---- Library/ShellEnvInt.c      (revision 64)
-+++ Library/ShellEnvInt.c      (working copy)
-@@ -21,7 +21,7 @@
+diff --git a/shellenv/if.c b/shellenv/if.c
+index c6f0f51..766e6fb 100644
+--- a/shellenv/if.c
++++ b/shellenv/if.c
+@@ -59,7 +59,6 @@ Returns:
+   BOOLEAN     ExistNot;
+   UINTN       NotPos;
+   BOOLEAN     ExistI;
+-  UINTN       IPos;
+   EFI_STATUS  Status;
+   CHAR16      *FileName;
+   BOOLEAN     FileExists;
+@@ -122,10 +121,8 @@ Returns:
+     //
+     if ((StriCmp (SI->Argv[1], L"/i") == 0)) {
+       ExistI  = TRUE;
+-      IPos    = 1;
+     } else {
+       ExistI  = FALSE;
+-      IPos    = 0;
+     }
  
- --*/
+     NotPos = ExistI ? 2 : 1;
+diff --git a/shellenv/init.c b/shellenv/init.c
+index dad9002..458c6eb 100644
+--- a/shellenv/init.c
++++ b/shellenv/init.c
+@@ -143,7 +143,7 @@ Returns:
+     Status = BS->HandleProtocol (
+                   mOldSEnv->Handle,
+                   &ShellEnvProtocol,
+-                  &(mOldSEnv->Interface)
++                  (VOID**)&(mOldSEnv->Interface)
+                   );
+     ASSERT (!EFI_ERROR (Status));
+     Status = BS->ReinstallProtocolInterface (
+diff --git a/shellenv/map.c b/shellenv/map.c
+index 3ebf2b4..a595c41 100644
+--- a/shellenv/map.c
++++ b/shellenv/map.c
+@@ -185,7 +185,7 @@ SHELL_VAR_CHECK_ITEM    MapCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   }
+ };
  
--#include "EfiShelllib.h"
-+#include "EfiShellLib.h"
+@@ -206,7 +206,7 @@ SHELL_VAR_CHECK_ITEM      CdCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   }
+ };
  
- EFI_STATUS
- ShellExecute (
-Index: Library/VarCheck.h
-===================================================================
---- Library/VarCheck.h (revision 64)
-+++ Library/VarCheck.h (working copy)
-@@ -41,7 +41,7 @@
-   ARG_PARTIALLY_QUOTED  = 0x2,
-   ARG_FIRST_HALF_QUOTED = 0x4,
-   ARG_FIRST_CHAR_IS_ESC = 0x8
--};
-+} SHELL_ARG_EXPR;
+@@ -2038,13 +2038,13 @@ Returns:
+     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);
+   }
  
- typedef struct {
-   CHAR16                    *FlagStr;
-@@ -116,3 +116,4 @@
-   );
+   if (EFI_ERROR (Status)) {
+@@ -2630,7 +2630,6 @@ Returns:
+   UINTN           Index;
+   UINTN           HandleNo;
+   BOOLEAN         EchoStatus;
+-  BOOLEAN         Same;
+   CHAR16          MapStr[8];
+   EFI_LIST_ENTRY  *Link;
+   EFI_LIST_ENTRY  *Head;
+@@ -2729,11 +2728,6 @@ Returns:
+       }
+     }
+   }
+-  //
+-  // New code, try to make mapping list sequence unchanged if current device
+-  // paths and original device paths are the same
+-  //
+-  Same = FALSE;
  
- #endif
-+
-Index: Library/Lock.h
-===================================================================
---- Library/Lock.h     (revision 64)
-+++ Library/Lock.h     (working copy)
-@@ -45,4 +45,6 @@
-   IN FLOCK    *Lock
+   //
+   // Load handle table and handle protocol info so that we can get
+@@ -3410,4 +3404,4 @@ ClearHistoryMapping (
+     FreePool (HistoryNode->DevicePath);
+     FreePool (HistoryNode);
+   }
+-}
+\ No newline at end of file
++}
+diff --git a/shellenv/parsecmd.h b/shellenv/parsecmd.h
+index b14fb80..494e127 100644
+--- a/shellenv/parsecmd.h
++++ b/shellenv/parsecmd.h
+@@ -103,4 +103,5 @@ DeleteHeadArg (
+   IN OUT SHELL_PARSED_ARGS    *args
    );
  
 -#endif
 \ No newline at end of file
 +#endif
 +
-+
-Index: ShellFull.inf
-===================================================================
---- ShellFull.inf      (revision 64)
-+++ ShellFull.inf      (working copy)
-@@ -20,300 +20,310 @@
- #--*/
+diff --git a/shellenv/pause.c b/shellenv/pause.c
+index ca67cd3..9088ca6 100644
+--- a/shellenv/pause.c
++++ b/shellenv/pause.c
+@@ -47,7 +47,7 @@ SHELL_VAR_CHECK_ITEM    PauseCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   }
+ };
  
- [defines]
--BASE_NAME            = Shell
--FILE_GUID            = c57ad6b7-0515-40a8-9d21-551652854e37
-+BASE_NAME            = ShellFull
-+FILE_GUID            = 1903FB23-E526-4BDA-85E4-D68F2EEF0C20 
- COMPONENT_TYPE       = APPLICATION
+diff --git a/shellenv/protid.c b/shellenv/protid.c
+index 3edca2c..88ebb39 100644
+--- a/shellenv/protid.c
++++ b/shellenv/protid.c
+@@ -628,7 +628,7 @@ SHELL_VAR_CHECK_ITEM    DHCheckList[] = {
+     NULL,
+     0,
+     0,
+-    FALSE
++    (SHELL_VAR_CHECK_FLAG_TYPE) FALSE
+   }
+ };
  
- [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
-+  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
+@@ -1183,7 +1183,7 @@ GetDriverName (
+       *DriverName = LibDevicePathToStr (Image->FilePath);
+     }
+   } else {
+-    LibGetDriverName (DriverBindingHandle, Language, DriverName);
++    LibGetDriverName (DriverBindingHandle, (CHAR8*)Language, DriverName);
+   }
  
--  newshell\NshellStrings.uni
--  newshell\init.c
--  newshell\nshell.h
--  newshell\fakehii.c
-+  newshell/NshellStrings.uni
-+  newshell/init.c
-+  newshell/nshell.h
-+  newshell/fakehii.c
+   return EFI_SUCCESS;
+@@ -1539,7 +1539,7 @@ Returns:
  
-   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/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/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
-+  attrib/AttribStrings.uni
-+  attrib/attrib.c
-+  attrib/attrib.h
+     DevicePath      = NULL;
+     BestDeviceName  = NULL;
+-    Status          = BS->HandleProtocol (Handle, &gEfiDevicePathProtocolGuid, &DevicePath);
++    Status          = BS->HandleProtocol (Handle, &gEfiDevicePathProtocolGuid, (VOID**)&DevicePath);
  
--  cls\clsstrings.uni
--  cls\cls.c
-+  cls/clsstrings.uni
-+  cls/cls.c
+     Print (L"\n");
+     PrintToken (STRING_TOKEN (STR_SHELLENV_PROTID_CONTROLLER_NAME), HiiEnvHandle);
+@@ -1598,14 +1598,14 @@ Returns:
+         Image = FALSE;
+         Status = GetDriverName (
+                   DriverBindingHandleBuffer[Index],
+-                  Language,
++                  (UINT8*)Language,
+                   FALSE,
+                   &DriverName
+                   );
+         if (DriverName == NULL) {
+           Status = GetDriverName (
+                     DriverBindingHandleBuffer[Index],
+-                    Language,
++                    (UINT8*)Language,
+                     TRUE,
+                     &DriverName
+                     );
+@@ -1792,7 +1792,7 @@ Returns:
+   Status = GetDriverName (
+             Handle,
+-            Language,
++            (UINT8*)Language,
+             FALSE,
+             &DriverName
+             );
+@@ -1806,7 +1806,7 @@ Returns:
+   Status = GetDriverName (
+             Handle,
+-            Language,
++            (UINT8*)Language,
+             TRUE,
+             &DriverName
+             );
+@@ -1979,7 +1979,7 @@ Returns:
+       if (Prot->Handles[Index] == Handle) {
+         Dump    = Verbose ? Prot->DumpInfo : Prot->DumpToken;
+-        Status  = BS->HandleProtocol (Handle, &Prot->ProtocolId, &Interface);
++        Status  = BS->HandleProtocol (Handle, &Prot->ProtocolId, (VOID**)&Interface);
+         if (!EFI_ERROR (Status)) {
+           if (Verbose) {
+             for (Index1 = 0; Index1 < ProtocolBufferCount; Index1++) {
+@@ -2027,7 +2027,7 @@ Returns:
+           goto Done;
+         }
+-        Status = BS->HandleProtocol (Handle, ProtocolBuffer[Index1], &Interface);
++        Status = BS->HandleProtocol (Handle, ProtocolBuffer[Index1], (VOID**)&Interface);
+         if (!EFI_ERROR (Status)) {
+           PrintToken (
+             STRING_TOKEN (STR_SHELLENV_PROTID_TWO_VARS_HG_NEW),
+@@ -2660,8 +2660,6 @@ Returns:
  
--  cp\CpStrings.uni
--  cp\cp.h
--  cp\cp.c
-+  cp/CpStrings.uni
-+  cp/cp.h
-+  cp/cp.c
-  
--  date\DateStrings.uni
--  date\date.c
--  date\date.h
-+  date/DateStrings.uni
-+  date/date.c
-+  date/date.h
+ --*/
+ {
+-  EFI_STATUS                Status;
+-
+   DEVICEPATH_INFO           *DevicePathInfo;
  
--  load\LoadStrings.uni
--  load\load.c
--  load\load.h
-+  load/LoadStrings.uni
-+  load/load.c
-+  load/load.h
+   UINTN                     Index;
+@@ -2688,7 +2686,7 @@ Returns:
+   //
+   // Establish current device path info list
+   //
+-  Status = LibLocateHandle (
++  LibLocateHandle (
+             ByProtocol,
+             Protocol,
+             NULL,
+diff --git a/shellenv/shelle.h b/shellenv/shelle.h
+index 4338a21..88cebd5 100644
+--- a/shellenv/shelle.h
++++ b/shellenv/shelle.h
+@@ -2074,3 +2074,4 @@ SEnvDriverEFIVersionTok (
+   );
  
--  ls\LsStrings.uni
--  ls\ls.h
--  ls\ls.c
-+  ls/LsStrings.uni
-+  ls/ls.h
-+  ls/ls.c
+ #endif // _SHELLE_H_
++
+diff --git a/shellenv/shellenvguid.h b/shellenv/shellenvguid.h
+index 6766662..f1a1720 100644
+--- a/shellenv/shellenvguid.h
++++ b/shellenv/shellenvguid.h
+@@ -37,3 +37,4 @@ Revision History
+ extern EFI_HII_HANDLE HiiEnvHandle;
  
--  mkdir\MkdirStrings.uni
--  mkdir\mkdir.c
--  mkdir\mkdir.h
-+  mkdir/MkdirStrings.uni
-+  mkdir/mkdir.c
-+  mkdir/mkdir.h
+ #endif
++
+diff --git a/shellenv/var.c b/shellenv/var.c
+index cd86769..ae37344 100644
+--- a/shellenv/var.c
++++ b/shellenv/var.c
+@@ -110,7 +110,7 @@ SHELL_VAR_CHECK_ITEM    VarCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   }
+ };
  
--  mv\MvStrings.uni
--  mv\mv.c
--  mv\mv.h
-+  mv/MvStrings.uni
-+  mv/mv.c
-+  mv/mv.h
-  
--  reset\ResetStrings.uni
--  reset\reset.c
--  reset\reset.h
-+  reset/ResetStrings.uni
-+  reset/reset.c
-+  reset/reset.h
-   
--  rm\RmStrings.uni
--  rm\rm.h
--  rm\rm.c
-+  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
-+  type/TypeStrings.uni
-+  type/type.c
-+  type/type.h
-+  time/TimeStrings.uni
-+  time/time.c
-+  time/time.h
+@@ -144,7 +144,6 @@ Returns:
+   EFI_LIST_ENTRY  *ListHead;
+   VARIABLE_ID     *Var;
+   EFI_STATUS      Status;
+-  BOOLEAN         IsString;
+   UINT32          Attributes;
  
--  touch\TouchStrings.uni
--  touch\touch.c
--  touch\touch.h
-+  touch/TouchStrings.uni
-+  touch/touch.c
-+  touch/touch.h
+   //
+@@ -175,15 +174,12 @@ Returns:
+     // See if it's a shellenv variable
+     //
+     ListHead  = NULL;
+-    IsString  = FALSE;
+     if (CompareGuid (&Id, &SEnvEnvId) == 0) {
+       ListHead  = &SEnvEnv;
+-      IsString  = TRUE;
+     }
  
--  vol\VolStrings.uni
--  vol\vol.c
--  vol\vol.h
-+  vol/VolStrings.uni
-+  vol/vol.c
-+  vol/vol.h
+     if (CompareGuid (&Id, &SEnvAliasId) == 0) {
+       ListHead  = &SEnvAlias;
+-      IsString  = TRUE;
+     }
  
--  ver\VerStrings.uni
--  ver\ver.c
--  ver\ver.h
-+  ver/VerStrings.uni
-+  ver/ver.c
-+  ver/ver.h
-   
--  drivers\driversStrings.uni
--  drivers\drivers.c
--  drivers\drivers.h
-+  drivers/driversStrings.uni
-+  drivers/drivers.c
-+  drivers/drivers.h
-   
--  drvcfg\DrvcfgStrings.uni
--  drvcfg\drvcfg.c
--  drvcfg\drvcfg.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
-   
--  comp\CompStrings.uni
--  comp\comp.c
-+  comp/CompStrings.uni
-+  comp/comp.c
-   
--  dblk\dblkStrings.uni
--  dblk\dblk.c
--  dblk\efidump.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  
-+  dmem/MemStrings.uni
-+  dmem/DebugStrings.uni  
-+  dmem/mem.c
-+  dmem/MemCommonPart.c
-+  dmem/efidump.c  
-   
--  dmpstore\DmpstoreStrings.uni
--  dmpstore\dmpstore.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 
-+  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   
-+  eficompress/CompressStrings.uni
-+  eficompress/compressMain.c
-+  eficompress/compress.c   
-   
--  efidecompress\DecompressStrings.uni
--  efidecompress\decompress.c
-+  efidecompress/DecompressStrings.uni
-+  efidecompress/decompress.c
-   
--  err\ErrStrings.uni
--  err\err.c
-+  err/ErrStrings.uni
-+  err/err.c
-   
--  guid\GuidStrings.uni
--  guid\guid.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
-+  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
+     if (ListHead) {
+diff --git a/stall/stall.c b/stall/stall.c
+index ccf7451..b05c3a9 100644
+--- a/stall/stall.c
++++ b/stall/stall.c
+@@ -50,7 +50,7 @@ SHELL_VAR_CHECK_ITEM    StallCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   }
+ };
  
--  IfConfig\IfConfigStrings.uni
--  IfConfig\IfConfig.c
--  IfConfig\IfConfig.h
--  IfConfig\ShellNetHelper.c
-+  IfConfig/IfConfigStrings.uni
-+  IfConfig/IfConfig.c
-+  IfConfig/IfConfig.h
-+  IfConfig/ShellNetHelper.c
+diff --git a/stall/stall.h b/stall/stall.h
+index a326e41..22e2fc1 100644
+--- a/stall/stall.h
++++ b/stall/stall.h
+@@ -30,3 +30,4 @@ Revision History
+   }
  
--  ipconfig\IpConfigStrings.uni
--  ipconfig\IpConfig.c
-+  IpConfig/IpConfigStrings.uni
-+  IpConfig/IpConfig.c
-   
--  loadpcirom\LoadPciRomStrings.uni
--  loadpcirom\LoadPciRom.c
-+  loadpcirom/LoadPciRomStrings.uni
-+  loadpcirom/LoadPciRom.c
-   
--  mem\MemStrings.uni
--  mem\DebugStrings.uni  
--  mem\mm.c
--  mem\MemCommonPart.c
--  mem\efidump.c  
-+  mem/MemStrings.uni
-+  mem/DebugStrings.uni  
-+  mem/mm.c
-+  mem/MemCommonPart.c
-+  mem/efidump.c  
-   
--  memmap\memmapStrings.uni
--  memmap\memmap.c
-+  memmap/memmapStrings.uni
-+  memmap/memmap.c
-   
--  mm\MmStrings.uni
--  mm\mm.c
-+  mm/MmStrings.uni
-+  mm/mm.c
-   
--  mode\ModeStrings.uni
--  mode\mode.c
-+  mode/ModeStrings.uni
-+  mode/mode.c
-   
--  mount\MountStrings.uni
--  mount\mount.c
-+  mount/MountStrings.uni
-+  mount/mount.c
-   
--  openinfo\OPeninfoStrings.uni
--  openinfo\openinfo.c
-+  openinfo/OPeninfoStrings.uni
-+  openinfo/openinfo.c
+ #endif
++
+diff --git a/stall/stall.inf b/stall/stall.inf
+index 58545a5..5b08420 100644
+--- a/stall/stall.inf
++++ b/stall/stall.inf
+@@ -40,24 +40,24 @@ COMPONENT_TYPE       = APPLICATION
  
--  Ping\PingStrings.uni
--  Ping\Ping.c
-+  Ping/PingStrings.uni
-+  Ping/Ping.c
  
--  pci\PciStrings.uni
--  pci\pci.c
--  pci\pci_class.c
-+  pci/PciStrings.uni
-+  pci/pci.c
-+  pci/pci_class.c
-   
--  sermode\SermodeStrings.uni
--  sermode\sermode.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
-+  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.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   stallStrings.uni
+   stall.c
+   stall.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
+ [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./
  
- [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
+ [libraries.common]  
+   EfiShellLib
+@@ -72,7 +72,11 @@ COMPONENT_TYPE       = APPLICATION
  
- [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
+ [nmake.common]
+   IMAGE_ENTRY_POINT=InitializeStall
++
++[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
+   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_BOOTSHELL
++[nmake.ARM, nmake.AARCH64]
++  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
+diff --git a/time/time.c b/time/time.c
+index 00dd586..6309963 100644
+--- a/time/time.c
++++ b/time/time.c
+@@ -49,7 +49,7 @@ SHELL_VAR_CHECK_ITEM    TimeCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   }
+ };
+@@ -64,8 +64,8 @@ STATIC
+ BOOLEAN
+ GetNumber (
+   IN      CHAR16  *Str,
+-  IN OUT  INTN    *Offset,
+-  IN OUT  INTN    *number,
++  IN OUT  UINTN   *Offset,
++  IN OUT  UINTN   *number,
+   IN      BOOLEAN GetSecond
+   );
+@@ -296,8 +296,8 @@ STATIC
+ BOOLEAN
+ GetNumber (
+   IN      CHAR16  *Str,
+-  IN OUT  INTN    *Offset,
+-  IN OUT  INTN    *Number,
++  IN OUT  UINTN   *Offset,
++  IN OUT  UINTN   *Number,
+   IN    BOOLEAN   GetSecond
+   )
+ {
+diff --git a/time/time.h b/time/time.h
+index e9ff6c9..c273c4f 100644
+--- a/time/time.h
++++ b/time/time.h
+@@ -32,3 +32,4 @@ Revision History
+   }
+ #endif
++
+diff --git a/time/time.inf b/time/time.inf
+index 5181280..ab71d0e 100644
+--- a/time/time.inf
++++ b/time/time.inf
+@@ -40,24 +40,24 @@ COMPONENT_TYPE       = APPLICATION
+ [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
+@@ -72,7 +72,11 @@ COMPONENT_TYPE       = APPLICATION
+ [nmake.common]
+   IMAGE_ENTRY_POINT=InitializeTime
++
++[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
+   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_BOOTSHELL
++[nmake.ARM, nmake.AARCH64]
++  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
+diff --git a/touch/touch.c b/touch/touch.c
+index 0938d34..a5f61b8 100644
+--- a/touch/touch.c
++++ b/touch/touch.c
+@@ -64,7 +64,7 @@ TouchFreeFileArg (
+ //
+ // Global Variables
+ //
+-EFI_HII_HANDLE  HiiHandle;
++STATIC EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiTouchGuid = EFI_TOUCH_GUID;
+ SHELL_VAR_CHECK_ITEM    TouchCheckList[] = {
+   {
+diff --git a/touch/touch.h b/touch/touch.h
+index 402e7dc..6aceaf5 100644
+--- a/touch/touch.h
++++ b/touch/touch.h
+@@ -29,4 +29,4 @@ Revision History
+     0xa16a4695, 0x5815, 0x4d4f, 0xb8, 0xe, 0x6a, 0xf, 0x88, 0xac, 0xdb, 0x6c \
+   }
  
- [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
+-#endif
+\ No newline at end of file
++#endif
+diff --git a/touch/touch.inf b/touch/touch.inf
+index 5382ff6..8d67f41 100644
+--- a/touch/touch.inf
++++ b/touch/touch.inf
+@@ -39,23 +39,23 @@ FILE_GUID            = 2EBB94E8-3792-47bb-8843-4D5ED5B98F28
+ COMPONENT_TYPE       = APPLICATION
  
-+[sources.ARM]
-+  ver/ia32/ver32.c
-+  Library/IPF/math.c
-+  Library/IA32/initplat.c
-+
-+[sources.AARCH64]
-+  ver/ia32/ver32.c
-+  Library/IPF/math.c
-+  Library/IA32/initplat.c
-+
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   TouchStrings.uni
+   touch.c
+     
  [includes.common]
    .
--  .\Inc
--  .\ver
--  .\Library
+-  ..\Inc
+-  ..\Library
 -  $(EDK_SOURCE)\Foundation
 -  $(EDK_SOURCE)\Foundation\Include
 -  $(EDK_SOURCE)\Foundation\Include\IndustryStandard
@@ -8826,10 +9222,9 @@ Index: ShellFull.inf
 -  $(EDK_SOURCE)\Foundation\FrameWork
 -  $(EDK_SOURCE)\Foundation\FrameWork\Include
 -  $(EDK_SOURCE)\Foundation\Core\Dxe
--  $(EDK_SOURCE)\Foundation\Library\Dxe\Include
-+  ./Inc
-+  ./ver
-+  ./Library
+-  $(DEST_DIR)\
++  ../Inc
++  ../Library
 +  $(EDK_SOURCE)/Foundation
 +  $(EDK_SOURCE)/Foundation/Include
 +  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
@@ -8838,84 +9233,67 @@ Index: ShellFull.inf
 +  $(EDK_SOURCE)/Foundation/FrameWork
 +  $(EDK_SOURCE)/Foundation/FrameWork/Include
 +  $(EDK_SOURCE)/Foundation/Core/Dxe
-+  $(EDK_SOURCE)/Foundation/Library/Dxe/Include
-   $(DEST_DIR)
++  $(DEST_DIR./
+ [libraries.common]  
+   EfiShellLib
+@@ -70,6 +70,11 @@ COMPONENT_TYPE       = APPLICATION
  
- [libraries.common]
-@@ -341,16 +351,18 @@
- # we will specify some additional DEFINEs on the compile command line.
- #
  [nmake.common]
-+  IMAGE_ENTRY_POINT=InitializeShell
+   IMAGE_ENTRY_POINT=InitializeTouch
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
-   C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
--  IMAGE_ENTRY_POINT=InitializeShell
--  C_STD_FLAGS = $(C_STD_FLAGS) /DEFI_MONOSHELL /DEFI_FULLSHELL
    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 /DEFI_FULLSHELL
-+[nmake.ARM, nmake.AARCH64]
-+  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_MONOSHELL -DEFI_FULLSHELL
+   C_STD_FLAGS = $(C_STD_FLAGS) /DEFI_BOOTSHELL
 +
- [nmake.ebc]
-   EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) /DEFI_MONOSHELL /DEFI_FULLSHELL
-   EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) /DSTRING_ARRAY_NAME=$(BASE_NAME)Strings 
-   EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) /DSTRING_DEFINES_FILE=\"$(BASE_NAME)StrDefs.h\"
--
--
-- 
-\ No newline at end of file
-Index: inc/shelltypes.h
-===================================================================
---- inc/shelltypes.h   (revision 64)
-+++ inc/shelltypes.h   (working copy)
-@@ -36,7 +36,7 @@
- #endif
- #include "Tiano.h"
--#include "linkedlist.h"
-+#include "LinkedList.h"
- #include EFI_PROTOCOL_DEFINITION (FileInfo)
- #include EFI_PROTOCOL_DEFINITION (SimpleFileSystem)
-@@ -183,3 +183,4 @@
- #endif
++[nmake.ARM, nmake.AARCH64]
++  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
+diff --git a/type/type.c b/type/type.c
+index 129f911..a4cf59d 100644
+--- a/type/type.c
++++ b/type/type.c
+@@ -59,7 +59,7 @@ BOOLEAN         TypeAscii;
+ BOOLEAN         TypeUnicode;
+ BOOLEAN         TypeAuto;
  
- #endif
-+
-Index: inc/shellenv.h
-===================================================================
---- inc/shellenv.h     (revision 64)
-+++ inc/shellenv.h     (working copy)
-@@ -492,3 +492,4 @@
- #endif
+-EFI_HII_HANDLE  HiiHandle;
++STATIC EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiTypeGuid = EFI_TYPE_GUID;
+ SHELL_VAR_CHECK_ITEM    TypeCheckList[] = {
+   {
+@@ -90,7 +90,7 @@ SHELL_VAR_CHECK_ITEM    TypeCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   }
+ };
  
- #endif // _SHELLENV_H_
-+
-Index: mm/mm.h
-===================================================================
---- mm/mm.h    (revision 64)
-+++ mm/mm.h    (working copy)
-@@ -33,3 +33,4 @@
+diff --git a/type/type.h b/type/type.h
+index b3c170c..f22e566 100644
+--- a/type/type.h
++++ b/type/type.h
+@@ -30,3 +30,4 @@ Revision History
    }
  
  #endif
 +
-Index: mm/mm.inf
-===================================================================
---- mm/mm.inf  (revision 64)
-+++ mm/mm.inf  (working copy)
-@@ -41,23 +41,23 @@
+diff --git a/type/type.inf b/type/type.inf
+index efb0a82..0a8e7eb 100644
+--- a/type/type.inf
++++ b/type/type.inf
+@@ -40,24 +40,24 @@ COMPONENT_TYPE       = APPLICATION
  
  [sources.common]
-   MmStrings.uni
--  ..\ShCommonStrings.uni
-+  ../ShCommonStrings.uni
-   mm.c
-   mm.h
-   
+-   ..\ShCommonStrings.uni   
++   ../ShCommonStrings.uni   
+    TypeStrings.uni
+    type.c
+    type.h 
+                                           
  [includes.common]
    .
 -  ..\Inc
@@ -8943,10 +9321,10 @@ Index: mm/mm.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -72,7 +72,11 @@
+@@ -72,7 +72,11 @@ COMPONENT_TYPE       = APPLICATION
  
  [nmake.common]
-   IMAGE_ENTRY_POINT=DumpIoModify
+   IMAGE_ENTRY_POINT=InitializeType
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
    C_STD_FLAGS = $(C_STD_FLAGS) /DSTRING_ARRAY_NAME=$(BASE_NAME)Strings 
@@ -8955,47 +9333,70 @@ Index: mm/mm.inf
  
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: mm/mm.c
-===================================================================
---- mm/mm.c    (revision 64)
-+++ mm/mm.c    (working copy)
-@@ -49,18 +49,18 @@
+diff --git a/tzone/timezone.inf b/tzone/timezone.inf
+index 57834c6..f0e8c1d 100644
+--- a/tzone/timezone.inf
++++ b/tzone/timezone.inf
+@@ -25,24 +25,24 @@ FILE_GUID            = E27B12B9-2647-4af3-ADBC-B5AB5FB50421
+ COMPONENT_TYPE       = APPLICATION
  
- VOID
- ReadMem (
--  IN  EFI_IO_WIDTH  Width,
--  IN  UINT64        Address,
--  IN  UINTN         Size,
--  IN  VOID          *Buffer
-+  IN  EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH  Width,
-+  IN  UINT64                                 Address,
-+  IN  UINTN                                  Size,
-+  IN  VOID                                   *Buffer
-   );
+ [sources.common]
+-  ..\ShCommonStrings.uni
++  ../ShCommonStrings.uni
+   TZoneStrings.uni
+   tzone.c
+   tzone.h
  
- VOID
- WriteMem (
--  IN  EFI_IO_WIDTH  Width,
--  IN  UINT64        Address,
--  IN  UINTN         Size,
--  IN  VOID          *Buffer
-+  IN  EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH  Width,
-+  IN  UINT64                                 Address,
-+  IN  UINTN                                  Size,
-+  IN  VOID                                   *Buffer
-   );
+ [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./
  
- STATIC
-@@ -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[] = {
-   {
-@@ -134,7 +134,7 @@
+ [libraries.common]  
+   EfiShellLib
+@@ -62,11 +62,13 @@ COMPONENT_TYPE       = APPLICATION
+ # we will specify some additional DEFINEs on the compile command line.
+ #
+ [nmake.common]
+-  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
+   IMAGE_ENTRY_POINT=InitializeTZone
++
++[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
++  C_PROJ_FLAGS = $(C_PROJ_FLAGS) /Zm500
+   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_BOOTSHELL
+-
+- 
+\ No newline at end of file
++[nmake.ARM, nmake.AARCH64]
++  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
+diff --git a/tzone/tzone.c b/tzone/tzone.c
+index 30cc513..2b6ccdd 100644
+--- a/tzone/tzone.c
++++ b/tzone/tzone.c
+@@ -65,7 +65,7 @@ SHELL_VAR_CHECK_ITEM    TzoneCheckList[] = {
      NULL,
      0,
      0,
@@ -9004,140 +9405,136 @@ Index: mm/mm.c
    }
  };
  
-@@ -146,13 +146,13 @@
- EFI_STATUS
- OldShellParserMM (
--  OUT EFI_IO_WIDTH       *Width,
--  OUT EFI_ACCESS_TYPE    *AccessType,
--  OUT UINT64             *Address,
--  OUT UINT64             *Value,
--  OUT UINTN              *Size,
--  OUT BOOLEAN            *Interactive,
--  OUT CHAR16             **ValueStr
-+  OUT EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH *Width,
-+  OUT EFI_ACCESS_TYPE                       *AccessType,
-+  OUT UINT64                                *Address,
-+  OUT UINT64                                *Value,
-+  OUT UINTN                                 *Size,
-+  OUT BOOLEAN                               *Interactive,
-+  OUT CHAR16                               **ValueStr
-   );
+@@ -258,7 +258,6 @@ InitializeTZone (
+   BOOLEAN                 bList;
+   BOOLEAN                 bSet;
+   INT16                   nValue;
+-  UINTN                   uValueSize;
+   SHELL_VAR_CHECK_CODE    RetCode;
+   CHAR16                  *Useful;
+   SHELL_VAR_CHECK_PACKAGE ChkPck;
+@@ -269,7 +268,6 @@ InitializeTZone (
+   bList         = FALSE;
+   bSet          = FALSE;
+   nValue        = 0;
+-  uValueSize    = sizeof (INTN);
+   ZeroMem (&ChkPck, sizeof (SHELL_VAR_CHECK_PACKAGE));
+   ZeroMem (&Time, sizeof (EFI_TIME));
+   //
+diff --git a/tzone/tzone.h b/tzone/tzone.h
+index 08e049f..1cc0c2b 100644
+--- a/tzone/tzone.h
++++ b/tzone/tzone.h
+@@ -35,3 +35,4 @@ Revision History
+   }
  
- EFI_STATUS
-@@ -207,12 +207,11 @@
-   UINT64                          PciEAddress;
-   UINT64                          Value;
-   UINT32                          SegmentNumber;
--  EFI_IO_WIDTH                    Width;
-+  EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH Width;
-   EFI_ACCESS_TYPE                 AccessType;
-   UINT64                          Buffer;
-   UINTN                           Index;
-   UINTN                           Size;
--  CHAR16                          *AddressStr;
-   CHAR16                          *ValueStr;
-   BOOLEAN                         Complete;
-   CHAR16                          InputStr[80];
-@@ -261,7 +260,7 @@
-   if (IS_OLD_SHELL) {
-     Status = OldShellParserMM (&Width, &AccessType, &Address, &Value, &Size, &Interactive, &ValueStr);
-     if (EFI_ERROR (Status)) {
--      if (-1 == Status) {
-+      if ((EFI_STATUS)-1 == Status) {
-         PrintToken (STRING_TOKEN (STR_HELPINFO_MM_VERBOSEHELP), HiiHandle);
-         Status = EFI_SUCCESS;
-       }
-@@ -274,7 +273,6 @@
-     Width       = EfiPciWidthUint8;
-     Size        = 1;
-     AccessType  = EfiMemory;
--    AddressStr  = NULL;
-     ValueStr    = NULL;
-     Interactive = TRUE;
+ #endif
++
+diff --git a/unload/unload.c b/unload/unload.c
+index 100f16b..5aee387 100644
+--- a/unload/unload.c
++++ b/unload/unload.c
+@@ -66,7 +66,7 @@ SHELL_VAR_CHECK_ITEM      UnloadCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   }
+ };
  
-@@ -662,10 +660,10 @@
+@@ -110,7 +110,7 @@ _UnloadGetDriverName (
+       *DriverName = LibDevicePathToStr (Image->FilePath);
+     }
+   } else {
+-    LibGetDriverName(DriverBindingHandle, Language, DriverName);
++    LibGetDriverName(DriverBindingHandle, (CHAR8*)Language, DriverName);
+   }
  
- VOID
- ReadMem (
--  IN  EFI_IO_WIDTH  Width,
--  IN  UINT64        Address,
--  IN  UINTN         Size,
--  IN  VOID          *Buffer
-+  IN  EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH  Width,
-+  IN  UINT64                                 Address,
-+  IN  UINTN                                  Size,
-+  IN  VOID                                   *Buffer
-   )
- {
-   do {
-@@ -694,10 +692,10 @@
+   return EFI_SUCCESS;
+@@ -184,7 +184,7 @@ Returns:
  
- VOID
- WriteMem (
--  IN  EFI_IO_WIDTH  Width,
--  IN  UINT64        Address,
--  IN  UINTN         Size,
--  IN  VOID          *Buffer
-+  IN  EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH  Width,
-+  IN  UINT64                                 Address,
-+  IN  UINTN                                  Size,
-+  IN  VOID                                   *Buffer
-   )
- {
-   do {
-@@ -750,7 +748,7 @@
-     }
+     DevicePath      = NULL;
+     BestDeviceName  = NULL;
+-    Status          = BS->HandleProtocol (Handle, &gEfiDevicePathProtocolGuid, &DevicePath);
++    Status          = BS->HandleProtocol (Handle, &gEfiDevicePathProtocolGuid, (VOID**)&DevicePath);
  
-     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'));
+     Print (L"\n");
+     PrintToken (STRING_TOKEN (STR_UNLOAD_CONTROLLER_NAME), HiiUnloadHandle);
+@@ -242,14 +242,14 @@ Returns:
+         Image = FALSE;
+         Status = _UnloadGetDriverName (
+                   DriverBindingHandleBuffer[Index],
+-                  Language,
++                  (UINT8*)Language,
+                   FALSE,
+                   &DriverName
+                   );
+         if (DriverName == NULL) {
+           Status = _UnloadGetDriverName (
+                     DriverBindingHandleBuffer[Index],
+-                    Language,
++                    (UINT8*)Language,
+                     TRUE,
+                     &DriverName
+                     );
+@@ -436,7 +436,7 @@ Returns:
  
-       Find  = TRUE;
-     } else {
-@@ -766,13 +764,13 @@
+   Status = _UnloadGetDriverName (
+             Handle,
+-            Language,
++            (UINT8*)Language,
+             FALSE,
+             &DriverName
+             );
+@@ -450,7 +450,7 @@ Returns:
  
- EFI_STATUS
- OldShellParserMM (
--  OUT EFI_IO_WIDTH       *Width,
--  OUT EFI_ACCESS_TYPE    *AccessType,
--  OUT UINT64             *Address,
--  OUT UINT64             *Value,
--  OUT UINTN              *Size,
--  OUT BOOLEAN            *Interactive,
--  OUT CHAR16             **ValueStr
-+  OUT EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH *Width,
-+  OUT EFI_ACCESS_TYPE                       *AccessType,
-+  OUT UINT64                                *Address,
-+  OUT UINT64                                *Value,
-+  OUT UINTN                                 *Size,
-+  OUT BOOLEAN                               *Interactive,
-+  OUT CHAR16                               **ValueStr
-   )
- /*++
+   Status = _UnloadGetDriverName (
+             Handle,
+-            Language,
++            (UINT8*)Language,
+             TRUE,
+             &DriverName
+             );
+@@ -628,7 +628,7 @@ Returns:
+       if (Prot->Handles[Index] == Handle) {
+         Dump    = Verbose ? Prot->DumpInfo : Prot->DumpToken;
+-        Status  = BS->HandleProtocol (Handle, &Prot->ProtocolId, &Interface);
++        Status  = BS->HandleProtocol (Handle, &Prot->ProtocolId, (VOID**)&Interface);
+         if (!EFI_ERROR (Status)) {
+           if (Verbose) {
+             for (Index1 = 0; Index1 < ProtocolBufferCount; Index1++) {
+@@ -676,7 +676,7 @@ Returns:
+           goto Done;
+         }
  
-Index: drvcfg/drvcfg.h
-===================================================================
---- drvcfg/drvcfg.h    (revision 64)
-+++ drvcfg/drvcfg.h    (working copy)
-@@ -33,3 +33,4 @@
+-        Status = BS->HandleProtocol (Handle, ProtocolBuffer[Index1], &Interface);
++        Status = BS->HandleProtocol (Handle, ProtocolBuffer[Index1], (VOID**)&Interface);
+         if (!EFI_ERROR (Status)) {
+           PrintToken (STRING_TOKEN (STR_UNLOAD_TWO_VARS_HG_NEW), HiiUnloadHandle, ProtocolBuffer[Index1], Interface);
+         }
+diff --git a/unload/unload.h b/unload/unload.h
+index d6da802..4c99c85 100644
+--- a/unload/unload.h
++++ b/unload/unload.h
+@@ -36,3 +36,4 @@ Revision History
    }
  
  #endif
 +
-Index: drvcfg/drvcfg.inf
-===================================================================
---- drvcfg/drvcfg.inf  (revision 64)
-+++ drvcfg/drvcfg.inf  (working copy)
-@@ -40,24 +40,24 @@
+diff --git a/unload/unload.inf b/unload/unload.inf
+index e91869e..fbc0fb3 100644
+--- a/unload/unload.inf
++++ b/unload/unload.inf
+@@ -39,23 +39,23 @@ FILE_GUID            = 409060F4-3E7B-44cc-9DFD-A8E807474888
+ COMPONENT_TYPE       = APPLICATION
  
  [sources.common]
 -  ..\ShCommonStrings.uni
 +  ../ShCommonStrings.uni
-   DrvcfgStrings.uni
-   drvcfg.c
-   drvcfg.h
+   UnloadStrings.uni
+   unload.c
      
  [includes.common]
    .
@@ -9166,63 +9563,58 @@ Index: drvcfg/drvcfg.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -72,7 +72,11 @@
+@@ -70,6 +70,11 @@ COMPONENT_TYPE       = APPLICATION
  
  [nmake.common]
-   IMAGE_ENTRY_POINT=DrvcfgMain
+   IMAGE_ENTRY_POINT=InitializeUnload
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
    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_BOOTSHELL
++
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: drvcfg/drvcfg.c
-===================================================================
---- drvcfg/drvcfg.c    (revision 64)
-+++ drvcfg/drvcfg.c    (working copy)
-@@ -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[] = {
-   {
-@@ -87,7 +87,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
-   }
- };
-Index: openinfo/openinfo.h
-===================================================================
---- openinfo/openinfo.h        (revision 64)
-+++ openinfo/openinfo.h        (working copy)
-@@ -33,3 +33,4 @@
-   }
+diff --git a/ver/Ebc/verEbc.c b/ver/Ebc/verEbc.c
+index 1d7368d..9518e14 100644
+--- a/ver/Ebc/verEbc.c
++++ b/ver/Ebc/verEbc.c
+@@ -45,7 +45,7 @@ DisplayExtendedVersionInfo (
+   Status = BS->LocateProtocol (\r
+                  &gEfiEbcProtocolGuid,\r
+                  NULL,\r
+-                 &Ebc\r
++                 (VOID**)&Ebc\r
+                  );\r
+   if (EFI_ERROR (Status)) {\r
+     return ;\r
+diff --git a/ver/Ver.inf b/ver/Ver.inf
+index 56a135d..12ec23e 100644
+--- a/ver/Ver.inf
++++ b/ver/Ver.inf
+@@ -40,33 +40,33 @@ COMPONENT_TYPE       = APPLICATION
  
- #endif
-+
-Index: openinfo/openinfo.inf
-===================================================================
---- openinfo/openinfo.inf      (revision 64)
-+++ openinfo/openinfo.inf      (working copy)
-@@ -41,24 +41,24 @@
  
  [sources.common]
-   OPeninfoStrings.uni
--  ..\ShCommonStrings.uni
-+  ../ShCommonStrings.uni
-   openinfo.c
-   openinfo.h
+-   ..\ShCommonStrings.uni   
++   ../ShCommonStrings.uni   
+    VerStrings.uni
+    Ver.c
+    Ver.h 
+    
+-[sources.ia32,sources.x64]
+-   ia32\ver32.c
++[sources.ia32,sources.x64,sources.ARM,sources.AARCH64]
++   ia32/ver32.c
  
-   
+ [sources.ipf]
+-   ipf\ver64.c
++   IPF/ver64.c
+ [sources.ebc]
+-   ebc\verEbc.c
++   eb./verEbc.c
+                                           
  [includes.common]
    .
 -  ..\Inc
@@ -9250,10 +9642,10 @@ Index: openinfo/openinfo.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -73,7 +73,11 @@
+@@ -82,7 +82,11 @@ COMPONENT_TYPE       = APPLICATION
  
  [nmake.common]
-   IMAGE_ENTRY_POINT=OpeninfoMain
+   IMAGE_ENTRY_POINT=InitializeVer
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
    C_STD_FLAGS = $(C_STD_FLAGS) /DSTRING_ARRAY_NAME=$(BASE_NAME)Strings 
@@ -9262,42 +9654,11 @@ Index: openinfo/openinfo.inf
  
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
-Index: openinfo/openinfo.c
-===================================================================
---- openinfo/openinfo.c        (revision 64)
-+++ openinfo/openinfo.c        (working copy)
-@@ -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[] = {
-   {
-@@ -55,7 +55,7 @@
-     NULL,
-     0,
-     0,
--    0
-+    (SHELL_VAR_CHECK_FLAG_TYPE) 0
-   }
- };
-Index: drivers/drivers.c
-===================================================================
---- drivers/drivers.c  (revision 64)
-+++ drivers/drivers.c  (working copy)
-@@ -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[] = {
-   {
-@@ -68,7 +68,7 @@
+diff --git a/ver/ver.c b/ver/ver.c
+index 76d50ca..56b95d4 100644
+--- a/ver/ver.c
++++ b/ver/ver.c
+@@ -57,7 +57,7 @@ SHELL_VAR_CHECK_ITEM    VerCheckList[] = {
      NULL,
      0,
      0,
@@ -9306,46 +9667,29 @@ Index: drivers/drivers.c
    }
  };
  
-@@ -133,7 +133,6 @@
-   EFI_HANDLE                   *ControllerHandleBuffer;
-   UINTN                        ChildControllerHandleCount;
-   CHAR16                       *ImageName;
--  BOOLEAN                      IsHelp;
-   SHELL_VAR_CHECK_CODE         RetCode;
-   CHAR16                       *Useful;
-   SHELL_ARG_LIST               *Item;
-@@ -143,7 +142,6 @@
-   Language                = NULL;
-   DriverImageHandleCount  = 0;
-   DriverImageHandleBuffer = NULL;
--  IsHelp                  = FALSE;
-   ZeroMem (&ChkPck, sizeof (SHELL_VAR_CHECK_PACKAGE));
-   EFI_SHELL_APP_INIT (ImageHandle, SystemTable);
-Index: drivers/drivers.h
-===================================================================
---- drivers/drivers.h  (revision 64)
-+++ drivers/drivers.h  (working copy)
-@@ -33,3 +33,4 @@
-   }
+diff --git a/ver/ver.h b/ver/ver.h
+index 770e82f..c6adc30 100644
+--- a/ver/ver.h
++++ b/ver/ver.h
+@@ -37,3 +37,4 @@ DisplayExtendedVersionInfo (
+   IN EFI_SYSTEM_TABLE   *SystemTable
+   );
  #endif
 +
-Index: drivers/drivers.inf
-===================================================================
---- drivers/drivers.inf        (revision 64)
-+++ drivers/drivers.inf        (working copy)
-@@ -40,7 +40,7 @@
+diff --git a/vol/Vol.inf b/vol/Vol.inf
+index 71d2cb5..cef8462 100644
+--- a/vol/Vol.inf
++++ b/vol/Vol.inf
+@@ -40,24 +40,24 @@ COMPONENT_TYPE       = APPLICATION
  
  
  [sources.common]
--  ..\ShCommonStrings.uni
-+  ../ShCommonStrings.uni
-   DriversStrings.uni
-   drivers.c
-   drivers.h
-@@ -48,17 +48,17 @@
-   
+-   ..\ShCommonStrings.uni   
++   ../ShCommonStrings.uni   
+    VolStrings.uni
+    Vol.c
+    Vol.h 
+                                           
  [includes.common]
    .
 -  ..\Inc
@@ -9373,10 +9717,10 @@ Index: drivers/drivers.inf
  
  [libraries.common]  
    EfiShellLib
-@@ -73,7 +73,11 @@
+@@ -72,7 +72,11 @@ COMPONENT_TYPE       = APPLICATION
  
  [nmake.common]
-   IMAGE_ENTRY_POINT=DriversMain
+   IMAGE_ENTRY_POINT=InitializeVol
 +
 +[nmake.IA32, nmake.EBC, nmake.X64, nmake.IPF]
    C_STD_FLAGS = $(C_STD_FLAGS) /DSTRING_ARRAY_NAME=$(BASE_NAME)Strings 
@@ -9385,3 +9729,37 @@ Index: drivers/drivers.inf
  
 +[nmake.ARM, nmake.AARCH64]
 +  C_STD_FLAGS = $(C_STD_FLAGS) -DEFI_BOOTSHELL
+diff --git a/vol/vol.c b/vol/vol.c
+index 47a4de0..e86b298 100644
+--- a/vol/vol.c
++++ b/vol/vol.c
+@@ -32,7 +32,7 @@ extern UINT8    STRING_ARRAY_NAME[];
+ //
+ #include STRING_DEFINES_FILE
+-EFI_HII_HANDLE  HiiHandle;
++STATIC EFI_HII_HANDLE  HiiHandle;
+ EFI_GUID        EfiVolGuid = EFI_VOL_GUID;
+ SHELL_VAR_CHECK_ITEM    VolCheckList[] = {
+   {
+@@ -63,7 +63,7 @@ SHELL_VAR_CHECK_ITEM    VolCheckList[] = {
+     NULL,
+     0,
+     0,
+-    0
++    (SHELL_VAR_CHECK_FLAG_TYPE) 0
+   }
+ };
+diff --git a/vol/vol.h b/vol/vol.h
+index 0d345dd..a9fe6d7 100644
+--- a/vol/vol.h
++++ b/vol/vol.h
+@@ -32,3 +32,4 @@ Revision History
+   }
+ #endif
++
+-- 
+1.8.5
+