]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/MemImage.c
ShellPkg/hexeditor: Use CpuIo for memory access
[mirror_edk2.git] / ShellPkg / Library / UefiShellDebug1CommandsLib / HexEdit / MemImage.c
index 73464906b421daf2d009dda3e3bd835b0a0cc7e8..fce9bbe0e66c4a2c4568a3c1468dd9fdef4e10b3 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Functions to deal with Mem buffer\r
   \r
-  Copyright (c) 2005 - 2011, Intel Corporation. All rights reserved. <BR>\r
+  Copyright (c) 2005 - 2017, Intel Corporation. All rights reserved. <BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
@@ -27,8 +27,6 @@ extern HEFI_EDITOR_GLOBAL_EDITOR  HMainEditor;
 HEFI_EDITOR_MEM_IMAGE             HMemImage;\r
 HEFI_EDITOR_MEM_IMAGE             HMemImageBackupVar;\r
 \r
-EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL   DummyPciRootBridgeIo;\r
-\r
 //\r
 // for basic initialization of HDiskImage\r
 //\r
@@ -38,44 +36,16 @@ HEFI_EDITOR_MEM_IMAGE             HMemImageConst = {
   0\r
 };\r
 \r
-EFI_STATUS\r
-DummyMemRead (\r
-  IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL              * This,\r
-  IN     EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH    Width,\r
-  IN     UINT64                                   Address,\r
-  IN     UINTN                                    Count,\r
-  IN OUT VOID                                     *Buffer\r
-  );\r
-\r
-EFI_STATUS\r
-DummyMemWrite (\r
-  IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL              * This,\r
-  IN     EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH    Width,\r
-  IN     UINT64                                   Address,\r
-  IN     UINTN                                    Count,\r
-  IN OUT VOID                                     *Buffer\r
-  );\r
+/**\r
+  Initialization function for HDiskImage.\r
 \r
+  @retval EFI_SUCCESS       The operation was successful.\r
+  @retval EFI_LOAD_ERROR    A load error occured.\r
+**/\r
 EFI_STATUS\r
 HMemImageInit (\r
   VOID\r
   )\r
-/*++\r
-\r
-Routine Description: \r
-\r
-  Initialization function for HDiskImage\r
-\r
-Arguments:  \r
-\r
-  None\r
-\r
-Returns:  \r
-\r
-  EFI_SUCCESS\r
-  EFI_LOAD_ERROR\r
-\r
---*/\r
 {\r
   EFI_STATUS  Status;\r
 \r
@@ -85,21 +55,10 @@ Returns:
   CopyMem (&HMemImage, &HMemImageConst, sizeof (HMemImage));\r
 \r
   Status = gBS->LocateProtocol (\r
-                &gEfiPciRootBridgeIoProtocolGuid,\r
+                &gEfiCpuIo2ProtocolGuid,\r
                 NULL,\r
                 (VOID**)&HMemImage.IoFncs\r
                 );\r
-  if (Status == EFI_NOT_FOUND) {\r
-    //\r
-    // For NT32, no EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL is available\r
-    // Use Dummy PciRootBridgeIo for memory access\r
-    //\r
-    ZeroMem (&DummyPciRootBridgeIo, sizeof (EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL));\r
-    DummyPciRootBridgeIo.Mem.Read  = DummyMemRead;\r
-    DummyPciRootBridgeIo.Mem.Write = DummyMemWrite;\r
-    HMemImage.IoFncs = &DummyPciRootBridgeIo;\r
-    Status = EFI_SUCCESS;\r
-  }\r
   if (!EFI_ERROR (Status)) {\r
     return EFI_SUCCESS;\r
   } else {\r
@@ -107,28 +66,16 @@ Returns:
   }\r
 }\r
 \r
+/**\r
+  Backup function for HDiskImage. Only a few fields need to be backup. \r
+  This is for making the Disk buffer refresh as few as possible.\r
+\r
+  @retval EFI_SUCCESS       The operation was successful.\r
+**/\r
 EFI_STATUS\r
 HMemImageBackup (\r
   VOID\r
   )\r
-/*++\r
-\r
-Routine Description: \r
-\r
-  Backup function for HDiskImage\r
-  Only a few fields need to be backup. \r
-  This is for making the Disk buffer refresh \r
-  as few as possible.\r
-\r
-Arguments:  \r
-\r
-  None\r
-\r
-Returns:  \r
-\r
-  EFI_SUCCESS\r
-\r
---*/\r
 {\r
   HMemImageBackupVar.Offset = HMemImage.Offset;\r
   HMemImageBackupVar.Size   = HMemImage.Size;\r
@@ -136,51 +83,20 @@ Returns:
   return EFI_SUCCESS;\r
 }\r
 \r
-EFI_STATUS\r
-HMemImageCleanup (\r
-  VOID\r
-  )\r
-/*++\r
-\r
-Routine Description: \r
+/**\r
+  Set FileName field in HFileImage.\r
 \r
-  Cleanup function for HDiskImage\r
-\r
-Arguments:  \r
-\r
-  None\r
-\r
-Returns:  \r
-\r
-  EFI_SUCCESS\r
-\r
---*/\r
-{\r
-  return EFI_SUCCESS;\r
-}\r
+  @param[in] Offset   The offset.\r
+  @param[in] Size     The size.\r
 \r
