/** @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
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
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
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
}\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
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
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
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
\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
return EFI_SUCCESS;\r
}\r
\r
- BufferTypeBackup = HBufferImage.BufferType;\r
HBufferImage.BufferType = FileTypeMemBuffer;\r
\r
Buffer = AllocateZeroPool (Size);\r
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