+  @retval EFI_SUCCESS           The operation was successful.\r
+  @retval EFI_OUT_OF_RESOURCES  A memory allocation failed.\r
+**/\r
 EFI_STATUS\r
 HMemImageSetMemOffsetSize (\r
   IN UINTN Offset,\r
   IN UINTN Size\r
   )\r
-/*++\r
-\r
-Routine Description: \r
-\r
-  Set FileName field in HFileImage\r
-\r
-Arguments:  \r
-\r
-  Offset - The offset\r
-  Size   - The size\r
-\r
-Returns:  \r
-\r
-  EFI_SUCCESS\r
-  EFI_OUT_OF_RESOURCES\r
-\r
---*/\r
 {\r
 \r
   HMemImage.Offset  = Offset;\r
@@ -189,31 +105,23 @@ Returns:
   return EFI_SUCCESS;\r
 }\r
 \r
+/**\r
+  Read a disk from disk into HBufferImage.\r
+\r
+  @param[in] Offset   The offset.\r
+  @param[in] Size     The size.\r
+  @param[in] Recover  if is for recover, no information print.\r
+\r
+  @retval EFI_LOAD_ERROR        A load error occured.\r
+  @retval EFI_SUCCESS           The operation was successful.\r
+  @retval EFI_OUT_OF_RESOURCES  A memory allocation failed.\r
+**/\r
 EFI_STATUS\r
 HMemImageRead (\r
-  IN UINTN  Offset,\r
-  IN UINTN  Size,\r
-  BOOLEAN   Recover\r
+  IN UINTN     Offset,\r
+  IN UINTN     Size,\r
+  IN BOOLEAN   Recover\r
   )\r
-/*++\r
-\r
-Routine Description: \r
-\r
-  Read a disk from disk into HBufferImage\r
-\r
-Arguments:  \r
-\r
-  Offset  - The offset\r
-  Size    - The size\r
-  Recover - if is for recover, no information print\r
-\r
-Returns:  \r
-\r
-  EFI_SUCCESS\r
-  EFI_LOAD_ERROR\r
-  EFI_OUT_OF_RESOURCES\r
-  \r
---*/\r
 {\r
 \r
   EFI_STATUS                      Status;\r
@@ -221,9 +129,6 @@ Returns:
   CHAR16                          *Str;\r
   HEFI_EDITOR_LINE                *Line;\r
 \r
-  EDIT_FILE_TYPE                  BufferTypeBackup;\r
-\r
-  BufferTypeBackup        = HBufferImage.BufferType;\r
   HBufferImage.BufferType = FileTypeMemBuffer;\r
 \r
   Buffer                  = AllocateZeroPool (Size);\r
@@ -312,36 +217,26 @@ Returns:
 \r
 }\r
 \r
+/**\r
+  Save lines in HBufferImage to disk.\r
+\r
+  @param[in] Offset   The offset.\r
+  @param[in] Size     The size.\r
+\r
+  @retval EFI_LOAD_ERROR        A load error occured.\r
+  @retval EFI_SUCCESS           The operation was successful.\r
+  @retval EFI_OUT_OF_RESOURCES  A memory allocation failed.\r
+**/\r
 EFI_STATUS\r
 HMemImageSave (\r
   IN UINTN Offset,\r
   IN UINTN Size\r
   )\r
-/*++\r
-\r
-Routine Description: \r
-\r
-  Save lines in HBufferImage to disk\r
-\r
-Arguments:  \r
-\r
-  Offset - The offset\r
-  Size   - The size\r
-\r
-Returns:  \r
-\r
-  EFI_SUCCESS\r
-  EFI_LOAD_ERROR\r
-  EFI_OUT_OF_RESOURCES\r
-\r
---*/\r
 {\r
 \r
   EFI_STATUS                      Status;\r
   VOID                            *Buffer;\r
 \r
-  EDIT_FILE_TYPE                  BufferTypeBackup;\r
-\r
   //\r
   // not modified, so directly return\r
   //\r
@@ -349,7 +244,6 @@ Returns:
     return EFI_SUCCESS;\r
   }\r
 \r
-  BufferTypeBackup        = HBufferImage.BufferType;\r
   HBufferImage.BufferType = FileTypeMemBuffer;\r
 \r
   Buffer                  = AllocateZeroPool (Size);\r
@@ -387,26 +281,4 @@ Returns:
   return EFI_SUCCESS;\r
 }\r
 \r
-EFI_STATUS\r
-DummyMemRead (\r
-  IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL              * This,\r
-  IN     EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH    Width,\r
-  IN     UINT64                                   Address,\r
-  IN     UINTN                                    Count,\r
-  IN OUT VOID                                     *Buffer\r
-  )\r
-{\r
-  return EFI_UNSUPPORTED;\r
-}\r
 \r
-EFI_STATUS\r
-DummyMemWrite (\r
-  IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL              * This,\r
-  IN     EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH    Width,\r
-  IN     UINT64                                   Address,\r
-  IN     UINTN                                    Count,\r
-  IN OUT VOID                                     *Buffer\r
-  )\r
-{\r
-  return EFI_UNSUPPORTED;\r
-}\r